]> gitweb.pimeys.fr Git - bots/saturnin.git/commitdiff
On splitte le message de scores, souvent trop long
authorVincent Le Gallic <legallic@crans.org>
Tue, 20 Aug 2019 11:48:29 +0000 (13:48 +0200)
committerSaturnin, le bot IRC <saturnin@crans.org>
Tue, 20 Aug 2019 11:48:29 +0000 (13:48 +0200)
config.py
saturnin.py

index 187d09a831a8ab9453695bf47ef2f88cd68f0c5a..6b136357576868c0a0d724688f0ca3fb79e9eac4 100644 (file)
--- a/config.py
+++ b/config.py
@@ -12,6 +12,8 @@ chanlist=["#flood", "#bot"] # liste des chans à rejoindre
 stay_channels=["#flood", "#bot"] # liste des chans que le bot ne quitte pas, même sur demande d'un leave de la part d'un OP
 quiet_channels=[] # liste des chans sur lesquels le bot ne parle pas
 play_channels = ["#flood"]
+# taille max des messages IRC
+MAX_LENGTH = 490
 
 report_bugs_to = ["[20-100]"]
 # les logs
@@ -39,7 +41,7 @@ killwords = [u"pan", u"bim", u"bang"]
 
 score_file="scores.pickle"
 
-spawn_delays = [60*120, 60*240]
+spawn_delays = [60*60, 60*480]
 spawn_sentences = [
 u"Coin ! Coin !",
 u"A year spent in artificial intelligence is enough to make one believe in God.",
index e1ac570c15eeb3a4444da702cc7abbfdc5fd535f..848019c2ea51a4001b4295f0862eb468ddb1fae8 100755 (executable)
@@ -461,15 +461,29 @@ class Saturnin(ircbot.SingleServerIRCBot):
     def sendscore(self, to):
         self.serv.privmsg(to, "Votre score : %s"%(self.get_scores().get(to,0)) )
     
+    def _sendscores(self, to, scores):
+        message = ''
+        for [nick, score] in scores:
+            score = '{}: {}'.format(nick, score)
+            if len(message) < config.MAX_LENGTH - len(score):
+                message += ' ' + score
+            else:
+                self.serv.privmsg(to, message)
+                message = score
+        if message:
+            self.serv.privmsg(to, message)
+
     def sendscores(self, to):
         scores=self.get_scores().items()
         # trie par score
         scores.sort(lambda x,y:cmp(x[1],y[1]))
         scores.reverse()
-        self.serv.privmsg(to, "Scores by score : "+" ; ".join(["%s %s"%(i[0],i[1]) for i in scores]))
+        self.serv.privmsg(to, "Scores by score : ")
+        self._sendscores(to, scores)
         # trie par pseudo
         scores.sort(lambda x,y:cmp(x[0].lower(),y[0].lower()))
-        self.serv.privmsg(to, "Scores by pseudo : "+" ; ".join(["%s %s"%(i[0],i[1]) for i in scores]))
+        self.serv.privmsg(to, "Scores by pseudo : ")
+        self._sendscores(to, scores)
     
     def on_pubmsg(self, serv, ev):
         if ignore_event(serv, ev):