Summary: | JJ: fix podcast episodes that have invalid pubdate | ||
---|---|---|---|
Product: | [Applications] amarok | Reporter: | andreaswuest |
Component: | general | Assignee: | Amarok Developers <amarok-bugs-dist> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | bart.cerneels, rasasi78, saigkill |
Priority: | NOR | ||
Version: | 2.2.0 | ||
Target Milestone: | --- | ||
Platform: | unspecified | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
screenshot of the problem
image showing the problem |
Description
andreaswuest
2009-06-30 20:25:36 UTC
Created attachment 34947 [details]
screenshot of the problem
Did you check the stream date? You can look at the stream details in the playlist: right click, edit track details. I checked all ym podcasts and those are in the correct order, using 2.2-SVN here is the required information: "Hoffnung für die Zukunft" : http://www.swr3.de/mpg/themen/topthemen/20090630/284115.6444m.mp3 "Das Vorbild ist Münchhausen" : http://www.swr3.de/mpg/themen/topthemen/20090629/283810.6444m.mp3 so the ordering is obviously not ok, just like i reported.i just updated the podcasts the newest podcast should be "Blitz, Hagel und Ungewitter - heute mehr als früher?" however it is inserted in the middle as well (see the new screenshot)! Created attachment 35098 [details]
image showing the problem
> I checked all ym podcasts and those are in the correct order
yes, if i add a podcast that is generally the case, however after updating
the podcasts a few times (after several days). the order gets broken for some
reason.
so i finally checked out the content of the database (sql is from the bug i reported earlier): i executed: Amarok.Collection.query("SELECT e.title, e.pubdate FROM podcastepisodes AS e LEFT JOIN podcastchannels AS c ON e.channel=c.id WHERE c.url='http://www.swr3.de/rss/Das_20SWR3-Topthema/-/id=477150/did=447000/b4xq4r/index.xml';"); and this is thre result i got. the e.pubdate contains very strange dates!! just have a look Der Bildungsstreik - Studentenprotest gegen verkürzte Studienzeiten,2019-02-02T13:03:04, Google Street View - Straßenkarten oder peinliche Bilder im Internet,2019-02-02T13:03:04, Piraten im Cockpit - Tarifstreit in der Formel I,2054-12-08T11:59:04, Der Widerstand gegen Klonfleisch wächst,2071-04-27T04:54:48, Drei Millionen gefälschte Wahlzettel - Irans Wächterrat stellt Unregelmäßigkeit fest,2071-04-27T04:54:48, Das Kabinett beschließt Schulden wie noch nie - die Rechnung werden wir bezahlen müssen,1973-01-16T01:23:12, Deutsche Geiseln im Jemen sollen tot sein,2019-02-02T13:03:04, Unfassbar viel Geld - schwindelerregende Transfersummen im internationalen Fußball,2019-02-02T13:03:04, Vernetzt auf Teherans Strassen - wie das Internet die Macht der Zensur bricht,2019-02-02T13:03:04, "Das Vorbild ist Münchhausen",2077-12-31T15:13:12, Die Welt trauert um Michael Jackson,2077-12-31T15:13:12, Die sensationelle Eiszeitflöte und das moderne Marketing,2077-12-31T15:13:12, "Hoffnung für die Zukunft",2022-01-10T06:06:56,Blitz, Hagel und Ungewitter - heute mehr als früher?,2032-05-23T11:01:36, Ein paar Fakten und Fragezeichen",2032-05-23T11:01:36, "Silberstreifen und optische Täuschungen",2032-05-23T11:01:36, Topthema "Das Ende der Abzocke",2032-05-23T11:01:36 I think you used an amarok 2.1 beta before that had a bug related to the pubDate parsing. The bogus pubdate values are probably because of that. Someone could write a simple script that will clear the pubdate values where they are bogus. If they are empty the episodes will be in the order they are in the feed (reverse chronological). Here is a hint for the SQL code: "UPDATE podcastepisodes SET pubdate='' WHERE (pubdate > today || pubdate < 2003);" Make sure the user gives his OK (by way of a dialog) before doing this, perhaps write an undo .sql script automatically. I'm marking this a junior job. Hi, i am currently using the version provided by kubuntu, which says it is a 2.1.1. i removed the swr3 podcast and added it again. then i executed the sql query from two posts above and i got the following result: Der Trümmergipfel von L'Aquila - Berlusconis bizarre Betteltour,1983-11-01T14:06:56,Urlaub in der Wirtschaftskrise - Deutschland profitiert,1983-11-01T14:06:56,Der Strom aus der Wüste - welches Potential steckt in der Solarenergi,1983-11-01T14:06:56,SWR3-Topthema 09.07.2009,1983-11-01T14:06:56 pubdate is now something 1983 ! so for me this looks like the date parse is broken. so imho this is not a junior job, but an issue. Is there a testcase to test the parser? i'd really appreciate a testcase since i reported this kind of problem quite some times, and it never really got fixed (sorry, i am slightly frustrated atm). unfortunately i am a java guy, otherwise i would provide a testcase myself. Hello: Looks this problem is still happennig on 2.2.0. I'm attaching the current xml for the podcast which url is: http://www.rtve.es/podcast/radio-3/el-vuelo-del-fenix/SELVUEL.xml Also take a look at the screenshot where you can see that newest are latest in the list. Sometimes new episodes appears at the beggining of the list, but this is not what usually happens. Regards, i just tried version 2.2.0 and the issue still persist. i added the podcast http://www.networkworld.com/podcasts/openmic/index.xml and the following query returns the following result: query: Amarok.Collection.query("SELECT e.title, e.pubdate FROM podcastepisodes AS e LEFT JOIN podcastchannels AS c ON e.channel=c.id WHERE c.url='http://www.networkworld.com/podcasts/openmic/index.xml';"); result: In the Linux Driver Seat with Kernel Developer Greg Kroah-Hartman,2106-02-07T07:28:15,From the iPhone to the Cloud: What's new with the Mono Project,2106-02-07T07:28:15 the pubdate is definitely not 2106-02-07T07:28:15 nor 2106-02-07T07:28:15 ! Got a patch for us? :) unfortunately my cpp-days are history :-( but i have some more information. i had a look at the source and the problem seems to be the parsePubDate Method in http://gitorious.org/amarok/amarok/blobs/master/src/podcasts/PodcastReader.cpp what strptime method is used here ? strptime( datestring.toAscii().data(), "%a, %d %b %Y %H:%M:%S %z", &tmp ); i could only find: http://www.opengroup.org/onlinepubs/009695399/functions/strptime.html which however does not define a conversion specification for "%z", maybe this is the problem?! isn't is possible to write a testecase for the parsePubDate Method with an input of 'Fri, 16 Oct 2009 00:00:00 -0400', since the result is known! should be rather easy, or am i mistaken? %z in strptime is a gnu extension. Since you are using kubuntu, the same as me, and I can not reproduce this I have no idea what is going on. Perhaps this is a database issue? Might also be a locale problem? I'm using locale "en-US" I guess yours is "de-DE"? Mark: another of those hard to track down issues. Can you please help. is it possible to add some debug messages for the next version ? i guess it should be enough to add the following line in the method parsePubDate before the return: debug() << "date string : " << datestring << ", parsed date: " << pubDate; maybe the used locale should also be added! this would at least show me if the date was really parsed correctly. Changing version. v2.2.0-695-gf4b6bf5 is using KDateTime, so 2.2.1 might fix your problem. Andreas, ca you reproduce this with Amarok 2.2.1? correct my if i am wrong, but 2.2.1 has been tagged but not yet officially released. i cannot test unless there is a version 2.2.1 for kubuntu, sorry. i guess you have to be a little more patient. Andreas, since its due for release today, I don't think I will have to wait very long :) finally this issues has been fixed. thanks. *** Bug 215560 has been marked as a duplicate of this bug. *** |