Compare commits
8 commits
Author | SHA1 | Date | |
---|---|---|---|
Thomas Hochstein | 09d51964aa | ||
Thomas Hochstein | 99d4cbcae2 | ||
Thomas Hochstein | 4fe0c455ea | ||
15dd22593e | |||
6e49580a28 | |||
3b06ebf93a | |||
cc74e2f92b | |||
04eac1b541 |
10
ChangeLog
10
ChangeLog
|
@ -1,3 +1,13 @@
|
|||
yapfaq 0.10 (unreleased)
|
||||
|
||||
* Add: Charset definition.
|
||||
Fixes #29.
|
||||
|
||||
* Mark yapfaq.pl executable.
|
||||
|
||||
* Change mail address.
|
||||
|
||||
|
||||
Version 0.9.1
|
||||
|
||||
* Fix: Test mode: Add X-Supersedes only if Supersedes would be set.
|
||||
|
|
13
README.md
Normal file
13
README.md
Normal file
|
@ -0,0 +1,13 @@
|
|||
# yapfaq
|
||||
|
||||
**yapfaq** can post FAQs from text files to Usenet at configurable intervals and automatically adds the necessary headers.
|
||||
|
||||
## Description
|
||||
|
||||
With **yapfaq**, FAQs or other texts can be posted regularly (every x days, weeks, months or years) to one or more newsgroups. Posting frequency as well as the necessary headers - including the format of the `Message-ID:` headers that will be generated - can be defined in a configuration file. `Expires:` and `Supersedes:` will be set automatically by the script.
|
||||
|
||||
The text can either be posted via NNTP or piped to another programme (like `inews` or `tinews.pl`).
|
||||
|
||||
## More information
|
||||
|
||||
Please see the [distribution page](https://th-h.de/net/software/yapfaq/) (in German).
|
|
@ -34,6 +34,10 @@ NGs = 'de.test'
|
|||
# This setting is optional. Default: <%n-%y-%m-%d@YOURHOST>
|
||||
# MID-Format = '<%n-%y-%m-%d@domain.invalid>'
|
||||
|
||||
# Character Encoding
|
||||
# This setting is optional. Default: UTF-8
|
||||
# Charset = ISO-8859-15
|
||||
|
||||
# Supersede last posting?
|
||||
# This setting is optional. Default: unset
|
||||
Supersede = yes
|
||||
|
|
48
yapfaq.pl
Normal file → Executable file
48
yapfaq.pl
Normal file → Executable file
|
@ -1,18 +1,18 @@
|
|||
#! /usr/bin/perl -W
|
||||
#
|
||||
# yapfaq Version 0.91 by Thomas Hochstein
|
||||
# yapfaq Version 0.10 by Thomas Hochstein
|
||||
# (Original author: Marc Brockschmidt)
|
||||
#
|
||||
# This script posts any project described in its config-file. Most people
|
||||
# will use it in combination with cron(8).
|
||||
#
|
||||
# Copyright (C) 2003 Marc Brockschmidt <marc@marcbrockschmidt.de>
|
||||
# Copyright (c) 2010 Thomas Hochstein <thh@inter.net>
|
||||
# Copyright (c) 2010-2017 Thomas Hochstein <thh@thh.name>
|
||||
#
|
||||
# It can be redistributed and/or modified under the same terms under
|
||||
# which Perl itself is published.
|
||||
|
||||
our $VERSION = "0.91";
|
||||
our $VERSION = "0.10";
|
||||
|
||||
# Please do not change this setting!
|
||||
# You may override the default .rc file (.yapfaqrc) by using "-c .rc file"
|
||||
|
@ -45,7 +45,7 @@ my %Options;
|
|||
getopts('Vhvpdt:f:c:s:', \%Options);
|
||||
# -V: print version / copyright information
|
||||
if ($Options{'V'}) {
|
||||
print "$0 v $VERSION\nCopyright (c) 2003 Marc Brockschmidt <marc\@marcbrockschmidt.de>\nCopyright (c) 2010 Thomas Hochstein <thh\@inter.net>\n";
|
||||
print "$0 v $VERSION\nCopyright (c) 2003 Marc Brockschmidt <marc\@marcbrockschmidt.de>\nCopyright (c) 2010-2017 Thomas Hochstein <thh\@thh.name>\n";
|
||||
print "This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself.\n";
|
||||
exit(0);
|
||||
}
|
||||
|
@ -82,7 +82,7 @@ foreach (@Config) {
|
|||
|
||||
my ($ActName,$File,$PFreq,$Expire) =($$_{'name'},$$_{'file'},$$_{'posting-frequency'},$$_{'expires'});
|
||||
my ($From,$Subject,$NG,$Fup2)=($$_{'from'},$$_{'subject'},$$_{'ngs'},$$_{'fup2'});
|
||||
my ($MIDF,$ReplyTo,$ExtHea)=($$_{'mid-format'},$$_{'reply-to'},$$_{'extraheader'});
|
||||
my ($MIDF,$ReplyTo,$Charset,$ExtHea)=($$_{'mid-format'},$$_{'reply-to'},$$_{'charset'},$$_{'extraheader'});
|
||||
my ($Supersede) =($$_{'supersede'});
|
||||
|
||||
# -f: loop if not FAQ to post
|
||||
|
@ -111,7 +111,7 @@ foreach (@Config) {
|
|||
if($Options{'d'}) {
|
||||
print "$ActName: Would be posted now (but running in simulation mode [$0 -d]).\n" if $Options{'v'};
|
||||
} else {
|
||||
postfaq(\$ActName,\$File,\$From,\$Subject,\$NG,\$Fup2,\$MIDF,\$ExtHea,\$Config{'Sender'},\$TDY,\$TDM,\$TDD,\$ReplyTo,\$SupersedeMID,\$Expire);
|
||||
postfaq(\$ActName,\$File,\$From,\$Subject,\$NG,\$Fup2,\$MIDF,\$Charset,\$ExtHea,\$Config{'Sender'},\$TDY,\$TDM,\$TDD,\$ReplyTo,\$SupersedeMID,\$Expire);
|
||||
}
|
||||
} elsif($Options{'v'}) {
|
||||
print "$ActName: Nothing to do.\n";
|
||||
|
@ -238,7 +238,7 @@ sub updatestatus {
|
|||
# It reads the data-file $File and then posts the article.
|
||||
|
||||
sub postfaq {
|
||||
my ($ActName,$File,$From,$Subject,$NG,$Fup2,$MIDF,$ExtraHeaders,$Sender,$TDY,$TDM,$TDD,$ReplyTo,$Supersedes,$Expire) = @_;
|
||||
my ($ActName,$File,$From,$Subject,$NG,$Fup2,$MIDF,$Charset,$ExtraHeaders,$Sender,$TDY,$TDM,$TDD,$ReplyTo,$Supersedes,$Expire) = @_;
|
||||
my (@Header,@Body,$MID,$InRealBody,$LastModified);
|
||||
|
||||
print "$$ActName: Preparing to post.\n" if($Options{'v'});
|
||||
|
@ -295,6 +295,10 @@ sub postfaq {
|
|||
$$Subject =~ s/[<\[{\(]?\%LM[>\]}\)]?//;
|
||||
}
|
||||
|
||||
# Set Charset
|
||||
$$Charset = 'UTF-8' if !$$Charset;
|
||||
my $ContentType = sprintf('text/plain; charset=%s',$$Charset);
|
||||
|
||||
# Test mode?
|
||||
if($Options{'t'} and $Options{'t'} !~ /console/i) {
|
||||
$$NG = $Options{'t'};
|
||||
|
@ -317,7 +321,7 @@ sub postfaq {
|
|||
push @Header, "Sender: $$Sender\n" if $$Sender;
|
||||
push @Header, "Mime-Version: 1.0\n";
|
||||
push @Header, "Reply-To: $$ReplyTo\n" if $$ReplyTo;
|
||||
push @Header, "Content-Type: text/plain; charset=ISO-8859-15\n";
|
||||
push @Header, "Content-Type: $ContentType\n";
|
||||
push @Header, "Content-Transfer-Encoding: 8bit\n";
|
||||
push @Header, "User-Agent: yapfaq/$VERSION\n";
|
||||
if ($$ExtraHeaders) {
|
||||
|
@ -521,6 +525,14 @@ host B<yapfaq> is running on. Obviously that will only work if you
|
|||
have defined a reasonable hostname that the hostfqdn() function of
|
||||
Net::Domain can return.
|
||||
|
||||
=item B<Charset> = I<encoding> (optional)
|
||||
|
||||
The character encoding of your FAQ. This setting is optional, but
|
||||
should match the encoding of your FAQ B<File>. Default is set to
|
||||
I<UTF-8>.
|
||||
|
||||
This setting is copied verbatim to the I<Content-Type> header.
|
||||
|
||||
=item B<Supersede> = I<yes> (optional)
|
||||
|
||||
Add Supersedes header to the message containing the Message-ID header
|
||||
|
@ -572,6 +584,10 @@ This setting is optional.
|
|||
# Message-ID ("%n" is $Name)
|
||||
# MID-Format = '<%n-%d.%m.%y@domain.invalid>'
|
||||
|
||||
# Character Encoding
|
||||
# This setting is optional. Default: UTF-8
|
||||
# Charset = ISO-8859-15
|
||||
|
||||
# Supersede last posting?
|
||||
Supersede = yes
|
||||
|
||||
|
@ -831,22 +847,20 @@ the last post of that FAQ.
|
|||
|
||||
=head1 BUGS
|
||||
|
||||
Please report any bugs or feature request to the author or use the
|
||||
bug tracker at L<http://bugs.th-h.de/>!
|
||||
Please report any bugs or feature requests to the author or use the
|
||||
bug tracker at L<https://code.virtcomm.de/thh/yapfaq/issues>!
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<http://th-h.de/download/scripts.php> will have the current
|
||||
L<https://th-h.de/net/software/yapfaq/> will have the current
|
||||
version of this program.
|
||||
|
||||
This program is maintained using the Git version control system. You
|
||||
may clone L<git://code.th-h.de/usenet/yapfaq.git> to check out the
|
||||
current development tree or browse it on the web via
|
||||
L<http://code.th-h.de/?p=usenet/yapfaq.git>.
|
||||
This program is maintained using the Git version control system at
|
||||
L<https://code.virtcomm.de/thh/yapfaq/>.
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Thomas Hochstein <thh@inter.net>
|
||||
Thomas Hochstein <thh@thh.name>
|
||||
|
||||
Original author (up to version 0.5b, dating from 2003):
|
||||
Marc Brockschmidt <marc@marcbrockschmidt.de>
|
||||
|
@ -855,7 +869,7 @@ Marc Brockschmidt <marc@marcbrockschmidt.de>
|
|||
|
||||
Copyright (c) 2003 Marc Brockschmidt <marc@marcbrockschmidt.de>
|
||||
|
||||
Copyright (c) 2010 Thomas Hochstein <thh@inter.net>
|
||||
Copyright (c) 2010-2017 Thomas Hochstein <thh@thh.name>
|
||||
|
||||
This program is free software; you may redistribute it and/or modify it
|
||||
under the same terms as Perl itself.
|
||||
|
|
Loading…
Reference in a new issue