Projet

Général

Profil

Demande #3718 » feed2lav.pl

Frédéric Couchet, 14/06/2019 22:41

 
1
#! /usr/bin/perl
2
# Gérald Sédrati-Dinet
3
# Frédéric Couchet
4
# License : WTFPL
5
#  DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
6
#  Version 2, December 2004
7
#
8
#  Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
9
#
10
#  Everyone is permitted to copy and distribute verbatim or modified
11
#  copies of this license document, and changing it is allowed as long
12
#  as the name is changed.
13
#
14
#  DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
15
#  TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
16
#
17
#  0. You just DO WHAT THE FUCK YOU WANT TO.
18

    
19
use 5.014;
20
use utf8;
21
use open qw(:std :encoding(UTF-8));
22
use LWP::Simple;
23

    
24
my $url = "https://www.april.org/taxonomy_all_items/term/1917/all/feed";
25
my $filename = "/usr/share/drupal6/lav.xml";
26

    
27
BEGIN {
28
    $ENV{OUTPUT_CHARSET} = 'UTF-8';
29
    $ENV{PERL_UNICODE} = 'AS';
30
}
31

    
32
use XML::RSS;
33

    
34
my $rss = XML::RSS->new;
35

    
36
my $in_file = get($url);
37
die "Couldn't get $url\n!" unless defined $in_file;
38

    
39

    
40
open(my $fh, '>:encoding(UTF-8)', $filename) or die "Could not open file '$filename' $!";
41

    
42
$rss->parse($in_file);
43

    
44
$rss->{channel}->{description} = "<p>Chaque mardi de 15 h 30 à 17 h 00, l'April, l'association de promotion et de défense du logiciel libre, propose une émission de radio d'explications et d'échanges concernant les dossiers politiques et juridiques que l'association traite et les actions qu'elle mène : <a href=\"https://april.org/libre-a-vous\">Libre à vous !</a>. Une partie de l'émission est également consacrée aux actualités et actions de type sensibilisation. L'émission est diffusée sur radio Cause Commune sur la bande FM en Île-de-France (93.1) et <a href=\"https://cause-commune.fm\">sur le site web de la radio</a>.</p><p>Donner à chacun et chacune, de manière simple et accessible les clefs pour comprendre les enjeux mais aussi proposer des moyens d'action, tel est l'objectif de l'émission.</p>";
45

    
46
$rss->image(title=>'Libre à vous !', url=>'https://april.org/files/libre-a-vous/banniere-radio-april-rss-200.png', link=>'https://april.org/libre-a-vous');
47

    
48
foreach my $item (@{$rss->{'items'}}) {
49
    my $ogg_enclosure = $item->{enclosure};
50
#    if ($ogg_enclosure and not(ref $ogg_enclosure) and $ogg_enclosure->{type} eq 'audio/ogg')
51
    if ($ogg_enclosure and ($ogg_enclosure->{type} eq 'audio/ogg' or $ogg_enclosure->{type} eq 'application/ogg')) {
52
#        print "ICI MP3\n";
53
    my $mp3_enclosure;
54
    $mp3_enclosure->{type} = 'audio/mpeg';
55
    $mp3_enclosure->{length} = $ogg_enclosure->{length};
56
    ($mp3_enclosure->{url} = $ogg_enclosure->{url}) =~ s/\.ogg$/.mp3/;
57
    $item->{enclosure} = [$ogg_enclosure, $mp3_enclosure];
58
  }
59
}
60

    
61
#say $rss->as_string;
62

    
63
print $fh $rss->as_string;
64

    
65
close $fh;
(1-1/2)