Advertisement
Guest User

Example.py

a guest
Nov 8th, 2016
303
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 21.56 KB | None | 0 0
  1. #######################################################################################################################################Python V0.3.5
  2. Jika ada yang tidak dimengerti temui saya di
  3.     hanteams.chatango.com
  4.           or
  5.              roombebas.chatango.com
  6. Script simple dasar bot untuk newbie
  7.  
  8.  
  9. #################################################################################################################
  10. import ch
  11. import random
  12. import sys
  13. import re
  14. import json
  15. import time
  16. import datetime
  17. import os
  18. import urllib
  19. from xml.etree import cElementTree as ET
  20. if sys.version_info[0] > 2:
  21.   import urllib.request as urlreq
  22. else:
  23.   import urllib2 as urlreq
  24.  
  25. global bahasa, key
  26. key = "keysimi" #key api simsimnya
  27. bahasa = "en"
  28.  
  29. def set(x):
  30.     global bahasa
  31.     bahasa = x
  32.    
  33. def SimSimi(kalimat):
  34.     g = "sorry im tired ;("
  35.     kata = kalimat.replace(" ","+")
  36.     try:
  37.         data = urllib.request.urlopen("http://sandbox.api.simsimi.com/request.p?key=%s&lc=%s&ft=1.0&text=%s" % (key, bahasa, kata)).read().decode('utf-8')
  38.         jsondata = json.loads(data)
  39.         respon = jsondata["response"]
  40.         if "I HAVE NO RESPONSE" in respon:
  41.             respon = g
  42.     except Exception as e:
  43.         respon = g
  44.     return respon
  45.  
  46. botname = 'XXX' ##isi idnya
  47. password = 'XXX' ##isi paswordnya
  48.  
  49. startTime = time.time()
  50.  
  51. ##nick names
  52. def sntonick(username):
  53.     user = username.lower()
  54.     if user in nicks:
  55.         nick = json.loads(nicks[user])
  56.         return nick
  57.     else:
  58.         return user
  59.  
  60. ## DEFINITIONS
  61.  
  62. ##nicks
  63. nicks=dict()#empty list
  64. f=open ("nicks.txt","r")#r=read w=right
  65. for line in f.readlines():#loop through eachlinimporte and read each line
  66.     try:#try code
  67.         if len(line.strip())>0:#strip the whitespace checkgreater than 0
  68.             user , nick = json.loads(line.strip())
  69.             nicks[user] = json.dumps(nick)
  70.     except:
  71.         print("[Error]Can't load nick %s" % line)
  72. f.close()
  73. ##Rooms
  74. rooms = []
  75. f = open("rooms.txt", "r") # read-only
  76. for name in f.readlines():
  77.   if len(name.strip())>0: rooms.append(name.strip())
  78. f.close()
  79. ##owners
  80. owners = []
  81. try:
  82.     file = open("owners.txt", "r")
  83.     for name in file.readlines():
  84.         if len(name.strip()) > 0:
  85.             owners.append(name.strip())
  86.     print("[INFO]Owners loaded...")
  87.     file.close()
  88. except:
  89.     print("[ERROR]no file named owners")
  90.     print("2 second to read the error")
  91.     time.sleep(2)
  92.     exit()
  93. time.sleep(1)
  94.  
  95. ###admin
  96. admin = []
  97. try:
  98.     file = open("admin.txt", "r")
  99.     for name in file.readlines():
  100.         if len(name.strip()) > 0:
  101.             admin.append(name.strip())
  102.     print("[INFO]Admin loaded...")
  103.     file.close()
  104. except:
  105.     print("[ERROR]no file named admin")
  106.     print("2 second to read the error")
  107.     time.sleep(2)
  108.     exit()
  109. time.sleep(1)
  110. ##archknight
  111. archknight = []
  112. try:
  113.     file = open("archknight.txt", "r")
  114.     for name in file.readlines():
  115.         if len(name.strip()) > 0:
  116.             archknight.append(name.strip())
  117.     print("[INFO]archknight loaded...")
  118.     file.close()
  119. except:
  120.     print("[ERROR]no file named archknight")
  121.     print("2 second to read the error")
  122.     time.sleep(2)
  123.     exit()
  124. time.sleep(1)
  125. ##whitelist
  126. whitelist = []
  127. try:
  128.     file = open("whitelist.txt", "r")
  129.     for name in file.readlines():
  130.         if len(name.strip()) > 0:
  131.             whitelist.append(name.strip())
  132.     print("[INFO]whitelist loaded...")
  133.     file.close()
  134. except:
  135.     print("[ERROR]no file named whitelist")
  136.     print("2 second to read the error")
  137.     time.sleep(2)
  138.     exit()
  139. time.sleep(1)
  140.  
  141. #END#
  142. #Dlist
  143. dlist = []
  144. f = open("dlist.txt", "r") # read-onlyimport
  145. for name in f.readlines():
  146.   if len(name.strip())>0: dlist.append(name.strip())
  147. f.close()
  148. #END#
  149. #SN TRY
  150. sn = dict()
  151. try:
  152.   f = open('note.txt','r')
  153.   sn = eval(f.read())
  154.   f.close()
  155. except:pass
  156.  
  157. ## Send Notes
  158. sasaran = dict()
  159. f = open ("notes.txt", "r") #read-only
  160. for line in f.readlines():
  161.   try:
  162.     if len(line.strip())>0:
  163.       to, body, sender = json.loads(line.strip())
  164.       sasaran[to] = json.dumps([body, sender])
  165.   except:
  166.     print("[Error] Notes load fails : %s" % line)
  167. f.close()
  168. # SN Notifs
  169. notif = []
  170. f = open("notif.txt", "r")
  171. for name in f.readlines():
  172.   if len(name.strip())>0: notif.append(name.strip())
  173. f.close
  174.  
  175. blacklist = []
  176. f = open("blacklist.txt", "r")
  177. for name in f.readlines():
  178.   if len(name.strip())>0: blacklist.append(name.strip())
  179. f.close()
  180.  
  181. ###Module###
  182. def tube(args):
  183.   """
  184.  #In case you don't know how to use this function
  185.  #type this in the python console:
  186.  >>> tube("pokemon dash")
  187.  #and this function would return this thing:
  188.  {'title': 'TAS (DS) Pokémon Dash - Regular Grand Prix', 'descriptions': '1st round Grand Prix but few mistake a first time. Next Hard Grand Prix will know way and few change different Pokémon are more faster and same course Cup.', 'uploader': 'EddieERL', 'link': 'http://www.youtube.com/watch?v=QdvnBmBQiGQ', 'videoid': 'QdvnBmBQiGQ', 'viewcount': '2014-11-04T15:43:15.000Z'}
  189.  """
  190.   search = args.split()
  191.   url = urlreq.urlopen("https://www.googleapis.com/youtube/v3/search?q=%s&part=snippet&key=AIzaSyBSnh-sIjd97_FmQVzlyGbcaYXuSt_oh84" % "+".join(search))
  192.   udict = url.read().decode('utf-8')
  193.   data = json.loads(udict)
  194.   rest = []
  195.   for f in data["items"]:
  196.     rest.append(f)
  197.  
  198.   d = random.choice(rest)
  199.   link = "http://www.youtube.com/watch?v=" + d["id"]["videoId"]
  200.   videoid = d["id"]["videoId"]
  201.   title = d["snippet"]["title"]
  202.   uploader = d["snippet"]["channelTitle"]
  203.   descript = d["snippet"]['description']
  204.   count    = d["snippet"]["publishedAt"]
  205.   return "Result: %s <br/><br/><br/><br/><br/><br/><br/><br/><font color='#ffcc00'><b>%s</b></font><br/><font color='#ff0000'><b>Uploader</b></font>:<b> %s</b><br/><font color='#ff0000'><b>Uploaded on</b></font>: %s<br/><font color='#ff0000'><b>Descriptions</b></font>:<i> %s ...</i><br/> " % (link, title, uploader, count, descript[:200])
  206.  
  207. ##Set Color untuk Bot
  208.  
  209. class TestBot(ch.RoomManager):
  210.  
  211.   def onInit(self):
  212.     self.setNameColor("FFFFFF")
  213.     self.setFontColor("FF0000")
  214.     self.setFontFace("1")
  215.     self.setFontSize(11)
  216.     self.enableBg()
  217.     self.enableRecording()
  218.  
  219. ##Connecting Crap
  220.  
  221.   def onConnect(self, room):
  222.     print("Connected")
  223.  
  224.   def onReconnect(self, room):
  225.     print("Reconnected")
  226.  
  227.   def onDisconnect(self, room):
  228.     print("Disconnected")
  229.  
  230.  
  231.  #################################################################
  232.   ### Get user access from the file, and retun lvl of access number
  233.   #################################################################
  234.   def getAccess(self, user):
  235.     if user.name in owners: return 4 # Owners
  236.     elif user.name in admin: return 3 # Admins
  237.     elif user.name in archknight: return 2 # Arch Knight
  238.     elif user.name in whitelist: return 1
  239.     elif user.name in dlist: return 0
  240.     else: return 0
  241.  
  242. def onMessage(self, room, user, message):
  243.    try:
  244.     msgdata = message.body.split(" ",1)
  245.     if len(msgdata) > 1:
  246.       cmd, args = msgdata[0], msgdata[1]
  247.     else:
  248.       cmd, args = msgdata[0],""
  249.       cmd=cmd.lower()
  250.     global lockdown
  251.     global newnum
  252.     print(user.name+" - "+message.body)
  253.     if user.name in notif:
  254.         room.message(user.name+", you got ("+str(len(sn[user.name]))+") messages unread. Do irn to read them")
  255.         notif.remove(user.name)
  256.     if user == self.user: return
  257.     if "rere" == message.body:
  258.      if self.getAccess(user) >= 1 or room.getLevel(user) > 0 and not user.name in blacklist:
  259.       room.message (random.choice(["wuts? "]),True)
  260.     if "kacang" == message.body:
  261.      if self.getAccess(user) >= 4:
  262.       room.message (random.choice(["Kacang adalah makanan yang enak, tapi kalo dikacangin beda lagi ceritanya "]),True)    
  263.     if "test" == message.body:
  264.      if self.getAccess(user) >= 1 or room.getLevel(user) > 0 and not user.name in blacklist:
  265.       room.message (random.choice(["Ja, test diterima "+"@"sntonick(user.name)+ " :D "]),True)
  266.     if "Natsuru" == message.body:
  267.      if self.getAccess(user) >= 1 or room.getLevel(user) > 0 and not user.name in blacklist:
  268.       room.message (random.choice(["Ja?, ada yang bisa dibantu "+sntonick(user.name)+ " ? "]),True)
  269.     if "maid" == message.body:
  270.      if self.getAccess(user) >= 1 or room.getLevel(user) > 0 and not user.name in blacklist:
  271.       room.message (random.choice(["Ja?, ada yang bisa dibantu "+sntonick(user.name)+ " ? "]),True)
  272.     if "oyasumi" == message.body:
  273.      if self.getAccess(user) >= 1 or room.getLevel(user) > 0 and not user.name in blacklist:
  274.       room.message("Oyasumi "+sntonick(user.name)+ " ^o^ ")
  275.     if "ohayou" == message.body:
  276.      if self.getAccess(user) >= 1 or room.getLevel(user) > 0 and not user.name in blacklist:
  277.       room.message("Ohayou "+sntonick(user.name)+ " ^o^ ")
  278.     if "konnichiwa" == message.body:
  279.      if self.getAccess(user) >= 1 or room.getLevel(user) > 0 and not user.name in blacklist:
  280.       room.message("Konnichiwa "+sntonick(user.name)+ " ^o^ "),True
  281.     if "konbanwa" == message.body:
  282.      if self.getAccess(user) >= 1 or room.getLevel(user) > 0 and not user.name in blacklist:
  283.       room.message("Konbanwa "+sntonick(user.name)+ " ^o^ ")
  284.     if "afk" in message.body:
  285.      if self.getAccess(user) >= 1 or room.getLevel(user) > 0 and not user.name in blacklist:
  286.       room.message (random.choice(["See ya, jangan lama lama "+sntonick(user.name)+" :) ",]),True)
  287.     if "brb" in message.body:
  288.      if self.getAccess(user) >= 1 or room.getLevel(user) > 0 and not user.name in blacklist:
  289.       room.message (random.choice(["Bye "+sntonick(user.name)+" :) ",]),True)
  290.     if "off" in message.body:
  291.      if self.getAccess(user) >= 1 or room.getLevel(user) > 0 and not user.name in blacklist:
  292.       room.message (random.choice(["Bye "+sntonick(user.name)+" :D ",]),True)
  293.     if "fakyu" in message.body:
  294.       if self.getAccess(user) >= 1 or room.getLevel(user) > 0 and not user.name in blacklist:
  295.         room.message (random.choice(["Fakyu "+sntonick(user.name)+" 凸(⊙▂⊙✖ ) !! ",]),True)
  296.     if message.body == "": return  
  297.     if message.body[0] in ["#"]:  
  298.       data = message.body[1:].split(" ", 1))
  299.       if len(data) > 1:
  300.         cmd, args = data[0], data[1]
  301.       else:
  302.         cmd, args = data[0], ""
  303.  
  304. ##check access and ignore
  305.       if self.getAccess(user) == 0: return
  306.       def pars(args):
  307.         args=args.lower()
  308.         for name in room.usernames:
  309.           if args in name:return name    
  310.       def roompars(args):
  311.         args = args.lower()
  312.         for name in self.roomnames:
  313.           if args in name:return name
  314.       def roomUsers():
  315.           usrs = []
  316.           gay = []
  317.           prop = 0
  318.           prop = prop + len(room._userlist) - 1
  319.           for i in room._userlist:
  320.             i = str(i)
  321.             usrs.append(i)
  322.           while prop >= 0:
  323.             j = usrs[prop].replace("<User: ", "")
  324.             i = j.replace(">", "")
  325.             gay.append(i)
  326.             prop = prop - 1
  327.           return gay
  328.      
  329.       def getParticipant(arg):
  330.           rname = self.getRoom(arg)
  331.           usrs = []
  332.           gay = []
  333.           finale = []
  334.           prop = 0
  335.           prop = prop + len(rname._userlist) - 1
  336.           for i in rname._userlist:
  337.             i = str(i)
  338.             usrs.append(i)
  339.           while prop >= 0:
  340.             j = usrs[prop].replace("<User: ", "")
  341.             i = j.replace(">", "")
  342.             gay.append(i)
  343.             prop = prop - 1
  344.           for j in gay:
  345.             if j not in finale:
  346.               finale.append(j)
  347.           return finale
  348.  
  349.  
  350.   ##cmds
  351.       if cmd == "cmds":
  352.         if user.name in owners and not user.name in admin and not user.name in archknight and not user.name in whitelist:
  353.           room.message("<br/>"+user.name+" Rank 4 [Owner] "+"<br/>"+" Perintah[ # ] :<br/>wl , gs(Google search) , yt(Youtube) , df(define) , udf(undefine) , fax , bc , sn(sendnote) , rn(readnote) , join , leave , mydict, nick , staff ,  setnick , mynick , seenick , profile , rank , myrank , ranker , clear , del , sf , sfc, snc , sfz ,",True)
  354.         if user.name in admin and not user.name in owners and not user.name in archknight and not user.name in whitelist:
  355.           room.message("<br/>"+user.name+" Rank 3 [Admin] "+"<br/>"+" Perintah[ # ] :<br/>wl , gs(Google search) , yt(Youtube) , df(define) , udf(undefine) , fax , bc , sn(sendnote) , rn(readnote) , join , leave , mydict, nick , staff , setnick , mynick , seenick , profile , rank , myrank , ranker , clear , del  , sf , sfc, snc , sfz ,",True)
  356.         if user.name in archknight and not user.name in owners and not user.name in admin and not user.name in whitelist:
  357.           room.message("<br/>"+user.name+" Rank 2 [Archknight] "+"<br/>"+" Perintah[ # ] :<br/>wl , gs(Google search) , yt(Youtube) , df(define) , udf(undefine) , fax , sn(sendnote) , rn(readnote), mydict, nick , staff , setnick , mynick , seenick , profile , rank , myrank , ranker ,",True)
  358.         if user.name in whitelist and not user.name in owners and not user.name in admin and not user.name in archknight:
  359.           room.message("<br/>"+user.name+" Rank 1 [Whitelist] "+"<br/>"+" Perintah[ # ] :<br/>wl , gs(Google search) , yt(Youtube) , df(define) , udf(undefine) , sn(sendnote) , rn(readnote), mydict, nick , staff , setnick , mynick , seenick , profile , rank , myrank , ranker ,",True)
  360.        
  361.  ##Setrank
  362.       if cmd == "setrank":
  363.         if self.getAccess(user) < 4:return
  364.         try:
  365.           if len(args) >= 3:
  366.             name = args
  367.             if pars(name) == None:
  368.                 name = name
  369.             elif pars(name) != None:
  370.                 name = pars(name)
  371.             name, rank = args.lower().split(" ", 1)
  372.             if rank == "4":
  373.               owners.append(name)
  374.               f = open("owners.txt", "w")
  375.               f.write("\n".join(owners))
  376.               f.close()
  377.               room.message("Sukses")
  378.               if name in admin:
  379.                 admin.remove(name)
  380.                 f = open("admin.txt", "w")
  381.                 f.write("\n".join(admin))
  382.                 f.close()
  383.               if name in archknight:
  384.                 archknight.remove(name)
  385.                 f = open("archknight.txt", "w")
  386.                 f.write("\n".join(archknight))
  387.                 f.close()
  388.               if name in whitelist:
  389.                 whitelist.remove(name)
  390.                 f = open("whitelist.txt", "w")
  391.                 f.write("\n".join(whitelist))
  392.                 f.close()
  393.             if rank == "3":
  394.               admin.append(name)
  395.               f = open("admin.txt", "w")
  396.               f.write("\n".join(admin))
  397.               f.close()
  398.               room.message("Sukses")
  399.               if name in owners:
  400.                 owners.remove(name)
  401.                 f = open("owners.txt", "w")
  402.                 f.write("\n".join(owners))
  403.                 f.close()
  404.               if name in archknight:
  405.                 archknight.remove(name)
  406.                 f = open("archknight.txt", "w")
  407.                 f.write("\n".join(archknight))
  408.                 f.close()
  409.               if name in whitelist:
  410.                 whitelist.remove(name)
  411.                 f = open("whitelist.txt", "w")
  412.                 f.write("\n".join(whitelist))
  413.                 f.close()
  414.             if rank == "2":
  415.                archknight.append(name)
  416.                f = open("archknight.txt", "w")
  417.                f.write("\n".join(archknight))
  418.                f.close()
  419.                room.message("Sukses")
  420.                if name in owners:
  421.                  owners.remove(name)
  422.                  f = open("owners.txt", "w")
  423.                  f.write("\n".join(owners))
  424.                  f.close()
  425.                if name in admin:
  426.                  admin.remove(name)
  427.                  f = open("admin.txt", "w")
  428.                  f.write("\n".join(admin))
  429.                  f.close()
  430.                if name in whitelist:
  431.                  whitelist.remove(name)
  432.                  f = open("whitelist.txt", "w")
  433.                  f.write("\n".join(whitelist))
  434.                  f.close()
  435.             if rank == "1":
  436.                 whitelist.append(name)
  437.                 f = open("whitelist.txt", "w")
  438.                 f.write("\n".join(whitelist))
  439.                 f.close()
  440.                 room.message("Sukses")
  441.                 if name in owners:
  442.                   owners.remove(name)
  443.                   f = open("owners.txt", "w")
  444.                   f.write("\n".join(owners))
  445.                   f.close()
  446.                 if name in admin:
  447.                   admin.remove(name)
  448.                   f = open("admin.txt", "w")
  449.                   f.write("\n".join(admin))
  450.                   f.close()
  451.                 if name in archknight:
  452.                   archknight.remove(name)
  453.                   f = open("archknight.txt", "w")
  454.                   f.write("\n".join(archknight))
  455.                   f.close()
  456.                  
  457.         except:
  458.               room.message("something wrong")
  459.  
  460.      # clear
  461.       elif cmd == "clear":
  462.           if room.getLevel(self.user) > 0:
  463.             if self.getAccess(user) >= 4 or room.getLevel(user) == 2:
  464.               room.clearall(),
  465.               room.clearUser(ch.User(random.choice(room.usernames))),
  466.               room.clearUser(ch.User(random.choice(room.usernames))),
  467.               room.clearUser(ch.User(random.choice(room.usernames))),
  468.               room.clearUser(ch.User(random.choice(room.usernames))),
  469.               room.clearUser(ch.User(random.choice(room.usernames))),
  470.               room.clearUser(ch.User(random.choice(room.usernames))),
  471.               room.clearUser(ch.User(random.choice(room.usernames))),
  472.               room.clearUser(ch.User(random.choice(room.usernames))),
  473.               room.clearUser(ch.User(random.choice(room.usernames))),
  474.               room.clearUser(ch.User(random.choice(room.usernames))),
  475.               room.clearUser(ch.User(random.choice(room.usernames))),
  476.               room.clearUser(ch.User(random.choice(room.usernames))),
  477.               room.clearUser(ch.User(random.choice(room.usernames))),
  478.               room.clearUser(ch.User(random.choice(room.usernames))),
  479.               room.clearUser(ch.User(random.choice(room.usernames))),
  480.               room.clearUser(ch.User(random.choice(room.usernames))),
  481.               room.clearUser(ch.User(random.choice(room.usernames))),
  482.               room.clearUser(ch.User(random.choice(room.usernames))),
  483.               room.clearUser(ch.User(random.choice(room.usernames))),
  484.               room.clearUser(ch.User(random.choice(room.usernames))),
  485.               room.clearUser(ch.User(random.choice(room.usernames))),
  486.               room.clearUser(ch.User(random.choice(room.usernames))),
  487.               room.clearUser(ch.User(random.choice(room.usernames))),
  488.               room.clearUser(ch.User(random.choice(room.usernames))),
  489.               room.clearUser(ch.User(random.choice(room.usernames))),
  490.               room.clearUser(ch.User(random.choice(room.usernames))),
  491.               room.clearUser(ch.User(random.choice(room.usernames))),
  492.               room.clearUser(ch.User(random.choice(room.usernames))),
  493.               room.clearUser(ch.User(random.choice(room.usernames))),
  494.               room.clearUser(ch.User(random.choice(room.usernames))),
  495.               room.clearUser(ch.User(random.choice(room.usernames))),
  496.               room.clearUser(ch.User(random.choice(room.usernames))),
  497.               room.clearUser(ch.User(random.choice(room.usernames))),
  498.               room.clearUser(ch.User(random.choice(room.usernames))),
  499.               room.clearUser(ch.User(random.choice(room.usernames))),
  500.             else: room.message("Only rank 4+ or the room owner can do this")
  501.           else:
  502.             room.message("aku bukan mods disini :|")
  503.       ##delete chat  
  504.       elif (cmd == "delete" or cmd == "dl" or cmd == "del"):
  505.           if room.getLevel(self.user) > 0:
  506.             if self.getAccess(user) >= 1 or room.getLevel(user) > 0:
  507.               name = args.split()[0].lower()
  508.               room.clearUser(ch.User(name))
  509.             else:room.message("kamu tidak bisa melakukannya!!")
  510.           else:
  511.             room.message("aku bukan mods disini :|")
  512.  
  513.   ##Eval
  514.       if cmd == "ev" or cmd == "eval" or cmd == "e" and user.name == "rifky102":
  515.         if self.getAccess(user) == 4:
  516.           ret = eval(args)
  517.           if ret == None:
  518.             room.message("Done.")
  519.             return
  520.           room.message(str(ret))
  521.  
  522.  ## Youtube
  523.       elif cmd == "youtube" or cmd == "yt":
  524.         if args:
  525.           room.message(tube(args),True)
  526.     elif cmd == "uptime" or cmd == "ut" and self.getAccess(user) >= 2:
  527.           room.message("Server uptime: %s" % uptime())
  528.  
  529.    ##### Whitelist
  530.       elif cmd == "wl" or cmd =="whitelist" and self.getAccess(user) >= 1:
  531.         name = args
  532.         if name not in whitelist and name not in owners and name not in admin and name not in archknight and name not in blacklist:
  533.           room.message("Sekarang @"+args+" dapat menggunakan Natsuru ketik *cmds untuk melihat commands")
  534.           whitelist.append(name)
  535.           f = open("whitelist.txt","w")
  536.           f.write("\n".join(whitelist))
  537.           f.close
  538.         else:
  539.           room.message("User tersebut sudah terdaftar")
  540.  
  541.  
  542.   ##Other Crap here, Dont worry about it
  543.  
  544.   def onFloodWarning(self, room):
  545.     room.reconnect()
  546.  
  547.   def onJoin(self, room, user):
  548.    print(user.name + " joined the chat!")
  549.  
  550.   def onLeave(self, room, user):
  551.    print(user.name + " left the chat!")
  552.  
  553.   def onUserCountChange(self, room):
  554.     print("users: " + str(room.usercount))
  555.  
  556.  
  557.        
  558.  
  559. if __name__ == "__main__":
  560.   TestBot.easy_start(rooms, botname, password)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement