V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
yang991178
V2EX  ›  分享创造

用 Electron 写了一个 RSS 阅读器

  •  
  •   yang991178 ·
    yang991178 · 2020-06-17 10:24:10 +08:00 · 10477 次点击
    这是一个创建于 1651 天前的主题,其中的信息可能已经有所发展或是发生改变。

    除了自己平时看的以外没有测试太多订阅源,目前 bug 可能不少,欢迎抓虫。

    网站:hyliu.me/fluent-reader

    GitHub:github.com/yang991178/fluent-reader

    微软商店:www.microsoft.com/store/apps/9P71FC94LRH8?cid=v2ex

    第 1 条附言  ·  2020-07-11 13:20:46 +08:00
    从发布以来已经快一个月了,增加了不少功能的同时上架了 Mac App Store,链接:apps.apple.com/cn/app/id1520907427

    新增功能:
    * 后台自动抓取
    * 通过正则表达式规则过滤文章或推送通知
    * 内置二维码分享
    * 去除渲染进程 node 环境提高安全性
    51 条回复    2020-07-11 23:37:28 +08:00
    gushu
        1
    gushu  
       2020-06-17 11:12:40 +08:00
    感谢,颜值非常高。不过导入源的时候很多都显示错误。好像 RSShub 的源都不支持。
    yang991178
        2
    yang991178  
    OP
       2020-06-17 11:21:54 +08:00   ❤️ 1
    @gushu 我测试了一些 rsshub 的应该是可以的,如果导入 OPML 显示"unique constraint"之类的目前重新一个个添加以后应该没问题,是我之前脑抽在数据库自己写了一个自增 id 的 bug,下个版本会修复
    Saszr
        3
    Saszr  
       2020-06-17 11:38:10 +08:00
    颜值可以,有无全平台一波
    主要是 ipad 上想拥有
    galikeoy
        4
    galikeoy  
       2020-06-17 11:42:51 +08:00
    好看!
    hinataharuki
        5
    hinataharuki  
       2020-06-17 11:50:13 +08:00
    不知道是否有免安装版或者网页- -公司不让装软件,需要申请
    kidult
        6
    kidult  
       2020-06-17 12:02:45 +08:00
    不错,但是为啥订阅源只能手输,没办法粘贴
    yang991178
        7
    yang991178  
    OP
       2020-06-17 12:10:16 +08:00   ❤️ 2
    @hinataharuki github release 页新增了免安装的压缩包
    yang991178
        8
    yang991178  
    OP
       2020-06-17 12:10:37 +08:00
    @kidult ctrl-v 应该是可以的,还没做粘贴菜单
    hljjhb
        9
    hljjhb  
       2020-06-17 12:45:36 +08:00 via Android
    颜值在线,图标就很 Fluent
    chotow
        10
    chotow  
       2020-06-17 13:00:58 +08:00
    Fluent 好评(不管是网站还是软件,颜值在线),Electron 差评。
    wondering
        11
    wondering  
       2020-06-17 13:43:07 +08:00
    颜值 Fluent 好评,支持一波
    wondering
        12
    wondering  
       2020-06-17 13:45:36 +08:00
    tcfenix
        13
    tcfenix  
       2020-06-17 14:17:29 +08:00
    颜值很高 卡片式的界面很好,乍一看很有意思
    但是无法体验更多内容.....
    在导入 opml 的时候只有两个源能导入,其他的全部 6 秒超时...
    单独添加的话,因为没办法复制黏贴,也不能使用...
    macos 10.15.3
    yang991178
        14
    yang991178  
    OP
       2020-06-17 14:32:47 +08:00
    @tcfenix 能分享一下 OPML 文件吗,用键盘应该是可以粘贴的,或者可以试一下代理
    tcfenix
        15
    tcfenix  
       2020-06-17 15:39:16 +08:00
    @yang991178
    https://gist.github.com/eltria/084b438cffce301437011b2e7b668846

    只有什么值得买跟知乎每日能拉下来
    如果你这边有选项能单独配置代理会比较方便....公司内网的网络情况很复杂

    复制粘贴的话 ctrl c ctrl v 全都不行
    我是 macos 然后 control 跟 command 换位置,然后外接了机械键盘,不知道是不是跟这个有关系
    CBS
        16
    CBS  
       2020-06-17 15:42:09 +08:00
    略贵
    yang991178
        17
    yang991178  
    OP
       2020-06-17 16:26:55 +08:00
    @tcfenix 我试了一下无法导入的 bug 开发版本已经修复了,明天应该可以发布。代理在"偏好设置"里可以单独设置 PAC,不过这些源应该和代理没关系。mac 下我的键盘是 win+v 粘贴
    gushu
        18
    gushu  
       2020-06-17 18:51:15 +08:00
    @CBS 里面写着免费版和付费版一样。付费仅仅是捐献。一开始看到这个介绍就很想支持
    imgentleman
        19
    imgentleman  
       2020-06-17 19:27:18 +08:00 via Android
    不能走代理对我来说等于没用啊,怎么解?
    mason961125
        20
    mason961125  
       2020-06-17 19:29:46 +08:00
    考虑加一下 Miniflux 等自建 RSS ? https://github.com/miniflux/miniflux
    yang991178
        21
    yang991178  
    OP
       2020-06-17 19:38:38 +08:00
    @imgentleman 支持 PAC script 配置代理
    xlpzhxhh
        22
    xlpzhxhh  
       2020-06-17 21:12:56 +08:00 via Android   ❤️ 1
    能否支持 inoreader
    greatghoul
        23
    greatghoul  
       2020-06-18 10:24:30 +08:00
    用上了,感谢。我若能坚持使用一个月,就购买支持一下作者。
    yazoox
        24
    yazoox  
       2020-06-18 12:58:40 +08:00
    好像不错的样子
    CoderLife
        25
    CoderLife  
       2020-06-18 14:04:20 +08:00
    .dmg, 72.4 MB 为啥这么大
    Mavious
        26
    Mavious  
       2020-06-19 07:35:42 +08:00 via iPhone
    本地 rss 实在是太多了……楼主不妨考虑一下 rss 皮类软件。不支持本地,只支持 inoreader 在线服务的等接口提供文章。这样的皮阅读器很稀罕的
    tcfenix
        27
    tcfenix  
       2020-06-19 09:38:21 +08:00
    @yang991178
    刚才试了一下,opml 导入没问题了,不过唯一约束的提示有点硬核....

    跟 fluent-reader 有关的建议是如果能通过键盘的上下左右,回车等按键控制左边的栏位会比较方便

    ----------------------------------------------------------------------------------

    之前我一直用 NetNewsWire 在 mac 跟 iOS 上看 rss,
    也尝试过 rss 最后的曙光 feedly,不过因为网络因素让 feedly 变得不方便

    最近开始用轻芒阅读,实际上已经很有国内的 feedly 的味道了

    楼主你的界面体验主要是冰箱贴这一块的体验是我用过的 rss 里面数一数二的,如果功能上扩展到那个程度的话那就超级完美了,加油!
    yang991178
        28
    yang991178  
    OP
       2020-06-19 09:55:57 +08:00
    @tcfenix 感谢试用,目前菜单开的情况下按两次 Tab 可以用上下和回车切换订阅源(微软 UI 组件自带的),之后应该会加入快捷键之类的键盘优化。
    jemyzhang
        29
    jemyzhang  
       2020-06-19 22:42:05 +08:00 via Android   ❤️ 1
    pack 一个 linux 版本呗
    optimus
        30
    optimus  
       2020-06-21 08:04:15 +08:00
    记得 vscode 也是这个工具开发的
    optimus
        31
    optimus  
       2020-06-21 08:04:42 +08:00
    @jemyzhang #29 框架决定了跨平台很容易
    jemyzhang
        32
    jemyzhang  
       2020-06-21 11:30:02 +08:00 via Android
    @optimus 容易归容易,有 release 意义不一样😀
    yang991178
        33
    yang991178  
    OP
       2020-06-21 13:02:35 +08:00
    @jemyzhang 等我回头装个 linux 测试下
    jemyzhang
        34
    jemyzhang  
       2020-06-22 10:29:48 +08:00
    @yang991178 #33 赞
    jemyzhang
        35
    jemyzhang  
       2020-06-22 10:49:02 +08:00
    @yang991178 #33 刚 clone 下来跑了一把,ubuntu 20.04 ,rss 点击 item 后,没有加载内容,空白的,点击下面的加载网页,网页可以加载。
    yang991178
        36
    yang991178  
    OP
       2020-06-22 10:56:41 +08:00
    @jemyzhang 应该是 git 的自动行尾转换破坏了 CSP hash,跑一下 dist/article/article.html 注释里的命令替换一下 hash 试试
    jemyzhang
        37
    jemyzhang  
       2020-06-22 11:07:54 +08:00
    @yang991178 #36 试了一下,没有用,不知道我的实验方法对不对。另外 npm build 的时候有 warnning,你看看有没有关系。不懂 js 。

    ```
    npm run build

    > [email protected] build /home/jemyzhang/workspace/github/fluent-reader
    > webpack --config ./webpack.config.js

    Hash: f0f580dd344ad2582a25bc9af38196972d8ebd8e
    Version: webpack 4.43.0
    Child
    Hash: f0f580dd344ad2582a25
    Time: 37975ms
    Built at: 2020/06/22 上午 10:59:26
    Asset Size Chunks Chunk Names
    electron.js 189 KiB 0 [emitted] main
    Entrypoint main = electron.js
    [0] external "path" 42 bytes {0} [built]
    [1] external "fs" 42 bytes {0} [built]
    [3] external "electron" 42 bytes {0} [built]
    [4] external "util" 42 bytes {0} [built]
    [5] external "assert" 42 bytes {0} [built]
    [9] external "events" 42 bytes {0} [built]
    [20] ./src/electron.ts 3.57 KiB {0} [built]
    [25] external "constants" 42 bytes {0} [built]
    [27] external "stream" 42 bytes {0} [built]
    [32] (webpack)/buildin/module.js 497 bytes {0} [built]
    [33] external "crypto" 42 bytes {0} [built]
    [46] external "os" 42 bytes {0} [built]
    [89] ./src/scripts/update-scripts.ts 373 bytes {0} [built]
    + 77 hidden modules

    WARNING in ./node_modules/write-file-atomic/index.js
    Module not found: Error: Can't resolve 'worker_threads' in '/home/jemyzhang/workspace/github/fluent-reader/node_modules/write-file-atomic'
    @ ./node_modules/write-file-atomic/index.js
    @ ./node_modules/conf/index.js
    @ ./node_modules/electron-store/index.js
    @ ./src/electron.ts
    Child
    Hash: bc9af38196972d8ebd8e
    Time: 51701ms
    Built at: 2020/06/22 上午 10:59:39
    Asset Size Chunks Chunk Names
    index.html 495 bytes [emitted]
    index.js 1.76 MiB 0 [emitted] main
    index.js.map 6.23 MiB 0 [emitted] [dev] main
    Entrypoint main = index.js index.js.map
    [25] ./src/scripts/models/app.ts 12.4 KiB {0} [built]
    [28] ./node_modules/@fluentui/react/lib/index.js + 1 modules 369 bytes {0} [built]
    | 2 modules
    [34] ./src/scripts/models/page.ts 7.8 KiB {0} [built]
    [35] ./node_modules/react-redux/es/index.js + 24 modules 50.3 KiB {0} [built]
    | 25 modules
    [39] ./src/scripts/utils.ts 4.66 KiB {0} [built]
    [40] external "electron" 42 bytes {0} [built]
    [49] ./src/scripts/models/source.ts 13.2 KiB {0} [built]
    [50] ./src/scripts/models/item.ts 11.2 KiB {0} [built]
    [55] ./src/scripts/models/feed.ts 12.9 KiB {0} [built]
    [59] ./src/scripts/settings.ts 6.9 KiB {0} [built]
    [72] external "fs" 42 bytes {0} [built]
    [74] ./src/scripts/models/group.ts 10.8 KiB {0} [built]
    [87] ./src/scripts/db.ts 788 bytes {0} [built]
    [249] ./src/index.tsx 1.91 KiB {0} [built]
    [261] ./src/scripts/reducer.ts 632 bytes {0} [built]
    + 408 hidden modules

    WARNING in ./node_modules/write-file-atomic/index.js
    Module not found: Error: Can't resolve 'worker_threads' in '/home/jemyzhang/workspace/github/fluent-reader/node_modules/write-file-atomic'
    @ ./node_modules/write-file-atomic/index.js
    @ ./node_modules/conf/index.js
    @ ./node_modules/electron-store/index.js
    @ ./src/scripts/settings.ts
    @ ./src/index.tsx
    Child HtmlWebpackCompiler:
    1 asset
    Entrypoint HtmlWebpackPlugin_0 = __child-HtmlWebpackPlugin_0
    [0] ./node_modules/html-webpack-plugin/lib/loader.js!./src/index.html 781 bytes {0} [built]

    ```
    jemyzhang
        38
    jemyzhang  
       2020-06-22 11:22:23 +08:00
    @jemyzhang #37
    https://github.com/npm/write-file-atomic/issues/41
    这个 warning 是 node js 版本导致的,ubuntu 还在用 10.19, 更新到 12 后编译 warning 没有了,但是空白的问题依旧
    yang991178
        39
    yang991178  
    OP
       2020-06-22 11:23:29 +08:00
    @jemyzhang `document.getElementById("article").openDevTools()`可以调试 webview 看看报什么错,CSP hash 有 meta 标签和 script integrity 两处
    jemyzhang
        40
    jemyzhang  
       2020-06-22 11:34:32 +08:00
    @yang991178 #39 没有,只有下面的

    security-warnings.ts:236 Electron Security Warning (enableBlinkFeatures) This renderer process has additional "enableBlinkFeatures"
    enabled. This exposes users of this app to some security risk. If you do not
    need this feature, you should disable it.

    For more information and help, consult
    https://electronjs.org/docs/tutorial/security.
    This warning will not show up
    once the app is packaged.
    jemyzhang
        41
    jemyzhang  
       2020-06-22 13:28:23 +08:00
    @yang991178 #39 等下,改了 CSP hash 后加载内容了,之前看没有内容,是因为改了之后,调试界面一直在,导致 article 页面很小,没看到加载的内容。
    yang991178
        42
    yang991178  
    OP
       2020-06-22 13:52:08 +08:00
    @jemyzhang 打包了一个 appimage 上传了,应该没什么大问题
    jemyzhang
        43
    jemyzhang  
       2020-06-22 14:10:44 +08:00
    @yang991178 #42 试过了,没问题,多谢!
    cubufu
        44
    cubufu  
       2020-07-08 09:37:49 +08:00
    谢谢开发这个软件!遇到了个问题,通过 OPML 导入订阅源之后,第一次可以更新,之后手动更新,就出现 “ A database error has occurred. Error: field names cannot begin with the $ character"。现在要更新的话,只能删掉订阅源,重新导入 OPML 更新。希望能帮忙解答下,谢谢!
    yang991178
        45
    yang991178  
    OP
       2020-07-08 11:47:12 +08:00
    @cubufu 可以分享一下 opml 吗,应该是解析 XML 没处理好的问题
    cubufu
        46
    cubufu  
       2020-07-08 18:43:13 +08:00
    @yang991178

    OPML 是我从 feedly 里导出的。电脑系统是 win10 。
    cubufu
        47
    cubufu  
       2020-07-08 18:50:04 +08:00
    @yang991178

    我把 opml 放在 github gist 上,但链接发不出来,提示说要注册满三十天才能回复。直接复制粘贴 opml 在回复里,也是提示要注册满三十天... 还有什么办法把 opml 发给你吗?
    cubufu
        48
    cubufu  
       2020-07-08 18:55:24 +08:00
    yang991178
        49
    yang991178  
    OP
       2020-07-08 20:15:48 +08:00
    @cubufu 解决了,过几天下一个版本会修复
    byte10
        50
    byte10  
       2020-07-09 10:00:33 +08:00
    有一个 RSS 客户端推荐一下给你们,小程序的 即刻阅
    cubufu
        51
    cubufu  
       2020-07-11 23:37:28 +08:00 via Android
    @yang991178 试了最新版本,问题已经解决了,感谢作者!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1246 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 17:50 · PVG 01:50 · LAX 09:50 · JFK 12:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.