cdhigh / KindleEar

Aggregates RSS and web content(Calibre recipe), sends to Kindle, and includes an e-ink optimized online reader.
http://cdhigh.github.io/KindleEar/
MIT License
2.73k stars 630 forks source link

推送排序 #562

Closed 269774331 closed 5 years ago

269774331 commented 5 years ago

请问,我有订阅自带的内容并添加自定义的源,在推送的时候,那些自定义添加的源会合成一本书排在自带的订阅源前。请问怎么才能让自定义的源排在自带的订阅源后面(推送的时候选的是合成一本书)。

cdhigh commented 5 years ago

现在没有排序,采用默认顺序,应该就是创建数据表时的顺序。 如果你想要排序,尝试修改 apps/view/deliver.py (line 50) 现在是 books = Book.all() 可以尝试修改为: books = Book.all().order('builtin') 或: books = sorted(Book.all(), key=attrgetter('builtin'))

第二个修改需要在文件头部添加导入语句: from operator import attrgetter

269774331 commented 5 years ago

两种方法试过了,没用,有没有其它方法或者顶置或底置(自定义源的合集)

cdhigh commented 5 years ago

没用就反向排序,在builtin前加一个减号, Book.all().order('-builtin')

269774331 commented 5 years ago

试过了,自定义源还是穿插在自带的订阅中

cdhigh commented 5 years ago

这有点没道理啊。 重新部署时有没有default和worker模块都部署了? default对应app.yaml worker对应module-worker.yaml

还有,这个方法是针对自动推送的,而不是手动推送,手动推送还是网页上显示的顺序。 如果要修改手动推送的顺序,还需要修改 apps/view/Adv.py (line 35) books = [item for item in Book.all() if user.name in item.users] 修改为 books = [item for item in Book.all().order('builtin') if user.name in item.users]

269774331 commented 5 years ago

感谢大佬,手动推送和自动推送都已经成功了,之前一直看的是手动推送