|
MoinBot
MoinBot är en simpel IRC-bot, skapad av SimonKågedal 2002-12-02, som berättar i en IRC-kanal när det händer grejer i en MoinMoin-wiki. Har du /KommandoIdéer till det kommande finhacket?
Den kräver python-irclib installerad.
Koden (version 0.0.1):
1 #!/usr/bin/python2
2
3 import os
4 import string
5 import irclib
6
7 #
8 # Settings - edit these!
9 #
10
11 server = "irc.freenode.net"
12 port = 6667
13 target = "#hornan"
14 nickname = "MoinBot"
15 editlog = "~/local/moin/instances/gammfika/data/editlog"
16 base_url = "http://helgo.net/fika/"
17
18 #
19 # Code
20 #
21
22 class MoinBot(irclib.SimpleIRCClient):
23 def __init__(self,file):
24 irclib.SimpleIRCClient.__init__(self)
25 self.file = file
26
27 def on_welcome(self, connection, event):
28 if irclib.is_channel(target):
29 connection.join(target)
30 else:
31 self.send_it()
32
33 def on_join(self, connection, event):
34 self.send_it()
35
36 def on_disconnect(self, connection, event):
37 sys.exit(0)
38
39 def send_it(self):
40 while 1:
41 line = self.file.readline()
42 if not line:
43 break
44 fields = string.split(line)
45 url = base_url + fields[0]
46 self.connection.privmsg(target, url + ", diff: " + url + "?action=diff")
47 self.connection.quit("Using irclib.py")
48
49 def main():
50 file = os.popen("tail -f -n 1 " + editlog, 'r',0)
51 c = MoinBot(file)
52 try:
53 c.connect(server, port, nickname)
54 except irclib.ServerConnectionError, x:
55 print x
56 sys.exit(1)
57 c.start()
58
59 if __name__ == "__main__":
60 main()
Detta är ett så kallat FulHack. Jag borde göra en ordentlig bot nån gång; ett problem med denna är att den inte återconnectar då anslutningen resetas av den i irc-sammanhang så hatade peer. --SimonKågedal
|