Generated new reports and HTML

This commit is contained in:
Dave Morriss 2023-01-24 22:44:11 +00:00
parent db39655199
commit 6f20932290
8 changed files with 454 additions and 186 deletions

View File

@ -211,8 +211,9 @@ my $silent = ( defined( $options{silent} ) ? $options{silent} : 0 );
my $loadfile = $options{'load'};
my $deletefile = $options{'delete'};
my $scan = ( defined( $options{scan} ) ? $options{scan} : 0 );
my $html = ( defined( $options{html} ) ? $options{html} : 0 );
my $scan = ( defined( $options{scan} ) ? $options{scan} : 0 );
my $refresh = ( defined( $options{refresh} ) ? $options{refresh} : 0 );
my $html = ( defined( $options{html} ) ? $options{html} : 0 );
my $check = $options{check};
my $outfile = $options{out};
@ -231,6 +232,9 @@ my $template = $options{template};
#
die "Choose either -load or -delete, not both\n"
if (defined($loadfile) && defined($deletefile));
die "Options -load and -delete should not be combined with -scan or -refresh\n"
if ( ( defined($loadfile) || defined($deletefile) )
&& ( $scan || $refresh ) );
#
# Check the configuration file
@ -378,8 +382,8 @@ my $work = (
|| ( defined($report)
|| defined($json)
|| defined($opml)
|| defined($template)
|| $scan && $rows > 0 )
|| defined($template) )
|| ( ( $scan || $refresh ) && $rows > 0 )
);
unless ($work) {
@ -556,9 +560,18 @@ elsif ($action_mode eq 'delete') {
# TODO: Needs to be developed; does nothing at the moment.
#-------------------------------------------------------------------------------
if ($scan) {
$LOG->warning( "Scan is not fully implemented yet" );
warn "Refresh is not implemented yet\n";
#$LOG->warning( "Scan is not fully implemented yet" );
# Testing. Processes the first two feeds
scanDB($dbh, \%keymap, $dry_run);
# TODO: Currently broken
#scanDB($dbh, \%keymap, $dry_run);
}
#-------------------------------------------------------------------------------
# Perform a feed refresh
#-------------------------------------------------------------------------------
if ($refresh) {
warn "Refresh is not implemented yet";
}
#-------------------------------------------------------------------------------
@ -861,7 +874,7 @@ sub loadUrls {
# Perform a check on the copyright. The routine sets
# $uridata{SAVE} = 0 if the copyright is not acceptable.
#
$uridata{CHECKMODE} = $check;
$uridata{CHECKTYPE} = $check;
if ( $check ne 'none' ) {
unless (checkCopyright( $check, \%uridata )) {
#
@ -1027,6 +1040,67 @@ sub searchTitle {
}
}
#=== FUNCTION ================================================================
# NAME: refreshFeeds
# PURPOSE: To refresh the episodes on all feeds
# PARAMETERS: $dbh database handle
# RETURNS: Nothing
# DESCRIPTION:
# THROWS: No exceptions
# COMMENTS: None
# SEE ALSO: N/A
#===============================================================================
sub refreshFeeds {
my ($dbh) = @_;
my ( $sql1, $sth1, $rv1, $h1 );
my ( $aref, @urls, $DT, $stream, $feed );
my ( %uridata, $encref, $enc_changes );
#
# Query to return all feed URLs
#
$sql1 = q{SELECT id, url FROM urls WHERE urltype = 'Feed' ORDER BY title};
$sth1 = $dbh->prepare($sql1);
$rv1 = $sth1->execute();
if ( $dbh->err ) {
warn $dbh->errstr;
}
#
# Collect everything as an arrayref pointing to a bunch of arrayrefs
# containing the column details requested
#
$aref = $sth1->fetchall_arrayref;
#
# Extract just the URL strings
#
@urls = map { $_->[1] } @{$aref};
#
# Loop through the feed URLs
#
foreach my $url (@urls) {
#
# Get the feed as XML
#
$stream = getFeed($url);
next unless $stream;
#
# Parse the feed as an XML::Feed object
#
$feed = parseFeed($url,$stream);
next unless $feed;
#
# Turn the enclosures in the feed into an array of anonymous hashes
#
$encref = extractEnclosures($feed);
}
}
#=== FUNCTION ================================================================
# NAME: scanDB
@ -1215,7 +1289,6 @@ sub scanDB {
return;
}
#=== FUNCTION ================================================================
# NAME: scanFeed
# PURPOSE: Performs a scan on a single feed
@ -1485,8 +1558,8 @@ sub reportFeed {
'urls_urltype' => 'URL type',
'urls_parent_id' => 'Parent ID',
'urls_child_count' => 'Child count',
);
@seq1 = (
'urls_title',
'urls_url',
@ -1509,6 +1582,7 @@ sub reportFeed {
'urls_parent_id',
'urls_child_count',
);
@seq2 = (
'ep_title',
'ep_enclosure',
@ -1527,8 +1601,22 @@ sub reportFeed {
if ($feed) {
print $fh "Channel:\n";
foreach my $key (@seq1) {
printf $fh " %-*s: %s\n", $lwidth, $keys{$key},
coalesce( $feed->{$key}, '--' );
#
# Format the feed description with a left margin using textFormat.
# Everything else gets a simpler layout.
#
if ($key eq 'urls_description') {
printf $fh "%s\n",
textFormat(
coalesce( $feed->{$key}, '--' ),
sprintf( " %-*s:", $lwidth, $keys{$key} ),
'L', $lwidth + 4, 80
);
}
else {
printf $fh " %-*s: %s\n", $lwidth, $keys{$key},
coalesce( $feed->{$key}, '--' );
}
}
print $fh "\nLatest episode:\n";
@ -2011,38 +2099,6 @@ sub getFeed {
}
}
#=== FUNCTION ================================================================
# NAME: start_handler
# PURPOSE: HTTP::Parser handler for <title> events
# PARAMETERS: <first> the name of the tag found
# <second> the object being processed
# RETURNS: Nothing (ignored anyway)
# DESCRIPTION:
# THROWS: No exceptions
# COMMENTS: None
# SEE ALSO: N/A
#===============================================================================
#sub start_handler {
#
# #
# # Ignore any tags which are not 'title'
# #
# return if shift ne "title";
#
# #
# # Define more handlers if we have a title. One to collect the title string
# # and the other to abort the parse on encountering the end of the title.
# #
# my $self = shift;
# $self->handler(text => sub { $main::html_title = shift }, "dtext");
# $self->handler(
# end => sub {
# shift->eof if shift eq "title";
# },
# "tagname,self"
# );
#}
#=== FUNCTION ================================================================
# NAME: getHTMLTitle
# PURPOSE: Parse an HTML page to get data. At the moment this is just the
@ -2144,44 +2200,6 @@ sub parseFeed {
}
##=== FUNCTION ================================================================
## NAME: parseFeedPP
## PURPOSE: Parse a podcast feed that has already been downloaded
## PARAMETERS: $feed_url URL of the feed previously downloaded
## $feed_content String containing the content of the feed, for
## parsing
## RETURNS: An XML::FeedPP object containing the parsed feed or undef if the
## parse failed
## DESCRIPTION:
## THROWS: No exceptions
## COMMENTS: None
## SEE ALSO: N/A
##===============================================================================
#sub parseFeedPP {
# my ( $feed_url, $feed_content ) = @_;
#
# my $feed;
#
# try {
# $feed = XML::FeedPP->parse( \$feed_content, -type => 'string' );
# unless ($feed) {
# #
# # Something went wrong. Abort this feed
# #
# warn "Failed to parse $feed_url: ", XML::Feed->errstr, "\n";
# return; # undef
# }
# }
# catch {
# warn "Failed to parse $feed_url: ", $@, "\n";
# return;
# }
#
# return $feed;
#
#}
#=== FUNCTION ================================================================
# NAME: storeFeed
# PURPOSE: Stores feed attributes in a hash
@ -2259,10 +2277,10 @@ sub checkCopyright {
$decision = 0;
};
#
# If accepted we want a reason
#
if ($decision) {
#
# If accepted we want a reason for this manual check
#
try {
$reason = prompt(
-in => *STDIN,
@ -2652,6 +2670,90 @@ sub optionalFile {
return 0;
}
#=== FUNCTION ================================================================
# NAME: textFormat
# PURPOSE: Formats a block of text in an indented, wrapped style with
# a label in the left column
# PARAMETERS: $text The text to be formatted, as a scalar string
# $tag The label to be added to the left of the top
# line
# $align Tag alignment, 'L' for left, otherwise right
# $lmargin Width of the left margin (assumed to be big
# enough for the tag)
# $textwidth The width of all of the text plus left margin
# (i.e. the right margin)
# RETURNS: The formatted result as a string
# DESCRIPTION: Chops the incoming text into words (thereby removing any
# formatting). Removes any leading spaces. Loops through the
# wordlist building them into lines of the right length to fit
# between the left and right margins. Saves the lines in an
# array. Adds the tag to the first line with the alignment
# requested then returns the array joined into a string.
# THROWS: No exceptions
# COMMENTS: Inspired by Text::Format but *much* simpler. In fact T::F is
# a nasty thing to have to use; I couldn't get it to do what
# this routine does.
# TODO Make the routine more resilient to silly input values.
# SEE ALSO:
#===============================================================================
sub textFormat {
my ( $text, $tag, $align, $lmargin, $textwidth ) = @_;
my ( $width, $word );
my ( @words, @buff, @wrap );
#
# Build the tag early. If there's no text we'll just return the tag.
#
$tag = sprintf( "%*s",
( $align =~ /L/i ? ( $lmargin - 1 ) * -1 : $lmargin - 1 ), $tag );
return $tag unless $text;
$text =~ s/(^\s+|\s+$)//g;
return $tag unless $text;
#
# Chop up the incoming text removing leading spaces
#
@words = split( /\s+/, $text );
shift(@words) if ( @words && $words[0] eq '' );
#
# Compute the width of the active text
#
$width = $textwidth - $lmargin;
#
# Format the words into lines with a blank left margin
#
while ( defined( $word = shift(@words) ) ) {
if ( length( join( ' ', @buff, $word ) ) < $width ) {
push( @buff, $word );
}
else {
push( @wrap, ' ' x $lmargin . join( ' ', @buff ) );
@buff = ($word);
}
}
#
# Append any remainder
#
push( @wrap, ' ' x $lmargin . join( ' ', @buff ) ) if @buff;
#
# Insert the tag into the first line
#
substr( $wrap[0], 0, $lmargin - 1 ) = $tag;
#
# Return the formatted array as a string
#
return join( "\n", @wrap );
}
#=== FUNCTION ================================================================
# NAME: equal
# PURPOSE: Compare two strings even if undefined
@ -2824,11 +2926,11 @@ sub Options {
my ($optref) = @_;
my @options = (
"help", "manpage", "debug=i", "dry-run!",
"silent!", "load:s", "delete:s", "scan!",
"report:s", "html!", "check:s", "json:s",
"opml:s", "config=s", "out=s", "rejects:s",
"template:s",
"help", "manpage", "debug=i", "dry-run!",
"silent!", "load:s", "delete:s", "scan!",
"refresh!", "report:s", "html!", "check:s",
"json:s", "opml:s", "config=s", "out=s",
"rejects:s", "template:s",
);
if ( !GetOptions( $optref, @options ) ) {

Binary file not shown.

View File

@ -262,6 +262,14 @@
<dt><a href="https://www.castofwonders.org">Cast of Wonders</a> (<a href="https://www.castofwonders.org/feed/podcast/">feed</a>)</dt>
<dd>The Young Adult Speculative Fiction Podcast</dd>
<dt><a href="https://destinationlinux.org">Destination Linux</a> (<a href="http://destinationlinux.org/feed/mp3/">feed</a>)</dt>
@ -270,6 +278,22 @@
<dt><a href="https://distrohoppersdigest.blogspot.com/">Distrohoppers&#39; Digest</a> (<a href="https://distrohoppersdigest.blogspot.com/feeds/posts/default">feed</a>)</dt>
<dd>We are three Blokes who love Linux and trying out new stuff, we thought it would be interesting to share our experience of trying new Linux and BSD distributions and how we found it trying to live with them as our daily driver for up to a Month at a time, by recording a podcast about how we got on.</dd>
<dt><a href="https://distrohoppersdigest.blogspot.com/">Distrohoppers&#39; Digest</a> (<a href="https://distrohoppersdigest.blogspot.com/feeds/posts/default?alt=rss">feed</a>)</dt>
<dd>We are three Blokes who love Linux and trying out new stuff, we thought it would be interesting to share our experience of trying new Linux and BSD distributions and how we found it trying to live with them as our daily driver for up to a Month at a time, by recording a podcast about how we got on.</dd>
<dt><a href="https://edictzero.com">Edict Zero</a> (<a href="https://edictzero.wordpress.com/feed/">feed</a>)</dt>

View File

@ -30,7 +30,7 @@
"urls_id" : 99,
"urls_image" : "https://2.5admins.com/wp-content/uploads/powerpress/2.5-admins-1600.png",
"urls_language" : "en-US",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://2.5admins.com",
"urls_modified" : null,
"urls_parent_id" : null,
@ -70,7 +70,7 @@
"urls_id" : 1,
"urls_image" : "http://www.adminadminpodcast.co.uk/wp-content/uploads/powerpress/adminadminlogosmall.jpg",
"urls_language" : "en-US",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://www.adminadminpodcast.co.uk",
"urls_modified" : null,
"urls_parent_id" : null,
@ -110,7 +110,7 @@
"urls_id" : 30,
"urls_image" : "https://elroy.twit.tv/sites/default/files/styles/twit_album_art_2048x2048/public/images/shows/all_about_android/album_art/audio/aaa2022_albumart_standard_2400.jpg?itok=kz3rVkEc",
"urls_language" : "en-US",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://twit.tv/shows/all-about-android",
"urls_modified" : "2023-01-03 22:15:02",
"urls_parent_id" : null,
@ -150,7 +150,7 @@
"urls_id" : 2,
"urls_image" : "http://aiit.se/radio/img/aiitr_icon_144x144.png",
"urls_language" : "en-us",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "http://aiit.se/radio/",
"urls_modified" : null,
"urls_parent_id" : null,
@ -190,7 +190,7 @@
"urls_id" : 31,
"urls_image" : "http://amateurlogic.tv/images/altv-cover-art.jpg",
"urls_language" : "en-us",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "http://www.amateurlogic.tv",
"urls_modified" : "2006-04-10 17:18:29",
"urls_parent_id" : null,
@ -230,7 +230,7 @@
"urls_id" : 32,
"urls_image" : null,
"urls_language" : "en-us",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://podcast.asknoahshow.com",
"urls_modified" : "2023-01-04 21:08:23",
"urls_parent_id" : null,
@ -270,7 +270,7 @@
"urls_id" : 33,
"urls_image" : "https://cchits.net/images/cchits_coverart.png",
"urls_language" : "en-gb",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://cchits.net/daily",
"urls_modified" : "2023-01-09 00:00:00",
"urls_parent_id" : null,
@ -310,7 +310,7 @@
"urls_id" : 4,
"urls_image" : "https://ccjam.otherside.network/wp-content/uploads/sites/4/powerpress/cover2-980.png",
"urls_language" : "en-GB",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://ccjam.otherside.network/",
"urls_modified" : null,
"urls_parent_id" : null,
@ -319,6 +319,46 @@
"urls_url" : "https://ccjam.otherside.network/feed/podcast/",
"urls_urltype" : "Feed"
},
{
"ep_author" : null,
"ep_byte_length" : 57060216,
"ep_category" : "Episodes, Staff Picks, Abraham, Alicia Caporaso, Alternate History, Charlemagne, David, destiny, free will, God, Humor, Jeremy Carter, Jesus, Karl Marx, Kevin M. Hayes, Louis Evans, religion, staff picks 2022, Yeshua, Young Adult fiction",
"ep_enclosure" : "https://traffic.libsyn.com/secure/castofwonders/Wonders525.mp3",
"ep_ep_id" : "https://www.castofwonders.org/?p=8978",
"ep_id" : 6919,
"ep_issued" : "2023-01-20 19:55:00",
"ep_last_update" : "2023-01-24 17:05:06",
"ep_link" : "https://www.castofwonders.org/2023/01/cast-of-wonders-525-and-i-will-make-thy-name-great-staff-picks-2022/",
"ep_mime_type" : "audio/mpeg",
"ep_modified" : null,
"ep_source" : null,
"ep_title" : "Cast of Wonders 525: And I Will Make Thy Name Great (Staff Picks 2022)",
"ep_urls_id" : 101,
"id" : 101,
"latest_ep" : "2023-01-20 19:55:00",
"urls_author" : null,
"urls_check_type" : "none",
"urls_child_count" : 0,
"urls_content_type" : "text/xml;charset=UTF-8",
"urls_copyright" : "Copyright © 2011-2021",
"urls_description" : "The Young Adult Speculative Fiction Podcast",
"urls_dns" : "68.66.228.90",
"urls_feedformat" : "RSS 2.0",
"urls_generator" : null,
"urls_host_up" : 1,
"urls_http_status" : "200 OK",
"urls_id" : 101,
"urls_image" : "https://www.castofwonders.org/wp-content/uploads/CastOfWonders_3k_512kb-scaled.jpg",
"urls_language" : "en-US",
"urls_last_update" : "2023-01-24 17:05:06",
"urls_link" : "https://www.castofwonders.org",
"urls_modified" : null,
"urls_parent_id" : null,
"urls_reason_accepted" : null,
"urls_title" : "Cast of Wonders",
"urls_url" : "https://www.castofwonders.org/feed/podcast/",
"urls_urltype" : "Feed"
},
{
"ep_author" : null,
"ep_byte_length" : 102139280,
@ -350,7 +390,7 @@
"urls_id" : 5,
"urls_image" : "https://destinationlinux.org/wp-content/uploads/2021/06/dln-podcast-art-destination-linux-scaled.jpg",
"urls_language" : "en-US",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://destinationlinux.org",
"urls_modified" : null,
"urls_parent_id" : null,
@ -359,6 +399,86 @@
"urls_url" : "http://destinationlinux.org/feed/mp3/",
"urls_urltype" : "Feed"
},
{
"ep_author" : "Distro Hoppers Digest",
"ep_byte_length" : null,
"ep_category" : "",
"ep_enclosure" : null,
"ep_ep_id" : "tag:blogger.com,1999:blog-6837331763699536688.post-8737556239641605442",
"ep_id" : 7219,
"ep_issued" : "2023-01-07 00:59:00",
"ep_last_update" : "2023-01-24 17:13:02",
"ep_link" : "https://distrohoppersdigest.blogspot.com/2023/01/distrohoppers-digest-episode-39.html",
"ep_mime_type" : null,
"ep_modified" : "2023-01-07 00:59:17",
"ep_source" : null,
"ep_title" : "Distrohoppers' Digest Episode 39",
"ep_urls_id" : 103,
"id" : 103,
"latest_ep" : "2023-01-07 00:59:00",
"urls_author" : "Distro Hoppers Digest",
"urls_check_type" : "none",
"urls_child_count" : 0,
"urls_content_type" : "application/atom+xml; charset=UTF-8",
"urls_copyright" : null,
"urls_description" : "We are three Blokes who love Linux and trying out new stuff, we thought it would be interesting to share our experience of trying new Linux and BSD distributions and how we found it trying to live with them as our daily driver for up to a Month at a time, by recording a podcast about how we got on.",
"urls_dns" : "142.250.178.1",
"urls_feedformat" : "Atom",
"urls_generator" : "Blogger",
"urls_host_up" : 1,
"urls_http_status" : "200 OK",
"urls_id" : 103,
"urls_image" : null,
"urls_language" : null,
"urls_last_update" : "2023-01-24 17:13:02",
"urls_link" : "https://distrohoppersdigest.blogspot.com/",
"urls_modified" : "2023-01-22 13:52:11",
"urls_parent_id" : null,
"urls_reason_accepted" : null,
"urls_title" : "Distrohoppers' Digest",
"urls_url" : "https://distrohoppersdigest.blogspot.com/feeds/posts/default",
"urls_urltype" : "Feed"
},
{
"ep_author" : "noreply@blogger.com (Distro Hoppers Digest)",
"ep_byte_length" : null,
"ep_category" : "",
"ep_enclosure" : null,
"ep_ep_id" : "tag:blogger.com,1999:blog-6837331763699536688.post-8737556239641605442",
"ep_id" : 7244,
"ep_issued" : "2023-01-07 08:59:00",
"ep_last_update" : "2023-01-24 17:13:05",
"ep_link" : "https://distrohoppersdigest.blogspot.com/2023/01/distrohoppers-digest-episode-39.html",
"ep_mime_type" : null,
"ep_modified" : "2023-01-07 00:59:17",
"ep_source" : null,
"ep_title" : "Distrohoppers' Digest Episode 39",
"ep_urls_id" : 104,
"id" : 104,
"latest_ep" : "2023-01-07 08:59:00",
"urls_author" : null,
"urls_check_type" : "none",
"urls_child_count" : 0,
"urls_content_type" : "application/rss+xml; charset=UTF-8",
"urls_copyright" : null,
"urls_description" : "We are three Blokes who love Linux and trying out new stuff, we thought it would be interesting to share our experience of trying new Linux and BSD distributions and how we found it trying to live with them as our daily driver for up to a Month at a time, by recording a podcast about how we got on.",
"urls_dns" : "142.250.178.1",
"urls_feedformat" : "RSS 2.0",
"urls_generator" : "Blogger",
"urls_host_up" : 1,
"urls_http_status" : "200 OK",
"urls_id" : 104,
"urls_image" : null,
"urls_language" : null,
"urls_last_update" : "2023-01-24 17:13:05",
"urls_link" : "https://distrohoppersdigest.blogspot.com/",
"urls_modified" : null,
"urls_parent_id" : null,
"urls_reason_accepted" : null,
"urls_title" : "Distrohoppers' Digest",
"urls_url" : "https://distrohoppersdigest.blogspot.com/feeds/posts/default?alt=rss",
"urls_urltype" : "Feed"
},
{
"ep_author" : "Jack Kincaid",
"ep_byte_length" : 0,
@ -390,7 +510,7 @@
"urls_id" : 6,
"urls_image" : "https://edictzero.files.wordpress.com/2022/01/cropped-ezwebsitez_icon_2.jpg?w=32",
"urls_language" : "en",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://edictzero.com",
"urls_modified" : null,
"urls_parent_id" : null,
@ -430,7 +550,7 @@
"urls_id" : 34,
"urls_image" : "http://wikipediapodden.se/wp-content/uploads/2019/05/FB-profile-150x150.png",
"urls_language" : "sv-SE",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "http://wikipediapodden.se",
"urls_modified" : null,
"urls_parent_id" : null,
@ -470,7 +590,7 @@
"urls_id" : 7,
"urls_image" : "https://escapepod.org/wp-content/uploads/2018/03/cropped-Escape-Pod-chip-2-32x32.png",
"urls_language" : "en-US",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://escapepod.org",
"urls_modified" : null,
"urls_parent_id" : null,
@ -510,7 +630,7 @@
"urls_id" : 96,
"urls_image" : "https://ExpeditionSasquatch.org/img/logo.jpg",
"urls_language" : "en",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://ExpeditionSasquatch.org",
"urls_modified" : null,
"urls_parent_id" : null,
@ -550,7 +670,7 @@
"urls_id" : 35,
"urls_image" : "https://elroy.twit.tv/sites/default/files/styles/twit_album_art_2048x2048/public/images/shows/floss_weekly/album_art/audio/floss2022_albumart_standard_2400.jpg?itok=yojWupNV",
"urls_language" : "en-US",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://twit.tv/shows/floss-weekly",
"urls_modified" : "2023-01-04 17:18:23",
"urls_parent_id" : null,
@ -590,7 +710,7 @@
"urls_id" : 36,
"urls_image" : "https://elroy.twit.tv/sites/default/files/styles/twit_album_art_2048x2048/public/images/shows/floss_weekly/album_art/audio/floss2022_albumart_standard_2400.jpg?itok=yojWupNV",
"urls_language" : "en-US",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://twit.tv/shows/floss-weekly",
"urls_modified" : "2023-01-04 17:18:23",
"urls_parent_id" : null,
@ -630,7 +750,7 @@
"urls_id" : 37,
"urls_image" : "https://fossandcrafts.org/static/images/F_and_C_logo_combined.jpg",
"urls_language" : "en-us",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://fossandcrafts.org",
"urls_modified" : "2022-12-27 19:17:19",
"urls_parent_id" : null,
@ -670,7 +790,7 @@
"urls_id" : 88,
"urls_image" : "https://fsfe.org/events/fsfe-events.png",
"urls_language" : "en",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://fsfe.org/events/",
"urls_modified" : null,
"urls_parent_id" : null,
@ -710,7 +830,7 @@
"urls_id" : 87,
"urls_image" : "https://fsfe.org/news/fsfe-news.png",
"urls_language" : "en",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://fsfe.org/news/",
"urls_modified" : null,
"urls_parent_id" : null,
@ -750,7 +870,7 @@
"urls_id" : 38,
"urls_image" : "http://faif.us/img/cast/faif_144x144.jpg",
"urls_language" : "en-us",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "http://faif.us/cast/",
"urls_modified" : null,
"urls_parent_id" : null,
@ -790,7 +910,7 @@
"urls_id" : 89,
"urls_image" : "http://faif.us/img/cast/faif_144x144.jpg",
"urls_language" : "en-us",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "http://faif.us/cast/",
"urls_modified" : null,
"urls_parent_id" : null,
@ -830,7 +950,7 @@
"urls_id" : 8,
"urls_image" : null,
"urls_language" : "en-us",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "http://www.hwhq.com/",
"urls_modified" : null,
"urls_parent_id" : null,
@ -870,7 +990,7 @@
"urls_id" : 9,
"urls_image" : "http://gnuworldorder.info/images/site.png",
"urls_language" : "en-us",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "http://www.gnuworldorder.info",
"urls_modified" : "2021-01-01 01:20:18",
"urls_parent_id" : null,
@ -910,7 +1030,7 @@
"urls_id" : 39,
"urls_image" : null,
"urls_language" : "en-us",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "http://gnulinuxrtm.blogspot.com/",
"urls_modified" : "2022-12-05 00:43:48",
"urls_parent_id" : null,
@ -950,7 +1070,7 @@
"urls_id" : 40,
"urls_image" : "https://geekspeak.org/images/GeekSpeak_Logo_400x400_09022012.png",
"urls_language" : "en",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://geekspeak.org/",
"urls_modified" : "2022-06-01 22:03:52",
"urls_parent_id" : null,
@ -990,7 +1110,7 @@
"urls_id" : 41,
"urls_image" : null,
"urls_language" : "en",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "http://frontrowcrew.com/geeknights/monday/",
"urls_modified" : null,
"urls_parent_id" : null,
@ -1030,7 +1150,7 @@
"urls_id" : 42,
"urls_image" : "https://goinglinux.com/images/GoingLinux1400.jpg",
"urls_language" : "en-us",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://goinglinux.com",
"urls_modified" : "2022-12-21 00:00:02",
"urls_parent_id" : null,
@ -1070,7 +1190,7 @@
"urls_id" : 43,
"urls_image" : "http://hackerpublicradio.org/images/hpr_feed_small.png",
"urls_language" : "en-us",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "http://hackerpublicradio.org/about.php",
"urls_modified" : "2023-01-09 00:00:00",
"urls_parent_id" : null,
@ -1110,7 +1230,7 @@
"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-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://www.eff.org/how-to-fix-the-internet-podcast",
"urls_modified" : "2023-01-09 08:10:00",
"urls_parent_id" : null,
@ -1150,7 +1270,7 @@
"urls_id" : 44,
"urls_image" : "http://spielend-programmieren.at/intopenpodcast/international-open-podcast-logo2.png",
"urls_language" : "en",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "http://internationalopenmagazine.org/category/podcast.html",
"urls_modified" : "2016-05-10 09:35:00",
"urls_parent_id" : null,
@ -1190,7 +1310,7 @@
"urls_id" : 10,
"urls_image" : "https://archive.org/images/glogo.png",
"urls_language" : "en-us",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://archive.org/",
"urls_modified" : "2023-01-09 15:40:53",
"urls_parent_id" : null,
@ -1230,7 +1350,7 @@
"urls_id" : 45,
"urls_image" : "https://knightwise.com/wp-content/uploads/2021/05/podcast_avatar2-scaled.jpg",
"urls_language" : "en-US",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://knightwise.com",
"urls_modified" : null,
"urls_parent_id" : null,
@ -1270,7 +1390,7 @@
"urls_id" : 11,
"urls_image" : null,
"urls_language" : "en",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "http://radio.linuxquestions.org",
"urls_modified" : "2008-10-10 18:27:34",
"urls_parent_id" : null,
@ -1310,7 +1430,7 @@
"urls_id" : 46,
"urls_image" : null,
"urls_language" : "en-us",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "http://thelinuxlink.net/lager",
"urls_modified" : null,
"urls_parent_id" : null,
@ -1350,7 +1470,7 @@
"urls_id" : 12,
"urls_image" : "http://latenightlinux.com/wp-content/uploads/latenightlinux.jpg",
"urls_language" : "en-US",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://latenightlinux.com",
"urls_modified" : null,
"urls_parent_id" : null,
@ -1390,7 +1510,7 @@
"urls_id" : 47,
"urls_image" : "https://librelounge.org/static/images/ll-logo-square.png",
"urls_language" : "en-us",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://librelounge.org",
"urls_modified" : "2021-05-26 13:12:02",
"urls_parent_id" : null,
@ -1430,7 +1550,7 @@
"urls_id" : 13,
"urls_image" : null,
"urls_language" : "en",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://www.eff.org/rss/podcast/mp3.xml",
"urls_modified" : null,
"urls_parent_id" : null,
@ -1470,7 +1590,7 @@
"urls_id" : 14,
"urls_image" : "https://linuxafterdark.net/wp-content/uploads/2022/07/LAD.jpg",
"urls_language" : "en-US",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://linuxafterdark.net",
"urls_modified" : null,
"urls_parent_id" : null,
@ -1510,7 +1630,7 @@
"urls_id" : 15,
"urls_image" : "https://latenightlinux.com/LDT-3000.jpg",
"urls_language" : "en-US",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://linuxdowntime.com",
"urls_modified" : null,
"urls_parent_id" : null,
@ -1550,7 +1670,7 @@
"urls_id" : 16,
"urls_image" : null,
"urls_language" : "en-US",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://linuxgamecast.com",
"urls_modified" : null,
"urls_parent_id" : null,
@ -1590,7 +1710,7 @@
"urls_id" : 48,
"urls_image" : "https://linuxgamecast.com/wp-content/uploads/powerpress/2020ApplCover.jpg",
"urls_language" : "en-US",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://linuxgamecast.com",
"urls_modified" : null,
"urls_parent_id" : null,
@ -1630,7 +1750,7 @@
"urls_id" : 49,
"urls_image" : null,
"urls_language" : "en-us",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "http://linuxindahouse.com",
"urls_modified" : null,
"urls_parent_id" : null,
@ -1670,7 +1790,7 @@
"urls_id" : 50,
"urls_image" : null,
"urls_language" : "en-gb",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://linuxinlaws.eu",
"urls_modified" : "2023-01-05 02:00:00",
"urls_parent_id" : null,
@ -1710,7 +1830,7 @@
"urls_id" : 51,
"urls_image" : "https://linuxlads.com/images/ll_3000.png",
"urls_language" : "en",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://linuxlads.com",
"urls_modified" : null,
"urls_parent_id" : null,
@ -1750,7 +1870,7 @@
"urls_id" : 52,
"urls_image" : "http://sixgun.org/files/linuxoutlaws.jpg",
"urls_language" : "en-US",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "http://sixgun.org",
"urls_modified" : null,
"urls_parent_id" : null,
@ -1790,7 +1910,7 @@
"urls_id" : 53,
"urls_image" : null,
"urls_language" : "en",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "http://www.linuxreality.com",
"urls_modified" : null,
"urls_parent_id" : null,
@ -1830,7 +1950,7 @@
"urls_id" : 54,
"urls_image" : "http://www.setbit.org/lt-logo.jpg",
"urls_language" : null,
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "http://setbit.org/lt.html",
"urls_modified" : null,
"urls_parent_id" : null,
@ -1870,7 +1990,7 @@
"urls_id" : 98,
"urls_image" : null,
"urls_language" : "en-us",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://www.linuxuserspace.show",
"urls_modified" : "2023-01-02 11:45:06",
"urls_parent_id" : null,
@ -1910,7 +2030,7 @@
"urls_id" : 55,
"urls_image" : "https://www.linuxatwork.org/img/logo-itunes.jpg",
"urls_language" : "en",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://www.linuxatwork.org",
"urls_modified" : null,
"urls_parent_id" : null,
@ -1950,7 +2070,7 @@
"urls_id" : 56,
"urls_image" : "https://lhspodcast.info/wp-content/uploads/2016/05/cropped-lhs-newlogo-600x600-1-32x32.png",
"urls_language" : "en-US",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://lhspodcast.info/category/podcast-mp3/",
"urls_modified" : null,
"urls_parent_id" : null,
@ -1990,7 +2110,7 @@
"urls_id" : 57,
"urls_image" : "https://lhspodcast.info/wp-content/uploads/2016/05/cropped-lhs-newlogo-600x600-1-32x32.png",
"urls_language" : "en-US",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://lhspodcast.info/category/podcast-ogg/",
"urls_modified" : null,
"urls_parent_id" : null,
@ -2030,7 +2150,7 @@
"urls_id" : 58,
"urls_image" : "http://linuxlugcast.com/wp-content/uploads/powerpress/p0311718-188662.jpg",
"urls_language" : "en-US",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://linuxlugcast.com",
"urls_modified" : null,
"urls_parent_id" : null,
@ -2070,7 +2190,7 @@
"urls_id" : 59,
"urls_image" : "http://linuxlugcast.com/wp-content/uploads/powerpress/p0311718-188662.jpg",
"urls_language" : "en-US",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://linuxlugcast.com",
"urls_modified" : null,
"urls_parent_id" : null,
@ -2110,7 +2230,7 @@
"urls_id" : 60,
"urls_image" : "http://audio.lugradio.org/art_200x200.jpg",
"urls_language" : "en",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "http://www.lugradio.org/episodes.ogg.rss",
"urls_modified" : null,
"urls_parent_id" : null,
@ -2150,7 +2270,7 @@
"urls_id" : 61,
"urls_image" : "https://makerscorner.tech/wp-content/uploads/2020/01/makers_corner_itunes_coverart.jpg",
"urls_language" : "en-US",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://makerscorner.tech",
"urls_modified" : null,
"urls_parent_id" : null,
@ -2190,7 +2310,7 @@
"urls_id" : 17,
"urls_image" : "https://mintcast.org/wp-content/uploads/2020/03/big-logo-1600.png",
"urls_language" : "en-US",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://mintcast.org",
"urls_modified" : null,
"urls_parent_id" : null,
@ -2230,7 +2350,7 @@
"urls_id" : 62,
"urls_image" : "http://www.softwarefreedom.org/img/podcast/sflc-key-200x200.jpg",
"urls_language" : "en-us",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "http://www.softwarefreedom.org/podcast/http://www.softwarefreedom.org/",
"urls_modified" : null,
"urls_parent_id" : null,
@ -2270,7 +2390,7 @@
"urls_id" : 63,
"urls_image" : "https://d3t3ozftmdmh3i.cloudfront.net/production/podcast_uploaded_nologo/12892410/12892410-1613674549954-b2efc05b9037a.jpg",
"urls_language" : "en",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://anchor.fm/creativecommons",
"urls_modified" : null,
"urls_parent_id" : null,
@ -2310,7 +2430,7 @@
"urls_id" : 64,
"urls_image" : "https://ssl-static.libsyn.com/p/assets/b/4/6/1/b461334e2a151deb/avatars-000255353190-hvaldy-original.jpg",
"urls_language" : "en",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "http://opensourcesecuritypodcast.com",
"urls_modified" : "2023-01-09 00:00:00",
"urls_parent_id" : null,
@ -2350,7 +2470,7 @@
"urls_id" : 18,
"urls_image" : "https://podcastle.org/wp-content/uploads/2017/10/cropped-PC-Chip2-32x32.png",
"urls_language" : "en-US",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://podcastle.org/",
"urls_modified" : null,
"urls_parent_id" : null,
@ -2390,7 +2510,7 @@
"urls_id" : 65,
"urls_image" : "https://podcastubuntuportugal.org/images/thumbnail.png",
"urls_language" : "pt-pt",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://podcastubuntuportugal.org/",
"urls_modified" : null,
"urls_parent_id" : null,
@ -2430,7 +2550,7 @@
"urls_id" : 66,
"urls_image" : null,
"urls_language" : "en-US",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://craphound.com",
"urls_modified" : null,
"urls_parent_id" : null,
@ -2470,7 +2590,7 @@
"urls_id" : 19,
"urls_image" : null,
"urls_language" : "en-US",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://blog.launchpad.net",
"urls_modified" : null,
"urls_parent_id" : null,
@ -2510,7 +2630,7 @@
"urls_id" : 20,
"urls_image" : "https://pseudopod.org/wp-content/uploads/2018/04/cropped-PseudoPod-chip-32x32.png",
"urls_language" : "en-US",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://pseudopod.org",
"urls_modified" : null,
"urls_parent_id" : null,
@ -2550,7 +2670,7 @@
"urls_id" : 67,
"urls_image" : "http://archiv.radiotux.de/werbematerial/icons/rt-id3.png",
"urls_language" : "de",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://www.radiotux.de/",
"urls_modified" : "2023-01-04 11:11:32",
"urls_parent_id" : null,
@ -2590,7 +2710,7 @@
"urls_id" : 68,
"urls_image" : "http://ratholeradio.org/rathole_cover.png",
"urls_language" : "en-GB",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://ratholeradio.org",
"urls_modified" : null,
"urls_parent_id" : null,
@ -2617,7 +2737,7 @@
"id" : 100,
"latest_ep" : "2022-12-20 00:00:00",
"urls_author" : null,
"urls_check_type" : null,
"urls_check_type" : "manual",
"urls_child_count" : 0,
"urls_content_type" : "text/xml; charset=utf-8",
"urls_copyright" : "Copyright now Science for the People",
@ -2630,7 +2750,7 @@
"urls_id" : 100,
"urls_image" : "http://podcasts.scienceforthepeople.ca/sftp-itunes-cover.jpg",
"urls_language" : "en-us",
"urls_last_update" : "2023-01-14 23:08:22",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "http://www.scienceforthepeople.ca/",
"urls_modified" : null,
"urls_parent_id" : null,
@ -2670,7 +2790,7 @@
"urls_id" : 69,
"urls_image" : "https://elroy.twit.tv/sites/default/files/styles/twit_album_art_2048x2048/public/images/shows/security_now/album_art/audio/sn2022_albumart_standard_2400.jpg?itok=hQwhlisn",
"urls_language" : "en-US",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://twit.tv/shows/security-now",
"urls_modified" : "2023-01-04 10:41:01",
"urls_parent_id" : null,
@ -2710,7 +2830,7 @@
"urls_id" : 70,
"urls_image" : null,
"urls_language" : "en-us",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "http://www.skepticule.co.uk/",
"urls_modified" : "2022-08-18 15:47:26",
"urls_parent_id" : null,
@ -2750,7 +2870,7 @@
"urls_id" : 71,
"urls_image" : "https://fsfe.org/graphics/podcast-logo.png",
"urls_language" : "en",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://fsfe.org/news/podcast",
"urls_modified" : null,
"urls_parent_id" : null,
@ -2790,7 +2910,7 @@
"urls_id" : 72,
"urls_image" : "https://fsfe.org/graphics/podcast-logo.png",
"urls_language" : "en",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://fsfe.org/news/podcast",
"urls_modified" : null,
"urls_parent_id" : null,
@ -2830,7 +2950,7 @@
"urls_id" : 73,
"urls_image" : "https://teaearlgreyhot.org/wp-content/uploads/2020/03/tea_earl_grey_hot_artwork.jpg",
"urls_language" : "en-GB",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://teaearlgreyhot.org/",
"urls_modified" : null,
"urls_parent_id" : null,
@ -2870,7 +2990,7 @@
"urls_id" : 94,
"urls_image" : "https://thelovebug.org/wp-content/uploads/TheBigSlurp.jpg",
"urls_language" : "en-GB",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://thelovebug.org/series/slurp/",
"urls_modified" : null,
"urls_parent_id" : null,
@ -2910,7 +3030,7 @@
"urls_id" : 74,
"urls_image" : "https://www.thebinarytimes.net/favicon-32x32.png",
"urls_language" : "en-US",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://www.thebinarytimes.net",
"urls_modified" : null,
"urls_parent_id" : null,
@ -2950,7 +3070,7 @@
"urls_id" : 22,
"urls_image" : "https://www.thebugcast.org/wp-content/uploads/1400x1400-A.jpg",
"urls_language" : "en-GB",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://thebugcast.org/",
"urls_modified" : null,
"urls_parent_id" : null,
@ -2990,7 +3110,7 @@
"urls_id" : 75,
"urls_image" : "http://petecogle.co.uk/images/dsz_1400x1400.jpg",
"urls_language" : "en-US",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "http://petecogle.co.uk/category/the-dub-zone/",
"urls_modified" : null,
"urls_parent_id" : null,
@ -3030,7 +3150,7 @@
"urls_id" : 23,
"urls_image" : "https://duffercast.org/wp-content/uploads/duffercastorg-2.png",
"urls_language" : "en-US",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://duffercast.org/",
"urls_modified" : null,
"urls_parent_id" : null,
@ -3070,7 +3190,7 @@
"urls_id" : 95,
"urls_image" : "https://i0.wp.com/fullcirclemagazine.org/wp-content/uploads/2017/01/FullCircle-WeeklyNews_image.jpg?fit=640%2C425&ssl=1",
"urls_language" : "en-US",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://fullcirclemagazine.org/",
"urls_modified" : null,
"urls_parent_id" : null,
@ -3110,7 +3230,7 @@
"urls_id" : 76,
"urls_image" : null,
"urls_language" : "en",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "http://www.jodcast.net/",
"urls_modified" : "2021-12-18 17:22:28",
"urls_parent_id" : null,
@ -3150,7 +3270,7 @@
"urls_id" : 24,
"urls_image" : "http://www.jupiterbroadcasting.com/images/LAS-300-Badge144.jpg",
"urls_language" : "en",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "http://www.jupiterbroadcasting.com",
"urls_modified" : "2017-05-08 13:50:51",
"urls_parent_id" : null,
@ -3190,7 +3310,7 @@
"urls_id" : 25,
"urls_image" : null,
"urls_language" : null,
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://thelinuxcast.org/",
"urls_modified" : "2022-12-09 00:00:00",
"urls_parent_id" : null,
@ -3230,7 +3350,7 @@
"urls_id" : 77,
"urls_image" : "http://www.thelinuxlink.net/images/tllts_sitelogo.png",
"urls_language" : "en-us",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "http://www.tllts.org",
"urls_modified" : null,
"urls_parent_id" : null,
@ -3270,7 +3390,7 @@
"urls_id" : 78,
"urls_image" : "http://www.thelinuxlink.net/images/tllts_sitelogo.png",
"urls_language" : "en-us",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "http://www.tllts.org",
"urls_modified" : null,
"urls_parent_id" : null,
@ -3310,7 +3430,7 @@
"urls_id" : 79,
"urls_image" : "https://elroy.twit.tv/sites/default/files/styles/twit_album_art_2048x2048/public/images/shows/this_week_in_computer_hardware/album_art/audio/twich_albumart_audio.jpg?itok=jfLJprnC",
"urls_language" : "en-US",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://twit.tv/shows/this-week-in-computer-hardware",
"urls_modified" : "2022-10-14 10:55:52",
"urls_parent_id" : null,
@ -3350,7 +3470,7 @@
"urls_id" : 80,
"urls_image" : "https://elroy.twit.tv/sites/default/files/styles/twit_album_art_2048x2048/public/images/shows/this_week_in_google/album_art/audio/twig2022_albumart_standard_2400.jpg?itok=bWIu02YI",
"urls_language" : "en-US",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://twit.tv/shows/this-week-in-google",
"urls_modified" : "2023-01-04 20:40:02",
"urls_parent_id" : null,
@ -3390,7 +3510,7 @@
"urls_id" : 81,
"urls_image" : "https://ssl-static.libsyn.com/p/assets/6/c/0/5/6c055f7feb4ada27/TWiM_v3_white2400.jpg",
"urls_language" : "en",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "http://www.asm.org/twim/",
"urls_modified" : "2022-12-29 05:00:00",
"urls_parent_id" : null,
@ -3430,7 +3550,7 @@
"urls_id" : 82,
"urls_image" : "https://elroy.twit.tv/sites/default/files/styles/twit_album_art_2048x2048/public/images/shows/this_week_in_tech/album_art/audio/twit_2022albumart_standard_2048.jpg?itok=NNZEJLnI",
"urls_language" : "en-US",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://twit.tv/shows/this-week-in-tech",
"urls_modified" : "2023-01-08 21:00:03",
"urls_parent_id" : null,
@ -3470,7 +3590,7 @@
"urls_id" : 83,
"urls_image" : "http://tuxjam.otherside.network/wp-content/uploads/sites/5/powerpress/Cover2.jpg",
"urls_language" : "en-GB",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://tuxjam.otherside.network/",
"urls_modified" : null,
"urls_parent_id" : null,
@ -3510,7 +3630,7 @@
"urls_id" : 26,
"urls_image" : "https://ubuntupodcast.org/wp-content/uploads/2015/12/uplogo_388-150x150.png",
"urls_language" : "en-GB",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://ubuntupodcast.org",
"urls_modified" : null,
"urls_parent_id" : null,
@ -3550,7 +3670,7 @@
"urls_id" : 84,
"urls_image" : "http://ubuntupodcast.org/wp-content/uploads/powerpress/uplogo_1400.png",
"urls_language" : "en-GB",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://ubuntupodcast.org",
"urls_modified" : null,
"urls_parent_id" : null,
@ -3590,7 +3710,7 @@
"urls_id" : 85,
"urls_image" : "http://wikipediapodden.se/wp-content/uploads/2019/05/FB-profile-150x150.png",
"urls_language" : "sv-SE",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "http://wikipediapodden.se/prenumerera/",
"urls_modified" : null,
"urls_parent_id" : null,
@ -3630,7 +3750,7 @@
"urls_id" : 27,
"urls_image" : null,
"urls_language" : "en-us",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "http://bsdtalk.blogspot.com/",
"urls_modified" : "2022-12-14 04:41:56",
"urls_parent_id" : null,
@ -3670,7 +3790,7 @@
"urls_id" : 28,
"urls_image" : null,
"urls_language" : "en-US",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://fullcirclemagazine.org",
"urls_modified" : null,
"urls_parent_id" : null,
@ -3710,7 +3830,7 @@
"urls_id" : 29,
"urls_image" : null,
"urls_language" : "en",
"urls_last_update" : "2023-01-14 20:48:07",
"urls_last_update" : "2023-01-14 23:39:30",
"urls_link" : "https://urandom-podcast.info/",
"urls_modified" : null,
"urls_parent_id" : null,

View File

@ -42,11 +42,26 @@
- Feed: https://ccjam.otherside.network/feed/podcast/
- Copyright:
- **Cast of Wonders**
- Website: https://www.castofwonders.org
- Feed: https://www.castofwonders.org/feed/podcast/
- Copyright: Copyright © 2011-2021
- **Destination Linux**
- Website: https://destinationlinux.org
- Feed: http://destinationlinux.org/feed/mp3/
- Copyright:
- **Distrohoppers' Digest**
- Website: https://distrohoppersdigest.blogspot.com/
- Feed: https://distrohoppersdigest.blogspot.com/feeds/posts/default
- Copyright:
- **Distrohoppers' Digest**
- Website: https://distrohoppersdigest.blogspot.com/
- Feed: https://distrohoppersdigest.blogspot.com/feeds/posts/default?alt=rss
- Copyright:
- **Edict Zero**
- Website: https://edictzero.com
- Feed: https://edictzero.wordpress.com/feed/

View File

@ -2,8 +2,8 @@
<opml version="1.1">
<head>
<title>Free Culture Podcasts</title>
<dateCreated>2023-01-14 23:09:26</dateCreated>
<dateModified>2023-01-14 23:09:26</dateModified>
<dateCreated>2023-01-24 17:16:19</dateCreated>
<dateModified>2023-01-24 17:16:19</dateModified>
<ownerName></ownerName>
<ownerEmail></ownerEmail>
<expansionState></expansionState>
@ -22,7 +22,10 @@
<outline description="The Ask Noah Show is a weekly talk radio show where we focus on Linux and Open Source technology. We invite the community to participate live on the air 1-855-450-6624. The show airs Tuesdays at 6pm CT on asknoahshow.com and at KEQQ 88.3 FM in Grand Forks ND. It's a free call 1-855-450-NOAH so join us and start on your way to owning your operating system, your software, and technology." htmlUrl="https://podcast.asknoahshow.com" text="Ask Noah Show" title="Ask Noah Show" xmlUrl="https://feeds.fireside.fm/asknoah/rss" />
<outline description="CCHits.net is designed to provide a Chart for Creative Commons Music, in a way that is easily able to be integrated into other music shows that play Creative Commons Music. CCHits.net has a daily exposure podcast, playing one new track every day, a weekly podcast, playing the last week of tracks played on the podcast, plus the top rated three tracks from the previous week. There is also a monthly podcast which features the top rated tracks over the whole system." htmlUrl="https://cchits.net/daily" text="CCHits.net" title="CCHits.net" xmlUrl="https://cchits.net/daily/rss" />
<outline description="Community music podcast turn up the volume!!!" htmlUrl="https://ccjam.otherside.network/" text="CCJam" title="CCJam" xmlUrl="https://ccjam.otherside.network/feed/podcast/" />
<outline description="The Young Adult Speculative Fiction Podcast" htmlUrl="https://www.castofwonders.org" text="Cast of Wonders" title="Cast of Wonders" xmlUrl="https://www.castofwonders.org/feed/podcast/" />
<outline description="Destination Linux is a podcast made by people who love running Linux and is the flagship show for the Destination Linux Network." htmlUrl="https://destinationlinux.org" text="Destination Linux" title="Destination Linux" xmlUrl="http://destinationlinux.org/feed/mp3/" />
<outline description="We are three Blokes who love Linux and trying out new stuff, we thought it would be interesting to share our experience of trying new Linux and BSD distributions and how we found it trying to live with them as our daily driver for up to a Month at a time, by recording a podcast about how we got on." htmlUrl="https://distrohoppersdigest.blogspot.com/" text="Distrohoppers' Digest" title="Distrohoppers' Digest" xmlUrl="https://distrohoppersdigest.blogspot.com/feeds/posts/default" />
<outline description="We are three Blokes who love Linux and trying out new stuff, we thought it would be interesting to share our experience of trying new Linux and BSD distributions and how we found it trying to live with them as our daily driver for up to a Month at a time, by recording a podcast about how we got on." htmlUrl="https://distrohoppersdigest.blogspot.com/" text="Distrohoppers' Digest" title="Distrohoppers' Digest" xmlUrl="https://distrohoppersdigest.blogspot.com/feeds/posts/default?alt=rss" />
<outline description="Home of the Cyberpunk / Science Fiction Audio Drama series, Edict Zero - FIS &amp; other features from Slipgate Nine Entertainment" htmlUrl="https://edictzero.com" text="Edict Zero" title="Edict Zero" xmlUrl="https://edictzero.wordpress.com/feed/" />
<outline description="En podcast om Wikipedia på svenska" htmlUrl="http://wikipediapodden.se" text="English Wikipediapodden" title="English Wikipediapodden" xmlUrl="http://wikipediapodden.se/tag/english/feed/" />
<outline description="The Original Science Fiction Podcast" htmlUrl="https://escapepod.org" text="Escape Pod" title="Escape Pod" xmlUrl="http://escapepod.org/feed/" />

Binary file not shown.

View File

@ -1,5 +1,8 @@
[%# feedWatcher_4.tpl 2020-01-25 -%]
[%# Generates simple lines each containing title and description per feed -%]
*The following is a list of Creative Commons podcasts recommended by the Hacker Public Radio community.*
[% i = 0 -%]
[% WHILE i < feeds.size -%]
[% IF feeds.$i.urls_description.length > 0 -%]
@ -7,8 +10,9 @@
[% ELSE -%]
[% desc = "[No description]" -%]
[% END -%]
[% feeds.$i.urls_title %]: [% desc %]
**[% feeds.$i.urls_title %]**: [% desc %]
[% i = i + 1 -%]
[% END -%]
[%#
# vim: syntax=tt2:ts=8:sw=4:ai:et:tw=78:fo=tcrqn21