1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
import irc.bot
import _thread
import rssbot
class NewsBot(irc.bot.SingleServerIRCBot):
def __init__(self, name, server='ire', port=6667, chan='#news', timeout=60):
irc.bot.SingleServerIRCBot.__init__(self, [(server, port)], name, name)
self.name = name
self.server = server
self.port = port
self.chan = chan
self.to = timeout
# def start(self):
# self.bot = _thread.start_new_thread(irc.bot.SingleServerIRCBot.start, (self,))
# def send(self, string):
# if len(string) < 450:
# self.connection.privmsg(self.chan, string)
# else:
# space = 0
# for x in range(math.ceil(len(string)/400)):
# oldspace = space
# space = string.find(" ", (x+1)*400, (x+1)*400+50)
# self.connection.privmsg(self.chan, string[oldspace:space])
# sleep(1)
def on_welcome(self, connection, event):
connection.join(self.chan)
def on_privmsg(self, connection, event):
args_array = event.arguments[0].split()
if args_array[0][:-1]==self.name:
answer = self.read_message(args_array[1:])
self.send(answer)
def send(self, string):
for line in string.split('\n'):
self.connection.privmsg(self.chan, line)
sleep(0.5)
def on_pubmsg(self, connection, event):
self.on_privmsg(connection, event)
def read_message(self, args):
try:
if args[0] == 'add':
bot = rssbot.RssBot(args[2], args[1])
bots[args[1]] = bot
bot.start()
return "bot " + args[1] + " added"
elif args[0] == 'del':
bots[args[1]].stop()
del bots[args[1]]
return "bot " + args[1] + " deleted"
elif args[0] == 'save':
output_buffer = ''
for bot in bots:
output_buffer += bot + '|' + bots[bot].url + '\n'
F = open(feedfile, "w")
F.writelines(output_buffer)
F.close()
return "bots saved to " + feedfile
elif args[0] == 'caps':
return "add del save caps list"
elif args[0] == 'list':
output_buffer = ''
for bot in bots:
output_buffer += bot + ' url: ' + bots[bot].url + '\n'
return output_buffer
elif args[0] == 'info':
if args[1] in bots:
return 'title: ' + bots[args[1]].feed.feed.title + '\n' + 'size: ' + len(bots[args[1]].feed.entries)
else:
return 'bot not found'
else:
return "unknown command"
except:
return "mimimimi"
feedfile = 'new_feeds'
bots = {}
knews = NewsBot('knews')
#config file reading
F = open(feedfile, "r")
lines = F.readlines()
F.close()
for line in lines:
line = line.strip('\n')
linear = line.split('|')
bot = rssbot.RssBot(linear[1], linear[0])
bot.start()
bots[linear[0]] = bot
knews.start()
|