]>
git.refcnt.org Git - lugs.git/blob - make-rss/make-rss.pl
3 # This program is free software; you can redistribute it and/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation; either version 2 of the License, or
6 # (at your option) any later version.
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # GNU General Public License for more details.
13 # You should have received a copy of the GNU General Public License
14 # along with this program; if not, write to the Free Software
15 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17 # Author: Steven Schubiger <stsc@refcnt.org>
18 # Last modified: Thu Dec 28 18:18:44 CET 2017
27 base_url
=> 'https://www.lugs.ch/lugs/termine/',
29 input
=> './termine.txt',
30 output
=> './termine.rss',
31 title
=> 'LUGS Terminliste',
32 webmaster
=> 'www@lugs.ch',
36 my $rss = LUGS
::Termine
::RSS
->new;
39 $rss->process_content;
43 package LUGS
::Termine
::RSS
;
45 use constant true
=> 1;
47 use LUGS
::Events
::Parser
();
48 use XML
::RSS
::SimpleGen
();
61 $self->{rss
} = XML
::RSS
::SimpleGen
->new($Config->{base_url
}, $Config->{title
});
63 $self->{rss
}->allow_duplicates(true
);
64 $self->{rss
}->language($Config->{language
});
65 $self->{rss
}->webmaster($Config->{webmaster
});
72 my $parser = LUGS
::Events
::Parser
->new($Config->{input
});
74 while (my $event = $parser->next_event) {
75 my $year = $event->get_event_year;
76 my $month = $event->get_event_month;
77 my $day = $event->get_event_day;
79 my $date = join '.', ($day, $month, $year);
80 my $full_date = join ', ', ($event->get_event_weekday, $date);
82 my $title = join ', ', ($full_date, $event->get_event_time, $event->get_event_title);
83 my $desc = join ' ', ($event->get_event_location, $event->get_event_more || ());
85 $self->save_item($Config->{base_url
}, $event->get_event_anchor, $title, $desc);
92 my ($url, $anchor, $title, $desc) = @_;
94 $self->{rss
}->item("$url#$anchor", $title, $desc);
101 $self->{rss
}->save($Config->{output
});