Advertisement
AlanReiAkemi

bisa bantu?

Sep 12th, 2015
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 23.56 KB | None | 0 0
  1. # python imports
  2. ##########################################################
  3. import ch
  4. import random
  5. import sys
  6. import os
  7. import re
  8. import cgi
  9. import traceback
  10. import time
  11. import urllib
  12. import datetime
  13. import binascii
  14. #import youtube
  15. #import helperCmd
  16. import json
  17. import cmds
  18. ################
  19. ###########################################################
  20. #ENDS HERE
  21. ###########################################################
  22. ###########################################################
  23. #VARS
  24. ###########################################################
  25. lockdown = False
  26. ##################
  27. # TIMER STUFF #
  28. startTime = time.time()
  29. ################
  30. #STATUS
  31. #######
  32. filename = "status.txt"
  33. file = open(filename, 'w')
  34. print("[INF]Setting status to online...")
  35. time.sleep(2)
  36. file.write("Awake")
  37. file.close()
  38. #
  39.  
  40. #definitions
  41. dictionary = dict() #volatile... of course...
  42. f = open("definitions.txt", "r") # read-only
  43. print("[INF]Loading Definitions...")
  44. time.sleep(1)
  45. for line in f.readlines():
  46.     try:
  47.         if len(line.strip())>0:
  48.             word, definition, name = json.loads(line.strip())
  49.             dictionary[word] = json.dumps([definition, name])
  50.     except:
  51.         print("[ERR]Cant load definition: %s" % line)
  52. f.close()
  53.  
  54. #OWNER#
  55. spermitted = []
  56. f = open("spermitted.txt", "r") # read-only
  57. print("[INF]Loading Supermasters...")
  58. time.sleep(1)
  59. for name in f.readlines():
  60.     if len(name.strip())>0: spermitted.append(name.strip())
  61. f.close()
  62. # END #
  63.  
  64. #MASTERS#
  65. permitted = []
  66. f = open("permitted.txt", "r") # read-only
  67. print("[INF]Loading Masters...")
  68. time.sleep(1)
  69. for name in f.readlines():
  70.     if len(name.strip())>0: permitted.append(name.strip())
  71. f.close()
  72. # END #
  73.  
  74. #HALF MASTERS#
  75. hpermitted = []
  76. f = open("hpermitted.txt", "r") # read-only
  77. print("[INF]Loading Half Masters....")
  78. time.sleep(1)
  79. for name in f.readlines():
  80.     if len(name.strip())>0: hpermitted.append(name.strip())
  81. f.close()
  82. #END #
  83.  
  84. #WHITELIST#
  85. whitelist = []
  86. f = open("whitelist.txt", "r") # read-only
  87. print("[INF]Loading Whitelists...")
  88. time.sleep(1)
  89. for name in f.readlines():
  90.     if len(name.strip())>0: whitelist.append(name.strip())
  91. f.close()
  92. #END #
  93.  
  94. #ROOMS#
  95. rooms = []
  96. f = open("rooms.txt", "r") # read-only
  97. print("[INF]Loading Rooms...")
  98. time.sleep(1)
  99. for name in f.readlines():
  100.     if len(name.strip())>0: rooms.append(name.strip())
  101. f.close()
  102. #END#
  103. ###########################################################
  104. ## Thu 14 Apr 2011 00:05:52 BST
  105. ###########################################################
  106. if sys.version_info[0] > 2:
  107.     import urllib.request as urlreq
  108. else:
  109.     import urllib2 as urlreq
  110.  
  111. dancemoves = [
  112.     "(>^.^)> (>^.^<) <(^.^)>",
  113. ]
  114. activated = False # Disabled on default
  115. prefix = "$" # command prefix for some commands
  116.  
  117. def getUptime():
  118.     """
  119.    Returns the number of seconds since the program started.
  120.    """
  121.     # do return startTime if you just want the process start time
  122.     return time.time() - startTime
  123.  
  124. #SYSTEM UPTIME
  125. def uptime():
  126.  
  127.      try:
  128.          f = open( "/proc/uptime" )
  129.          contents = f.read().split()
  130.          f.close()
  131.      except:
  132.         return "Cannot open uptime file: /proc/uptime"
  133.  
  134.      total_seconds = float(contents[0])
  135.  
  136.      # Helper vars:
  137.      MINUTE  = 60
  138.      HOUR    = MINUTE * 60
  139.      DAY     = HOUR * 24
  140.  
  141.      # Get the days, hours, etc:
  142.      days    = int( total_seconds / DAY )
  143.      hours   = int( ( total_seconds % DAY ) / HOUR )
  144.      minutes = int( ( total_seconds % HOUR ) / MINUTE )
  145.      seconds = int( total_seconds % MINUTE )
  146.  
  147.      # Build up the pretty string (like this: "N days, N hours, N minutes, N seconds")
  148.      string = ""
  149.      if days > 0:
  150.          string += str(days) + " " + (days == 1 and "day" or "days" ) + ", "
  151.      if len(string) > 0 or hours > 0:
  152.          string += str(hours) + " " + (hours == 1 and "hour" or "hours" ) + ", "
  153.      if len(string) > 0 or minutes > 0:
  154.          string += str(minutes) + " " + (minutes == 1 and "minute" or "minutes" ) + ", "
  155.      string += str(seconds) + " " + (seconds == 1 and "second" or "seconds" )
  156.  
  157.      return string;
  158.  
  159. class TestBot(ch.RoomManager):
  160.     def onInit(self):
  161.         self.setNameColor("A9F")
  162.         self.setFontColor("540")
  163.         self.setFontFace("1")
  164.         self.setFontSize(11)
  165.         self.enableBg()
  166.         self.enableRecording()
  167.        
  168.     def getAccess(self, user):
  169.         if user.name in spermitted: return 4
  170.         elif user.name in permitted: return 3
  171.         elif user.name in hpermitted: return 2
  172.         elif user.name in whitelist: return 1
  173.         else: return 0
  174.    
  175.     def onConnect(self, room):
  176.         print("[INF] Connected to %s" % room.name)
  177.    
  178.     def onReconnect(self, room):
  179.         print("[INF] Reconnected to %s" % room.name)
  180.    
  181.     def onDisconnect(self, room):
  182.         print("[INF] Disconnected to %s" % room.name)
  183.        
  184.     def onJoin(self, room, user):
  185.             if lockdown: return
  186.             if self.getAccess(user) >= 4:
  187.                 room.message("-jumps up- waves at " "<b>"+ user.name.title() +"</b>" "^^", True)
  188.             elif self.getAccess(user) >= 3:#
  189.                 room.message("ohai master " "<b>"+ user.name.title() +"</b>" " ^^", True)#
  190.             #elif self.getAccess(user) >= 2:#      
  191.                 #room.message("huggles half master " + user.name + " ^^")#
  192.    
  193.     def onMessage(self, room, user, message):
  194.         # make global (if they will be changed in commands)
  195.         global activated
  196.         global lockdown
  197.         ## print to console
  198.         if room.getLevel(self.user) > 0: # if bot is mod
  199.             print("[%s]\033[94m[MSG]\033[0m\033[31m[LVL %s]\033[0m[%s][%s] %s: %s" % (time.strftime("%d/%m/%y- %H:%M:%S",
  200. time.localtime(time.time())), self.getAccess(user), room.name, message.ip, user.name.title(), message.body)) # with ip
  201.         else:
  202.             print("[%s]\033[94m[MSG]\033[0m\033[31m[LVL %s]\033[0m[%s] %s: %s" % (time.strftime("%d/%m/%y- %H:%M:%S", time.localtime(time.time())),
  203. self.getAccess(user), room.name, user.name.title(), message.body)) # with ip # without ip
  204.         if self.user == user: return # ignore self
  205.         if self.getAccess(user) == 0: return # ignore non-whitelisted
  206.         if self.getAccess(user) < 4 and lockdown: return #ignore everyone when in lockdown
  207.         #split message into command and args
  208.         data = message.body.split(" ", 1)
  209.         if len(data) > 1:
  210.             cmd, args = data[0], data[1] # if command and args
  211.         else:
  212.             cmd, args  = data[0], ""# if command and no args
  213.        
  214.        
  215.         # implied command?
  216.         if len(cmd) > 0:
  217.             if cmd[0].lower() == prefix.lower():
  218.                 used_prefix = True
  219.                 cmd = cmd[1:].lower()
  220.             else: used_prefix = False
  221.         else: return
  222.         #BOT CALL INGORE CASE
  223.  
  224.         # call bot name, activate if deactivated (bot)
  225.         if cmd.upper() == room.user.name.upper() and len(args) == 0:# IGNORES CASE NOW
  226.             if not activated and self.getAccess(user) < 2: return
  227.             responce = ["yeah? %s" % user.name, "hmmhm", "o-o yesh?", "hi ^^"]
  228.             room.message(random.choice(responce))
  229.             activated = True
  230.  
  231.         # call bot name with command after
  232.         elif cmd.upper() == room.user.name.upper() and len(args) != 0:# IGNORES CASE NOW
  233.             activated = True
  234.             used_prefix = True
  235.             data = args.split(" ", 1)
  236.             if len(data) > 1:
  237.                 cmd, args = data[0], data[1] # if command and args
  238.             else:
  239.                 cmd, args  = data[0], "" # if command and no args
  240.  
  241.         # not activated, no commands
  242.         if not activated: return
  243.        
  244.         # hide/deactive bot (hide)
  245.         if cmd == "hide" and self.getAccess(user) >= 2: # level 2+
  246.             activated = False
  247.             room.message(cgi.escape("I ish hiding >_> %s" % user.name.title()))
  248.        
  249.         #eval
  250.         elif cmd == "eval" and self.getAccess(user) >= 4: # level 4+
  251.             try:
  252.                 ret = eval(args)
  253.                 room.message(str(repr(ret)+" ^-^"))
  254.             except:
  255.                 room.message("failed to evaluate")
  256.         #hello
  257.         elif used_prefix and (cmd == "hello" or cmd == "sup"): room.message("Herro %s :3" % user.name.title()) 
  258.  
  259.         # message delay in seconds (delay 10)
  260.         elif used_prefix and cmd == "delay":
  261.             self.setTimeout(int(args), room.message, "heh that was %s of bordem >_>" % args)
  262.        
  263.         # server uptime (uptime)
  264.         elif used_prefix and cmd == "uptime":
  265.             room.message("sys uptime: %s" % uptime())
  266.         # server uptime (uptime)
  267.         elif used_prefix and cmd == "sut":
  268.             room.message("I have been playing for: %s" % getUptime())
  269.  
  270.         # heart/ily (<3 bot, ily bot)
  271.         elif used_prefix and (cmd == "<3" or cmd == "ily" or cmd == "ilu"):
  272.             room.message(random.choice(["<3 u too %s" % user.name, "Wonders over to %s and sits besides them o-o" % user.name.title(),]))
  273.         # heart/ily (<3 bot, ily bot)
  274.         elif used_prefix and (cmd == "wtf" or cmd == "omfg" or cmd == "omg"):
  275.             room.message(random.choice(["Woah o.O %s" % user.name, "eep something wrong %s" % user.name.title(),]))
  276.        
  277.         elif used_prefix and cmd == "flipcoin":
  278.             room.message(random.choice(["%s flips a coin and gets heads" % user.name.title(), "%s flips a coin and gets tails" % user.name.title(), "%s flips a coin and it falls off the table o.O" % user.name.title(),]))
  279.  
  280.         elif used_prefix and cmd == "spin-bottle":
  281.             room.message("<b>%s</b> spins the bottle after it spins it lands on <b>%s</b> ^^" % (user.name.title(), random.choice(room.usernames.title())), True)
  282.                
  283.         # kill bot (eeps)
  284.         elif used_prefix and cmd == "eeps" and self.getAccess(user) >= 4:
  285.             if user.name.lower() == "sorchmaster":
  286.                 room.message("Mutters something before leaving")
  287.                 time.sleep(1)              
  288.                 self.stop()
  289.             else:
  290.                 room.message("wish i could =/")
  291.         # Save stuffs
  292.         elif used_prefix and cmd == "sav":
  293.             if user.name in permitted or spermitted:
  294.                 room.message("I ish saved everything ^^")              
  295.                 print("[SAV] Saving Definitions..")
  296.                 f = open("definitions.txt", "w")
  297.                 for word in dictionary:
  298.                     definition, name = json.loads(dictionary[word])
  299.                     f.write(json.dumps([word, definition, name])+"\n")
  300.                 f.close()
  301.                 print("[SAV] Saving SuperMasters..")
  302.                 f = open("spermitted.txt", "w")
  303.                 f.write("\n".join(spermitted))
  304.                 f.close()
  305.                 print("[SAV] Saving Masters..")
  306.                 f = open("permitted.txt", "w")
  307.                 f.write("\n".join(permitted))
  308.                 f.close()
  309.                 print("[SAV] Saving HalfMasters..")
  310.                 f = open("hpermitted.txt", "w")
  311.                 f.write("\n".join(hpermitted))
  312.                 f.close()
  313.                 print("[SAV] Saving Whitelist..")
  314.                 f = open("whitelist.txt", "w")
  315.                 f.write("\n".join(whitelist))
  316.                 f.close()
  317.                 print("[SAV] Saving Rooms..")
  318.                 f = open("rooms.txt", "w")
  319.                 f.write("\n".join(rooms))
  320.                 f.close()
  321.                 print("[SAV] Saving Whitelist..")
  322.                 f = open("whitelist.txt", "w")
  323.                 f.write("\n".join(whitelist))
  324.                 f.close()
  325.             else:
  326.                 room.message("wish i could =/")
  327.  
  328.  
  329.  
  330.         # cookie responce (cookie?)
  331.         elif cmd =="cookie?":
  332.             room.message(random.choice(["yesh" , "sure ^^" , "no ty =/" , "O_O gimme" , "cookie...YESH" , "^^" , "COOKIE" , "-noms cookie- thankies"]))
  333.  
  334.  
  335.        
  336.         #what room
  337.         elif used_prefix and cmd=="whatroom":
  338.             room.message("<b>%s</b> this is <b>http://%s.chatango.com</b>" % (user.name.title(), room.name), True)
  339.  
  340.         #bye
  341.         elif used_prefix and (cmd == "bye" or cmd == "cya"):
  342.                 room.message("awww bye " + user.name.title() + " =(")
  343.         # half masters
  344.         elif used_prefix and cmd == "hmasters":
  345.             if len(args) >= 3:
  346.                 do, name = args.lower().split(" ", 1)
  347.                 if self.getAccess(ch.User(name)) > 3 or self.getAccess(user) < 2:
  348.                     room.message("no. =/")
  349.                     return
  350.                 if do == "add":
  351.                     if name in hpermitted: room.message("%s is already a hmaster. ^^" % name, True)
  352.                     else:
  353.                         hpermitted.append(name)
  354.                         room.message("<b>%s</b> it has been done. ^^ remember do not add people that abuse me ^^" % user.name.title(), True)
  355.                 elif do == "remove":
  356.                     if name not in hpermitted: room.message("%s is not a hmaster. ^^" % name, True)
  357.                     else:
  358.                         hpermitted.remove(name)
  359.                         room.message("it has been done. ^^ sowwy =/", True)
  360.                 else:
  361.                     room.message("what? >.>", True)
  362.             else:
  363.                 if len(hpermitted) == 0: room.message("I have no half masters. ^^", True)
  364.                 else: room.message("My Half Masters: <b>%s</b> -waves at you all-" % ", ".join(hpermitted), True)
  365.         # room add
  366.         elif used_prefix and cmd == "room":
  367.             if len(args) >= 3:
  368.                 do, name = args.lower().split(" ", 1)
  369.                 if self.getAccess(ch.User(name)) > 4 or self.getAccess(user) < 4:
  370.                     room.message("no. =/")
  371.                     return
  372.                 if do == "add":
  373.                     if name in rooms: room.message("%s in my list. ^^" % name, True)
  374.                     else:
  375.                         rooms.append(name)
  376.                         room.message("it has been done. ^^ I ish there ^^", True)
  377.                         self.joinRoom(name)
  378.                 elif do == "remove":
  379.                     if name not in rooms: room.message("%s is not in my list =/. ^^" % name, True)
  380.                     else:
  381.                         rooms.remove(name)
  382.                         room.message("it has been done. ^^ sowwy =/", True)
  383.                         self.leaveRoom(name)
  384.                 else:
  385.                     room.message("what? >.>", True)
  386.             else:
  387.                 if len(rooms) == 0: room.message("hell i have no rooms how is this possible. ^^", True)
  388.                 else: room.message("Please use my rooms command use botteh rooms")
  389.         # masters
  390.         elif used_prefix and cmd == "masters":
  391.             if len(args) >= 3:
  392.                 do, name = args.lower().split(" ", 1)
  393.                 if self.getAccess(ch.User(name)) > 3 or self.getAccess(user) <= 3:
  394.                     room.message("no. =/")
  395.                     return
  396.                 if do == "add":
  397.                     if name in permitted: room.message("%s is already a master. ^^" % name, True)
  398.                     else:
  399.                         permitted.append(name)
  400.                         room.message("<b>%s</b> it has been done. ^^ remember do not add people that abuse me ^^" % user.name.title(), True)
  401.                 elif do == "remove":
  402.                     if name not in permitted: room.message("%s is not a master. ^^" % name, True)
  403.                     else:
  404.                         permitted.remove(name)
  405.                         room.message("it has been done. ^^ sowwy =/", True)
  406.                 else:
  407.                     room.message("what? >.>", True)
  408.             else:
  409.                 if len(permitted) == 0: room.message("I have no masters. ^^", True)
  410.                 else: room.message("My masters: <b>%s</b> they are just amazing ^^" %  ", ".join(permitted), True)
  411.  
  412.         # whitelist
  413.         elif used_prefix and cmd == "whitelist":
  414.             if len(args) >= 3:
  415.                 do, name = args.lower().split(" ", 1)
  416.                 if self.getAccess(ch.User(name)) > 2:
  417.                     room.message("no. =/")
  418.                     return
  419.                 if do == "add":
  420.                     if self.getAccess(user) >= 2:
  421.                         if name in whitelist:
  422.                             room.message("%s is already whitelisted. ^^" % name, True)
  423.                         else:
  424.                             whitelist.append(name)
  425.                             room.message("<b>%s</b> it has been done. ^^ remember do not add people that abuse me ^^" % user.name, True)
  426.                     else:
  427.                         room.message("%s it has not been possible to connect your call please hang up and try again" % user.name)
  428.                 elif do == "remove":
  429.                     if self.getAccess(user) <= 1:
  430.                         room.message("no. =/")
  431.                         return
  432.                     if name not in whitelist: room.message("%s is not whitelisted. ^^" % name, True)
  433.                     else:
  434.                         whitelist.remove(name)
  435.                         room.message("it has been done. ^^ sowwy =/", True)
  436.                 else:
  437.                     room.message("what? >.>", True)
  438.             else:
  439.                 if len(whitelist) == 0: room.message("I have no whitelisted members. ^^", True)
  440.                 elif len(whitelist) == 1: room.message("I have 1 whitelisted member. ^^", True)
  441.                 else: room.message("I have %s whitelisted members. ^^" % len(whitelist), True)
  442.                
  443.         # bot rooms
  444.         elif (used_prefix and cmd == "whereiam" or cmd =="rooms"):
  445.             room.message("I can be found in: <b>%s</b>" % ",".join(rooms),True)
  446.        
  447.         # user count
  448.         elif used_prefix and cmd == "howmany":
  449.             room.message("i see: " + str(room.usercount))
  450.  
  451.         # help command
  452.         elif used_prefix and (cmd == "help" or cmd == "?" or cmd == "??"):
  453.             room.message("<a href=\"http://i7.sr1.in/botteh/\" target=\"_blank\"><b>Command list</b></a> Follow me on <a href=\"http://twitter.com/followbotteh/\" target=\"_blank\"><b>Twitter<b></a>", True)
  454.  
  455.         # join room
  456.         elif (used_prefix and cmd == "goto" or cmd == "aport")  and len(args) > 0:
  457.             if user.name in permitted or spermitted:
  458.                 print("[INF] Joining %s..." % args.split()[0])
  459.                 self.joinRoom(args.split()[0])
  460.                 room.message("k there. ^^")
  461.  
  462.         # say
  463.         elif used_prefix and cmd == "say" and len(args) > 0:
  464.             if self.getAccess(user) >= 1:
  465.                 room.message("<b>%s</b> -%s-" % (args, user.name.title()), True)
  466.             else:
  467.                 room.message("no. ^^")
  468.  
  469.         # what access
  470.         elif used_prefix and cmd == "lvl":
  471.             if len(args) >= 3:
  472.                 do, name = args.lower().split(" ", 1)
  473.                 if self.getAccess(ch.User(name)) > 4 or self.getAccess(user) < 2:
  474.                     room.message("no. =/")
  475.                     return
  476.                 if do == "check":
  477.                     if name in whitelist: room.message("%s is level 1. <b>(whitelist)</b> ^^" % name, True)
  478.                     else:
  479.                         if name in permitted: room.message("%s is level 3 <b>(master)</b>" % name, True)
  480.                         elif name in hpermitted: room.message("%s is level 2 <b>(hmaster)</b>" % name, True)
  481.                         elif name in spermitted: room.message("%s is level 4 <b>(owner)</b> O.o" % name, True)
  482.                         elif name not in whitelist or permitted or hpermitted: room.message("%s is level 0 <b>(i ignore these)</b>" % name, True)
  483.         # lockdown
  484.         elif (used_prefix and cmd == "sleep"):
  485.             if self.getAccess(user) == 4:
  486.                 if len(args.split()) > 0 and args.split()[0].lower() == "wakeup":
  487.                     lockdown = False
  488.                     room.message("I am awake. ^^")
  489.                     filename ="status.txt"
  490.                     print("[INF]Setting status to normal mode...")
  491.                     file = open(filename, 'w')
  492.                     file.write("Awake")
  493.                     file.close()
  494.                 else:
  495.                     lockdown = True
  496.                     filename = "status.txt"
  497.                     file = open(filename, 'w')
  498.                     print("[INF]Setting status to lockdown...")
  499.                     file.write("Sleeping")
  500.                     file.close()
  501.                     room.message("I am sleeping. ^^")
  502.                    
  503.             else:
  504.                 room.message("no. ^^")
  505.  
  506.         # kill
  507.         elif (used_prefix and cmd == "kill")  and len(args) > 0:
  508.             if self.getAccess(user) >= 1:
  509.                 room.message("Hands %s a grenade -waits 10 seconds- *BOOM* %s is KEELED xD" % (args, args,))
  510.             else:
  511.                 room.message("no. ^^")
  512.         # kill
  513.         elif used_prefix and (cmd == "huggle" or cmd =="hug")  and len(args) > 0:
  514.             if self.getAccess(user) >= 1:
  515.                 room.message(random.choice(["*HUGGLES* %s" % args, "*SQUEEZES* %s" % args,]))
  516.             else:
  517.                 room.message("no. ^^")
  518.         # fake find
  519.         elif (used_prefix and cmd == "locate") and len(args) > 0:
  520.             if self.getAccess(user) >= 1:
  521.                 name = args.split()[0].lower()
  522.                 if not ch.User(name).roomnames:  room.message("dont see them. ^^")
  523.                 else: room.message("%s they are in <b>%s</b> >_>" % (user.name, ", ".join(ch.User(name).roomnames)), True)
  524.             else:
  525.                 room.message("no. ^^")
  526.         # give cookie
  527.         elif (used_prefix and cmd == "givecookie")  and len(args) > 0:
  528.                 room.message("gives %s a cookie ^^" % args)
  529.         # leave room
  530.         elif (used_prefix and cmd == "leave" or cmd == "ninjafy") and len(args) > 0:
  531.             if user.name in permitted or spermitted:
  532.                 self.leaveRoom(args)
  533.                 room.message("k gone. ^^")
  534.             else:
  535.                 room.message("no. ^^")
  536.  
  537.         # give cookie
  538.         elif (used_prefix and cmd == "define")  and len(args) > 0:
  539.             try:
  540.                 word, definition = args.split(":", 1)
  541.                 word = word.lower()
  542.             except:
  543.                 word = args.split()[0].lower()
  544.                 definition = ""
  545.             if len(word.split()) > 1:
  546.                 room.message("error: no phrases")
  547.                 return
  548.             if len(args.split()) > 1 and args.lower().split()[1] == "ud":
  549.                 if word in dictionary:
  550.                     definition, name = json.loads(dictionary[word])
  551.                     if name == user.name or self.getAccess(user) >= 3:
  552.                         del dictionary[word]
  553.                         room.message("okies :3")
  554.                         return
  555.                     else:
  556.                         room.message("<b>%s</b> you can not remove this define only masters or the person who defined the word may remove definitions ^^" % user.name, True)
  557.                         return
  558.                 else:
  559.                     room.message("<b>%s</b> is not yet defined you can define it by typing <b>botteh define %s: meaning</b>" % args, True)
  560.             elif len(definition) > 0: #if there's a colon somewhere
  561.                 if word in dictionary:
  562.                     room.message("<b>%s</b> erm... thats already defined. You can not define it again >_>" % user.name.title(), True)
  563.                 else:
  564.                     dictionary[word] = json.dumps([definition, user.name])
  565.                     room.message(word + ": " + definition + " *by* " "<b>"+ user.name.title() + "</b>", True)
  566.             else:
  567.                 if word in dictionary:
  568.                     definition, name = json.loads(dictionary[word])
  569.                     room.message("<b>" + word + "</b>" ":" + definition + " *by* " "<b>" + name + "</b>", True)
  570.                 else:
  571.                     room.message("<b>%s</b> is not yet defined you can define it by saying <b>botteh define %s: meaning</b>  ^^" % (args, args), True)
  572.  
  573.    
  574.         # dance
  575.         elif (used_prefix and cmd == "dance"):
  576.             if self.getAccess(user) >= 1:
  577.                 for i, msg in enumerate(dancemoves):
  578.                     self.setTimeout(i / 2, room.message, msg)
  579.             else:
  580.                 room.message("no dances for you >_>")
  581.    
  582.         # youtube search
  583.         elif (used_prefix and cmd == "tube" or used_prefix and cmd == "ytb"):
  584.             search = args.split()
  585.             def everything_between(text,begin,end):
  586.                 idx1=text.find(begin)
  587.                 idx2=text.find(end,idx1)
  588.                 return ' '.join(text[idx1+len(begin):idx2].strip().split())
  589.             try:
  590.                 raw = str(urllib.request.urlopen("http://gdata.youtube.com/feeds/api/videos?vq=%s&racy=include&orderby=relevance&max-results=1" % "+".join(search)).read())
  591.                 id = helperCmd.everything_between(raw,'http://www.youtube.com/watch?v=','&amp;')
  592.                 info = youtube.Video(id)
  593.                 link = "http://www.youtube.com/watch?v="+id
  594.                 room.message("%s, i found: \"%s\" by %s. %s" % (user.name.title(), info.get_title()[:50], info.get_auth()[:50], link), True)
  595.             except:
  596.                 room.message("Error: Nothing found for %s =/" % args)                      
  597.  
  598.         #                      
  599.         # Persona
  600.         #
  601.         #redo "split message into command and args"
  602.         data = message.body.split(" ", 1)
  603.         if len(data) > 1:
  604.             cmd, args = data[0], args # if command and args
  605.         else:
  606.             cmd, args  = data[0], ""# if command and no args
  607.         # butterfly responce (8|8)
  608.         if cmd =="8|8":
  609.             room.message(random.choice(["Omg sexy *chases* ^w^" , "woah" , "I want one =/" , "O_O -watches-" , "O.o -touchs-" , "^^" , "oooo"]))
  610.  
  611.         elif cmd == "><>":
  612.             room.message(random.choice(["eeee fishes ^^" , "o.o fish" , "I want one =/" , "waves at fishy ^^" , "O.o -touchs-" , "^^" , "oooo fish"]))
  613.        
  614.         def onFloodWarning(self, room):
  615.             room.reconnect()
  616.    
  617.    
  618.         def onUserCountChange(self, room):
  619.             print("users: " + str(room.usercount))
  620.  
  621.        
  622. ########################################################################################
  623. # Bot username password and rooms
  624. ########################################################################################
  625. def hexc(e):
  626.     et, ev, tb  = sys.exc_info()
  627.     if not tb: print(str(e))
  628.     while tb:
  629.         lineno = tb.tb_lineno
  630.         fn  = tb.tb_frame.f_code.co_filename
  631.         tb  = tb.tb_next
  632.     print("(%s:%i) %s" % (fn, lineno, str(e)))
  633.    
  634. if __name__ == "__main__":
  635.     error = 0
  636.     try:
  637.         os.system("clear") # clear console on launch
  638.         TestBot.easy_start(rooms, cmds.botname, cmds.password)
  639.     except KeyboardInterrupt:
  640.         print("[ERR] Console initiated a kill.")
  641.     except Exception as e:
  642.         print("[ERR] Fatal error.")
  643.         error = 1
  644.         hexc(e)
  645.     print("[SAV] Saving Definitions..")
  646.     f = open("definitions.txt", "w")
  647.     for word in dictionary:
  648.         definition, name = json.loads(dictionary[word])
  649.         f.write(json.dumps([word, definition, name])+"\n")
  650.     f.close()
  651.     print("[SAV] Saving SuperMasters..")
  652.     f = open("spermitted.txt", "w")
  653.     f.write("\n".join(spermitted))
  654.     f.close()
  655.     print("[SAV] Saving Masters..")
  656.     f = open("permitted.txt", "w")
  657.     f.write("\n".join(permitted))
  658.     f.close()
  659.     print("[SAV] Saving HalfMasters..")
  660.     f = open("hpermitted.txt", "w")
  661.     f.write("\n".join(hpermitted))
  662.     f.close()
  663.     print("[SAV] Saving Whitelist..")
  664.     f = open("whitelist.txt", "w")
  665.     f.write("\n".join(whitelist))
  666.     f.close()
  667.     print("[SAV] Saving Rooms..")
  668.     f = open("rooms.txt", "w")
  669.     f.write("\n".join(rooms))
  670.     f.close()
  671. #STATUS
  672. #
  673.     filename = "status.txt"
  674.     f = open(filename, 'w')
  675.     print ("[INF] Setting status offline...")
  676.     f.write("In deep sleep")
  677.     f.close()
  678. #
  679.  
  680.     if error == 1:
  681.         print("Waiting 10 seconds for you to read the error..")
  682.         time.sleep(10)
  683.     print("[INF] Shutting down..")
  684. ########################################################################################
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement