Advertisement
Guest User

sahr

a guest
Mar 19th, 2016
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 29.56 KB | None | 0 0
  1. import ch
  2. import random
  3. import sys
  4. import os
  5. import re
  6. import codecs
  7. import traceback
  8. import time
  9. import datetime
  10. import youtube
  11. import getWhois
  12. import urllib
  13. from getWhois import whois
  14. import binascii
  15. import json
  16. import cmds
  17. import imp
  18. import __future__
  19.  
  20. ##############################################################
  21. ##############################################################
  22. ## Timer Stuff ###############################################
  23.  
  24. startTime = time.time()
  25.  
  26. ## End ###############################################
  27. ##############################################################
  28.  
  29. ##############################################################
  30. ######## Mon Nov 18 2013 22:15:33 WIB ########
  31. ##############################################################
  32.  
  33. owners = ['erste','yvj'] #Put your chatango name here
  34. botname = 'wogh'
  35. password = 'rahasia'
  36.  
  37. #Element tree
  38. from xml.etree import cElementTree as ET
  39.  
  40. #UrlLib
  41. if sys.version_info[0] > 2:
  42. import urllib.request as urlreq
  43. else:
  44. import urllib2 as urlreq
  45.  
  46.  
  47.  
  48. ##############################################################
  49. ## Bot Uptime ################################################
  50. ##############################################################
  51.  
  52. def getUptime():
  53. """
  54. Returns the number of seconds since the programs started.
  55. """
  56. #do return startTime if you want the process start time
  57.  
  58. return time.time() - startTime
  59.  
  60.  
  61. ## End #######################################################
  62. ##############################################################
  63.  
  64. ##############################################################
  65. ## File Stuff ################################################
  66.  
  67. ## Check Mods
  68. cek_mods=dict()
  69.  
  70.  
  71. ##IP Whois
  72. ip_whois = dict()
  73. try:
  74. f = open("ip_whois.txt", "r")
  75. ip_whois = eval(f.read())
  76. f.close()
  77. except:pass
  78.  
  79. ##SessionId Whois
  80. sid_whois = dict()
  81. try:
  82. f = open("sid_whois.txt", "r")
  83. sid_whois = eval(f.read())
  84. f.close()
  85. except:pass
  86.  
  87. ##IPloc try
  88. user_ip = dict()
  89. try:
  90. f = open("userip.txt", "r")
  91. user_ip = eval(f.read())
  92. f.close()
  93. except:pass
  94.  
  95. ## users font format preferences
  96. userfont=dict()
  97. try:
  98. f = open("userfonts.txt", "r")
  99. userfont = eval(f.read())
  100. f.close()
  101. except:pass
  102.  
  103.  
  104. ## Bombed ##
  105. bombed = dict()
  106.  
  107. ## Purged ##
  108. purged = dict()
  109.  
  110. ##History dict
  111. hist = dict()
  112.  
  113. ##CORRA.MONEY
  114. corrabank=dict()
  115. f = open("corrabank.txt", "r") # read-only
  116. for line in f.readlines():
  117. try:
  118. if len(line.strip())>0:
  119. user,coin,gold= json.loads(line.strip())
  120. corrabank[user] = json.dumps([coin,gold])
  121. except:
  122. print("[ERROR]Cant load MONEY: %s" % line)
  123. f.close()
  124.  
  125. ##CORRA.STATS
  126. stats=dict()
  127. f = open("stats.txt", "r") # read-only
  128. for line in f.readlines():
  129. try:
  130. if len(line.strip())>0:
  131. user,lvl,exp,up= json.loads(line.strip())
  132. stats[user] = json.dumps([lvl,exp,up])
  133. except:
  134. print("[ERROR]Cant load STATS: %s" % line)
  135. f.close()
  136.  
  137. ##CORRA.INVENTORY
  138. inven = dict()
  139. try:
  140. f = open('inven.txt','r')
  141. inven = eval(f.read())
  142. f.close()
  143. except:print("Error")
  144.  
  145. def saveInven():
  146. try:
  147. print("[SAVE] SAVING ALL Stuff...")
  148. f = open('inven.txt','w')
  149. f.write(str(inven))
  150. f.close()
  151. except:print("ERR")
  152.  
  153. ##CORRA.USER
  154. playa = []
  155. f = open("playa.txt", "r") # read-only
  156. for name in f.readlines():
  157. if len(name.strip())>0: playa.append(name.strip())
  158. f.close()
  159.  
  160. ## CCslot
  161. ccinven=dict()
  162. try:
  163. f = open("CCbomb/ccinven.txt", "r")
  164. ccinven = eval(f.read())
  165. f.close()
  166. except:pass
  167.  
  168. defaultformat = {}
  169. spintime = {}
  170.  
  171. ##deathlist
  172. dlist = []
  173. f = open("dlist.txt", "r")
  174. for name in f.readlines():
  175. if len(name.strip())>0: dlist.append(name.strip())
  176. f.close()
  177.  
  178. specials = ['senops','sarashiki23','ampunganz','galaksi2','dovion','frizki','hide72','handikaecchihunter','padomo','sikakutokun']
  179.  
  180.  
  181. ## End #########################################################
  182. ################################################################
  183.  
  184. ################################################################
  185. ## Important TestBot Class #####################################
  186. class cprogram(ch.RoomManager):
  187.  
  188. ## Setting Font Format and Colors
  189. def onInit(self):
  190. #self.setNameColor("CC0000")
  191. #self.setFontColor("F77777") one
  192. #self.setFontColor("663300") Dark Brown
  193. #self.setNameColor("fff1ff") one
  194. #self.setNameColor("F44444") Light penk
  195. #self.setFontFace("typewriter")
  196. self.setFontFace("Arial Unicode MS")
  197. self.setFontSize(12)
  198. self.setFontColor("FF6600")
  199. self.setNameColor("990000")
  200. self.enableBg()
  201. self.enableRecording()
  202. if len(defaultformat) == 0:
  203. defaultformat.update({'selfy':{'face':'Arial Unicode MS','fcolor':'FF6600','size':12,'ncolor':'990000'}})
  204.  
  205.  
  206. ##############################################################
  207. ## Connecting and Disconnecting crap #########################
  208.  
  209. def onReconnect(self, room):
  210. print("[+] Mad Hatter Reconnected to "+room.name)
  211.  
  212. def onDisconnect(self, room):
  213. print("[+] Mad Hatter Disconnected from "+room.name)
  214. if len(self.roomnames) == 0:
  215. roomies = ["monosekai","remaire"]
  216. for i in roomies:
  217. self.joinRoom(i)
  218.  
  219. def onJoin(self, room, user):
  220. #print("[+] "+user.name+" joined "+room.name)
  221. case = 1
  222. namu = user.name
  223. hist.update({namu:[case,time.time(), room.name, "hey"]})
  224.  
  225. def onBan(self, room, user, target):
  226. print("someone got banned in "+room.name)
  227.  
  228. ## End #######################################################
  229. ##############################################################
  230.  
  231. ##############################################################
  232. ## Setting up Commands #######################################
  233.  
  234. def onMessage(self, room, user, message):
  235. try:
  236. if user.name.startswith("#") or user.name.startswith("!"): return
  237. def urank(arg):
  238. if arg not in ranker: return 0
  239. if ranker[arg] == 1 and not arg in room.modnames and not arg in room.ownername: return 1
  240. if ranker[arg] == 1 and arg in room.modnames: return 2
  241. if ranker[arg] == 1 and arg in room.ownername: return 3
  242. if ranker[arg] == 4: return 4
  243. if ranker[arg] == 5: return 5
  244. if ranker[arg] == 6: return 6
  245. def rankname(arg):
  246. if arg not in ranker: return "Gay User"
  247. if ranker[arg] == 1 and not arg in room.modnames and not arg in room.ownername: return "Citizen"
  248. if ranker[arg] == 1 and arg in room.modnames: return "Room Moderator"
  249. if ranker[arg] == 1 and arg in room.ownername: return "Room Owner"
  250. if ranker[arg] == 4: return "Arch Knight"
  251. if ranker[arg] == 5: return "ADMIN"
  252. if ranker[arg] == 6: return "OWNER"
  253. def getCountry(args):
  254. country = os.popen("curl ipinfo.io/%s | grep 'country'"% user_ip[args]).readlines()
  255. for i in country:
  256. gruy = ['-']
  257. gruy.append(i)
  258. dang = gruy[1]
  259. grey = dang.split(' "country": ')
  260. grey = grey[1]
  261. gray = grey.split(',\n')
  262. gruk = gray[0]
  263. if gruk != 'null':
  264. gruk = gruk.split('"')
  265. gruk = gruk[1]
  266. else:
  267. gruk = 'Nowhere'
  268. return gruk
  269. def getRegion(args):
  270. region = os.popen("curl ipinfo.io/%s | grep 'region'"% user_ip[args]).readlines()
  271. for i in region:
  272. gruy = ['-']
  273. gruy.append(i)
  274. dang = gruy[1]
  275. grey = dang.split(' "region": ')
  276. grey = grey[1]
  277. gray = grey.split(',\n')
  278. gruk = gray[0]
  279. if gruk != 'null':
  280. gruk = gruk.split('"')
  281. gruk = gruk[1]
  282. else:
  283. gruk = 'Nowhere'
  284. return gruk
  285.  
  286. def getCity(args):
  287. city = os.popen("curl ipinfo.io/%s | grep 'city'"% user_ip[args]).readlines()
  288. for i in city:
  289. gruy = ['-']
  290. gruy.append(i)
  291. dang = gruy[1]
  292. grey = dang.split(' "city": ')
  293. grey = grey[1]
  294. gray = grey.split(',\n')
  295. gruk = gray[0]
  296. if gruk != 'null':
  297. gruk = gruk.split('"')
  298. gruk = gruk[1]
  299. else:
  300. gruk = 'Nowhere'
  301. return gruk
  302.  
  303. def reboot():
  304. output = ("rebooting server . . .")
  305. os.popen("sudo -S reboot")
  306. return output
  307.  
  308.  
  309. if len(purged) > 0:
  310. for i in purged:
  311. now = time.time()
  312. ptime = purged[i][1]
  313. rname = purged[i][0]
  314. purgetime = purged[i][2]
  315. summoner = purged[i][3]
  316. if time.time() >= ptime:
  317. room.message('A Purgatory Ghost flies into the room and says:<br/> <i>"Master %s, I have purged <b><font color="#ff0000">%s</font> %s</b> times, and the Purgatory is done. Now I shall go back to my realm."</i><br/>A Purgatory Ghost bows down to %s and slowly fades away from existence.'% (summoner,i,purgetime,summoner), True)
  318. purged.pop(i)
  319. return
  320. target = ''
  321. for i in purged:
  322. target = i
  323. try:
  324. room.delete(room.getLastMessage(ch.User(i)))
  325. except:
  326. pass
  327. purgetime = purged[target][2] + 1
  328. purged[target][2] = purgetime
  329.  
  330.  
  331. if len(bombed) > 0:
  332. if user.name in bombed:
  333. if room.name in bombed[user.name]:
  334. targ = ''
  335. for i in bombed:
  336. for r in bombed[i]:
  337. targ = i
  338. rname = bombed[i]
  339. try:
  340. room.delete(room.getLastMessage(ch.User(i)))
  341. except:
  342. return
  343. room.message("<b>(<font color='#FFFF00'>Glowing</font>)</b> <font color='#FFFFFF'><b>BOOM!!</b></font>", True)
  344. bombed[user.name].remove(room.name)
  345.  
  346.  
  347. if len(spintime) > 0:
  348. targ = ''
  349. for i in spintime:
  350. targ = i
  351. now = time.time()
  352. stime = spintime[targ]
  353. if now >= stime:
  354. spintime.pop(targ)
  355.  
  356. if True:
  357. #f = open('CCbomb/ccinven.txt', "r")
  358. #ccinven = eval(f.read())
  359. #f.close
  360. for i in ccinven:
  361. money = ccinven[i][0]
  362. free = ccinven[i][2]['free']
  363. broke = ccinven[i][2]['broke']
  364. pocket = ccinven[i][1]
  365.  
  366. if broke != '-':
  367. if money >= 50:
  368. ccinven[i][2]['broke'] = '-'
  369. return
  370. now = time.time()
  371. if now >= broke:
  372. ccinven[i][2]['broke'] = '-'
  373. ccinven[i][0] = 200
  374.  
  375. if free != '-':
  376. now = time.time()
  377. if now >= free:
  378. ccinven[i][2]['free'] = '-'
  379. if money < 200:
  380. ccinven[i][0] = 200
  381. #f = open('CCbomb/ccinven.txt', "w")
  382. #f.write(str(ccinven))
  383. #f.close
  384.  
  385.  
  386. if room.getLevel(self.user) > 0:
  387. user_ip.update({user.name:message.ip})
  388. f = open('userip.txt', "w")
  389. f.write(str(user_ip))
  390. f.close
  391. if user.name not in ip_whois:
  392. ip_var = message.ip
  393. ip_whois.update({user.name:[ip_var]})
  394. if user.name in ip_whois:
  395. ip_var = message.ip
  396. if ip_var in ip_whois[user.name]:
  397. pass
  398. else:
  399. ip_whois[user.name].append(ip_var)
  400. f = open('ip_whois.txt', "w")
  401. f.write(str(ip_whois))
  402. f.close
  403. if user:
  404. unid = str(message.unid)
  405. if user.name not in sid_whois:
  406. sid_whois.update({user.name:[unid]})
  407. if user.name in sid_whois:
  408. if unid == "":
  409. return
  410. if unid in sid_whois[user.name]:
  411. pass
  412. else:
  413. sid_whois[user.name].append(unid)
  414. f = open('sid_whois.txt', "w")
  415. f.write(str(sid_whois))
  416. f.close
  417.  
  418.  
  419. if self.user == user: return #ignore self(bot)
  420. if user.name.startswith(";") or user.name.startswith("#"): return #ignore anons
  421. def userformat():
  422. ufont = userfont[user.name]
  423. face = ufont["face"]
  424. size = ufont["size"]
  425. fcolor = ufont["fcolor"]
  426. ncolor = ufont["ncolor"]
  427. self.setFontFace(face)
  428. self.setFontSize(size)
  429. self.setFontColor(fcolor)
  430. self.setNameColor(ncolor)
  431. def defaultfont():
  432. face = defaultformat['selfy']['face']
  433. fcolor = defaultformat['selfy']['fcolor']
  434. size = defaultformat['selfy']['size']
  435. ncolor = defaultformat['selfy']['ncolor']
  436. self.setFontFace(face)
  437. self.setFontSize(size)
  438. self.setFontColor(fcolor)
  439. self.setNameColor(ncolor)
  440.  
  441. if user.name in userfont and userfont[user.name]["active"] == "on":
  442. userformat()
  443. if user.name in userfont and userfont[user.name]["active"] == "off":
  444. defaultfont()
  445.  
  446. ##Record seen history
  447. namu = user.name
  448. case = 3
  449. hist.update({namu:[case,time.time(), room.name, message.body]})
  450.  
  451. if user.name in dlist: return
  452.  
  453.  
  454. def roomUsers():
  455. usrs = []
  456. gay = []
  457. prop = 0
  458. prop = prop + len(room._userlist) - 1
  459. for i in room._userlist:
  460. i = str(i)
  461. usrs.append(i)
  462. while prop >= 0:
  463. j = usrs[prop].replace("<User: ", "")
  464. i = j.replace(">", "")
  465. gay.append(i)
  466. prop = prop - 1
  467. return gay
  468.  
  469. def pars(args):
  470. args=args.lower()
  471. userlist = roomUsers()
  472. for name in userlist:
  473. if args in name:return name
  474. # SN Notif
  475.  
  476.  
  477. if "test" == message.body.lower() or "tes" == message.body.lower():
  478. room.message("Test request granted.")
  479.  
  480. if "'wl" == message.body or "'wl me" == message.body or '/wl' == message.body or '/wl me' == message.body:
  481. if user.name not in ranker:
  482. ranker.update({user.name:1})
  483. room.message(user.name+" can use me now. ^^")
  484.  
  485. if "'help" == message.body.lower() or "/help" == message.body.lower() :
  486. ver = "3.1.0"
  487. rank = 0
  488. moded = "no"
  489. if urank(user.name) == 0:
  490. rank = "0"
  491. if urank(user.name) == 2:
  492. rank = 2
  493. if urank(user.name) == 3:
  494. rank = 3
  495. if urank(user.name) == 4:
  496. rank = 4
  497. if urank(user.name) == 1:
  498. rank = 1
  499. if urank(user.name) == 5:
  500. rank = 5
  501. if urank(user.name) == 6:
  502. rank = 6
  503. if room.getLevel(user) > 0:
  504. moded = "yes"
  505. room.message("<font color='#FF8C00'><b>HatterBot</b></font>(<font color='#B8860B'><b>"+ver+"</b></font>) - Please help yourself - "+'<font color="#00BFFF"><b><u><a href="http://pastebin.com/raw.php?i=Y6H0cYV2" target="_blank">HELP</a></u></b></font>'+" - [<font color='#FF0000'><b>Rank "+str(rank)+"</b></font>] - Moded [<b>"+moded+"</b>]", True)
  506.  
  507.  
  508.  
  509. if "i want anal" == message.body.lower() or "I WANT ANAL" == message.body.lower() or "I want anal" == message.body.lower():
  510. room.message("http://imgace.com/wp-content/uploads/2011/09/horny-harry-anal.jpg")
  511. if "wogh" == message.body.lower() or "mess" == message.body.lower() or "mes" == message.body.lower():
  512. if user.name == "yvj":
  513. room.message("yes mogeko ?")
  514. else:
  515. room.message("What's up "+sntonick(user.name)+" ?", True)
  516. if "hi" == message.body.lower():
  517. room.message("Hi~ ! :)")
  518. if message.body.lower().startswith("messh pls") or message.body.lower().startswith("messh please") or message.body.lower().startswith("mess please") or message.body.lower().startswith("mess pls"):
  519. room.message(random.choice(["<b>%s</b> >_>" % "Njet","No :|","Hell no !","Fuck no !","Fook off !!","No shit !","You need to STFU !! :|","sure :)"]), True)
  520. if "mati lampu" == message.body.lower():
  521. room.message('Tiba" lep !')
  522. if "<><" == message.body.lower():
  523. room.message("Pfft, that's a gay fish !")
  524. if message.body.lower().startswith("afk"):
  525. if user.name in "0rx":
  526. room.message("See you soon master ! ^.^")
  527. else:
  528. room.message("See you soon "+sntonick(user.name)+" ! ^o^", True)
  529. if " lapar" in message.body.lower() or message.body.lower().startswith("lapar") or message.body.lower().startswith("laper") or " laper" in message.body.lower() or " laper " in message.body.lower():
  530. room.message(random.choice(["*Lempar soyjoy ke <b>%s</b>*" % sntonick(user.name),"*Lempar Snickers ke <b>%s</b>*" % sntonick(user.name)]), True)
  531. if "neko" == message.body.lower() or "Neko" in message.body.lower():
  532. room.message("Meow..mew..mew =^o^=")
  533. if "oppai" == message.body.lower():
  534. room.message("*Boing - Boing*")
  535. if message.body.startswith("ngantuk") or " ngantuk" in message.body.lower():
  536. room.message("Tidur lah !! >_>")
  537. if "oha" == message.body.lower():
  538. room.message("Ohayou~ !")
  539. if "konbanwa" in message.body.lower():
  540. room.message("Konbanwa~! ^.^")
  541. if "malam" == message.body.lower():
  542. room.message(random.choice(["Selamat malam~ ! ^o^","Good evening !","Good Night Citizens !"]))
  543. if "oyasuminasai" == message.body.lower() or "oyasumi" in message.body.lower():
  544. room.message("Oyasumi~ ! ^^")
  545. if "sore" == message.body.lower():
  546. room.message("Selamat sore~ ! ^.^")
  547. if "arigato" == message.body.lower():
  548. room.message(random.choice(["Douitashimashite~ ! ^_^","You're wellcome ! ^^"]))
  549. if message.body.lower().startswith("ohayou") or message.body.lower().startswith("ohayo"):
  550. room.message("Ohayou~! ^_^")
  551. if "tadaima" == message.body.lower():
  552. room.message(random.choice(["Welcome home ! :)","Okaerinasai ! ^o^","Wokaerinasai !!!!"]))
  553. if "hello" == message.body.lower():
  554. room.message("Hello, my nigga !")
  555. if "fook" in message.body.lower():
  556. if not message.body.startswith("'"):
  557. room.message("yeah, " +message.body)
  558.  
  559. if message.body[0] in [";","`"]: #prefix part in this line
  560. data = message.body[1:].split(" ", 1)
  561. if len(data) == 2:
  562. cmd, args = data[0], data[1]
  563. else:
  564. cmd, args = data[0], ""
  565. cmd = cmd.lower()
  566.  
  567. if cmd == "whois" or cmd == "#who" or cmd == "w":
  568. if not args :
  569. room.message("FAIL!! do 'w<space>nick");return
  570. args = args.lower()
  571. if args[0] == "+":
  572. args = args[1:]
  573. elif pars(args) != None and not args[0] == "+":
  574. args = pars(args)
  575. try:
  576. f = open("ip_whois.txt", "r")
  577. ip_whois = eval(f.read())
  578. f.close()
  579. except:pass
  580. try:
  581. f = open("sid_whois.txt", "r")
  582. sid_whois = eval(f.read())
  583. f.close()
  584. except:pass
  585. ip_ver = whois(ip_whois, args)
  586. sid_ver = whois(sid_whois, args)
  587. if ip_ver == None and sid_ver == None:
  588. room.message("No alias found.")
  589. return
  590. room.message("Currently known alias(es) of %s:<br/><b>UnID Version</b>: %s.<br/><b>IP Version</b>: %s."% (args.title(), sid_ver, ip_ver), True)
  591.  
  592. if cmd == "pm" and len(args) > 1:
  593. try:
  594. name, msg = args.split(" ", 1)
  595. if pars(name) == None:
  596. self.pm.message(ch.User(name.lower()), msg+" - from "+user.name)
  597. room.message('Sent to <font size="15"><font color="#FF9966"><b>%s</b></font></font>' % name, True)
  598. else:
  599. name = pars(name)
  600. self.pm.message(ch.User(name.lower()), msg+" - from "+user.name)
  601. room.message('Sent to <font size="15"><font color="#FF9966"><b>%s</b></font></font>' % name, True)
  602. except:
  603. room.message("Fail !!!")
  604. else:
  605. room.message("Dammit >_>")
  606.  
  607. elif cmd == "iploc":
  608. try:
  609. if args == "":
  610. room.message("To see info about chatango user's location based on IP address.<br/>Do 'iploc [option] [username]<br/>Options -> [1]country, [2]region, [3]city", True)
  611. return
  612. terms, name = args.split(" ", 1)
  613. if terms == "1": terms = "country"
  614. if terms == "2": terms = "region"
  615. if terms == "3": terms = "city"
  616. if pars(name) == None:
  617. name = name.lower()
  618. if pars(name) != None:
  619. name = pars(name)
  620. if name not in user_ip:
  621. room.message(name.title()+"'s "+terms+" location is Unknown.")
  622. return
  623. if terms == "city":
  624. room.message("%s's city location is %s"% (name.title(), getCity(name)), True)
  625. if terms == "region":
  626. room.message("%s's region location is %s"% (name.title(), getRegion(name)), True)
  627. if terms == "country":
  628. room.message("%s's country location is %s"% (name.title(), getCountry(name)), True)
  629. except:
  630. room.message("user IPLoc-Lookup failed.")
  631. elif cmd == "myformat" or cmd == "mf":
  632. args = args.lower()
  633. gol, res = args.split(" ", 1)
  634. if gol == "face":
  635. userfont[user.name]["face"] = res
  636. room.message("Your prefered font face is set to "+res.title()+".")
  637. if gol == "size":
  638. try:
  639. res = int(res)
  640. if res > 15:
  641. res = 15
  642. userfont[user.name]["size"] = res
  643. room.message("Your prefered font size is set to "+str(res)+".")
  644. except:
  645. room.message("Type a propper number under 15.")
  646. if gol == "fcolor":
  647. userfont[user.name]["fcolor"] = str(res)
  648. cols = []
  649. cols.append("<font color='#"+res+"'>")
  650. for col in cols:
  651. room.message("Your prefered font color is set to "+col+"this color</font>", True)
  652. if gol == "ncolor":
  653. userfont[user.name]["ncolor"] = str(res)
  654. cols = []
  655. cols.append("<font color='#"+res+"'>")
  656. for col in cols:
  657. room.message("Your prefered name color is set to "+col+"<b>this color</b></font>", True)
  658.  
  659.  
  660. elif cmd == "fontget" or cmd == "fg":
  661. if args == "off":
  662. if userfont[user.name]["active"] == "off":
  663. room.message("It is already inactive.")
  664. return
  665. userfont[user.name]["active"] = "off"
  666. room.message("Your font preference is set to off.")
  667. if args == "on":
  668. if userfont[user.name]["active"] == "on":
  669. room.message("It is already active.")
  670. return
  671. userfont[user.name]["active"] = "on"
  672. room.message("Your font preference is set to on.")
  673. if not args:
  674. return
  675. if args != "off" and args != "on" and args != "":
  676. targ = args
  677. if pars(targ) == None:
  678. targ = targ.lower()
  679. else:
  680. targ = pars(targ)
  681. fontface = ch.User(targ).getFontFace()
  682. fontcolor = ch.User(targ).getFontColor()
  683. fontsize = ch.User(targ).getFontSize()
  684. namecolor = ch.User(targ).getNameColor()
  685. if fontsize > 15: fontsize = 15
  686. userfont[user.name]["face"] = fontface
  687. userfont[user.name]["size"] = fontsize
  688. userfont[user.name]["fcolor"] = fontcolor
  689. userfont[user.name]["ncolor"] = namecolor
  690. userfont[user.name]["active"] = "on"
  691. room.message("Done.")
  692.  
  693. ## Bot uptime
  694. elif cmd == "sut":
  695. minute = 60
  696. hour = minute * 60
  697. day = hour * 24
  698. days = int(getUptime() / day)
  699. hours = int((getUptime() % day) / hour)
  700. minutes = int((getUptime() % hour) / minute)
  701. seconds = int(getUptime() % minute)
  702. string = ""
  703. if days > 0:
  704. string += str(days) + " " + (days == 1 and "day" or "days" ) + ", "
  705. if len(string) > 0 or hours > 0:
  706. string += str(hours) + " " + (hours == 1 and "hour" or "hours" ) + ", "
  707. if len(string) > 0 or minutes > 0:
  708. string += str(minutes) + " " + (minutes == 1 and "minute" or "minutes" ) + ", "
  709. string += str(seconds) + " " + (seconds == 1 and "second" or "seconds" )
  710. room.message("Mogeko castle session has been running for: %s" % string, True)
  711.  
  712. elif cmd == "imitate":
  713. if urank(user.name) > 4:
  714. if args and not args == "#self":
  715. if pars(args) == None:
  716. args = args.lower()
  717. else:
  718. args = pars(args)
  719. fontface = ch.User(args).getFontFace()
  720. fontcolor = ch.User(args).getFontColor()
  721. fontsize = ch.User(args).getFontSize()
  722. namecolor = ch.User(args).getNameColor()
  723. self.setFontColor(fontcolor)
  724. self.setNameColor(namecolor)
  725. self.setFontFace(fontface)
  726. self.setFontSize(fontsize)
  727. defaultformat.update({'selfy':{'face':fontface,'fcolor':fontcolor,'size':fontsize,'ncolor':namecolor}})
  728. room.message("INSTA SWITCH!!!")
  729. if args == "#self":
  730. self.setFontColor("FFFFFF")
  731. self.setNameColor("FFFF")
  732. self.setFontFace("arial")
  733. self.setFontSize(11)
  734. room.message("INSTA DEFAULT!!!")
  735. defaultformat.update({'selfy':{'face':'Arial Unicode MS','fcolor':'FF6600','size':12,'ncolor':'990000'}})
  736. if not args:
  737. fontface = ch.User(user.name).getFontFace()
  738. fontcolor = ch.User(user.name).getFontColor()
  739. fontsize = ch.User(user.name).getFontSize()
  740. namecolor = ch.User(user.name).getNameColor()
  741. self.setFontColor(fontcolor)
  742. self.setNameColor(namecolor)
  743. self.setFontFace(fontface)
  744. self.setFontSize(fontsize)
  745. defaultformat.update({'selfy':{'face':fontface,'fcolor':fontcolor,'size':fontsize,'ncolor':namecolor}})
  746. room.message("INSTA SWITCH!!!")
  747.  
  748.  
  749. if (cmd == "ev" or cmd == "eval" or cmd == "e"):
  750. ret = eval(args)
  751. if ret == None:
  752. room.message("Suck it up !")
  753. return
  754. room.message(str(ret))
  755.  
  756.  
  757.  
  758. except Exception as e:
  759. try:
  760. et, ev, tb = sys.exc_info()
  761. lineno = tb.tb_lineno
  762. fn = tb.tb_frame.f_code.co_filename
  763. room.message("[Expectation Failed] %s Line %i - %s"% (fn, lineno, str(e)))
  764. return
  765. except:
  766. room.message("Undescribeable error detected !!")
  767. return
  768.  
  769.  
  770. ## End #######################################################
  771. ##############################################################
  772.  
  773. ##############################################################
  774. #### Secrets #################################################
  775.  
  776.  
  777.  
  778. #extra crap
  779.  
  780. def onUserCountChange(self, room):
  781. pass
  782.  
  783. def onLeave(self, room, user):
  784. #print("[+] "+user.name+" left "+room.name)
  785. namu = user.name
  786. case = 2
  787. hist.update({namu:[case, time.time(), room.name, "hoy"]})
  788.  
  789. def onFloodWarning(self, room):
  790. #room.reconnect()
  791. room.setSilent(True)
  792. self.setTimeout(15, room.setSilent, False)
  793.  
  794. def onFloodBan(self, room):
  795. #room.reconnect()
  796. room.setSilent(True)
  797. self.setTimeout(15, room.setSilent, False)
  798. print("[+] Reconnecting...")
  799.  
  800. def onFloodBanRepeat(self, room):
  801. #room.reconnect()
  802. room.setSilent(True)
  803. self.setTimeout(15, room.setSilent, False)
  804.  
  805. def onMessageDelete(self, room, user, msg):
  806. pass
  807. #print("MESSAGE DELETED: " + room.name + " - " + user.name + ": " + msg.body)
  808. def onPMMessage(self, pm, user, body):
  809. pminput = "PM - "+user.name+": "+body
  810. pm.message(user, "...")
  811. if "remaire" in self.rooms:
  812. self.setTimeout(int(6), self.getRoom("obsoletedream").message, "Incoming PM From ["+user.name+"] - "+body)
  813. if "dai-tenshi" in self.rooms:
  814. self.setTimeout(int(6), self.getRoom("dermaga").message, "Incoming PM From ["+user.name+"] - "+body)
  815. #pmlog.append("[%s]\033[LVL %s]\033 %s: %s" % (time.strftime("%d/%m/%y- %H:%M:%S", time.localtime(time.time())), self.getAccess(user), user.name.capitalize(), body))
  816.  
  817.  
  818. def hexc(e):
  819. et, ev, tb = sys.exc_info()
  820. if not tb: print(str(e))
  821. while tb:
  822. lineno = tb.tb_lineno
  823. fn = tb.tb_frame.f_code.co_filename
  824. tb = tb.tb_next
  825. print("(%s:%i) %s" % (fn, lineno, str(e)))
  826.  
  827. if __name__ == "__main__":
  828. error = 0
  829. try:
  830. os.system("clear") #clear console on launch
  831. rooms=["projectpak"]
  832. cprogram.easy_start(rooms, "cprogram", "03123634708")
  833. except KeyboardInterrupt:
  834. print("[ERR] Console initiated a kill.")
  835. except Exception as e:
  836. print("[ERR] FATAL ERROR!")
  837. error = 1
  838. hexc(e)
  839.  
  840.  
  841. ## Error Detected
  842. if error == 1:
  843. print("Waiting 10 seconds for you to read the error..")
  844. time.sleep(10)
  845. print("[INFO] Shutting down..")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement