Advertisement
Guest User

donto

a guest
Nov 27th, 2015
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ############################################################################
  2. ############################################################################
  3. ####    Getting Started Bot                                     ############
  4. ####    File            = ExampleBot.py                         ############    
  5. ####    Originaly by    = TryHardHusky                          ############
  6. ####    Edited by       = 0rX                                   ############
  7. ####    terus di edit lagi sama gugun :v                        ############
  8. ####    you can PM for info about making a chatango             ############
  9. ####    bot in http://khususme.chatango.com, and you can        ############
  10. ####    and you can also chat in :                              ############
  11. ####            http://pemakaman.chatango.com                   ############
  12. ####    Last update:                                            ############
  13. ####            3.21 AM July, 5 2015 by 0rx                     ############
  14. ############################################################################
  15. ############################################################################
  16. ##Importing Random Crap xD
  17. #here you can see that you're importing ch library
  18.  
  19. import ch
  20. import random
  21. import sys
  22. import json
  23. import time
  24. import re
  25. import urllib
  26. if sys.version_info[0] > 2:
  27.   import urllib.request as urlreq
  28. else:
  29.   import urllib2 as urlreq
  30. from time import localtime, strftime
  31. wordtodaytime = dict()
  32. ##Dance moves!
  33. #kinda useless
  34.  
  35. cowner = ["rintoisback","thelorgorenk"]##Jangan di ubah karena lu akan melanggar UU No 2 Tentang Hak Cipta.##
  36. staffa = ["fapfapgangnam","sekkki"]
  37. dancemoves = [
  38.   "(>^.^)>",
  39.   "(v^.^)v",
  40. ]
  41. song = [
  42.   "Dirimu, dirimulah! Orang yang beriku senyum ini",
  43. "Jika kita bisa membuat air mata yang bersinar, itu 'kan 'jadi bintang jatuh",
  44. "Tanganmu t'lah terluka, tapi jangan pernah lepaskannya lagi",
  45. "Dari langit yang terpenuhi keinginan, hari esok 'kan segera datang",
  46.  
  47. "Cahya yang membimbingku adalah dirimu",
  48. "Dan aku pun ditarik karenanya",
  49. "Sebelum kusadarim kita mulai sebrangi jalan itu",
  50. "Sekaranglah saatnya! Jikalau kita hanya bisa bersinar di sini",
  51. ]
  52.  
  53. bete = [
  54. "kunci",
  55. ]
  56. pagi = [
  57. "ohayou oni-chan",
  58. ]
  59. ## Nicknames
  60. nicks=dict()#empty list
  61. f=open ("nicks.txt","r")#r=read w=right
  62. for line in f.readlines():#loop through eachline and read each line
  63.     try:#try code
  64.         if len(line.strip())>0:#strip the whitespace checkgreater than 0
  65.             user , nick = json.loads(line.strip())
  66.             nicks[user] = json.dumps(nick)
  67.     except:
  68.         print("[Error]Can't load nick %s" % line)
  69. f.close()
  70. ##Whitelist##
  71. whitelist = []
  72. f = open("whitelist.txt", "r") # read-only
  73. for name in f.readlines():
  74.   if len(name.strip())>0: whitelist.append(name.strip())
  75. f.close()
  76. ##Rooms##
  77. rooms = []
  78. f = open("rooms.txt", "r") #read-only
  79. print("[INF]Loading Rooms...")
  80. time.sleep(1)
  81. for name in f.readlines():
  82.   if len(name.strip())>0: rooms.append(name.strip())
  83. f.close()
  84. # implied command?    
  85. # call bot name with command after
  86. # call bot name with command after
  87. #Setting Pretty Colors
  88. #Font setting for your bot
  89. def googleSearch(search):
  90.   try:
  91.     encoded = urllib.parse.quote(search)
  92.     rawData = urllib.request.urlopen("http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q="+encoded).read().decode("utf-8")
  93.     jsonData = json.loads(rawData)
  94.     searchResults = jsonData["responseData"]["results"]
  95.     full = []
  96.     val = 1
  97.     for data in searchResults:
  98.       if "youtube" in data["url"]:
  99.         data["url"] = "http://www.youtube.com/watch?v="+data["url"][35:]
  100.       full.append("[<b>%s</b>]. %s -> %s" % (val,data["title"],data['url']))
  101.       val = val + 1
  102.     return '<br/>'.join(full).replace('https://','http://')
  103.   except Exception as e:
  104.     return str(e)
  105.  
  106. def newJoi():
  107.   headers = {}
  108.   headers['User-Agent'] = "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.27 Safari/537.17"
  109.   req = urllib.request.Request("http://jurnalotaku.com/", headers = headers)
  110.   resp = urllib.request.urlopen(req).read().decode("utf-8")
  111.   Data = re.findall('<a href="(.*?)" class="title"><h3><span>(.*?)</span>', resp)
  112.   lolly = list()
  113.   anjeng = -5
  114.   for lk, tit in Data:
  115.     lolly.append(('%s. <b>%s</b>: %s' % (anjeng, tit, lk)))
  116.     anjeng = anjeng+1
  117.   return "<br/>".join(lolly[6:14])
  118.  
  119. def googleImageSearch(encoded):
  120.   encoded = encoded.split()
  121.   url = urllib.request.urlopen("http://ajax.googleapis.com/ajax/services/search/images?v=1.0&q=%s" % "+".join(encoded))
  122.   udict = url.read().decode('utf-8')
  123.   jsonData = json.loads(udict)
  124.   searchResults = jsonData["responseData"]["results"]
  125.   for data in searchResults:
  126.     return  "%s" % (data['url'])
  127.  
  128. def tube(args):
  129.    try:
  130.     search = args.split()
  131.     url = urlreq.urlopen("https://www.googleapis.com/youtube/v3/search?q=%s&part=snippet&key=AIzaSyBSnh-sIjd97_FmQVzlyGbcaYXuSt_oh84" % "+".join(search))
  132.     udict = url.read().decode('utf-8')
  133.     data = json.loads(udict)
  134.     rest = []
  135.     for f in data["items"]:
  136.       rest.append(f)
  137.  
  138.     d = random.choice(rest)
  139.     link = "http://www.youtube.com/watch?v=" + d["id"]["videoId"]
  140.     videoid = d["id"]["videoId"]
  141.     title = d["snippet"]["title"]
  142.     uploader = d["snippet"]["channelTitle"]
  143.     descript = d["snippet"]['description']
  144.     count    = d["snippet"]["publishedAt"]
  145.     return "<br/><br/><b>%s</b>:<br/> <b>%s</b><br/><b>Upload by</b>: %s <br/><b>Description</b>: <i>%s</i>" % (title, link, uploader, descript)
  146.    except Exception as e:
  147.     return str(e)
  148.  
  149. def sntonick(username):
  150.     user = username.lower()
  151.     if user in nicks:
  152.         nick = json.loads(nicks[user])
  153.         return nick
  154.     else:
  155.         return user
  156.  
  157. ##### Pars Def
  158. def pars(args):
  159.           args=args.lower()
  160.           userlist = roomUsers()
  161.           for name in userlist:
  162.             if args in name:return name
  163. class TestBot(ch.RoomManager):
  164.   def onInit(self):
  165.     self.setNameColor("000")
  166.     self.setFontColor("FF0000")
  167.     self.setFontFace("Arial")
  168.     self.setFontSize(9)
  169.     self.enableBg()
  170.     self.enableRecording()
  171. ##### Pars Def
  172.   def pars(args):
  173.           args=args.lower()
  174.           userlist = roomUsers()
  175.           for name in userlist:
  176.             if args in name:return name
  177.   def getAccess(self, user):
  178.     if user.name in cowner: return 4 # owner-JP
  179.     elif user.name in staffa: return 3 # masters
  180. ##Connecting Crap
  181. #This is what will be printed on your python console when event called
  182.  
  183.   def onConnect(self, room):
  184.     print("Connected")
  185.  
  186.   def onReconnect(self, room):
  187.     print("Reconnected")
  188.  
  189.   def onDisconnect(self, room):
  190.     print("Disconnected")
  191.  
  192.  
  193. ##Ignore this, you dont need to worry about this
  194. #Well, you can actually take a little time to look at it and learn something
  195.   def onMessage(self, room, user, message):
  196.   #### Comenzi fara prefix
  197.    if message.body.startswith("test"):
  198.      room.message("Testare efectuată cu succes!")
  199.    if message.body.startswith("shun"):
  200.      if user.name in cowner:
  201.       room.message("Yea, my Master !?")
  202.      else:
  203.       room.message("What's up,"+ sntonick(user.name)+"?", True)
  204.    if message.body.startswith("afk"):
  205.      if user.name == "rintoisback":
  206.       room.message("See You Soon Master "+sntonick(user.name), True)
  207.      else:
  208.       room.message("See You Soon,"+ sntonick(user.name)+".", True)
  209.    if message.body.startswith("brb"):
  210.      if user.name == "rintoisback":
  211.       room.message("Bye, Rin-Kun")
  212.      else:
  213.       room.message("Bye,"+ sntonick(user.name)+".", True)
  214.    if message.body.startswith("back"):
  215.      if user.name == "rintoisback":
  216.       room.message("Welcome back,Rin-Kun")
  217.      else:
  218.       room.message("Welcome back,"+ sntonick(user.name)+".", True)
  219.    try:
  220.     startlag = time.clock()
  221.     if room.getLevel(self.user) > 0:
  222.       print(user.name, message.body)
  223.     else:
  224.       print(user.name, message.body)
  225.     if self.user == user: return
  226.     if message.body[0] == "~" or message.body[0] == "~" or message.body[0] == ">" or message.body[0] == "#" or message.body[0] == "^" or message.body[0] == "^" or message.body[0] == "*":   ##Here is the Prefix part
  227.       data = message.body[1:].split(" ", 1)
  228.       if len(data) > 1:
  229.         cmd, args = data[0], data[1]
  230.       else:
  231.         cmd, args = data[0], ""
  232.  
  233.       if user.name not in whitelist: return
  234.      
  235.       if cmd == "ev" or cmd == "eval" or cmd == "e":
  236.           ret = eval(args)
  237.           if ret == None:
  238.             room.message("Terminat.")
  239.             return
  240.           room.message(str(ret))
  241. ##COMMANDS!
  242. #Setting up commands for yer bot
  243.  #commands section
  244. #### Invite
  245.       elif cmd == "wl":
  246.         if args in whitelist:
  247.             room.message(args+" is already registered",True);return
  248.         elif args not in room.usernames:
  249.           if args == "": return
  250.           room.message("I don't see "+args+" here >,> ",True);return
  251.         else:
  252.             whitelist.append(args)
  253.             room.message(args+" can use me now. :o",True)
  254.         f = open("whitelist.txt", "w")
  255.         f.write("\n".join(whitelist))
  256.         f.close()
  257.  
  258.       elif (cmd == "mynick") :
  259.           user=user.name.lower()
  260.           if user in nicks :
  261.             nick = json.loads(nicks[user])
  262.             room.message(user+" is nicked : "+nick,True)
  263.           else:
  264.             room.message("You have no nickname yet in my nick[] database.", True)
  265.  
  266.       elif cmd == "nick":
  267.         ## if user.name in reg or user.name in friends or user.name in trusted or user.name in owners:
  268.             if args:
  269.                 nick = args # disini letak perbedaannya...
  270.                 user = user.name # mungkin juga disini
  271.                 nicks[user] = json.dumps(nick)
  272.                 room.message(user +' I will now call you '+str(args)+'', True)
  273.                 try: # ini skrip untuk auto-save ...
  274.                     print("[SAVING] NICKS...")
  275.                     f = open("nicks.txt", "w")
  276.                     for user in nicks:
  277.                         nick = json.loads(nicks[user])
  278.                         f.write(json.dumps([user,nick]) + "\n")
  279.                 except:
  280.                        room.message("Failed To Make New Nick..");return
  281.             else:
  282.               room.message('Type ;nick yournick to adding new nickname', True)
  283.  
  284.       if cmd =="nas":
  285.                   sss = args
  286.                   resp = urlreq.urlopen("http://nontonanime.web.id/?s="+sss+"&post_type=anime").read().decode("utf-8")
  287.                   data = re.findall('<h2><a href="(.*?)">(.*?)</a>', resp)
  288.                   newset = list()
  289.                   num = 1
  290.                   for link, title in data:
  291.                     newset.append(('[%s] %s: %s') % (num, title,link))
  292.                     num = num+1
  293.                   room.message("Search Result "+args+" on NontonAnime.web.id: <br/>"+"<br/>".join(newset),True)
  294.       elif cmd =="staff" or cmd =="ranker" and self.getAccess(user) >= 1:
  295.           x = ", ".join(cowner)
  296.           z = len(cowner)
  297.           y = ", ".join(staffa)
  298.           o = len(staffa)
  299.           room.message('<f x1299ffff="Arial"><b>Owner</b></f>: '+str(x).title()+" (<b>"+str(z)+"</b>)"+'<br/><f x11ff0000="Arial"><b>Staffs</b></f>: '+str(y)+" (<b>"+str(o)+"</b>)",True)
  300.      #### Google Search
  301.       elif cmd == "gws" or cmd == "Gws" or cmd == "Google Search":
  302.           if len(args) > 0:
  303.             room.rawMessage("<a href='http://lmgtfy.com/?q=" + args + "' target='_blank'><u>" + args + '</u></a>' )
  304.      #### Google Image Search
  305.       elif cmd == "gis" or cmd == "Gis" or cmd == "Google Search Image" or cmd == "GS Image":
  306.         try:
  307.             search = args.split()
  308.             import urllib.request
  309.             with urllib.request.urlopen("http://ajax.googleapis.com/ajax/services/search/images?v=1.0&q=%s" % "+".join(search)) as url:
  310.                 udict = url.read().decode()
  311.             a = re.finditer('"unescapedUrl":"(.+?)","url":"', udict)
  312.             matches = []
  313.             for match in a:
  314.                 match = str(match.group(1))
  315.                 matches.append(match)
  316.             link = random.choice(matches)
  317.             try:
  318.                 link = link.replace("https", "http")
  319.             except:
  320.                 print("Random choice isn't SSL.")
  321.             if args: room.message("%s, I found: %s" % (sntonick(user.name), link), True)
  322.         except:
  323.             room.message("%s I'm sorry, I was unable to find anything for search term: %s :|" % (str(user.name), args), True)
  324.  
  325.       elif cmd == "youtube" or cmd == "yt":
  326.         if args:
  327.           room.message(tube(args),True)
  328.         else:
  329.           room.message("Please type what you want to watch in Youtube..",True)  
  330.       if cmd == "cmds":
  331.         room.message("Shun Command : prefix [~] userlist,gis,gws,nas,nick,mynick,say,mc,mc2,myip,ban,unban,sbg,fax,bg,prof,wake,sleep,ranker,mods,lock,unlock,leave,join,isdown,sn,cs,rn,df,find,lm,bc,ig,pm,wt,save,banlist,yt")
  332.       if cmd == "invite" or cmd == "Invite":
  333.         if len (args) > 0:
  334.             self.pm.message(ch.RoomManager(args),"%s You have a group invite by ! http://%s.chatango.com ." %(owners[0],room.name))
  335.             room.message("Invite on progress %s in Access group. :)" % args)
  336.         else:
  337.             room.message("Sry have problem. :3")
  338.     ### User List
  339.       elif cmd == "userlist" or cmd == "UserList" or cmd == "User List" or cmd == "User list":
  340.          if args == "":
  341.           usrs = []
  342.           gay = []
  343.           finale = []
  344.           prop = 0
  345.           prop = prop + len(room._userlist) - 1
  346.           for i in room._userlist:
  347.             i = str(i)
  348.             usrs.append(i)
  349.           while prop >= 0:
  350.             j = usrs[prop].replace("<User: ", "")
  351.             i = j.replace(">", "")
  352.             gay.append(i)
  353.             prop = prop - 1
  354.           for i in gay:
  355.             if i not in finale:
  356.               finale.append(i)
  357.           if len(finale) > 40:
  358.             room.message("<font color='#9999FF'><b>40</b></font> of <b>%s</b> users in this room: %s"% (len(finale), ", ".join(finale[:41])), True)
  359.           if len(finale) <=40 :
  360.             room.message("Current <b>%s</b> users of this room: %s"% (len(finale),", ".join(finale)), True)
  361.          if args != "":
  362.            if args not in self.roomnames:
  363.              room.message("I'm not there.")
  364.              return
  365.            users = getParticipant(str(args))
  366.            if len(users) > 40:
  367.              room.message("<font color='#9999FF'><b>40</b></font> of <b>%s</b> current users in <b>%s</b>: %s"% (len(users), args.title(), ", ".join(users[:41])), True)
  368.            if len(users) <=40:
  369.              room.message("Current <b>%s</b> users in <b>%s</b>: %s"% (len(users), args.title(), ", ".join(users)), True)
  370. ##You may want/need to evaluate something about your bot.
  371.       if cmd == "ev" or cmd == "eval" or cmd == "e" and user.name in cowner:
  372.           ret = eval(args)
  373.           if ret == None:
  374.             room.message("Done.")
  375.             return
  376.           room.message(str(ret))
  377.       elif cmd == "myrank":
  378.         if user.name in cowner:room.message(sntonick(user.name)+", your rank is Owner[<font color='#FFA600'>★★★</font>]: <b>3</b>",True)
  379.         elif user.name in staffa: room.message(sntonick(user.name)+", your rank is Master[<font color='#FF0066'>★★</font>]: <b>2</b>",True)
  380.         elif user.name in whitelist: room.message(sntonick(user.name)+", your rank is Whitelist[<font color='#3399FF'>★</font>]: <b>1</b>",True)
  381.         else: room.message(sntonick(user.name)+",They Have No Rank ^^ ..",True)
  382.  
  383.         ##Say
  384.         #Make your bot say what you want
  385.       if cmd == "say":
  386.        if args:
  387.         room.message(args)
  388.        else:
  389.         room.message(":|")
  390.      ### MultiChat
  391.       elif cmd == "multichat" or cmd == "mc" or cmd == "MultiChat" or cmd == "Mc":
  392.         if args == "":
  393.             x = 'My Default room : www.desenecalumea.chatango.com'
  394.             room.message(x,True)
  395.         else:
  396.             b = 'Done ! , This is your Room : <a href="http://ch.besaba.com/chat/flash/?'+args+'" target="_blank"><u><font color="#999999">Click Here!!</u></a> '
  397.             room.message(b,True)
  398.       elif cmd == "multichat2" or cmd == "mc2":
  399.         if args == "":
  400.             x = 'My Default room : <a href="http://ch.besaba.com/chat/html5/?newdenscund!,monosekai!,obsoletedream!" target="_blank"><u>Click Here!!</u></a> '
  401.             room.message(x,True)
  402.         else:
  403.             b = 'Done ! , This is your Room : <a href="http://ch.besaba.com/chat/html6/?'+args+'" target="_blank"><u><font color="#999999">Click Here!!</u></a> '
  404.             room.message(b,True)
  405.       #### MyIp
  406.       elif cmd =="myip" or cmd == "MyIp" or cmd == "MyIP" or cmd == "My IP Adress":
  407.         try:
  408.          room.message("Your I.P. address is : "+message.ip)
  409.         except:
  410.          room.message("IP lookup failed , bot is not a mod in this chat.")
  411.       elif cmd == "rooms":
  412.           j = list()
  413.           for i in self.roomnames:
  414.             j.append("<b>"+i+"</b>"+"("+str(self.getRoom(i).usercount)+")")
  415.           room.message("|| <f x1233FFFF='1'>I'am <f x12F00='1'>Online <f x12334433='1'>in: "+", ".join(j)+" ||", True)
  416.      ##### Set Background
  417.       if cmd== "sbg" or cmd == "Sbg" or cmd == "Set Background":
  418.             if user.name in cowner:
  419.               if len(args) > 0:
  420.                   if args == "On":
  421.                     room.setBgMode(1)
  422.                     room.message("Background On")
  423.                     return
  424.                   if args == "Off":
  425.                     room.setBgMode(0)
  426.                     room.message("Background Off")
  427.     ###### Fax
  428.       if cmd == "fax" or cmd == "Fax":
  429.         try:
  430.           name, body = args.split(" ", 1)
  431.           l = "http://ch.besaba.com/mty.htm?"+room.name+"!"
  432.           if name in self.roomnames :
  433.             self.getRoom(name).message('[<font color="#6699CC"><b>Message</b></font> - %s ] in <a href=\"%s" target=\"_blank\"><u>%s</u></a> : <font color="#66FFFF"><i> %s <i></font>' % (sntonick(user.name), l, room.name, body),True)
  434.             room.message("Sent")
  435.           else:
  436.             room.message("I haven't joined that room")
  437.         except:room.message("error")
  438.     #### Profile
  439.       elif cmd == "prof" or cmd == "profile" or cmd == "Prof" or cmd == "Profile":
  440.         try:
  441.           args=args.lower()
  442.           stuff=str(urlreq.urlopen("http://"+args+".chatango.com").read().decode("utf-8"))
  443.           crap, age = stuff.split('<span class="profile_text"><strong>Age:</strong></span></td><td><span class="profile_text">', 1)
  444.           age, crap = age.split('<br /></span>', 1)
  445.           crap, gender = stuff.split('<span class="profile_text"><strong>Gender:</strong></span></td><td><span class="profile_text">', 1)
  446.           gender, crap = gender.split(' <br /></span>', 1)
  447.           if gender == 'M':
  448.               gender = 'Male'
  449.           elif gender == 'F':
  450.               gender = 'Female'
  451.           else:
  452.               gender = '?'
  453.           crap, location = stuff.split('<span class="profile_text"><strong>Location:</strong></span></td><td><span class="profile_text">', 1)
  454.           location, crap = location.split(' <br /></span>', 1)
  455.           crap,mini=stuff.split("<span class=\"profile_text\"><!-- google_ad_section_start -->",1)
  456.           mini,crap=mini.split("<!-- google_ad_section_end --></span>",1)
  457.           mini=mini.replace("<img","<!")
  458.           picture = '<a href="http://fp.chatango.com/profileimg/' + args[0] + '/' + args[1] + '/' + args + '/full.jpg" style="z-index:59" target="_blank">http://fp.chatango.com/profileimg/' + args[0] + '/' + args[1] + '/' + args + '/full.jpg</a>'
  459.           prodata = '<br/> <a href="http://chatango.com/fullpix?' + args + '" target="_blank">' + picture + '<br/><br/> Age: '+ age + ' <br/> Gender: ' + gender +  ' <br/> Location: ' +  location + '' '<br/> <a href="http://' + args + '.chatango.com" target="_blank"><u>Chat With User</u></a> ' "<br/><br/> "+ mini
  460.           room.message(prodata,True)
  461.         except:
  462.           room.message(""+args+" doesn't exist o.o ")
  463.       #### Bg
  464.       if cmd =="bg":
  465.         try:
  466.           args=args.lower()
  467.           picture = '<a href="http://st.chatango.com/profileimg/' + args[0] + '/' + args[1] + '/' + args + '/msgbg.jpg" style="z-index:59" target="_blank">http://fp.chatango.com/profileimg/' + args[0] + '/' + args[1] + '/' + args + '/msgbg.jpg</a>'
  468.           prodata = '<br/>'+picture
  469.           room.message(prodata,True)
  470.         except:
  471.           room.message(""+args+" doesn't exist o.o ")
  472.       if cmd == "join":
  473.          if args not in self.roomnames:
  474.                 room.message("<f x12F00='1'>In proggress <f x1233FFFF='1'>go to <f x12F00='1'>room :<f x12FFCC00='1'>  <b>%s</b>*" % args, True)
  475.                 self.joinRoom(args)
  476.                 room.message("<f x1233FFFF='1'>I has <f x12F00='1'>be in <f x12334433='1'>room :<f x12FFCC00='1'> "+args, True)
  477.          else: room.message("<f x123333FF='1'>Sorry, <f x12FFCC00='1'>is seems <f x1233FFFF='1'> only rank 3,4,5 <f x12FFCC00='1'>can do this :)",True)
  478.      ### Wake
  479.       if cmd == "wake" or cmd == "Wake":
  480.         if user.name in cowner: return
  481.         room.message("shunstreak este in Wake mode")
  482.         lockdown = False
  483.      ### Sleep
  484.       if cmd == "sleep" or cmd == "Sleep":
  485.         if user.name in cowner: return
  486.         room.message("shunstreak este in Sleep mode")
  487.         lockdown = True
  488.             #### Join
  489.       elif cmd == "join" or cmd == "Join":
  490.           if user.name in cowner:
  491.                 room.message("*Am fost conectată pe un alt chat, numit <b>%s</b>*" % args, True)
  492.                 self.joinRoom(args)
  493.           else:
  494.                 room.message("Sunt deja acolo :|")  
  495.      #### Leave
  496.       elif cmd == "Leave" or cmd == "leave" and user.name in owners:
  497.         if user.name in cowner:
  498.           room.message("Shutting down ...")
  499.           self.setTimeout(4, self.stop, )
  500.           self.stop()
  501.         else:
  502.           room.message("Ce ??? *lol*")
  503.       elif cmd == "chazerxjr":
  504.         jawab = ["bot system kaneki v1.0 siap membantu"]
  505.         room.message(random.choice(jawab)+" @"+user.name)
  506.       elif cmd == "ramal":
  507.         jawab = ["hari ini anda beruntung","hari ini anda sial","hari ini anda akan bertemu jodoh anda :D","hari ini anda akan ketemu mantan anda","jones ya? minta di ramal2"]
  508.         room.message(random.choice(jawab)+" @"+user.name)
  509.       elif cmd == "fight":
  510.         jawab = ["http://data2.whicdn.com/images/156069110/large.gif"]
  511.         room.message(random.choice(jawab)+" @"+user.name)
  512.       elif cmd == "help":
  513.         jawab = ["Deal"]
  514.         room.message(random.choice(jawab)+" @"+user.name)
  515.       elif cmd == "afk":
  516.         jawab = ["terimakasih untuk chat nya hari ini"]
  517.         room.message(random.choice(jawab)+" @"+user.name)
  518.       elif cmd == "crunch":
  519.         jawab = ["https://31.media.tumblr.com/50dcec4f797eb86ea483558695c874f1/tumblr_nqru66BNYc1u8lwqgo1_500.gif"]
  520.         room.message(random.choice(jawab)+" @"+user.name)
  521.       elif cmd == "nja":
  522.         jawab = ["bye2"]
  523.         room.message(random.choice(jawab)+" @"+user.name)
  524.       elif cmd == "coeghd":
  525.         jawab = ["anda kenapa?"]
  526.         room.message(random.choice(jawab)+" @"+user.name)
  527.       elif cmd == ":v":
  528.         jawab = ["emoticon dewa"]
  529.         room.message(random.choice(jawab)+" @"+user.name)
  530.       elif cmd == "lebaran":
  531.         jawab = ["minal aidzin wal faizin kk"]
  532.         room.message(random.choice(jawab)+" @"+user.name)
  533.       elif cmd == "gue tamvan gak ?":
  534.         jawab = ["kaga","tamvan","jelek","biasa aja"]
  535.         room.message(random.choice(jawab)+" @"+user.name)
  536.       elif cmd == "hmm":
  537.         jawab = ["maho detcted"]
  538.         room.message(random.choice(jawab)+" @"+user.name)
  539.       elif cmd == "konbanwa":
  540.         jawab = ["tidur sana jangan ngalong :v"]
  541.         room.message(random.choice(jawab)+" @"+user.name)
  542.       elif cmd == "naruto":
  543.         jawab = ["adalah anime yang selalu flash back"]
  544.         room.message(random.choice(jawab)+" @"+user.name)
  545.       elif cmd == "bnp":
  546.         jawab = ["erorr forbidden access denied"]
  547.         room.message(random.choice(jawab)+" @"+user.name)
  548.         ##Random User
  549.         #What's this for ? this one cmd will make your boy say the name of a random user in a room
  550.       if cmd == "randomuser":
  551.         room.message(random.choice(room.usernames))
  552.  
  553.         ##Check Level
  554.         #This one cmd is tho make your bot say your mod level in the current room you're in
  555.       elif cmd == "mylvl":
  556.         room.message("Your mod level: %i" %(room.getLevel(user)))
  557.  
  558.         ##List Mods
  559.         #List of Mods and Owner name in the current room you're in
  560.       elif cmd == "mods" or cmd == "Mods":
  561.         args = args.lower()
  562.         if not args:
  563.            room.message("<br/><font color='#9999FF'><b>Owner</b></font>:  <u><b>"+(room.ownername)+"</b></u>  <br/><font color='#9999FF'><b>Mods</b></font>: "+", ".join(room.modnames), True)
  564.            return
  565.         if args in self.roomnames:
  566.            moda = self.getRoom(args).modname
  567.            own = self.getRoom(args).ownername
  568.            room.message("<br/><font color='#9999FF'><b>Owner</b></font>:  <b><u>"+(own)+"</u></b>  <br/><font color='#9999FF'><b>Mods</b></font>:  "+",  ".join(moda), True)
  569.         else:
  570.            self.joinRoom(args)
  571.            cek_mods[user.name] = json.dumps([room.name,args])
  572.      #### Google Image Search
  573.       elif cmd == "gis" or cmd == "Gis" or cmd == "Google Search Image" or cmd == "GS Image":
  574.         try:
  575.             search = args.split()
  576.             import urllib.request
  577.             with urllib.request.urlopen("http://ajax.googleapis.com/ajax/services/search/images?v=1.0&q=%s" % "+".join(search)) as url:
  578.                 udict = url.read().decode()
  579.             a = re.finditer('"unescapedUrl":"(.+?)","url":"', udict)
  580.             matches = []
  581.             for match in a:
  582.                 match = str(match.group(1))
  583.                 matches.append(match)
  584.             link = random.choice(matches)
  585.             try:
  586.                 link = link.replace("https", "http")
  587.             except:
  588.                 print("Random choice isn't SSL.")
  589.             if args: room.message("%s, I found: %s" % (sntonick(user.name), link), True)
  590.         except:
  591.             room.message("%s I'm sorry, I was unable to find anything for search term: %s :|" % (str(user.name), args), True)
  592.              
  593.          #### Broadcast
  594.       if cmd == "broadcast" or cmd == "Broadcast" or cmd == "Shout" or cmd == "shout" or cmd == "Bc" or cmd == "Bc":
  595.             if user.name in cowner: #Only rank 4+ can Broadcast a Message
  596.                 for room in self.rooms:
  597.                   if args == "": return
  598.                   else:
  599.                     room.message("Broadcast de la - "+user.name + ": "+args, True)
  600.             else:
  601.                 room.message("[<b>%s</b>] Only Admins Members are allowed" % "ERROR", True)
  602.       #### Is Down
  603.       if cmd=="isdown":
  604.        if len(args)>0:
  605.         for line in urlreq.urlopen("http://www.downforeveryoneorjustme.com/"+args):
  606.           decoder=line.decode("UTF-8")
  607.           if "It's just you." in decoder:
  608.             room.message(args+" Should be up....")
  609.             break
  610.           if "It's not just you!" in decoder:
  611.             room.message(args+" Looks down for now.")
  612.             break
  613.           if "doesn't look like a site on the interwho." in decoder:
  614.             room.message(args+" isn't a valid url.")
  615.             break
  616.           else:
  617.             continue
  618.                 # Ban List
  619.       if cmd == "banlist":
  620.         room.message("The banlist is: "+str(room.banlist))
  621.    
  622.            ##ForceSave
  623.       if cmd == "save":
  624.           time.sleep(1)
  625.           print("[SAVE] SAVING DEFINITIONS...")
  626.           f = open("definitions.txt", "w")
  627.           for word in dictionary:
  628.               definition, name = json.loads(dictionary[word])
  629.               f.write(json.dumps([word, definition, name])+"\n")
  630.           if user.name.lower() in owners or user.name in cowner:
  631.               room.message("Se salveaza...(Force Mode!)...")
  632.           else:
  633.               room.message("Se salveaza...(Normal Mode!)")
  634.           f.close()
  635.      
  636.          ###### Define            
  637.       if cmd == "def" or cmd == "define" or cmd == "Define" or cmd == "Def" and len(args) > 0:
  638.           try:
  639.             try:
  640.               word, definition = args.split(":", 1)
  641.               word = word.lower()
  642.             except:
  643.               word = args.split()[0].lower()
  644.               definition = ""
  645.             if len(word.split()) > 1:
  646.               room.message("Nu am reusit sa definesc...Scuze. :(")
  647.               return
  648.             if len(args.split()) > 1 and args.lower().split()[1] == "del" :
  649.               if word in dictionary:
  650.                 definition, name = json.loads(dictionary[word])
  651.                 if name == user.name or user.name in owners or user.name in admin or user.name in vip or user.name in tempvip:
  652.                   del dictionary[word]
  653.                   room.message("Definitie stearsa din database.")
  654.                   return
  655.                 else:
  656.                   room.message("Nu ai permisiunea sa folosesti asta.")
  657.                   return
  658.               else:
  659.                 room.message("<b>%s</b> nu este inca definit. Poti sa il definesti chiar acum scriind urmatoarele : <b> /def %s: (definitie)*</b>" % args, True)
  660.             elif len(definition) > 0:
  661.               if word in dictionary:
  662.                 room.message(" Este deja definit. :)")
  663.               else:
  664.                 dictionary[word] = json.dumps([definition, user.name])
  665.                 room.message(word + " a fost definit astfel:" + definition)
  666.             else:
  667.               if word in dictionary:
  668.                 definition, name = json.loads(dictionary[word])
  669.                 room.message(word + " a fost definit astfel: " + definition)
  670.               else:
  671.                 room.message("<b>%s</b> nu este inca definit. Poti sa il definesti chiar acum scriind urmatoarele: <b> /def %s: definitie*</b> " % (args, args), True)
  672.           except:
  673.               room.message("Oh , nu! Ai gresit. Incearca din nou.")
  674.       #### ReadNotes
  675.       if cmd == "readnote" or cmd == "rn":
  676.           try:
  677.             if user.name in sasaran:
  678.               body, sender = json.loads(sasaran[user.name])
  679.               room.message(user.name+", ai o notită nouă de la "+sender+" ---> "+body)
  680.               del sasaran[user.name]
  681.               notif.remove(to)
  682.           except: return
  683.                 #### CurrentStats
  684.       if cmd == "cs" or cmd =="currentstats":
  685.         a = len(self.roomnames)
  686.         b = len(whitelist)
  687.         c = len(cowner)
  688.         d = len(whitelist)
  689.         e = len(nicks)
  690.         f = len(friend)
  691.         g = len(blacklist)
  692.         room.message("<br><br>Rooms: "+str(a)+"  <br>Whitelist: "+str(b)+" <br>Player: "+str(c)+" <br>Definitions: "+str(d)+" <br>Nick: "+str(e)+" <br>Staffbot: "+str(f)+" <br>Cash: "+str(g)+"",True)
  693.        ### Send Notes
  694.       if cmd == "sn" or cmd == "sendnote" or cmd == "Sn" or cmd == "Sendnote":
  695.           try:
  696.             to, body = args.split(" ", 1)
  697.             sender = user.name
  698.             if to in cowner:
  699.               sasaran[to] = json.dumps([body, sender])
  700.               room.message("Trimis!")
  701.               notif.append(to)
  702.             else: room.message(to+" nu se află in whitelist.")
  703.             #if user.name : room.message( kamu dapat sn dari .... silahkan gunakan cmd 'sn read ) kek gitu aja
  704.           except: room.message("Fail !!")
  705.              #### Ban / Unban
  706.       elif cmd == "ban" or cmd == "Ban" or cmd == "Interzicere" or cmd == "interzicere":
  707.           if user.name in cowner:
  708.               name = args
  709.               if user.name in cowner:
  710.                 room.message("Njet >_>")
  711.                 return
  712.               if name in room.usernames:
  713.                 room.banUser(ch.User(name))
  714.                 room.message("<b>%s</b> is banned" % (name), True)
  715.                 self.pm.message(ch.User(name.lower()), "You have been banned from %s by %s. Please behave lik a Punk!!" % (room.name, user.name))
  716.               else:
  717.                 room.message("i don't see "+name+" here :|")
  718.           else:
  719.               room.message("You mere mortals can never do that !!")
  720.              
  721.       elif cmd == "unban" or cmd == "ub" or cmd == "UnBan" or cmd == "Unban" or cmd == "Scoate Interzicerea" or cmd == "Scoate interzicerea":
  722.           if user.name in cowner:
  723.               name = args
  724.               if user.name in cowner: return
  725.               room.unban(ch.User(name))
  726.               room.message("<b>%s</b> is unbanned" % (name), True)
  727.               self.pm.message(ch.User(name.lower()), "You have been unbanned from %s by %s. Please behave lik a Punk!!" % (room.name, user.name))
  728.           else:
  729.               room.message("You mere mortals can never do that !!")
  730.               #### Restart
  731.       elif cmd =="restart" or cmd == "Restart" or cmd == "Reconnect" or cmd == "reconnect":
  732.          if user.name.lower() in cowner:
  733.            room.reconnect()
  734.          else:
  735.            room.message("Ce ??? *lol*")
  736.      #### Find
  737.       elif cmd == "find" or cmd == "Find":
  738.           name = args.split()[0].lower()
  739.           try:
  740.             if name in room.usernames:
  741.                     if not ch.User(name).roomnames:  room.message("dont see them. <_<")
  742.                     else: room.message("%s is curently in <b>%s</b> >_>" % (args, ", ".join(ch.User(name).roomnames)), True)
  743.           except: return
  744.           target = args[1:]
  745.           if args[0] == "+":
  746.                 if not ch.User(target).roomnames:  room.message("dont see them. <_<")
  747.                 else: room.message("%s is curently in <b>%s</b> >_>" % (args[1:], ", ".join(ch.User(target).roomnames)), True)
  748.           elif args == "true love" or args == "True Love" or args == "True love":
  749.             orang = random.choice(room.usernames)
  750.             room.message(random.choice([user.name+", You just found out that "+orang+" is your true love :o","I'm sorry "+user.name+" You didn't found your true love here :(",user.name+"'s true love is "+orang+", Have fun you godamn lovebirds !! ^^","Njet >_> ,, No love for you !","Shut up >_> ,, I love you since we first met !"]))
  751.  
  752.       #### LoveMeter
  753.       elif cmd == "lovemeter" or cmd == "lm" or cmd == "LoveMeter" or cmd == "Love Meter" or cmd == "Lovem":
  754.           try:
  755.             user2, user3 = args.split(" and ", 1)
  756.             moter = random.randint(6,100)
  757.             try:
  758.               user1 = args.lower()
  759.               if user1 in lomet:
  760.                 meter = json.loads(lomet[user1])
  761.                 meter = str(meter)
  762.                 room.message("I Gaze upon the stars... *Closes my eyes and concentrates*. And again, <b>%s</b> and <b>%s</b>, their love meter is <b>%s</b>%s ,, that is the answer of fate ;)" % (user2, user3, str(meter), "%"), True)
  763.               else:
  764.                 moter = str(moter)
  765.                 lomet[user1] = json.dumps(moter)
  766.                 room.message("I Gaze upon the stars... *Closes my eyes and concentrates*. Gotcha, <b>%s</b> and <b>%s</b>, their love meter is <b>%s</b>%s ,, that is the answer of fate ;)" % (user2, user3, moter, "%"), True)
  767.             except:
  768.               room.message("Fail !!")
  769.           except:
  770.             room.message("Fail !! You must do as the fate desires !")
  771.  
  772.         #### Seen
  773.       elif cmd == "invitegroup" or cmd == "ig":
  774.         if len (args) > 0:
  775.          self.pm.message(ch.RoomManager(args),"%s You have group invite! check this Chatango Group http://%s.chatango.com ." %(room.ownername[0],room.name))
  776.          room.message("Youre invite %s now is in Accest Group. :)" % args)
  777.         else:
  778.           room.message("gak mau ah nginvite dia")
  779.         ### Lock/Unlock
  780.       if cmd == "lock" or cmd == "Lock":
  781.         if user.name in cowner:
  782.           room.message("LOCKED!")
  783.           lock = True
  784.           return
  785.         if args in locks:
  786.           room.message("It's locked already")
  787.           return
  788.         if args in self.roomnames:
  789.           if user.name in cowner:
  790.             locks.append(args)
  791.             room.message("locked <b>%s</b>" % args, True)
  792.           else: room.message("Only rank 3 gets to lock rooms remotely")
  793.         if args == "":
  794.           if room.name in locks:
  795.             room.message("It's locked already")
  796.             return
  797.           locks.append(room.name)
  798.           room.message("locked <b>%s</b>" % room.name, True)
  799.         if args not in self.roomnames:
  800.           if args == "": return
  801.           room.message("I haven't joined such room")
  802.           return
  803.      
  804.       if cmd == "unlock" or cmd == "UnLock" or cmd == "Unlock":
  805.         if user.name in cowner: return
  806.         if args in self.roomnames:
  807.           if args in locks:
  808.             if user.name in cowner:
  809.               locks.remove(args)
  810.               room.message("unlocked <b>%s</b>" % args, True)
  811.             else: room.message("Only rank 3 gets to unlock rooms remotely")
  812.           else:
  813.             room.message("It's not even locked")
  814.             return
  815.         if args == "":
  816.           if room.name in locks:
  817.             locks.remove(room.name)
  818.             room.message("unlocked <b>%s</b>" % room.name, True)
  819.           else:
  820.             room.message("It's not even locked")
  821.             return
  822.         if args not in self.roomnames:
  823.           if args == "": return
  824.           room.message("I'm not in that room")
  825.           return
  826.         ##DANCE!!!!
  827.         #Dance ? Of Course !!! ^_^
  828.       elif cmd == "dance":
  829.         for i, msg in enumerate(dancemoves):
  830.           self.setTimeout(i / 2, room.message, msg)
  831.                #### Pm
  832.       elif cmd == "pm" or cmd == "Pm" or cmd == "PM" or cmd == "Private Message":
  833.         data = args.split(" ", 1)
  834.         if len(data) > 1:
  835.           name , args = data[0], data[1]
  836.           self.pm.message(ch.User(name), "[Private.Message] By - "+user.name+" : "+args+" ")
  837.           room.message("Has been sent to "+name+"")
  838.         #### Invite
  839.       elif cmd == "invite" or cmd == "Invite":
  840.         if len (args) > 0:
  841.             self.pm.message(ch.RoomManager(args),"%s You have a group invite by ! http://%s.chatango.com ." %(owners[0],room.name))
  842.             room.message("Invite on progress %s in Access group. :)" % args)
  843.         else:
  844.             room.message("Sry have problem. :3")
  845.         #### Profile
  846.       elif cmd == "prof" or cmd == "profile" or cmd == "Prof" or cmd == "Profile":
  847.         try:
  848.           args=args.lower()
  849.           stuff=str(urlreq.urlopen("http://"+args+".chatango.com").read().decode("utf-8"))
  850.           crap, age = stuff.split('<span class="profile_text"><strong>Age:</strong></span></td><td><span class="profile_text">', 1)
  851.           age, crap = age.split('<br /></span>', 1)
  852.           crap, gender = stuff.split('<span class="profile_text"><strong>Gender:</strong></span></td><td><span class="profile_text">', 1)
  853.           gender, crap = gender.split(' <br /></span>', 1)
  854.           if gender == 'M':
  855.               gender = 'Male'
  856.           elif gender == 'F':
  857.               gender = 'Female'
  858.           else:
  859.               gender = '?'
  860.           crap, location = stuff.split('<span class="profile_text"><strong>Location:</strong></span></td><td><span class="profile_text">', 1)
  861.           location, crap = location.split(' <br /></span>', 1)
  862.           crap,mini=stuff.split("<span class=\"profile_text\"><!-- google_ad_section_start -->",1)
  863.           mini,crap=mini.split("<!-- google_ad_section_end --></span>",1)
  864.           mini=mini.replace("<img","<!")
  865.           picture = '<a href="http://fp.chatango.com/profileimg/' + args[0] + '/' + args[1] + '/' + args + '/full.jpg" style="z-index:59" target="_blank">http://fp.chatango.com/profileimg/' + args[0] + '/' + args[1] + '/' + args + '/full.jpg</a>'
  866.           prodata = '<br/> <a href="http://chatango.com/fullpix?' + args + '" target="_blank">' + picture + '<br/><br/> Age: '+ age + ' <br/> Gender: ' + gender +  ' <br/> Location: ' +  location + '' '<br/> <a href="http://' + args + '.chatango.com" target="_blank"><u>Chat With User</u></a> ' "<br/><br/> "+ mini
  867.           room.message(prodata,True)
  868.         except:
  869.           room.message(""+args+" doesn't exist o.o ")
  870.         #
  871.         if cmd =="wordtoday" or cmd=="wt":
  872.             if user.name in cowner:
  873.               if user.name in wordtodaytime:
  874.                 w = json.loads(wordtodaytime[user.name])
  875.                 if time.time() < w:
  876.                   w = int(w) - int(time.time())
  877.                   minute = 60
  878.                   hour = minute * 60
  879.                   day = hour * 24
  880.                   days =  int(w / day)
  881.                   hours = int((w % day) / hour)
  882.                   minutes = int((w % hour) / minute)
  883.                   seconds = int(w % minute)
  884.                   string = ""
  885.                   if days > 0:
  886.                     string += str(days) + " " + (days == 1 and "day" or "days" ) + ", "
  887.                   if len(string) > 0 or hours > 0:
  888.                     string += str(hours) + " " + (hours == 1 and "hour" or "hours" ) + ", "
  889.                   if len(string) > 0 or minutes > 0:
  890.                     string += str(minutes) + " " + (minutes == 1 and "minute" or "minutes" ) + ", "
  891.                   string += str(seconds) + " " + (seconds == 1 and "second" or "seconds" )
  892.                   room.message("You can use wordtoday after <font color='#9999FF'>%s</font>  (~^o^)~ "% string,True)
  893.                   return
  894.               if urank(user.name) >= 1:
  895.                 x=(random.choice(["sadness","happines","yaoi","yuri","horny","nice","bad","bastard","young","lazy","poor","rich","ugly","handshome","beautiful","good","gay","keep calm","arrogant","naughty","special","sweet","tits","areola","pupy","ass","sunny","dizzy","nude","old","lifeless","dying",'death',"impotent","cancer"]))
  896.                 room.message("Dear "+sntonick(user.name)+" Your word today is : <b><font color='#FF9966'>"+str(x)+"</font></b>",True)
  897.                 wordtodaytime[user.name] = json.dumps(time.time()+1200)
  898.  
  899.         ##Check if Mod
  900.         #not really important
  901.       elif cmd == "ismod":
  902.         user = ch.User(args)
  903.         if room.getLevel(user) > 0:
  904.           room.message("yesh")
  905.         else:
  906.           room.message("nope")
  907.    except Exception as e:
  908.       try:
  909.         et, ev, tb = sys.exc_info()
  910.         lineno = tb.tb_lineno
  911.         fn = tb.tb_frame.f_code.co_filename
  912.         room.message("[Expectation Failed] %s Line %i - %s"% (fn, lineno, str(e)))
  913.         return
  914.       except:
  915.         room.message("Undescribeable error detected !!")
  916.         return
  917.  
  918.   ##Other Crap here, Dont worry about it
  919.  
  920.   def onFloodWarning(self, room):
  921.     room.reconnect()
  922.  
  923.   def onJoin(self, room, user):
  924.    print(user.name + " joined the chat!")
  925.    
  926.   def onLeave(self, room, user):
  927.    print(user.name + " left the chat!")
  928.    
  929.   def onUserCountChange(self, room):
  930.     print("users: " + str(room.usercount))
  931.  
  932.   def onMessageDelete(self, room, user, msg):
  933.     print("MESSAGE DELETED: " + user.name + ": " + msg.body)
  934.  
  935.  
  936. if __name__ == "__main__": TestBot.easy_start(rooms,"ShunStreak","*1*2*3*4*5")
  937.  
  938.     #The End!!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement