我参与了这次中科院软件研究所的暑期活动,任务是帮助EAF社区完成一个基于EAF的rss-reader,现在阅读器的主体部分已经完成了!
链接:GitHub - emacs-eaf/eaf-rss-reader: RSS Reader in Emacs
eaf-rss-reader是基于eaf的,所以在使用前当然要先安装eaf啦。
主要功能
- 以列表形式呈现feeds和feed内的文章,查阅文章的preview
- 通过eaf的browser来访问文章原页面
- 添加新的feed
- 删除一个feed
- 刷新feed(可以手动或者设置时间间隔后台自动刷新)
- 标记文章为已读/未读
- 根据文章的阅读状态来显示文章列表
其中添加和刷新功能使用了QThread,是多线程的,不会在抓取数据的时候使图形界面卡住。
按键
Key | Event | 功能 |
---|---|---|
A |
add_feed | 添加feed |
* |
add_feed | 添加feed |
R |
remove_feed | 删除feed |
x |
remove_feed | 删除feed |
r |
alter_read_status | 改变文章阅读状态 |
u |
alter_read_status | 改变文章阅读状态 |
g |
handle_refresh_rsshub_list | 手动刷新 |
b |
js_goback | 返回上一项目 |
v |
js_view_original_page | 查看原页面 |
o |
js_view_original_page | 查看原页面 |
k |
js_select_prev_item | 选择上一个项目 |
j |
js_select_next_item | 选择下一个项目 |
C-k |
js_open_current_item | 打开当前项目 |
C-j |
js_up_item | 返回上一目录 |
h |
js_up_item | 返回上一目录 |
l |
js_open_current_item | 打开当前项目 |
i |
js_open_current_item | 打开当前项目 |
<down> |
js_select_next_item | 选择下一个项目 |
<up> |
js_select_prev_file | 选择上一个项目 |
<right> |
js_open_current_item | 打开当前项目 |
<left> |
js_up_item | 返回上一目录 |
C-m |
js_open_current_item | 打开当前项目 |
C-n |
js_select_next_item | 选择下一个项目 |
C-p |
js_select_prev_item | 选择上一个项目 |
< |
select_prev_view_key | 上一个呈现状态 |
> |
select_next_view_key | 下一个呈现状态 |
F |
select_prev_view_key | 上一个呈现状态 |
H |
select_next_view_key | 下一个呈现状态 |
后续计划
因为这个项目是我在7~9月的三个月内一边学习vue.js、PyQt、eaf现有代码等内容的同时一边写的,还有很多欠缺的功能。我会在后面空闲的时间里面继续完成这些功能,当然大家也可以提出需要的功能。这里先简单列举一些:
- 当前只支持Linux,win/mac平台我还没有调试过
- 将各种设置使用一个统一的文件来写,现在是直接将配色、刷新间隔等设置直接写在python和js的代码里面了
- 文章的preview存在排版问题,无法显示图片等
- 对feeds列表和feed内的文章列表应该还需要更多操作,比如排序功能
- 搜索关键字
最后十分感谢 @MatthewZMD 和 @manateelazycat 对我这个项目的帮助和支持!