Summary: | Faulty logic in rssyl_cb_feed_compare in regards to item url? | ||||||
---|---|---|---|---|---|---|---|
Product: | Claws Mail (GTK 2) | Reporter: | Nick Koretsky <nick.koretsky> | ||||
Component: | Plugins/RSSyl | Assignee: | users | ||||
Status: | RESOLVED FIXED | ||||||
Severity: | normal | ||||||
Priority: | P3 | ||||||
Version: | 3.11.1 | ||||||
Hardware: | All | ||||||
OS: | All | ||||||
Attachments: |
|
Description
Nick Koretsky
2015-05-18 23:12:10 UTC
Created attachment 1509 [details]
Modifies rssl_cb_feed_compare()
This comparing logic is something that's been bothering me for a while, but never got around to coming back to.
Can you try attached patch to see if it works better for you? It fixes at least one bug that I sometimes see on certain feeds, while not breaking anything so far.
Well, i will try it, but at first glance it still misses (date_eq && title_eq) as match... Also i have already played with rssyl_cb_feed_compare (which didnt work initially), and after adding a lot of debug output i realized that it didnt match anything because rssyl_expire_items was removing old copy in rssyl_parse_feed before things even get to rssyl_add_item. I cant comprehend the logic behind rssyl_expire_items at all, fortunately there is keep_old option on feeds which saved me from that problem, but i am not sure that is an intended behavior... That is not true, rssyl_expire_items() is called only *after* rssyl_add_items() is called for each item in rssyl_parse_feed(). The (date_eq && title_eq) can be added to the compare logic, I guess, although we are getting into a fuzzy area there, in my opinion. Oh, how I wish permanent unique IDs were mandatory in rss/atom specs! ...it should read "rssyl_add_item()", not "rssyl_add_items()" in my previous comment, sorry. Well, this entire quest for me started with a feeds from a site were urls in old items change randomly (site have multiple domain names and it looks like it returns a random one on each read), so i cant live without (date_eq && title_eq) :)
> That is not true, rssyl_expire_items() is called only *after* >rssyl_add_items() is called for each item in rssyl_parse_feed().
Um, are you really sure about this? because in the logs it looked the other way around and switching keep_old to 1 instantly fixed the problem. (I had half of the items on this feeds turning blue daily). I didnt kept the logs but if you wish i can turn off keep_old and send you a new ones.
Disregard the previous comment, you are right. I feel stupid :( . Probably forgot to restart claws or copy newly compiled rssyl at one point during my experiments and got wrong idea... Changes related to this bug have been committed. Please check latest Git and update the bug accordingly. You can also get the patch from: http://git.claws-mail.org/ ++ ChangeLog 2015-06-04 09:17:02.186895405 +0200 http://git.claws-mail.org/?p=claws.git;a=commitdiff;h=6cff19e9ab0f14a098eb9a46c998f9e281aa668e Merge: d3e4de0 1114a38 Author: Colin Leroy <colin@colino.net> Date: Thu Jun 4 09:17:01 2015 +0200 Merge branch 'master' of file:///home/git/claws http://git.claws-mail.org/?p=claws.git;a=commitdiff;h=1114a38f3890f45e48285f35695ade33e30c3c82 Author: Andrej Kacian <ticho@claws-mail.org> Date: Sat May 23 20:56:35 2015 +0200 RSSyl: Reworked item comparing logic, partly based on bug #3429. |