Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ############################################################################
- ############################################################################
- #### Getting Started Bot ############
- #### File = ExampleBot.py ############
- #### Originaly by = TryHardHusky ############
- #### Edited by = 0rX ############
- #### terus di edit lagi sama gugun :v ############
- #### you can PM for info about making a chatango ############
- #### bot in http://khususme.chatango.com, and you can ############
- #### and you can also chat in : ############
- #### http://pemakaman.chatango.com ############
- #### Last update: ############
- #### 3.21 AM July, 5 2015 by 0rx ############
- ############################################################################
- ############################################################################
- ##Importing Random Crap xD
- #here you can see that you're importing ch library
- import ch
- import random
- import sys
- import json
- import time
- import re
- import urllib
- if sys.version_info[0] > 2:
- import urllib.request as urlreq
- else:
- import urllib2 as urlreq
- from time import localtime, strftime
- wordtodaytime = dict()
- ##Dance moves!
- #kinda useless
- cowner = ["rintoisback","thelorgorenk"]##Jangan di ubah karena lu akan melanggar UU No 2 Tentang Hak Cipta.##
- staffa = ["fapfapgangnam","sekkki"]
- dancemoves = [
- "(>^.^)>",
- "(v^.^)v",
- ]
- song = [
- "Dirimu, dirimulah! Orang yang beriku senyum ini",
- "Jika kita bisa membuat air mata yang bersinar, itu 'kan 'jadi bintang jatuh",
- "Tanganmu t'lah terluka, tapi jangan pernah lepaskannya lagi",
- "Dari langit yang terpenuhi keinginan, hari esok 'kan segera datang",
- "Cahya yang membimbingku adalah dirimu",
- "Dan aku pun ditarik karenanya",
- "Sebelum kusadarim kita mulai sebrangi jalan itu",
- "Sekaranglah saatnya! Jikalau kita hanya bisa bersinar di sini",
- ]
- bete = [
- "kunci",
- ]
- pagi = [
- "ohayou oni-chan",
- ]
- ## Nicknames
- nicks=dict()#empty list
- f=open ("nicks.txt","r")#r=read w=right
- for line in f.readlines():#loop through eachline and read each line
- try:#try code
- if len(line.strip())>0:#strip the whitespace checkgreater than 0
- user , nick = json.loads(line.strip())
- nicks[user] = json.dumps(nick)
- except:
- print("[Error]Can't load nick %s" % line)
- f.close()
- ##Whitelist##
- whitelist = []
- f = open("whitelist.txt", "r") # read-only
- for name in f.readlines():
- if len(name.strip())>0: whitelist.append(name.strip())
- f.close()
- ##Rooms##
- rooms = []
- f = open("rooms.txt", "r") #read-only
- print("[INF]Loading Rooms...")
- time.sleep(1)
- for name in f.readlines():
- if len(name.strip())>0: rooms.append(name.strip())
- f.close()
- # implied command?
- # call bot name with command after
- # call bot name with command after
- #Setting Pretty Colors
- #Font setting for your bot
- def googleSearch(search):
- try:
- encoded = urllib.parse.quote(search)
- rawData = urllib.request.urlopen("http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q="+encoded).read().decode("utf-8")
- jsonData = json.loads(rawData)
- searchResults = jsonData["responseData"]["results"]
- full = []
- val = 1
- for data in searchResults:
- if "youtube" in data["url"]:
- data["url"] = "http://www.youtube.com/watch?v="+data["url"][35:]
- full.append("[<b>%s</b>]. %s -> %s" % (val,data["title"],data['url']))
- val = val + 1
- return '<br/>'.join(full).replace('https://','http://')
- except Exception as e:
- return str(e)
- def newJoi():
- headers = {}
- headers['User-Agent'] = "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.27 Safari/537.17"
- req = urllib.request.Request("http://jurnalotaku.com/", headers = headers)
- resp = urllib.request.urlopen(req).read().decode("utf-8")
- Data = re.findall('<a href="(.*?)" class="title"><h3><span>(.*?)</span>', resp)
- lolly = list()
- anjeng = -5
- for lk, tit in Data:
- lolly.append(('%s. <b>%s</b>: %s' % (anjeng, tit, lk)))
- anjeng = anjeng+1
- return "<br/>".join(lolly[6:14])
- def googleImageSearch(encoded):
- encoded = encoded.split()
- url = urllib.request.urlopen("http://ajax.googleapis.com/ajax/services/search/images?v=1.0&q=%s" % "+".join(encoded))
- udict = url.read().decode('utf-8')
- jsonData = json.loads(udict)
- searchResults = jsonData["responseData"]["results"]
- for data in searchResults:
- return "%s" % (data['url'])
- def tube(args):
- try:
- search = args.split()
- url = urlreq.urlopen("https://www.googleapis.com/youtube/v3/search?q=%s&part=snippet&key=AIzaSyBSnh-sIjd97_FmQVzlyGbcaYXuSt_oh84" % "+".join(search))
- udict = url.read().decode('utf-8')
- data = json.loads(udict)
- rest = []
- for f in data["items"]:
- rest.append(f)
- d = random.choice(rest)
- link = "http://www.youtube.com/watch?v=" + d["id"]["videoId"]
- videoid = d["id"]["videoId"]
- title = d["snippet"]["title"]
- uploader = d["snippet"]["channelTitle"]
- descript = d["snippet"]['description']
- count = d["snippet"]["publishedAt"]
- 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)
- except Exception as e:
- return str(e)
- def sntonick(username):
- user = username.lower()
- if user in nicks:
- nick = json.loads(nicks[user])
- return nick
- else:
- return user
- ##### Pars Def
- def pars(args):
- args=args.lower()
- userlist = roomUsers()
- for name in userlist:
- if args in name:return name
- class TestBot(ch.RoomManager):
- def onInit(self):
- self.setNameColor("000")
- self.setFontColor("FF0000")
- self.setFontFace("Arial")
- self.setFontSize(9)
- self.enableBg()
- self.enableRecording()
- ##### Pars Def
- def pars(args):
- args=args.lower()
- userlist = roomUsers()
- for name in userlist:
- if args in name:return name
- def getAccess(self, user):
- if user.name in cowner: return 4 # owner-JP
- elif user.name in staffa: return 3 # masters
- ##Connecting Crap
- #This is what will be printed on your python console when event called
- def onConnect(self, room):
- print("Connected")
- def onReconnect(self, room):
- print("Reconnected")
- def onDisconnect(self, room):
- print("Disconnected")
- ##Ignore this, you dont need to worry about this
- #Well, you can actually take a little time to look at it and learn something
- def onMessage(self, room, user, message):
- #### Comenzi fara prefix
- if message.body.startswith("test"):
- room.message("Testare efectuată cu succes!")
- if message.body.startswith("shun"):
- if user.name in cowner:
- room.message("Yea, my Master !?")
- else:
- room.message("What's up,"+ sntonick(user.name)+"?", True)
- if message.body.startswith("afk"):
- if user.name == "rintoisback":
- room.message("See You Soon Master "+sntonick(user.name), True)
- else:
- room.message("See You Soon,"+ sntonick(user.name)+".", True)
- if message.body.startswith("brb"):
- if user.name == "rintoisback":
- room.message("Bye, Rin-Kun")
- else:
- room.message("Bye,"+ sntonick(user.name)+".", True)
- if message.body.startswith("back"):
- if user.name == "rintoisback":
- room.message("Welcome back,Rin-Kun")
- else:
- room.message("Welcome back,"+ sntonick(user.name)+".", True)
- try:
- startlag = time.clock()
- if room.getLevel(self.user) > 0:
- print(user.name, message.body)
- else:
- print(user.name, message.body)
- if self.user == user: return
- 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
- data = message.body[1:].split(" ", 1)
- if len(data) > 1:
- cmd, args = data[0], data[1]
- else:
- cmd, args = data[0], ""
- if user.name not in whitelist: return
- if cmd == "ev" or cmd == "eval" or cmd == "e":
- ret = eval(args)
- if ret == None:
- room.message("Terminat.")
- return
- room.message(str(ret))
- ##COMMANDS!
- #Setting up commands for yer bot
- #commands section
- #### Invite
- elif cmd == "wl":
- if args in whitelist:
- room.message(args+" is already registered",True);return
- elif args not in room.usernames:
- if args == "": return
- room.message("I don't see "+args+" here >,> ",True);return
- else:
- whitelist.append(args)
- room.message(args+" can use me now. :o",True)
- f = open("whitelist.txt", "w")
- f.write("\n".join(whitelist))
- f.close()
- elif (cmd == "mynick") :
- user=user.name.lower()
- if user in nicks :
- nick = json.loads(nicks[user])
- room.message(user+" is nicked : "+nick,True)
- else:
- room.message("You have no nickname yet in my nick[] database.", True)
- elif cmd == "nick":
- ## if user.name in reg or user.name in friends or user.name in trusted or user.name in owners:
- if args:
- nick = args # disini letak perbedaannya...
- user = user.name # mungkin juga disini
- nicks[user] = json.dumps(nick)
- room.message(user +' I will now call you '+str(args)+'', True)
- try: # ini skrip untuk auto-save ...
- print("[SAVING] NICKS...")
- f = open("nicks.txt", "w")
- for user in nicks:
- nick = json.loads(nicks[user])
- f.write(json.dumps([user,nick]) + "\n")
- except:
- room.message("Failed To Make New Nick..");return
- else:
- room.message('Type ;nick yournick to adding new nickname', True)
- if cmd =="nas":
- sss = args
- resp = urlreq.urlopen("http://nontonanime.web.id/?s="+sss+"&post_type=anime").read().decode("utf-8")
- data = re.findall('<h2><a href="(.*?)">(.*?)</a>', resp)
- newset = list()
- num = 1
- for link, title in data:
- newset.append(('[%s] %s: %s') % (num, title,link))
- num = num+1
- room.message("Search Result "+args+" on NontonAnime.web.id: <br/>"+"<br/>".join(newset),True)
- elif cmd =="staff" or cmd =="ranker" and self.getAccess(user) >= 1:
- x = ", ".join(cowner)
- z = len(cowner)
- y = ", ".join(staffa)
- o = len(staffa)
- 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)
- #### Google Search
- elif cmd == "gws" or cmd == "Gws" or cmd == "Google Search":
- if len(args) > 0:
- room.rawMessage("<a href='http://lmgtfy.com/?q=" + args + "' target='_blank'><u>" + args + '</u></a>' )
- #### Google Image Search
- elif cmd == "gis" or cmd == "Gis" or cmd == "Google Search Image" or cmd == "GS Image":
- try:
- search = args.split()
- import urllib.request
- with urllib.request.urlopen("http://ajax.googleapis.com/ajax/services/search/images?v=1.0&q=%s" % "+".join(search)) as url:
- udict = url.read().decode()
- a = re.finditer('"unescapedUrl":"(.+?)","url":"', udict)
- matches = []
- for match in a:
- match = str(match.group(1))
- matches.append(match)
- link = random.choice(matches)
- try:
- link = link.replace("https", "http")
- except:
- print("Random choice isn't SSL.")
- if args: room.message("%s, I found: %s" % (sntonick(user.name), link), True)
- except:
- room.message("%s I'm sorry, I was unable to find anything for search term: %s :|" % (str(user.name), args), True)
- elif cmd == "youtube" or cmd == "yt":
- if args:
- room.message(tube(args),True)
- else:
- room.message("Please type what you want to watch in Youtube..",True)
- if cmd == "cmds":
- 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")
- if cmd == "invite" or cmd == "Invite":
- if len (args) > 0:
- self.pm.message(ch.RoomManager(args),"%s You have a group invite by ! http://%s.chatango.com ." %(owners[0],room.name))
- room.message("Invite on progress %s in Access group. :)" % args)
- else:
- room.message("Sry have problem. :3")
- ### User List
- elif cmd == "userlist" or cmd == "UserList" or cmd == "User List" or cmd == "User list":
- if args == "":
- usrs = []
- gay = []
- finale = []
- prop = 0
- prop = prop + len(room._userlist) - 1
- for i in room._userlist:
- i = str(i)
- usrs.append(i)
- while prop >= 0:
- j = usrs[prop].replace("<User: ", "")
- i = j.replace(">", "")
- gay.append(i)
- prop = prop - 1
- for i in gay:
- if i not in finale:
- finale.append(i)
- if len(finale) > 40:
- room.message("<font color='#9999FF'><b>40</b></font> of <b>%s</b> users in this room: %s"% (len(finale), ", ".join(finale[:41])), True)
- if len(finale) <=40 :
- room.message("Current <b>%s</b> users of this room: %s"% (len(finale),", ".join(finale)), True)
- if args != "":
- if args not in self.roomnames:
- room.message("I'm not there.")
- return
- users = getParticipant(str(args))
- if len(users) > 40:
- 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)
- if len(users) <=40:
- room.message("Current <b>%s</b> users in <b>%s</b>: %s"% (len(users), args.title(), ", ".join(users)), True)
- ##You may want/need to evaluate something about your bot.
- if cmd == "ev" or cmd == "eval" or cmd == "e" and user.name in cowner:
- ret = eval(args)
- if ret == None:
- room.message("Done.")
- return
- room.message(str(ret))
- elif cmd == "myrank":
- if user.name in cowner:room.message(sntonick(user.name)+", your rank is Owner[<font color='#FFA600'>★★★</font>]: <b>3</b>",True)
- elif user.name in staffa: room.message(sntonick(user.name)+", your rank is Master[<font color='#FF0066'>★★</font>]: <b>2</b>",True)
- elif user.name in whitelist: room.message(sntonick(user.name)+", your rank is Whitelist[<font color='#3399FF'>★</font>]: <b>1</b>",True)
- else: room.message(sntonick(user.name)+",They Have No Rank ^^ ..",True)
- ##Say
- #Make your bot say what you want
- if cmd == "say":
- if args:
- room.message(args)
- else:
- room.message(":|")
- ### MultiChat
- elif cmd == "multichat" or cmd == "mc" or cmd == "MultiChat" or cmd == "Mc":
- if args == "":
- x = 'My Default room : www.desenecalumea.chatango.com'
- room.message(x,True)
- else:
- 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> '
- room.message(b,True)
- elif cmd == "multichat2" or cmd == "mc2":
- if args == "":
- x = 'My Default room : <a href="http://ch.besaba.com/chat/html5/?newdenscund!,monosekai!,obsoletedream!" target="_blank"><u>Click Here!!</u></a> '
- room.message(x,True)
- else:
- 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> '
- room.message(b,True)
- #### MyIp
- elif cmd =="myip" or cmd == "MyIp" or cmd == "MyIP" or cmd == "My IP Adress":
- try:
- room.message("Your I.P. address is : "+message.ip)
- except:
- room.message("IP lookup failed , bot is not a mod in this chat.")
- elif cmd == "rooms":
- j = list()
- for i in self.roomnames:
- j.append("<b>"+i+"</b>"+"("+str(self.getRoom(i).usercount)+")")
- room.message("|| <f x1233FFFF='1'>I'am <f x12F00='1'>Online <f x12334433='1'>in: "+", ".join(j)+" ||", True)
- ##### Set Background
- if cmd== "sbg" or cmd == "Sbg" or cmd == "Set Background":
- if user.name in cowner:
- if len(args) > 0:
- if args == "On":
- room.setBgMode(1)
- room.message("Background On")
- return
- if args == "Off":
- room.setBgMode(0)
- room.message("Background Off")
- ###### Fax
- if cmd == "fax" or cmd == "Fax":
- try:
- name, body = args.split(" ", 1)
- l = "http://ch.besaba.com/mty.htm?"+room.name+"!"
- if name in self.roomnames :
- 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)
- room.message("Sent")
- else:
- room.message("I haven't joined that room")
- except:room.message("error")
- #### Profile
- elif cmd == "prof" or cmd == "profile" or cmd == "Prof" or cmd == "Profile":
- try:
- args=args.lower()
- stuff=str(urlreq.urlopen("http://"+args+".chatango.com").read().decode("utf-8"))
- crap, age = stuff.split('<span class="profile_text"><strong>Age:</strong></span></td><td><span class="profile_text">', 1)
- age, crap = age.split('<br /></span>', 1)
- crap, gender = stuff.split('<span class="profile_text"><strong>Gender:</strong></span></td><td><span class="profile_text">', 1)
- gender, crap = gender.split(' <br /></span>', 1)
- if gender == 'M':
- gender = 'Male'
- elif gender == 'F':
- gender = 'Female'
- else:
- gender = '?'
- crap, location = stuff.split('<span class="profile_text"><strong>Location:</strong></span></td><td><span class="profile_text">', 1)
- location, crap = location.split(' <br /></span>', 1)
- crap,mini=stuff.split("<span class=\"profile_text\"><!-- google_ad_section_start -->",1)
- mini,crap=mini.split("<!-- google_ad_section_end --></span>",1)
- mini=mini.replace("<img","<!")
- 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>'
- 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
- room.message(prodata,True)
- except:
- room.message(""+args+" doesn't exist o.o ")
- #### Bg
- if cmd =="bg":
- try:
- args=args.lower()
- 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>'
- prodata = '<br/>'+picture
- room.message(prodata,True)
- except:
- room.message(""+args+" doesn't exist o.o ")
- if cmd == "join":
- if args not in self.roomnames:
- room.message("<f x12F00='1'>In proggress <f x1233FFFF='1'>go to <f x12F00='1'>room :<f x12FFCC00='1'> <b>%s</b>*" % args, True)
- self.joinRoom(args)
- room.message("<f x1233FFFF='1'>I has <f x12F00='1'>be in <f x12334433='1'>room :<f x12FFCC00='1'> "+args, True)
- 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)
- ### Wake
- if cmd == "wake" or cmd == "Wake":
- if user.name in cowner: return
- room.message("shunstreak este in Wake mode")
- lockdown = False
- ### Sleep
- if cmd == "sleep" or cmd == "Sleep":
- if user.name in cowner: return
- room.message("shunstreak este in Sleep mode")
- lockdown = True
- #### Join
- elif cmd == "join" or cmd == "Join":
- if user.name in cowner:
- room.message("*Am fost conectată pe un alt chat, numit <b>%s</b>*" % args, True)
- self.joinRoom(args)
- else:
- room.message("Sunt deja acolo :|")
- #### Leave
- elif cmd == "Leave" or cmd == "leave" and user.name in owners:
- if user.name in cowner:
- room.message("Shutting down ...")
- self.setTimeout(4, self.stop, )
- self.stop()
- else:
- room.message("Ce ??? *lol*")
- elif cmd == "chazerxjr":
- jawab = ["bot system kaneki v1.0 siap membantu"]
- room.message(random.choice(jawab)+" @"+user.name)
- elif cmd == "ramal":
- 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"]
- room.message(random.choice(jawab)+" @"+user.name)
- elif cmd == "fight":
- jawab = ["http://data2.whicdn.com/images/156069110/large.gif"]
- room.message(random.choice(jawab)+" @"+user.name)
- elif cmd == "help":
- jawab = ["Deal"]
- room.message(random.choice(jawab)+" @"+user.name)
- elif cmd == "afk":
- jawab = ["terimakasih untuk chat nya hari ini"]
- room.message(random.choice(jawab)+" @"+user.name)
- elif cmd == "crunch":
- jawab = ["https://31.media.tumblr.com/50dcec4f797eb86ea483558695c874f1/tumblr_nqru66BNYc1u8lwqgo1_500.gif"]
- room.message(random.choice(jawab)+" @"+user.name)
- elif cmd == "nja":
- jawab = ["bye2"]
- room.message(random.choice(jawab)+" @"+user.name)
- elif cmd == "coeghd":
- jawab = ["anda kenapa?"]
- room.message(random.choice(jawab)+" @"+user.name)
- elif cmd == ":v":
- jawab = ["emoticon dewa"]
- room.message(random.choice(jawab)+" @"+user.name)
- elif cmd == "lebaran":
- jawab = ["minal aidzin wal faizin kk"]
- room.message(random.choice(jawab)+" @"+user.name)
- elif cmd == "gue tamvan gak ?":
- jawab = ["kaga","tamvan","jelek","biasa aja"]
- room.message(random.choice(jawab)+" @"+user.name)
- elif cmd == "hmm":
- jawab = ["maho detcted"]
- room.message(random.choice(jawab)+" @"+user.name)
- elif cmd == "konbanwa":
- jawab = ["tidur sana jangan ngalong :v"]
- room.message(random.choice(jawab)+" @"+user.name)
- elif cmd == "naruto":
- jawab = ["adalah anime yang selalu flash back"]
- room.message(random.choice(jawab)+" @"+user.name)
- elif cmd == "bnp":
- jawab = ["erorr forbidden access denied"]
- room.message(random.choice(jawab)+" @"+user.name)
- ##Random User
- #What's this for ? this one cmd will make your boy say the name of a random user in a room
- if cmd == "randomuser":
- room.message(random.choice(room.usernames))
- ##Check Level
- #This one cmd is tho make your bot say your mod level in the current room you're in
- elif cmd == "mylvl":
- room.message("Your mod level: %i" %(room.getLevel(user)))
- ##List Mods
- #List of Mods and Owner name in the current room you're in
- elif cmd == "mods" or cmd == "Mods":
- args = args.lower()
- if not args:
- 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)
- return
- if args in self.roomnames:
- moda = self.getRoom(args).modname
- own = self.getRoom(args).ownername
- 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)
- else:
- self.joinRoom(args)
- cek_mods[user.name] = json.dumps([room.name,args])
- #### Google Image Search
- elif cmd == "gis" or cmd == "Gis" or cmd == "Google Search Image" or cmd == "GS Image":
- try:
- search = args.split()
- import urllib.request
- with urllib.request.urlopen("http://ajax.googleapis.com/ajax/services/search/images?v=1.0&q=%s" % "+".join(search)) as url:
- udict = url.read().decode()
- a = re.finditer('"unescapedUrl":"(.+?)","url":"', udict)
- matches = []
- for match in a:
- match = str(match.group(1))
- matches.append(match)
- link = random.choice(matches)
- try:
- link = link.replace("https", "http")
- except:
- print("Random choice isn't SSL.")
- if args: room.message("%s, I found: %s" % (sntonick(user.name), link), True)
- except:
- room.message("%s I'm sorry, I was unable to find anything for search term: %s :|" % (str(user.name), args), True)
- #### Broadcast
- if cmd == "broadcast" or cmd == "Broadcast" or cmd == "Shout" or cmd == "shout" or cmd == "Bc" or cmd == "Bc":
- if user.name in cowner: #Only rank 4+ can Broadcast a Message
- for room in self.rooms:
- if args == "": return
- else:
- room.message("Broadcast de la - "+user.name + ": "+args, True)
- else:
- room.message("[<b>%s</b>] Only Admins Members are allowed" % "ERROR", True)
- #### Is Down
- if cmd=="isdown":
- if len(args)>0:
- for line in urlreq.urlopen("http://www.downforeveryoneorjustme.com/"+args):
- decoder=line.decode("UTF-8")
- if "It's just you." in decoder:
- room.message(args+" Should be up....")
- break
- if "It's not just you!" in decoder:
- room.message(args+" Looks down for now.")
- break
- if "doesn't look like a site on the interwho." in decoder:
- room.message(args+" isn't a valid url.")
- break
- else:
- continue
- # Ban List
- if cmd == "banlist":
- room.message("The banlist is: "+str(room.banlist))
- ##ForceSave
- if cmd == "save":
- time.sleep(1)
- print("[SAVE] SAVING DEFINITIONS...")
- f = open("definitions.txt", "w")
- for word in dictionary:
- definition, name = json.loads(dictionary[word])
- f.write(json.dumps([word, definition, name])+"\n")
- if user.name.lower() in owners or user.name in cowner:
- room.message("Se salveaza...(Force Mode!)...")
- else:
- room.message("Se salveaza...(Normal Mode!)")
- f.close()
- ###### Define
- if cmd == "def" or cmd == "define" or cmd == "Define" or cmd == "Def" and len(args) > 0:
- try:
- try:
- word, definition = args.split(":", 1)
- word = word.lower()
- except:
- word = args.split()[0].lower()
- definition = ""
- if len(word.split()) > 1:
- room.message("Nu am reusit sa definesc...Scuze. :(")
- return
- if len(args.split()) > 1 and args.lower().split()[1] == "del" :
- if word in dictionary:
- definition, name = json.loads(dictionary[word])
- if name == user.name or user.name in owners or user.name in admin or user.name in vip or user.name in tempvip:
- del dictionary[word]
- room.message("Definitie stearsa din database.")
- return
- else:
- room.message("Nu ai permisiunea sa folosesti asta.")
- return
- else:
- room.message("<b>%s</b> nu este inca definit. Poti sa il definesti chiar acum scriind urmatoarele : <b> /def %s: (definitie)*</b>" % args, True)
- elif len(definition) > 0:
- if word in dictionary:
- room.message(" Este deja definit. :)")
- else:
- dictionary[word] = json.dumps([definition, user.name])
- room.message(word + " a fost definit astfel:" + definition)
- else:
- if word in dictionary:
- definition, name = json.loads(dictionary[word])
- room.message(word + " a fost definit astfel: " + definition)
- else:
- 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)
- except:
- room.message("Oh , nu! Ai gresit. Incearca din nou.")
- #### ReadNotes
- if cmd == "readnote" or cmd == "rn":
- try:
- if user.name in sasaran:
- body, sender = json.loads(sasaran[user.name])
- room.message(user.name+", ai o notită nouă de la "+sender+" ---> "+body)
- del sasaran[user.name]
- notif.remove(to)
- except: return
- #### CurrentStats
- if cmd == "cs" or cmd =="currentstats":
- a = len(self.roomnames)
- b = len(whitelist)
- c = len(cowner)
- d = len(whitelist)
- e = len(nicks)
- f = len(friend)
- g = len(blacklist)
- 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)
- ### Send Notes
- if cmd == "sn" or cmd == "sendnote" or cmd == "Sn" or cmd == "Sendnote":
- try:
- to, body = args.split(" ", 1)
- sender = user.name
- if to in cowner:
- sasaran[to] = json.dumps([body, sender])
- room.message("Trimis!")
- notif.append(to)
- else: room.message(to+" nu se află in whitelist.")
- #if user.name : room.message( kamu dapat sn dari .... silahkan gunakan cmd 'sn read ) kek gitu aja
- except: room.message("Fail !!")
- #### Ban / Unban
- elif cmd == "ban" or cmd == "Ban" or cmd == "Interzicere" or cmd == "interzicere":
- if user.name in cowner:
- name = args
- if user.name in cowner:
- room.message("Njet >_>")
- return
- if name in room.usernames:
- room.banUser(ch.User(name))
- room.message("<b>%s</b> is banned" % (name), True)
- self.pm.message(ch.User(name.lower()), "You have been banned from %s by %s. Please behave lik a Punk!!" % (room.name, user.name))
- else:
- room.message("i don't see "+name+" here :|")
- else:
- room.message("You mere mortals can never do that !!")
- elif cmd == "unban" or cmd == "ub" or cmd == "UnBan" or cmd == "Unban" or cmd == "Scoate Interzicerea" or cmd == "Scoate interzicerea":
- if user.name in cowner:
- name = args
- if user.name in cowner: return
- room.unban(ch.User(name))
- room.message("<b>%s</b> is unbanned" % (name), True)
- self.pm.message(ch.User(name.lower()), "You have been unbanned from %s by %s. Please behave lik a Punk!!" % (room.name, user.name))
- else:
- room.message("You mere mortals can never do that !!")
- #### Restart
- elif cmd =="restart" or cmd == "Restart" or cmd == "Reconnect" or cmd == "reconnect":
- if user.name.lower() in cowner:
- room.reconnect()
- else:
- room.message("Ce ??? *lol*")
- #### Find
- elif cmd == "find" or cmd == "Find":
- name = args.split()[0].lower()
- try:
- if name in room.usernames:
- if not ch.User(name).roomnames: room.message("dont see them. <_<")
- else: room.message("%s is curently in <b>%s</b> >_>" % (args, ", ".join(ch.User(name).roomnames)), True)
- except: return
- target = args[1:]
- if args[0] == "+":
- if not ch.User(target).roomnames: room.message("dont see them. <_<")
- else: room.message("%s is curently in <b>%s</b> >_>" % (args[1:], ", ".join(ch.User(target).roomnames)), True)
- elif args == "true love" or args == "True Love" or args == "True love":
- orang = random.choice(room.usernames)
- 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 !"]))
- #### LoveMeter
- elif cmd == "lovemeter" or cmd == "lm" or cmd == "LoveMeter" or cmd == "Love Meter" or cmd == "Lovem":
- try:
- user2, user3 = args.split(" and ", 1)
- moter = random.randint(6,100)
- try:
- user1 = args.lower()
- if user1 in lomet:
- meter = json.loads(lomet[user1])
- meter = str(meter)
- 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)
- else:
- moter = str(moter)
- lomet[user1] = json.dumps(moter)
- 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)
- except:
- room.message("Fail !!")
- except:
- room.message("Fail !! You must do as the fate desires !")
- #### Seen
- elif cmd == "invitegroup" or cmd == "ig":
- if len (args) > 0:
- self.pm.message(ch.RoomManager(args),"%s You have group invite! check this Chatango Group http://%s.chatango.com ." %(room.ownername[0],room.name))
- room.message("Youre invite %s now is in Accest Group. :)" % args)
- else:
- room.message("gak mau ah nginvite dia")
- ### Lock/Unlock
- if cmd == "lock" or cmd == "Lock":
- if user.name in cowner:
- room.message("LOCKED!")
- lock = True
- return
- if args in locks:
- room.message("It's locked already")
- return
- if args in self.roomnames:
- if user.name in cowner:
- locks.append(args)
- room.message("locked <b>%s</b>" % args, True)
- else: room.message("Only rank 3 gets to lock rooms remotely")
- if args == "":
- if room.name in locks:
- room.message("It's locked already")
- return
- locks.append(room.name)
- room.message("locked <b>%s</b>" % room.name, True)
- if args not in self.roomnames:
- if args == "": return
- room.message("I haven't joined such room")
- return
- if cmd == "unlock" or cmd == "UnLock" or cmd == "Unlock":
- if user.name in cowner: return
- if args in self.roomnames:
- if args in locks:
- if user.name in cowner:
- locks.remove(args)
- room.message("unlocked <b>%s</b>" % args, True)
- else: room.message("Only rank 3 gets to unlock rooms remotely")
- else:
- room.message("It's not even locked")
- return
- if args == "":
- if room.name in locks:
- locks.remove(room.name)
- room.message("unlocked <b>%s</b>" % room.name, True)
- else:
- room.message("It's not even locked")
- return
- if args not in self.roomnames:
- if args == "": return
- room.message("I'm not in that room")
- return
- ##DANCE!!!!
- #Dance ? Of Course !!! ^_^
- elif cmd == "dance":
- for i, msg in enumerate(dancemoves):
- self.setTimeout(i / 2, room.message, msg)
- #### Pm
- elif cmd == "pm" or cmd == "Pm" or cmd == "PM" or cmd == "Private Message":
- data = args.split(" ", 1)
- if len(data) > 1:
- name , args = data[0], data[1]
- self.pm.message(ch.User(name), "[Private.Message] By - "+user.name+" : "+args+" ")
- room.message("Has been sent to "+name+"")
- #### Invite
- elif cmd == "invite" or cmd == "Invite":
- if len (args) > 0:
- self.pm.message(ch.RoomManager(args),"%s You have a group invite by ! http://%s.chatango.com ." %(owners[0],room.name))
- room.message("Invite on progress %s in Access group. :)" % args)
- else:
- room.message("Sry have problem. :3")
- #### Profile
- elif cmd == "prof" or cmd == "profile" or cmd == "Prof" or cmd == "Profile":
- try:
- args=args.lower()
- stuff=str(urlreq.urlopen("http://"+args+".chatango.com").read().decode("utf-8"))
- crap, age = stuff.split('<span class="profile_text"><strong>Age:</strong></span></td><td><span class="profile_text">', 1)
- age, crap = age.split('<br /></span>', 1)
- crap, gender = stuff.split('<span class="profile_text"><strong>Gender:</strong></span></td><td><span class="profile_text">', 1)
- gender, crap = gender.split(' <br /></span>', 1)
- if gender == 'M':
- gender = 'Male'
- elif gender == 'F':
- gender = 'Female'
- else:
- gender = '?'
- crap, location = stuff.split('<span class="profile_text"><strong>Location:</strong></span></td><td><span class="profile_text">', 1)
- location, crap = location.split(' <br /></span>', 1)
- crap,mini=stuff.split("<span class=\"profile_text\"><!-- google_ad_section_start -->",1)
- mini,crap=mini.split("<!-- google_ad_section_end --></span>",1)
- mini=mini.replace("<img","<!")
- 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>'
- 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
- room.message(prodata,True)
- except:
- room.message(""+args+" doesn't exist o.o ")
- #
- if cmd =="wordtoday" or cmd=="wt":
- if user.name in cowner:
- if user.name in wordtodaytime:
- w = json.loads(wordtodaytime[user.name])
- if time.time() < w:
- w = int(w) - int(time.time())
- minute = 60
- hour = minute * 60
- day = hour * 24
- days = int(w / day)
- hours = int((w % day) / hour)
- minutes = int((w % hour) / minute)
- seconds = int(w % minute)
- string = ""
- if days > 0:
- string += str(days) + " " + (days == 1 and "day" or "days" ) + ", "
- if len(string) > 0 or hours > 0:
- string += str(hours) + " " + (hours == 1 and "hour" or "hours" ) + ", "
- if len(string) > 0 or minutes > 0:
- string += str(minutes) + " " + (minutes == 1 and "minute" or "minutes" ) + ", "
- string += str(seconds) + " " + (seconds == 1 and "second" or "seconds" )
- room.message("You can use wordtoday after <font color='#9999FF'>%s</font> (~^o^)~ "% string,True)
- return
- if urank(user.name) >= 1:
- 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"]))
- room.message("Dear "+sntonick(user.name)+" Your word today is : <b><font color='#FF9966'>"+str(x)+"</font></b>",True)
- wordtodaytime[user.name] = json.dumps(time.time()+1200)
- ##Check if Mod
- #not really important
- elif cmd == "ismod":
- user = ch.User(args)
- if room.getLevel(user) > 0:
- room.message("yesh")
- else:
- room.message("nope")
- except Exception as e:
- try:
- et, ev, tb = sys.exc_info()
- lineno = tb.tb_lineno
- fn = tb.tb_frame.f_code.co_filename
- room.message("[Expectation Failed] %s Line %i - %s"% (fn, lineno, str(e)))
- return
- except:
- room.message("Undescribeable error detected !!")
- return
- ##Other Crap here, Dont worry about it
- def onFloodWarning(self, room):
- room.reconnect()
- def onJoin(self, room, user):
- print(user.name + " joined the chat!")
- def onLeave(self, room, user):
- print(user.name + " left the chat!")
- def onUserCountChange(self, room):
- print("users: " + str(room.usercount))
- def onMessageDelete(self, room, user, msg):
- print("MESSAGE DELETED: " + user.name + ": " + msg.body)
- if __name__ == "__main__": TestBot.easy_start(rooms,"ShunStreak","*1*2*3*4*5")
- #The End!!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement