Parcourir la source

minor details

tBKwtWS il y a 7 ans
Parent
commit
dffcf31a2e
4 fichiers modifiés avec 29 ajouts et 0 suppressions
  1. 5 0
      events/on_action.py
  2. 3 0
      events/on_nick.py
  3. 5 0
      events/on_pubmsg.py
  4. 16 0
      rotbot.py

+ 5 - 0
events/on_action.py

@@ -13,6 +13,11 @@ grey = "\x0314"
 
 def process_event(self, connection, event):
     Replyto.name(connection, event)
+    
+    # Save statistic to database.
+    if not self.db.one("SELECT id FROM \"users\" WHERE name='" + event.source.nick + "' AND network='" + self.network + "'"):    # Not on record.
+        self.db.run("INSERT INTO \"users\" (name, network) VALUES ('" + event.source.nick + "', '" + self.network + "')")   # Create record.
+    self.db.run("UPDATE \"users\" SET actions=actions+1 WHERE name='" + event.source.nick + "' AND network='" + self.network + "'") # Increment record.
 
     # Slap guard.
     if not self.db.one("SELECT chat FROM channels WHERE name='" + event.target + "' AND network='" + self.network + "'"):

+ 3 - 0
events/on_nick.py

@@ -11,3 +11,6 @@ def process_event(self, connection, event):
     if event.source.nick in self.protectees:    # Protectee chaning nick.
         del self.protectees[event.source.nick]  # Remove old nick from list.
         connection.who(event.target)    # Get whorepy to add new nick to protectees.
+    
+    # Update stats in db.
+    

+ 5 - 0
events/on_pubmsg.py

@@ -26,3 +26,8 @@ def process_event(self, connection, event):
         self.db.run("UPDATE channels SET last_lame='" + str(datetime.datetime.now()) + "' WHERE name='" + event.target + "' AND network='" + self.network + "'")
         
         connection.privmsg(event.target, event.arguments[0] + event.arguments[0][:1])
+    
+    # Save statistic to database.
+    if not self.db.one("SELECT id FROM \"users\" WHERE name='" + event.source.nick + "' AND network='" + self.network + "'"):    # Not on record.
+        self.db.run("INSERT INTO \"users\" (name, network) VALUES ('" + event.source.nick + "', '" + self.network + "')")   # Create record.
+    self.db.run("UPDATE \"users\" SET messages=messages+1 WHERE name='" + event.source.nick + "' AND network='" + self.network + "'") # Increment record.

+ 16 - 0
rotbot.py

@@ -9,6 +9,16 @@ import events.on_welcome, events.on_join, events.on_kick, events.on_mode, events
 from common import log
 from common.networkservices import NickServ
 
+bold = "\x02"
+italic = "\x1D"
+underline = "\x1F"
+reverse = "\x16" 	# swap background and foreground colors ("reverse video")
+reset = "\x0F"
+blue = "\x0302"
+green = "\x0303"
+red = "\x0304"
+grey = "\x0314"
+
 class PyRot(irc.bot.SingleServerIRCBot):
     def __init__(self, network, db, homechannel, nickname, username, password, host, port=6667, usessl=False, cmdchar="!", helpchar="@"):
         self.network = network
@@ -70,6 +80,8 @@ class PyRot(irc.bot.SingleServerIRCBot):
     
     def on_invite(self, connection, event):
         log.info(event)
+        if event.target == connection.get_nickname(): # Bot invited.
+            connection.privmsg(self.homechannel, "Received invite to " + red + event.arguments[0] + reset + " from " + red + event.source.nick + reset + ".")
     
     def on_topic(self, connection, event):
         log.info(event)
@@ -90,6 +102,10 @@ class PyRot(irc.bot.SingleServerIRCBot):
     
     def on_pubnotice(self, connection, event):
         log.info(event)
+        # Save statistic to database.
+        if not self.db.one("SELECT id FROM \"users\" WHERE name='" + event.source.nick + "' AND network='" + self.network + "'"):    # Not on record.
+            self.db.run("INSERT INTO \"users\" (name, network) VALUES ('" + event.source.nick + "', '" + self.network + "')")   # Create record.
+        self.db.run("UPDATE \"users\" SET messages=messages+1 WHERE name='" + event.source.nick + "' AND network='" + self.network + "'") # Increment record.
     
     def on_privnotice(self,  connection,  event):
         log.info(event)