Linusp / python-inoreader

Python wrapper of Inoreader API
65 stars 18 forks source link

add support for "un-star" action in rule.yaml of filter command #20

Closed karma-sun closed 2 years ago

karma-sun commented 2 years ago

add support for "un-star" action in rule.yaml of filter command

Linusp commented 2 years ago

@karma-sun 目前 filter 命令只作用于未读文章,需要 unstar 的文章会是已读过的么?之所以让 filter 命令只作用于未读文章,是因为已读文章的量会很大,这可能会让执行时间变得很长。

karma-sun commented 2 years ago

@karma-sun 目前 filter 命令只作用于未读文章,需要 unstar 的文章会是已读过的么?之所以让 filter 命令只作用于未读文章,是因为已读文章的量会很大,这可能会让执行时间变得很长。

需要 unstar 的文章几乎都是读过的额,通常都是用star标出稍后要读的,读过后觉得不需要了再取消掉 处理时间的问题,能否对命令增加起始时间的参数来解决?

Linusp commented 2 years ago

需要 unstar 的文章几乎都是读过的额,通常都是用star标出稍后要读的,读过后觉得不需要了再取消掉 处理时间的问题,能否对命令增加起始时间的参数来解决?

唔……增加起始时间也不是不可以,不过现在选定文章范围的时候是靠目录的,和你的场景不太一样,我看下增加一下文章选择的选项吧,比如说能只针对 star 过的文章进行处理,这样就满足你的需求了

karma-sun commented 2 years ago

是的,只对 star 过的文章执行un-star操作就可以了

Linusp commented 2 years ago

是的,只对 star 过的文章执行un-star操作就可以了

OK,本周将会实现

Linusp commented 2 years ago

@karma-sun 你要的功能已实现,见 https://github.com/Linusp/python-inoreader/pull/21

filter 命令的配置文件里新增了一个叫做 articles 的配置项(不能与原来的 folders 同用),示例如下:

- name: test
  articles:
    - starred: true
      unread: false
      limit: 16

  fields: ["title", "content"]
  filter:
    type: include_any
    rules:
      - 震惊
  actions:
    - type: unstar

articles 配置里每一组里可设置的参数同 InoreaderClient.fetch_articles,如果某一项不设置也其默认值也会和这个方法一样,比如 unread 默认是 True,你想要对所有星标文章做处理的话需要显式设置 unread: false 才行 —— 详见 https://github.com/Linusp/python-inoreader/blob/master/inoreader/client.py#L165