def send_note(self, server, nick, user, host, channel): try: data = self.base[nick.lower()] except KeyError: pass else: send_msg(server, channel, '%s %s' % (nick, data))
def list_folder(self, server, nick, user, host, target, msg): """ """ content = '\n'.join(os.listdir(self.folder)) url, _ = libpad.sandbox(content, '') send_msg(server, target, url)
def check(self, server, nick, user, host, target, msg): struct = search(REG_LINK, msg) if not struct: return page_title = self.title.get_title(struct.group('address')) page_title = sub(REG_BLANK, ' ', page_title) send_msg(server, target, page_title)
def run(self, server, nick, user, host, target, msg, lang, code): url, output = libpad.sandbox(code, lang) if len(output) <= self.max_width: send_msg(server, target, output) else: send_msg(server, target, url)
def send_note(self, server, nick, user, host, channel): if nick.lower() not in self.base: return for msg in self.base[nick.lower()]: send_msg( server, channel, '%s: <%s> %s' % (nick, '%s!%s@%s' % msg.source, msg.message)) del self.base[nick.lower()]
def send_spam(self, server, nick, user, host, target, msg): if host in self.pmed or target.lower() in self.excpt: return msg = choice(self.db) self.pmed.append(host) send_msg(server, nick, msg)
def send_spam(server, nick, user, host, target, msg): if host in pmed or target.lower() in chan_list: return msg = choice(db) pmed.append(host) send_msg(server, nick, msg)
def list_folder(self, server, nick, user, host, target, msg): """ """ print "testt" content = "\n".join(os.listdir(self.folder)) url, _ = libpad.sandbox(content, "") send_msg(server, target, url)
def check(self, server, nick, user, host, target, msg): struct = search(REG_LINK, msg) if not struct: return req = requests.get(struct.group('address')) html = Html() dom = html.feed(req.text.encode(req.encoding)) title = dom.fst('title').text() send_msg(server, target, title)
def note_del(self, server, nick, user, host, target, msg, peer): peer = peer.lower() msgs = self.base.get(peer, []) orig_len = len(msgs) msgs = [m for m in msgs if m.source[1:] != (user, host)] if msgs: self.base[peer] = msgs elif peer in self.base: del self.base[peer] send_msg(server, target or nick, '%s: %d notes deleted.' % (nick, orig_len - len(msgs)))
def drop_msg(self, area, wid, target): """ Drop msgs and update the areavi. """ data = wid.get() area.append(H1 % (self.misc.nick, data)) send_msg(self.con, target, data.encode('utf-8')) wid.delete(0, 'end')
def pipe_chan( server, nick, user, host, target, msg, ): chan_list = mapping.get((server, target.upper())) if not chan_list: return for ind in chan_list: send_msg(server, ind, '(%s)%s %s' % (target, nick, msg))
def process(self, server, nick, user, host, target, msg): if not msg == self.start_tag: return code = '' while True: args = yield server, 'CMSG' if args[3] == target and args[2] == host: if args[4] == self.end_tag: break code = code + args[4] + '\n' url, output = libpad.sandbox(code, self.lang) if len(output) <= self.max_width: send_msg(server, target, output) else: send_msg(server, target, url)
def check(self, server, nick, user, host, target, msg, peer): try: initial = self.database[peer.lower()] except: send_msg(server, target, "No records for that nick.") else: final = time.time() rate = final - initial hour = int(rate / (60 ** 2)) rate = int(rate % (60 ** 2)) min = int(rate / 60) sec = int(rate % 60) send_msg(server, target, '%s last seen %s:%s:%s ago.' % (peer, hour, min, sec))
def check(self, server, nick, user, host, target, msg, peer): try: initial = self.database[peer.lower()] except: send_msg(server, target, "No records for that nick.") else: final = time.time() rate = final - initial hour = int(rate / (60**2)) rate = int(rate % (60**2)) min = int(rate / 60) sec = int(rate % 60) send_msg(server, target, '%s last seen %s:%s:%s ago.' % (peer, hour, min, sec))
def get_nick(self, spin, nick, user, host, target, msg): # We aim to receive a '431' reply from the server. # Consequently we can obtain the nick. send_cmd(spin, 'NICK') # It waits for the event to happen once it happens # the untwisted system of events chains this iterator # and starts where it stopped. event, args = yield hold(spin, '431') # Unpacks the arguments. source, prefix, mynick, cmd_msg = args # Tells which nick it uses. send_msg(spin, target, '%s My nick is %s' % (nick, mynick)) # This prints all what '431' carries. print source, prefix, mynick, cmd_msg
def note_add(self, server, nick, user, host, target, msg, peer, data): msgs = self.base[peer.lower()] user_msgs = [ m for m in msgs if m.source[1:] == ( user, host) or user.startswith('~') and m.source[2] == host ] if len(user_msgs) + 1 > MAX_NOTES_PER_PEER: send_msg( server, target, '%s: you may leave no more than %d notes for "%s".' % (nick, MAX_NOTES_PER_PEER, peer)) elif len(msgs) + 1 > MAX_NOTES: send_msg( server, target, '%s: there are too many notes saved for "%s".' % (nick, peer)) else: msgs.append(Message(source=(nick, user, host), message=data)) self.base[peer.lower()] = msgs send_msg(server, target, '%s: note for "%s" saved.' % (nick, peer))
def login(server, nick, user, host, target, msg, password): if password == server.adm_passwd: known.add(host) send_msg(server, nick, 'Logged!') else: send_msg(server, nick, 'Invalid password!')
def lazy(): for ind in msg.splitlines(): send_msg(server, target, ind) yield
def listen(server, nick, user, target, msg, lang_x, lang_y): data = source.translate(msg, lang_x, lang_y) send_msg(server, target, '%s %s' % (nick, data))
def send_welcome(server, nick, user, host, channel): send_msg(server, channel, 'Welcome to our relaxed place !')
def getinfo(self, server, nick, user, host, target, msg, player): result = getPlayerInfo(player) send_msg(server, target, str(ircOutput(result)))
def find(self, server, nick, user, host, target, msg, data): result = self.gsearch.quick_search(v='0.1', q=data, safe='high') send_msg(server, target, str(choice(result)))
def check_msg(self, server, nick, user, host, target, msg): if search(self.pattern, msg): send_msg(server, target, self.make_seq())
""" Name: paquitabot.py Description: A simple plugable irc bot. """ from net import irc_connect, core from spawncmd import * from holdex import * from untwisted.plugins.irc import send_msg from untwisted.utils.shrug import logcon con = irc_connect('irc.freenode.org', 6667, 'Fourier1', 'kaus keus kius :kous') xmap(con, '376', lambda con, *args: con.dump('JOIN #&math\r\nJOIN #calculus\rn')) xmap(con, '376', lambda con, *args: send_msg(con, 'nickserv', 'identify your_password')) # Install our simple cmd event system. SpawnCmd(con) # It is a plugin class. # You could write other plugins and install them here. # This file is a kind of script bot. HoldEx(con) #DebugCmd(con) # It is used to output everything # that comes from the irc server. logcon(con) #DoWhat(con) core.gear.mainloop()
def translate(self, server, nick, user, host, target, msg, lang1, lang2, data): data = self.google_translator.translate(data, lang1, lang2) send_msg(server, target, data)
def send_quote(server, chan_list, list_quote): for ind in chan_list: data = choice(list_quote) send_msg(server, ind, data)
def send_msg(self, area, chan, con): data = area.cmd_like() area.insee('CHDATA', H1 % (con.nick, data)) send_msg(con, chan, data.encode('utf-8')) return 'break'
def calculate(self, server, nick, user, host, target, msg, exp): send_msg(server, target, self.source.submit(exp))
def send(server, nick, user, host, target, msg, person, note): send_msg(server, person, note)
def getinfo(self, server, nick, user, host, target, msg, player): result = getPlayerInfo(player) send_msg(server,target,str(ircOutput(result)))
def pipe_chan(server, nick, user, host, target, msg,): chan_list = mapping.get((server, target.upper())) if not chan_list: return for ind in chan_list: send_msg(server, ind, '(%s)%s %s' % (target, nick, msg))
def send_quote(self, server, nick, user, host, target, msg): quote = choice(self.data) send_msg(server, target, quote)