flnews_post_proc 1.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +381 -0
- data/bin/flnews_post_proc +128 -0
- data/doc/fr/html/flnews_post_proc.html +704 -0
- data/doc/fr/man/flnews_post_proc.1.gz +0 -0
- data/doc/fr/pdf/flnews_post_proc.pdf +0 -0
- data/doc/fr/rst/flnews_post_proc.rst +380 -0
- data/doc/html/flnews_post_proc.html +342 -0
- data/doc/license.txt +13 -0
- data/doc/man/flnews_post_proc.1.gz +0 -0
- data/doc/pdf/flnews_post_proc.pdf +0 -0
- data/doc/rst/flnews_post_proc.rst +336 -0
- data/lib/_quoting_style_regexp +2 -0
- data/lib/basic_logging.rb +202 -0
- data/lib/body.rb +364 -0
- data/lib/color_output.rb +65 -0
- data/lib/configuration.rb +143 -0
- data/lib/flnews_post_proc.conf +173 -0
- data/lib/flnews_post_proc.rb +72 -0
- data/lib/headers.rb +172 -0
- data/lib/newsgroups.rb +152 -0
- data/lib/override.rb +199 -0
- data/lib/ruby_dlg +139 -0
- data/lib/version.rb +22 -0
- data/lib/whiptail_dlg +84 -0
- data/lib/yad_dlg +53 -0
- data/lib/zenity_dlg +60 -0
- metadata +109 -0
Binary file
|
Binary file
|
@@ -0,0 +1,380 @@
|
|
1
|
+
=======================
|
2
|
+
flnews_post_proc
|
3
|
+
=======================
|
4
|
+
------------------------------------------
|
5
|
+
Post-Traitement pour flnews
|
6
|
+
------------------------------------------
|
7
|
+
|
8
|
+
SYNOPSIS
|
9
|
+
=======================
|
10
|
+
|
11
|
+
Un article est envoyé au logiciel de post-traitement via STDIN. Ceci se passe
|
12
|
+
automatiquement, quand la variable « post_proc » dans le fichier de
|
13
|
+
configuration de flnews a la valeur *flnews_post_proc*.
|
14
|
+
|
15
|
+
Si un article a été sauvegardé dans un fichier, il peut servir pour tester le
|
16
|
+
fonctionnement de flnews_post_proc, en lançant une commande comme :
|
17
|
+
|
18
|
+
**flnews_post_proc < article.txt**
|
19
|
+
|
20
|
+
ou si vous préférez l'équivalent :
|
21
|
+
|
22
|
+
**cat article.txt | flnews_post_proc**
|
23
|
+
|
24
|
+
DESCRIPTION
|
25
|
+
=======================
|
26
|
+
|
27
|
+
Le lecteur de news **flnews** est suffisant pour l'accès au Usenet, c'est à
|
28
|
+
dire pour lire les articles et pour les rédiger et les envoyer aux newsgroups
|
29
|
+
de votre choix.
|
30
|
+
|
31
|
+
Quand vous comparez les clients pour les news, vous allez toujours identifier
|
32
|
+
le logiciel qui correspond à vos attentes et vos habitudes. Flnews, comme un
|
33
|
+
logiciel basique, vous offre la possibilité d'influencer comment il fonctionne
|
34
|
+
et aussi de manipuler directement les articles qu'il produit, juste avant qu'ils
|
35
|
+
soient envoyés au serveur nntp.
|
36
|
+
|
37
|
+
Ce post-traitement peut servir à ajouter et à modifier des détails du message
|
38
|
+
d'une manière qui n'est actuellement pas possible avec seulement flnews. Comme
|
39
|
+
le logiciel est configurable, il peut probablement répondre aux besoins de
|
40
|
+
quelques utilisateurs du Usenet. Quand même, vous devez le comprendre comme un
|
41
|
+
exemple pour ce qui est possible et pour inspiration, afin de créer vos propres
|
42
|
+
solutions.
|
43
|
+
|
44
|
+
Les limites d'un lecteur basique de news – ce qui peut faire flnews_post_proc
|
45
|
+
-----------------------------------------------------------------------------
|
46
|
+
|
47
|
+
Bien que les articles qui sont créés avec flnews sont complets et prêt pour
|
48
|
+
l'envoi, certains utilisateurs ne seront pas toujours d'accord avec le résultat
|
49
|
+
et ce pour des raisons arbitraires :
|
50
|
+
|
51
|
+
* Il peut y avoir des inconvénients quand vous communiquez dans de groupes
|
52
|
+
diverses en plusieurs langues. La ligne d'introduction qui fait référence à
|
53
|
+
un article précédent, ne peut être configurée qu'une seule fois pour flnews.
|
54
|
+
La conséquence peut être une introduction en Anglais quand vous postez dans
|
55
|
+
un groupe français.
|
56
|
+
|
57
|
+
Avec mon logiciel de post-traitement vous pouvez imposer des introductions
|
58
|
+
spécifiques, à chaque fois pour une ou plusieurs newsgroups.
|
59
|
+
|
60
|
+
* Le même conflit se produit quand vous avez défini une signature mais voudriez
|
61
|
+
la remplacer contre une autre, selon le groupe dans lequel vous êtes en train
|
62
|
+
de poster.
|
63
|
+
|
64
|
+
flnews_post_proc peut faire exactement ça, quand vous avez configuré quel
|
65
|
+
signature doit apparaître dans quel newsgroup ou liste de newsgroups.
|
66
|
+
|
67
|
+
* Quelques entêtes supplémentaires peuvent servir à transmettre des informations
|
68
|
+
aux lecteurs intéressés, comme l'ID de votre clé GnuPG, vos connaissances en
|
69
|
+
langues ou pareil. Il se trouve que la signature est mieux pour ça, mais vous
|
70
|
+
êtes libres. Je veux mentionner « face » et « x-face » mais préfère que vous
|
71
|
+
ne vous en souvenez pas.
|
72
|
+
|
73
|
+
Ces entêtes, – Custom-Headers – peuvent être définis dans la configuration
|
74
|
+
du logiciel et vont être utilisées dans chaque article sortant.
|
75
|
+
|
76
|
+
* Les entêtes « Archive » et « X-No-Archive » sont parfois utilisés afin
|
77
|
+
d'éviter l'archivage d'un article. Il ne devrait par conséquence pas être
|
78
|
+
trouvé par les moteurs de recherche ( Google notamment ). Les articles dans
|
79
|
+
les groupes de test, par exemple, ne valent probablement pas qu'on les trouve
|
80
|
+
parmi les résultats des recherches.
|
81
|
+
|
82
|
+
Avec flnews_post_proc vous pouvez décider et imposer que vos articles dans
|
83
|
+
certains newsgroups contiendront d'office les deux entêtes **Archive: no** et
|
84
|
+
**X-No-Archive: Yes**.
|
85
|
+
|
86
|
+
**ATTENTION**: Dès 2024, l'entête « X-No-Archive » a perdu beaucoup de son
|
87
|
+
utilité. Les opérateurs des serveurs peuvent décider s'ils veulent le prendre
|
88
|
+
en considération ou non.
|
89
|
+
|
90
|
+
* Certains messages mentionnent d'autres articles ou des URLs de pages Web.
|
91
|
+
S'ils sont nombreux, ces références peuvent déranger la lecture à cause de
|
92
|
+
leur syntaxe spécifique.
|
93
|
+
|
94
|
+
Mon logiciel est capable d'identifier des fragments de text marqué – pas
|
95
|
+
seulement des références – et les transformer en notes en bas de page. Vous
|
96
|
+
pouvez imaginer ça comme le fonctionnement de la balise <ref/> de Wikipedia,
|
97
|
+
mais vous pouvez définir votre propre séparateur pour marquer les fragments
|
98
|
+
de text dans le fichier de configuration.
|
99
|
+
|
100
|
+
Exemple ( avec séparateur **%=** ) :
|
101
|
+
« Ceci est un objet %=et ceci devient la note en bas de page, qui décrit
|
102
|
+
l'objet plus précisement=% »
|
103
|
+
|
104
|
+
Dialogue pour désactiver des options
|
105
|
+
------------------------------------
|
106
|
+
Juste avant d'entrer en action, flnews_post_proc peut afficher un dialogue, qui
|
107
|
+
vous laisse **désactiver** des options fixées dans la configuration. Sous
|
108
|
+
condition qu'un des outils YAD, Zenity, Whiptail ou seulement xterm est
|
109
|
+
disponible, vous pouvez choisir dans les options suivantes, ceux que vous
|
110
|
+
voulez ignorer pour l'article en préparation. Vous **ne pouvez pas** activer
|
111
|
+
des options, qui ne l'ont pas été auparavant :
|
112
|
+
|
113
|
+
* Signatures, comme définis dans la configuration **peuvent être ignorées**.
|
114
|
+
Soit une signature par défaut sera appliquée, si prévue, ou aucune.
|
115
|
+
|
116
|
+
* Entêtes supplémentaires, si définis, peuvent rester absentes de l'article.
|
117
|
+
|
118
|
+
* Les entêtes Archive et X-No-Archive, si prévus pour le newsgroup choisi,
|
119
|
+
peuvent être ignorés.
|
120
|
+
|
121
|
+
* L'auto correction de URLs et références à d'autres articles peut être
|
122
|
+
désactivé.
|
123
|
+
|
124
|
+
* L'écriture d'un protocole peut être arrêtée.
|
125
|
+
|
126
|
+
En tapant Esc ou en poussant le bouton « Annuler » du dialogue, vous pouvez
|
127
|
+
interrompre le processus, flnews ne vas pas envoyer l'article.
|
128
|
+
|
129
|
+
Vous pouvez même désactiver le dialogue, ce qui assure que toutes les options
|
130
|
+
configurées seront appliquées sans plus d'interaction ( à voir dessous : optoin
|
131
|
+
OVERRIDE_CONFIG ).
|
132
|
+
|
133
|
+
CONFIGURATION
|
134
|
+
=============
|
135
|
+
La première fois que vous exécutez le logiciel, une copie de la configuration
|
136
|
+
par défaut sera écrit dans */home/[utilisateur]/.flnews_post_proc.conf* C'est
|
137
|
+
ce fichier qui sera désormais utilisé. Si vous l'effacez, il sera recréé à la
|
138
|
+
prochaine occasion, mais vos modifications seront perdues.
|
139
|
+
|
140
|
+
Le fichier de configuration est en format YAML et plein d'explications. Les
|
141
|
+
variables définis dans ce fichier peuvent être classées en deux catégories :
|
142
|
+
|
143
|
+
* Variables qui décrivent des valeurs déterminées par flnews. Ils peuvent être
|
144
|
+
utiilisées ou remplacées. Les composants importants sont normalement
|
145
|
+
spécifiés dans une « capture group ».
|
146
|
+
|
147
|
+
* Variables qui définissent du nouveau contenu ou des changements dans le
|
148
|
+
contenu.
|
149
|
+
|
150
|
+
**FUP_NAME**
|
151
|
+
Une « expression régulière » ( “regular expression” ) décrivant la chaîne de
|
152
|
+
caractères qui contient le nom de l'auteur d'un article précédent, qu'on veut
|
153
|
+
citer en partie. Cet élément est reconnu dans l'article d'origine et peut
|
154
|
+
être utilisé à la place de l'élément correspondant dans *GROUP_INTRO* ( à voir
|
155
|
+
plus bas ). Le format de l'expression est celui de la classe Regexp dans Ruby.
|
156
|
+
Veillez de masquer le backslash '\\' avec un autre, comme dans l'exemple. Un
|
157
|
+
« capture group » '()' sert à extraire le nom du résultat de la comparaison.
|
158
|
+
|
159
|
+
Laissez ce champs vide afin de maintenir le comportement configuré pour flnews.
|
160
|
+
|
161
|
+
CONTENU : L'équivalent d'une regular expression en chaîne de caractères.
|
162
|
+
|
163
|
+
PAR DÉFAUT : Vide
|
164
|
+
|
165
|
+
EXEMPLE 1 : "On \\\\d+.\\\\d+.\\\\d{2,4} at \\\\d+:\\\\d+ **(.*)** wrote:"
|
166
|
+
|
167
|
+
EXEMPLE 2 : "**(.*)** wrote:"
|
168
|
+
|
169
|
+
**FUP_GROUP**
|
170
|
+
Une « expression régulière » ( “regular expression” ) décrivant la chaîne de
|
171
|
+
caractères qui contient le newsgroup où a été publié l'article précédent à qui nous
|
172
|
+
faisons référence dans un « followup ».
|
173
|
+
|
174
|
+
Laissez ce champs vide afin d'ignorer le groupe précis.
|
175
|
+
|
176
|
+
CONTENU : l'équivalent d'une regular expression en chaîne de caractères.
|
177
|
+
|
178
|
+
PAR DÉFAUT : Vide
|
179
|
+
|
180
|
+
EXEMPLE : "wrote in **(.*)**:"
|
181
|
+
|
182
|
+
**GROUP_INTROS**
|
183
|
+
Des introductions qui font référence à l'auteur de l'article précédent que
|
184
|
+
nous souhaitons citer. Si vous avez trouvé le newsgroup où l'article a été
|
185
|
+
publié ( à voir : FUP_GROUP, ci-dessus ), et le nom de son auteur
|
186
|
+
( FUP_NAME ), vous pouvez utiliser ces valeurs ici.
|
187
|
+
|
188
|
+
Jusqu'à prochaine ordre, seulement %fup_name% est %fup_group% sont reproduit
|
189
|
+
dans l'introduction resultant.
|
190
|
+
|
191
|
+
| CONTENU : Un newsgroup ou regexp par ligne, suivi de deux points, un espace et
|
192
|
+
| une chaîne de caractères.
|
193
|
+
|
194
|
+
PAR DÉFAUT : Comme configuré dans flnews.
|
195
|
+
|
196
|
+
| EXEMPLE ( un groupe et une hiérarchie ) :
|
197
|
+
| alt.test: "Thus spoke %fup_name% in %fup_group%"
|
198
|
+
| fr\\.*: "C'était dans %fup_group%, que %fup_name% c'est exprimé ainsi"
|
199
|
+
|
200
|
+
**GROUP_SIGS**
|
201
|
+
Une signature par newsgroup ou expression.
|
202
|
+
ATTN! Vous devez noter \\r\\n pour les sautes de lignes, si une signature
|
203
|
+
s'étend sur plusieurs lignes.
|
204
|
+
|
205
|
+
CONTENU : un newsgroup ou expression par ligne, suivi de deux poins, un espace
|
206
|
+
et une chaîne de caractères.
|
207
|
+
|
208
|
+
PAR DÉFAUT : Comme configuré dans flnews.
|
209
|
+
|
210
|
+
EXEMPLE : fr.test: "Signature pour alt.test\\r\\nseconde ligne"
|
211
|
+
|
212
|
+
**CUSTOM_HEADERS**
|
213
|
+
Entêtes supplémentaires pour l'article sortant.
|
214
|
+
|
215
|
+
CONTENU : 1 ligne par entête : un trait d'union, un espace, puis une chaîne de
|
216
|
+
caractères comprenant le nom de l'entête, puis deux points et la valeur de
|
217
|
+
l'entête.
|
218
|
+
|
219
|
+
PAR DÉFAUT : Vide ( pas défini )
|
220
|
+
|
221
|
+
| EXEMPLE ( 2 entêtes ) :
|
222
|
+
| - 'X-My-Header: nothing fancy'
|
223
|
+
| - 'X-Another-Header: care not!'
|
224
|
+
|
225
|
+
**NO_ARCHIVE_GROUPS**
|
226
|
+
Les newsgroups, où les entêtes « Archive: no » et « X-No-Archive: yes »
|
227
|
+
doivent être présents.
|
228
|
+
|
229
|
+
CONTENU : Un trait d'union et un espace, puis une chaîne de caractères,
|
230
|
+
contenant le nom du groupe ou une expression.
|
231
|
+
|
232
|
+
PAR DÉFAUT : Vide
|
233
|
+
|
234
|
+
| EXEMPLE ( 1 groupe, 1 hiérarchie ) :
|
235
|
+
| - "alt.test"
|
236
|
+
| - "^news.*"
|
237
|
+
|
238
|
+
|
239
|
+
**DEBUG_LOG**
|
240
|
+
Le nom d'un fichier, qui va servir comme protocol. Si le nom d'un fichier
|
241
|
+
valide est donné, le protocol est activé. Laissez vide pour désactiver le
|
242
|
+
protocol.
|
243
|
+
|
244
|
+
| CONTENU : Le nom d'un fichier dont les droits permettent l'écriture.
|
245
|
+
| Il sera créé s'il n'existe pas encore et remplacé à chaque exécution
|
246
|
+
| du logiciel.
|
247
|
+
|
248
|
+
PAR DÉFAUT : Vide
|
249
|
+
|
250
|
+
EXEMPLE : '/tmp/a_log-file.txt'
|
251
|
+
|
252
|
+
**LOG LEVEL**
|
253
|
+
Un de debug, fatal, error, info, warn
|
254
|
+
|
255
|
+
| EXEMPLE :
|
256
|
+
| LOG_LEVEL: 'debug'
|
257
|
+
|
258
|
+
**REFERENCES_SEPARATOR**
|
259
|
+
Un symbole ou une séquence de symboles qui marquent la fin du corps du message
|
260
|
+
et le début d'une liste de « références » ou « notes de pied de page ». Il
|
261
|
+
apparaîtra seulement, si le message contient du text marqué pour servir comme
|
262
|
+
note de pied de page. À voir *REFERENCES_DELIMITER* ci-dessous.
|
263
|
+
|
264
|
+
Si l'option n'est pas défini ou vide, la liste suit à la dernière ligne du
|
265
|
+
corps du message, sans séparation supplémentaire.
|
266
|
+
|
267
|
+
CONTENU : Un symbol ou séquence de symboles entre guillemets " " ou ' '.
|
268
|
+
|
269
|
+
PAR DÉFAUT : Vide
|
270
|
+
|
271
|
+
EXEMPLE : '---------'
|
272
|
+
|
273
|
+
**REFERENCES_DELIMITER**
|
274
|
+
Une séquence d'au moins deux symboles qui marque le début d'un text qui sera
|
275
|
+
transformé en note de pied de page ( ou référence ). La **séquence inversée**
|
276
|
+
doit marquer la fin du même fragment de text. La présence de cette séquence
|
277
|
+
dans le message d'origine, a comme conséquence que le text marqué sera déplacé
|
278
|
+
vers la fin, au-dessous du corps du message.
|
279
|
+
Si *REFERENCES_SEPARATOR* ( option ci-dessus ) est défini, il va séparer le message
|
280
|
+
de la liste des notes du pied de page.
|
281
|
+
|
282
|
+
Laissez ce champs vide pour éviter la création des noted du pied de page.
|
283
|
+
|
284
|
+
CONTENU : Une séquence de symboles entre guillemets ( '' )
|
285
|
+
|
286
|
+
PAR DÉFAUT : Vide
|
287
|
+
|
288
|
+
EXEMPLE: '%?'
|
289
|
+
|
290
|
+
**REFERENCE_FORMAT**
|
291
|
+
Une chaîne de formatage, contenant %s pour représenter une nombre, qui
|
292
|
+
remplace le texte d'une future note du pied de page dans le corps du message.
|
293
|
+
|
294
|
+
PAR DÉFAUT : " %s)" -> devient 1) ... 2) ... 3)
|
295
|
+
|
296
|
+
EXEMPLE : "(%s)" -> devient (1) ... (2) ... (3)
|
297
|
+
|
298
|
+
**VFY_URLS**
|
299
|
+
Une constante booléen. Elle détermine si le programme doit essayer de corriger
|
300
|
+
des URLs. Même si les URLs sont identifiables, seulement quelques manipulations
|
301
|
+
sont temptées :
|
302
|
+
|
303
|
+
* '<' et '>' sont ajoutés, si manquants
|
304
|
+
* Des slashes sont insérés, s'ils manquent après "http(s):"
|
305
|
+
|
306
|
+
ATTN! Le programme ne peut pas différencier entre "mailto:" et "news:". Si ni l'un
|
307
|
+
ni l'autre est donné, mais '@' est présent, "news:" est ajouté automatiquement.
|
308
|
+
|
309
|
+
Si la variable n'est pas défini, la valeur 'yes' est présumée.
|
310
|
+
|
311
|
+
CONTENU: Un de YES, yes, NO, no, et autres tels variations
|
312
|
+
|
313
|
+
PAR DÉFAUT: yes
|
314
|
+
|
315
|
+
EXEMPLE: No
|
316
|
+
|
317
|
+
**OVERRIDE_CONFIG**
|
318
|
+
Une constante booléenne. Vous pouvez décider d'ignorer les options suivantes
|
319
|
+
avant qu'un article est posté : GROUP_SIGS, XNAY_GROUPS, CUSTOM_HEADERS,
|
320
|
+
VFY_URLS et DEBUG_LOG. Un dialogue peut être affiché, qui permet la
|
321
|
+
désactivation de chacune de ces options. Les valeurs par défaut, définis pour
|
322
|
+
flnews, vont donc prévaloir.
|
323
|
+
|
324
|
+
ATTN ! En poussant Esc ou le bouton « Annuler » du dialogue, vous interrompez
|
325
|
+
le programme et flnews ne va rien envoyer.
|
326
|
+
|
327
|
+
Notez la valeur 'no', 'NO' ou pareil pour désactiver le dialogue.
|
328
|
+
|
329
|
+
PAR DÉFAUT : yes
|
330
|
+
|
331
|
+
EXEMPLE: No
|
332
|
+
|
333
|
+
Autres Informations
|
334
|
+
===================
|
335
|
+
|
336
|
+
Tester
|
337
|
+
------
|
338
|
+
L'effet qu'aura l'exécution du programme peut être vérifié de deux manières :
|
339
|
+
|
340
|
+
1. En fournissant un article, sauvegardé auparavant dans un fichier :
|
341
|
+
|
342
|
+
**:~$ /usr/local/bin/[post-processor] < [test-article]**
|
343
|
+
|
344
|
+
Ceci va vous présenter la nouvelle version de l'article sur l'écran, mais
|
345
|
+
vous pouvez aussi diriger le résultat dans un autre fichier. C'est une
|
346
|
+
excellente technique pour tester un logiciel pendant le développement ou
|
347
|
+
votre configuration avant que vous vous en servez.
|
348
|
+
|
349
|
+
2. En envoyant un message directement dans un groupe de test ( comme alt.test,
|
350
|
+
fr.test ou similaires ).
|
351
|
+
Ceci est obligatoire avant que vous postez dans des groupes thématiques et
|
352
|
+
si les réglages du post-traitement vont modifier l'article.
|
353
|
+
|
354
|
+
Code source
|
355
|
+
-----------
|
356
|
+
Le fichier flnews_post_proc.gem, que vous recevez à l'aide de l'outil *gem* ou
|
357
|
+
directement du site *rubygems.org*, contient tout le code source du logiciel et
|
358
|
+
de la documentation ( cette page notamment ). Pour lire le code du logiciel,
|
359
|
+
vous devez
|
360
|
+
|
361
|
+
1. utiliser *tar -xf flnews_post_proc-[version].gem*
|
362
|
+
2. décomprimer l'archive data.gz : *gunzip data.gz*
|
363
|
+
3. Extraire le contenu du fichier résultant « data.tar » :
|
364
|
+
*tar -xf data.tar*
|
365
|
+
|
366
|
+
À la fin les répertoires bin, doc et lib seront créés.
|
367
|
+
|
368
|
+
License
|
369
|
+
-------
|
370
|
+
flnews_post_proc est distribué sous les conditions de la WTFPL-2.0 ou plus
|
371
|
+
récent ( À voir http://www.wtfpl.net/txt/copying/ ou license-text dans le
|
372
|
+
répertoire « doc » de la gem ).
|
373
|
+
|
374
|
+
Auteur
|
375
|
+
------
|
376
|
+
| flnews_post_proc a été développé par
|
377
|
+
| Michael Uplawski <michael.uplawski@uplawski.eu>
|
378
|
+
|
379
|
+
Ω
|
380
|
+
==
|