#!/usr/bin/perl # use cPanelUserConfig; #for cpanel servers use 5.010; use strict; use warnings; ################################### # # blankRSS.pl # # This script pulls from a list of RSS feeds and agregates them together into a web page. # It is designed to run as a cron and overwrite the HTML file. # # license GPLv3.0 https://www.gnu.org/licenses/gpl-3.0.en.html # Code repository: https://code.jacobhaddon.com/jake/smhn # Written by Jacob Haddon https://jacobhaddon.com # ################################### # Packages use Time::Piece; # https://perldoc.perl.org/Time::Piece use Time::Seconds; # https://perldoc.perl.org/Time::Seconds use LWP::Simple; # https://metacpan.org/pod/LWP::Simple use XML::RSS; # https://metacpan.org/pod/XML::RSS use HTML::Entities; # https://metacpan.org/pod/HTML::Entities # server file folders # my $rssFilePath = "/home/USER_FOLDER/public_html/feed.xml"; # my $htmlFilePath = "/home/USER_FOLDER/public_html/index.html"; # my $errorFilePath = "/home/USER_FOLDER/public_html/feed.log"; # local file folders my $rssFilePath = "feed.xml"; my $htmlFilePath = "index.html"; my $errorFilePath = "feed.log"; ################################### # RSS Configurations ################################### my $title = "The Title of My Site"; my $homeLink = "http://example.com"; my $feedLink = "http://example/feed.xml"; my $description = 'A description of my feed, it should be one line in length.'; my $webmaster = 'webmaster@example.com'; my $copyright = 'Copyright respective writers'; ################################### # Go through list of URLs, get RSS feed, # take newest 3 that are less than $then old, # add to new RSS feed object ################################### # number of weeks in the past to hold RSS feed my $num_weeks = 2; # get today, subtact time to make cut off my $now = localtime; my $then = $now - (ONE_WEEK * $num_weeks); #number of items to keep from each feed my $number_of_items = 2; # +1 since everything starts at 0 #list to hold the new RSS items my %list; # Make the list of URLS while parsing DATA my $listHTML = "
$description
updated: $printDate
$description
Contact $title at: $webmaster
This is the list of the feeds that we are checking. If you have an RSS reader, grab them and follow along!
$listHTML