diff --git a/feedWatcher b/feedWatcher index db00742..4cb5f77 100755 --- a/feedWatcher +++ b/feedWatcher @@ -21,14 +21,17 @@ # (created with Pandoc) in the same directory as this script for # details of what has been done to develop the original design. # +# Further development is taking place in 2022/2023, again for +# FOSDEM. +# # OPTIONS: --- # REQUIREMENTS: --- # BUGS: --- # NOTES: --- # AUTHOR: Dave Morriss (djm), Dave.Morriss@gmail.com -# VERSION: 0.1.1 +# VERSION: 0.1.2 # CREATED: 2013-12-25 12:40:33 -# REVISION: 2023-01-09 15:28:13 +# REVISION: 2023-01-10 22:44:38 # #------------------------------------------------------------------------------- # Released under the terms of the GNU Affero General Public License (AGPLv3) @@ -44,6 +47,10 @@ use utf8; use feature qw{ postderef say signatures state }; no warnings qw{ experimental::postderef experimental::signatures } ; +# +# There's an issue in XML::RSS, so we're using a loocal version with a hack. +# It's in ./lib/ and FiindBin::libs looks there to find it. +# use FindBin::libs; use XML::RSS; @@ -85,7 +92,7 @@ use Data::Dumper; # # Version number (manually incremented) # -our $VERSION = '0.1.1'; +our $VERSION = '0.1.2'; # # Script name @@ -2538,7 +2545,7 @@ feedWatcher - watch a collection of podcast feeds =head1 VERSION -This documentation refers to I version 0.1.1 +This documentation refers to I version 0.1.2 =head1 USAGE @@ -2547,10 +2554,12 @@ This documentation refers to I version 0.1.1 [-check[=mode]] [-out=FILE] [-json[=FILE]] [-opml[=FILE]] [-template=FILE] [-[no]silent] [-config=FILE] [-debug=N] [URL ...] - # Load URLs from a file, perform checks and redirect output to standard - # output and a named file - ./feedWatcher -load=feedWatcher_dumped_URLs.txt -check=auto | \ - tee load_$(date +'%Y%m%d_%H%M%S') + # Load URLs from a file, perform checks, save the rejects and redirect output + # to a named file. Uses an alias: + # alias isostamp='date +"%Y%m%d_%H%M%S"' + # + ./feedWatcher -load=feedWatcher_dumped_URLs.txt -check=auto \ + -rej=output/rejects_$(isostamp).out > output/load_$(isostamp).out 2>&1 # Generate Markdown output with a template writing to a named file ./feedWatcher -tem=feedWatcher_3.tpl -out=feedWatcher.mkd @@ -2607,26 +2616,69 @@ script, (B<-noscan>) omits the scan. NOTE: This function is not implemented yet. +=item B<-[no]silent> + +This option controls the amount of output written by the script. In +B mode the script reports on the processing of each URL it receives, +which can be fairly verbose. This can be turned off with this option, though +it is often wiser to redirect the output for later review rather than to +suppress it. + =item B<-out=FILE> -This option defines an output file to receive outputi from reporting +This option defines an output file to receive output from the reporting functions. If the option is omitted the data is written to STDOUT, allowing it -to be redirected if required. This option does not cause transactional -listings to be captured. +to be redirected if required. See the 'Usage' section above for an example of +how transactional output can be redirected. -=item B<-[no]check> +=item B<-check[=MODE]> -This option (B<-check>) causes each feed which is being to be checked against -the script user to check that it's OK to add it. The script reports the -I field and requests a I or I response. +This option (B<-check[=MODE]>) controls the mode used to check +the copyright setting of the current feed and deciide whether to add it. -=item B<-[no]report> +Possible settings are: B, B and B. -This option (B<-report>) causes a report of the contents of the database to be -generated. The negated form, which is also the default behaviour of the -script, (B<-noreport>) omits the report. +=over 4 -NOTE: The report is currently very simple. +=item B<-check=auto> or B<-check> + +An automatic check is made against a series of regular expressions looking for +something in the I field which signifies that the feed is under +a Creative Commons licence. A blank field is currently considered to denote +this type of licence. + +The option may be written as B<-check> when it is interpreted as B<-check=auto> + +=item B<-check=manual> + +In this mode the script pauses after processing each feed to ask the script +user to check that it's OK to add it. The script reports the I +field and requests a I or I response. + +=item B<-check=manual> + +In this mode no checks are performed. + +=back + +=item B<-report[=title]> + +This option (B<-report[=title]>) causes a fairly simplistic report to be +generated to enable the database contents to be examined. The I +argument specifies a case-sensitive feed title or component of such a title. +So, for instance B<-report=Hacker> currently reports on the batabase data +relating to the "Hacker Public Radio" feed. + +If the argument is omitted the entire database is reported. + +Reports consist of the details of the RSS (or Atom) channel with other +information about the site hosting the feed such as the IP address. The latest +episode in the feed is also reported. + +Note that the feed information in the database is a snapshot made when the +feed details were last loaded. This is static information and does not get +updatedunless the feed is deleted and reloaded, or the B<-scan> function is run +(not currently available). =item B<-json[=FILE]> @@ -2650,10 +2702,10 @@ file. If the B<=FILE> portion is omitted a default name of 'feedWatcher.opml' is used. -=item B<-template=FILE> +=item B<-template[=FILE]> This option defines the template used to generate a form of the feed data. The -template is written using the B<Template> toolkit language. +template is written using the B<Template Toolkit> language. If the file name is omitted then the script uses the file B<feedWatcher.tpl> in the same directory as the script. If this file does not exist then the diff --git a/feedWatcher.db b/feedWatcher.db index 9767fac..d5ffef2 100644 Binary files a/feedWatcher.db and b/feedWatcher.db differ diff --git a/feedWatcher.html b/feedWatcher.html index 294bf8a..e266532 100644 --- a/feedWatcher.html +++ b/feedWatcher.html @@ -406,6 +406,14 @@ + <dt><a href="https://www.eff.org/how-to-fix-the-internet-podcast">How to Fix the Internet</a> (<a href="https://feeds.eff.org/howtofixtheinternet">feed</a>)</dt> + + + <dd>The internet is broken—but it doesn’t have to be. If you’re concerned about how surveillance, online advertising, and automated content moderation are hurting us online and offline, the Electronic Frontier Foundation’s How to Fix the Internet podcast offers a better way forward. EFF has been defending your rights online for over thirty years and is behind many of the biggest digital rights protections since the invention of the internet. Through curious conversations with some of the leading minds in law and technology, this podcast explores creative solutions to some of today’s biggest tech challenges. Hosted by EFF Executive Director Cindy Cohn and EFF Associate Director of Digital Strategy Jason Kelley, How to Fix the Internet will help you become deeply informed on vital technology issues as we work to build a better technological future together.</dd> + + + + <dt><a href="http://internationalopenmagazine.org/category/podcast.html">International Open Podcast</a> (<a href="http://spielend-programmieren.at/intopenpodcast.xml">feed</a>)</dt> diff --git a/feedWatcher.json b/feedWatcher.json index 64ee9c4..afe275a 100644 --- a/feedWatcher.json +++ b/feedWatcher.json @@ -987,6 +987,44 @@ "urls_url" : "http://hackerpublicradio.org/hpr_ogg_rss.php", "urls_urltype" : "Feed" }, + { + "ep_author" : "podcast@eff.org (Cindy Cohn, Jason Kelley)", + "ep_byte_length" : 2639064, + "ep_category" : "", + "ep_enclosure" : "https://cdn.simplecast.com/audio/1c515ea8-cb6d-4f72-8d17-bc9b7a566869/episodes/ec20459c-105b-4c05-a18d-2e6334ab5c66/audio/b697806f-a61d-4ad7-9b58-f510d1c7733b/default_tc.mp3?aid=rss_feed&feed=r0ih__Uy", + "ep_ep_id" : "de24d72c-7ec9-42a8-a236-1212b0330c19", + "ep_id" : 6435, + "ep_issued" : "2023-01-09 08:10:00", + "ep_last_update" : "2023-01-11 09:41:10", + "ep_link" : "https://www.eff.org/how-to-fix-the-internet-podcast", + "ep_mime_type" : "audio/mpeg", + "ep_modified" : null, + "ep_source" : null, + "ep_title" : "Coming Soon: How to Fix the Internet Season 4", + "ep_urls_id" : 97, + "id" : 97, + "latest_ep" : "2023-01-09 08:10:00", + "urls_author" : null, + "urls_child_count" : 0, + "urls_content_type" : "text/xml; charset=UTF-8", + "urls_copyright" : null, + "urls_description" : "The internet is broken—but it doesn’t have to be. If you’re concerned about how surveillance, online advertising, and automated content moderation are hurting us online and offline, the Electronic Frontier Foundation’s How to Fix the Internet podcast offers a better way forward. EFF has been defending your rights online for over thirty years and is behind many of the biggest digital rights protections since the invention of the internet. Through curious conversations with some of the leading minds in law and technology, this podcast explores creative solutions to some of today’s biggest tech challenges. Hosted by EFF Executive Director Cindy Cohn and EFF Associate Director of Digital Strategy Jason Kelley, How to Fix the Internet will help you become deeply informed on vital technology issues as we work to build a better technological future together.", + "urls_dns" : "5.135.16.50", + "urls_feedformat" : "RSS 2.0", + "urls_generator" : "https://simplecast.com", + "urls_host_up" : 1, + "urls_http_status" : "200 OK", + "urls_id" : 97, + "urls_image" : "https://image.simplecastcdn.com/images/6d0021c7-4504-4cd8-a194-c8d6c2b4fd7a/14e8afb5-8608-4501-8d90-c3e5b4551078/3000x3000/podcast-square-season-4-temp.jpg?aid=rss_feed", + "urls_language" : "en", + "urls_last_update" : "2023-01-11 09:41:10", + "urls_link" : "https://www.eff.org/how-to-fix-the-internet-podcast", + "urls_modified" : "2023-01-09 08:10:00", + "urls_parent_id" : null, + "urls_title" : "How to Fix the Internet", + "urls_url" : "https://feeds.eff.org/howtofixtheinternet", + "urls_urltype" : "Feed" + }, { "ep_author" : null, "ep_byte_length" : 120830454, diff --git a/feedWatcher.mkd b/feedWatcher.mkd index 759709c..8a5248e 100644 --- a/feedWatcher.mkd +++ b/feedWatcher.mkd @@ -136,6 +136,11 @@ - Feed: http://hackerpublicradio.org/hpr_ogg_rss.php - Licence: Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) License +- **How to Fix the Internet** + - Website: https://www.eff.org/how-to-fix-the-internet-podcast + - Feed: https://feeds.eff.org/howtofixtheinternet + - Licence: + - **International Open Podcast** - Website: http://internationalopenmagazine.org/category/podcast.html - Feed: http://spielend-programmieren.at/intopenpodcast.xml diff --git a/feedWatcher.opml b/feedWatcher.opml index 7fee395..03c5546 100644 --- a/feedWatcher.opml +++ b/feedWatcher.opml @@ -2,8 +2,8 @@ <opml version="1.1"> <head> <title>Free Culture Podcasts -2023-01-10 19:43:26 -2023-01-10 19:43:26 +2023-01-11 09:44:06 +2023-01-11 09:44:06 @@ -40,6 +40,7 @@ + diff --git a/feedWatcher.pdf b/feedWatcher.pdf index a9728d0..6a025f0 100644 Binary files a/feedWatcher.pdf and b/feedWatcher.pdf differ