import pysf, re reload(pysf) re_number1 = re.compile(r'\bsf_number:\s*(\d\d\d\d\d+)\b') re_number2 = re.compile(r'\W[#](\d\d\d\d\d+)\b') def main(f, g, channel): def tell(lines): lines = ["PRIVMSG %s :\x01ACTION %s\x01\n\r" % (channel, s) for s in lines] f.write(''.join(lines)) while 1: line = g.readline() print `line` fields = line.split(' ') if fields[:1] == ['PING']: f.write('PONG :PING\n\r') elif fields[1:2] == ['PRIVMSG']: text = ' '.join(fields[3:]) match = (re_number1.search(text) or re_number2.search(text)) if match: number = match.group(1) print number title = pysf.gettitle(number) tell([title or ('did not find %s' % number)]) print '(loaded)'