Advertisement
Aha2Y

Untitled

Apr 5th, 2012
327
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.23 KB | None | 0 0
  1. #!/usr/bin/python
  2. from ConfigParser import RawConfigParser as ConfParser
  3. from BeautifulSoup import BeautifulSoup
  4. from optparse import OptionParser
  5. from collections import deque
  6. from time import sleep, time, gmtime, strftime
  7. import ConfigParser
  8. import os
  9. import sys
  10. import socket
  11. import codecs
  12. from irc import *
  13. from select import select
  14. import urllib
  15. import imp
  16. import modules.fml
  17. import modules.meme
  18. import modules.bitly
  19. import threading
  20.  
  21. my = IRCbot()
  22. server = "localhost"
  23. port = 1026
  24. nickpass = "test"
  25. operlogin = "t2 t5"
  26. channels = "#chat"
  27.  
  28. internets = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
  29. internets.connect((server, port))
  30. version = "1.0.0"
  31.  
  32. def internets_bot(sock):
  33.     internets.send('NICK Internets\r\n')
  34.     internets.send('USER python Internets Internets :[Internets %s]\r\n' % version)
  35.     while 1:
  36.         data = readline(sock)
  37.         raw = parse(data)
  38.         #print("[Internets] %s" % raw)
  39.         if raw[0].lower() == "ping":
  40.            internets.send("PONG {reply}\r\n".format(reply = raw[1]))
  41.         if raw[0].lower().startswith("nickserv!"):
  42.             if raw[1] == "NOTICE" and "This nickname is registered" in raw[3]:
  43.                 internets.send('PRIVMSG NickServ :identify %s \r\n' % nickpass)
  44.                 internets.send('OPER %s \r\n' % operlogin)
  45.                 internets.send('JOIN %s \r\n' % channels)
  46.         if raw[1] == "PRIVMSG":
  47.             my.sender = raw[0]
  48.             my.nick = raw[0].split("!")[0]
  49.             my.auth = data.split('@')[0][1:]
  50.             if len(raw) > 3:
  51.                 if raw[3] == ".uptime":
  52.                     end = time()
  53.                     uptime = end - start
  54.                     internets.send('PRIVMSG %s :Internets is running for %s \r\n' % (raw[2], duration_human(uptime)))
  55.                 if raw[3].startswith(".reload "):
  56.                     try:
  57.                         if config.get('staff', my.auth) == 'admin':
  58.                             if raw[3].split(" ", 1)[1] == "fml":
  59.                                 imp.reload(modules.fml)
  60.                                 internets.send('PRIVMSG %s :Reloaded FML module.\r\n' % raw[2])
  61.                     except ConfigParser.NoOptionError:
  62.                         continue
  63.                 if raw[3] == ".info":
  64.                     internets.send('PRIVMSG %s :Internets %s by Aha2Y.\r\n' % (raw[2], version))
  65.                     imp.reload(modules.meme)
  66.                 if raw[3] == ".fml":
  67.                     q = modules.fml.get()
  68.                     internets.send('PRIVMSG %s :[fml/#%s] %s\r\n' % (raw[2], q.number, q.text))
  69.                     internets.send('PRIVMSG %s :%s - %s\r\n' % (raw[2], q.agree, q.disagree))
  70.                 if raw[3] == ".meme":
  71.                     q = modules.meme.get()
  72.                     internets.send('PRIVMSG %s :[Meme] %s\r\n' % (raw[2], q.meme))
  73.                     imp.reload(modules.meme)
  74.                 if raw[3].startswith(".slogan"):
  75.                     try:
  76.                         slogan_topic = raw[3].split(" ", 1)[1]
  77.                         slogan_url = urllib.urlopen("http://parsers.faux-bot.com/slogan/%s" % slogan_topic)
  78.                         slogansoup = BeautifulSoup(slogan_url)
  79.                         x = str(slogansoup)
  80.                         x = x.split()
  81.                         slogan = " ".join(x[1:]).strip("End Response:")
  82.                         internets.send('PRIVMSG %s :[SloganMaker] "%s"\r\n' % (raw[2], slogan))
  83.                     except:
  84.                         internets.send('NOTICE %s :Syntax: .slogan <url>\r\n' % my.nick)    
  85.                 if raw[3].startswith(".shorten"):
  86.                     try:
  87.                         shorten = raw[3].split(" ", 1)[1]
  88.                         api = modules.bitly.Api(login='aha2y', apikey='R_68fd8f8405600aab706feecbc07ea066')
  89.                         short=api.shorten(shorten,{'history':1})
  90.                         internets.send('PRIVMSG %s :[Bitly] %s\r\n' % (raw[2], short))
  91.                     except:
  92.                         internets.send('NOTICE %s :Syntax: .shorten <url>\r\n' % my.nick)      
  93.  
  94.              
  95. internets_thread = threading.Thread(target = internets_bot, args = (internets, )) # Thread object
  96. internets_thread.start()
  97.  
  98. internets_thread.join()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement