[ Followup-To: fr.comp.usenet.lecteurs-de-news ]
Bonjour,
on peut lire les news ici, par exemple:
https://nnrp.alphanet.ch/newsgroup/fr.comp.usenet.lecteurs-de-news
ou un article spécifique
https://nnrp.alphanet.ch/newsgroup/fr.comp.usenet.lecteurs-de-news/%3C2e6d00d4f228.202062.maintdoc%40jeffrey.matabio.net%3E
ou un article spécifique brut (pour débugger), lien R ci-dessus
https://nnrp.alphanet.ch/newsgroup/fr.comp.usenet.lecteurs-de-news/%3C2e6d00d4f228.202062.maintdoc%40jeffrey.matabio.net%3E?mode=raw
ou en JSON (nouvelle addition)
https://nnrp.alphanet.ch/newsgroup/fr.comp.usenet.lecteurs-de-news/%3C2e6d00d4f228.202062.maintdoc%40jeffrey.matabio.net%3E?mode=json
D'ailleurs je me suis bien amusé avec cette regexp Perl pour les
entêtes, notamment avec le lookahead non consommateur:
$headers =~ s/(^|\n)([a-zA-Z0-9\-]+):\s?(.*)(\n\s+.*|)(?=\n|$)/$headers{$2} = $3 . $4; ""/eg;
C'est une regexp globale (répétée sur toutes les occurences), en mode
exécution: soit la chaîne de tous les entêtes séparés par des sauts
de ligne $headers:
à chaque occurence, elle remplit le tableau associatif non ordonné
(tableau de hachage) %header avec le nom de l'entête comme clé et le
contenu comme valeur, supportant un contenu sur plusieurs lignes.
Le code Mojolicious qui produit le JSON devient alors:
$self->render(json => { 'headers' => \%headers,
'body' => $a->body,
'headers_raw' => $a->headers,
'rest' => $headers
});