|
@@ -23,17 +23,52 @@
|
|
|
use warnings;
|
|
|
use strict;
|
|
|
|
|
|
+######################################################################
|
|
|
+# this package was created only for checking modified files. If a #
|
|
|
+# file was modified, append timestamp will be updated, you need to #
|
|
|
+# have write access to checked file! #
|
|
|
+######################################################################
|
|
|
+{ package check;
|
|
|
+ use strict;
|
|
|
+ use warnings;
|
|
|
+ use File::stat;
|
|
|
+ use Time::localtime;
|
|
|
+ use POSIX qw(strftime);
|
|
|
+
|
|
|
+ sub fichier {
|
|
|
+ my $file = shift();
|
|
|
+ my $time;
|
|
|
+ $time = shift() or $time = 10;
|
|
|
+
|
|
|
+ # if checked file doesn't exist, return 0
|
|
|
+ unless (-f $file) {
|
|
|
+ return(0);
|
|
|
+ }
|
|
|
+
|
|
|
+ # init all local variables
|
|
|
+ my $ltime = strftime("%s", @{ localtime() });
|
|
|
+ my $atime = strftime("%s", @{ localtime(stat($file)->atime) });
|
|
|
+ my $mtime = strftime("%s", @{ localtime(stat($file)->mtime) });
|
|
|
+ my $ntime = $mtime-($time+2);
|
|
|
+
|
|
|
+ # we check if localtime minus modified time is less than configured
|
|
|
+ # time. If it's true, we set a new append/modified time via utime().
|
|
|
+ if (($ltime-$mtime) <= $time) {
|
|
|
+ utime($ntime, $ntime, $file);
|
|
|
+ return(1);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ return(0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
package MyBot;
|
|
|
use base qw( Bot::BasicBot );
|
|
|
|
|
|
binmode STDOUT, ":utf8";
|
|
|
use utf8;
|
|
|
|
|
|
-# pour le suivi du suivi
|
|
|
-use File::stat;
|
|
|
-use Time::localtime;
|
|
|
-use POSIX qw(strftime);
|
|
|
-
|
|
|
# le repectoire des données du bot aka autoconf
|
|
|
my $bot_dir = `pwd`; chomp $bot_dir ; $bot_dir .= "/";
|
|
|
my $wrk_dir = "wrk-dir/";
|
|
@@ -158,19 +193,26 @@ sub adh_abo_ffdn {
|
|
|
# on note les RP
|
|
|
sub rp {
|
|
|
my $link = shift @_;
|
|
|
- my $filename = "/var/www/rp/rp.txt";
|
|
|
+ my $filename = "/usr/share/nginx/www/rp.txt";
|
|
|
my $filehandle;
|
|
|
open ($filehandle, '>>', $filename) or die "Impossible d'ouvrir le fichier $filename en écriture";
|
|
|
print $filehandle "$link\n";
|
|
|
close $filehandle;
|
|
|
- return "Une nouvelle RP à traiter est disponible à http://rp.chown.me/rp.txt (hl quota_atypique taziden)";
|
|
|
+ return "Une nouvelle RP à traiter est disponible à http://unefede.fdn.fr/rp.txt (hl quota_atypique taziden)";
|
|
|
}
|
|
|
|
|
|
## Le bot lit le chan et réagit
|
|
|
sub said {
|
|
|
my ($self, $message) = @_;
|
|
|
- # si on veut des info
|
|
|
|
|
|
+ # check if file was modified. if true we print this file when one user do
|
|
|
+ # something on the chan.
|
|
|
+ if (check::fichier("wrk-dir/suivi", 60)) {
|
|
|
+ return("Il y a du nouveau pour la réunion de suivi. "
|
|
|
+ . lecture_fichier("suivi"));
|
|
|
+ }
|
|
|
+
|
|
|
+ # si on veut des info
|
|
|
if ($message->{body} =~ /^\Q$symbol\Einfo/) {
|
|
|
shift @_;
|
|
|
|
|
@@ -479,43 +521,13 @@ sub connected {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
-# On spam lorsque le fichier suivi est modifié
|
|
|
-sub check_file {
|
|
|
- my $file = shift();
|
|
|
- my $time = shift()
|
|
|
- or $time = 10;
|
|
|
-
|
|
|
- my $ltime = strftime("%s", @{ localtime() });
|
|
|
- debug("localtime: $ltime");
|
|
|
-
|
|
|
- my $atime = strftime("%s", @{ localtime(stat($file)->atime) });
|
|
|
- debug("atime: $atime");
|
|
|
-
|
|
|
- my $mtime = strftime("%s", @{ localtime(stat($file)->mtime) });
|
|
|
- debug("mtime: $mtime");
|
|
|
-
|
|
|
- my $ntime = $mtime-$time;
|
|
|
- debug("ntime: $ntime");
|
|
|
-
|
|
|
- if (($ltime-$mtime) lt $time) {
|
|
|
- utime($ntime, $ntime, $file);
|
|
|
- return 1;
|
|
|
- }
|
|
|
- else {
|
|
|
- return 0;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-if (check_file("suivi" 10)) {
|
|
|
- lecture_fichier("suivi");
|
|
|
-}
|
|
|
# aucune idée de comment on déclenche cette ligne
|
|
|
sub help { "Je suis le bot de la fédé." }
|
|
|
|
|
|
#Info de connexion du bot
|
|
|
MyBot->new(
|
|
|
server => 'irc.geeknode.org',
|
|
|
- channels => [ '#bottestbot', '#ffdn'],
|
|
|
+ channels => [ '#fdn', '#ffdn', '#franciliens.net', '#faimaison', '#illyse'],
|
|
|
nick => 'UneFede',
|
|
|
username => 'bot',
|
|
|
name => 'Droide de la Federation FDN, run by Vigdis'
|