2004-03-21 14:51 epaepa * Makefile.PL, README, doc/README.win32, lib/XMLTV.pm.in, lib/exe_wrap.pl: Version 0.5.31. 2004-03-19 21:15 epaepa * grab/uk_rt/channel_ids: Channel updates from Ryan Dalzell. 2004-03-19 21:12 epaepa * grab/uk_rt/tv_grab_uk_rt.in: Patch from Ryan Dalzell to not add 'Remind me by text' to programme descriptions. 2004-03-19 13:14 epaepa * grab/Europe_TZ.pm: Convert DST start and end dates into local winter time before comparing against the local time string. 2004-03-19 12:39 epaepa * grab/na_dd/tv_grab_na_dd: generator-info-name="XMLTV", like the other grabbers. 2004-03-19 12:35 epaepa * grab/na_dd/tv_grab_na_dd: Added --password-file to read DD password from a file. 2004-03-19 11:33 epaepa * grab/na_dd/tv_grab_na_dd: Accidentally turned off reading password from config file in earlier change. It will go away eventually, though. 2004-03-19 11:26 epaepa * grab/Europe_TZ.pm: Cope with impossible dates (during the one hour skip from winter to summer time). Assume they are winter time. 2004-03-18 19:24 epaepa * grab/na_dd/tv_grab_na_dd: Don't store the password in the config file - prompt for it when grabbing. 2004-03-18 17:03 epaepa * grab/na_dd/tv_grab_na_dd: Use undef rather than the empty string as the unset value for various options, and test definedness rather than truth. This fixes a few bugs with the filename '0' and so on. Refactored credits handling and fixed a spelling mistake, so it now does more roles. Added a check for unknown roles so that similar mistakes will be caught. Small change to progress bar message. 2004-03-18 16:06 epaepa * grab/na_dd/tv_grab_na_dd: Titles and descriptions are not necessarily in English. 2004-03-18 15:45 epaepa * grab/na_dd/tv_grab_na_dd: Catch '401 Unauthorized' from site. 2004-03-18 15:37 epaepa * grab/na_dd/tv_grab_na_dd: Use GNU long option style with words separated by hyphen not underscore. The underscore format is still accepted. 2004-03-17 21:10 epaepa * t/test_tv_split.t: Added explicit close() to make sure the temp directory can be cleaned up at exit (bug on Cygwin spotted by Niel Markwick). 2004-03-17 18:36 epaepa * MANIFEST: Corrected filename. 2004-03-17 17:43 mattiasholmlund * grab/se/tv_grab_se: Detect filler for tv3. Fix urls for shows from viasat. 2004-03-17 06:00 rmeden * choose/tv_check/tv_check: fix problems with the on-exit handler 2004-03-16 22:43 rmeden * lib/exe_opt.pl: fix underf warning when storing version number in windows 2004-03-16 22:39 rmeden * lib/exe_wrap.pl: make list of valid commands easier to read 2004-03-15 21:26 rmeden * grab/na_dd/tv_grab_na_dd: add --dd_data, and --reprocess options. add code to allow debugging of SOAP fetch 2004-03-15 17:48 mattiasholmlund * grab/se/tv_grab_se: Rewrite grabber for tv4.se to make it simpler and remove filler-entries that signify that there is no programme 2004-03-13 18:15 rmeden * grab/na_dd/tv_grab_na_dd: replace certificate code tvRating is in not 2004-03-12 20:37 mattiasholmlund * grab/se/tv_grab_se: Add urls to program descriptions for SVT and TV4. More robust handling of relative links. 2004-03-12 18:08 rmeden * grab/na_dd/tv_grab_na_dd: add workaround for non-unique lineup names 2004-03-12 17:32 stesie * grab/de_tvtoday/tv_grab_de_tvtoday.in: handle brackets within show-titles correctly 2004-03-12 17:18 stesie * grab/de_tvtoday/tv_grab_de_tvtoday.in: fixed timezone problem (mail by Mark Swanson, from 2004-03-08): global $today expected to store current date in CE(S)T timezone, not local TZ 2004-03-12 15:50 rmeden * Makefile.PL: fix tv_grab_na_dd name 2004-03-12 15:43 rmeden * README: mention tv_grab_na_dd and XML::Twig 3.10 2004-03-11 23:58 rmeden * MANIFEST, Makefile.PL: add tv_grab_na_dd 2004-03-11 01:13 rmeden * grab/na_dd/tv_grab_na_dd: add minor channel numbers for digital tv 2004-03-10 23:17 rmeden * grab/na_dd/tv_grab_na_dd: Initial commit of grabber to use Zap2IT's Data Direct service 2004-03-07 21:18 epaepa * doc/README.win32: Corrected release note for 0.5.30-win32-2 build. 2004-03-07 14:02 epaepa * filter/tv_imdb: Removed obsolete todo item. 2004-03-06 12:06 epaepa * README: Updated signature line. 2004-03-06 12:04 epaepa * Makefile.PL, README, doc/README.win32, lib/XMLTV.pm.in, lib/exe_wrap.pl: Version 0.5.30. 2004-03-06 11:43 epaepa * Makefile.PL, README: XML::Writer 0.4.6 is now required. 2004-03-06 11:35 epaepa * grab/es_digital/tv_grab_es_digital: If title not found, try using description instead. 2004-03-06 11:26 epaepa * grab/uk_rt/tv_grab_uk_rt.in: Use get_url() for channels pages instead of calling get_nice() directly. 2004-03-02 21:00 epaepa * grab/na/tv_grab_na: Make sure the current time ($now) is set before listing channels. (Sourceforge bug #907289.) 2004-02-29 13:54 epaepa * grab/uk_rt/: channel_ids, tv_grab_uk_rt.in: Patch from Dan Sheridan to add radio channels. 2004-02-26 04:28 komoriya * grab/jp/tv_grab_jp: fixed unexpected deletion of figures in wide charactors. 2004-02-24 11:43 mattiasholmlund * grab/se/tv_grab_se: Include information on exit status in documentation. 2004-02-23 20:55 epaepa * MANIFEST, Makefile.PL, doc/QuickStart, grab/fr/tv_grab_fr: Adding Sylvain Fabre's tv_grab_fr grabber for France. 2004-02-23 20:30 epaepa * MANIFEST, Makefile.PL, README, doc/QuickStart, grab/se/tv_grab_se: Adding Mattias Holmlund's tv_grab_se for Sweden. 2004-02-23 20:13 epaepa * MANIFEST, Makefile.PL, README, doc/QuickStart, grab/de_tvtoday/channel_ids, grab/de_tvtoday/tv_grab_de_tvtoday.PL, grab/de_tvtoday/tv_grab_de_tvtoday.in, lib/exe_wrap.pl: Adding Stefan Siegl's tv_grab_de_tvtoday. 2004-02-23 19:58 epaepa * grab/uk_rt/tv_grab_uk_rt.in: Comment. 2004-02-23 06:49 rmeden * choose/tv_check/tv_check: use parse_date in XMLTV::Date instead of Date::Manip to improve error handling 2004-02-22 19:03 epaepa * lib/XMLTV.pm.in: The contained inside is a normal element, so it can have a 'lang' attribute. Call the with-lang handler to read and write it. 2004-02-22 18:59 epaepa * t/data/: test.xml, tv_cat_all_UTF8.expected, tv_cat_test_xml.expected, tv_cat_test_xml_test_xml.expected, tv_extractinfo_en_all_UTF8.expected, tv_extractinfo_en_test_xml.expected, tv_extractinfo_en_test_xml_test_xml.expected, tv_grep_a_all_UTF8.expected, tv_grep_a_test_xml.expected, tv_grep_a_test_xml_test_xml.expected, tv_grep_category_g_or_title_h_all_UTF8.expected, tv_grep_category_g_or_title_h_test_xml.expected, tv_grep_category_g_or_title_h_test_xml_test_xml.expected, tv_grep_channel_xyz_or_not_channel_b_all_UTF8.expected, tv_grep_channel_xyz_or_not_channel_b_test_xml.expected, tv_grep_channel_xyz_or_not_channel_b_test_xml_test_xml.expected, tv_grep_eval_scalar_keys_5_all_UTF8.expected, tv_grep_eval_scalar_keys_5_test_xml.expected, tv_grep_eval_scalar_keys_5_test_xml_test_xml.expected, tv_grep_not_channel_id_channel4_com_all_UTF8.expected, tv_grep_not_channel_id_channel4_com_test_xml.expected, tv_grep_not_channel_id_channel4_com_test_xml_test_xml.expected, tv_grep_not_channel_name_d_all_UTF8.expected, tv_grep_not_channel_name_d_test_xml.expected, tv_grep_not_channel_name_d_test_xml_test_xml.expected, tv_grep_on_before_200302161330_UTC_all_UTF8.expected, tv_grep_on_before_200302161330_UTC_test_xml.expected, tv_grep_on_before_200302161330_UTC_test_xml_test_xml.expected, tv_remove_some_overlapping_all_UTF8.expected, tv_remove_some_overlapping_test_xml.expected, tv_remove_some_overlapping_test_xml_test_xml.expected, tv_sort_all_UTF8.expected, tv_sort_by_channel_all_UTF8.expected, tv_sort_by_channel_test_xml.expected, tv_sort_by_channel_test_xml_test_xml.expected, tv_sort_test_xml.expected, tv_sort_test_xml_test_xml.expected: Test that can contain . 2004-02-21 19:20 epaepa * MANIFEST, Makefile.PL, README, doc/QuickStart, doc/README.win32, grab/jp/README.CATV, grab/jp/README.CATV.ja, grab/jp/tv_grab_jp: Takeru Komoriya's tv_grab_jp for Japan. 2004-02-21 18:54 epaepa * MANIFEST: Added missing files. 2004-02-21 18:50 epaepa * t/test_europe_tz.t: Tiny test suite for XMLTV::Europe_TZ (one person was having strange problems). 2004-02-21 18:47 epaepa * grab/Europe_TZ.pm: Comment. 2004-02-21 18:43 epaepa * choose/tv_check/.cvsignore: Removing .cvsignore file - not part of the source code and not really needed. 2004-02-14 22:33 epaepa * Makefile.PL, README, doc/README.win32, lib/XMLTV.pm.in, lib/exe_wrap.pl: Version 0.5.29. 2004-02-14 22:19 epaepa * grab/nl/channels: Changed names to match the site. 2004-02-14 22:10 epaepa * grab/nl_wolf/tv_grab_nl_wolf: Removed debugging print. 2004-02-14 17:53 ramonroca * doc/QuickStart, doc/README.win32, grab/es/tv_grab_es: New grabber for D+ (Spain) 2004-02-14 17:50 ramonroca * grab/es_digital/tv_grab_es_digital, Makefile.PL, README: New grabber for D+ (Spain) 2004-02-14 11:53 ramonroca * grab/es/tv_grab_es, Makefile.PL: New grabber for D+ (Spain) 2004-02-12 22:56 rmeden * lib/exe_opt.pl: add some optional modules so the exe can find them 2004-02-12 20:20 epaepa * grab/uk_rt/tv_grab_uk_rt.in: Another patch from Niel Markwick: fix the occasional title-parsing bug, and replace one while () { shift; ... } with a foreach. For the latter change I don't understand why it worked at all before, but the new code seems probably correct. 2004-02-11 21:04 epaepa * grab/nl_wolf/tv_grab_nl_wolf: Skip zero-length files on the site. 2004-02-11 20:40 epaepa * README: HTML::Entities needed by tv_grab_uk_rt. 2004-02-11 20:39 epaepa * Makefile.PL: tv_grab_uk_rt now needs HTML::Entities (part of the HTML::Parser package). 2004-02-11 20:34 epaepa * grab/uk_rt/tv_grab_uk_rt.in: Patch mostly by Neil Markwick to reduce the number of page fetches by remembering the last programme seen on a channel and skipping ahead some hours if possible. Also to give a --limit-details range for restricting the download of programme details (not all or nothing like --slow), and clean up some bad characters in grabbing, and handle multi-paragraph descriptions as one element. 2004-02-07 18:02 epaepa * grab/uk_rt/tv_grab_uk_rt.in: Patch from Charles Brej (with one change) to not grab redundant pages - those where the times have already been seen in an earlier fetch. 2004-02-05 23:47 epaepa * lib/exe_wrap.pl: Chatter goes to stderr not stdout. 2004-02-03 21:44 epaepa * README: Storable is needed. 2004-02-03 21:39 epaepa * mkdist: Upse -P flag in checkout to prune empty directories. 2004-02-01 21:47 epaepa * README: Fixed date. 2004-02-01 21:46 epaepa * mkdist: Updated VERSION check to handle exe_wrap.pl (it works this time). 2004-02-01 21:45 epaepa * lib/exe_wrap.pl: Moved version number into a more obvious place so mkdist can check it. 2004-02-01 21:42 epaepa * Makefile.PL, README, doc/README.win32, lib/XMLTV.pm.in, lib/exe_wrap.pl: Version 0.5.28. 2004-02-01 21:40 epaepa * MANIFEST: Added missing file. 2004-02-01 21:26 epaepa * grab/uk_rt/channel_ids: Added some more channels. 2004-02-01 21:07 epaepa * grab/uk_rt/channel_ids: Removed tv_grab_uk. 2004-02-01 20:38 epaepa * MANIFEST, Makefile.PL, README, doc/QuickStart, doc/README.win32, grab/fi/tv_grab_fi, grab/hu/tv_grab_hu, grab/it/tv_grab_it.in, grab/uk_rt/tv_grab_uk_rt.PL, lib/exe_wrap.pl: Removed tv_grab_uk. 2004-02-01 20:23 epaepa * Makefile.PL: Removed ' from regexp to avoid confusing Emacs fontification. 2004-02-01 20:11 epaepa * grab/uk_rt/tv_grab_uk_rt.in: Don't output duplicate programmes. 2004-02-01 20:07 epaepa * grab/uk_rt/tv_grab_uk_rt.in: Made the previous-day check happen for listings pages that aren't for midnight. I don't fully understand what is going on. 2004-02-01 19:06 epaepa * grab/uk_rt/tv_grab_uk_rt.in: Correctly handle programmes on the 00:00 page which began late the previous day. 2004-02-01 17:49 epaepa * grab/uk_rt/tv_grab_uk_rt.in: Changed domain name of source website and made sure code uses $DOMAIN. 2004-02-01 11:46 epaepa * Makefile.PL: Skip over autosave and backup files in the grab/uk/channel_pkgs/ directory. This makes no difference to users of the source tarball but avoids bizarre errors when building from a working copy. 2004-01-30 21:16 rmeden * choose/tv_check/tv_check: fix new XML processing for LANG (which no one really uses anyway) 2004-01-29 21:23 epaepa * lib/XMLTV.pm.in: Moved the handler into a new routine read_icon(), which was being called to read icons inside ratings even though it didn't exist. 2004-01-29 21:22 epaepa * t/data/: test.xml, tv_cat_all_UTF8.expected, tv_cat_test_xml.expected, tv_cat_test_xml_test_xml.expected, tv_extractinfo_en_all_UTF8.expected, tv_extractinfo_en_test_xml.expected, tv_extractinfo_en_test_xml_test_xml.expected, tv_grep_a_all_UTF8.expected, tv_grep_a_test_xml.expected, tv_grep_a_test_xml_test_xml.expected, tv_grep_category_g_or_title_h_all_UTF8.expected, tv_grep_category_g_or_title_h_test_xml.expected, tv_grep_category_g_or_title_h_test_xml_test_xml.expected, tv_grep_channel_xyz_or_not_channel_b_all_UTF8.expected, tv_grep_channel_xyz_or_not_channel_b_test_xml.expected, tv_grep_channel_xyz_or_not_channel_b_test_xml_test_xml.expected, tv_grep_eval_scalar_keys_5_all_UTF8.expected, tv_grep_eval_scalar_keys_5_test_xml.expected, tv_grep_eval_scalar_keys_5_test_xml_test_xml.expected, tv_grep_not_channel_id_channel4_com_all_UTF8.expected, tv_grep_not_channel_id_channel4_com_test_xml.expected, tv_grep_not_channel_id_channel4_com_test_xml_test_xml.expected, tv_grep_not_channel_name_d_all_UTF8.expected, tv_grep_not_channel_name_d_test_xml.expected, tv_grep_not_channel_name_d_test_xml_test_xml.expected, tv_grep_on_before_200302161330_UTC_all_UTF8.expected, tv_grep_on_before_200302161330_UTC_test_xml.expected, tv_grep_on_before_200302161330_UTC_test_xml_test_xml.expected, tv_remove_some_overlapping_all_UTF8.expected, tv_remove_some_overlapping_test_xml.expected, tv_remove_some_overlapping_test_xml_test_xml.expected, tv_sort_all_UTF8.expected, tv_sort_by_channel_all_UTF8.expected, tv_sort_by_channel_test_xml.expected, tv_sort_by_channel_test_xml_test_xml.expected, tv_sort_test_xml.expected, tv_sort_test_xml_test_xml.expected: Added icon to rating in test.xml example input. This catches a bug where rating icon support was not implemented in XMLTV.pm. 2004-01-29 21:05 epaepa * t/test_icon.t: Made into a proper test ('ok 1', at least when it passes). Fixed charset warning. 2004-01-26 15:25 rmeden * README: remove requirement for XML::Simple 2004-01-26 03:41 rmeden * Makefile.PL: TV_CHECK now uses XML::Twig and XML::Writer so XML::Simple not needed 2004-01-26 03:41 rmeden * choose/tv_check/tv_check: replace XML::Simple with XML::Twig so UTF-8 chacaters can be included in titles. Also remove a dependency. 2004-01-25 00:03 epaepa * grab/uk_rt/tv_grab_uk_rt.in: Brown-paper-bag bug in previous change. 2004-01-24 23:57 epaepa * t/test_icon.t: Test case for Sourceforge bug #876003. 2004-01-24 23:46 epaepa * lib/XMLTV.pm.in: Added missing write_icon(), fixing Sourceforge bug #876003. 2004-01-24 23:43 epaepa * lib/AskTerm.pm: askQuestion(): recover properly when stdin cannot be read, returning undef (in code for numbered list). 2004-01-24 23:40 epaepa * grab/Get_nice.pm: Applied Sourceforge patch #875950 from Niel Markwick: have a delay between page fetches, but remember when the last fetch was and sleep() only for the time necessary to make up the delay. 2004-01-24 22:39 epaepa * grab/uk_rt/: channel_ids, tv_grab_uk_rt.in: Applied (with minor tweaks) Sourceforge patch #877617 from Niel Markwick to get extra channels from the site. It turns out you only need supply a couple of cookies, and the site doesn't care what their values are. Made the grabber fetch summary data by default, with a --slow flag to enable the one-page-per-programme detailed grabbing. Better behaviour if asking questions during configuration fails. 2004-01-20 20:57 epaepa * filter/tv_split, t/test_tv_split.t: If tv_split is splitting by channel, then just one element should be written to each output file. 2004-01-20 20:33 epaepa * t/test_tv_split.t: Fixed filename in error messages. 2004-01-20 20:06 epaepa * lib/IMDB.pm: closeMaybeGunzip(): even a plain close() segfaults on some systems, so do nothing. 2004-01-13 03:38 jveldhuis * lib/IMDB.pm: updated estimates and now .info file is written in sorted order 2004-01-10 10:47 jskov * grab/dk/tv_grab_dk: Lang is da for Danish 2004-01-07 20:07 epaepa * Makefile.PL: Avoid // at start of installation paths (Sourceforge bug #872444). 2004-01-07 19:55 epaepa * grab/nl/tv_grab_nl.in: --share option takes a string, it is not a flag. 2004-01-07 19:26 epaepa * Makefile.PL, lib/Date.pm: Patch from Debian (modified a bit) to fix XMLTV::Date manual page. 2004-01-07 06:56 rmeden * lib/exe_opt.pl: add safe to ignore dependancy to avoid warning during PerlApp 2004-01-07 06:47 rmeden * choose/tv_check/tv_check: include year in date checks to avoid end of year problems 2004-01-06 20:45 epaepa * filter/tv_sort, t/data/tv_sort_overlap_xml.expected_err: Made the error output (overlap warning) repeatable by adding a 'sort' and by removing a $Log::TraceMessages::On that caused warnings. 2004-01-06 20:42 epaepa * choose/tv_pick/tv_pick_cgi, lib/Clumps.pm: Commented out lone mentions of $Log::TraceMessages::On which tend to cause warnings. 2004-01-06 20:15 epaepa * lib/exe_wrap.pl: Check for the mistake of running a command with redirections from Windows's Run dialogue box instead of the command prompt. 2004-01-06 19:53 epaepa * grab/uk_rt/tv_grab_uk_rt.in: Patch from Edward Wildgoose to recognize the site's star ratings. 2004-01-05 21:52 epaepa * mkdist, lib/exe_wrap.pl: Support 'xmltv.exe --version'. (mkdist changes not yet tested.) 2004-01-04 18:04 epaepa * lib/XMLTV.pm.in: Moved the __WARN__ handler on writing down a level to call_handlers_write() so that the warning message can include the name of the subelement being written as well as the big element ('programme' or whatever). call_handlers_write() now returns a success value which is checked before calling it again with the real XML::Writer. 2004-01-04 13:17 epaepa * Makefile.PL, README, doc/README.win32, lib/XMLTV.pm.in: Version 0.5.27. 2004-01-04 12:14 epaepa * Makefile.PL: Discard stderr when trying to run python - it might not be installed. 2004-01-04 11:48 epaepa * lib/XMLTV.pm.in: 'require' rather than 'use' XMLTV::Date because XMLTV.pm is loaded at build time and XMLTV::Date is not available then. (Sourceforge bug #870171.) 2004-01-04 11:33 epaepa * Makefile.PL: Suppress 'isn't numeric' warnings from MakeMaker (Sourceforge bug #870170, but has been an annoyance for a while). 2004-01-03 22:44 epaepa * Makefile.PL, README, doc/README.win32, lib/XMLTV.pm.in: Version 0.5.26. 2004-01-03 22:15 epaepa * MANIFEST: Added a missing file. 2004-01-03 21:55 epaepa * grab/it/tv_grab_it.in: Fixed --days and --offset. 2004-01-03 21:24 epaepa * grab/dk/tv_grab_dk: --offset was being counted twice. 2004-01-03 14:52 epaepa * Makefile.PL, Uninstall.pm, analyse_tvprefs/analyse_tvprefs, choose/tv_pick/merge_tvprefs, filter/Grep.pm, grab/Config_file.pm, grab/Europe_TZ.pm, grab/Get_nice.pm, grab/Grab_XML.pm, grab/Memoize.pm, grab/Mode.pm, grab/nz/tv_grab_nz.PL, grab/uk_rt/tv_grab_uk_rt.PL, lib/Ask.pm, lib/AskTerm.pm, lib/AskTk.pm, lib/Clumps.pm, lib/Date.pm, lib/Gunzip.pm, lib/Summarize.pm, lib/TZ.pm, lib/Usage.pm, lib/XMLTV.pm.in, lib/set_share_dir.pl, t/add_time_info, t/test_filters.t, t/test_library.t, t/test_tv_split.t: Made sure every Perl source file has a CVS Id: thingy. 2004-01-03 14:35 epaepa * grab/nl/channels: Changed some channel names to match those on the site. I hope the rest are correct. 2004-01-03 12:14 epaepa * MANIFEST: Added a missing file. 2004-01-03 12:10 epaepa * t/test_filters.t: Comment. 2004-01-03 12:03 epaepa * doc/QuickStart: Updated the list of grabbers. 2004-01-03 11:57 epaepa * analyse_tvprefs/analyse_tvprefs: 'use warnings' instead of -w. 2004-01-03 11:52 epaepa * grab/Grab_XML.pm: Added __DIE__ handler to print URL. 2004-01-03 11:49 epaepa * grab/Get_nice.pm: Comment. 2004-01-03 11:46 epaepa * grab/Europe_TZ.pm: Improved error message. 2004-01-02 20:41 epaepa * grab/nl/tv_grab_nl.in: get_channels(): read the channel names file. The new boolean parameter says whether to read the site as well and reconcile the two (more paranoia, but also more downloading). Call get_channels() to get channel details before grabbing as well as for --configure and --list-channels. --configure still downloads the channel list from the site but --list-channels and grabbing do not. Changed the error about bad channel names to a warning, since it can happen if the channels file has different names from the site. 2004-01-02 20:07 epaepa * MANIFEST, Makefile.PL, grab/nl/channels, grab/nl/tv_grab_nl, grab/nl/tv_grab_nl.PL, grab/nl/tv_grab_nl.in, lib/exe_wrap.pl: Repackaged tv_grab_nl so it follows some of the other grabbers in having a data file in share/ which it needs to load at run time. tv_grab_nl is generated from tv_grab_nl.in by substituting in the configured share/ path. Now this new version doesn't _do_ anything different, and has no code changes apart from setting the share/ directory and the filename of the channels file, but because the source filename has changed I'm committing now so that diffing will be simpler. 2004-01-02 19:34 epaepa * grab/nl/tv_grab_nl: Don't rely on channel names in the config file: wait until we've read the listings pages (and so have got channel names) before writing any elements. The config file no longer contains channel names, although old format files are still accepted for now. 2004-01-02 19:27 epaepa * lib/XMLTV.pm.in: Made the writing handlers accept undef instead of an XML::Writer, and take it as meaning don't write anything. Then write_element_with_handlers() first calls all the handlers with undef and makes sure there are no warnings before it writes anything. This makes it a bit harder to produce invalid output. 2004-01-02 18:59 epaepa * grab/nl/tv_grab_nl: Take note of the channel names on the site and check them against what's in the config file. 2004-01-01 12:39 epaepa * grab/es/tv_grab_es: Include the channel number (the number from the site, which is apparently the same as the button number on a television) as an extra display-name. 2004-01-01 12:31 epaepa * mkdist, filter/tv_extractinfo_en, filter/tv_grep.in, filter/tv_remove_some_overlapping, filter/tv_sort, grab/Europe_TZ.pm, grab/Grab_XML.pm, grab/dk/tv_grab_dk, grab/es/tv_grab_es, grab/fi/tv_grab_fi, grab/hu/tv_grab_hu, grab/na/tv_grab_na, grab/nl/tv_grab_nl, grab/uk_rt/tv_grab_uk_rt.in, lib/Clumps.pm, lib/Date.pm, lib/TZ.pm, lib/XMLTV.pm.in: Changed most ParseDate() calls to parse_date() instead. Then a manual check of the return value is not needed (though in cases where a bad date is acceptable the parse_date() call must be wrapped in eval {}). Also changed parse_eur_date() and tz_to_num() to throw exceptions on error. Where ParseDate() is called, the recommended way in the Date::Manip docs to check for errors is to test the truth value of what's returned. 2003-12-31 21:54 epaepa * Makefile.PL, grab/Europe_TZ.pm, grab/nl/tv_grab_nl, grab/uk_rt/tv_grab_uk_rt.in, lib/Date.pm: New library XMLTV::Date with a parse_date() wrapper for ParseDate() that makes a more intelligent choice of year. ParseDate() assumes the current year if it's not given, which obviously causes problems when grabbing listings across a year boundary. parse_date() picks the closest possibility to the current time. It also throws an exception on failure rather than returning the empty string. Eventually I hope to replace all ParseDate() calls with this function, but for now I just fixed Europe_TZ.pm (which gets tv_grab_nl working again) and tv_grab_uk_rt. 2003-12-31 21:51 epaepa * t/test_filters.t: Set LANG=C for running tests; we can do this with the latest Lingua::Preferred. 2003-12-31 21:50 epaepa * lib/AskTerm.pm: When presenting a numbered list of options, accept typing the option string instead of the number. (And made the prompt shorter.) 2003-12-31 19:28 epaepa * Makefile.PL: Lingua::Preferred 0.2.4 now recommended (it accepts LANG=C). 2003-12-31 19:13 epaepa * lib/IMDB.pm: Added a missing /i to compare titles case-insensitively; this fixes the bug found by Karen Etheridge where duplicate (modulo case) titles would be added. 2003-12-31 18:59 epaepa * grab/na/: ZapListings.pm, tv_grab_na: Parsing the Sourceforge project page to get version number had stopped working, so changed to use the Freshmeat XML project record instead. 2003-12-31 18:45 epaepa * grab/na/tv_grab_na: Accept the --cache option in configuration mode too and pass it as CacheDir to ZapListings.pm. Now it's just up to ZapListings to use it... 2003-12-30 21:51 epaepa * grab/fi/tv_grab_fi: Recognize class 'kanava-klo-nyt' (used for current programme) as well as 'kanava-klo'. Pointed out by Riku Voipo. 2003-12-30 21:15 epaepa * MANIFEST: tv_grab_uk channel package for NTL analogue cable TV in the Republic of Ireland. 2003-12-29 21:21 epaepa * MANIFEST: Fixed some errors and warnings in tv_grab_uk's channel ids; the 'scotland' package has disappeared since it contained only one channel and that is no longer on the site. Implemented Sourceforge feature request #858792 by adding more channels to the 'ireland' package. I've also set xmltv ids for those Irish channels that lacked them. 2003-12-19 06:09 rmeden * Makefile.PL: correct min version for HTML::Parser (got confused with XML::Parser) 2003-12-19 06:01 rmeden * filter/tv_imdb: expand on memory requirments in man page 2003-12-18 20:48 epaepa * lib/AskTerm.pm: match(): new routine factoring out selecting an exact or substring match. 2003-12-18 20:44 epaepa * lib/AskTerm.pm: askQuestion(): if going to numbered prompting, and any of the options happen to themselves be numbers in the range, make sure they are at that question number. Too confusing to type '5' to enter option '6'. The list of options is now required to have no duplicates. 2003-12-14 20:52 epaepa * filter/tv_sort, t/data/tv_sort_overlap_xml.expected_err: Changed tv_sort to complain less about overlapping programmes. In particular if two programmes start at the same time and one of them is zero length, assume it just squeezes in before the other. As a side effect, fixed some other minor bugs in reporting of overlaps (I hope that tv_sort will now not report an overlap unless it's certain there is one). But this whole exercise has proven I don't really understand the intended meaning of zero-length programmes and intervals (many listings sources generate zero-length programmes, and they seem to be of some vague practical use, but I haven't really thought out the implications). Hopefully the new DTD (with explicit timeslots replacing clumpidxes) will be a bit saner. 2003-12-14 19:12 epaepa * t/data/tv_sort_overlap_xml.expected_err: Catch bug in tv_sort where it incorrectly reports about overlapping programmes because it doesn't treat (start, stop) as a half-closed interval. 2003-12-14 19:09 epaepa * t/test_filters.t: Include tv_to_text, and running commands on just overlap.xml, in the standard set of tests. 2003-12-14 19:08 epaepa * t/data/: overlap.xml, tv_cat_all_UTF8.expected, tv_cat_overlap_xml.expected, tv_extractinfo_en_all_UTF8.expected, tv_extractinfo_en_overlap_xml.expected, tv_grep_a_all_UTF8.expected, tv_grep_a_overlap_xml.expected, tv_grep_category_g_or_title_h_all_UTF8.expected, tv_grep_category_g_or_title_h_overlap_xml.expected, tv_grep_channel_xyz_or_not_channel_b_all_UTF8.expected, tv_grep_channel_xyz_or_not_channel_b_overlap_xml.expected, tv_grep_not_channel_id_channel4_com_all_UTF8.expected, tv_grep_not_channel_id_channel4_com_overlap_xml.expected, tv_grep_not_channel_name_d_all_UTF8.expected, tv_grep_not_channel_name_d_overlap_xml.expected, tv_grep_on_before_200302161330_UTC_all_UTF8.expected, tv_grep_on_before_200302161330_UTC_overlap_xml.expected, tv_remove_some_overlapping_all_UTF8.expected, tv_remove_some_overlapping_overlap_xml.expected, tv_sort_all_UTF8.expected, tv_sort_by_channel_all_UTF8.expected, tv_sort_by_channel_overlap_xml.expected, tv_sort_overlap_xml.expected, tv_to_latex_all_UTF8.expected, tv_to_latex_overlap_xml.expected, tv_to_text_all_UTF8.expected, tv_to_text_overlap_xml.expected: Additions to overlap.xml in aid of catching a bug in tv_sort. 2003-12-14 18:56 epaepa * t/data/: tv_to_text_all_UTF8.expected, tv_to_text_amp_xml.expected, tv_to_text_amp_xml_amp_xml.expected, tv_to_text_amp_xml_clump_xml.expected, tv_to_text_amp_xml_dups_xml.expected, tv_to_text_amp_xml_empty_xml.expected, tv_to_text_amp_xml_empty_xml_empty_xml_clump_xml.expected, tv_to_text_clump_xml_amp_xml.expected, tv_to_text_dups_xml_amp_xml.expected, tv_to_text_empty_xml_amp_xml.expected: Corrected expected output for tv_to_text after previous 'TA' channel name change in an input file. 2003-12-14 18:33 epaepa * filter/tv_remove_some_overlapping, t/data/tv_remove_some_overlapping_all_UTF8.expected, t/data/tv_remove_some_overlapping_amp_xml_amp_xml.expected, t/data/tv_remove_some_overlapping_amp_xml_dups_xml.expected, t/data/tv_remove_some_overlapping_clump_xml_amp_xml.expected, t/data/tv_remove_some_overlapping_clump_xml_dups_xml.expected, t/data/tv_remove_some_overlapping_dups_xml.expected, t/data/tv_remove_some_overlapping_dups_xml_amp_xml.expected, t/data/tv_remove_some_overlapping_dups_xml_clump_xml.expected, t/data/tv_remove_some_overlapping_dups_xml_dups_xml.expected, t/data/tv_remove_some_overlapping_dups_xml_empty_xml.expected, t/data/tv_remove_some_overlapping_empty_xml_dups_xml.expected, t/data/tv_remove_some_overlapping_intervals_xml.expected, t/data/tv_remove_some_overlapping_sort1_xml.expected, t/data/tv_remove_some_overlapping_sort2_xml.expected, t/data/tv_remove_some_overlapping_sort_xml.expected: tv_remove_some_overlapping: write output programmes in same order as input, rather than writing uninteresting programmes as early as possible. 2003-12-14 17:58 epaepa * filter/tv_remove_some_overlapping: Corrected manual page. 2003-12-14 17:45 epaepa * README, Makefile.PL: XML::Writer-0.4.1 is now required. This release can currently be found only in my CPAN author directory, but I hope the same fix (for an annoying warning) can be included in the official version eventually. 2003-12-14 11:11 epaepa * t/test_filters.t: If a 'foo.expected_err' file exists, check stderr against it. 2003-12-14 10:50 epaepa * t/test_tv_split.t: Whitespace. 2003-12-14 10:48 epaepa * t/test_filters.t: Comment. 2003-12-14 09:44 epaepa * xmltv.dtd: ISO 3316 is 'assembly tools for screws and nuts' apparently - no idea why I thought it specified language codes. Anyway, we should use RFC 1766. 2003-12-10 21:37 epaepa * mkdist, grab/Get_nice.pm, grab/na/ZapListings.pm: Set User-Agent to "xmltv/$XMLTV::VERSION". 2003-12-10 21:30 epaepa * grab/: Grab_XML.pm, Memoize.pm, de/tv_grab_de, dk/tv_grab_dk, nl_wolf/tv_grab_nl_wolf, uk_rt/tv_grab_uk_rt.in: Refactoring: use XMLTV::Get_nice instead of LWP::Simple, with $Delay = 0 where appropriate. 2003-12-10 20:56 epaepa * grab/Get_nice.pm: Let the user change the default five seconds as $Delay. 2003-12-09 06:46 rmeden * lib/exe_opt.pl: add perlio::gzip to trim list. At least until we upgrade EXE to Perl58 2003-12-09 06:45 rmeden * Makefile.PL: correct minimum version number of XML::Parser. 3.34 doesn't exist 2.34 is current. 2003-12-08 21:00 jskov * grab/dk/tv_grab_dk: subtitles fix (by Martin Moeller) 2003-12-07 22:28 epaepa * README, doc/README.win32, grab/na/ZapListings.pm, lib/XMLTV.pm.in, Makefile.PL: Version 0.5.25. 2003-12-07 22:08 epaepa * grab/dk/tv_grab_dk: Don't set sub-title to '1' on seeing (TH) in listings. But what does that flag mean? 2003-12-07 21:56 epaepa * grab/nz/tv_grab_nz.in: If gen_time fails to parse the start time, do not write the programme. (This doesn't seem to be happening at the moment.) 2003-12-07 17:15 epaepa * Makefile.PL: HTML::Parser 3.34 is required for tv_grab_na because it may fix the segfaults some people have seen. 2003-12-06 20:00 epaepa * grab/na/tv_grab_na: Tolerate leading and trailing whitespace in configuration file lines. If a bad line is found, include it in the error message. 2003-12-06 16:29 epaepa * filter/tv_grep.in: Spelling. 2003-12-06 11:54 epaepa * MANIFEST, Makefile.PL, README, doc/QuickStart: Removed tv_grab_sn. 2003-11-30 18:40 epaepa * Makefile.PL, README, doc/README.win32, grab/na/ZapListings.pm, lib/XMLTV.pm.in: Version 0.5.24. 2003-11-29 23:17 epaepa * lib/IMDB.pm: Realized why getstore() appeared to succeed without generating a file - I was checking the return status wrongly. It returns an http status, not true/false. If --download is given (in other words, we are starting from scratch with no data files), create the IMDB directory if needed. Added some vertical space to warning messages. 2003-11-29 21:44 epaepa * lib/IMDB.pm: Catch the case when LWP::Simple::getstore() reports success but did not create the output file. 2003-11-29 17:28 jveldhuis * lib/IMDB.pm: default for star-ratings is to not replace added stubs to control if 'date' field will get updated or not fixed url field so it properly identifies duplicates. fixed categories where if any categories exists, nothing was added. 2003-11-29 12:33 epaepa * grab/Europe_TZ.pm: parse_eur_date(): more robust handling of bad date passed in. dst_dates(): now private to this module (it was not used anywhere else), so die() instead of croak() on error. 2003-11-29 12:31 epaepa * grab/dk/tv_grab_dk: get_courteous(): call get_courteous_aux() with a single scalar argument, to make extra sure of scalar context. tidy(): new routine, similar to that in many other grabbers, to clean up illegal characters in the site's HTML. More robust handling of dates. 2003-11-29 11:37 epaepa * lib/Gunzip.pm: zlib_gunzip_open(): check return value from tie. 2003-11-29 11:26 epaepa * README, lib/Gunzip.pm: XMLTV::Gunzip uses PerlIO::gzip, if available, for reading .gz files - much faster than making a tied filehandle from Compress::Zlib. 2003-11-29 10:41 epaepa * lib/IMDB.pm: Comment. 2003-11-29 10:40 epaepa * Makefile.PL: Require XML::Parsser 2.34 - see . 2003-11-29 02:04 jveldhuis * filter/tv_imdb: fixed help/usage message 2003-11-29 02:03 jveldhuis * lib/IMDB.pm: cosmetic message changes, added note about errors in stage 7 are normal and unlink .offline file before stage7 sanity checks 2003-11-28 21:54 jveldhuis * lib/IMDB.pm: pretty things up and manually track linecounts since Gunzip.pm does not set \$. 2003-11-26 15:53 jveldhuis * lib/IMDB.pm: Found genres fail to parse bug in 0.5.23. Turns out I had the header string in a regular expression with the o flag so it was only getting compiled twice. This would have been okay if the subroutine wasn't being used for both the Movies list and the Genres list. 2003-11-22 13:34 epaepa * Makefile.PL: Not all versions of pod2text take an input and output filename, so use redirection. 2003-11-22 13:23 epaepa * Makefile.PL: Prompt about README.win32. 2003-11-22 13:22 epaepa * doc/README.win32: Updated release notes, mentioning tv_imdb problems. 2003-11-19 22:40 epaepa * Makefile.PL, README, doc/README.win32, grab/na/ZapListings.pm, lib/XMLTV.pm.in: Version 0.5.23. 2003-11-19 22:28 epaepa * filter/tv_imdb: Respect --download flag no matter what preparation stage is chosen. 2003-11-19 22:04 epaepa * grab/uk_rt/tv_grab_uk_rt.in: Patches from Edward Wildgoose: enable --output option (which seems to have worked all along); more robust handling of categories; handle deaf-signed and audio-described by adding to description; include URL in warning message; deal more gracefully with pages that explicitly have no programmes available. 2003-11-19 21:59 epaepa * grab/uk_rt/tv_grab_uk_rt.in: Don't output (or warn about) duplicate s. 2003-11-19 21:47 epaepa * Makefile.PL: Fixed to work with older Getopt::Long versions. 2003-11-19 03:47 jveldhuis * lib/IMDB.pm: moved come FUTURE/BUG comments local to alternativeTitles subroutine 2003-11-19 02:34 jveldhuis * grab/na/ZapListings.pm: slight change to zap2it site causing failures 2003-11-18 16:28 jveldhuis * lib/IMDB.pm: added some version checking to fail nicer with instructions 2003-11-18 07:14 jveldhuis * filter/tv_imdb: added star-ratings and genres to categories - now has 7 stages 2003-11-18 07:13 jveldhuis * lib/IMDB.pm: added star-ratings and genres to the mix 2003-11-16 19:10 jveldhuis * lib/IMDB.pm: added bug description 2003-11-16 18:52 jveldhuis * lib/IMDB.pm: added more info to moviedb.info file - file locations and sizes 2003-11-15 02:28 jveldhuis * lib/IMDB.pm: bug - directors and actors only updated if its replacing or updating an existing list 2003-11-09 21:10 epaepa * Makefile.PL, README, doc/README.win32, grab/na/ZapListings.pm, lib/XMLTV.pm.in: Version 0.5.22. 2003-11-09 20:49 epaepa * grab/nz/tv_grab_nz.in: Remove carriage returns from output. 2003-11-09 20:16 epaepa * grab/uk_rt/tv_grab_uk_rt.in: get_url(): throw an exception if the page cannot be downloaded rather than returning undef. This interacts better with memoization. 2003-11-09 18:55 epaepa * grab/uk_rt/tv_grab_uk_rt.in: Remove BS characters if they appear in downloaded HTML (Brian Collins reported this can sometimes happen). 2003-11-08 18:37 epaepa * Makefile.PL: windows_dist: ported to work on Windows (I hope). 2003-11-08 15:43 epaepa * Makefile.PL: windows_dist: generate documentation directly with pod2text, rather than from the installed man pages. 2003-11-08 15:23 epaepa * Makefile.PL: Fixed rather dangerous bug (well, a bug in MakeMaker, made dangerous by this code) of rm -rf'ing $(INSTALLBIN) - that directory may not have the same PREFIX as other stuff. 2003-11-08 13:57 epaepa * grab/: es/tv_grab_es, fi/tv_grab_fi, hu/tv_grab_hu, it/tv_grab_it.in: Give the 'base' timezone for Europe_TZ as a numeric not named timezone. This is (hopefully) the last bit of work for Sourceforge bug/feature #834143. 2003-11-08 13:55 epaepa * grab/uk_rt/tv_grab_uk_rt.in: Use numeric timezones. Handle a few more bits of description. 2003-11-08 13:53 epaepa * grab/nl_wolf/tv_grab_nl_wolf: Fix timezones from the upstream data with tz_to_num(). 2003-11-08 13:51 epaepa * grab/Europe_TZ.pm: Comment. 2003-11-08 13:37 epaepa * grab/nz/tv_grab_nz.in: It can sometimes be useful to give a negative offset, and it seems to work. 2003-11-08 13:01 epaepa * lib/TZ.pm: Work around bug in ParseDate()'s handling of numeric timezones. Added some trace code. 2003-11-07 20:08 epaepa * filter/tv_remove_some_overlapping: When a programme could be removed because of partitioning, but isn't because we don't want to throw away information, print a warning. is a boring subelement of and shouldn't stop one being discarded. 2003-11-03 20:50 epaepa * Makefile.PL, README, doc/README.win32, grab/na/ZapListings.pm, lib/XMLTV.pm.in: Version 0.5.21. 2003-11-03 20:35 epaepa * doc/README.win32: Release notes for 0.5.20 Windows binary distribution. 2003-11-03 20:24 epaepa * t/test_tv_split.t: Fixed to work with tv_split in blib/script/ rather than expecting it to be in the PATH. 2003-11-02 22:43 epaepa * Makefile.PL, README, doc/README.win32, grab/na/ZapListings.pm, lib/XMLTV.pm.in: Version 0.5.20. 2003-11-02 22:38 epaepa * grab/uk_rt/tv_grab_uk_rt.in: Handle 'Deaf-signed' (well, actually, discard it with a warning). 2003-11-02 22:19 epaepa * grab/nz/tv_grab_nz.in: Fixed to work (again) with Python 1.5. Handle series title included as what looks like a 'part'. 2003-11-02 22:18 epaepa * grab/hu/tv_grab_hu: Fixed crash when (for some reason I haven't investigated) the result of $txt->content_list() contains plain scalars. 2003-11-02 22:17 epaepa * MANIFEST: Adding test_remove_some_overlapping test files which I committed earlier. 2003-11-02 17:35 jveldhuis * grab/na/ZapListings.pm: removed what we decided was a typo in the Gujarati language at zap2it 2003-11-02 17:14 epaepa * grab/na/ZapListings.pm: Spelling. 2003-11-01 19:19 epaepa * t/data/: tv_to_latex_all_UTF8.expected, tv_to_latex_amp_xml.expected, tv_to_latex_amp_xml_amp_xml.expected, tv_to_latex_amp_xml_clump_xml.expected, tv_to_latex_amp_xml_dups_xml.expected, tv_to_latex_amp_xml_empty_xml.expected, tv_to_latex_amp_xml_empty_xml_empty_xml_clump_xml.expected, tv_to_latex_clump_xml_amp_xml.expected, tv_to_latex_dups_xml_amp_xml.expected, tv_to_latex_empty_xml_amp_xml.expected: Changed 'T & A' -> 'TA' in LaTeX expected output. 2003-11-01 19:02 epaepa * MANIFEST, t/test_tv_split.t: Test suite for tv_split. 2003-11-01 18:41 epaepa * t/data/: amp.xml, tv_cat_all_UTF8.expected, tv_cat_amp_xml.expected, tv_cat_amp_xml_amp_xml.expected, tv_cat_amp_xml_clump_xml.expected, tv_cat_amp_xml_dups_xml.expected, tv_cat_amp_xml_empty_xml.expected, tv_cat_amp_xml_empty_xml_empty_xml_clump_xml.expected, tv_cat_clump_xml_amp_xml.expected, tv_cat_dups_xml_amp_xml.expected, tv_cat_empty_xml_amp_xml.expected, tv_extractinfo_en_all_UTF8.expected, tv_extractinfo_en_amp_xml.expected, tv_extractinfo_en_amp_xml_amp_xml.expected, tv_extractinfo_en_amp_xml_clump_xml.expected, tv_extractinfo_en_amp_xml_dups_xml.expected, tv_extractinfo_en_amp_xml_empty_xml.expected, tv_extractinfo_en_amp_xml_empty_xml_empty_xml_clump_xml.expected, tv_extractinfo_en_clump_xml_amp_xml.expected, tv_extractinfo_en_dups_xml_amp_xml.expected, tv_extractinfo_en_empty_xml_amp_xml.expected, tv_grep_a_all_UTF8.expected, tv_grep_a_amp_xml.expected, tv_grep_a_amp_xml_amp_xml.expected, tv_grep_a_amp_xml_clump_xml.expected, tv_grep_a_amp_xml_dups_xml.expected, tv_grep_a_amp_xml_empty_xml.expected, tv_grep_a_amp_xml_empty_xml_empty_xml_clump_xml.expected, tv_grep_a_clump_xml_amp_xml.expected, tv_grep_a_dups_xml_amp_xml.expected, tv_grep_a_empty_xml_amp_xml.expected, tv_grep_channel_xyz_or_not_channel_b_all_UTF8.expected, tv_grep_channel_xyz_or_not_channel_b_amp_xml.expected, tv_grep_channel_xyz_or_not_channel_b_amp_xml_amp_xml.expected, tv_grep_channel_xyz_or_not_channel_b_amp_xml_clump_xml.expected, tv_grep_channel_xyz_or_not_channel_b_amp_xml_dups_xml.expected, tv_grep_channel_xyz_or_not_channel_b_amp_xml_empty_xml.expected, tv_grep_channel_xyz_or_not_channel_b_amp_xml_empty_xml_empty_xml_clump_xml.expected, tv_grep_channel_xyz_or_not_channel_b_clump_xml_amp_xml.expected, tv_grep_channel_xyz_or_not_channel_b_dups_xml_amp_xml.expected, tv_grep_channel_xyz_or_not_channel_b_empty_xml_amp_xml.expected, tv_grep_not_channel_id_channel4_com_all_UTF8.expected, tv_grep_not_channel_id_channel4_com_amp_xml.expected, tv_grep_not_channel_id_channel4_com_amp_xml_amp_xml.expected, tv_grep_not_channel_id_channel4_com_amp_xml_clump_xml.expected, tv_grep_not_channel_id_channel4_com_amp_xml_dups_xml.expected, tv_grep_not_channel_id_channel4_com_amp_xml_empty_xml.expected, tv_grep_not_channel_id_channel4_com_amp_xml_empty_xml_empty_xml_clump_xml.expected, tv_grep_not_channel_id_channel4_com_clump_xml_amp_xml.expected, tv_grep_not_channel_id_channel4_com_dups_xml_amp_xml.expected, tv_grep_not_channel_id_channel4_com_empty_xml_amp_xml.expected, tv_grep_not_channel_name_d_all_UTF8.expected, tv_grep_not_channel_name_d_amp_xml.expected, tv_grep_not_channel_name_d_amp_xml_amp_xml.expected, tv_grep_not_channel_name_d_amp_xml_clump_xml.expected, tv_grep_not_channel_name_d_amp_xml_dups_xml.expected, tv_grep_not_channel_name_d_amp_xml_empty_xml.expected, tv_grep_not_channel_name_d_amp_xml_empty_xml_empty_xml_clump_xml.expected, tv_grep_not_channel_name_d_clump_xml_amp_xml.expected, tv_grep_not_channel_name_d_dups_xml_amp_xml.expected, tv_grep_not_channel_name_d_empty_xml_amp_xml.expected, tv_grep_on_after_2002_02_05_UTC_all_UTF8.expected, tv_grep_on_after_2002_02_05_UTC_amp_xml.expected, tv_grep_on_after_2002_02_05_UTC_amp_xml_amp_xml.expected, tv_grep_on_after_2002_02_05_UTC_amp_xml_clump_xml.expected, tv_grep_on_after_2002_02_05_UTC_amp_xml_dups_xml.expected, tv_grep_on_after_2002_02_05_UTC_amp_xml_empty_xml.expected, tv_grep_on_after_2002_02_05_UTC_amp_xml_empty_xml_empty_xml_clump_xml.expected, tv_grep_on_after_2002_02_05_UTC_clump_xml_amp_xml.expected, tv_grep_on_after_2002_02_05_UTC_dups_xml_amp_xml.expected, tv_grep_on_after_2002_02_05_UTC_empty_xml_amp_xml.expected, tv_grep_on_before_200302161330_UTC_all_UTF8.expected, tv_grep_on_before_200302161330_UTC_amp_xml.expected, tv_grep_on_before_200302161330_UTC_amp_xml_amp_xml.expected, tv_grep_on_before_200302161330_UTC_amp_xml_clump_xml.expected, tv_grep_on_before_200302161330_UTC_amp_xml_dups_xml.expected, tv_grep_on_before_200302161330_UTC_amp_xml_empty_xml.expected, tv_grep_on_before_200302161330_UTC_amp_xml_empty_xml_empty_xml_clump_xml.expected, tv_grep_on_before_200302161330_UTC_clump_xml_amp_xml.expected, tv_grep_on_before_200302161330_UTC_dups_xml_amp_xml.expected, tv_grep_on_before_200302161330_UTC_empty_xml_amp_xml.expected, tv_remove_some_overlapping_all_UTF8.expected, tv_remove_some_overlapping_amp_xml.expected, tv_remove_some_overlapping_amp_xml_amp_xml.expected, tv_remove_some_overlapping_amp_xml_clump_xml.expected, tv_remove_some_overlapping_amp_xml_dups_xml.expected, tv_remove_some_overlapping_amp_xml_empty_xml.expected, tv_remove_some_overlapping_amp_xml_empty_xml_empty_xml_clump_xml.expected, tv_remove_some_overlapping_clump_xml_amp_xml.expected, tv_remove_some_overlapping_dups_xml_amp_xml.expected, tv_remove_some_overlapping_empty_xml_amp_xml.expected, tv_sort_all_UTF8.expected, tv_sort_amp_xml.expected, tv_sort_amp_xml_amp_xml.expected, tv_sort_amp_xml_clump_xml.expected, tv_sort_amp_xml_dups_xml.expected, tv_sort_amp_xml_empty_xml.expected, tv_sort_amp_xml_empty_xml_empty_xml_clump_xml.expected, tv_sort_by_channel_all_UTF8.expected, tv_sort_by_channel_amp_xml.expected, tv_sort_by_channel_amp_xml_amp_xml.expected, tv_sort_by_channel_amp_xml_clump_xml.expected, tv_sort_by_channel_amp_xml_dups_xml.expected, tv_sort_by_channel_amp_xml_empty_xml.expected, tv_sort_by_channel_amp_xml_empty_xml_empty_xml_clump_xml.expected, tv_sort_by_channel_clump_xml_amp_xml.expected, tv_sort_by_channel_dups_xml_amp_xml.expected, tv_sort_by_channel_empty_xml_amp_xml.expected, tv_sort_clump_xml_amp_xml.expected, tv_sort_dups_xml_amp_xml.expected, tv_sort_empty_xml_amp_xml.expected: Changed channel name 'T & A' to 'TA'. The former is not a valid RFC2838 identifier and so I'm not particularly concerned to test with it, but it does make testing tv_split awkward. 2003-11-01 18:34 epaepa * t/data/test_remove_some_overlapping.xml: Adding this file - some test cases for tv_remove_some_overlapping - which got accidentally left out of CVS earlier. 2003-11-01 16:49 epaepa * Makefile.PL: Indentation. 2003-11-01 15:01 epaepa * grab/na/tv_grab_na: Explicitly bracket say($msg) to avoid it being miscompiled as $msg->say() on some perls. 2003-11-01 14:45 epaepa * grab/na/tv_grab_na: Fixed $opt_configure warning. 2003-11-01 14:37 epaepa * grab/Europe_TZ.pm: parse_eur_date(): Fixed winter time when base timezone not UTC. 2003-11-01 14:36 epaepa * grab/fi/tv_grab_fi: Logging. 2003-11-01 13:37 epaepa * grab/na/ZapListings.pm: No 'comments' inside qw() list. 2003-11-01 13:04 epaepa * grab/na/tv_grab_na: Make sure an undef value is never passed to say() (attempt to catch Sourceforge bug \833976). 2003-10-29 00:12 jveldhuis * grab/na/ZapListings.pm: added some more languages - thanks J.Isham 2003-10-26 20:21 jveldhuis * grab/na/: ZapListings.pm, tv_grab_na: added/fixed cache option 2003-10-26 20:19 jveldhuis * lib/AskTerm.pm: make sure we don't end up with two newlines in say() calls 2003-10-25 15:43 epaepa * grab/na/tv_grab_na: Accept the --cache option to create a urldata/ directory. 2003-10-25 14:22 epaepa * MANIFEST, Makefile.PL, filter/tv_remove_some_overlapping, t/test_filters.t, t/data/tv_cat_all_UTF8.expected, t/data/tv_cat_test_remove_some_overlapping_xml.expected, t/data/tv_extractinfo_en_all_UTF8.expected, t/data/tv_extractinfo_en_test_remove_some_overlapping_xml.expected, t/data/tv_grep_a_all_UTF8.expected, t/data/tv_grep_a_test_remove_some_overlapping_xml.expected, t/data/tv_grep_category_b_test_remove_some_overlapping_xml.expected, t/data/tv_grep_category_e_and_title_f_test_remove_some_overlapping_xml.expected, t/data/tv_grep_category_g_or_title_h_test_remove_some_overlapping_xml.expected, t/data/tv_grep_channel_id_channel4_com_test_remove_some_overlapping_xml.expected, t/data/tv_grep_channel_name_d_test_remove_some_overlapping_xml.expected, t/data/tv_grep_channel_xyz_or_channel_b_test_remove_some_overlapping_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_all_UTF8.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_test_remove_some_overlapping_xml.expected, t/data/tv_grep_eval_scalar_keys_5_test_remove_some_overlapping_xml.expected, t/data/tv_grep_i_category_i_title_h_test_remove_some_overlapping_xml.expected, t/data/tv_grep_i_category_i_title_j_test_remove_some_overlapping_xml.expected, t/data/tv_grep_i_last_chance_c_test_remove_some_overlapping_xml.expected, t/data/tv_grep_new_test_remove_some_overlapping_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_all_UTF8.expected, t/data/tv_grep_not_channel_id_channel4_com_test_remove_some_overlapping_xml.expected, t/data/tv_grep_not_channel_name_d_all_UTF8.expected, t/data/tv_grep_not_channel_name_d_test_remove_some_overlapping_xml.expected, t/data/tv_grep_on_after_2002_02_05_UTC_all_UTF8.expected, t/data/tv_grep_on_after_2002_02_05_UTC_test_remove_some_overlapping_xml.expected, t/data/tv_grep_on_after_200302161330_UTC_all_UTF8.expected, t/data/tv_grep_on_after_200302161330_UTC_test_remove_some_overlapping_xml.expected, t/data/tv_grep_on_before_200302161330_UTC_test_remove_some_overlapping_xml.expected, t/data/tv_grep_premiere_test_remove_some_overlapping_xml.expected, t/data/tv_grep_previously_shown_test_remove_some_overlapping_xml.expected, t/data/tv_remove_some_overlapping_all_UTF8.expected, t/data/tv_remove_some_overlapping_amp_xml.expected, t/data/tv_remove_some_overlapping_amp_xml_amp_xml.expected, t/data/tv_remove_some_overlapping_amp_xml_clump_xml.expected, t/data/tv_remove_some_overlapping_amp_xml_dups_xml.expected, t/data/tv_remove_some_overlapping_amp_xml_empty_xml.expected, t/data/tv_remove_some_overlapping_amp_xml_empty_xml_empty_xml_clump_xml.expected, t/data/tv_remove_some_overlapping_attrs_xml.expected, t/data/tv_remove_some_overlapping_clump_extract_1_xml.expected, t/data/tv_remove_some_overlapping_clump_extract_xml.expected, t/data/tv_remove_some_overlapping_clump_xml.expected, t/data/tv_remove_some_overlapping_clump_xml_amp_xml.expected, t/data/tv_remove_some_overlapping_clump_xml_clump_xml.expected, t/data/tv_remove_some_overlapping_clump_xml_dups_xml.expected, t/data/tv_remove_some_overlapping_clump_xml_empty_xml.expected, t/data/tv_remove_some_overlapping_dups_xml.expected, t/data/tv_remove_some_overlapping_dups_xml_amp_xml.expected, t/data/tv_remove_some_overlapping_dups_xml_clump_xml.expected, t/data/tv_remove_some_overlapping_dups_xml_dups_xml.expected, t/data/tv_remove_some_overlapping_dups_xml_empty_xml.expected, t/data/tv_remove_some_overlapping_empty_xml.expected, t/data/tv_remove_some_overlapping_empty_xml_amp_xml.expected, t/data/tv_remove_some_overlapping_empty_xml_clump_xml.expected, t/data/tv_remove_some_overlapping_empty_xml_dups_xml.expected, t/data/tv_remove_some_overlapping_empty_xml_empty_xml.expected, t/data/tv_remove_some_overlapping_intervals_xml.expected, t/data/tv_remove_some_overlapping_length_xml.expected, t/data/tv_remove_some_overlapping_overlap_xml.expected, t/data/tv_remove_some_overlapping_simple_xml.expected, t/data/tv_remove_some_overlapping_simple_xml_x_whatever_xml.expected, t/data/tv_remove_some_overlapping_sort1_xml.expected, t/data/tv_remove_some_overlapping_sort2_xml.expected, t/data/tv_remove_some_overlapping_sort_xml.expected, t/data/tv_remove_some_overlapping_test_empty_xml.expected, t/data/tv_remove_some_overlapping_test_livre_xml.expected, t/data/tv_remove_some_overlapping_test_remove_some_overlapping_xml.expected, t/data/tv_remove_some_overlapping_test_sort_by_channel_xml.expected, t/data/tv_remove_some_overlapping_test_xml.expected, t/data/tv_remove_some_overlapping_test_xml_test_xml.expected, t/data/tv_remove_some_overlapping_whitespace_xml.expected, t/data/tv_remove_some_overlapping_x_whatever_xml.expected, t/data/tv_sort_all_UTF8.expected, t/data/tv_sort_by_channel_all_UTF8.expected, t/data/tv_sort_by_channel_test_remove_some_overlapping_xml.expected, t/data/tv_sort_test_remove_some_overlapping_xml.expected, t/data/tv_to_latex_all_UTF8.expected, t/data/tv_to_latex_test_remove_some_overlapping_xml.expected, t/data/tv_to_text_all_UTF8.expected, t/data/tv_to_text_test_remove_some_overlapping_xml.expected: New filter program tv_remove_some_overlapping to get rid of 'magazine' programmes whose only purpose is to contain (ie, overlap with) several others. 2003-10-25 11:55 epaepa * lib/XMLTV.pm.in: write_programme(): don't delete every element in the caller's hash. 2003-10-25 11:51 epaepa * MANIFEST, t/test_library.t: Catch bug in XMLTV::Writer::write_programme() where it deletes the contents of the passed-in hash. 2003-10-25 09:59 epaepa * filter/tv_cat: Data::Dumper is not used. 2003-10-14 07:05 jveldhuis * lib/IMDB.pm: fixed broken tv series keys. 2003-10-14 06:41 jveldhuis * lib/IMDB.pm: db version now at 0.3 which will require a --prepStage 3 and --prepStage 5 to be re-run. Indexes fixed to preserve original database key for titles so urls can be more exact. if stage5 fails, database is now offline and says so when tv_imdb is run in a non-prep mode later. stage 3 now tracks narrators and hosts and puts them in output credits as commentator and presenter. added control over what elements are updated and replaced, but haven't added support in tv_imdb to set/get these. New defaults, to not replace title, but prepend imdb version, same for urls, default to replacing directors, presenters and commentators but only prepend actors to the list and preserve others. Category entries now include lang=en. URLs fixed to use http://us.imdb.com/M/title-exact cgi at imdb.com so the urls get us directly to the movie page on imdb instead of possibly a list of matches. 2003-10-13 19:57 epaepa * t/test_filters.t: Set $ENV{LANG} to 'en' before running tests. Kenneth Pronovici discovered (from a Debian bug report) that tv_to_latex's behaviour and therefore its test suite is affected by language. 2003-10-13 19:25 epaepa * Makefile.PL: Corrected share directory stored in installed files. It should not include $(DESTDIR). 2003-10-12 17:49 epaepa * Makefile.PL: When pasting in bits of Makefile, respect $(DESTDIR) as well as $(PREFIX). The Perl variable $location holds a fragment of Makefile concatenating those two directories. (Sourceforge bug #82002) Disabled tv_grab_de (I thought this change was committed before). 2003-10-12 16:17 epaepa * lib/XMLTV.pm.in: parse_callback(): Fixed prototype, as pointed out by Christophe Beauregard. 2003-09-28 20:17 jveldhuis * mkdist: added compression to cvs commands 2003-09-28 20:16 jveldhuis * README: updated date line 2003-09-28 09:32 epaepa * README: Corrected description of tv_grab_de. 2003-09-27 19:06 jveldhuis * README: updated 2003-09-27 19:05 jveldhuis * grab/na/tv_grab_na: errorMessage() method was having @_ converted to a scalar in the say() call. So error messages were getting converted to '1'. 2003-09-27 18:21 jveldhuis * Makefile.PL, doc/README.win32, grab/na/ZapListings.pm, lib/XMLTV.pm.in: version number updated to 0.5.19 2003-09-27 18:20 jveldhuis * README: added release notes for 0.5.19 release 2003-09-27 17:54 jveldhuis * grab/na/ZapListings.pm: new manditory sleep(5) before retries 2003-09-27 17:53 jveldhuis * grab/na/tv_grab_na: new minimum of 2 second retry-delay enforced 2003-09-25 22:21 epaepa * grab/uk_rt/tv_grab_uk_rt.in: Add unknown bits of text to the first description by default. Improved (needlessly, it turns out) the reporting of date mismatches. 2003-09-25 22:09 epaepa * grab/fi/tv_grab_fi: Remove a bad character (205) that's gotten into the data. 2003-09-25 22:01 epaepa * grab/it/tv_grab_it.in: Warn if known-bad channels are mentioned in the config file. Fixed --days so that it it should work correctly with --offset. (--days should always be the number of days downloaded, from --offset onwards.) Always warn if a downloaded page contains no programmes, and always skip a whole channel if this happens for the first day. 2003-09-14 17:43 epaepa * grab/nl/tv_grab_nl: Spelling. 2003-09-14 17:41 epaepa * grab/nl/tv_grab_nl: Handle a few more Dutch strings following advice from Martijn Vernooij. 2003-09-13 19:34 epaepa * Makefile.PL, README, doc/README.win32, grab/na/ZapListings.pm, lib/XMLTV.pm.in: Version 0.5.18. 2003-09-13 10:55 epaepa * grab/nl_wolf/tv_grab_nl_wolf: Remove stop times which are before the start time. 2003-09-13 10:29 epaepa * grab/hu/tv_grab_hu: Don't guess stop times based on the 'next' programme on the site: these are often wrong and lead to nonsense like programmes that stop before they start or overlap with other programmes on the same channel. If the site does not provide stop times explicitly, it's better to omit them and let the user add them with a tool like tv_sort if he wants guessed stop times. 2003-09-13 09:24 epaepa * grab/uk_rt/tv_grab_uk_rt.in: Fixed some progress messages: they're not appropriate to display with say(), they should be printed on stderr as before. It would be better to have a single progress bar, however. Handle a few more random bits of text appearing in listings - but these new ones are just added to the end of the programme description. 2003-09-13 09:05 epaepa * grab/it/tv_grab_it.in: Make channel ids lowercase, like domain names. 2003-09-13 09:03 epaepa * grab/it/tv_grab_it.in: Moved domain name guidatv.libero.it into $domain. 2003-09-12 22:04 epaepa * grab/it/dud_channels: Updated for new channel ids (guidatv.libero.it); added dud channel 102.5. 2003-09-12 21:24 epaepa * grab/it/tv_grab_it.in: Reformatted code in preparation for patching. 2003-09-12 20:46 epaepa * grab/na/ZapListings.pm: Removed a line of chatter on stderr. 2003-09-11 05:43 rmeden * lib/exe_opt.pl: add some more excludes for bogus missing module messages 2003-09-10 19:49 epaepa * lib/Ask.pm: Disable graphical config unless the XMLTV_TK environment variable is set to a true value. 2003-09-09 19:54 epaepa * grab/na/ZapListings.pm: Following speculation on the mailing list, use index() and substr() for manipulation of the channel-list page rather than regular expressions in an attempt to avoid a segfault. index_bothcases(): wrapper for index() that tries the substring in both lowercase and uppercase (though not all combinations of the two). 2003-09-09 19:16 epaepa * grab/na/ZapListings.pm: Added some warnings in a couple of cases where functions fail by returning a special value. Check the result of a call to URI->new_abs() and to GET(). 2003-09-09 18:33 epaepa * grab/na/ZapListings.pm: Form2Request(): reformatted code in preparation for patching. 2003-09-08 20:22 epaepa * grab/na/ZapListings.pm: Fixed some seemingly-buggy code looking for a case-insensitive substring. More error checking: in particular make sure some possibly-infinite loops do terminate, and fail earlier if a URL request object cannot be made. 2003-09-08 20:03 epaepa * grab/na/ZapListings.pm: Changed all calls to main::errorMessage() to use warn() instead. This is because there's currently a strange bug where errorMessage() was not printing anything, and there are other more important bugs to fix first, so the first priority is to get working error reporting. Although I think that in the long run warn() may prove to be more appropriate, since many of the messages are technical and not something for the end user. getZipCodeForm(): added 'category' to the form settings, zap2it seem to have started including it. 2003-09-07 11:58 epaepa * grab/na/tv_grab_na: Print a status message if we get the channel list successfully (which we might not, given the current segfault). Fail more cleanly if askQuestion() for service provider returns undef. But really, it should throw an exception rather than returning that. 2003-09-06 19:14 epaepa * grab/de/tv_grab_de: Added a warning that the grabber is currently not working. 2003-08-29 21:16 epaepa * MANIFEST, filter/tv_grep.in, t/test_filters.t, t/data/tv_grep_channel_xyz_or_not_channel_b_all_UTF8.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_amp_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_amp_xml_amp_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_amp_xml_clump_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_amp_xml_dups_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_amp_xml_empty_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_amp_xml_empty_xml_empty_xml_clump_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_attrs_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_clump_extract_1_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_clump_extract_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_clump_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_clump_xml_amp_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_clump_xml_clump_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_clump_xml_dups_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_clump_xml_empty_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_dups_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_dups_xml_amp_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_dups_xml_clump_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_dups_xml_dups_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_dups_xml_empty_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_empty_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_empty_xml_amp_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_empty_xml_clump_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_empty_xml_dups_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_empty_xml_empty_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_intervals_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_length_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_overlap_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_simple_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_simple_xml_x_whatever_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_sort1_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_sort2_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_sort_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_test_empty_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_test_livre_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_test_sort_by_channel_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_test_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_test_xml_test_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_whitespace_xml.expected, t/data/tv_grep_channel_xyz_or_not_channel_b_x_whatever_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_all_UTF8.expected, t/data/tv_grep_not_channel_id_channel4_com_amp_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_amp_xml_amp_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_amp_xml_clump_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_amp_xml_dups_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_amp_xml_empty_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_amp_xml_empty_xml_empty_xml_clump_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_attrs_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_clump_extract_1_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_clump_extract_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_clump_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_clump_xml_amp_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_clump_xml_clump_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_clump_xml_dups_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_clump_xml_empty_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_dups_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_dups_xml_amp_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_dups_xml_clump_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_dups_xml_dups_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_dups_xml_empty_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_empty_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_empty_xml_amp_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_empty_xml_clump_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_empty_xml_dups_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_empty_xml_empty_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_intervals_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_length_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_overlap_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_simple_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_simple_xml_x_whatever_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_sort1_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_sort2_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_sort_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_test_empty_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_test_livre_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_test_sort_by_channel_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_test_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_test_xml_test_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_whitespace_xml.expected, t/data/tv_grep_not_channel_id_channel4_com_x_whatever_xml.expected, t/data/tv_grep_not_channel_name_d_all_UTF8.expected, t/data/tv_grep_not_channel_name_d_amp_xml.expected, t/data/tv_grep_not_channel_name_d_amp_xml_amp_xml.expected, t/data/tv_grep_not_channel_name_d_amp_xml_clump_xml.expected, t/data/tv_grep_not_channel_name_d_amp_xml_dups_xml.expected, t/data/tv_grep_not_channel_name_d_amp_xml_empty_xml.expected, t/data/tv_grep_not_channel_name_d_amp_xml_empty_xml_empty_xml_clump_xml.expected, t/data/tv_grep_not_channel_name_d_attrs_xml.expected, t/data/tv_grep_not_channel_name_d_clump_extract_1_xml.expected, t/data/tv_grep_not_channel_name_d_clump_extract_xml.expected, t/data/tv_grep_not_channel_name_d_clump_xml.expected, t/data/tv_grep_not_channel_name_d_clump_xml_amp_xml.expected, t/data/tv_grep_not_channel_name_d_clump_xml_clump_xml.expected, t/data/tv_grep_not_channel_name_d_clump_xml_dups_xml.expected, t/data/tv_grep_not_channel_name_d_clump_xml_empty_xml.expected, t/data/tv_grep_not_channel_name_d_dups_xml.expected, t/data/tv_grep_not_channel_name_d_dups_xml_amp_xml.expected, t/data/tv_grep_not_channel_name_d_dups_xml_clump_xml.expected, t/data/tv_grep_not_channel_name_d_dups_xml_dups_xml.expected, t/data/tv_grep_not_channel_name_d_dups_xml_empty_xml.expected, t/data/tv_grep_not_channel_name_d_empty_xml.expected, t/data/tv_grep_not_channel_name_d_empty_xml_amp_xml.expected, t/data/tv_grep_not_channel_name_d_empty_xml_clump_xml.expected, t/data/tv_grep_not_channel_name_d_empty_xml_dups_xml.expected, t/data/tv_grep_not_channel_name_d_empty_xml_empty_xml.expected, t/data/tv_grep_not_channel_name_d_intervals_xml.expected, t/data/tv_grep_not_channel_name_d_length_xml.expected, t/data/tv_grep_not_channel_name_d_overlap_xml.expected, t/data/tv_grep_not_channel_name_d_simple_xml.expected, t/data/tv_grep_not_channel_name_d_simple_xml_x_whatever_xml.expected, t/data/tv_grep_not_channel_name_d_sort1_xml.expected, t/data/tv_grep_not_channel_name_d_sort2_xml.expected, t/data/tv_grep_not_channel_name_d_sort_xml.expected, t/data/tv_grep_not_channel_name_d_test_empty_xml.expected, t/data/tv_grep_not_channel_name_d_test_livre_xml.expected, t/data/tv_grep_not_channel_name_d_test_sort_by_channel_xml.expected, t/data/tv_grep_not_channel_name_d_test_xml.expected, t/data/tv_grep_not_channel_name_d_test_xml_test_xml.expected, t/data/tv_grep_not_channel_name_d_whitespace_xml.expected, t/data/tv_grep_not_channel_name_d_x_whatever_xml.expected: Added --not option to tv_grep. It negates the following predicate. Not yet thoroughly tested. 2003-08-29 19:46 epaepa * grab/na/ZapListings.pm: Applying (in two places) Jerry V.'s patch to print out a row that failed to parse and skip it. It doesn't fix the problem but doing this is a lot better than crashing. 2003-08-29 19:05 epaepa * Makefile.PL: windows_dist no longer uses any Unix commands - only commands that come with perl. 2003-08-28 20:56 epaepa * MANIFEST, Makefile.PL, grab/Config_file.pm, grab/dk/tv_grab_dk, grab/es/tv_grab_es, grab/fi/tv_grab_fi, grab/hu/tv_grab_hu, grab/it/tv_grab_it.in, grab/na/tv_grab_na, grab/nl/tv_grab_nl, grab/uk_rt/tv_grab_uk_rt.in, lib/Ask.pm, lib/AskTerm.pm, lib/AskTk.pm: Applying Andy Balaam's patch for Tk configuration in environments that support it (with a few changes). XMLTV::Ask now has two implementations, AskTerm and AskTk, and chooses one based on whether Tk is usable. The grabbers need to use the XMLTV::Ask routines exclusively when they want to communicate with the user; in particular this means the new say() routine rather than print(). I haven't tested the Tk configuration half yet. 2003-08-28 19:46 epaepa * grab/nz/tv_grab_nz.in: Patch from James Sleeman to extract episode titles, except for certain titles mentioned in the episode_names file. Also changed to turn 'Movie: ' into a category. 2003-08-26 21:03 epaepa * Makefile.PL: Version 0.5.17. 2003-08-26 21:00 epaepa * README, doc/README.win32, grab/na/ZapListings.pm, lib/XMLTV.pm.in: Version 0.5.17. 2003-08-26 20:40 epaepa * grab/nz/tv_grab_nz.in: Re-enabled tv_grab_nz as it seems to be working again (though not perhaps 100% of the time). 2003-08-25 03:36 rmeden * choose/tv_check/: tv_check, tv_check_doc.html: add --bluenew option to highlight non-repeat episodes 2003-08-17 15:10 epaepa * Makefile.PL, README: Reinstated tv_grab_nz, it is now working again. 2003-08-17 14:01 epaepa * lib/Ask.pm: Reformatted @EXPORT with one word per line - this makes it easier to diff and patch. 2003-08-17 09:31 epaepa * t/test_filters.t: When a command fails, report the arguments as well. 2003-08-17 09:18 epaepa * lib/IMDB.pm: When files have been automatically downloaded, don't then warn about them being missing. 2003-08-17 09:11 epaepa * lib/TZ.pm: Added trace messages; corrected comment. 2003-08-17 09:07 epaepa * grab/Config_file.pm: Give an error for seemingly empty config files. 2003-08-17 09:06 epaepa * filter/tv_grep.in: More log messages. 2003-08-17 09:05 epaepa * mkdist: Remove .cvsignore files from the release as well as CVS/ directories. 2003-08-16 10:01 epaepa * grab/na/tv_grab_na: Updated documentation now that --list-providers and --list-channels work standalone. 2003-08-16 09:55 epaepa * grab/na/tv_grab_na: --list-provders and --list-channels don't require --configure to be given separately. 2003-08-16 09:22 epaepa * doc/README.win32: Updated for 0.5.16 release. This file needs to be self-contained because at the moment 'make windows_dist' installs it as the README for the Windows distribution and leaves out the source code README. Maybe we can change this for a later release. 2003-08-16 09:15 epaepa * Makefile.PL: Added --yes option to choose to install everything, and --nodeps to write the Makefile even if dependencies are missing. These help with building the Windows distribution. 2003-08-14 21:14 epaepa * README: Whoops, forgot to update the signature line. 2003-08-14 21:11 epaepa * Makefile.PL, README, doc/README.win32, grab/na/ZapListings.pm, lib/XMLTV.pm.in: Version 0.5.15. 2003-08-14 21:00 epaepa * Makefile.PL, grab/nz/tv_grab_nz.in: Disabling tv_grab_nz since I don't have time to fix it right now and we need a new release to fix tv_grab_na. 2003-08-13 13:37 rmeden * doc/README.win32: updated README to include current windows tips 2003-08-13 06:17 rmeden * grab/na/ZapListings.pm: zap2it is returninga status code of 500 even though the listings are in the response. Dane Kanter has released a patched ZapListings.PM which I am merging into the current CVS here. There is still a problem, only 20 channels are return, but it's better than nothing. 2003-08-09 22:40 epaepa * xmltv.dtd: Corrected UT to UTC. 2003-08-05 15:34 jveldhuis * grab/na/: ZapListings.pm, tv_grab_na: --output now redirects --list-providers and --list-channels output in --configure mode. HDTV occuring in listing now appears at end of description (since we don't have a proper place for it) and also triggers an aspect ratio in the video stanza to be 16:9. 2003-08-04 22:17 jveldhuis * grab/na/ZapListings.pm: workaround for HDTV qualifiers getting in the road of star ratings in the description 2003-07-29 20:56 epaepa * Makefile.PL: Fixed to work with newer versions of MakeMaker, which define a FIRST_MAKEFILE variable. 2003-07-25 15:47 rmeden * choose/tv_check/tv_check_doc.html: document wildcard scans document --notruncate option 2003-07-25 15:47 rmeden * choose/tv_check/tv_check: add --notruncate option to allow title-scans more than 7 days away 2003-07-25 15:41 rmeden * choose/tv_check/.cvsignore: [no log message] 2003-07-25 15:41 rmeden * choose/tv_check/.cvsignore: Updated by TortoiseCVS 2003-07-25 15:28 rmeden * choose/tv_check/tv_check: case sensitivity to title-scans have been put back in. a case insensitive wildcard title search capability has been adde 2003-07-25 14:21 rmeden * choose/tv_check/tv_check: make Title-Search case insensitive 2003-07-24 19:13 jveldhuis * lib/IMDB.pm: update estimate to reflect latest counts 2003-07-20 16:22 epaepa * grab/: dk/tv_grab_dk, es/tv_grab_es, fi/tv_grab_fi, hu/tv_grab_hu, it/tv_grab_it.in, na/tv_grab_na, nl/tv_grab_nl: Changed grabbers to use XMLTV::Ask::askManyBooleanQuestions() for handling 'none' and 'all' answers. 2003-07-20 16:18 epaepa * lib/Ask.pm: askManyBooleanQuestions(): carp() about the mistake of passing 'no' as the default instead of 0 (since the string 'no' is false). 2003-07-20 15:13 epaepa * grab/na/tv_grab_na: Refactored some duplicate code in configuration. 2003-07-20 12:49 epaepa * lib/Ask.pm: askManyBooleanQuestions(): Offer both 'all' and 'none' options regardless of the default answer. 2003-07-19 16:28 epaepa * grab/na/ZapListings.pm: Say 'use base' instead of 'require' plus '@ISA ='. 2003-07-19 16:15 epaepa * Makefile.PL, Uninstall.pm, mkdist, choose/tv_pick/tv_pick_cgi, filter/Grep.pm, filter/tv_extractinfo_en, filter/tv_sort, grab/Europe_TZ.pm, grab/Get_nice.pm, grab/es/tv_grab_es, grab/fi/tv_grab_fi, grab/hu/tv_grab_hu, grab/na/ZapListings.pm, grab/na/tv_grab_na, grab/nl/tv_grab_nl, grab/uk_rt/tv_grab_uk_rt.in, lib/Ask.pm, lib/Clumps.pm, lib/Gunzip.pm, lib/IMDB.pm, lib/Summarize.pm, lib/TZ.pm, lib/Usage.pm, lib/XMLTV.pm.in, t/parallel_test, t/test_filters.t: Say 'our' instead of 'use vars'. Changes checked by hand but not every program has been run ('make test' passes). 2003-07-19 14:51 epaepa * grab/it/tv_grab_it.PL, grab/nz/tv_grab_nz.PL, lib/set_share_dir.pl: set_share_dir.pl now provides a set_share_dir() function to call with two arguments, rather than using a global $in variable and @ARGV. 2003-07-19 12:24 epaepa * t/test_filters.t: Allow extra arguments as regexps for tests to run, so you can say for example './t/test_filters.t --full tv_sort'. 2003-07-15 02:25 rmeden * choose/tv_check/tv_check: fix some more loose ends on channel name changes 2003-07-14 20:56 epaepa * xmltv.dtd: Clarified the meaning of the 'part number' field in xmltvns episode-nums. 2003-07-12 20:51 epaepa * Makefile.PL, filter/tv_sort: Replaced data_eq() in tv_sort with the Storable module, which can be used to implement deep equality testing. 2003-07-12 16:48 epaepa * grab/uk_rt/tv_grab_uk_rt.in: When an unknown bit of text is very long, it's probably an extra description or review. 2003-07-12 16:48 epaepa * grab/nz/tv_grab_nz.in: Handle part numbers like 'P2' (I hope this does express a part number and isn't junk text). 2003-07-11 05:46 rmeden * choose/tv_check/tv_check: keep up with tv_grab_na's changes to the channel name field. It's used to auto-convert from the old tv_grab_na id format to new RFC format. Once the the show file is written again, the new id values are stored. 2003-07-10 21:18 epaepa * mkdist: Check the date in the README file before release. 2003-07-06 19:13 epaepa * Makefile.PL, README, doc/README.win32, grab/na/ZapListings.pm, lib/XMLTV.pm.in: Version 0.5.15. 2003-07-06 19:12 epaepa * grab/uk_rt/tv_grab_uk_rt.in: Handle (or rather explicitly do-not-handle) another piece of information on the site, 'subsequent programmes may be altered or late'. 2003-07-06 18:39 epaepa * grab/nz/tv_grab_nz.in: get_programs(): If there's a failure downloading the URL, warn about it and return nothing (rather than aborting). 2003-07-06 17:12 epaepa * grab/nl_wolf/tv_grab_nl_wolf: Fixed for change in the layout of the index page on the upstream site. 2003-07-06 16:46 epaepa * grab/nl/tv_grab_nl: process_summary_page(): Refactored parsing of dates: annotate @todo with start day and stop day and then parse each element of it afterwards. 2003-07-06 16:21 epaepa * grab/nl/tv_grab_nl: The code to work out when a midnight crossing should be placed was wrong because it wasn't comparing Date::Manip's deltas correctly. You have to use Delta_Format() before you can compare them - I chose to format them as a number of seconds. This fixes the problem found by Paul Webster where Sport from 12:30 to 00:00 would bump the day, giving the wrong day for all the following programmes that were contained inside Sport. But it does so almost by accident. 2003-07-06 13:20 epaepa * lib/IMDB.pm: Now uses XMLTV::Gunzip to open gzipped files. openMaybeGunzip(): new routine to factor out code of gunzipping or opening normally depending on file extension. 2003-07-06 13:02 epaepa * lib/Gunzip.pm: This module now provides a way to open .gz files as well as decompressing data in memory. The opening works by using gzopen() and a simple Tie::Handle wrapper to make Compress::Zlib look like a filehandle. This code ought to be part of Compress::Zlib itself one day. If the module is not installed then of course we open a pipe from gzip. 2003-07-05 18:34 epaepa * MANIFEST, Makefile.PL, grab/de/tv_grab_de, lib/Gunzip.pm: Moved the code to call Compress::Zlib-or-gzip(1) out of tv_grab_de into a new library XMLTV::Gunzip. 2003-07-05 16:35 jveldhuis * grab/na/tv_grab_na: display-name changed from: Channel 2 CFRN to 2 CFRN 2 to be more consistant with other grabbers and give applications the option of looking for a numeric display-name 2003-07-05 06:58 rmeden * lib/IMDB.pm: change from LWP::Simple::getprint to getstore. getprint converts line endings on MacOS and windows, and this screws up the gziped listing files. In addition, getstore doesn't need all the games with STDOUT. 2003-07-03 21:21 epaepa * Makefile.PL, README: The complicated testing of Date::Manip should no longer be needed, version 5.42 incorporates the fixes we want so we can just require that. 2003-07-03 21:20 epaepa * lib/TZ.pm: Changed a few die()s to croak() when they are the caller's fault. 2003-07-03 21:19 epaepa * grab/Europe_TZ.pm: parse_eur_date(): added usage check. 2003-07-03 20:51 epaepa * grab/de/tv_grab_de: The upstream timezones are incorrect, don't rely on them but use Europe_TZ instead. 2003-07-02 23:58 jveldhuis * Makefile.PL: reversed an accidental check-in that removed the checks for Date::Manip versions 2003-07-01 19:01 jveldhuis * Makefile.PL: version 0.5.14 numbers 2003-07-01 18:56 jveldhuis * lib/XMLTV.pm.in: version 0.5.14 numbers 2003-07-01 18:50 jveldhuis * Makefile.PL, README, doc/README.win32, grab/na/ZapListings.pm: version 0.5.14 numbers 2003-07-01 18:47 jveldhuis * grab/na/ZapListings.pm: arg s//ios doesn't default to global case insensitive, only the first match 2003-07-01 16:45 jveldhuis * grab/na/ZapListings.pm: updated release information in useragent 2003-07-01 16:44 jveldhuis * mkdist: put back in cvs tagging 2003-07-01 16:43 jveldhuis * Makefile.PL, README, doc/README.win32, lib/XMLTV.pm.in: updated version numbers and descriptions for 0.5.13 release 2003-07-01 16:20 jveldhuis * grab/na/ZapListings.pm: the fix required to support the new zap2it web layout. Big Big thanks to Gregorio Gervasio who sumitted most of the fixes. 2003-06-29 21:15 epaepa * Makefile.PL, README, doc/README.win32, grab/na/ZapListings.pm, lib/XMLTV.pm.in: Version 0.5.12. 2003-06-29 20:54 epaepa * lib/IMDB.pm: Declare the name 'OLDOUT' to quell warning. 2003-06-29 19:15 epaepa * grab/uk_rt/tv_grab_uk_rt.in: The warning about channel names now allows the small difference 'Sky One' -> 'Sky 1', etc. 2003-06-29 19:14 epaepa * grab/nl/tv_grab_nl: In --slow mode, deal with a couple of non-Latin-1 characters that creep into the HTML. A more general character check is still todo. 2003-06-29 19:03 epaepa * grab/hu/tv_grab_hu: Trim leading and trailing whitespace from programme titles. 2003-06-29 15:53 epaepa * choose/tv_check/tv_check, filter/tv_cat, filter/tv_extractinfo_en, filter/tv_grep.in, filter/tv_imdb, filter/tv_sort, filter/tv_split, filter/tv_to_latex, filter/tv_to_text, grab/de/tv_grab_de, grab/dk/tv_grab_dk, grab/es/tv_grab_es, grab/fi/tv_grab_fi, grab/hu/tv_grab_hu, grab/it/tv_grab_it.in, grab/na/tv_grab_na, grab/nl/tv_grab_nl, grab/nl_wolf/tv_grab_nl_wolf, grab/nz/tv_grab_nz.in, grab/uk_rt/tv_grab_uk_rt.in: All files with pod documentation now have '=pod'. This should let them get noticed by older versions of MakeMaker. 2003-06-29 14:51 epaepa * grab/de/tv_grab_de: Added 'use bytes' to work around baffling problem reported by Axel Thimm. Remove empty elements to avoid complaints from XMLTV.pm. 2003-06-29 14:40 epaepa * grab/nl/tv_grab_nl: Rewrote --slow mode so that it uses the summary information of 'fast' mode and just adds extra details. This should get rid of the bugs with missing programmes or wrong times in --slow mode. 2003-06-24 04:32 jveldhuis * lib/IMDB.pm: how rude, some entries have (TV) appearing more than once. 2003-06-23 22:57 rmeden * choose/tv_check/tv_check.bat: [no log message] 2003-06-22 19:46 epaepa * mkdist: Fixed regexp to match xmltv/0.5.11 or whatever in ZapListings.pm. 2003-06-22 19:22 epaepa * Makefile.PL, README, mkdist, doc/README.win32, grab/na/ZapListings.pm, lib/XMLTV.pm.in: Version 0.5.11. Added Zaplistings.pm to the version checker in mkdist. 2003-06-22 17:56 epaepa * grab/it/tv_grab_it.in: Use get_nice() to download channels page, not get() which is not imported. 2003-06-22 17:54 epaepa * grab/it/tv_grab_it.in: Robert E. spotted that --share was broken. 2003-06-22 17:32 epaepa * Makefile.PL: Changed description of tv_check as suggested by Robert Eden. 2003-06-22 16:39 rmeden * lib/exe_wrap.pl: added tv_grab_it to those programs that need a --share directory 2003-06-22 10:40 epaepa * Makefile.PL: More windows_dist fixes: remove useless files and directories. 2003-06-22 10:25 epaepa * Makefile.PL: Fixed manual page generation (again). For some reason $(INSTALLMAN1DIR), which is normally the final resting place of section 1 manual pages, wasn't created at the time windows_dist ran. Instead we now fetch the pages from $(INST_MAN1DIR), which is the temporary place in blib/, and should always be there. I hope this doesn't break on anyone else's system with a different MakeMaker. The 'unix2dos' program also has a tendency to misbehave - it can run in two modes, modifying a file in-place or running as a filter and writing the new text to stdout. My unix2dos seems to have decided to switch from one to the other, so I've replaced it with some Perl code to do the same job. 2003-06-22 09:44 epaepa * Makefile.PL: Made the prompting for optional things a bit more manageable - you are offered a default configuration to accept. 2003-06-21 20:16 epaepa * grab/na/tv_grab_na: Fixed output - the right system is 'xmltv_ns' not 'xmltv', and formatted the data the same way as tv_cat. 2003-06-21 20:12 epaepa * grab/fi/tv_grab_fi: Updated for new layout of channel list on front page - the grabber now works again. 2003-06-21 20:02 epaepa * grab/uk_rt/tv_grab_uk_rt.in: Handle alternate spellings 'Related websites' and 'Related features'; report the correct URL in error messages. 2003-06-21 19:54 epaepa * grab/uk_rt/tv_grab_uk_rt.in: Loosened regexp to match channel list, so the grabber now works again. 2003-06-21 19:45 epaepa * grab/nz/tv_grab_nz.in: Parse 'Part 2' etc. and turn it into . 2003-06-21 15:37 epaepa * Makefile.PL: Don't create plain text versions of section 3 manual pages for the Windows binary distribution - they are not needed. But where the pages are installed, give them the correct name: XMLTV::Foo rather than just Foo. 2003-06-21 15:07 epaepa * Makefile.PL: Fixed windows_dist target: a line was missing. Converted some spaces to tabs (it didn't seem to matter, but might as well be consistent). 2003-06-21 14:44 epaepa * MANIFEST: Added merge_tvprefs to file list. 2003-06-21 14:26 epaepa * grab/de/tv_grab_de: Fix up the downloaded XML to have proper-looking channel ids and elements. 2003-06-21 13:02 epaepa * grab/nl/tv_grab_nl: Moved most of write_details() into a new routine process_details_page() which returns a programme hash from a single page. Then write_details()'s job is to track next-day changes and write the programmes. time_van_str(), time_tot_str(): these do now return strings, not Date::Manip objects. 2003-06-21 11:38 epaepa * grab/nl/tv_grab_nl: Refactored the calls of summary_page_data() on each of @to_get - the results are needed for both slow and fast modes. Removed detail_urls(), it is not and was not used. Don't warn about empty 'Genre', just skip it. 2003-06-21 10:43 epaepa * grab/nl/tv_grab_nl: Trimmed trailing spaces. 2003-06-14 17:26 epaepa * Makefile.PL: Version 5.40.epa1 of Date::Manip is now required; added a selection of different verbose error messages explaining what you might or might not need to install. 2003-06-08 18:21 rmeden * choose/tv_check/tv_check: added code to automatically convert to new RFC based tv_grab_na channel Ids added code to remove false alarm and "never mind" message when --myrelaytv can't guess a show day, but assumes the old day is ok. 2003-06-08 10:10 epaepa * filter/: Grep.pm, tv_grep.in: Fixed bug found by Jeffrey Arundel Ralph and Robert Eden. An empty regexp does not 'always match', instead it uses the last successfully matching regexp. This meant it appeared to work for some users but failed for others. Now there is an explicit check for empty regexp whenever one is used. The strange thing is that this check already existed in some parts of the code, but not everywhere. 2003-06-08 09:47 epaepa * choose/tv_pick/merge_tvprefs: Adding trivial merge_tvprefs script to combine two or more prefs files. 2003-06-07 17:09 epaepa * choose/tv_pick/tv_pick_cgi: Removed support for very old tvprefs files with 'maybe'. 2003-06-03 03:38 rmeden * Makefile.PL: blank lines were left in new windows_dist code. 2003-06-02 05:54 jveldhuis * grab/na/tv_grab_na: channel ids now follow RFC2838 as per Ed's request 2003-06-01 21:11 epaepa * grab/Europe_TZ.pm: date_to_eur(): Removed unused $clock_shift variable. 2003-06-01 18:31 epaepa * grab/nl/tv_grab_nl: process_summary_page(): Rewrote handling of times. Now instead of taking the first programme with stop < start as the point where the listings cross midnight, all such programmes are compared and the one with the shortest length is taken as the 'real' one (so we ignore things like 'Kilroy 10:00-00:00', which is both absurd and all too plausible). The results returned should now guarantee no programme stops before it starts, and should be in time order. This should fix some of the problems reported by Johan Schravesande. 2003-06-01 16:49 epaepa * MANIFEST, t/data/sort1.xml, t/data/sort2.xml, t/data/tv_cat_all_UTF8.expected, t/data/tv_cat_sort1_xml.expected, t/data/tv_cat_sort2_xml.expected, t/data/tv_extractinfo_en_all_UTF8.expected, t/data/tv_extractinfo_en_sort1_xml.expected, t/data/tv_extractinfo_en_sort2_xml.expected, t/data/tv_grep_a_all_UTF8.expected, t/data/tv_grep_a_sort1_xml.expected, t/data/tv_grep_a_sort2_xml.expected, t/data/tv_grep_category_b_sort1_xml.expected, t/data/tv_grep_category_b_sort2_xml.expected, t/data/tv_grep_category_e_and_title_f_sort1_xml.expected, t/data/tv_grep_category_e_and_title_f_sort2_xml.expected, t/data/tv_grep_category_g_or_title_h_sort1_xml.expected, t/data/tv_grep_category_g_or_title_h_sort2_xml.expected, t/data/tv_grep_channel_id_channel4_com_sort1_xml.expected, t/data/tv_grep_channel_id_channel4_com_sort2_xml.expected, t/data/tv_grep_channel_name_d_sort1_xml.expected, t/data/tv_grep_channel_name_d_sort2_xml.expected, t/data/tv_grep_channel_xyz_or_channel_b_sort1_xml.expected, t/data/tv_grep_channel_xyz_or_channel_b_sort2_xml.expected, t/data/tv_grep_eval_scalar_keys_5_sort1_xml.expected, t/data/tv_grep_eval_scalar_keys_5_sort2_xml.expected, t/data/tv_grep_i_category_i_title_h_sort1_xml.expected, t/data/tv_grep_i_category_i_title_h_sort2_xml.expected, t/data/tv_grep_i_category_i_title_j_sort1_xml.expected, t/data/tv_grep_i_category_i_title_j_sort2_xml.expected, t/data/tv_grep_i_last_chance_c_sort1_xml.expected, t/data/tv_grep_i_last_chance_c_sort2_xml.expected, t/data/tv_grep_new_sort1_xml.expected, t/data/tv_grep_new_sort2_xml.expected, t/data/tv_grep_on_after_2002_02_05_UTC_sort1_xml.expected, t/data/tv_grep_on_after_2002_02_05_UTC_sort2_xml.expected, t/data/tv_grep_on_after_200302161330_UTC_sort1_xml.expected, t/data/tv_grep_on_after_200302161330_UTC_sort2_xml.expected, t/data/tv_grep_on_before_200302161330_UTC_all_UTF8.expected, t/data/tv_grep_on_before_200302161330_UTC_sort1_xml.expected, t/data/tv_grep_on_before_200302161330_UTC_sort2_xml.expected, t/data/tv_grep_premiere_sort1_xml.expected, t/data/tv_grep_premiere_sort2_xml.expected, t/data/tv_grep_previously_shown_sort1_xml.expected, t/data/tv_grep_previously_shown_sort2_xml.expected, t/data/tv_sort_all_UTF8.expected, t/data/tv_sort_by_channel_all_UTF8.expected, t/data/tv_sort_by_channel_sort1_xml.expected, t/data/tv_sort_by_channel_sort2_xml.expected, t/data/tv_sort_sort1_xml.expected, t/data/tv_sort_sort2_xml.expected, t/data/tv_to_latex_all_UTF8.expected, t/data/tv_to_latex_sort1_xml.expected, t/data/tv_to_latex_sort2_xml.expected, t/data/tv_to_text_all_UTF8.expected, t/data/tv_to_text_sort1_xml.expected, t/data/tv_to_text_sort2_xml.expected: A couple of test cases for the recently found (and now fixed) bug in tv_sort. 2003-06-01 16:02 epaepa * filter/tv_sort, t/data/tv_sort_all_UTF8.expected, t/data/tv_sort_by_channel_all_UTF8.expected: Fixed a design bug in tv_sort. Previously, when comparing two programmes, if either of them lacked a stop time then it did not consider stop times and went straight on to comparing other things. But this makes a bad comparison function: for example three programmes which have the same start time, one of them has no stop time, and the other two have different stop times. You can see that the <= relation is no longer transitive. Fixed this by deciding that 'no stop time' comes before 'some stop time'. This meant some changes to add_stop(), the routine which guesses stop times for programmes that don't have them. This function ought perhaps to be in a separate filter program, but it's still part of tv_sort for now. add_stop() needs to maintain the invariant that its list of programmes is sorted, so you can't always add stop times because that could now change the sorting order. But I've rewritten it so it's a bit less tangled than before, I'm fairly sure it's correct, and the results seem about the same as before (except in cases where the old version broke). 2003-06-01 15:55 epaepa * MANIFEST: Added new lib/exe_opt.pl to file list. 2003-06-01 15:53 epaepa * lib/exe_opt.pl: It's 'xmltv' for the project or maybe 'XMLTV', but definitely not 'xmlTV' :-P. 2003-06-01 15:47 epaepa * t/test_filters.t: run(): if system() fails, put STDERR back before trying to report an error! 2003-06-01 10:16 epaepa * grab/nl/tv_grab_nl: Skip quietly over the 'Ieder heel uur' and 'onder voorbehoud' notices. 2003-06-01 10:02 epaepa * Makefile.PL: Make requires tabs not spaces before commands. 2003-06-01 09:12 epaepa * lib/XMLTV.pm.in: Remove \r characters when reading input; this is for reading files with CP/M line endings, and should fix some test failures on Windows. 2003-06-01 09:10 epaepa * grab/nl/tv_grab_nl: Tidied some code; don't use 'next' to exit a subroutine. 2003-06-01 08:20 epaepa * MANIFEST: A couple of files were recently deleted. 2003-06-01 08:00 epaepa * grab/nl/tv_grab_nl: Removed lone mention of $Log::TraceMessages::On which was causing a warning. 2003-06-01 06:22 rmeden * Makefile.PL: forgot to delete exe_opt.txt 2003-06-01 05:46 rmeden * lib/exe_opt.pl: Initial Checkin. This scipt is used to seed the PERLAPP options for for use in making xmltv.exe It's pretty much constants except for the version fields. 2003-06-01 05:44 rmeden * Makefile.PL: add version and other meta-data to xmltv.exe 2003-05-31 18:05 epaepa * grab/nl/tv_grab_nl: Changed the handling of programmes with missing start or stop times. Added to the output where it is known. 2003-05-31 13:59 epaepa * grab/nl/tv_grab_nl: Whoops, the last version didn't compile due to one too many }s. 2003-05-31 13:34 epaepa * filter/tv_grep.in: Added undocumented --echo option which must appear as the first argument and causes tv_grep to dump its arguments to stdout and exit. This might diagnose some strange bugs on Windows. 2003-05-31 13:11 epaepa * filter/tv_imdb: Documented more clearly the memory requirements. Print chatter to STDERR not STDOUT. 2003-05-30 20:47 epaepa * lib/IMDB.pm: Use getprint() to download files without loading the whole file into memory. (OK, later processing does require loading the whole file, but still, this greater frugality in downloading is useful to me.) Also this lets you keep partially written files, which should be renamed to filename.partial. 2003-05-30 20:21 epaepa * filter/tv_imdb: Added --download option which if given in --prepStage sets the new 'downloadMissingFiles' flag for XMLTV::IMDB::Crunch. Changed documentation to reflect this. Documented the slowness in Windows. 2003-05-30 20:07 epaepa * lib/IMDB.pm: new(): the new 'downloadMissingFiles' option turns on a simple-minded attempt to get the files from an imdb FTP site. This might suffice for users on fast connections. Create the lists/ directory if it doesn't already exist. 2003-05-30 19:11 epaepa * filter/tv_imdb: Documented that IMDB.pm runs an external gzip rather than using Compress::Zlib. 2003-05-30 13:58 rmeden * Makefile.PL: fix errors dealing with the MAN pages. 2003-05-29 21:17 epaepa * grab/nl/tv_grab_nl: Changed the handling of programmes with missing start and stop times: now process_summary_page() returns what it can (including even programmes with stop time but no start) and there is less inclination to spoil a 'good' programme by putting it in a clump with bad ones. This might or might not satisfactorily solve the problems reported by Johan Schravesande. 2003-05-26 14:47 epaepa * doc/README.win32: Noted that ^ is the quote character on some Windows versions. 2003-05-26 11:49 epaepa * Makefile.PL: Dealt with FIXME: replaced Unix commands (other than echo(1)) with invocations of ExtUtils::Command. This should improve portability, particularly to Windows. 2003-05-26 09:45 epaepa * Makefile.PL, doc/README.win32: Documented date formats for xmltv.exe users in a generated file date_formats.txt. 2003-05-26 09:42 epaepa * filter/tv_split: Removed reference to nonexistent xmltv(5) manpage. 2003-05-25 05:31 rmeden * lib/exe_wrap.pl: remove error on directory with space in it... doesn't seem to be a problem now 2003-05-22 20:45 epaepa * Makefile.PL: Made the configuration process more consistent by having every grabber optional. Only the XMLTV libraries and filter programs are required. 2003-05-22 20:14 epaepa * Makefile.PL: Made all occurrences of tv_grab_nz contained in its hash of conditional stuff. This should fix the bug where Makefile.PL doesn't run if you say 'no' to tv_grab_nz. 2003-05-22 20:02 epaepa * Makefile.PL: Refactoring. 2003-05-22 19:57 epaepa * Makefile.PL: Refactoring. 2003-05-22 19:50 epaepa * Makefile.PL: Refactoring. 2003-05-22 19:22 epaepa * Makefile.PL: Fixed 'set LC_ALL to en_US' error message. 2003-05-21 19:50 epaepa * grab/nz/episode_names: Adding dummy episode_names file to keep the Makefile.PL happy. I hope that soon it will be replaced with a real list of episode names. 2003-05-20 19:25 epaepa * MANIFEST: Renamed test cases. 2003-05-19 20:09 epaepa * t/: test_filters.t, data/tv_grep_on_after_2002_02_05_UTC_all_UTF8.expected, data/tv_grep_on_after_2002_02_05_UTC_amp_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_amp_xml_amp_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_amp_xml_clump_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_amp_xml_dups_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_amp_xml_empty_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_amp_xml_empty_xml_empty_xml_clump_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_attrs_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_clump_extract_1_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_clump_extract_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_clump_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_clump_xml_amp_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_clump_xml_clump_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_clump_xml_dups_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_clump_xml_empty_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_dups_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_dups_xml_amp_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_dups_xml_clump_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_dups_xml_dups_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_dups_xml_empty_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_empty_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_empty_xml_amp_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_empty_xml_clump_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_empty_xml_dups_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_empty_xml_empty_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_intervals_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_length_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_overlap_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_simple_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_simple_xml_x_whatever_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_sort_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_test_empty_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_test_livre_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_test_sort_by_channel_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_test_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_test_xml_test_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_whitespace_xml.expected, data/tv_grep_on_after_2002_02_05_UTC_x_whatever_xml.expected, data/tv_grep_on_after_2002_02_05_all_UTF8.expected, data/tv_grep_on_after_2002_02_05_amp_xml.expected, data/tv_grep_on_after_2002_02_05_amp_xml_amp_xml.expected, data/tv_grep_on_after_2002_02_05_amp_xml_clump_xml.expected, data/tv_grep_on_after_2002_02_05_amp_xml_dups_xml.expected, data/tv_grep_on_after_2002_02_05_amp_xml_empty_xml.expected, data/tv_grep_on_after_2002_02_05_amp_xml_empty_xml_empty_xml_clump_xml.expected, data/tv_grep_on_after_2002_02_05_attrs_xml.expected, data/tv_grep_on_after_2002_02_05_clump_extract_1_xml.expected, data/tv_grep_on_after_2002_02_05_clump_extract_xml.expected, data/tv_grep_on_after_2002_02_05_clump_xml.expected, data/tv_grep_on_after_2002_02_05_clump_xml_amp_xml.expected, data/tv_grep_on_after_2002_02_05_clump_xml_clump_xml.expected, data/tv_grep_on_after_2002_02_05_clump_xml_dups_xml.expected, data/tv_grep_on_after_2002_02_05_clump_xml_empty_xml.expected, data/tv_grep_on_after_2002_02_05_dups_xml.expected, data/tv_grep_on_after_2002_02_05_dups_xml_amp_xml.expected, data/tv_grep_on_after_2002_02_05_dups_xml_clump_xml.expected, data/tv_grep_on_after_2002_02_05_dups_xml_dups_xml.expected, data/tv_grep_on_after_2002_02_05_dups_xml_empty_xml.expected, data/tv_grep_on_after_2002_02_05_empty_xml.expected, data/tv_grep_on_after_2002_02_05_empty_xml_amp_xml.expected, data/tv_grep_on_after_2002_02_05_empty_xml_clump_xml.expected, data/tv_grep_on_after_2002_02_05_empty_xml_dups_xml.expected, data/tv_grep_on_after_2002_02_05_empty_xml_empty_xml.expected, data/tv_grep_on_after_2002_02_05_intervals_xml.expected, data/tv_grep_on_after_2002_02_05_length_xml.expected, data/tv_grep_on_after_2002_02_05_overlap_xml.expected, data/tv_grep_on_after_2002_02_05_simple_xml.expected, data/tv_grep_on_after_2002_02_05_simple_xml_x_whatever_xml.expected, data/tv_grep_on_after_2002_02_05_sort_xml.expected, data/tv_grep_on_after_2002_02_05_test_empty_xml.expected, data/tv_grep_on_after_2002_02_05_test_livre_xml.expected, data/tv_grep_on_after_2002_02_05_test_sort_by_channel_xml.expected, data/tv_grep_on_after_2002_02_05_test_xml.expected, data/tv_grep_on_after_2002_02_05_test_xml_test_xml.expected, data/tv_grep_on_after_2002_02_05_whitespace_xml.expected, data/tv_grep_on_after_2002_02_05_x_whatever_xml.expected, data/tv_grep_on_after_200302161330_UTC_all_UTF8.expected, data/tv_grep_on_after_200302161330_UTC_amp_xml.expected, data/tv_grep_on_after_200302161330_UTC_amp_xml_amp_xml.expected, data/tv_grep_on_after_200302161330_UTC_amp_xml_clump_xml.expected, data/tv_grep_on_after_200302161330_UTC_amp_xml_dups_xml.expected, data/tv_grep_on_after_200302161330_UTC_amp_xml_empty_xml.expected, data/tv_grep_on_after_200302161330_UTC_amp_xml_empty_xml_empty_xml_clump_xml.expected, data/tv_grep_on_after_200302161330_UTC_attrs_xml.expected, data/tv_grep_on_after_200302161330_UTC_clump_extract_1_xml.expected, data/tv_grep_on_after_200302161330_UTC_clump_extract_xml.expected, data/tv_grep_on_after_200302161330_UTC_clump_xml.expected, data/tv_grep_on_after_200302161330_UTC_clump_xml_amp_xml.expected, data/tv_grep_on_after_200302161330_UTC_clump_xml_clump_xml.expected, data/tv_grep_on_after_200302161330_UTC_clump_xml_dups_xml.expected, data/tv_grep_on_after_200302161330_UTC_clump_xml_empty_xml.expected, data/tv_grep_on_after_200302161330_UTC_dups_xml.expected, data/tv_grep_on_after_200302161330_UTC_dups_xml_amp_xml.expected, data/tv_grep_on_after_200302161330_UTC_dups_xml_clump_xml.expected, data/tv_grep_on_after_200302161330_UTC_dups_xml_dups_xml.expected, data/tv_grep_on_after_200302161330_UTC_dups_xml_empty_xml.expected, data/tv_grep_on_after_200302161330_UTC_empty_xml.expected, data/tv_grep_on_after_200302161330_UTC_empty_xml_amp_xml.expected, data/tv_grep_on_after_200302161330_UTC_empty_xml_clump_xml.expected, data/tv_grep_on_after_200302161330_UTC_empty_xml_dups_xml.expected, data/tv_grep_on_after_200302161330_UTC_empty_xml_empty_xml.expected, data/tv_grep_on_after_200302161330_UTC_intervals_xml.expected, data/tv_grep_on_after_200302161330_UTC_length_xml.expected, data/tv_grep_on_after_200302161330_UTC_overlap_xml.expected, data/tv_grep_on_after_200302161330_UTC_simple_xml.expected, data/tv_grep_on_after_200302161330_UTC_simple_xml_x_whatever_xml.expected, data/tv_grep_on_after_200302161330_UTC_sort_xml.expected, data/tv_grep_on_after_200302161330_UTC_test_empty_xml.expected, data/tv_grep_on_after_200302161330_UTC_test_livre_xml.expected, data/tv_grep_on_after_200302161330_UTC_test_sort_by_channel_xml.expected, data/tv_grep_on_after_200302161330_UTC_test_xml.expected, data/tv_grep_on_after_200302161330_UTC_test_xml_test_xml.expected, data/tv_grep_on_after_200302161330_UTC_whitespace_xml.expected, data/tv_grep_on_after_200302161330_UTC_x_whatever_xml.expected, data/tv_grep_on_after_200302161330_all_UTF8.expected, data/tv_grep_on_after_200302161330_amp_xml.expected, data/tv_grep_on_after_200302161330_amp_xml_amp_xml.expected, data/tv_grep_on_after_200302161330_amp_xml_clump_xml.expected, data/tv_grep_on_after_200302161330_amp_xml_dups_xml.expected, data/tv_grep_on_after_200302161330_amp_xml_empty_xml.expected, data/tv_grep_on_after_200302161330_amp_xml_empty_xml_empty_xml_clump_xml.expected, data/tv_grep_on_after_200302161330_attrs_xml.expected, data/tv_grep_on_after_200302161330_clump_extract_1_xml.expected, data/tv_grep_on_after_200302161330_clump_extract_xml.expected, data/tv_grep_on_after_200302161330_clump_xml.expected, data/tv_grep_on_after_200302161330_clump_xml_amp_xml.expected, data/tv_grep_on_after_200302161330_clump_xml_clump_xml.expected, data/tv_grep_on_after_200302161330_clump_xml_dups_xml.expected, data/tv_grep_on_after_200302161330_clump_xml_empty_xml.expected, data/tv_grep_on_after_200302161330_dups_xml.expected, data/tv_grep_on_after_200302161330_dups_xml_amp_xml.expected, data/tv_grep_on_after_200302161330_dups_xml_clump_xml.expected, data/tv_grep_on_after_200302161330_dups_xml_dups_xml.expected, data/tv_grep_on_after_200302161330_dups_xml_empty_xml.expected, data/tv_grep_on_after_200302161330_empty_xml.expected, data/tv_grep_on_after_200302161330_empty_xml_amp_xml.expected, data/tv_grep_on_after_200302161330_empty_xml_clump_xml.expected, data/tv_grep_on_after_200302161330_empty_xml_dups_xml.expected, data/tv_grep_on_after_200302161330_empty_xml_empty_xml.expected, data/tv_grep_on_after_200302161330_intervals_xml.expected, data/tv_grep_on_after_200302161330_length_xml.expected, data/tv_grep_on_after_200302161330_overlap_xml.expected, data/tv_grep_on_after_200302161330_simple_xml.expected, data/tv_grep_on_after_200302161330_simple_xml_x_whatever_xml.expected, data/tv_grep_on_after_200302161330_sort_xml.expected, data/tv_grep_on_after_200302161330_test_empty_xml.expected, data/tv_grep_on_after_200302161330_test_livre_xml.expected, data/tv_grep_on_after_200302161330_test_sort_by_channel_xml.expected, data/tv_grep_on_after_200302161330_test_xml.expected, data/tv_grep_on_after_200302161330_test_xml_test_xml.expected, data/tv_grep_on_after_200302161330_whitespace_xml.expected, data/tv_grep_on_after_200302161330_x_whatever_xml.expected, data/tv_grep_on_before_200302161330_UTC_all_UTF8.expected, data/tv_grep_on_before_200302161330_UTC_amp_xml.expected, data/tv_grep_on_before_200302161330_UTC_amp_xml_amp_xml.expected, data/tv_grep_on_before_200302161330_UTC_amp_xml_clump_xml.expected, data/tv_grep_on_before_200302161330_UTC_amp_xml_dups_xml.expected, data/tv_grep_on_before_200302161330_UTC_amp_xml_empty_xml.expected, data/tv_grep_on_before_200302161330_UTC_amp_xml_empty_xml_empty_xml_clump_xml.expected, data/tv_grep_on_before_200302161330_UTC_attrs_xml.expected, data/tv_grep_on_before_200302161330_UTC_clump_extract_1_xml.expected, data/tv_grep_on_before_200302161330_UTC_clump_extract_xml.expected, data/tv_grep_on_before_200302161330_UTC_clump_xml.expected, data/tv_grep_on_before_200302161330_UTC_clump_xml_amp_xml.expected, data/tv_grep_on_before_200302161330_UTC_clump_xml_clump_xml.expected, data/tv_grep_on_before_200302161330_UTC_clump_xml_dups_xml.expected, data/tv_grep_on_before_200302161330_UTC_clump_xml_empty_xml.expected, data/tv_grep_on_before_200302161330_UTC_dups_xml.expected, data/tv_grep_on_before_200302161330_UTC_dups_xml_amp_xml.expected, data/tv_grep_on_before_200302161330_UTC_dups_xml_clump_xml.expected, data/tv_grep_on_before_200302161330_UTC_dups_xml_dups_xml.expected, data/tv_grep_on_before_200302161330_UTC_dups_xml_empty_xml.expected, data/tv_grep_on_before_200302161330_UTC_empty_xml.expected, data/tv_grep_on_before_200302161330_UTC_empty_xml_amp_xml.expected, data/tv_grep_on_before_200302161330_UTC_empty_xml_clump_xml.expected, data/tv_grep_on_before_200302161330_UTC_empty_xml_dups_xml.expected, data/tv_grep_on_before_200302161330_UTC_empty_xml_empty_xml.expected, data/tv_grep_on_before_200302161330_UTC_intervals_xml.expected, data/tv_grep_on_before_200302161330_UTC_length_xml.expected, data/tv_grep_on_before_200302161330_UTC_overlap_xml.expected, data/tv_grep_on_before_200302161330_UTC_simple_xml.expected, data/tv_grep_on_before_200302161330_UTC_simple_xml_x_whatever_xml.expected, data/tv_grep_on_before_200302161330_UTC_sort_xml.expected, data/tv_grep_on_before_200302161330_UTC_test_empty_xml.expected, data/tv_grep_on_before_200302161330_UTC_test_livre_xml.expected, data/tv_grep_on_before_200302161330_UTC_test_sort_by_channel_xml.expected, data/tv_grep_on_before_200302161330_UTC_test_xml.expected, data/tv_grep_on_before_200302161330_UTC_test_xml_test_xml.expected, data/tv_grep_on_before_200302161330_UTC_whitespace_xml.expected, data/tv_grep_on_before_200302161330_UTC_x_whatever_xml.expected, data/tv_grep_on_before_200302161330_all_UTF8.expected, data/tv_grep_on_before_200302161330_amp_xml.expected, data/tv_grep_on_before_200302161330_amp_xml_amp_xml.expected, data/tv_grep_on_before_200302161330_amp_xml_clump_xml.expected, data/tv_grep_on_before_200302161330_amp_xml_dups_xml.expected, data/tv_grep_on_before_200302161330_amp_xml_empty_xml.expected, data/tv_grep_on_before_200302161330_amp_xml_empty_xml_empty_xml_clump_xml.expected, data/tv_grep_on_before_200302161330_attrs_xml.expected, data/tv_grep_on_before_200302161330_clump_extract_1_xml.expected, data/tv_grep_on_before_200302161330_clump_extract_xml.expected, data/tv_grep_on_before_200302161330_clump_xml.expected, data/tv_grep_on_before_200302161330_clump_xml_amp_xml.expected, data/tv_grep_on_before_200302161330_clump_xml_clump_xml.expected, data/tv_grep_on_before_200302161330_clump_xml_dups_xml.expected, data/tv_grep_on_before_200302161330_clump_xml_empty_xml.expected, data/tv_grep_on_before_200302161330_dups_xml.expected, data/tv_grep_on_before_200302161330_dups_xml_amp_xml.expected, data/tv_grep_on_before_200302161330_dups_xml_clump_xml.expected, data/tv_grep_on_before_200302161330_dups_xml_dups_xml.expected, data/tv_grep_on_before_200302161330_dups_xml_empty_xml.expected, data/tv_grep_on_before_200302161330_empty_xml.expected, data/tv_grep_on_before_200302161330_empty_xml_amp_xml.expected, data/tv_grep_on_before_200302161330_empty_xml_clump_xml.expected, data/tv_grep_on_before_200302161330_empty_xml_dups_xml.expected, data/tv_grep_on_before_200302161330_empty_xml_empty_xml.expected, data/tv_grep_on_before_200302161330_intervals_xml.expected, data/tv_grep_on_before_200302161330_length_xml.expected, data/tv_grep_on_before_200302161330_overlap_xml.expected, data/tv_grep_on_before_200302161330_simple_xml.expected, data/tv_grep_on_before_200302161330_simple_xml_x_whatever_xml.expected, data/tv_grep_on_before_200302161330_sort_xml.expected, data/tv_grep_on_before_200302161330_test_empty_xml.expected, data/tv_grep_on_before_200302161330_test_livre_xml.expected, data/tv_grep_on_before_200302161330_test_sort_by_channel_xml.expected, data/tv_grep_on_before_200302161330_test_xml.expected, data/tv_grep_on_before_200302161330_test_xml_test_xml.expected, data/tv_grep_on_before_200302161330_whitespace_xml.expected, data/tv_grep_on_before_200302161330_x_whatever_xml.expected: The recent change to tv_grep and other programs to parse command-line dates according to the local timezone broke the test suite. Changed the tv_grep commands so that UTC is explicitly specified for the dates. 2003-05-19 19:31 epaepa * MANIFEST, Makefile.PL, choose/tv_check/tv_check, filter/tv_cat, filter/tv_extractinfo_en, filter/tv_grep.in, filter/tv_imdb, filter/tv_sort, filter/tv_split, filter/tv_to_latex, filter/tv_to_text, grab/de/tv_grab_de, grab/dk/tv_grab_dk, grab/es/tv_grab_es, grab/fi/tv_grab_fi, grab/hu/tv_grab_hu, grab/it/tv_grab_it.in, grab/na/tv_grab_na, grab/nl/tv_grab_nl, grab/nl_wolf/tv_grab_nl_wolf, grab/nz/tv_grab_nz.in, grab/uk_rt/tv_grab_uk_rt.in, lib/Version.pm: Every executable now has a --version argument, provided by the new XMLTV::Version library which can parse the CVS id you import it with. 2003-05-18 19:11 rmeden * lib/exe_wrap.pl: die if a space is found in the exe path and a --share directory is needed. we know this causes problems. 2003-05-18 15:11 epaepa * grab/de/tv_grab_de: Kludge around the 'und uuml;' brokenness. 2003-05-18 14:11 epaepa * grab/Grab_XML.pm: Need to import XMLTV::TZ for parse_local_date(). 2003-05-17 18:16 epaepa * grab/nl/tv_grab_nl: Removed documentation for recently-fixed bug; added documentation about missing channels reported by Johan Schravesande. 2003-05-17 17:56 epaepa * grab/nl/tv_grab_nl: A further refinement to the stick-dodgy-programmes-into-a-clump code: delete the stop time of the clump, it was taken from the first programme but we have no indication that this time applies to the clump as a whole (it probably doesn't). So delete it. 2003-05-17 17:48 epaepa * grab/nl/tv_grab_nl: Fixed recently-introduced timezone bug. Added some more trace messages. OK, with this commit I think the bug/feature reported by Johan Schravesande is fixed. Instead of giving up when confronted with missing or nonsensical times, the grabber will try to output the programmes as part of a clump. 2003-05-17 17:37 epaepa * grab/nl/tv_grab_nl: Whoops, fixed so it compiles :-P. 2003-05-17 15:32 epaepa * grab/nl/tv_grab_nl: process_summary_page() is now allowed to return results with undef start and stop times, and it's up to the caller to work out what to do with them. Previously, process_summary_page() would discard the bad results itself. 2003-05-17 15:21 epaepa * grab/nl/tv_grab_nl: In fast mode, don't allow programmes to cross midnight twice on the same page (give up if this happens). Added some trace messages. 2003-05-16 07:16 epaepa * MANIFEST, Makefile.PL, grab/nz/tv_grab_nz, grab/nz/tv_grab_nz.PL, grab/nz/tv_grab_nz.in, lib/set_share_dir.pl: Changed the installation of tv_grab_nz to use the .in / .PL approach, so it can have a share directory, like some of the other grabbers. 2003-05-15 21:06 epaepa * Makefile.PL: Moved %share_files to the top level and let it be altered by optional things. 2003-05-15 20:56 epaepa * Makefile.PL: Refactoring WriterMakefile()'s PL_FILES argument into a variable %pl_files which can be added to by individual optional things. 2003-05-15 20:26 epaepa * filter/tv_grep.in, grab/Grab_XML.pm, grab/na/tv_grab_na, lib/TZ.pm: Another attempt at fixing the tv_grep timezone bug. A new routine XMLTV::TZ::parse_local_date() parses a date and converts it to UTC, so that when Date_Init('TZ=UTC') is called the date object does not get changed. 2003-05-15 04:24 rmeden * lib/exe_wrap.pl: limit output of Carp::Confess (called by Date::Manip) 2003-05-14 23:02 epaepa * lib/XMLTV.pm.in: Go one better - bad programme or channel elements are not returned to the caller at all. 2003-05-14 22:57 epaepa * lib/XMLTV.pm.in: Ignore elements missing required attributes (return them as undef rather than a hash). 2003-05-13 22:39 epaepa * Makefile.PL: Date::Manip 5.41 is required, earlier versions have a bug with numbered (rather than named) timezones. 2003-05-13 22:05 epaepa * t/data/: sort.xml, tv_cat_all_UTF8.expected, tv_cat_sort_xml.expected, tv_extractinfo_en_all_UTF8.expected, tv_extractinfo_en_sort_xml.expected, tv_grep_a_all_UTF8.expected, tv_grep_a_sort_xml.expected, tv_grep_on_after_2002_02_05_all_UTF8.expected, tv_grep_on_after_2002_02_05_sort_xml.expected, tv_grep_on_after_200302161330_all_UTF8.expected, tv_grep_on_after_200302161330_sort_xml.expected, tv_sort_all_UTF8.expected, tv_sort_by_channel_all_UTF8.expected, tv_sort_by_channel_sort_xml.expected, tv_sort_sort_xml.expected, tv_to_latex_all_UTF8.expected, tv_to_latex_sort_xml.expected, tv_to_text_all_UTF8.expected, tv_to_text_sort_xml.expected: Added test case for Date::Manip bug (fixed in 5.41). 2003-05-13 06:06 rmeden * lib/exe_wrap.pl: oops.. forgot File::Basename 2003-05-13 05:40 rmeden * choose/tv_check/README.tv_check: minor doc update 2003-05-13 05:36 rmeden * choose/tv_check/tv_check: adding a newline to improve error display 2003-05-13 05:35 rmeden * lib/exe_wrap.pl: Pretty much a total rewrite. On my development box (and hence the resulting EXEs) application DIE messages were not being delivered to the users. This version is much simpler (no self generating code), uses a "require" instead of a "do" and seems to work fine. Error statuses are even passed as DOS ERRORLEVELS if you case to script it. 2003-05-12 21:42 epaepa * grab/uk_rt/tv_grab_uk_rt.in: Fixed last fix. 2003-05-12 21:32 epaepa * grab/nl_wolf/tv_grab_nl_wolf: Added sanity check of index page. 2003-05-12 21:23 epaepa * filter/tv_grep.in, grab/Grab_XML.pm, grab/na/tv_grab_na, grab/nl/tv_grab_nl, grab/uk_rt/tv_grab_uk_rt.in: Attempting to fix bug with parsing 'now' or 'today' dates. This can't be done after calling Date_Init('TZ=UTC'). 2003-05-12 21:15 epaepa * grab/nl/tv_grab_nl: Fixed --offset handling. 2003-05-11 21:30 epaepa * Makefile.PL: Whoops, cut-n-paste error. 2003-05-11 21:24 epaepa * MANIFEST, Makefile.PL, grab/dk/tv_grab_dk: Adding Jesper Skov's tv_grab_dk grabber for Denmark. 2003-05-11 11:25 epaepa * MANIFEST, Makefile.PL, grab/hu/tv_grab_hu: New grabber: tv_grab_hu for Hungary written by Attila Szekeres and Zsolt Varga (although I have changed bits myself as well). 2003-05-11 11:22 epaepa * grab/es/tv_grab_es: Don't read the config file twice, use @config_lines which was read early on. 2003-05-11 10:29 epaepa * lib/XMLTV.pm.in: XMLTV::Writer now overrides dataElement() to catch all cases of writing empty (or all-whitespace) element content. (For things which are intended to be empty call emptyTag().) 2003-05-10 16:02 epaepa * grab/Mode.pm: Forgot to add and commit this file earlier. 2003-05-10 15:14 epaepa * MANIFEST, Makefile.PL, grab/es/tv_grab_es, grab/fi/tv_grab_fi, grab/nl/tv_grab_nl, grab/uk_rt/tv_grab_uk_rt.in: A new library XMLTV::Mode factors out the check 'you cannot configure and list channels at the same time'. Made sure all the grabbers fail early if they cannot read the config file during grabbing, rather than starting to download or write data before the config file is checked. 2003-05-10 14:48 epaepa * grab/nz/tv_grab_nz: Whoops, botched the last change - there was already a config file message. But it wasn't displayed until later in the process. 2003-05-10 14:44 epaepa * grab/nz/tv_grab_nz: Print a message to stderr saying what config filename has been guessed. 2003-05-10 13:23 epaepa * grab/es/tv_grab_es: Fixed spelling of --list-channels in documentation. 2003-05-09 21:15 epaepa * MANIFEST, Makefile.PL, README, doc/QuickStart, doc/README.win32: Removed tv_grab_us_gist, the gist.com site is no longer providing listings. Removed the 'changes in this release' from README and README.win32. 2003-05-09 20:58 epaepa * MANIFEST: Added grab/Get_nice.pm to file list. 2003-05-08 23:26 rmeden * lib/exe_wrap.pl: removed error for tv_imdb. It works on windows now. 2003-05-08 23:23 rmeden * choose/tv_check/tv_check: rename $MYREPLAY_SAVE -> $MYREPLAY_DEBUG more accurate added debug messages when $MYREPLAY_DEBUG==2 shorten the "Mon, Tue, Wed...." to "*" in warning if all days specified filter out episodes more than a week away in extra eposide scan fix bug where day not set on initial myrelaytv import 2003-05-06 15:41 jveldhuis * filter/tv_imdb: optimized a bit and now open/close database only once instead of for every query 2003-05-06 15:41 jveldhuis * lib/IMDB.pm: removed come commented out code 2003-05-06 15:40 jveldhuis * lib/IMDB.pm: optimized a bit and now open/close database index/deails files only once 2003-05-06 15:17 jveldhuis * lib/IMDB.pm: no longer dependent on look(1), now uses Search::Dict 2003-05-06 15:16 jveldhuis * filter/tv_imdb: no longer dependent on look(1) 2003-05-05 16:54 jveldhuis * grab/na/ZapListings.pm: added in check of http status code when first page is retrieved and warns http_proxy env variable may need setting 2003-05-04 21:05 ramonroca * grab/es/tv_grab_es: Fixed a bug when the listing has not description and now parses the title-subtitle 2003-05-04 18:09 epaepa * grab/Get_nice.pm: Whoops, I removed LWP::Simple from grabbers but forgot to add it to Get_nice.pm. 2003-05-04 12:38 epaepa * Makefile.PL, grab/Get_nice.pm, grab/es/tv_grab_es, grab/fi/tv_grab_fi, grab/it/tv_grab_it.in, grab/nl/tv_grab_nl: Factored out the code to get a page and then sleep() into a new library XMLTV::Get_nice. 2003-05-04 11:32 epaepa * Makefile.PL: MY::manifypods(): small refactoring. 2003-05-03 21:14 jveldhuis * grab/na/tv_grab_na: fixed problem in configure when picking a provider description that appears twice - SF Bug #731721 2003-04-28 15:28 jveldhuis * grab/na/tv_grab_na: config file major version 3 implemented - '#channel %d' entries are now 'not channel %d' - 'provider %d # %s' are now 'provider %d %s' auto upgrading is done on the fly by identifying version 2 style config files, warning to re-run --configure stage. 2003-04-26 21:28 epaepa * Makefile.PL, README, doc/README.win32, lib/XMLTV.pm.in: Version 0.5.10. 2003-04-26 20:38 epaepa * grab/Memoize.pm: Handle Memoize versions that are not numeric. (I don't think there have been any, it's just my local hacked-around copy, but on principle...) 2003-04-26 20:37 epaepa * grab/Europe_TZ.pm: Changed a few input-validation errors to Carp::croak() rather than die(). 2003-04-26 20:31 epaepa * grab/fi/tv_grab_fi: Fixed timezone handling to use Europe_TZ. 2003-04-26 19:10 epaepa * grab/it/tv_grab_it.in: The bug 'I haven't even considered what happens with DST issues' no longer exists! 2003-04-26 19:06 epaepa * grab/nz/tv_grab_nz: Removed redundant 'timezone' variable. But I'm still not sure what the code is doing with timezones... I think it just ignores them. 2003-04-26 18:57 epaepa * grab/nl/tv_grab_nl: Fixed to use Europe_TZ for dates so the timezone is correct in output. Handle 'Behaalde prijzen' in programme descriptions. 2003-04-26 16:26 epaepa * grab/it/tv_grab_it.in: xmltv_date(): fixed to use Europe_TZ so that the timezone switches correctly between +0100 and +0200. 2003-04-26 16:18 epaepa * grab/it/tv_grab_it.in: Stylistic change to remove unneeded quotation marks around hash keys - this makes it easier to grep through the code for {start}, for example. Also removed some trailing whitespace. 2003-04-26 14:00 epaepa * grab/fi/tv_grab_fi: If a stop time is not known, then no stop time is written - this is better than guessing a wrong time. 2003-04-26 13:56 epaepa * grab/es/tv_grab_es: Removed incorrect comment - in fact the grabber does not set top times at all. 2003-04-26 13:53 epaepa * grab/es/tv_grab_es: Fixed timezone handling, now uses Europe_TZ.pm. This gives the correct output now (summer time, +0200) and hopefully will keep working after the change back to CET. 2003-04-26 13:20 epaepa * grab/Memoize.pm: Realized that Getopt::Long has a 'passthrough' option, so I don't need to write my own argument-parsing code just to extract the --cache option. We use the OO interface to Getopt::Long to avoid setting global options which would affect other callers. 2003-04-26 11:45 epaepa * grab/Grab_XML.pm: Instead of calling XMLTV::Memoize::check_argv() with a fixed list of functions at the top of the script, call it inside the go() method and get the list of things to memoize from a new method cachables(). Then subclasses which have their own way of fetching web pages can override that method. 2003-04-26 11:42 epaepa * grab/Memoize.pm: Whoops, forgot to turn of trace mesages. 2003-04-26 11:40 epaepa * grab/Memoize.pm: Fixed to work with names of functions not in the caller's package (eg, calling check_argv('LWP::Simple::get')). Now returns a reference to a list of memoized functions, or undef if no memoization happens (this is consistent with the earlier true/false return values). Checks that memoize() succeeds and dies if not. 2003-04-26 10:18 epaepa * grab/: Config_file.pm, es/tv_grab_es, fi/tv_grab_fi, it/tv_grab_it.in, na/tv_grab_na, nl/tv_grab_nl, uk_rt/tv_grab_uk_rt.in: XMLTV::Config_file::filename(): print a message to stderr saying what filename has been picked for the config file. A new optional 'quiet' argument turns this off. Factored out the code for reading a config file as lines and removing comments: a new routine XMLTV::Config_file::read_lines(). 2003-04-26 08:48 epaepa * grab/na/tv_grab_na: Changed s/\n$// to chomp, which is a Perl builtin to do the same thing. 2003-04-26 08:08 epaepa * grab/: Config_file.pm, es/tv_grab_es, fi/tv_grab_fi, it/tv_grab_it.in, nl/tv_grab_nl, nz/tv_grab_nz, uk_rt/tv_grab_uk_rt.in: A new routine XMLTV::Config_file::check_no_overwrite() factors out the duplicated 'are you sure you want to overwrite the config file?' check in most grabbers. 2003-04-25 21:17 epaepa * grab/Grab_XML.pm: Changed the undocumented --cache option to cache LWP::Simple::get() rather than the method Grab_XML->get(). 2003-04-25 20:18 epaepa * grab/nl/tv_grab_nl: Rateher than initializing Date::Manip to work with Dutch date strings, keep it in English and change the strings before passing them to ParseDate(). This is because the language is a single global setting and we want to interoperate with libraries that use English strings. 2003-04-24 23:00 staffanmalmgren * grab/Europe_TZ.pm: Added convenience function utc_offset 2003-04-23 19:23 epaepa * Makefile.PL, README: Promoted Memoize from 'recommended' to 'required', since perl 5.8 includes it. Yes, you can always scrape by without Memoize, but the user may not understand why things are running slowly. I could print a warning, but simpler just to require the modulee, as more and more vendors ship 5.8 or later. VS: 2003-04-22 19:32 epaepa * grab/Europe_TZ.pm: date_to_eur(): Fixed (I hope) to work with timeonzes other than UTC/UTC+1. Thanks to Staffan M. for finding the bug, 2003-04-22 14:07 ramonroca * grab/es/tv_grab_es: Another break at elpais.es, seems active those days 2003-04-21 00:57 rmeden * choose/tv_check/tv_check: don't use Replay fuzzy logic for MYREPLAYTV devices because the episode will be added as a separate show by the MYREPLAYTV fetch logic. Removed extra fields from SHOW file. 2003-04-20 20:40 epaepa * MANIFEST, Makefile.PL, grab/Config_file.pm, grab/es/tv_grab_es, grab/fi/tv_grab_fi, grab/it/tv_grab_it.in, grab/na/tv_grab_na, grab/nl/tv_grab_nl, grab/nz/tv_grab_nz, grab/uk_rt/tv_grab_uk_rt.in: A new library XMLTV::Config_file encapsulates the job of working out the config filename and doing weird things like creating directories or migrating config filenames. 2003-04-20 12:26 epaepa * MANIFEST, Makefile.PL, grab/Europe_TZ.pm, grab/uk_rt/tv_grab_uk_rt.in, lib/TZ.pm, lib/UK_TZ.pm: Replaced the UK_TZ.pm library with Europe_TZ.pm, which should work for most European countries. The functions are the same but you must pass in the 'base' or winter timezone as an extra parameter (so for British times pass 'UTC'). TZ.pm has a new routine tz_to_num() which converts named timezones to their numeric equivalent. 2003-04-20 10:07 ramonroca * grab/es/tv_grab_es: Solved a break due to change in elpais.es, and othe minor things 2003-04-18 14:24 epaepa * lib/exe_wrap.pl: Each 'command' subroutine stored in %cmds is now expected to handle errors itself - to exit(1) or die() if things went wrong. This means that the commands for do()ing some Perl script need to check the return value of do() and the $! and $@ variables. Then if a command returns control to the caller, we just exit successfully. This should fix the bug reported by Andy Balaam on xmltv-devel, 'non-zero exit codes in Windows'. But it is *untested*, I don't have access to the Windows exe compiler. 2003-04-18 13:54 epaepa * grab/nl/tv_grab_nl: Added function prototypes. get_courteous(): there seems to be a difference in Perl versions on how calling get_courteous_aux(@_) is interpreted. Or some weird interaction with Memoize. It seems that @_ was being turned into a scalar by taking the length of the list, ie 1. I've changed it to call get_courteous_aux($_[0]), which works on perl 5.8 and should work on all other versions. 2003-04-16 13:15 rmeden * lib/exe_wrap.pl: removed CST6CDT style filenames. Replaced with numeric style. (The above was required due to a big in Parse::Date, which has been fixed) Added a module to block tv_imdb, since it requires a unix "look" program. 2003-04-16 13:09 rmeden * choose/tv_check/tv_check: don't alarm on unexpected show length if length missing or zero. fixed problem with "NO GUIDE" messages if last entry of the day 2003-04-15 20:02 epaepa * filter/tv_cat, lib/XMLTV.pm.in: Moved catfiles() from tv_cat into XMLTV.pm. 2003-04-15 19:46 epaepa * filter/tv_cat: catfiles(): Refactored the code into this routine, which is passed some arguments for an XMLTV::Writer and some filenames to read from. Intending to move into XMLTV.pm soon. 2003-04-14 14:54 jveldhuis * grab/na/: ZapListings.pm, tv_grab_na: switched cases were I use [^\s]+ in regexp with \S+ 2003-04-12 20:40 epaepa * grab/: Grab_XML.pm, de/tv_grab_de, nl_wolf/tv_grab_nl_wolf: XMLTV::Grab_XML::get(): new package method to get the contents of a page at a given URL. This will let grabbers override the mechanism used to fetch a page (the default implementation uses LWP::Simple). This does mean that packages inheriting from XMLTV::Grab_XML should not import LWP::Simple's get() function, it will clash with the method of the same name. 2003-04-12 11:45 epaepa * MANIFEST, Makefile.PL, doc/QuickStart: Adding a new grabber tv_grab_us_gist to fetch the XMLTV listings made available by gist.com. It's not yet finished and in fact I don't even know if it works - but it will soon. (Committing so I can run it from my shell account rather than over a modem link!) 2003-04-10 03:55 jveldhuis * lib/IMDB.pm: make argument naming consistant with tv_imdb 2003-04-10 03:53 jveldhuis * filter/: tv_imdb: --moviesOnly is no --movies-only 2003-04-06 21:27 jveldhuis * filter/tv_imdb, lib/IMDB.pm: added --moviesOnly option 2003-04-06 20:40 jveldhuis * lib/IMDB.pm: Term::ProgressBar now optional - thanks to Ed for the patch 2003-04-06 20:34 jveldhuis * lib/IMDB.pm: removed a duplicated conditional 2003-04-06 17:20 epaepa * MANIFEST, Makefile.PL, grab/nl_wolf/tv_grab_nl_wolf: New grabber: tv_grab_nl_wolf downloads XMLTV files from Carlo de Wolf's site. Is is based on the Grab_XML library recently factored out of tv_grab_de. 2003-04-06 17:17 epaepa * mkdist: Comment. 2003-04-06 16:59 epaepa * lib/XMLTV.pm.in: cat(): when several sets of listings have different 'dates', choose the latest date for the result. Other attributes of are processed as before (taken arbitrarily from the first file). 2003-04-06 16:29 epaepa * mkdist: chdir() to $TMP_CHECKOUT_DIR once rather than prepending a 'cd' to every command run. Don't use tar --bzip2, it pads the compressed data with zeros or something weird. 2003-04-06 16:22 epaepa * mkdist: FTP the tarball in binary mode! 2003-04-06 14:55 epaepa * MANIFEST, Makefile.PL, grab/Grab_XML.pm, grab/de/tv_grab_de, lib/Usage.pm: Factored out most code from tv_grab_de into a new library XMLTV::Grab_XML. Changed XMLTV::Usage so you can pass a usage message to usage(), you don't have to set it when importing the module. Fixed a Makefile bug where manual pages would be installed under the wrong filename. 2003-04-06 10:36 epaepa * Makefile.PL: Version 0.5.9. 2003-04-06 10:31 epaepa * doc/README.win32: Updated with changes for the new release (assuming that tv_imdb and the new grabbers will be included in xmltv.exe). 2003-04-06 10:28 epaepa * doc/README.win32: Version 0.5.9 (although the Windows binary won't come out immediately). 2003-04-06 10:26 epaepa * lib/XMLTV.pm.in: Version 0.5.9. 2003-04-06 09:58 epaepa * README: Updated for 0.5.9. 2003-04-06 09:39 epaepa * grab/de/tv_grab_de: Documented the fact that the upstream listings currently have broken timezones. 2003-04-06 09:24 epaepa * doc/QuickStart: Added a paragraph about tv_imdb. 2003-04-05 21:29 epaepa * grab/nz/tv_grab_nz: Documented a bug. 2003-04-05 21:05 epaepa * grab/nl/tv_grab_nl: Don't output 'debug_more' comments in fast mode (this was left in the code by mistake). 2003-04-05 21:05 epaepa * grab/nl/tv_grab_nl: Added support for 'Orginele Titel' in programme description pages. 2003-04-05 20:52 epaepa * grab/nl/tv_grab_nl: Fixed several bugs including missing programmes when a day is split over two pages ('Volgende' link, which previously was not handled by --slow mode). This has involved commonizing some of the code between fast and slow, which is no bad thing. 2003-04-05 18:50 epaepa * lib/XMLTV.pm.in: Fixed the handling of 'debug' keys in hases so it does what it says on the tin. It should work now for channels as well as programmes. 2003-04-05 18:26 epaepa * lib/XMLTV.pm.PL: Don't 'use diagnostics', they slow down loading and aren't that helpful. 2003-04-05 11:18 epaepa * grab/nl/tv_grab_nl: do_summary_page(): handle (recursively) the 'Volgende' links that sometimes appear. These mean next page for the same day. This has involved adding a new parameter, 'official day' which is not necessarily the same as 'actual day', and is used only to sanity-check the date printed in the page. 2003-04-05 09:08 epaepa * grab/nz/tv_grab_nz: Removed debugging message left in the code my mistake. 2003-04-04 21:57 epaepa * grab/nl/tv_grab_nl: Moved the code for downloading and processing the programme summary page for each day into a routine do_summary_page(). 2003-04-04 21:39 epaepa * grab/nl/tv_grab_nl: Eliminated confusing $date variable. 2003-04-04 21:11 epaepa * grab/nz/tv_grab_nz: Fixed bug where a programme crossing midnight would have a stop time in the wrong day. 2003-04-04 19:36 epaepa * grab/uk_rt/tv_grab_uk_rt.in: Handle URLs which appear in without preceding text like 'Related Websites'. 2003-04-03 07:26 epaepa * grab/nl/tv_grab_nl: Fixed bug reported by Marcel where the first programme after midnight on a given day would not have its stop time moved forward by 24 hours - due to a 'my' in an inner scope hiding the real $stop variable. 2003-04-03 07:23 epaepa * filter/tv_sort: Added a warnong for programmes whose stop time is before their start time. 2003-04-02 19:32 epaepa * grab/nl/tv_grab_nl: Changed default number of days to seven. 2003-04-02 19:29 epaepa * grab/nl/tv_grab_nl: Fixed to work again with offset zero: I didn't realize that (uniquely among the sites fetched from so far) the listings source does number its days from zero. Better handling of pages that have no listings content at all (as when you ask for more days than the site has). 2003-03-31 07:21 epaepa * doc/QuickStart: Updated for newly added grabbers. 2003-03-31 01:20 jveldhuis * grab/na/tv_grab_na: when a command line error occurs or usage problem, print message about how to get command line help, instead of providing the help... windows users fail to see actual error messages since usage is so long 2003-03-30 13:03 epaepa * grab/nl/tv_grab_nl: Fixed date calculation bug: the day numbers on the site count from 1 meaning today. 2003-03-30 13:02 epaepa * grab/uk_rt/tv_grab_uk_rt.in: get_programmes(): prepend the URL to warning and error messages. 2003-03-30 12:25 epaepa * grab/de/tv_grab_de: Accept but politely ignore the --config-file option. 2003-03-30 12:22 epaepa * grab/nz/tv_grab_nz: Added support for a --cache option which is ignored. This is for consistency with the undocumented --cache option in other grabbers: the option now means 'cache me if you can'. 2003-03-30 12:14 epaepa * grab/nz/tv_grab_nz: More thorough command-line checking: error if there are arguments left over after parsing options. 2003-03-30 11:43 epaepa * grab/na/tv_grab_na: Added an --cache option which is accepted but ignored. This is for consistency with the other grabbers, in particular, to make it easier to write a grabber test suite. Some day the --cache option can actually do something. 2003-03-30 11:37 epaepa * grab/na/tv_grab_na: Check the command line more throughly: it is an error if any arguments remain after processing options. 2003-03-30 11:35 epaepa * grab/na/tv_grab_na: Improved main usage message. 2003-03-30 11:18 epaepa * grab/na/tv_grab_na: Made same tidying elsewhere, I didn't realize there were two cals to GetOptions(). 2003-03-30 09:37 epaepa * grab/na/tv_grab_na: Code tidy moving each command-line option onto its own line. This should make it easier to add and remove them and change them in patches (since diff works line-by-line). 2003-03-29 23:14 epaepa * grab/nl/tv_grab_nl: Don't warn about 'Volgende' link which has started appearing on channel summary pages. 2003-03-29 23:13 epaepa * grab/uk_rt/tv_grab_uk_rt.in: Suppress duplicate warnings when the channel name of a programme details page doesn't match that on the channels page (this has started firing for a difference bwtween 'Sky 1' and 'Sky One'). 2003-03-29 22:49 epaepa * grab/nl/tv_grab_nl: Was being a bit overzealous in delete()ing a TreeBuilder object before the data from it had been extracted. 2003-03-29 21:17 epaepa * filter/tv_extractinfo_en: Don't memoize list_names(). My Memoize seems to have gone funny recently, confusing scalar and list context. 2003-03-29 20:53 epaepa * MANIFEST, Makefile.PL, grab/nl/tv_grab_nl: Added tv_grab_nl, a grabber for the Netherlands. This is based on the version Guido Diepen sent me but I have rewritten parts of it - in particular, the default mode is now to output only brief programme details and save on page fetches. 2003-03-29 00:28 rmeden * doc/README.win32: add warning about using spaces in xmltv.exe path 2003-03-28 19:49 epaepa * filter/tv_extractinfo_en, grab/de/tv_grab_de, grab/es/tv_grab_es, grab/fi/tv_grab_fi, grab/it/tv_grab_it.in: Benjamin Goldberg on comp.lang.perl.moderated pointed out a better way to check if a module is availabl, setting a compile-time constant rather than a variable. So the constant Have_bar replaces the variable $have_bar. 2003-03-28 19:34 epaepa * filter/Grep.pm: Explicitly list the handlers which cannot be queried on; die if a handler name is not recognized. This makes sure that when adding a new handler to XMLTV.pm we also decide what should happen with it in XMLTV/Grep.pm. 2003-03-28 19:13 epaepa * MANIFEST: Added tv_grab_it to file list. 2003-03-27 10:01 rmeden * choose/tv_check/tv_check: added code to skip episodes without a start time 2003-03-26 22:12 epaepa * grab/nz/tv_grab_nz: Added --config-file option. Accept 'yes' answer to y/N question. When reading the config file give an error if the 'channels' line is not present or appears more than once. Also don't default the channels list if an I/O error occurs; just give an error. 2003-03-22 23:34 epaepa * grab/Memoize.pm: Memoize the function in list context as well as scalar context - but using the same cache for both (the MERGE option). 2003-03-20 13:13 jveldhuis * grab/na/tv_grab_na: now unlinks temperary file on write failure 2003-03-17 00:20 epaepa * lib/XMLTV.pm.in: When writing , if the 'system' attribute is not given then default it to 'onscreen'. This agrees more with what the docs say (and avoids the current bug where it could be written as an empty string if undef). 2003-03-15 15:21 epaepa * MANIFEST, Makefile.PL, grab/es/tv_grab_es: Adding Ramon Roca's tv_grab_es grabber for Spain. 2003-03-15 11:17 epaepa * filter/tv_grep.in: Dcoumentation clarification. 2003-03-15 11:03 epaepa * filter/tv_grep.in: Generalized the warning about not always using the programme autgenerated tests. 2003-03-15 10:53 epaepa * filter/: tv_grep.PL, tv_grep.in: Get the manual page information from the Grep.pm library. This should make sure the manual page stays in sync with changes to tv_grep (it was inconsistent before). 2003-03-13 20:42 rmeden * choose/tv_check/README.tv_check: bring the quick-start guide up to date with current version 2003-03-13 00:22 mnbjhguyt * grab/it/tv_grab_it.in: more messed up chars fixed 2003-03-12 23:16 epaepa * MANIFEST, Makefile.PL, filter/Grep.pm, filter/tv_grep.in: Moved get_matcher() out of tv_grep into a new library Grep.pm. This is just so it can later be used in pod generation. 2003-03-12 22:18 epaepa * filter/tv_grep.in: Fixed a bug in get_handler() and in the use of the same. Added some trace messages. 2003-03-11 22:54 epaepa * filter/tv_grep.in: get_matcher(): new function to replace %queryable hash. Returns working subs rather than subs you must call to get more subs. 2003-03-11 22:24 epaepa * filter/tv_grep.in: Moved the information of how to match on different data types into the hash %queryable, which is used both to look up matching subroutines and to generate the usage message. (It is a bit convoluted, with subs returning subs, but that could be fixed later.) Next I have to fix the manual page generation, which is incorrect. 2003-03-11 17:22 jveldhuis * grab/na/tv_grab_na: properly sets new id if description changes, minor changes to warning messages 2003-03-11 17:20 jveldhuis * grab/na/ZapListings.pm: better error message 2003-03-10 22:51 epaepa * Makefile.PL, README, doc/QuickStart, grab/it/dud_channels, grab/it/tv_grab_it.PL, grab/it/tv_grab_it.in: New grabber tv_grab_it contributed by Davide Chiarini. 2003-03-10 22:50 epaepa * filter/tv_imdb: Escaped a quotation mark to avoid confusing emacs. 2003-03-10 22:33 epaepa * lib/set_share_dir.pl: Oops, it didn't work, should now. 2003-03-10 22:27 epaepa * MANIFEST, lib/set_share_dir.pl: Generalized tv_grab_uk.PL, which sets the $SHARE_DIR constant in a source file, into the 'library' set_share_dir.pl. 2003-03-10 18:39 epaepa * Makefile.PL: Term::ProgressBar version 2 is recommended (tv_imdb uses the new interface). 2003-03-10 18:34 epaepa * MANIFEST: Added tv_imdb files and new tv_grab_uk provider channel packages to file list. 2003-03-10 06:59 jveldhuis * lib/IMDB.pm: minor adjustment to success/failure message 2003-03-10 06:55 jveldhuis * lib/IMDB.pm: adopted use of Term::ProgressBar, and lots of it. better feedback on every part of each of the 5 stages. also error messages for each stage appear in stageX.log files instead of being lost to stderr. The number of error messages is reported at the end of each stage's success or failure. 2003-03-09 17:23 epaepa * grab/fi/tv_grab_fi: Log the URL that's being fetched. 2003-03-09 16:55 jveldhuis * lib/IMDB.pm: added note to look at Term::ProgressBar 2003-03-09 14:52 epaepa * grab/fi/tv_grab_fi: Debugging trace messages. 2003-03-09 13:22 epaepa * grab/fi/tv_grab_fi: process_table(): now returns a list of programme hashes to be written, rather than taking the XMLTV::Writer as a parameter. 2003-03-09 13:15 epaepa * grab/fi/tv_grab_fi: make_programme_hash(): new name for write_data(), it no longer writes but just returns a hash suitable for XMLTV.pm. 2003-03-09 12:45 epaepa * grab/fi/tv_grab_fi: Whitespace. 2003-03-09 12:40 epaepa * grab/fi/tv_grab_fi: Fixed documentation of config filename. 2003-03-08 13:41 epaepa * xmltv.dtd: Clarified that we use DNS-like names for channels not whole URIs. 2003-03-05 23:56 epaepa * Makefile.PL: Install files for new tv_imdb filter. 2003-03-05 21:03 epaepa * Makefile.PL: Added warning for possibly-buggy perl versions. 2003-03-04 20:59 jveldhuis * lib/IMDB.pm: bugs in db_version: - directors who did multiple episodes of tv series appeared more than once. - actresses didn't appear in list of actors :) (thanks Chris L. and Bob Y.) 2003-03-04 18:44 jveldhuis * filter/tv_imdb: BUG: How and what to look up needs to be option driven. 2003-03-04 06:29 jveldhuis * filter/tv_imdb: perldoc fixes 2003-03-04 06:23 jveldhuis * filter/tv_imdb, lib/IMDB.pm: more major enhancements 2003-03-04 00:43 jveldhuis * doc/QuickStart: added tv_imdb 2003-03-04 00:41 jveldhuis * lib/IMDB.pm: fixed typo 2003-03-04 00:37 jveldhuis * filter/tv_imdb, lib/IMDB.pm: now looks up tv series in imdb.com data added in-memory cache for tv series lookups 2003-03-03 22:58 jveldhuis * lib/IMDB.pm: minor fix 2003-03-03 22:57 jveldhuis * filter/tv_imdb: fixed typo 2003-03-03 21:19 jveldhuis * lib/IMDB.pm: now handles gzipped directors/actors and actresses files 2003-03-03 15:40 jveldhuis * filter/tv_imdb: filter to augment listing data with imdb.com plain text files 2003-03-03 15:39 jveldhuis * lib/IMDB.pm: first swing at indexing the imdb.com plain text files 2003-03-01 11:40 epaepa * lib/XMLTV.pm.in: Debugging message. 2003-03-01 11:30 epaepa * xmltv.dtd: Added a note about ordering of elements. 2003-02-26 21:42 epaepa * Makefile.PL: Install tv_grab_uk's channel_pkgs, including those in subdirectories. 2003-02-26 20:24 epaepa * MANIFEST: Removed directory from MANIFEST, it should list only plain files. 2003-02-22 22:10 epaepa * grab/fi/tv_grab_fi: Added --list-channels mode partly based on patch by Julian Cable. Also tidied up some of the code. 2003-02-21 23:58 epaepa * grab/na/tv_grab_na: Updated comment and usage message to say --config-file not --config (thanks to rmeden for spotting). 2003-02-21 04:28 rmeden * choose/tv_check/tv_check: prevent warnings when we don't have a stop time by using the start time. 2003-02-21 04:26 rmeden * lib/exe_wrap.pl: remove constants when computing timezone.. oops 2003-02-20 22:49 epaepa * MANIFEST, filter/tv_grep.in, t/test_filters.t, t/data/tv_grep_on_after_200302161330_all_UTF8.expected, t/data/tv_grep_on_after_200302161330_amp_xml.expected, t/data/tv_grep_on_after_200302161330_amp_xml_amp_xml.expected, t/data/tv_grep_on_after_200302161330_amp_xml_clump_xml.expected, t/data/tv_grep_on_after_200302161330_amp_xml_dups_xml.expected, t/data/tv_grep_on_after_200302161330_amp_xml_empty_xml.expected, t/data/tv_grep_on_after_200302161330_amp_xml_empty_xml_empty_xml_clump_xml.expected, t/data/tv_grep_on_after_200302161330_attrs_xml.expected, t/data/tv_grep_on_after_200302161330_clump_extract_1_xml.expected, t/data/tv_grep_on_after_200302161330_clump_extract_xml.expected, t/data/tv_grep_on_after_200302161330_clump_xml.expected, t/data/tv_grep_on_after_200302161330_clump_xml_amp_xml.expected, t/data/tv_grep_on_after_200302161330_clump_xml_clump_xml.expected, t/data/tv_grep_on_after_200302161330_clump_xml_dups_xml.expected, t/data/tv_grep_on_after_200302161330_clump_xml_empty_xml.expected, t/data/tv_grep_on_after_200302161330_dups_xml.expected, t/data/tv_grep_on_after_200302161330_dups_xml_amp_xml.expected, t/data/tv_grep_on_after_200302161330_dups_xml_clump_xml.expected, t/data/tv_grep_on_after_200302161330_dups_xml_dups_xml.expected, t/data/tv_grep_on_after_200302161330_dups_xml_empty_xml.expected, t/data/tv_grep_on_after_200302161330_empty_xml.expected, t/data/tv_grep_on_after_200302161330_empty_xml_amp_xml.expected, t/data/tv_grep_on_after_200302161330_empty_xml_clump_xml.expected, t/data/tv_grep_on_after_200302161330_empty_xml_dups_xml.expected, t/data/tv_grep_on_after_200302161330_empty_xml_empty_xml.expected, t/data/tv_grep_on_after_200302161330_intervals_xml.expected, t/data/tv_grep_on_after_200302161330_length_xml.expected, t/data/tv_grep_on_after_200302161330_overlap_xml.expected, t/data/tv_grep_on_after_200302161330_simple_xml.expected, t/data/tv_grep_on_after_200302161330_simple_xml_x_whatever_xml.expected, t/data/tv_grep_on_after_200302161330_sort_xml.expected, t/data/tv_grep_on_after_200302161330_test_empty_xml.expected, t/data/tv_grep_on_after_200302161330_test_livre_xml.expected, t/data/tv_grep_on_after_200302161330_test_sort_by_channel_xml.expected, t/data/tv_grep_on_after_200302161330_test_xml.expected, t/data/tv_grep_on_after_200302161330_test_xml_test_xml.expected, t/data/tv_grep_on_after_200302161330_whitespace_xml.expected, t/data/tv_grep_on_after_200302161330_x_whatever_xml.expected, t/data/tv_grep_on_before_200302161330_all_UTF8.expected, t/data/tv_grep_on_before_200302161330_amp_xml.expected, t/data/tv_grep_on_before_200302161330_amp_xml_amp_xml.expected, t/data/tv_grep_on_before_200302161330_amp_xml_clump_xml.expected, t/data/tv_grep_on_before_200302161330_amp_xml_dups_xml.expected, t/data/tv_grep_on_before_200302161330_amp_xml_empty_xml.expected, t/data/tv_grep_on_before_200302161330_amp_xml_empty_xml_empty_xml_clump_xml.expected, t/data/tv_grep_on_before_200302161330_attrs_xml.expected, t/data/tv_grep_on_before_200302161330_clump_extract_1_xml.expected, t/data/tv_grep_on_before_200302161330_clump_extract_xml.expected, t/data/tv_grep_on_before_200302161330_clump_xml.expected, t/data/tv_grep_on_before_200302161330_clump_xml_amp_xml.expected, t/data/tv_grep_on_before_200302161330_clump_xml_clump_xml.expected, t/data/tv_grep_on_before_200302161330_clump_xml_dups_xml.expected, t/data/tv_grep_on_before_200302161330_clump_xml_empty_xml.expected, t/data/tv_grep_on_before_200302161330_dups_xml.expected, t/data/tv_grep_on_before_200302161330_dups_xml_amp_xml.expected, t/data/tv_grep_on_before_200302161330_dups_xml_clump_xml.expected, t/data/tv_grep_on_before_200302161330_dups_xml_dups_xml.expected, t/data/tv_grep_on_before_200302161330_dups_xml_empty_xml.expected, t/data/tv_grep_on_before_200302161330_empty_xml.expected, t/data/tv_grep_on_before_200302161330_empty_xml_amp_xml.expected, t/data/tv_grep_on_before_200302161330_empty_xml_clump_xml.expected, t/data/tv_grep_on_before_200302161330_empty_xml_dups_xml.expected, t/data/tv_grep_on_before_200302161330_empty_xml_empty_xml.expected, t/data/tv_grep_on_before_200302161330_intervals_xml.expected, t/data/tv_grep_on_before_200302161330_length_xml.expected, t/data/tv_grep_on_before_200302161330_overlap_xml.expected, t/data/tv_grep_on_before_200302161330_simple_xml.expected, t/data/tv_grep_on_before_200302161330_simple_xml_x_whatever_xml.expected, t/data/tv_grep_on_before_200302161330_sort_xml.expected, t/data/tv_grep_on_before_200302161330_test_empty_xml.expected, t/data/tv_grep_on_before_200302161330_test_livre_xml.expected, t/data/tv_grep_on_before_200302161330_test_sort_by_channel_xml.expected, t/data/tv_grep_on_before_200302161330_test_xml.expected, t/data/tv_grep_on_before_200302161330_test_xml_test_xml.expected, t/data/tv_grep_on_before_200302161330_whitespace_xml.expected, t/data/tv_grep_on_before_200302161330_x_whatever_xml.expected: New feature for tv_grep: --on-before is a kind of opposite to --on-after, it gives all those programmes which have been broadcast (at least partly) at a given data. 2003-02-20 22:27 epaepa * lib/exe_wrap.pl: Even more obvious error message for people who mistakenly run 'xmltv.exe --configure' or whatever. 2003-02-20 22:20 epaepa * MANIFEST: Added more test case outputs to file list. 2003-02-20 20:42 epaepa * t/data/: intervals.xml, tv_cat_all_UTF8.expected, tv_cat_intervals_xml.expected, tv_extractinfo_en_all_UTF8.expected, tv_extractinfo_en_intervals_xml.expected, tv_grep_a_all_UTF8.expected, tv_grep_a_intervals_xml.expected, tv_grep_category_b_intervals_xml.expected, tv_grep_category_e_and_title_f_intervals_xml.expected, tv_grep_category_g_or_title_h_all_UTF8.expected, tv_grep_category_g_or_title_h_intervals_xml.expected, tv_grep_channel_id_channel4_com_intervals_xml.expected, tv_grep_channel_name_d_intervals_xml.expected, tv_grep_channel_xyz_or_channel_b_intervals_xml.expected, tv_grep_eval_scalar_keys_5_intervals_xml.expected, tv_grep_i_category_i_title_h_intervals_xml.expected, tv_grep_i_category_i_title_j_intervals_xml.expected, tv_grep_i_last_chance_c_intervals_xml.expected, tv_grep_new_intervals_xml.expected, tv_grep_on_after_2002_02_05_all_UTF8.expected, tv_grep_on_after_2002_02_05_intervals_xml.expected, tv_grep_premiere_intervals_xml.expected, tv_grep_previously_shown_intervals_xml.expected, tv_sort_all_UTF8.expected, tv_sort_by_channel_all_UTF8.expected, tv_sort_by_channel_intervals_xml.expected, tv_sort_intervals_xml.expected, tv_to_latex_all_UTF8.expected, tv_to_latex_intervals_xml.expected, tv_to_text_all_UTF8.expected, tv_to_text_intervals_xml.expected: Another new test case, giving all sorts of intervals to test tv_grep's --on-after and forthcoming --on-before. 2003-02-19 22:11 epaepa * filter/tv_sort, t/data/tv_sort_by_channel_test_sort_by_channel_xml.expected: add_stop(): Rewrote using a simpler algorithm: go through all the following programmes and pick the start time if it is later than ours, or the stop time if it exists. If neither condition is true move on to the next following programme. I don't know why I made it so complex to start with, I think it was because I thought it sensible to start at the end of the sorted list and work backwards. And it would be sensible, if you only looked at start times. But we don't any more. This should fix the pesky bug where tv_sort --by-channels doesn't work because add_stop() would break the sortedness of its input programmes list. 2003-02-19 16:37 jveldhuis * grab/na/tv_grab_na: backed out moving to ISO-8860 in xml declaration/encoding 2003-02-18 23:07 epaepa * filter/tv_sort: pd(): new function, just a wrapper for ParseDate() which dies if the date couldn't be parsed. This removes the need for an explicit check after every call. It has a shorter name too. 2003-02-18 22:43 epaepa * t/data/tv_sort_test_sort_by_channel_xml.expected: Whoops, forgot to update this expected output file I think. Well now the expected output from tv_sort for this case is actually sorted :-). 2003-02-18 22:32 epaepa * filter/tv_sort, t/data/tv_sort_all_UTF8.expected, t/data/tv_sort_by_channel_all_UTF8.expected: add_stop(): jump through some hoops to avoid making the list of programmes out of order. This fixes the bug where tv_sort would sometimes generate output that wasn't sorted. However there are still differences between tv_sort and tv_sort --by-channel on the test_sort_by_channel.xml test case, and I will investigate those further. 2003-02-18 21:49 epaepa * filter/tv_sort: check_sorted(): new function to assert that a list is sorted according to a given comparison function. Added calls to check_sorted() after each operation that changes a list of programmes. This catches the bug in --by-channels, so that tv_sort now dies rather than produce incorrect output. This is a small improvement. Next task is to fix the bug. 2003-02-16 18:53 jveldhuis * grab/na/tv_grab_na: dates in xml output header is now ISO-8861 compliant 2003-02-16 17:51 jveldhuis * grab/na/tv_grab_na: fixed pod and now --list-channels produces xmltv xml 2003-02-16 16:44 epaepa * t/data/: tv_cat_all_UTF8.expected, tv_extractinfo_en_all_UTF8.expected, tv_sort_by_channel_test_sort_by_channel_xml.expected, tv_to_latex_all_UTF8.expected: Oops, I somehow forgot to add test_sort_by_channel.xml's contribution to some of the expected all_UTF8 files, and didn't make the expected output from tv_sort --by-channel on that file the same as that from tv_sort. 2003-02-16 16:20 epaepa * t/test_filters.t: Moved tv_sort --by-channel into the main body of tests, since it has a known bug, and moved a few other commands out into the 'full' list of tests to keep 'make test' relatively quick. 2003-02-16 16:10 epaepa * t/data/: test_sort_by_channel.xml, tv_cat_test_sort_by_channel_xml.expected, tv_extractinfo_en_test_sort_by_channel_xml.expected, tv_grep_a_test_sort_by_channel_xml.expected, tv_grep_category_b_test_sort_by_channel_xml.expected, tv_grep_category_e_and_title_f_test_sort_by_channel_xml.expected, tv_grep_category_g_or_title_h_test_sort_by_channel_xml.expected, tv_grep_channel_id_channel4_com_test_sort_by_channel_xml.expected, tv_grep_channel_name_d_test_sort_by_channel_xml.expected, tv_grep_channel_xyz_or_channel_b_test_sort_by_channel_xml.expected, tv_grep_eval_scalar_keys_5_test_sort_by_channel_xml.expected, tv_grep_i_category_i_title_h_test_sort_by_channel_xml.expected, tv_grep_i_category_i_title_j_test_sort_by_channel_xml.expected, tv_grep_i_last_chance_c_test_sort_by_channel_xml.expected, tv_grep_new_test_sort_by_channel_xml.expected, tv_grep_on_after_2002_02_05_test_sort_by_channel_xml.expected, tv_grep_premiere_test_sort_by_channel_xml.expected, tv_grep_previously_shown_test_sort_by_channel_xml.expected, tv_sort_all_UTF8.expected, tv_sort_by_channel_all_UTF8.expected, tv_sort_by_channel_test_sort_by_channel.expected, tv_sort_by_channel_test_sort_by_channel_xml.expected, tv_sort_test_sort_by_channel_xml.expected, tv_to_latex_test_sort_by_channel_xml.expected, tv_to_text_test_sort_by_channel_xml.expected: Discovered a strange bug where tv_sort --by-channel produces different output from tv_sort, even when all the programmes in the input have the same channel. This test case demonstrates it (the expected output from tv_sort and tv_sort --by-channel is the same for the input test_sort_by_channel.xml, but the actual outputs currently differ.) 2003-02-16 15:18 epaepa * filter/tv_sort: Removed the global %orig_order and moved the 'make the sort stable' stuff into a new routine make_stable_sort_function(), which can be applied to \&programme_cmp and a list of programmes, or anything else to that matter. Now the sorting for --by-channel is also a stable sort. Hmm, this didn't fix the bug I was hoping to fix, still, none of the other tests break and it seems like a good thing. 2003-02-16 14:42 epaepa * filter/tv_sort: Made a note that perl 5.8 has a use sort 'stable'; pragma and we should make use of that if available. I won't implement it until I have a perl5.8-equipped box to test with. 2003-02-16 13:41 epaepa * grab/na/tv_grab_na: migrateConfigFile(): new routine encapsulating the code that migrates the old config file to the new location. Instead of being called at the start of the script before parsing options (which incorrectly runs it even when --config-file is given), it now gets called from the configure stage and from the grab stage, but only if $opt_config_file is not set. This should fix the bug reported by Robert Eden. 2003-02-16 13:33 epaepa * grab/na/tv_grab_na: Removed deprecated --config option (use --config-file instead). 2003-02-16 12:58 epaepa * xmltv.dtd: Clarified the meaning of start and stop, that they are a half-closed interval. This is what everybody knew anyway, but it's just as well to have it in writing. 2003-02-16 12:28 epaepa * filter/tv_grep.in: Whoops, the documentation of --on-after was completely the opposite of what it does. 2003-02-16 11:25 epaepa * grab/nz/tv_grab_nz: Create ~/.xmltv/ if it doesn't already exist. 2003-02-16 11:16 epaepa * grab/na/tv_grab_na: Check the return value from close(). 2003-02-16 11:03 epaepa * grab/na/tv_grab_na: Commented what happens about creating the ~/.xmltv/ directory. 2003-02-16 01:27 epaepa * grab/na/tv_grab_na: Moved 'use strict;' to the top of the code so it applies to the whole file. 2003-02-16 01:25 epaepa * grab/: fi/tv_grab_fi, na/tv_grab_na, nz/tv_grab_nz, uk_rt/tv_grab_uk_rt.in: As mentioned on xmltv-devel, changing the names of all the grabber configuration files to end in '.conf'. This is so that on Windows, when run from the current directory, they do not try to overwrite themselves. Thanks to Davide Chiarini for pointing this out. Also it's probably more obvious what the files are for with '.conf' stuck on the end of the filename. The migration should be automatic, you just get a message saying that the old file is being renamed to end in .conf. Of course _this_ will go wrong for Windows users running from the current directory, but it's only a short-term measure. Hmm, perhaps some of this config file reading/writing could be factored out. It's a lot of almost identical code. 2003-02-16 01:10 epaepa * grab/nz/tv_grab_nz: If HOME is not set in the environment, look in the current direcetory for the config file. 2003-02-16 00:52 epaepa * grab/na/tv_grab_na: Removed another occurrence of ~/.xmltv_na. 2003-02-16 00:48 epaepa * grab/nz/tv_grab_nz: Changed strip() method on string object (which is not supported in Python 1.5.2) to use string.strip() function instead. 2003-02-16 00:14 epaepa * grab/na/tv_grab_na: Don't migrate config file from old location ~/.xmltv_na, it hasn't been there since 0.4.x. Besides, I am about to add a new piece of magic config file movement and to have two would be excessive. 2003-02-15 22:40 epaepa * mkdist: mkdist now does the uploading to upload.sourceforge.net, though you still have to do the fiddling with SF's web pages by hand. Made the instructions for that a bit more concise (better to give a URL than to give 'click on X...' instructions IMHO). 2003-02-15 21:54 epaepa * mkdist: Added a couple of FIXMEs for code that might be removed. 2003-02-15 21:18 epaepa * Makefile.PL, README, doc/README.win32, lib/XMLTV.pm.in: Version 0.5.8. 2003-02-15 10:15 epaepa * xmltv.dtd: Clarified the meaning of 'width' and 'height' attributes in . 2003-02-15 00:12 epaepa * filter/tv_to_text: Kenneth Pronovici sent me a manual page (actually it is almost the same as tv_to_latex's manpage, which makes sense). 2003-02-11 05:23 rmeden * choose/tv_check/tv_check: added Kenneth J. Pronovici's POD page. Thanks Kenneth! 2003-02-10 16:52 jveldhuis * mkdist: clarification 2003-02-10 16:40 jveldhuis * mkdist: updated comments at bottom and made some of the cvs commands quieter 2003-02-09 22:00 jveldhuis * doc/README.win32: updated to release 0.5.7 and new release notes 2003-02-09 15:21 jveldhuis * Makefile.PL, README, doc/README.win32, lib/XMLTV.pm.in: updated to release 0.5.7 and new release notes 2003-02-09 14:39 jveldhuis * grab/na/ZapListings.pm: end times computed by next program start time 2003-02-09 14:38 jveldhuis * grab/na/tv_grab_na: stop times may not appear because of zap2it bug 2003-02-09 12:23 epaepa * lib/XMLTV.pm.in: Don't assume that every program using this module is distributed as part of xmltv. 2003-02-08 00:20 epaepa * lib/XMLTV.pm.PL: Don't use IO::File, use the prehistoric typeglob method for passing filehandles, because I suspect that IO::File was triggering a segfault with perl-5.6.0 on some systems. 2003-02-07 00:45 jveldhuis * grab/na/ZapListings.pm: zap2it changed again :r they removed the "(ends at HH:MM)" endings on the descriptions in the text listings. For now, we calculate end of program by the following program, and assume the last program of the day ends at midnight. Otherwise, we need to get the next days listings to figure out the true value. 2003-02-02 19:02 jveldhuis * grab/na/ZapListings.pm: yet again, we switch horses on user agent name 2003-02-02 19:01 jveldhuis * grab/na/tv_grab_na: added bug about zap2it not providing colour coded program categories in text listings 2003-02-02 18:22 epaepa * MANIFEST, Makefile.PL, doc/QuickStart, filter/tv_to_text, t/test_filters.t, t/data/tv_to_text_all_UTF8.expected, t/data/tv_to_text_amp_xml.expected, t/data/tv_to_text_amp_xml_amp_xml.expected, t/data/tv_to_text_amp_xml_clump_xml.expected, t/data/tv_to_text_amp_xml_dups_xml.expected, t/data/tv_to_text_amp_xml_empty_xml.expected, t/data/tv_to_text_amp_xml_empty_xml_empty_xml_clump_xml.expected, t/data/tv_to_text_attrs_xml.expected, t/data/tv_to_text_clump_extract_1_xml.expected, t/data/tv_to_text_clump_extract_xml.expected, t/data/tv_to_text_clump_xml.expected, t/data/tv_to_text_clump_xml_amp_xml.expected, t/data/tv_to_text_clump_xml_clump_xml.expected, t/data/tv_to_text_clump_xml_dups_xml.expected, t/data/tv_to_text_clump_xml_empty_xml.expected, t/data/tv_to_text_dups_xml.expected, t/data/tv_to_text_dups_xml_amp_xml.expected, t/data/tv_to_text_dups_xml_clump_xml.expected, t/data/tv_to_text_dups_xml_dups_xml.expected, t/data/tv_to_text_dups_xml_empty_xml.expected, t/data/tv_to_text_empty_xml.expected, t/data/tv_to_text_empty_xml_amp_xml.expected, t/data/tv_to_text_empty_xml_clump_xml.expected, t/data/tv_to_text_empty_xml_dups_xml.expected, t/data/tv_to_text_empty_xml_empty_xml.expected, t/data/tv_to_text_length_xml.expected, t/data/tv_to_text_overlap_xml.expected, t/data/tv_to_text_simple_xml.expected, t/data/tv_to_text_simple_xml_x_whatever_xml.expected, t/data/tv_to_text_sort_xml.expected, t/data/tv_to_text_test_empty_xml.expected, t/data/tv_to_text_test_livre_xml.expected, t/data/tv_to_text_test_xml.expected, t/data/tv_to_text_test_xml_test_xml.expected, t/data/tv_to_text_whitespace_xml.expected, t/data/tv_to_text_x_whatever_xml.expected: New filter tv_to_text. This is very similar to tv_to_latex (using the same code recently moved into the XMLTV::Summarize module) but outputs plain text. I originally wrote it when I was on a box that didn't have LaTeX installed. 2003-02-02 18:09 epaepa * xmltv.dtd, filter/tv_grep.in, lib/XMLTV.pm.in: Small change to the file format: newlines in element content are not allowed except for , and elements (these contain a 'paragraph' of text). Changed XMLTV.pm.in to check this. 2003-02-02 18:04 epaepa * lib/XMLTV.pm.in: Pod formatting fix. 2003-02-02 17:14 epaepa * xmltv.dtd: Fixed the version numbering. 2003-02-02 17:11 epaepa * lib/XMLTV.pm.in: chomp() the warning or error message before adding a newline to the end. This lets you give messages using the normal convention of ending in \n without ending up with a blank line in the output. 2003-02-02 14:14 epaepa * t/data/: test_empty.xml, tv_cat_all_UTF8.expected, tv_cat_test_empty_xml.expected, tv_extractinfo_en_all_UTF8.expected, tv_extractinfo_en_test_empty_xml.expected, tv_grep_a_all_UTF8.expected, tv_grep_a_test_empty_xml.expected, tv_grep_category_g_or_title_h_all_UTF8.expected, tv_grep_category_g_or_title_h_test_empty_xml.expected, tv_grep_eval_scalar_keys_5_all_UTF8.expected, tv_grep_eval_scalar_keys_5_test_empty_xml.expected, tv_grep_on_after_2002_02_05_all_UTF8.expected, tv_grep_on_after_2002_02_05_test_empty_xml.expected, tv_sort_all_UTF8.expected, tv_sort_by_channel_all_UTF8.expected, tv_sort_by_channel_test_empty_xml.expected, tv_sort_test_empty_xml.expected, tv_to_latex_all_UTF8.expected, tv_to_latex_test_empty_xml.expected: Removed a newline from the of one of the test inputs. I've decided that titles and other similar things should not contain newlines. 2003-02-02 10:50 epaepa * grab/fi/tv_grab_fi: Corrected line endings. Checking out the file on DOSish systems should add the carriage returns anyway, so there is no need to put them in CVS. 2003-02-01 22:28 jveldhuis * grab/na/ZapListings.pm: added error message to check postal/zip code when provider form didn't appear. Zap2it doesn't give a nice error message until the second time you type a failed zip code. 2003-02-01 22:26 jveldhuis * grab/na/tv_grab_na: fixed usage line length <80 2003-02-01 21:51 jveldhuis * grab/na/ZapListings.pm: fixed user-agent to use xmltv/0.5.7a and minor adjust so we get all channels and not just the first 20 - thanks darren <at> vexorg.no-ip.com 2003-02-01 21:48 jveldhuis * grab/na/tv_grab_na: fixed some usage failures to exit(1) instead of continuing 2003-01-31 23:04 epaepa * grab/de/tv_grab_de: Fixed warning (noticed in Debian bug #178692) about memGunzip name used only once, when Compress::Zlib could not be loaded. 2003-01-31 22:59 epaepa * grab/de/tv_grab_de: my_gunzip(): Patch from Debian bug #178692 to make call to tempfile() actually work. 2003-01-31 17:50 jveldhuis * grab/na/tv_grab_na: fixed release-check message at end of grab 2003-01-31 17:49 jveldhuis * grab/na/ZapListings.pm: minor comment removal 2003-01-31 17:17 jveldhuis * grab/na/tv_grab_na: - added --release-check true/false to the command line (default is true) Specify whether or not we should attempt to check + for new releases. tv_grab_na does this by default (scraping the contents of the xmltv project page). - reworked some calls to ZapListings new packaging. 2003-01-31 17:16 jveldhuis * grab/na/ZapListings.pm: - reworked scraping/traversal of all zap2it web site pages - removed all hardcoded cookies - removed all hardcoded zap2it server names - removed all hardcoded url with the exception of www.zapit.com/index - now works by scraping www pages for "defined" forms and then uses them, reusing the same UserAgent so cookie management is completely automatic. - userAgent description is 'Mozilla/5.0' for kicks. - added getCurrentReleaseInfo() that may belong in the XMLTV package instead, but its here for now. - identifies and inserts programmes with title=unknown when program holes appear (including holes that span across day boundaries) (emits warning when hole is filled, if --quiet is not used) - reworked packaging a bit because of new form/traversal mechanisms 2003-01-31 16:45 rmeden * choose/tv_check/tv_check: don't crash on no episode match for replay scan 2003-01-28 16:53 jveldhuis * grab/na/ZapListings.pm: fixed calls to statusMessage 2003-01-24 03:07 rmeden * choose/tv_check/tv_check_doc.html: documented --DDMM switch. Also edited with Mozilla, so it reformatted it bunch 2003-01-24 02:49 rmeden * choose/tv_check/tv_check: added --DDMM switch to optinally use that date format in reports 2003-01-23 05:05 rmeden * choose/tv_check/tv_check: use channel-id for dislpaly-name if guide doesn't have a channel section. index channels after guide instead of before in case channels not predefined set show day to empty string to avoid rare undef fix index name in configure mode, so you can just click on a title 2003-01-21 06:33 rmeden * lib/exe_wrap.pl: Date::Manip doesn't always deal with numeric time zones correctly. They have fixed their code, but it's not in wide distribution. For now, when exe_xmit tries to guess the time zone, let it use some named values. This will be fased out in a few months, once Date::Manip is distributed. 2003-01-20 03:48 rmeden * choose/tv_check/tv_check: allow MYREPLAY devices to be included in specialy ReplayTV fuzzy logic checks fix misleading "wrong show in slot" when there is really "NO GUIDE DATA" (hole) 2003-01-20 03:46 rmeden * Makefile.PL: specify module path to PerlApp so local libraries (not installed) are used when building xmltv.exe 2003-01-19 18:59 epaepa * MANIFEST, Makefile.PL, filter/tv_to_latex, lib/Summarize.pm: Factored out most of tv_to_latex's code into a new library XMLTV::Summarize. 2003-01-19 17:36 jveldhuis * grab/na/tv_grab_na: provider description or provider id changes are recoverable during a grab so long at least one matches for the given list of providers for the postal/zip code. during configure stage if the id changes (but the description matches exactly) it gets auto-updated. 2003-01-19 08:08 rmeden * Makefile.PL: when making windows_dist, don't run UNIX2DOS against a JPG file! 2003-01-18 23:43 jveldhuis * grab/na/tv_grab_na: added bug about provider_id matches and provider descriptions 2003-01-18 16:39 rmeden * lib/exe_wrap.pl: fix --share directory processing for those apps that need it. 2003-01-16 02:39 chunkygoodness * grab/nz/tv_grab_nz: Removed BUG entry from manpage relating to primetv - no longer relevant now that we are using the ontv url 2003-01-15 20:51 jveldhuis * grab/na/tv_grab_na: now sets default system=onscreen for episode-num nodes 2003-01-12 11:13 epaepa * mkdist: Rewrote the instructions for uploading a new release to Sourceforge, adding an explanation of what the release notes and changelog should be. 2003-01-11 01:17 epaepa * Makefile.PL: Corrected LC_ALL detection bug noticed by Robert Boardman; made the message printed more sentenceful. (sententious? sentent?) 2003-01-08 06:02 rmeden * Makefile.PL: fix some bugs in the make windows_dist function 2003-01-07 23:22 jveldhuis * mkdist: updated some of the ftp related hints at the end 2003-01-07 17:17 jveldhuis * README, doc/README.win32: added blub about some recent changes to the _na grabber 2003-01-07 16:42 jveldhuis * grab/na/ZapListings.pm: update form variables required by zap2it 2003-01-06 22:17 chunkygoodness * grab/nz/tv_grab_nz: Fixed bug in regular expression that wouldn't match programs with hyper links in their names 2003-01-06 07:32 chunkygoodness * grab/nz/tv_grab_nz: Changed parser to use ontv.nzoom.com for all channels - this means that there are descriptions for all channels now, and makes maintenance easier (only one website to track for changes) 2003-01-03 07:30 rmeden * choose/tv_check/tv_check: Minor tweak to code that reuses previous show file options during MyReplayTV processing. 2003-01-02 21:46 epaepa * Makefile.PL, lib/XMLTV.pm.in: Version 0.5.6. 2003-01-01 22:27 epaepa * doc/README.win32: Updated for 0.5.6. We don't currently know how to fix the % shell metacharacter problem. 2003-01-01 22:03 epaepa * README: Updated for 0.5.6. 2003-01-01 21:15 epaepa * grab/na/tv_grab_na: Made the configuration file parsing work if there is no version line. This is partly to make it work with a conf file the user sent me, and partly because the version line does look like a comment. 2003-01-01 19:27 epaepa * MANIFEST: Removed file README.tv_check. 2003-01-01 19:10 epaepa * MANIFEST, Makefile.PL, README, doc/QuickStart, grab/fi/tv_grab_fi: Adding Matti Arias's tv_grab_fi for Finnish listings. Hopefully this commit should include all changes needed to add it to the distribution. Also mentioned tv_grab_uk_rt (the ugly sister of tv_grab_uk) in the QuickStart guide, for completeness. 2003-01-01 18:59 epaepa * doc/QuickStart: Rephrased the introduction to grabbers, and added mention of tv_split. 2003-01-01 18:51 epaepa * README.tv_check: Removing this copy of README.tv_check because it is an exact duplicate (or was until recent changes) of the copy in choose/tv_check/. 2003-01-01 18:46 epaepa * choose/tv_check/README.tv_check: Make it slightly more explicit that you can run any grabber and not just tv_grab_na... it was probably clear enough already, but what the heck. 2002-12-29 16:55 rmeden * choose/tv_check/tv_check: work around a bug where Date::Manip doesn't deal with appended TZ correctly. The problem has been fixed, but there isn't a real benefit to having the TZ in the times, so dropping them instead adding a later Date::Manip dependency. 2002-12-26 20:05 epaepa * doc/README.win32: Oops, I accidentally committed bogus instructions for Windows users. We're still waiting for a solution to the % problem. 2002-12-26 19:54 epaepa * MANIFEST, Makefile.PL, filter/tv_split: Added an implementation of tv_split. This one does not require the input to be sorted. It tries to be clever and keep one open XMLTV::Writer for each output file, so programmes can be written out as they are read in, but I had to add workaround code for the case when the process runs out of open filehandles. I haven't added tv_split to the test suite but it seems to work. 2002-12-26 19:52 epaepa * lib/XMLTV.pm.in: Added a warning for a common mistake in using XMLTV::Writer - passing a filename where a filehandle is expected. At least, it's a mistake that I make often. 2002-12-26 14:49 epaepa * lib/XMLTV.pm.in: Added some runtime checks to make sure the various XMLTV::Writer methods are called in the right order. 2002-12-25 21:51 epaepa * choose/tv_check/tv_check, choose/tv_check/tv_check_doc.html, doc/README.win32, grab/na/ZapListings.pm, lib/XMLTV.pm.in: After I found that perl was complaining when run in a UTF-8 locale, I decided to purge all non-ASCII characters from the source code. The characters were mostly in the code in order to purge bad characters from the web pages fetched :-P. Now we just use \xAB style hex escapes. Also tidied up the tv_check documentation, it previously had some Microsoftisms including the notorious 'smart quotes' and lumps of non-breaking spaces used for layout. 2002-12-25 17:39 epaepa * grab/na/ZapListings.pm: Use URI::new_abs() to make icon URLs absolute, even if the site decides to serve relative URLs in the HTML. 2002-12-23 20:23 epaepa * analyse_tvprefs/analyse_tvprefs, choose/tv_pick/tv_pick_cgi, grab/uk_rt/tv_grab_uk_rt.in: Fixed several places with configuration-file-parsing code. You need to strip comments _before_ stripping trailing spaces, otherwise a space before a comment is left. Hmm, perhaps this should be factored out. 2002-12-21 02:47 chunkygoodness * grab/nz/tv_grab_nz: Fixed tv1 regular expression - the source had changed 2002-12-18 16:47 epaepa * MANIFEST, Makefile.PL, grab/uk_rt/tv_grab_uk_rt.in: Finally got rid of the Ananova_Channel library for tv_grab_uk. It seemed like a good idea at the time, providing an OO abstraction around the list of channels and enforcing various properties, but it just became too complex and unwieldy. Actually, so far all I've done is move code out of Ananova_Channel.pm and put it directly into tv_grab_uk.in. But next I can start cleaning up. 2002-12-18 16:39 epaepa * t/data/: tv_grep_previously_shown_all_UTF8.expected, tv_grep_previously_shown_amp_xml.expected, tv_grep_previously_shown_amp_xml_amp_xml.expected, tv_grep_previously_shown_amp_xml_clump_xml.expected, tv_grep_previously_shown_amp_xml_dups_xml.expected, tv_grep_previously_shown_amp_xml_empty_xml.expected, tv_grep_previously_shown_amp_xml_empty_xml_empty_xml_clump_xml.expected, tv_grep_previously_shown_attrs_xml.expected, tv_grep_previously_shown_clump_extract_1_xml.expected, tv_grep_previously_shown_clump_extract_xml.expected, tv_grep_previously_shown_clump_xml.expected, tv_grep_previously_shown_clump_xml_amp_xml.expected, tv_grep_previously_shown_clump_xml_clump_xml.expected, tv_grep_previously_shown_clump_xml_dups_xml.expected, tv_grep_previously_shown_clump_xml_empty_xml.expected, tv_grep_previously_shown_dups_xml.expected, tv_grep_previously_shown_dups_xml_amp_xml.expected, tv_grep_previously_shown_dups_xml_clump_xml.expected, tv_grep_previously_shown_dups_xml_dups_xml.expected, tv_grep_previously_shown_dups_xml_empty_xml.expected, tv_grep_previously_shown_empty_xml.expected, tv_grep_previously_shown_empty_xml_amp_xml.expected, tv_grep_previously_shown_empty_xml_clump_xml.expected, tv_grep_previously_shown_empty_xml_dups_xml.expected, tv_grep_previously_shown_empty_xml_empty_xml.expected, tv_grep_previously_shown_length_xml.expected, tv_grep_previously_shown_overlap_xml.expected, tv_grep_previously_shown_simple_xml.expected, tv_grep_previously_shown_simple_xml_x_whatever_xml.expected, tv_grep_previously_shown_sort_xml.expected, tv_grep_previously_shown_test_empty_xml.expected, tv_grep_previously_shown_test_livre_xml.expected, tv_grep_previously_shown_test_xml.expected, tv_grep_previously_shown_test_xml_test_xml.expected, tv_grep_previously_shown_whitespace_xml.expected, tv_grep_previously_shown_x_whatever_xml.expected: Added <previously-shown /> to some test data so I can test the new features in tv_grep. I thought these changes were committed earlier. Oh well. 2002-12-17 15:32 epaepa * MANIFEST, filter/tv_grep.PL, filter/tv_grep.in, t/test_filters.t: New feature for tv_grep: there are some elements which cannot be fully queried, but now at least you can query whether they are present or not. For example, % tv_grep --previously-shown '' will find programmes that are repeats. 2002-12-17 15:16 epaepa * t/data/: simple.xml, tv_cat_all_UTF8.expected, tv_cat_simple_xml.expected, tv_cat_simple_xml_x_whatever_xml.expected, tv_cat_x_whatever_xml.expected, tv_extractinfo_en_all_UTF8.expected, tv_extractinfo_en_simple_xml.expected, tv_extractinfo_en_simple_xml_x_whatever_xml.expected, tv_extractinfo_en_x_whatever_xml.expected, tv_grep_a_all_UTF8.expected, tv_grep_a_simple_xml.expected, tv_grep_a_simple_xml_x_whatever_xml.expected, tv_grep_a_x_whatever_xml.expected, tv_grep_category_g_or_title_h_all_UTF8.expected, tv_grep_category_g_or_title_h_simple_xml.expected, tv_grep_category_g_or_title_h_simple_xml_x_whatever_xml.expected, tv_grep_category_g_or_title_h_x_whatever_xml.expected, tv_grep_channel_id_channel4_com_all_UTF8.expected, tv_grep_channel_id_channel4_com_simple_xml.expected, tv_grep_channel_id_channel4_com_simple_xml_x_whatever_xml.expected, tv_grep_channel_id_channel4_com_x_whatever_xml.expected, tv_grep_eval_scalar_keys_5_all_UTF8.expected, tv_grep_eval_scalar_keys_5_simple_xml.expected, tv_grep_eval_scalar_keys_5_simple_xml_x_whatever_xml.expected, tv_grep_eval_scalar_keys_5_x_whatever_xml.expected, tv_grep_i_category_i_title_h_all_UTF8.expected, tv_grep_i_category_i_title_h_simple_xml.expected, tv_grep_i_category_i_title_h_simple_xml_x_whatever_xml.expected, tv_grep_i_category_i_title_h_x_whatever_xml.expected, tv_sort_all_UTF8.expected, tv_sort_by_channel_all_UTF8.expected, tv_sort_by_channel_simple_xml.expected, tv_sort_by_channel_simple_xml_x_whatever_xml.expected, tv_sort_by_channel_x_whatever_xml.expected, tv_sort_simple_xml.expected, tv_sort_simple_xml_x_whatever_xml.expected, tv_sort_x_whatever_xml.expected, x-whatever.xml: Added <previously-shown /> to some of the sample data so I can later test grepping it. 2002-12-17 12:41 epaepa * lib/exe_wrap.pl: Untested change to pass a --share argument to the grabbers which need it. 2002-12-16 22:46 epaepa * lib/Ask.pm: Made more robust against input-reading failures (such as EOF). Now it is documented that if the input could not be read, undef is returned. 2002-12-14 15:39 epaepa * lib/XMLTV.pm.in: Added some more trace statements. 2002-12-14 11:13 epaepa * grab/nz/tv_grab_nz: Changed some string functions to make them work with Python 1.5.2. 2002-12-13 23:11 epaepa * Makefile.PL: Cahnged the Python version checking to primt sys.hexversion because the Python 1.5.2 interpreter doesn't understand -V. 2002-12-13 23:06 epaepa * Makefile.PL: Formatting change for perl 5.005. 2002-12-13 14:32 epaepa * README, doc/README.win32: Staffan Malmgren's channel-selection patch to tv_grab_sn has made it into the 0.5.5 release. 2002-12-13 14:26 epaepa * grab/nz/tv_grab_nz: Changed configuration behaviour to be more like the other grabbers (just more chatter, really). 2002-12-13 01:52 chunkygoodness * grab/nz/tv_grab_nz: Modifed the manpage slightly, as well as added the initial support for the --configure option to select which channels are to be downloaded. 2002-12-13 00:56 epaepa * filter/tv_extractinfo_en, lib/Ask.pm, lib/XMLTV.pm.in: Global style fix for uncuddled elses as mandated by 'perlstyle'. A pity that Emacs keeps putting them back again. 2002-12-12 16:49 epaepa * lib/exe_wrap.pl: Friendlier error message for tv_grab_nz. 2002-12-12 16:47 epaepa * lib/exe_wrap.pl: Generalized this a bit so that each command name has a lump of Perl code associated with it, so we can do exciting things like print a warning message for tv_grab_nz :-). 2002-12-12 12:19 epaepa * Makefile.PL, README, doc/QuickStart, doc/README.win32, lib/XMLTV.pm.in: Updated for the forthcoming 0.5.5 release. But I don't know what to do about tv_grab_nz on Windows. 2002-12-12 11:40 epaepa * grab/nz/tv_grab_nz: Tidied the usage message. Added pod documentation (perhaps a bit odd in a Python program, but it's the easiest way to get a manual page). 2002-12-11 22:56 epaepa * README: Added Python to the list of dependencies, at least for tv_grab_nz. 2002-12-11 22:20 epaepa * MANIFEST: Added tv_grab_nz to the file list. 2002-12-11 22:18 epaepa * Makefile.PL: Now as well as testing module prerequisites with the 'prereqs' key, you can specify arbitrary bits of code to be run under 'special_prereqs', with version number comparison as for modules. I've used this to add tv_grab_nz with a dependency on Python 1.5.2 or later. 2002-12-11 17:27 epaepa * grab/nz/tv_grab_nz: Adding Andre Renaud's New Zealand grabber. Now to arrange the necessary installation gubbins. 2002-12-11 05:26 jveldhuis * grab/na/ZapListings.pm: escape @ in messages - thanks Walter D. 2002-12-10 23:55 epaepa * lib/XMLTV.pm.in: Some runtime type errors during writing XML that would previously have aborted the program are now just warnings, with the particular element affected being skipped. A new private routine check_multiplicity() makes sure that a hash has the mandatory elements required by a set of handlers. The new private routine write_element_with_handlers() calls check_multiplicity() before opening the element, so there is less chance of writing invalid XML from bad Perl data structures. 2002-12-10 23:14 epaepa * Makefile.PL: The location of manual pages varies from one system to another. But I think to keep things simple, for XMLTV they can always be in PREFIX/share/man/ which is the FHS-approved place. 2002-12-08 10:58 epaepa * Makefile.PL: Corrected the message given when UTF-8 problems are detected: updating Date::Manip won't fix it, but changing your locale will. Thanks to Derek J. Kalweit for bringing this to my attention. 2002-12-05 21:50 jveldhuis * grab/na/ZapListings.pm: spill out status message when we find star ratings > 4 star - did zap2it change things ? 2002-12-05 21:42 jveldhuis * grab/na/ZapListings.pm: properly identify star-ratings given by ***+ instead of ***1/2 for 3.5 star ratings 2002-12-01 17:14 epaepa * Makefile.PL, README, doc/README.win32, lib/XMLTV.pm.in: Version 0.5.4. 2002-12-01 16:58 epaepa * analyse_tvprefs/analyse_tvprefs: Updated link to top 3000 words in the BNC; now it points to my mirror of that page. 2002-12-01 10:12 epaepa * mkdist: Now there are two readme files the mkdist reminder needs to mention them both. 2002-11-28 18:37 jveldhuis * grab/na/: ZapListings.pm, tv_grab_na: new rework to support new zap2it cookies etc Special thanks to Stephen Bain for helping me play catch-up with zap2it site changes. 2002-11-24 05:10 rmeden * doc/README.win32: Mention the fact that TZ can be determined automatically. 2002-11-24 00:04 epaepa * Makefile.PL: Version 0.5.3. 2002-11-23 23:48 epaepa * lib/XMLTV.pm.in: Bumping version to 0.5.3. It seems that the version of the XMLTV module follows that of the xmltv project. 2002-11-23 23:47 epaepa * doc/README.win32: Updated the Win32 instructions. It's nice not to have to mention arcane details of Perl module versions. The list of contributors could be done better, I haven't worked out the best way of giving credit in the docs. 2002-11-23 23:29 epaepa * README: Updated for version 0.5.3; I've tried to summarize the changes but focusing mostly on the emergency tv_grab_na fix. Also I've attempted to explain the Date::Manip problems on Red Hat 8... still waiting for a response from the module's developer on this. 2002-11-23 20:53 epaepa * grab/de/tv_grab_de: Better error message when the site appears to be out of date. This is the signal for me to bring up the page in my web browser and hit 'reload' to kick my proxy server into getting a newer version of the page :-P. 2002-11-23 20:44 epaepa * grab/de/tv_grab_de: Added a warning message if --configure is given (this grabber needs and supports no configuration stage). 2002-11-22 16:09 jveldhuis * grab/na/ZapListings.pm: now uses tvlistings.zap2it.com as its base instead of tvlistings2 ?? 2002-11-19 16:13 jveldhuis * grab/na/tv_grab_na: fixed errrorMessage to be errorMessage 2002-11-19 08:07 epaepa * Makefile.PL: HTML::TableExtract 1.08 or later required (found by Kenneth Pronovici). 2002-11-18 22:53 epaepa * filter/tv_extractinfo_en: multipart_split_desc(): be more discriminating before deciding it's the Radio Times style. Look for the word 'at' as well as 'with'. 2002-11-18 19:52 epaepa * grab/: de/tv_grab_de, uk_rt/tv_grab_uk_rt.in: Adding a --quiet flag to four grabbers; this is in response to Debian bug 169157 and discussions with Kenneth Pronovici. 2002-11-18 01:41 jveldhuis * grab/na/tv_grab_na: added option for splitting --listings output by channel number and channel callletters. See pod or --help for details. 2002-11-18 01:40 jveldhuis * grab/na/: ZapListings.pm, tv_grab_na: added new --quiet and --stats command line options as per requests to control amount of stderr output. 2002-11-17 17:52 jveldhuis * grab/na/tv_grab_na: fixed mkpathtofile so it creates all missing directories 2002-11-16 22:41 epaepa * grab/uk_rt/tv_grab_uk_rt.in: Patch from Walter Duncan to add --offset. 2002-11-16 11:11 epaepa * grab/de/tv_grab_de: Added --offset option, improved warning messages when downloads fail. 2002-11-15 17:24 rmeden * choose/tv_check/tv_check: fix MyReplayTV case where day changes and old day is reused 2002-11-12 14:56 rmeden * lib/exe_wrap.pl: I thought a script could end with RETURN. Someone had a problem 2002-11-11 21:19 epaepa * Makefile.PL: Jerry V. pointed out that string comparison might work better than numeric comparison for version numbers. 2002-11-11 17:27 jveldhuis * grab/na/tv_grab_na: fixed documentation w.r.t --output and added some warnings about failing to unlink temperary files 2002-11-11 17:26 jveldhuis * grab/na/ZapListings.pm: warn if we can't write to cache 2002-11-07 13:20 epaepa * filter/tv_extractinfo_en: There was an infinite loop where a programme looked a bit like a multipart, but was 'split' into only one programme, which in turn looked like a multipart... Now if a programme is split into just one result, special_multipart() decides to leave it alone. 2002-11-07 10:30 epaepa * filter/tv_cat, lib/XMLTV.pm.in: Fixed the tv_cat bug reported by Jerry Veldhuis where it duplicates <channel> elements. The mistake lay in treating parsefiles_callback() as if it could simply be used instead of parsefile_callback(), when in fact a little more checking is needed when getting channels from multiple files. Added a warning to the XMLTV.pm documentation about this. I might change the way this works later, so that duplicate channels are weeded out in XMLTV.pm and the data returned to the user is always clean: not sure what is best here. 2002-11-07 10:25 epaepa * MANIFEST: Oops, I added a few generated test outputs to the file list by mistake. 2002-11-07 10:12 epaepa * MANIFEST, t/test_filters.t, t/data/tv_cat_test_xml_test_xml.expected, t/data/tv_extractinfo_en_test_xml_test_xml.expected, t/data/tv_grep_a_test_xml_test_xml.expected, t/data/tv_grep_category_b_test_xml_test_xml.expected, t/data/tv_grep_category_e_and_title_f_test_xml_test_xml.expected, t/data/tv_grep_category_g_or_title_h_test_xml_test_xml.expected, t/data/tv_grep_channel_id_channel4_com_test_xml_test_xml.expected, t/data/tv_grep_channel_name_d_test_xml_test_xml.expected, t/data/tv_grep_channel_xyz_or_channel_b_test_xml_test_xml.expected, t/data/tv_grep_eval_scalar_keys_5_test_xml_test_xml.expected, t/data/tv_grep_i_category_i_title_h_test_xml_test_xml.expected, t/data/tv_grep_i_category_i_title_j_test_xml_test_xml.expected, t/data/tv_grep_i_last_chance_c_test_xml_test_xml.expected, t/data/tv_grep_new_test_xml_test_xml.expected, t/data/tv_grep_on_after_2002_02_05_test_xml_test_xml.expected, t/data/tv_grep_premiere_test_xml_test_xml.expected, t/data/tv_sort_by_channel_test_xml_test_xml.expected, t/data/tv_sort_test_xml_test_xml.expected, t/data/tv_to_latex_test_xml_test_xml.expected: Added a new set of filter test cases: using the file test.xml twice. This is to catch a bug in tv_cat where <channel> elements are duplicated. The expected outputs being committed show the correct behaviour. 2002-11-06 19:18 epaepa * MANIFEST: Dealt with the new Ananova television channels, assigned them XMLTV ids and put each in one or more packages. 2002-11-06 19:16 epaepa * Makefile.PL: The Makefile depends on grab/uk/channel_pkgs/ because every time a new package is added to that directory some new commands need to appear in the Makefile. 2002-11-05 05:41 rmeden * lib/exe_wrap.pl: Set the TZ variable if it is not already set. 2002-11-03 17:58 jveldhuis * grab/na/tv_grab_na: The following changes have been made to the cvs head revision of tv_grab_na and ZapListings.pm. 1. when --output is used, the file is always overwritten 2. renamed the newly added --overwrite to --listings-overwrite because it only effects the symanitics of --listings use. 3. when no programs are found after getting a page of listings from zap2it, the readSchedule() method returns -2 instead of -1 and so tv_grab_na won't retry these pages. Instead tv_grab_na prints a message similar to: unretry-able error reading schedule for 2002-11-05 for station 2 CFRN and doesn't retry. (thanks Brian for the insight). 2002-11-03 17:52 jveldhuis * grab/na/ZapListings.pm: delayed messages about writting files to cache until after scraping the data so we don't report we're writting data to cache we actually unlink afterward because no programs were found. implemented -2 unretry-able errors so no programs aren't retried by tv_grab_na. 2002-11-02 16:43 jveldhuis * grab/na/tv_grab_na: In order to make tv_grab_na a bit more resistant to longer server failures at zap2it, it now: - if used with --listings or --output won't re-grab already grabbed listings (this only works if you use at least a day resolution on your filenames) - this behaviour can be over-ridden by using the --overwrite=true on the command line. - format of ending stats has changed a bit. They now include the number of channel listings that failed and the number of listings files that weren't re-grabbed. ie: > checking provider information for postal/zip code 90210, be patient.. > double checking channel information, be patient.. > listings in tmp-grab/90210/2002-10-29-listings-02 exist, skipping ... > Grabbed 0 programs on 0 channels over 2 day(s) in 0 seconds > not too bad, that's 0.00 programs/sec and 0.00 seconds/www page > does not include 1 failed channel schedule > does not include 2 output file(s) that already existed WARNING: the default behavour changes the symantics of using --listings or --output with a filename that doesn't change on a daily basis (ie include %d or equiv). So if you use 'tv_grab_na --listings out.xml' it will only retrieve fresh listings if the out.xml file doesn't exist. Change does not effect writting listings to stdout. 2002-11-02 16:18 jveldhuis * grab/na/ZapListings.pm: added a newly used lanugage 2002-10-29 17:32 epaepa * Makefile.PL: Added a special check for Red Hat's uniquely broken Date::Manip installation. I hope it works. 2002-10-27 12:55 epaepa * grab/uk_rt/tv_grab_uk_rt.in: Changed the date handling to use the UK_TZ.pm code that was originally written for the Ananova grabber. Unless the programme details give an explicit timezone we just guess. This probably still has bugs but it is a lot better than it was before. The local system's timezone will no longer affect the listings output (we set Date::Manip to UTC for everything). A pity that I did this too late for last night's BST->UTC changeover :-(. 2002-10-27 09:29 epaepa * grab/uk_rt/tv_grab_uk_rt.in: Instead of ParseDate() use parse_uk_date() which guesses a timezone. This was intended to fix the BST/GMT changeover bugs, it does not, but hopefully the code is no worse than before. Changed memoization to get_url() instead of get() because memoizing get() failed for some obscure reason. 2002-10-27 09:28 epaepa * MANIFEST, Makefile.PL, lib/UK_TZ.pm: Moved the library UK_TZ.pm out of the grab/uk/ directory and into lib/, since it will now be used by two grabbers. (Still haven't decided the best way to organize the directory structure with libraries that are used by only one or two programs, but it's a small issue.) 2002-10-27 09:25 epaepa * Uninstall.pm: Made uninstall work correctly with perl 5.005, its File::Find seems a bit broken. 2002-10-25 19:26 epaepa * Makefile.PL: A nicer warning message when a module fails to load. 2002-10-25 19:18 epaepa * lib/XMLTV.pm.in: Pod documentation syntax fixes. 2002-10-25 19:14 epaepa * MANIFEST: Adding the Windows executable generator to the file list (there's no harm in distributing it as part of the source tarballs and if it's not in MANIFEST you get a warning). 2002-10-24 16:14 jveldhuis * grab/na/tv_grab_na: Now supports compressors based on listings file suffix. added command line options to override gzip/zip and bzip2 compressor command lines. Ya I know I could have used perl packages out there someplace for doing the compression, but I wanted something quick. The command line options support windoz platforms. And its not like compression of output listings files is required, so if it doesn't work, don't use it. now closes xml output upon failure, so you get valid output to stdout. 2002-10-24 15:51 jveldhuis * grab/na/ZapListings.pm: remove pages with no programs from cache 2002-10-23 18:02 rmeden * Makefile.PL: Replace leading spaces with tabs in generated Makefile for compatability 2002-10-22 04:25 rmeden * lib/exe_wrap.pl: Still working on that file id! 2002-10-22 04:24 rmeden * lib/exe_wrap.pl: Fix file ID number 2002-10-22 04:22 rmeden * lib/exe_wrap.pl: Initial commit of script used as wrapper for windows EXE 2002-10-22 04:12 rmeden * Makefile.PL: Added code to build windows executable 2002-10-20 17:02 jveldhuis * grab/na/ZapListings.pm: will now retry pages returned with no programs 2002-10-20 10:21 epaepa * Makefile.PL: Require XML::Twig version 3.09. This should finally fix the problems with XML::Twig not being detected by the Makefile.PL. This version of XML::Twig has not yet been officially released to CPAN, you have to get it as a development version from the author's website. But I'm told it will be released soon. 2002-10-16 17:51 epaepa * Makefile.PL: Scott Rose reported that LWP 5.63 had missing methods, but upgrading to 5.65 worked. So we'll require that version. 2002-10-16 17:31 epaepa * Makefile.PL: The minimum required version of XML::Twig is now the latest, 3.08. This fixes various weird problems that Red Hat 8 or Mandrake 9 users have been having, though probably not all of them. Not all users will strictly need to upgrade but it's way simpler just to get everyone on the same version. 2002-10-15 19:45 epaepa * MANIFEST, Makefile.PL, mkdist, doc/README.win32: Added a couple of files to the distribution created by 'make windows_dist': the standard xmltv.dtd, and a new file README.win32 which replaces the standard README. 2002-10-14 19:43 epaepa * Makefile.PL: windows_dist: convert all the files to DOS line endings; move READMEs to the top-level directory. 2002-10-13 20:46 epaepa * Makefile.PL: The test I put in to check for manual page breakage didn't work because of shell wildcard expansion. 2002-10-11 19:14 epaepa * filter/tv_extractinfo_en: Turn 'X interviews...' into a 'presenter' credit (though really it would be something more specific if the XMLTV format allowed it). 2002-10-11 19:01 epaepa * filter/tv_extractinfo_en: New multipart splitting method: look for 'including at TIME TITLE' in description. This isn't perfect (the main programme continues afterwards, there is 'followed by weather' which isn't handled, and I'm still not happy about throwing away all the programme's other data when splitting on description) but a further step in the War On English. 2002-10-11 17:23 epaepa * filter/tv_extractinfo_en: A few more todo-list items. special_credits(): 'Written by' and just 'By' create a 'writer' credit. Some of the extractor regexps have been tweaked to preserve sentence boundaries better. A sentence 'X concludes the series' makes X a presenter and adds the new text 'Last in series' - which some day might be picked up by another handler. special_new_series(): recognize a wider range of 'New series' sentences. special_useless(): recognize and remove 'Coverage of' anywher at the start of a sentence. 2002-10-11 15:05 epaepa * filter/tv_extractinfo_en: The name regular expressions were made weaker to accommodate names like 'LL Cool J' (sigh). But I added a negative lookbehind test to make sure that 'the' does not precede a name unless it is part of the name. How many of these lookbehind and lookahead tests should be part of $NAME_RE, and how many part of the regexps which embed it, is still to be sorted out. special_category(): report more accurately whether the programme has been changed. special_credits(): work on all the descriptions in the right language, not just the first. Improved some of the extractor regexps, and more extractors now examine categories, or the presence of an existing person with the same job, to see whether they should run. Did away with the silly (non?)optimization of 'caches' stored in the programme details listing people in a given job. It is not possible for a person to both be a guest and do some other job. 2002-10-11 14:36 epaepa * t/data/tv_extractinfo_en_clump_extract_1_xml.expected: I think this test file didn't get committed earlier for some reason. 2002-10-10 19:05 epaepa * filter/tv_extractinfo_en: The assignmnent of new categories is a bit subtler: it looks at all the programme's titles and descriptions which are in English, and knows that mention of 'news' in a soap opera doesn't make it a news show. 'With' in game show means presenter, not actor (just as already for news, business, etc). 2002-10-10 18:16 epaepa * filter/tv_extractinfo_en: Removed some references to 'en' scattered around the code, now there is a routine pair_ok() to tell you whether a [ text, lang ] pair is eligible for processing, and if you must use the language directly then use the variable $LANG. 2002-10-10 17:58 epaepa * filter/tv_extractinfo_en: Parse a sentence like 'Roy Hattersley guests'. 2002-10-10 16:33 epaepa * mkdist: Updated the instructions to reflect the new naming convention for file releases. (Just '0.5.2' not 'xmltv-0.5.2' which is kinda redundant.) 2002-10-10 14:46 epaepa * README: Removed references to slowness of test suite - it's not so bad now. 2002-10-10 14:28 epaepa * README: Improved summary of changes since last release: it's harder to remember what other people have committed :-(. 2002-10-10 13:45 epaepa * lib/XMLTV.pm.in, t/data/amp.xml, t/data/tv_cat_all_UTF8.expected, t/data/tv_cat_amp_xml.expected, t/data/tv_cat_amp_xml_amp_xml.expected, t/data/tv_cat_amp_xml_clump_xml.expected, t/data/tv_cat_amp_xml_dups_xml.expected, t/data/tv_cat_amp_xml_empty_xml.expected, t/data/tv_cat_amp_xml_empty_xml_empty_xml_clump_xml.expected, t/data/tv_cat_clump_xml_amp_xml.expected, t/data/tv_cat_dups_xml_amp_xml.expected, t/data/tv_cat_empty_xml_amp_xml.expected, t/data/tv_extractinfo_en_all_UTF8.expected, t/data/tv_extractinfo_en_amp_xml.expected, t/data/tv_extractinfo_en_amp_xml_amp_xml.expected, t/data/tv_extractinfo_en_amp_xml_clump_xml.expected, t/data/tv_extractinfo_en_amp_xml_dups_xml.expected, t/data/tv_extractinfo_en_amp_xml_empty_xml.expected, t/data/tv_extractinfo_en_amp_xml_empty_xml_empty_xml_clump_xml.expected, t/data/tv_extractinfo_en_clump_xml_amp_xml.expected, t/data/tv_extractinfo_en_dups_xml_amp_xml.expected, t/data/tv_extractinfo_en_empty_xml_amp_xml.expected, t/data/tv_grep_a_all_UTF8.expected, t/data/tv_grep_a_amp_xml.expected, t/data/tv_grep_a_amp_xml_amp_xml.expected, t/data/tv_grep_a_amp_xml_clump_xml.expected, t/data/tv_grep_a_amp_xml_dups_xml.expected, t/data/tv_grep_a_amp_xml_empty_xml.expected, t/data/tv_grep_a_amp_xml_empty_xml_empty_xml_clump_xml.expected, t/data/tv_grep_a_clump_xml_amp_xml.expected, t/data/tv_grep_a_dups_xml_amp_xml.expected, t/data/tv_grep_a_empty_xml_amp_xml.expected, t/data/tv_grep_on_after_2002_02_05_all_UTF8.expected, t/data/tv_grep_on_after_2002_02_05_amp_xml.expected, t/data/tv_grep_on_after_2002_02_05_amp_xml_amp_xml.expected, t/data/tv_grep_on_after_2002_02_05_amp_xml_clump_xml.expected, t/data/tv_grep_on_after_2002_02_05_amp_xml_dups_xml.expected, t/data/tv_grep_on_after_2002_02_05_amp_xml_empty_xml.expected, t/data/tv_grep_on_after_2002_02_05_amp_xml_empty_xml_empty_xml_clump_xml.expected, t/data/tv_grep_on_after_2002_02_05_clump_xml_amp_xml.expected, t/data/tv_grep_on_after_2002_02_05_dups_xml_amp_xml.expected, t/data/tv_grep_on_after_2002_02_05_empty_xml_amp_xml.expected, t/data/tv_sort_all_UTF8.expected, t/data/tv_sort_amp_xml.expected, t/data/tv_sort_amp_xml_amp_xml.expected, t/data/tv_sort_amp_xml_clump_xml.expected, t/data/tv_sort_amp_xml_dups_xml.expected, t/data/tv_sort_amp_xml_empty_xml.expected, t/data/tv_sort_amp_xml_empty_xml_empty_xml_clump_xml.expected, t/data/tv_sort_by_channel_all_UTF8.expected, t/data/tv_sort_by_channel_amp_xml.expected, t/data/tv_sort_by_channel_amp_xml_amp_xml.expected, t/data/tv_sort_by_channel_amp_xml_clump_xml.expected, t/data/tv_sort_by_channel_amp_xml_dups_xml.expected, t/data/tv_sort_by_channel_amp_xml_empty_xml.expected, t/data/tv_sort_by_channel_amp_xml_empty_xml_empty_xml_clump_xml.expected, t/data/tv_sort_by_channel_clump_xml_amp_xml.expected, t/data/tv_sort_by_channel_dups_xml_amp_xml.expected, t/data/tv_sort_by_channel_empty_xml_amp_xml.expected, t/data/tv_sort_clump_xml_amp_xml.expected, t/data/tv_sort_dups_xml_amp_xml.expected, t/data/tv_sort_empty_xml_amp_xml.expected, t/data/tv_to_latex_all_UTF8.expected, t/data/tv_to_latex_amp_xml.expected, t/data/tv_to_latex_amp_xml_amp_xml.expected, t/data/tv_to_latex_amp_xml_clump_xml.expected, t/data/tv_to_latex_amp_xml_dups_xml.expected, t/data/tv_to_latex_amp_xml_empty_xml.expected, t/data/tv_to_latex_amp_xml_empty_xml_empty_xml_clump_xml.expected, t/data/tv_to_latex_clump_xml_amp_xml.expected, t/data/tv_to_latex_dups_xml_amp_xml.expected, t/data/tv_to_latex_empty_xml_amp_xml.expected: When I changed the code to use XML::Twig's KeepEncoding I altered get_text() to clean up entities like & by hand, but forgot to do the same for attribute values. (Hopefully it will not be needed for attribute names, I don't know.) Extended the amp.xml test cases to check this bug. Made sure that in the callback interface, if a callback is undefined it won't be called (as the docs say). 2002-10-10 11:20 epaepa * grab/na/tv_grab_na: Cahnged the xmlDecl() call so that it doesn't output standalone="yes". I don't know what that does, but the other grabbers don't produce it so we might as well be consistent. 2002-10-10 11:07 epaepa * grab/uk_rt/channel_ids: BBC Knowledge is now called BBC4, although the XMLTV id is still knowledge.bbc.co.uk for now. 2002-10-10 11:05 epaepa * grab/uk_rt/tv_grab_uk_rt.in: Don't download categories unless $GET_CATEGORIES is on, which it isn't. When a page says 'no programmes available' then assume this is deliberate and don't print a warning. Warnings that are printed should have the URL prepended. 2002-10-10 10:44 epaepa * grab/uk_rt/channel_ids: Removing duplicate entry for RT channel 248. 2002-10-10 10:43 epaepa * grab/uk_rt/tv_grab_uk_rt.in: Errors in the config file should be warned about with name and line number, not 'FH' :-P. 2002-10-10 10:38 epaepa * Makefile.PL, README, doc/QuickStart, lib/XMLTV.pm.in: Preparing for 0.5.2 release. Just a bit more testing first. 2002-10-10 10:36 epaepa * grab/uk_rt/tv_grab_uk_rt.in: Use the extra display names for channels. 2002-10-10 10:15 epaepa * MANIFEST, Makefile.PL, grab/uk_rt/channel_ids, grab/uk_rt/tv_grab_uk_rt, grab/uk_rt/tv_grab_uk_rt.PL, grab/uk_rt/tv_grab_uk_rt.in: Moved tv_grab_uk_rt's lookup table of Radio Times channel ids into a separate file installed under share/ and read at runtime - exactly the same way tv_grab_uk does it. 2002-10-10 09:20 epaepa * grab/uk_rt/tv_grab_uk_rt: Added a pod manual page. The configure routine now has a stern warning (and no downloading happens unless you choose to proceed). The %channels hash is no longer a global variable. 2002-10-09 20:52 epaepa * filter/tv_extractinfo_en: A new category 'talk' is set automatically if a show mentions the word 'interviews'; it affects the handling of 'with X' (treated as presenter, not actor). 2002-10-09 20:44 epaepa * filter/tv_extractinfo_en: 'X introduces...' means X is a presenter. Removed meaningless phrase 'Coverage of'. 2002-10-09 20:14 epaepa * filter/tv_extractinfo_en: Change 'X round-up' to 'Xs'. Hey, it works for X = 'Headline'... 2002-10-09 18:24 epaepa * filter/tv_extractinfo_en: Handle a fourth kind of multipart programme: that which has times in the form 'from-to' followed by title and description. Remove the phrase 'round-up of' since it has no meaning. Eg 'round-up of news' becomes just 'news'. 2002-10-09 15:18 epaepa * filter/tv_extractinfo_en: special_multipart(): now handles two styles of multipart programme found in the Radio Times listings, as well as the Ananova style. 2002-10-09 13:46 epaepa * MANIFEST, lib/Clumps.pm, t/data/tv_extractinfo_en_all_UTF8.expected: I've more or less given up on fixing Clumps.pm; instead I've just removed the sanity check about the times of replacement programmes being within those of the old programme. It relates to cases where a programme in the middle of a clump is altered or replaced. I know what the Right Thing is here, but the Clumps.pm code is such a mess I can't be bothered to implement it now. Luckily all this clumps stuff will go out the window when the DTD is revised. 2002-10-09 13:13 epaepa * MANIFEST: Adding new test case to file list. 2002-10-09 13:11 epaepa * t/data/: clump_extract_1.xml, tv_cat_all_UTF8.expected, tv_cat_clump_extract_1_xml.expected, tv_cat_clump_extract_xml.expected, tv_extractinfo_en_clump_extract_xml.expected, tv_grep_a_all_UTF8.expected, tv_grep_a_clump_extract_1_xml.expected, tv_grep_a_clump_extract_xml.expected, tv_grep_category_b_clump_extract_1_xml.expected, tv_grep_category_b_clump_extract_xml.expected, tv_grep_category_e_and_title_f_clump_extract_1_xml.expected, tv_grep_category_e_and_title_f_clump_extract_xml.expected, tv_grep_category_g_or_title_h_all_UTF8.expected, tv_grep_category_g_or_title_h_clump_extract_1_xml.expected, tv_grep_category_g_or_title_h_clump_extract_xml.expected, tv_grep_channel_id_channel4_com_clump_extract_1_xml.expected, tv_grep_channel_id_channel4_com_clump_extract_xml.expected, tv_grep_channel_name_d_clump_extract_1_xml.expected, tv_grep_channel_name_d_clump_extract_xml.expected, tv_grep_channel_xyz_or_channel_b_amp_xml_amp_xml.expected, tv_grep_channel_xyz_or_channel_b_amp_xml_clump_xml.expected, tv_grep_channel_xyz_or_channel_b_amp_xml_dups_xml.expected, tv_grep_channel_xyz_or_channel_b_amp_xml_empty_xml.expected, tv_grep_channel_xyz_or_channel_b_clump_extract_1_xml.expected, tv_grep_channel_xyz_or_channel_b_clump_extract_xml.expected, tv_grep_channel_xyz_or_channel_b_clump_xml_amp_xml.expected, tv_grep_channel_xyz_or_channel_b_clump_xml_clump_xml.expected, tv_grep_channel_xyz_or_channel_b_clump_xml_dups_xml.expected, tv_grep_channel_xyz_or_channel_b_clump_xml_empty_xml.expected, tv_grep_channel_xyz_or_channel_b_dups_xml_amp_xml.expected, tv_grep_channel_xyz_or_channel_b_dups_xml_clump_xml.expected, tv_grep_channel_xyz_or_channel_b_dups_xml_dups_xml.expected, tv_grep_channel_xyz_or_channel_b_dups_xml_empty_xml.expected, tv_grep_channel_xyz_or_channel_b_empty_xml_amp_xml.expected, tv_grep_channel_xyz_or_channel_b_empty_xml_clump_xml.expected, tv_grep_channel_xyz_or_channel_b_empty_xml_dups_xml.expected, tv_grep_channel_xyz_or_channel_b_empty_xml_empty_xml.expected, tv_grep_channel_xyz_or_channel_b_x_whatever_xml.expected, tv_grep_eval_scalar_keys_5_clump_extract_1_xml.expected, tv_grep_eval_scalar_keys_5_clump_extract_xml.expected, tv_grep_i_category_i_title_h_clump_extract_1_xml.expected, tv_grep_i_category_i_title_h_clump_extract_xml.expected, tv_grep_i_category_i_title_j_clump_extract_1_xml.expected, tv_grep_i_category_i_title_j_clump_extract_xml.expected, tv_grep_i_last_chance_c_clump_extract_1_xml.expected, tv_grep_i_last_chance_c_clump_extract_xml.expected, tv_grep_new_clump_extract_1_xml.expected, tv_grep_new_clump_extract_xml.expected, tv_grep_on_after_2002_02_05_all_UTF8.expected, tv_grep_on_after_2002_02_05_clump_extract_1_xml.expected, tv_grep_on_after_2002_02_05_clump_extract_xml.expected, tv_grep_premiere_clump_extract_1_xml.expected, tv_grep_premiere_clump_extract_xml.expected, tv_sort_all_UTF8.expected, tv_sort_by_channel_all_UTF8.expected, tv_sort_by_channel_clump_extract_1_xml.expected, tv_sort_by_channel_clump_extract_xml.expected, tv_sort_clump_extract_1_xml.expected, tv_sort_clump_extract_xml.expected, tv_to_latex_all_UTF8.expected, tv_to_latex_clump_extract_1_xml.expected, tv_to_latex_clump_extract_xml.expected: Adding another test case for tv_extractinfo_en: this one causes it to crash. 2002-10-09 07:58 epaepa * lib/XMLTV.pm.in: Better warning message when input files (to be concatenated) have different encodings. 2002-10-09 07:52 epaepa * lib/Clumps.pm: Added some more trace messages. 2002-10-07 18:16 epaepa * lib/Clumps.pm: Improved a fatal error message - but I still don't know what is triggering it. 2002-10-07 18:08 epaepa * filter/tv_extractinfo_en: For a long time now there has been a nuke_from_rel() call when a programme has been fully processed, forgetting the information of which programmes it shares a clump with. The idea was that once a programme has been dealt with, we don't need to keep track of it any more. 'Probably not needed, but can't hurt' said the comment: tempting fate if ever that was done. No, we may need to modify a programme even once it has been fully munged, because if others in the clump have been deleted we will need to update its clumpidx. So it shouldn't be removed from the relation. Getting rid of that call initially caused a section of code in Clumps.pm (which had never been run before) to break. But it should all be fixed now, I hope. Also added some trace messages. 2002-10-07 18:05 epaepa * t/data/tv_extractinfo_en_all_UTF8.expected: This is the expected result from tv_extractinfo_en, now that I've stopped it crashing or printing warnings (fix to be committed). Confusingly, the programme 'News; Weather' is not split into two, although one day it might be. 2002-10-07 17:59 epaepa * lib/Clumps.pm: A while ago I came across a mystifying misbehaviour in perl, and I added all sorts of debugging and wrapper routines like set_stop_time() to track it down. I never did get to the bottom of the problem, but later on some of the code was moved out of tv_extractinfo_en into this module. A call to set_stop_time() was left in but until now, it has never been called! That was due to a bug in the programs using this module I think. Anyway, hoping that I won't be bitten again by this bug (or that if I will be, then a special routine set_stop_times() offers no protection), I have changed the call to just '$foo->{stop} = x'. 2002-10-07 17:55 epaepa * MANIFEST: Adding new test input to file list. (But the expected outputs have yet to be generated.) 2002-10-07 17:51 epaepa * t/data/: clump_extract.xml, tv_cat_all_UTF8.expected, tv_grep_channel_xyz_or_channel_b_all_UTF8.expected, tv_sort_all_UTF8.expected, tv_to_latex_all_UTF8.expected: This test case uncovers a bug in tv_extractinfo_en related to breaking up programmes which are part of a clump. I haven't yet fixed the bug, so the full test results aren't part of this checkin. 2002-10-07 17:43 epaepa * lib/Clumps.pm: It is morally better to use nested hashes rather than concatenating two strings into a hash key. 2002-10-04 20:07 epaepa * grab/uk_rt/tv_grab_uk_rt: Whoops, forgot that best_name() requires a _list_ of allowable languages. 2002-10-04 20:01 epaepa * filter/tv_extractinfo_en: Corrected programme length calculation (Date_Calc() returns an object you then have to turn into a number of seconds with Delta_Format()). Fixed a couple of undefined value warnings. Stopped using [:punct:] character class which isn't supported in perl 5.005. 2002-10-04 12:04 epaepa * lib/XMLTV.pm.in: Added an extra warning. 2002-10-04 12:01 epaepa * filter/tv_extractinfo_en: Try to grok 'Classic Austrailian western' and similar programme descriptions. Made small tweaks to full stops and spacing when pasting sentences together. 2002-10-04 01:53 rmeden * choose/tv_check/tv_check: if bug where a title of \d\d\d\d get's interpreted as a date. 2002-10-03 21:01 epaepa * grab/uk_rt/tv_grab_uk_rt: Changed the progress messages to print a human-readable channel name rather than the XMLTV id (which should normally be hidden from the user). Times in the output now conform to what the DTD says and are in the same format as tv_grab_uk. When a page fails to parse, just print the URL and not the whole content, because that gets excessive. 2002-10-03 20:13 epaepa * grab/uk_rt/tv_grab_uk_rt: Attempt to keep going when the basic HTML munging fails. 2002-10-03 19:57 epaepa * grab/uk_rt/tv_grab_uk_rt: I had removed most of the progress indicators from the code in the hope of replacing them with Term::ProgressBars like the other grabbers use. But I think that will take time to sort out (there are various routines calling other routines, the total number of pages to grab isn't known at the outset but is very large) so for the next release I've gone back to quick-and-dirty print STDERR '#'. 2002-10-03 19:39 epaepa * grab/uk_rt/tv_grab_uk_rt: Whoops, I committed the code with it set to grab yesterday's listings. Fixed. Made the grabbing more robust against download failures: where possible it will just skip the details for that programme. 2002-10-03 16:55 epaepa * grab/uk_rt/tv_grab_uk_rt: Dealt with the remaining bits of data that were thrown away; now almost everything on the site is included in the XMLTV output. There are three things which cannot be written out because the DTD doesn't have provision for them: the names of parts played by each actor, the link text and description for each URL, and a signed-for-the-deaf flag. These are now warned about just once per run, I hope to add them to the DTD when we overhaul it. 2002-10-02 19:21 epaepa * choose/tv_pick/tv_pick_cgi: Oops, in my attempt to make the code work without Lingua::EN::Numbers::Ordinate installed I think I broke it when that module is installed. This patch might fix the problem. 2002-10-02 18:12 epaepa * grab/uk_rt/tv_grab_uk_rt: Small refactoring. 2002-10-02 17:29 epaepa * grab/uk_rt/tv_grab_uk_rt: Improvements to parsing; now it understands links to related websites, and follow-on programmes. 2002-10-02 10:02 epaepa * grab/uk_rt/tv_grab_uk_rt: get_programme_details(): instead of munging the HTML into a big string with | characters and using regexps on it, split the string into a list of 'bits' and process each individually. This has made some things like sub-title and description more robust, previously they might not get noticed. I've also added warning messages for when some information is discarded or ignored; each of these represents a to-do item. 2002-10-02 02:40 rmeden * choose/tv_check/tv_check: added Length field to myreplaytv fetch 2002-10-01 21:12 epaepa * grab/uk_rt/tv_grab_uk_rt: Mostly cosmetic changes to HTML 'parsing'. 2002-10-01 14:54 epaepa * grab/uk_rt/tv_grab_uk_rt: Added a --configure option based on that of tv_grab_uk. There are no regions, packages or channel types (radio vs television), so for now you just have to type in the names of channels. It's likely the Radio Times site does have some type information associated with each channel which we could use; alternatively there could be some common table of channel information between this grabber and tv_grab_uk. In fact, common / centralized configuration of grabbers is definitely something to look into. Eliminated some global variables, and changed some routines to pass around Date::Manip objects rather than weird time strings. Changed some warning messages which were wrong before, and improved the robustness of get_available_dates()'s HTML parsing. Added usage message and --days option to go along with --configure: but not all of the grabber options are fully working yet. --share is completely pointless at the moment since there are no data files used by this grabber, but I hope to move the big channel data hash into a share/ data file at some point. Reduced occurrences of the magic string 'radiotimes.beeb.com', etc. Fixed <tv> element credits. 2002-10-01 14:43 epaepa * lib/Clumps.pm: More informative warning message. 2002-10-01 14:40 epaepa * filter/tv_grep.in: I had misunderstood the /o flag for regular expressions. If you create a closure which captures $foo, and do a regexp /$foo/o, then it really will be just one value of $foo throughout the whole program, even if different closures had captured different values. This caused a bug where you couldn't give the same programme content test twice with different regexps. 2002-10-01 14:38 epaepa * MANIFEST: Adding new test case files to MANIFEST. 2002-10-01 14:36 epaepa * t/: test_filters.t, data/tv_grep_channel_xyz_or_channel_b_all_UTF8.expected, data/tv_grep_channel_xyz_or_channel_b_amp_xml.expected, data/tv_grep_channel_xyz_or_channel_b_amp_xml_empty_xml_empty_xml_clump_xml.expected, data/tv_grep_channel_xyz_or_channel_b_attrs_xml.expected, data/tv_grep_channel_xyz_or_channel_b_clump_xml.expected, data/tv_grep_channel_xyz_or_channel_b_dups_xml.expected, data/tv_grep_channel_xyz_or_channel_b_empty_xml.expected, data/tv_grep_channel_xyz_or_channel_b_length_xml.expected, data/tv_grep_channel_xyz_or_channel_b_overlap_xml.expected, data/tv_grep_channel_xyz_or_channel_b_simple_xml.expected, data/tv_grep_channel_xyz_or_channel_b_simple_xml_x_whatever_xml.expected, data/tv_grep_channel_xyz_or_channel_b_sort_xml.expected, data/tv_grep_channel_xyz_or_channel_b_test_empty_xml.expected, data/tv_grep_channel_xyz_or_channel_b_test_livre_xml.expected, data/tv_grep_channel_xyz_or_channel_b_test_xml.expected, data/tv_grep_channel_xyz_or_channel_b_whitespace_xml.expected, data/tv_grep_channel_xyz_or_channel_b_x-whatever_xml.expected: Found a bug in tv_grep with specifying --channel twice (or any programme content test twice, it turns out); here is a test case. 2002-09-30 12:19 epaepa * lib/XMLTV.pm.in: Refactored the 'unknown key foo in bar hash' warnings into the routine warn_unknown_keys(). 2002-09-30 12:17 epaepa * Makefile.PL: Now that tv_grab_uk_rt no longer has any unusual dependencies, it can be installed by default and without prompting. Although I really ought to do something more consistent between parts which are prompted for and parts which aren't. 2002-09-30 11:46 epaepa * grab/uk_rt/tv_grab_uk_rt: Made sure the XML is valid by cleaning up ('demoronizing') a couple of non-Latin-1 characters which were being carried through from the HTML pages. Removed retry-fetching, I may add it back later if it proves to be needed. But it interferes with caching which is a nuisance for development. Changed non-standard keys in hashes to begin with an underscore, so XMLTV::Writer will silently skip them rather than complaining. Added some more error checking, in particular a check that regular expression matches actually succeed before we go off and use captured strings. Strip leading and trailing whitespace from titles and descriptions. Rejigged the channel handling a little; now we try to use XMLTV ids internally and only convert them to Radio Times ids when contacting the site. Also, only the channels which are actually used are written out as <channel> elements, and with the correct id. Still some more to do here, in particular a real configuration stage. Added prototypes for all subroutines. Cosmetic formatting, indentation and code style changes. Removed use of Time::ParseDate, now we use Date::Manip exclusively for that stuff. 2002-09-29 18:25 epaepa * MANIFEST, Makefile.PL: Added tv_grab_uk_rt to the makefile machinery. 2002-09-29 18:24 epaepa * t/parallel_test: Sorting is necessary to compare the output of tv_grab_uk from the 0.5 release with that in 0.5.1. The order of the XML output has changed. (Also it's necessary to turn off $KEEP_ENCODING in XMLTV.pm, if you want to get the same output from the grabber.) I'm pleased to report that with the exception of cases which crashed the old version of the grabber, the output of old and new is unchanged up to sorting. BTW, if anyone else wants to know how to use this script (like to check that tv_grab_na still works after some major change to the code), do ask. I plan to start using it for tv_grab_sn and tv_grab_uk_rt as well. 2002-09-29 18:09 epaepa * grab/uk_rt/tv_grab_uk_rt: Made warnings-clean, and turned the commented-out category-fetching code into a configurable option (though I haven't yet tested it). 2002-09-29 18:08 epaepa * grab/uk_rt/tv_grab_uk_rt: Adding Jerome Benedict Hettich's Radio Times grabber, which was written as part of a group project at the Department of Computing, Imperial College - another case of someone in the same department using XMLTV without me knowing! He sent it to me a while ago but I never got around to adding it. At the moment it does a pretty good job of fetching data from the Radio Times site - their listings are very detailed, particularly in giving the cast of each programme. And they stretch to two weeks whereas Ananova's go to one. I believe that the RT data is 'completely unrelated' to the Press Association feed which Ananova uses, but I'll investigate later whether there are similarities. 2002-09-29 04:23 rmeden * choose/tv_check/tv_check: MyReplayTV fetches now retains options set with --configure MyReplayTV warning about not being able to guess the show day improved MyReplayTV uses old day if show not on the schedule this week Title-only header now includes all set fields so you can see the options. 2002-09-28 22:49 epaepa * filter/tv_extractinfo_en: Found a mysterious bug and added some more error handling and trace messages in an attempt to track it down. Then for some reason renaming one variable @progs to @pps made the bug go away again. 2002-09-28 21:15 epaepa * filter/tv_extractinfo_en: Adding some more function prototypes. 2002-09-28 14:20 epaepa * Uninstall.pm: Clearer error message. 2002-09-28 12:38 epaepa * filter/tv_grep.in, lib/XMLTV.pm.in: I realized that the handling of attributes in XMLTV.pm was very buggy. Some like 'showview' had never worked! Now the list of attributes is centralized and returned as part of the output of list_programme_keys() - so that routine really does tell you all the keys that might be in a programme hash. The change to list_programme_keys() means tv_grep has sprouted a lot of new tests, including a somewhat-redundant --channel. 2002-09-28 12:31 epaepa * MANIFEST: Added attrs.xml and its test cases to the file listing. 2002-09-28 12:02 epaepa * t/data/: tv_cat_all_UTF8.expected, tv_extractinfo_en_all_UTF8.expected, tv_grep_a_all_UTF8.expected, tv_grep_eval_scalar_keys_5_all_UTF8.expected, tv_sort_all_UTF8.expected, tv_sort_by_channel_all_UTF8.expected, tv_to_latex_all_UTF8.expected: The new test input attrs.xml affects the 'all_UTF8' tests too. 2002-09-28 12:02 epaepa * t/data/: tv_to_latex_amp_xml_dups_xml.expected, tv_to_latex_clump_xml_dups_xml.expected: A couple of test cases I forgot to commit with the earlier tv_to_latex change. 2002-09-28 12:00 epaepa * t/data/: attrs.xml, tv_cat_attrs_xml.expected, tv_extractinfo_en_attrs_xml.expected, tv_grep_a_attrs_xml.expected, tv_grep_category_b_attrs_xml.expected, tv_grep_category_e_and_title_f_attrs_xml.expected, tv_grep_category_g_or_title_h_attrs_xml.expected, tv_grep_channel_id_channel4_com_attrs_xml.expected, tv_grep_channel_name_d_attrs_xml.expected, tv_grep_eval_scalar_keys_5_attrs_xml.expected, tv_grep_i_category_i_title_h_attrs_xml.expected, tv_grep_i_category_i_title_j_attrs_xml.expected, tv_grep_i_last_chance_c_attrs_xml.expected, tv_grep_new_attrs_xml.expected, tv_grep_on_after_2002_02_05_attrs_xml.expected, tv_grep_premiere_attrs_xml.expected, tv_sort_attrs_xml.expected, tv_sort_by_channel_attrs_xml.expected, tv_to_latex_attrs_xml.expected: New test case to check that all attributes of <programme> are read and written correctly. 2002-09-28 11:53 epaepa * t/test_filters.t: Previously testing would rely on particular filenames appearing first alphabetically. But of course this completely breaks when you add new filenames in the middle. Rather than rename things to 00amp.xml, etc, I have gone for the only slightly smaller kludge of reordering files by hand in this script. Should fix properly some time. Maybe a separate configuration file should list the tests to run. 2002-09-28 11:44 epaepa * filter/tv_to_latex, t/data/tv_to_latex_dups_xml.expected, t/data/tv_to_latex_dups_xml_amp_xml.expected, t/data/tv_to_latex_dups_xml_clump_xml.expected, t/data/tv_to_latex_dups_xml_dups_xml.expected, t/data/tv_to_latex_dups_xml_empty_xml.expected, t/data/tv_to_latex_empty_xml_dups_xml.expected: Notice a timezone change even when only the start time of a programme is given. 2002-09-28 11:39 epaepa * xmltv.dtd: Spelling change. 2002-09-25 01:46 jveldhuis * grab/na/: ZapListings.pm, tv_grab_na: Animated became a category. 'Live', 'Call-in', 'If Necessary' and 'Subject to Blackout' are appended in () to the end of the program description if one exists, otherwise they're lost. HDTV still needs ironing out. 2002-09-24 20:24 rmeden * choose/tv_check/tv_check: Fix serious bug where title-scan never matches unless a device is defined. (It skips it thinking the episode is already scheduled to record) 2002-09-23 15:19 epaepa * MANIFEST: Fixing cut-and-paste error. 2002-09-23 15:17 epaepa * MANIFEST, Makefile.PL: Adding Stefan Görling's grabber for Sweden and Norway (with a few fixes). I will probably give him CVS access to upload new versions, if necessary. 2002-09-23 15:14 epaepa * MANIFEST: Adding the data files for the new test cases to the MANIFEST. 2002-09-23 13:54 epaepa * t/: test_filters.t, data/tv_cat_all_UTF8.expected, data/tv_cat_amp_xml_amp_xml.expected, data/tv_cat_amp_xml_clump_xml.expected, data/tv_cat_amp_xml_dups_xml.expected, data/tv_cat_amp_xml_empty_xml.expected, data/tv_cat_amp_xml_empty_xml_empty_xml_clump_xml.expected, data/tv_cat_clump_xml_amp_xml.expected, data/tv_cat_clump_xml_clump_xml.expected, data/tv_cat_clump_xml_dups_xml.expected, data/tv_cat_clump_xml_empty_xml.expected, data/tv_cat_dups_xml_amp_xml.expected, data/tv_cat_dups_xml_clump_xml.expected, data/tv_cat_dups_xml_dups_xml.expected, data/tv_cat_dups_xml_empty_xml.expected, data/tv_cat_empty_xml_amp_xml.expected, data/tv_cat_empty_xml_clump_xml.expected, data/tv_cat_empty_xml_dups_xml.expected, data/tv_cat_empty_xml_empty_xml.expected, data/tv_cat_simple_xml_x_whatever_xml.expected, data/tv_extractinfo_en_all_UTF8.expected, data/tv_extractinfo_en_amp_xml_amp_xml.expected, data/tv_extractinfo_en_amp_xml_clump_xml.expected, data/tv_extractinfo_en_amp_xml_dups_xml.expected, data/tv_extractinfo_en_amp_xml_empty_xml.expected, data/tv_extractinfo_en_amp_xml_empty_xml_empty_xml_clump_xml.expected, data/tv_extractinfo_en_clump_xml_amp_xml.expected, data/tv_extractinfo_en_clump_xml_clump_xml.expected, data/tv_extractinfo_en_clump_xml_dups_xml.expected, data/tv_extractinfo_en_clump_xml_empty_xml.expected, data/tv_extractinfo_en_dups_xml_amp_xml.expected, data/tv_extractinfo_en_dups_xml_clump_xml.expected, data/tv_extractinfo_en_dups_xml_dups_xml.expected, data/tv_extractinfo_en_dups_xml_empty_xml.expected, data/tv_extractinfo_en_empty_xml_amp_xml.expected, data/tv_extractinfo_en_empty_xml_clump_xml.expected, data/tv_extractinfo_en_empty_xml_dups_xml.expected, data/tv_extractinfo_en_empty_xml_empty_xml.expected, data/tv_extractinfo_en_simple_xml_x_whatever_xml.expected, data/tv_grep_a_all_UTF8.expected, data/tv_grep_a_amp_xml_amp_xml.expected, data/tv_grep_a_amp_xml_clump_xml.expected, data/tv_grep_a_amp_xml_dups_xml.expected, data/tv_grep_a_amp_xml_empty_xml.expected, data/tv_grep_a_amp_xml_empty_xml_empty_xml_clump_xml.expected, data/tv_grep_a_clump_xml_amp_xml.expected, data/tv_grep_a_clump_xml_clump_xml.expected, data/tv_grep_a_clump_xml_dups_xml.expected, data/tv_grep_a_clump_xml_empty_xml.expected, data/tv_grep_a_dups_xml_amp_xml.expected, data/tv_grep_a_dups_xml_clump_xml.expected, data/tv_grep_a_dups_xml_dups_xml.expected, data/tv_grep_a_dups_xml_empty_xml.expected, data/tv_grep_a_empty_xml_amp_xml.expected, data/tv_grep_a_empty_xml_clump_xml.expected, data/tv_grep_a_empty_xml_dups_xml.expected, data/tv_grep_a_empty_xml_empty_xml.expected, data/tv_grep_a_simple_xml_x_whatever_xml.expected, data/tv_grep_category_b_all_UTF8.expected, data/tv_grep_category_b_amp_xml_amp_xml.expected, data/tv_grep_category_b_amp_xml_clump_xml.expected, data/tv_grep_category_b_amp_xml_dups_xml.expected, data/tv_grep_category_b_amp_xml_empty_xml.expected, data/tv_grep_category_b_amp_xml_empty_xml_empty_xml_clump_xml.expected, data/tv_grep_category_b_clump_xml_amp_xml.expected, data/tv_grep_category_b_clump_xml_clump_xml.expected, data/tv_grep_category_b_clump_xml_dups_xml.expected, data/tv_grep_category_b_clump_xml_empty_xml.expected, data/tv_grep_category_b_dups_xml_amp_xml.expected, data/tv_grep_category_b_dups_xml_clump_xml.expected, data/tv_grep_category_b_dups_xml_dups_xml.expected, data/tv_grep_category_b_dups_xml_empty_xml.expected, data/tv_grep_category_b_empty_xml_amp_xml.expected, data/tv_grep_category_b_empty_xml_clump_xml.expected, data/tv_grep_category_b_empty_xml_dups_xml.expected, data/tv_grep_category_b_empty_xml_empty_xml.expected, data/tv_grep_category_b_simple_xml_x_whatever_xml.expected, data/tv_grep_category_e_and_title_f_all_UTF8.expected, data/tv_grep_category_e_and_title_f_amp_xml_amp_xml.expected, data/tv_grep_category_e_and_title_f_amp_xml_clump_xml.expected, data/tv_grep_category_e_and_title_f_amp_xml_dups_xml.expected, data/tv_grep_category_e_and_title_f_amp_xml_empty_xml.expected, data/tv_grep_category_e_and_title_f_amp_xml_empty_xml_empty_xml_clump_xml.expected, data/tv_grep_category_e_and_title_f_clump_xml_amp_xml.expected, data/tv_grep_category_e_and_title_f_clump_xml_clump_xml.expected, data/tv_grep_category_e_and_title_f_clump_xml_dups_xml.expected, data/tv_grep_category_e_and_title_f_clump_xml_empty_xml.expected, data/tv_grep_category_e_and_title_f_dups_xml_amp_xml.expected, data/tv_grep_category_e_and_title_f_dups_xml_clump_xml.expected, data/tv_grep_category_e_and_title_f_dups_xml_dups_xml.expected, data/tv_grep_category_e_and_title_f_dups_xml_empty_xml.expected, data/tv_grep_category_e_and_title_f_empty_xml_amp_xml.expected, data/tv_grep_category_e_and_title_f_empty_xml_clump_xml.expected, data/tv_grep_category_e_and_title_f_empty_xml_dups_xml.expected, data/tv_grep_category_e_and_title_f_empty_xml_empty_xml.expected, data/tv_grep_category_e_and_title_f_simple_xml_x_whatever_xml.expected, data/tv_grep_category_g_or_title_h_all_UTF8.expected, data/tv_grep_category_g_or_title_h_amp_xml_amp_xml.expected, data/tv_grep_category_g_or_title_h_amp_xml_clump_xml.expected, data/tv_grep_category_g_or_title_h_amp_xml_dups_xml.expected, data/tv_grep_category_g_or_title_h_amp_xml_empty_xml.expected, data/tv_grep_category_g_or_title_h_amp_xml_empty_xml_empty_xml_clump_xml.expected, data/tv_grep_category_g_or_title_h_clump_xml_amp_xml.expected, data/tv_grep_category_g_or_title_h_clump_xml_clump_xml.expected, data/tv_grep_category_g_or_title_h_clump_xml_dups_xml.expected, data/tv_grep_category_g_or_title_h_clump_xml_empty_xml.expected, data/tv_grep_category_g_or_title_h_dups_xml_amp_xml.expected, data/tv_grep_category_g_or_title_h_dups_xml_clump_xml.expected, data/tv_grep_category_g_or_title_h_dups_xml_dups_xml.expected, data/tv_grep_category_g_or_title_h_dups_xml_empty_xml.expected, data/tv_grep_category_g_or_title_h_empty_xml_amp_xml.expected, data/tv_grep_category_g_or_title_h_empty_xml_clump_xml.expected, data/tv_grep_category_g_or_title_h_empty_xml_dups_xml.expected, data/tv_grep_category_g_or_title_h_empty_xml_empty_xml.expected, data/tv_grep_category_g_or_title_h_simple_xml_x_whatever_xml.expected, data/tv_grep_channel_id_channel4_com_all_UTF8.expected, data/tv_grep_channel_id_channel4_com_amp_xml_amp_xml.expected, data/tv_grep_channel_id_channel4_com_amp_xml_clump_xml.expected, data/tv_grep_channel_id_channel4_com_amp_xml_dups_xml.expected, data/tv_grep_channel_id_channel4_com_amp_xml_empty_xml.expected, data/tv_grep_channel_id_channel4_com_amp_xml_empty_xml_empty_xml_clump_xml.expected, data/tv_grep_channel_id_channel4_com_clump_xml_amp_xml.expected, data/tv_grep_channel_id_channel4_com_clump_xml_clump_xml.expected, data/tv_grep_channel_id_channel4_com_clump_xml_dups_xml.expected, data/tv_grep_channel_id_channel4_com_clump_xml_empty_xml.expected, data/tv_grep_channel_id_channel4_com_dups_xml_amp_xml.expected, data/tv_grep_channel_id_channel4_com_dups_xml_clump_xml.expected, data/tv_grep_channel_id_channel4_com_dups_xml_dups_xml.expected, data/tv_grep_channel_id_channel4_com_dups_xml_empty_xml.expected, data/tv_grep_channel_id_channel4_com_empty_xml_amp_xml.expected, data/tv_grep_channel_id_channel4_com_empty_xml_clump_xml.expected, data/tv_grep_channel_id_channel4_com_empty_xml_dups_xml.expected, data/tv_grep_channel_id_channel4_com_empty_xml_empty_xml.expected, data/tv_grep_channel_id_channel4_com_simple_xml_x_whatever_xml.expected, data/tv_grep_channel_name_d_all_UTF8.expected, data/tv_grep_channel_name_d_amp_xml_amp_xml.expected, data/tv_grep_channel_name_d_amp_xml_clump_xml.expected, data/tv_grep_channel_name_d_amp_xml_dups_xml.expected, data/tv_grep_channel_name_d_amp_xml_empty_xml.expected, data/tv_grep_channel_name_d_amp_xml_empty_xml_empty_xml_clump_xml.expected, data/tv_grep_channel_name_d_clump_xml_amp_xml.expected, data/tv_grep_channel_name_d_clump_xml_clump_xml.expected, data/tv_grep_channel_name_d_clump_xml_dups_xml.expected, data/tv_grep_channel_name_d_clump_xml_empty_xml.expected, data/tv_grep_channel_name_d_dups_xml_amp_xml.expected, data/tv_grep_channel_name_d_dups_xml_clump_xml.expected, data/tv_grep_channel_name_d_dups_xml_dups_xml.expected, data/tv_grep_channel_name_d_dups_xml_empty_xml.expected, data/tv_grep_channel_name_d_empty_xml_amp_xml.expected, data/tv_grep_channel_name_d_empty_xml_clump_xml.expected, data/tv_grep_channel_name_d_empty_xml_dups_xml.expected, data/tv_grep_channel_name_d_empty_xml_empty_xml.expected, data/tv_grep_channel_name_d_simple_xml_x_whatever_xml.expected, data/tv_grep_eval_scalar_keys_5_all_UTF8.expected, data/tv_grep_eval_scalar_keys_5_amp_xml_amp_xml.expected, data/tv_grep_eval_scalar_keys_5_amp_xml_clump_xml.expected, data/tv_grep_eval_scalar_keys_5_amp_xml_dups_xml.expected, data/tv_grep_eval_scalar_keys_5_amp_xml_empty_xml.expected, data/tv_grep_eval_scalar_keys_5_amp_xml_empty_xml_empty_xml_clump_xml.expected, data/tv_grep_eval_scalar_keys_5_clump_xml_amp_xml.expected, data/tv_grep_eval_scalar_keys_5_clump_xml_clump_xml.expected, data/tv_grep_eval_scalar_keys_5_clump_xml_dups_xml.expected, data/tv_grep_eval_scalar_keys_5_clump_xml_empty_xml.expected, data/tv_grep_eval_scalar_keys_5_dups_xml_amp_xml.expected, data/tv_grep_eval_scalar_keys_5_dups_xml_clump_xml.expected, data/tv_grep_eval_scalar_keys_5_dups_xml_dups_xml.expected, data/tv_grep_eval_scalar_keys_5_dups_xml_empty_xml.expected, data/tv_grep_eval_scalar_keys_5_empty_xml_amp_xml.expected, data/tv_grep_eval_scalar_keys_5_empty_xml_clump_xml.expected, data/tv_grep_eval_scalar_keys_5_empty_xml_dups_xml.expected, data/tv_grep_eval_scalar_keys_5_empty_xml_empty_xml.expected, data/tv_grep_eval_scalar_keys_5_simple_xml_x_whatever_xml.expected, data/tv_grep_i_category_i_title_h_all_UTF8.expected, data/tv_grep_i_category_i_title_h_amp_xml_amp_xml.expected, data/tv_grep_i_category_i_title_h_amp_xml_clump_xml.expected, data/tv_grep_i_category_i_title_h_amp_xml_dups_xml.expected, data/tv_grep_i_category_i_title_h_amp_xml_empty_xml.expected, data/tv_grep_i_category_i_title_h_amp_xml_empty_xml_empty_xml_clump_xml.expected, data/tv_grep_i_category_i_title_h_clump_xml_amp_xml.expected, data/tv_grep_i_category_i_title_h_clump_xml_clump_xml.expected, data/tv_grep_i_category_i_title_h_clump_xml_dups_xml.expected, data/tv_grep_i_category_i_title_h_clump_xml_empty_xml.expected, data/tv_grep_i_category_i_title_h_dups_xml_amp_xml.expected, data/tv_grep_i_category_i_title_h_dups_xml_clump_xml.expected, data/tv_grep_i_category_i_title_h_dups_xml_dups_xml.expected, data/tv_grep_i_category_i_title_h_dups_xml_empty_xml.expected, data/tv_grep_i_category_i_title_h_empty_xml_amp_xml.expected, data/tv_grep_i_category_i_title_h_empty_xml_clump_xml.expected, data/tv_grep_i_category_i_title_h_empty_xml_dups_xml.expected, data/tv_grep_i_category_i_title_h_empty_xml_empty_xml.expected, data/tv_grep_i_category_i_title_h_simple_xml_x_whatever_xml.expected, data/tv_grep_i_category_i_title_j_all_UTF8.expected, data/tv_grep_i_category_i_title_j_amp_xml_amp_xml.expected, data/tv_grep_i_category_i_title_j_amp_xml_clump_xml.expected, data/tv_grep_i_category_i_title_j_amp_xml_dups_xml.expected, data/tv_grep_i_category_i_title_j_amp_xml_empty_xml.expected, data/tv_grep_i_category_i_title_j_amp_xml_empty_xml_empty_xml_clump_xml.expected, data/tv_grep_i_category_i_title_j_clump_xml_amp_xml.expected, data/tv_grep_i_category_i_title_j_clump_xml_clump_xml.expected, data/tv_grep_i_category_i_title_j_clump_xml_dups_xml.expected, data/tv_grep_i_category_i_title_j_clump_xml_empty_xml.expected, data/tv_grep_i_category_i_title_j_dups_xml_amp_xml.expected, data/tv_grep_i_category_i_title_j_dups_xml_clump_xml.expected, data/tv_grep_i_category_i_title_j_dups_xml_dups_xml.expected, data/tv_grep_i_category_i_title_j_dups_xml_empty_xml.expected, data/tv_grep_i_category_i_title_j_empty_xml_amp_xml.expected, data/tv_grep_i_category_i_title_j_empty_xml_clump_xml.expected, data/tv_grep_i_category_i_title_j_empty_xml_dups_xml.expected, data/tv_grep_i_category_i_title_j_empty_xml_empty_xml.expected, data/tv_grep_i_category_i_title_j_simple_xml_x_whatever_xml.expected, data/tv_grep_i_last_chance_c_all_UTF8.expected, data/tv_grep_i_last_chance_c_amp_xml_amp_xml.expected, data/tv_grep_i_last_chance_c_amp_xml_clump_xml.expected, data/tv_grep_i_last_chance_c_amp_xml_dups_xml.expected, data/tv_grep_i_last_chance_c_amp_xml_empty_xml.expected, data/tv_grep_i_last_chance_c_amp_xml_empty_xml_empty_xml_clump_xml.expected, data/tv_grep_i_last_chance_c_clump_xml_amp_xml.expected, data/tv_grep_i_last_chance_c_clump_xml_clump_xml.expected, data/tv_grep_i_last_chance_c_clump_xml_dups_xml.expected, data/tv_grep_i_last_chance_c_clump_xml_empty_xml.expected, data/tv_grep_i_last_chance_c_dups_xml_amp_xml.expected, data/tv_grep_i_last_chance_c_dups_xml_clump_xml.expected, data/tv_grep_i_last_chance_c_dups_xml_dups_xml.expected, data/tv_grep_i_last_chance_c_dups_xml_empty_xml.expected, data/tv_grep_i_last_chance_c_empty_xml_amp_xml.expected, data/tv_grep_i_last_chance_c_empty_xml_clump_xml.expected, data/tv_grep_i_last_chance_c_empty_xml_dups_xml.expected, data/tv_grep_i_last_chance_c_empty_xml_empty_xml.expected, data/tv_grep_i_last_chance_c_simple_xml_x_whatever_xml.expected, data/tv_grep_new_all_UTF8.expected, data/tv_grep_new_amp_xml_amp_xml.expected, data/tv_grep_new_amp_xml_clump_xml.expected, data/tv_grep_new_amp_xml_dups_xml.expected, data/tv_grep_new_amp_xml_empty_xml.expected, data/tv_grep_new_amp_xml_empty_xml_empty_xml_clump_xml.expected, data/tv_grep_new_clump_xml_amp_xml.expected, data/tv_grep_new_clump_xml_clump_xml.expected, data/tv_grep_new_clump_xml_dups_xml.expected, data/tv_grep_new_clump_xml_empty_xml.expected, data/tv_grep_new_dups_xml_amp_xml.expected, data/tv_grep_new_dups_xml_clump_xml.expected, data/tv_grep_new_dups_xml_dups_xml.expected, data/tv_grep_new_dups_xml_empty_xml.expected, data/tv_grep_new_empty_xml_amp_xml.expected, data/tv_grep_new_empty_xml_clump_xml.expected, data/tv_grep_new_empty_xml_dups_xml.expected, data/tv_grep_new_empty_xml_empty_xml.expected, data/tv_grep_new_simple_xml_x_whatever_xml.expected, data/tv_grep_on_after_2002_02_05_all_UTF8.expected, data/tv_grep_on_after_2002_02_05_amp_xml_amp_xml.expected, data/tv_grep_on_after_2002_02_05_amp_xml_clump_xml.expected, data/tv_grep_on_after_2002_02_05_amp_xml_dups_xml.expected, data/tv_grep_on_after_2002_02_05_amp_xml_empty_xml.expected, data/tv_grep_on_after_2002_02_05_amp_xml_empty_xml_empty_xml_clump_xml.expected, data/tv_grep_on_after_2002_02_05_clump_xml_amp_xml.expected, data/tv_grep_on_after_2002_02_05_clump_xml_clump_xml.expected, data/tv_grep_on_after_2002_02_05_clump_xml_dups_xml.expected, data/tv_grep_on_after_2002_02_05_clump_xml_empty_xml.expected, data/tv_grep_on_after_2002_02_05_dups_xml_amp_xml.expected, data/tv_grep_on_after_2002_02_05_dups_xml_clump_xml.expected, data/tv_grep_on_after_2002_02_05_dups_xml_dups_xml.expected, data/tv_grep_on_after_2002_02_05_dups_xml_empty_xml.expected, data/tv_grep_on_after_2002_02_05_empty_xml_amp_xml.expected, data/tv_grep_on_after_2002_02_05_empty_xml_clump_xml.expected, data/tv_grep_on_after_2002_02_05_empty_xml_dups_xml.expected, data/tv_grep_on_after_2002_02_05_empty_xml_empty_xml.expected, data/tv_grep_on_after_2002_02_05_simple_xml_x_whatever_xml.expected, data/tv_grep_premiere_all_UTF8.expected, data/tv_grep_premiere_amp_xml_amp_xml.expected, data/tv_grep_premiere_amp_xml_clump_xml.expected, data/tv_grep_premiere_amp_xml_dups_xml.expected, data/tv_grep_premiere_amp_xml_empty_xml.expected, data/tv_grep_premiere_amp_xml_empty_xml_empty_xml_clump_xml.expected, data/tv_grep_premiere_clump_xml_amp_xml.expected, data/tv_grep_premiere_clump_xml_clump_xml.expected, data/tv_grep_premiere_clump_xml_dups_xml.expected, data/tv_grep_premiere_clump_xml_empty_xml.expected, data/tv_grep_premiere_dups_xml_amp_xml.expected, data/tv_grep_premiere_dups_xml_clump_xml.expected, data/tv_grep_premiere_dups_xml_dups_xml.expected, data/tv_grep_premiere_dups_xml_empty_xml.expected, data/tv_grep_premiere_empty_xml_amp_xml.expected, data/tv_grep_premiere_empty_xml_clump_xml.expected, data/tv_grep_premiere_empty_xml_dups_xml.expected, data/tv_grep_premiere_empty_xml_empty_xml.expected, data/tv_grep_premiere_simple_xml_x_whatever_xml.expected, data/tv_sort_all_UTF8.expected, data/tv_sort_amp_xml_amp_xml.expected, data/tv_sort_amp_xml_clump_xml.expected, data/tv_sort_amp_xml_dups_xml.expected, data/tv_sort_amp_xml_empty_xml.expected, data/tv_sort_amp_xml_empty_xml_empty_xml_clump_xml.expected, data/tv_sort_by_channel_all_UTF8.expected, data/tv_sort_by_channel_amp_xml_amp_xml.expected, data/tv_sort_by_channel_amp_xml_clump_xml.expected, data/tv_sort_by_channel_amp_xml_dups_xml.expected, data/tv_sort_by_channel_amp_xml_empty_xml.expected, data/tv_sort_by_channel_amp_xml_empty_xml_empty_xml_clump_xml.expected, data/tv_sort_by_channel_clump_xml_amp_xml.expected, data/tv_sort_by_channel_clump_xml_clump_xml.expected, data/tv_sort_by_channel_clump_xml_dups_xml.expected, data/tv_sort_by_channel_clump_xml_empty_xml.expected, data/tv_sort_by_channel_dups_xml_amp_xml.expected, data/tv_sort_by_channel_dups_xml_clump_xml.expected, data/tv_sort_by_channel_dups_xml_dups_xml.expected, data/tv_sort_by_channel_dups_xml_empty_xml.expected, data/tv_sort_by_channel_empty_xml_amp_xml.expected, data/tv_sort_by_channel_empty_xml_clump_xml.expected, data/tv_sort_by_channel_empty_xml_dups_xml.expected, data/tv_sort_by_channel_empty_xml_empty_xml.expected, data/tv_sort_by_channel_simple_xml_x_whatever_xml.expected, data/tv_sort_clump_xml_amp_xml.expected, data/tv_sort_clump_xml_clump_xml.expected, data/tv_sort_clump_xml_dups_xml.expected, data/tv_sort_clump_xml_empty_xml.expected, data/tv_sort_dups_xml_amp_xml.expected, data/tv_sort_dups_xml_clump_xml.expected, data/tv_sort_dups_xml_dups_xml.expected, data/tv_sort_dups_xml_empty_xml.expected, data/tv_sort_empty_xml_amp_xml.expected, data/tv_sort_empty_xml_clump_xml.expected, data/tv_sort_empty_xml_dups_xml.expected, data/tv_sort_empty_xml_empty_xml.expected, data/tv_sort_simple_xml_x_whatever_xml.expected, data/tv_to_latex_all_UTF8.expected, data/tv_to_latex_amp_xml_amp_xml.expected, data/tv_to_latex_amp_xml_clump_xml.expected, data/tv_to_latex_amp_xml_dups_xml.expected, data/tv_to_latex_amp_xml_empty_xml.expected, data/tv_to_latex_amp_xml_empty_xml_empty_xml_clump_xml.expected, data/tv_to_latex_clump_xml_amp_xml.expected, data/tv_to_latex_clump_xml_clump_xml.expected, data/tv_to_latex_clump_xml_dups_xml.expected, data/tv_to_latex_clump_xml_empty_xml.expected, data/tv_to_latex_dups_xml_amp_xml.expected, data/tv_to_latex_dups_xml_clump_xml.expected, data/tv_to_latex_dups_xml_dups_xml.expected, data/tv_to_latex_dups_xml_empty_xml.expected, data/tv_to_latex_empty_xml_amp_xml.expected, data/tv_to_latex_empty_xml_clump_xml.expected, data/tv_to_latex_empty_xml_dups_xml.expected, data/tv_to_latex_empty_xml_empty_xml.expected, data/tv_to_latex_simple_xml_x_whatever_xml.expected: Now that the filter programmes can take more than one file on the command line, we can write some tests that use this. There are a few for the sake of testing the multifile functionality, but also we can speed up the test suite because what used to take ten runs of tv_foo can now be done in one run giving ten input files. We don't test all possible lists of files, only a few of the possible pairs, but still it bloats the test suite to unmanageably large numbers of tests (over 1000). I've remedied that by defining a smaller set of tests, including running each filter program on every input file at once, and making this the default. If you have a fast computer or time to spare you can get the complete set of tests with the --full option. The files like tv_cat_all_UTF8.expected are for the testing of every input file (actually, every input file with UTF-8 encoding) at once. 2002-09-23 13:49 epaepa * filter/tv_sort: Store the original ordering of programmes to guarantee a stable sort when two different programmes are not comparable. (Which should never happen in sane input, but...) Added prototype declaration for data_eq(). 2002-09-23 13:45 epaepa * lib/XMLTV.pm.in: Properly fixed the bug with empty files, so it works when you have two empty files in a row on the command line. Cleaned up the whitespace handling: it should be stripped on reading, but not on writing (no need to do both). 2002-09-23 12:53 epaepa * t/data/: clump.xml, tv_cat_whitespace_xml.expected, tv_extractinfo_en_whitespace_xml.expected, tv_grep_a_whitespace_xml.expected, tv_grep_category_b_whitespace_xml.expected, tv_grep_category_e_and_title_f_whitespace_xml.expected, tv_grep_category_g_or_title_h_whitespace_xml.expected, tv_grep_channel_id_channel4_com_whitespace_xml.expected, tv_grep_channel_name_d_whitespace_xml.expected, tv_grep_eval_scalar_keys_5_whitespace_xml.expected, tv_grep_i_category_i_title_h_whitespace_xml.expected, tv_grep_i_category_i_title_j_whitespace_xml.expected, tv_grep_i_last_chance_c_whitespace_xml.expected, tv_grep_new_whitespace_xml.expected, tv_grep_on_after_2002_02_05_whitespace_xml.expected, tv_grep_premiere_whitespace_xml.expected, tv_sort_by_channel_whitespace_xml.expected, tv_sort_whitespace_xml.expected, tv_to_latex_whitespace_xml.expected, whitespace.xml: A new test case to catch a bug with whitespace handling: some elements have whitespace stripped on output, so you'd think it would be ignored on input, but at present it's not. 2002-09-22 12:15 epaepa * filter/tv_extractinfo_en: Changed to use the callback style - although at present it just gathers all the programmes into a big list as before. 2002-09-22 12:11 epaepa * filter/tv_extractinfo_en: Moved the list of programme handlers into munge(). 2002-09-22 12:08 epaepa * filter/tv_extractinfo_en: Small refactoring: new routine munge() taking a programme and returning a list of programmes. It's not much use yet because it still needs the whole list of programmes available in case there are others in the same clump. 2002-09-22 09:37 epaepa * lib/XMLTV.pm.in: parsefiles_callback(): Now works when one of the input files is empty - previously the 'next file' routine would be called only when a programme was read, and so a file without programmes would not trigger it. 2002-09-21 17:53 epaepa * lib/XMLTV.pm.in: Give a clearer indication of what is going on with unspecified encodings. 2002-09-21 16:16 epaepa * t/test_filters.t: Generalized to allow more than one input file for each test (although this is not yet used). Run the commands with 'perl -Iblib/lib ...' rather than the versions installed on the system (I can't believe this wasn't fixed earlier). 2002-09-21 16:13 epaepa * lib/XMLTV.pm.in: Taken account of the fact that XML::Twig's encoding() method may return undef and so the encoding is unknown. 2002-09-21 16:07 epaepa * filter/tv_grep.in: Cosmetic change. 2002-09-21 16:04 epaepa * filter/tv_cat: Added a check that the encoding callback doesn't get called twice. It should be called just once, before all the others - and this remains true even if parsing several files. 2002-09-21 14:07 rmeden * README.tv_check, choose/tv_check/README.tv_check, choose/tv_check/tv_check, choose/tv_check/tv_check_doc.html: Correct my cpan email address.. oops 2002-09-21 12:29 epaepa * filter/tv_sort: tv_sort was using Data::Dumper for a deep equality test between two programmes. It would stringify them both and check the strings were equal. As the comment said 'we assume that Data::Dumper lists hash keys in a consistent order'. Alas, this is not the case, at least not for all perls. I've had to write an equality routine to compare different kinds of data structures (since there doesn't seem to be one already, amazingly enough) and call that instead. This fixes a couple of test failures with perl 5.005_03, which I have decided to keep supporting for a while longer. 2002-09-21 11:48 epaepa * filter/: tv_extractinfo_en, tv_grep.in: Modified the manual pages a bit to stop older pod2man complaining. 2002-09-21 09:11 epaepa * filter/: tv_cat, tv_extractinfo_en, tv_grep.in, tv_sort, tv_to_latex: Changed the filter programs to use parsefiles(), so they can take multiple filenames on the command line. (Apart from tv_cat, which was already changed to use parsefiles_callback(); I've just updated its documentation.) 2002-09-20 21:58 epaepa * MANIFEST, t/data/empty.xml, t/data/tv_cat_empty_xml.expected, t/data/tv_extractinfo_en_empty_xml.expected, t/data/tv_grep_a_empty_xml.expected, t/data/tv_grep_category_b_empty_xml.expected, t/data/tv_grep_category_e_and_title_f_empty_xml.expected, t/data/tv_grep_category_g_or_title_h_empty_xml.expected, t/data/tv_grep_channel_id_channel4_com_empty_xml.expected, t/data/tv_grep_channel_name_d_empty_xml.expected, t/data/tv_grep_eval_scalar_keys_5_empty_xml.expected, t/data/tv_grep_i_category_i_title_h_empty_xml.expected, t/data/tv_grep_i_category_i_title_j_empty_xml.expected, t/data/tv_grep_i_last_chance_c_empty_xml.expected, t/data/tv_grep_new_empty_xml.expected, t/data/tv_grep_on_after_2002_02_05_empty_xml.expected, t/data/tv_grep_premiere_empty_xml.expected, t/data/tv_sort_by_channel_empty_xml.expected, t/data/tv_sort_empty_xml.expected, t/data/tv_to_latex_empty_xml.expected: I'm feeling the urge to put some more tests in for tv_cat. Like checking that concatenating a file with itself and then tv_sorting is the identity, or that concatenating X and the empty file gives X. So far I have just spotted that there was no test XML file for an empty listing, and added one. More tests to follow. 2002-09-20 21:54 epaepa * filter/tv_cat: Rewritten to use the stream-based interface: this means that tv_cat has gradual output (rather than reading everything first then outputting it all at once) and takes less memory. 2002-09-20 20:18 epaepa * lib/XMLTV.pm.in: I had forgotten to honour the $KEEP_ENCODING flag in the callback interface - fixed. Extended the multiple-files stuff to the old-style lump-of-data interface: now instead of parsefile() there is parsefiles(). It's implemented as a wrapper around the callback interface. 2002-09-20 19:13 epaepa * mkdist, lib/XMLTV.pm.in: Straight after releasing a new stream-based reading interface with 0.5.1, I go and deprecate it. Now there are callbacks for encoding and credits as well as channels and programmes; it just works out simpler that way. The new routine parsefiles_callback() reads more than one file and concatenates them in an exceedingly cunning way, by having several XML::Twigs on the go at once, so that you can get all the channels and then lazily read programmes from each file in turn. I plan to make tv_cat use this so it won't require so much memory (not that tv_cat gets used much anyway). Also the other filter programs, when I switch them to the stream-based interface, will get for free the ability to read from multiple input files in the Unix tradition. Noticed another place where I'd forgotten to update the version number, and added it to mkdist. 2002-09-20 11:22 epaepa * Makefile.PL: Trying to automate making a Windows binary release. Apart from the executables themselves, because you need some payware tool for that. But everything else (documentation and share/ files). This is done with a new target 'windows_dist' which does a normal install and then removes / rearranges files to make them suitable to give to a Windows user. It's a bit of a kludge but so is everything with MakeMaker. I was held up doing this by a couple of weird bugs in MakeMaker: relative paths as the install target tend to screw up, and the same happens if you do 'perl Makefile.PL PREFIX=...', build, and then try to reconfigure with a different prefix. (You need to 'make distclean' to remove stale files first.) I've tried to warn the user about both of these in the Makefile.PL. 2002-09-20 08:51 epaepa * Makefile.PL: Oops, forgot to update the version number. This meant the 0.5.1 release installed its documentation in xmltv-0.5/, hopefully that is the only bug it caused. At least mkdist checks for this now, so it can't happen again (cough). 2002-09-20 08:49 epaepa * mkdist: Made the version number check do Makefile.PL as well as README. I've removed the auto-update-and-check-in code because I don't like the idea of checking things in without a human inspecting them first (even if it's unlikely mkdist would really screw up). 2002-09-20 01:32 rmeden * README.tv_check, choose/tv_check/README.tv_check: minor documentation changes based on alpha user feedback 2002-09-19 22:15 epaepa * README: Oops, got today's date wrong :-P. 2002-09-19 22:13 epaepa * grab/na/tv_grab_na: Cosmetic change to the output to make it consistent with what XMLTV::Writer produces. I think it might have been me who changed it to be inconsistent some time earlier. Oh well. 2002-09-19 22:12 epaepa * grab/de/tv_grab_de: Updated URLs in documentation. 2002-09-19 21:55 epaepa * MANIFEST, lib/XMLTV.pm.in, t/data/amp.xml, t/data/tv_cat_amp_xml.expected, t/data/tv_extractinfo_en_amp_xml.expected, t/data/tv_grep_a_amp_xml.expected, t/data/tv_grep_category_b_amp_xml.expected, t/data/tv_grep_category_e_and_title_f_amp_xml.expected, t/data/tv_grep_category_g_or_title_h_amp_xml.expected, t/data/tv_grep_channel_id_channel4_com_amp_xml.expected, t/data/tv_grep_channel_name_d_amp_xml.expected, t/data/tv_grep_eval_scalar_keys_5_amp_xml.expected, t/data/tv_grep_i_category_i_title_h_amp_xml.expected, t/data/tv_grep_i_category_i_title_j_amp_xml.expected, t/data/tv_grep_i_last_chance_c_amp_xml.expected, t/data/tv_grep_new_amp_xml.expected, t/data/tv_grep_on_after_2002_02_05_amp_xml.expected, t/data/tv_grep_premiere_amp_xml.expected, t/data/tv_sort_amp_xml.expected, t/data/tv_sort_by_channel_amp_xml.expected, t/data/tv_to_latex_amp_xml.expected: The change to use KeepEncoding broke the handling of entities (XML::Twig takes 'keep the encoding' a bit too literally) and there was no test case for entities. Fixed both these problems. 2002-09-19 21:12 epaepa * t/test_filters.t: Avoid uninitialized value warning when the expected output for a test did not exist (and was created). 2002-09-19 20:59 epaepa * README: Updated for version 0.5.1. I think I'm going to release it now, no point waiting any longer. 2002-09-19 19:34 epaepa * choose/tv_check/: README.tv_check, tv_check.bat, tv_check_doc.html: Spelling fixes. 2002-09-16 23:10 epaepa * filter/tv_extractinfo_en: Removed 'use Tie::RefHash' since that module is no longer used in this script. 2002-09-16 20:56 epaepa * lib/XMLTV.pm.in, t/data/tv_cat_test_livre_xml.expected, t/data/tv_extractinfo_en_test_livre_xml.expected, t/data/tv_grep_a_test_livre_xml.expected, t/data/tv_grep_category_b_test_livre_xml.expected, t/data/tv_grep_category_e_and_title_f_test_livre_xml.expected, t/data/tv_grep_category_g_or_title_h_test_livre_xml.expected, t/data/tv_grep_channel_id_channel4_com_test_livre_xml.expected, t/data/tv_grep_channel_name_d_test_livre_xml.expected, t/data/tv_grep_eval_scalar_keys_5_test_livre_xml.expected, t/data/tv_grep_i_category_i_title_h_test_livre_xml.expected, t/data/tv_grep_i_category_i_title_j_test_livre_xml.expected, t/data/tv_grep_i_last_chance_c_test_livre_xml.expected, t/data/tv_grep_new_test_livre_xml.expected, t/data/tv_grep_on_after_2002_02_05_test_livre_xml.expected, t/data/tv_grep_premiere_test_livre_xml.expected, t/data/tv_sort_by_channel_test_livre_xml.expected, t/data/tv_sort_test_livre_xml.expected: Following the large number of bug reports from Debian users whose character encodings got screwed up, I have decided to turn on the newly added $KEEP_ENCODING flag in XMLTV.pm. This means that grabbing a data source in (say) Latin-1, and then processing the data further, will keep the original encoding and not change it to UTF-8. Not ideal but at least it should work the same on all systems. 2002-09-15 18:18 rmeden * choose/tv_check/tv_check.bat: added line to set TZ 2002-09-15 17:18 rmeden * choose/tv_check/tv_check: fix bug with AM/PM conversion (how this was working is beyond me) remove error message about no show file if --myreplay will create it. 2002-09-15 17:11 epaepa * lib/XMLTV.pm.in: XMLTV.pm.in: added new cat_noprogrammes() function which combines data for encoding, credits, and channels - but not programmes. This is in line with the general policy of allowing programmes to be processed individually rather than in one big lump. tv_grab_uk.in: changed to use cat_noprogrammes() instead of just cat() in an effort to reduce the working set size, or at least to give it better locality. Previously tv_grab_uk would rearrange the order of programmes and then output them by channel, which thrashed the disk a lot. This is not the last change to tv_grab_uk to improve scalability, just an intermediate point to commit a working version. 2002-09-13 23:22 epaepa * choose/tv_check/tv_check: Removed warning about episode-nums that weren't understood. This is temporary until the whole episode-num system gets replaced in some future release. 2002-09-13 14:35 epaepa * t/data/: test_empty.xml, tv_cat_test_empty_xml.expected, tv_extractinfo_en_test_empty_xml.expected, tv_grep_a_test_empty_xml.expected, tv_grep_category_g_or_title_h_test_empty_xml.expected, tv_grep_eval_scalar_keys_5_test_empty_xml.expected, tv_grep_on_after_2002_02_05_test_empty_xml.expected, tv_sort_by_channel_test_empty_xml.expected, tv_sort_test_empty_xml.expected, tv_to_latex_test_empty_xml.expected: test_empty.xml was invalid because it didn't have a 'channel' attribute for its lone programme. Fixed. 2002-09-13 14:34 epaepa * lib/: TZ.pm, XMLTV.pm.in: Changed UT to UTC; added a warning in the XMLTV.pm documentation that the returned character encoding may vary (this prepares for a possible change making $KEEP_ENCODING documented). 2002-09-13 14:29 epaepa * filter/: tv_extractinfo_en, tv_grep.in, tv_sort, tv_to_latex: I had some misunderstanding about dates - I was writing 'UT' as the timezone thinking this was the same as UTC give or take a few seconds. But some book I read says that UT is twelve hours out (why?). So I've changed it to UTC. tv_to_latex: try to cope with both UTF-8 and Latin-1 input files, and do something vaguely sensible with other weird encodings. 2002-09-13 14:24 epaepa * choose/tv_pick/tv_pick_cgi: Produce the output HTML in the same character encoding as the programme data, without assuming it will always be UTF-8. 2002-09-13 14:22 epaepa * choose/tv_check/tv_check: Don't assume the encoding is UTF-8, try to use whatever encoding the programme data uses. 2002-09-12 05:15 rmeden * choose/tv_check/tv_check: bugfix to prevent warnings if certain values are null 2002-09-12 04:14 rmeden * choose/tv_check/tv_check: fixed bug where --myreplaytv shows at 12pm stored as 2400 not 1200 2002-09-10 14:33 epaepa * lib/XMLTV.pm.in: Experimental code trying to work round a bug reported by Joe Drew. The $KEEP_ENCODING constant, if true, turns on XML::Twig's KeepEncoding() option and tries to make the encoding returned from read_data() and the like match the input file. This is not as good as forcing everything to UTF-8, but it is better than the reported behaviour of returning Latin-1 strings saying they were UTF-8. (I cannot reproduce that bug despite upgrading XML::Twig and XML::Parser to the same versions; I think it might be a perl 5.8 thing.) This contradicts the documentation, which says the encoding will always be returned as UTF-8. At present I think that tv_cat is the only filter program which will work with the new behaviour, but that should be sufficient for testing. 2002-09-10 11:25 epaepa * filter/tv_extractinfo_en, grab/de/tv_grab_de: Fixed Term::ProgressBar detection. 2002-09-10 11:24 epaepa * lib/XMLTV.pm.in: cat(): In an attempt to remove some magic 'UTF-8' strings from the source, it now just checks that the encoding is the same for all the files to be concatenated (like already happens for credits). It looks like I'll have to remove the UTF-8 assumptions altogether, this is at least a first step. 2002-09-10 11:18 epaepa * Makefile.PL: Since CGI::Carp is responsible for making all warning messages look Martian, and it's included with the CGI module anyway, we can just check for CGI and not bother loading CGI::Carp. Switched from if (defined $@) to just if ($@), which seems to be correct. 2002-09-10 00:12 epaepa * Makefile.PL: Loading the CGI::Carp module does strange things to warn(), so use print STDERR instead. 2002-09-09 12:25 epaepa * lib/XMLTV.pm.in: parse_callback(), parsefile_callback(): new callback-based interface for incremental reading of XMLTV files. This isn't used by anything yet, and isn't thoroughly tested (though it seems to work); it probably won't be used in the 0.5.1 release but I want to start changing the filter programs to it soon afterwards. 2002-09-08 23:45 epaepa * MANIFEST: Adding tv_check.bat to the MANIFEST - it is not installed but it is part of the source distribution. 2002-09-08 09:54 epaepa * lib/Ask.pm: ask(): changed to be more robust, removing leading and trailing whitespace instead of chopping off the last character. This might fix Robert E.'s installation problems (I think he is using Windows). 2002-09-07 20:34 epaepa * grab/de/tv_grab_de: Added a comment mentioning the backup server for de/at listings. 2002-09-07 20:28 epaepa * Makefile.PL: Adding more quotation marks around hash keys, which seem to be required by newer perls. I thought => was meant to count as quoting its left argument. Oh well. 2002-09-07 03:47 rmeden * choose/tv_check/tv_check.bat: Sample batch file for folks using the windows exe version 2002-09-07 02:59 rmeden * choose/tv_check/tv_check_doc.html: Updated docs for --myreplaytv.com option. 2002-09-07 02:57 rmeden * README.tv_check, choose/tv_check/README.tv_check: Removed references to excessive CPU and memory usage. Now that we use XML::Twig, it doesn't appear to be a problem 2002-09-06 15:13 rmeden * choose/tv_check/tv_check: Misc bug fixes 2002-09-06 04:21 rmeden * choose/tv_check/README.tv_check, README.tv_check: README updates. Also sync'd the 2 README.tv_check files. 2002-09-06 04:19 rmeden * choose/tv_check/tv_check: misc bug fixes mostly related to new XMLTV.pm 2002-09-05 21:49 epaepa * Makefile.PL: Changed the setup questions so that they don't warn 'you will need Foo' when Foo is already installed. If the prerequisites are installed, then the default answer to the installation question is 'yes'. 2002-09-05 19:04 epaepa * lib/XMLTV.pm.in: After each <channel> or <programme> element has been read, call flush() to throw away those parts of the XML tree which have been processed. This gives a big reduction in memory usage. With 0.5 a process reading in a week's UK listings took 41Mbyte. Switching to XML::Twig cut that to 25Mbyte and now adding flush() takes it to 13Mbyte. But I would still like to do better of course :-). 2002-09-05 03:39 rmeden * choose/tv_check/tv_check: added --myreplaytv option to grab info from myreplaytv.com for ReplayTV owners. 2002-09-04 22:00 epaepa * Makefile.PL, README: tv_grab_uk.in: use XML::Twig instead of XML::DOM for parsing Ananova's weird 'regions' XML. This removes the last dependency on XML::DOM. 2002-09-04 20:43 epaepa * Makefile.PL, README, filter/tv_to_latex, lib/XMLTV.pm.in: Reimplemented the parsing code in XMLTV.pm using XML::Twig instead of XML::DOM. Thanks to Leif Van Horn for the idea, although in the end I didn't use his code. Really all that needed changing were the wrapper routines like get_attrs() around the DOM tree methods. The new implementations, wrapping XML::Twig, are quite a bit shorter :-). The interface to the XMLTV module is just the same as before, reading all the data in a big lump. A lazy-reading interface is needed to get the best out of XML::Twig, and I will implement that later. But already there is an 18% speed improvement (on the test suite) from the old version. I can't quite eliminate XML::DOM because it is still used by tv_grab_uk to parse Ananova's weird 'regions' page. But that will be next. Also fixed the installation of section 1 manual pages. 2002-09-04 16:54 epaepa * lib/XMLTV.pm.in: Changed one more DOM call to use the wrapper routines. This time it was getTagName(), which turns out to be the same as getNodeName() and hence get_name(). 2002-09-04 15:36 epaepa * lib/XMLTV.pm.in: Abstracted away another DOM method - $n->getNodeName() becames get_name($n). 2002-09-04 15:16 epaepa * lib/XMLTV.pm.in: The file parsing code includes severel wrappers around XML::DOM. For example dom_attrs() returns a hashref of a node's attributes, after skipping over attributes beginning with 'x-'. I've changed the names of these from dom_whatever() to get_whatever(), so that they can become wrappers around some other library such as XML::Twig. 2002-09-03 12:27 epaepa * Makefile.PL, README, choose/tv_pick/tv_pick_cgi, filter/tv_to_latex, grab/de/tv_grab_de: Done some more to cut down on dependencies. Now tv_pick_cgi and tv_grab_na are optional in Makefile.PL, because they both have unusual dependencies that aren't shared by the other programs. I've also made Unicode::String and Compress::Zlib kludgealikes, so these two modules have been downgraded to 'recommended'. This all needs testing. 2002-09-01 18:00 epaepa * lib/Ask.pm: Answers should be read from standard input and never from command-line arguments... 2002-09-01 17:55 epaepa * MANIFEST, Makefile.PL, choose/tv_check/README.tv_check, grab/Ask.pm, lib/Ask.pm: Because tv_check has dependencies on Tk and Tk::TableMatrix, which the other parts of xmltv don't, I have made it optional. The Makefile.PL now asks whether you want to install tv_check. I may do the same to other parts of XMLTV if they require non-standard modules. This meant moving Ask.pm out of the grab/ directory (which was a slightly silly place for it anyway) and into lib/, since it is now used by the whole project and not just by the grabbers. The Makefile.PL loads this library 'by hand' and uses it to prompt about tv_check. I've also changed tv_check's README to standardize on the name tv_check not TVCHECK or tvcheck... I hope it's author doesn't mind too much :-(. 2002-09-01 11:53 epaepa * ChangeLog.old, README, xmltv.dtd, analyse_tvprefs/README, analyse_tvprefs/analyse_tvprefs, choose/tv_check/tv_check_doc.html, choose/tv_pick/tv_pick_cgi, filter/tv_cat, filter/tv_extractinfo_en, filter/tv_grep.in, filter/tv_sort, filter/tv_to_latex, grab/de/tv_grab_de, grab/na/tv_grab_na, lib/XMLTV.pm.in, t/parallel_test, t/test_filters.t: Updated references to the XMLTV website, and to my email address. Purged all traces of my old userid. 2002-08-30 22:35 epaepa * Makefile.PL: Fixed (I hope) that problem with certain MakeMaker versions. It happened because to get uninstall, I was physically manipulating the generated Makefile, but some versions of MakeMaker produced text slightly different to what was expected. Now I hope the code is more robust. 2002-08-30 22:23 epaepa * Makefile.PL, README: Added Tk and Tk::TableMatrix to the list of dependencies, they were missing before. 2002-08-29 20:56 epaepa * Makefile.PL, README, choose/tv_check/tv_check, choose/tv_pick/tv_pick_cgi, filter/tv_cat, filter/tv_extractinfo_en, filter/tv_grep.in, filter/tv_sort, filter/tv_to_latex, grab/Ask.pm, grab/Memoize.pm, grab/de/tv_grab_de, lib/Clumps.pm, lib/XMLTV.pm.in, t/add_time_info, t/parallel_test: Well, up till now I've resisted calls to trim the number of modules required by xmltv. I said the answer was not to reduce library use but rather to make it easy for users to install those libraries, by providing them as packages. But after moving to a new system myself I realize that this attitude was too optimistic. Whatever the merits in principle of packaging the libraries separately, in practice it is a lot of effort to keep track of those dependencies. As a starting point I have reduced the dependencies to packages which come as standard with Linux-Mandrake 8.2. This meant removing dependencies on obscure modules (many of which I wrote myself). Some, like Tie::IxHash and Sort::Versions, turned out not be used anywhere, although they were once. Others like Log::TraceMessages and Memoize can be replaced with stub routines when they are not found, and there are some like Lingua::Preferred where doing this gives a small loss of functionality, but not anything that most users will notice. On the other hand, I noticed that tv_pick.cgi requires the CGI module, which had slipped through the dependency net until now :-(. At least it is a common module which will probably be packaged (it is in Mandrake). I've changed the Makefile.PL and README accordingly; building will warn about 'recommended' modules which are missing but they don't stop the Makefile being written. I've run many of the altered programs on my own machine but more testing is needed. Also improved the 'please run --configure' message in tv_grab_uk. 2002-08-08 13:50 jveldhuis * grab/na/ZapListings.pm: added languages Khmer and Ojibwa 2002-06-24 23:08 rmeden * choose/tv_check/tv_check: Fix bug with ReplayTV conflict checker. Extra episodes were not correctly being added to the conflict search. 2002-06-14 16:54 jveldhuis * grab/na/tv_grab_na: added --list-channels to --configure command line options, works similar to --list-providers. 2002-06-14 16:20 jveldhuis * grab/na/tv_grab_na: fixed perldoc and usage a bit 2002-06-14 16:16 jveldhuis * grab/na/tv_grab_na: fixed help messages that said config file lands in $HOME/.tv_grab_na 2002-06-14 16:16 jveldhuis * grab/na/tv_grab_na: fixed help message that was a bit too long 2002-06-14 16:08 jveldhuis * grab/na/tv_grab_na: 1. undid Ed's Date_Init() call to explictly set TZ for windows exectuables, didn't work the way we wanted. 2. reordered some of the --configure help messages (more logical) 3. added support for using tv_grab_na to dump list of providers for guis (such as Andy's FreeGuide) that want to reproduce the configure process in a gui. Usage is: --configure --list-providers --postalcode <code> or --configure --list-providers --zipcode <code> Output newline separated list of providers ids and their descriptions.. Note: --retry settings don't have any effect using --list-providers. 2002-05-29 17:29 epaepa * grab/na/tv_grab_na: Call Date_Init() at the start of the script, to avoid timezone problems on Windows. 2002-05-29 13:21 epaepa * t/parallel_test: Removed fixups that were needed for transition from old to new grabber. Check that temporary directory exists. 2002-05-27 16:49 epaepa * README: Removed duplicate dependency. 2002-05-27 16:48 epaepa * README: XML::DOM depends on XML::Parser. 2002-05-23 11:22 epaepa * mkdist: Modified mkdist to check out its working copy and build tarballs in a temporary directory, _not_ ./xmltv/. This is because running mkdist in the working copy could otherwise create great confusion, especially with the build process which recursively looks for Makefile.PLs to execute... 2002-05-23 11:08 epaepa * Makefile.PL: Last-minute fix: the toplevel README is the one to be installed, not the now-removed doc/README. 2002-05-23 11:02 epaepa * mkdist: Added my personal t/data/do_not_dist/ directory to @toremove. Hope it works. 2002-05-23 10:59 epaepa * MANIFEST: Updated MANIFEST with recently added and removed documentation files. (BTW, these docs need not be installed - they are there as a guide to the source tree.) 2002-05-23 10:54 epaepa * choose/tv_check/README.tv_check: Wrapped lines to 70 columns - hope you don't mind Robert. 2002-05-23 10:50 epaepa * analyse_tvprefs/README: Token documentation on the analyse_tvprefs tool. 2002-05-23 10:47 epaepa * doc/code/grabber_interface: The grabber_interface file is currently just a placeholder, but at least it now contains a small amount of useful information. 2002-05-23 10:43 epaepa * doc/QuickStart: Updated to reflect that binaries will be installed in the PATH and no longer just run from the current directory. 2002-05-23 10:39 epaepa * doc/README: Removed the README from version 0.3.1 which was lying around in this directory the whole time :-P. 2002-05-23 10:33 epaepa * lib/XMLTV.pm.in: Strip whitespace on output as well as input; made it explicit that this happens. 2002-05-23 10:32 epaepa * filter/tv_grep.in: Added a note about the clumpidx fixing which stops tv_grep being fully idempotent. 2002-05-23 10:30 epaepa * t/test_filters.t: Keep track of number of tests correctly (including if some idempotence tests are skipped.) It turns out that tv_grep is not 100% idempotent due to clumpidx fixing. 2002-05-23 10:28 epaepa * README: Added a warning about that ridiculously slow test suite :-). 2002-05-23 10:27 epaepa * README: Updated README for the real 0.5 release. 2002-05-23 09:13 epaepa * grab/de/tv_grab_de: Fix an error in the served XML pages (empty <length> element). 2002-05-21 14:32 epaepa * t/parallel_test: The test script I was using to compare the new listings feed to the old. It cannot be used now, but I'm committing it as a record of the sort of differences between the two feeds. Many of the differences are thought to be caused by the new feed being 24 hours behind; that is, it gives a week's listings as before, but things like sporting events or last-minute schedule alterations will be less current than in the old feed. 2002-05-21 14:13 epaepa * t/parallel_test: Adding the new 'radio4' test case. Not that it will be used for a while, because with the old feed gone it's not possible to run parallel tests comparing new and old output. 2002-05-19 17:29 epaepa * t/parallel_test: When Ananova serves a freak page which doesn't have the multiple sets of listings expected, retry up to 3 times. I haven't been able to test this because (typically!) as soon as I put the check in, Ananova started to behave. But at least I know it doesn't make things any worse. 2002-05-18 20:17 epaepa * filter/tv_extractinfo_en: Fix to stop the program choking when the last word of a programme description is a time. It's still not as robust as I would like, but at least this one thing is fixed. 2002-05-15 15:22 epaepa * t/add_time_info: More helpful error message about 'funny size clump' (and take a clumpidx of 0/1, ie a clump of one programme, as the same as no clumpidx at all). 2002-05-15 15:21 epaepa * MANIFEST: Added grab/uk/test_configs/radio4 to MANIFEST. 2002-05-15 11:09 epaepa * t/add_time_info: Fixed an off-by-one bug - I don't know how it remained undetected for so long. 2002-05-13 17:29 epaepa * t/parallel_test: tv_grab_uk: added code to split Radio 4 into LW and FM variants, and a few other stations into MW and FM variants. After some experiments, it turns out the only sensible way to do this is to specify it in the channel_ids file, since it cannot be detected automatically without grabbing a whole week's listings in advance. So now we have fm.radio-4.bbc.co.uk and lw.radio-4.bbc.co.uk. Unfortunately, individual channel selection still works on Ananova id, and these two channels have the same Ananova id, so it's not possible to download one without the other. But this is good enough. Also committing the parallel_test script used to verify that this change didn't break anything (I hope). 2002-05-13 12:48 epaepa * t/test_filters.t: Added an idempotence check for most filter programs. This checks that running the same filter twice on some input is equivalent to running it once. Unfortunately, this did not catch the bug I was hoping to find - but at least the check is in there now. The number of tests is now 350 - this is getting really out of hand. I need to find some easy way to run just a few tests. Probably by defining separate 'basic' and 'full' sets of commands and example inputs. 2002-05-13 11:48 epaepa * lib/Clumps.pm: Downgraded a fatal 'programmes do not sort' error to a warning. This makes things like tv_grep more tolerant of slightly deviant (syntactically correct but nonsensical in some way) input files. 2002-05-12 14:34 epaepa * filter/tv_sort: Fixed bug identified earlier - not eliminating duplicate programmes with no stop time. Now overlap() returns true for two programmes starting at the same time on the same channel with same clumpidx, regardless of whether they have stop times. This will break if zero-length programmes come up, but I'm assuming that can't happen. 2002-05-10 15:03 epaepa * t/data/: dups.xml, tv_cat_dups_xml.expected, tv_extractinfo_en_dups_xml.expected, tv_grep_a_dups_xml.expected, tv_grep_on_after_2002_02_05_dups_xml.expected, tv_sort_by_channel_dups_xml.expected, tv_sort_dups_xml.expected, tv_to_latex_dups_xml.expected: Noticed a bug in tv_sort where not all duplicate programmes are weeded out. These updated test cases give the expected behaviour. 2002-05-06 16:53 epaepa * t/add_time_info: Don't collapse and die when a channel which occurs in the less-detailed listings does not occur at all in the more-detailed ones. Instead just warn once and then leave alone all programmes on that channel. 2002-05-06 10:52 epaepa * t/add_time_info: Added some more assertions and more detailed error messages. 2002-05-06 04:59 rmeden * choose/tv_check/tv_check: Correction to special Replay-TV fuzzy logic. Don't look for conflicts for a "close" episode when another episode exists at the proper time. 2002-05-02 15:02 epaepa * MANIFEST: Updated the MANIFEST for some files I added a while ago (should have done it before). 2002-05-02 14:58 epaepa * t/test_filters.t: 'Transparently' gunzip files before running the test, and gzip them back again. This is a bit pointless at present because gzipping saves only about 0.2Mbyte of space - but hey, I was running out of quota. If you don't have the files gzipped then things are as before. The test files in CVS will remain uncompressed. So you can just ignore this change :-). 2002-05-02 12:12 epaepa * t/add_time_info: add_time_info is a small filter to help with diffing one XMLTV file against another. Sometimes two files describe the same schedule, but one with more detail than the other. For example A may say '10:00 0/2 News; 10:00 1/2 Weather' while B says '10:00 News, 10:30 Weather'. This filter reads the more detailed schedule info from B and uses it to output an improved version of A. You can then diff this output against B to see if there are any differences _other than_ an increase in schedule detail. (If A's schedule is not a less detailed version of B's, then add_time_info dies with an error.) Not currently used for anything, but will be used for testing the rewritten Ananova grabber against the old one. 2002-05-01 22:27 jveldhuis * grab/na/ZapListings.pm: crap, missed a ) :) 2002-05-01 22:25 jveldhuis * grab/na/ZapListings.pm: more fixes 2002-05-01 22:12 jveldhuis * grab/na/ZapListings.pm: zap2it decided to drop some of the spacing around () details. 2002-05-01 17:47 epaepa * t/parallel_test: page_date_diff(): the new name for check_page_date(). It now returns an integer, the number of days by which the found date differs from the expected date - or undef if something is very wrong. The kludgy manipulation of the expected date is as before. This new version doesn't behave any differently; next I will add some code to cope with the latest Ananova weirdness. 2002-04-29 04:37 rmeden * choose/tv_check/tv_check: Changed "neartime" threshnold to from 3 hours to 2. This prevents a 2300 show syndicated show from matching a 2100. I doubt anyone uses neartime anyway. :) 2002-04-26 20:31 jveldhuis * grab/na/ZapListings.pm: page failures now include http failure messages, fixed so program descriptions work again 2002-04-26 20:30 jveldhuis * grab/na/tv_grab_na: fixed subtitles to be simpler 2002-04-26 16:02 epaepa * filter/tv_extractinfo_en: Expanded the range of programmes which have 'presenter' not 'actor'. 2002-04-25 20:03 epaepa * filter/tv_grep.PL: Documentation fix for tv_grep and new 'with-lang-or-empty' handler type. Forgot to commit it earlier. 2002-04-23 15:05 epaepa * filter/tv_extractinfo_en: multipart_split_desc(): an exclamation mark does not mark the boundary between title and subtitle as previously thought, but shows the end of the title. So it is like question mark and full stop, and the behaviour of all three has been made the same. Except that while full stops are stripped from the end of titles, ? and ! are not. special_teletext_subtitles(): new handler to remove '(T)' from the end of programme descriptions, it signifies teletext subtitling. Avoided outputting empty descriptions, titles etc: after a regular expression has removed some text from one of these, it is removed if blank. (New subroutine scrub_empty().) 2002-04-23 14:56 epaepa * filter/tv_grep.in, lib/XMLTV.pm.in, t/test_filters.t, t/data/test.xml, t/data/tv_cat_test_xml.expected, t/data/tv_extractinfo_en_test_xml.expected, t/data/tv_grep_a_test_xml.expected, t/data/tv_grep_category_g_or_title_h_test_xml.expected, t/data/tv_grep_eval_scalar_keys_5_test_xml.expected, t/data/tv_grep_premiere_clump_xml.expected, t/data/tv_grep_premiere_dups_xml.expected, t/data/tv_grep_premiere_length_xml.expected, t/data/tv_grep_premiere_overlap_xml.expected, t/data/tv_grep_premiere_simple_xml.expected, t/data/tv_grep_premiere_sort_xml.expected, t/data/tv_grep_premiere_test_empty_xml.expected, t/data/tv_grep_premiere_test_livre_xml.expected, t/data/tv_grep_premiere_test_xml.expected, t/data/tv_grep_premiere_x_whatever_xml.expected, t/data/tv_sort_by_channel_test_xml.expected, t/data/tv_sort_test_xml.expected: Started to distinguish between elements like <title>, which always have to have some human-readable content, and those like <premiere>, which may have an 'explanation' inside but do not require it. The former have handler 'with-lang', the latter now 'with-lang-or-empty' which can return [] for an empty element. Trying to write out inappropriate empty content (like <title>) will now give a warning. Updated tv_grep to cope with this: it is still necessary to give a regular expression as the argument to predicates like --premiere, but a regexp of '' will match all elements, even empty ones. So the old behaviour is preserved. Added some new test cases for this (not complete coverage though) and an example of to test.xml. 2002-04-22 21:02 jveldhuis * grab/na/tv_grab_na: now verifies that all things in resulting prog details gets explicitly ignored or outputed - use --debuglistings to enable 2002-04-22 21:01 jveldhuis * grab/na/ZapListings.pm: multiple details appearing in () may not get to output xml 2002-04-20 18:22 epaepa * filter/tv_extractinfo_en: multipart_split_desc(): an exclamation mark _always_ indicates the end of the title and start of the description. Titles ending in ! are not followed by a colon. 2002-04-20 17:27 epaepa * filter/tv_extractinfo_en, lib/XMLTV.pm.in: Code tidy to conform with perlstyle(1)'s suggestion: 'uncuddled elses'. 2002-04-20 17:22 epaepa * filter/tv_grep.in: Use the XMLTV::Clumps module to make sure that when only some of the programmes sharing a clump are included in the output, the clumpidx information is updated accordingly. 2002-04-20 17:22 epaepa * lib/Clumps.pm: Added support for deleting a programme sharing a clump - fix_clumps() should now have complete functionality. 2002-04-20 16:57 epaepa * lib/Clumps.pm: Whoops - forgot to load Tie::RefHash. 2002-04-20 16:49 epaepa * t/data/: clump.xml, tv_cat_clump_xml.expected, tv_extractinfo_en_clump_xml.expected, tv_grep_a_clump_xml.expected, tv_grep_category_b_clump_xml.expected, tv_grep_category_e_and_title_f_clump_xml.expected, tv_grep_category_g_or_title_h_clump_xml.expected, tv_grep_channel_id_channel4_com_clump_xml.expected, tv_grep_channel_name_d_clump_xml.expected, tv_grep_eval_scalar_keys_5_clump_xml.expected, tv_grep_i_category_i_title_h_clump_xml.expected, tv_grep_i_category_i_title_j_clump_xml.expected, tv_grep_i_last_chance_c_clump_xml.expected, tv_grep_new_clump_xml.expected, tv_grep_on_after_2002_02_05_clump_xml.expected, tv_sort_by_channel_clump_xml.expected, tv_sort_clump_xml.expected, tv_to_latex_clump_xml.expected: tv_grep ought to update clumpidxes when removing programmes from a clump. These new test cases expect that behaviour. 2002-04-20 16:25 epaepa * MANIFEST, Makefile.PL, filter/tv_extractinfo_en, lib/Clumps.pm: Refactored the fix_clumps() routine and its support routines into a new module XMLTV::Clumps. This doesn't diminish the ugliness but it does at least get it out of the way. I want to call fix_clumps() from other tools than tv_extractinfo_en - it's what you have to do whenever you delete / split / update a programme which shares a timeslot with others. All this underlines the need to get rid of clumpidx and replace it with something cleaner, but that will wait until after 0.5. 2002-04-20 16:22 epaepa * lib/TZ.pm: Just noticed no '1;' true-returning statement at the end of this module. It seems to have managed okay withoutit so far, but it's good style to add one. 2002-04-20 15:26 epaepa * filter/tv_extractinfo_en: fix_clumps(): Work when a programme has been 'split' into one different programme. Previously this case was not handled, but I see no reason why the existing code for 2 or more shouldn't work with 1. Also try to preserve the original timezone when setting date strings. 2002-04-20 14:46 epaepa * filter/tv_extractinfo_en: Added an undocumented option --no-create-sub-titles which affects the behaviour of special_multipart(), making it create titles with colons in rather than splitting into title and sub-title. Recognize 'sports' as well as 'sport' as a category keyword. 2002-04-20 13:53 epaepa * filter/tv_extractinfo_en: special_multipart(): normally, the heuristic is that a programme must have at least three valid 'times' included in its description to be considered a multipart. But if the first word of the description is a time, waive that requirement. 2002-04-20 13:37 epaepa * filter/tv_extractinfo_en: special_multipart: match categories containing 'childrens' as well as 'children'. 2002-04-20 13:25 epaepa * filter/tv_extractinfo_en: special_multipart(): modified the category checking to look for words as substrings rather than simple string equality. This is needed for the new Ananova listings which have categories like 'Children's Programmes' instead of 'children', for example. 2002-04-20 12:16 epaepa * lib/XMLTV.pm.in, t/data/test_empty.xml, t/data/tv_cat_test_empty_xml.expected, t/data/tv_extractinfo_en_test_empty_xml.expected, t/data/tv_grep_a_test_empty_xml.expected, t/data/tv_grep_category_b_test_empty_xml.expected, t/data/tv_grep_category_e_and_title_f_test_empty_xml.expected, t/data/tv_grep_category_g_or_title_h_test_empty_xml.expected, t/data/tv_grep_channel_id_channel4_com_test_empty_xml.expected, t/data/tv_grep_channel_name_d_test_empty_xml.expected, t/data/tv_grep_eval_scalar_keys_5_test_empty_xml.expected, t/data/tv_grep_i_category_i_title_h_test_empty_xml.expected, t/data/tv_grep_i_category_i_title_j_test_empty_xml.expected, t/data/tv_grep_i_last_chance_c_test_empty_xml.expected, t/data/tv_grep_new_test_empty_xml.expected, t/data/tv_grep_on_after_2002_02_05_test_empty_xml.expected, t/data/tv_sort_by_channel_test_empty_xml.expected, t/data/tv_sort_test_empty_xml.expected, t/data/tv_to_latex_test_empty_xml.expected: Some sub-elements of are just convenient syntactic containers for other stuff, they don't mean anything in themselves. These are ,