Advertisement
Thelorgoreng

For Sekkki(1) ^^

Oct 20th, 2015
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 54.27 KB | None | 0 0
  1. ############################################################################
  2. ############################################################################
  3. ####    Getting Started Bot                                     ############
  4. ####    File            = ThGk.py                               ############    
  5. ####    Originaly by    = Clonerxyz                             ############
  6. ####    Edited by       = Thelorgorenk                          ############
  7. ####    you can PM for info about making a chatango             ############
  8. ####    bot in http://thelorgorenk.chatango.com, and you can    ############
  9. ####    and you can also chat in :                              ############
  10. ####            http://khususme.chatango.com                    ############
  11. ####    Last update:                                            ############
  12. ####            1.40 PM 9 September, 13 2015 by Thelorgorenk    ############
  13. ############################################################################
  14. ############################################################################
  15. import ch
  16. import subprocess
  17. import re
  18. import random
  19. import math
  20. import json
  21. from random import randint
  22. import os.path
  23. import sys
  24. import cgi
  25. import urllib.request
  26. import os
  27. import traceback
  28. import urllib
  29. import http.client
  30. from urllib import parse, request
  31. from html.parser import HTMLParser
  32. import datetime
  33. import socket
  34. import binascii
  35. import winsound
  36. import __future__
  37. import threading
  38. from xml.etree import cElementTree as ET
  39. import time
  40. from datetime import date
  41. import webbrowser,re,urllib.request
  42.  
  43. #urllib supp  
  44. if sys.version_info[0] > 2:
  45.     import urllib.request as urlreq
  46. else:
  47.     import urllib2 as urlreq
  48.  
  49. if sys.version_info[0] > 2:
  50.   import urllib.request as urlreq
  51. else:
  52.   import urllib2 as urlreq
  53. from time import localtime, strftime
  54. wordtodaytime = dict()
  55.  
  56. ## Love Meter Logs
  57. lomet = dict()
  58. f = open("lovelog.txt", "r")
  59. for line in f.readlines():
  60.   try:
  61.     if len(line.strip())>0:
  62.       user1, meter = json.loads(line.strip())
  63.       lomet[user1] = json.dumps(meter)
  64.   except:
  65.     print("fails")
  66. f.close()
  67.  
  68. ## Send Notes
  69. sasaran = dict()
  70. f = open ("notes.txt", "r") #read-only
  71. print("[INF] Loading Notes")
  72. time.sleep(1)
  73. for line in f.readlines():
  74.   try:
  75.     if len(line.strip())>0:
  76.       to, body, sender = json.loads(line.strip())
  77.       sasaran[to] = json.dumps([body, sender])
  78.   except:
  79.     print("[Error] Notes load fails : %s" % line)
  80. f.close()
  81.  
  82. # SN Notifs
  83. notif = []
  84. f = open("notif.txt", "r")
  85. print("[INF]Loading Notifs...")
  86. for name in f.readlines():
  87.   if len(name.strip())>0: notif.append(name.strip())
  88. f.close
  89.  
  90. ## Last Seen History
  91. filename = "roomhist.txt"#the text file you need to have in same place as bot
  92. hist = dict()
  93. f = open(filename, 'r') #open status.txt and make a writing variable called file
  94. print("[INF]LOADING ROOMHIST")#print to console
  95. time.sleep(1)#pause for one second
  96. for line in f.readlines():
  97.   if len(line.strip())>0:
  98.     nama, waktu, ruang, body = json.loads(line.strip())
  99.     hist[nama] = json.dumps([waktu, ruang, body])
  100. f.close()#close the file
  101.  
  102. ## ROOMLOG
  103. filename = "roomlog.txt"#the text file you need to have in same place as bot
  104. roomlog =[]
  105. f = open(filename, 'r') #open status.txt and make a writing variable called file
  106. print("[INFO]LOADING ROOMLOG")#print to console
  107. time.sleep(1)#pause for one second
  108. for name in f.readlines():
  109.   if len(name.strip())>0: roomlog.append(name.strip())
  110. f.close()#close the file
  111.  
  112. #Nicknames
  113. nicks=dict()#empty list
  114. f=open ("nicks.txt","r")#r=read w=right
  115. print ("[INF]Loading Nicks...")#print
  116. time.sleep(1)
  117. for line in f.readlines():#loop through eachline and read each line
  118.     try:#try code
  119.         if len(line.strip())>0:#strip the whitespace checkgreater than 0
  120.             user , nick = json.loads(line.strip())
  121.             nicks[user] = json.dumps(nick)
  122.     except:
  123.         print("[Error]Can't load nick %s" % line)
  124.  
  125. ## definitions
  126. dictionary = dict() #volatile..
  127. f = open("definitions.txt", 'r') #read-only
  128. print("[INF]Loading Definitions...")
  129. time.sleep(1)
  130. for line in f.readlines():
  131.   try:
  132.     if len(line.strip())>0:
  133.       word, definitions, name = json.loads(line.strip())
  134.       dictionary[word] = json.dumps([definitions, name])
  135.   except:
  136.     print("{ERROR]Cant load Definitions: %s" % line)
  137. f.close()
  138.  
  139. ## Locks##
  140. locks = []
  141. f = open("locks.txt", 'r')
  142. time.sleep(1)
  143. for name in f.readlines():
  144.   if len(name.strip())>0: locks.append(name.strip())
  145. f.close()
  146.  
  147. ##Rooms.. Buat newfile judulnya rooms trs text file faiq..##
  148. rooms = []
  149. f = open("rooms.txt", "r") #read-only
  150. print("[INF]Loading Rooms...")
  151. time.sleep(1)
  152. for name in f.readlines():
  153.   if len(name.strip())>0: rooms.append(name.strip())
  154. f.close()
  155. ##End!!##
  156.  
  157. ##whitelist..##
  158. whitelist = []
  159. f = open("whitelist.txt", "r") #read-only
  160. print("[INF]Loading Players...")
  161. time.sleep(1)
  162. for name in f.readlines():
  163.   if len(name.strip())>0: whitelist.append(name.strip())
  164. f.close()
  165. ##End!!##
  166. dancemoves = [
  167.   "(>^.^)>",
  168.   "(v^.^)v",
  169. ]
  170. song = [
  171.   "Dirimu, dirimulah! Orang yang beriku senyum ini",
  172. "Jika kita bisa membuat air mata yang bersinar, itu 'kan 'jadi bintang jatuh",
  173. "Tanganmu t'lah terluka, tapi jangan pernah lepaskannya lagi",
  174. "Dari langit yang terpenuhi keinginan, hari esok 'kan segera datang",
  175.  
  176. "Cahya yang membimbingku adalah dirimu",
  177. "Dan aku pun ditarik karenanya",
  178. "Sebelum kusadarim kita mulai sebrangi jalan itu",
  179. "Sekaranglah saatnya! Jikalau kita hanya bisa bersinar di sini",
  180. ]
  181.  
  182. bete = [
  183. "kunci",
  184. ]
  185. pagi = [
  186. "ohayou oni-chan",
  187. ]
  188. info = [
  189. "======================= sekedar info aja ya master gue si clonerxyz ol  nya >senin s/d sabtu< jam >7 s/d 17< :)  kalo mau liat tutor ke >> mumucontent.blogspot.com/2015/07/make-bot-chat-chatango.html jangan merasa paling jago, di sini kita sama2 belajar :v  kalo ada member baru yang pengen belajar, tolong member yang on di bantu, terutama buat si thelorgorenk shamanthebeater :v ===========================",
  190. ]
  191.  
  192. # implied command?    
  193. # call bot name with command after
  194. # call bot name with command after
  195. def get_cpu_load():
  196.     """ Returns a list CPU Loads"""
  197.     result = []
  198.     cmd = "WMIC CPU GET LoadPercentage "
  199.     response = os.popen(cmd + ' 2>&1','r').read().strip().split("\r\n")
  200.     for load in response[1:]:
  201.        result.append(int(load))
  202.     return result
  203. #Setting Pretty Colors
  204. def saveNicks():
  205.     print("[SAVE] SAVING NICKS...")
  206.     f = open("Nicks.txt", "w")
  207.     for user in nicks:
  208.         nick = json.loads(nicks[user])
  209.         f.write(json.dumps([user, nick])+"\n")
  210.     f.close()
  211.    
  212. def sntonick(username):
  213.     user = username.lower()
  214.     if user in nicks:
  215.         nick = json.loads(nicks[user])
  216.         return nick
  217.     else:
  218.         return user.capitalize()
  219. def detik():
  220.     rawdata = urllib.request.urlopen("http://detik.com").read().decode()
  221.     data = re.findall('<a href="(.*?)" data-category="(.*?)" data-action="(.*?)" data-label="Artikel" ><h2>(.*?)</h2></a>', rawdata)
  222.     newset = list()
  223.     val = 1
  224.     for artikel in data:
  225.         link, title = artikel [0], artikel [3]
  226.         newset.append("[%s] %s - %s" % (val, link , title))
  227.         val += 1
  228.     return "<br/>".join(newset[0:5])
  229.  
  230. #Font setting for your bot
  231. def tube(args):
  232.   try:
  233.     search = args.split()
  234.     url = urlreq.urlopen("https://www.googleapis.com/youtube/v3/search?q=%s&part=snippet&key=AIzaSyBSnh-sIjd97_FmQVzlyGbcaYXuSt_oh84" % "+".join(search))
  235.     udict = url.read().decode('utf-8')
  236.     data = json.loads(udict)
  237.     rest = []
  238.     for f in data["items"]:
  239.       rest.append(f)
  240.  
  241.     d = random.choice(rest)
  242.     link = "http://www.youtube.com/watch?v=" + d["id"]["videoId"]
  243.     videoid = d["id"]["videoId"]
  244.     title = d["snippet"]["title"]
  245.     uploader = d["snippet"]["channelTitle"]
  246.     descript = d["snippet"]['description']
  247.     count    = d["snippet"]["publishedAt"]
  248.     return "<f x1233FF33='1'>Ha<f x1200F='1'>sil:<f x12F00='1'> %s <br/><br/><br/><br/><br/><br/><br/><br/><font color='#ffcc00'><b>%s</b></font><br/><font color='#ff0000'><b>Yang ngeupload</b></font>:<b> %s</b><br/><font color='#ff0000'><b>Di publikasikan pada</b></font>: %s<br/><font color='#ff0000'><b>Rincian</b></font>:<i> %s ...</i><br/> " % (link, title, uploader, count, descript[:200])
  249.   except Exception as e:
  250.     return str(e)
  251.  
  252.  
  253. ##Set Color for your Bot##
  254.  
  255. class TestBot(ch.RoomManager):
  256.   def onInit(self):
  257.     self.setNameColor("F9F")
  258.     self.setFontColor("F33")
  259.     self.setFontFace("1")
  260.     self.setFontSize(14)
  261.     self.enableBg()
  262.     self.enableRecording()
  263.  
  264.  
  265. ##### Pars Def
  266.   def pars(args):
  267.           args=args.lower()
  268.           userlist = roomUsers()
  269.           for name in userlist:
  270.             if args in name:return name  
  271. ##Connecting Crap
  272. #This is what will be printed on your python console when event called
  273.  
  274.   def onConnect(self, room):
  275.     print("Connected")
  276.  
  277.   def onReconnect(self, room):
  278.     print("Reconnected")
  279.  
  280.   def onDisconnect(self, room):
  281.     print("Disconnected")
  282.   def onUserCountChange(self, room):
  283.     print(room.name+"USER yang lagi ON >>" + str(room.usercount))
  284.  
  285.   def onLeave(self, room, user):
  286.     print("[+] "+user.name+" yah dia pergi T_T "+room.name)
  287.     if room.usercount >= 20:
  288.       return
  289.     room.message(user.name+" dia pergi ")
  290.  
  291.   def onFloodWarning(self, room):
  292.     room.reconnect()
  293.     room.setSilent(True)
  294.     self.setTimeout(15, room.setSilent, False)
  295.     self.setTimeout(16, room.message, "I'm back.")
  296.     print("[+] Reconnecting...")
  297.  
  298.   def onMessageDelete(self, room, user, msg):
  299.     print("MESSAGE DELETED: " + user.name + ": " + msg.body)
  300.  
  301.   def rpg():
  302.     class Hero:
  303.         def __init__(self, name):
  304.             self.name = name
  305.             self.level = 1
  306.             self.job = "Priest"
  307.             self.title = "Strider of the East"
  308.             if self.job == "Cleric":
  309.                 self.critical = 125
  310.                 self.str = 50
  311.                 self.exp = 254
  312.                 self.max1 = 3154
  313.                 max2 = self.level*self.max1*2/3
  314.                 self.maxHp = int(max2)
  315.             if self.job == "Priest":
  316.                 self.critical = 95
  317.                 self.str = 20
  318.                 self.exp = 254
  319.                 self.max1 = 4478
  320.                 max2 = self.level*self.max1*2/3
  321.                 self.maxHp = int(max2)
  322.             self.health = self.maxHp
  323.  
  324.         def expGauge(self):
  325.             rexp1 = 3500
  326.             rexp2 = self.level*rexp1*2/3
  327.             gauge1 = self.exp/rexp2
  328.             gauge2 = float(gauge1)*100.00
  329.             self.gauge = int(gauge2)
  330.  
  331.         def lvl(self):
  332.             rexp1 = 3500
  333.             rexp2 = self.level*rexp1*2/3
  334.             if self.exp >= rexp2:
  335.                 self.level = self.level+1
  336.                 self.exp = self.exp - rexp2
  337.                 max2 = self.level*self.max1*2/3
  338.                 self.maxHp = int(max2)
  339.                 print("You just leveled up !! Congratulations %s"% self.name)
  340.             else:
  341.                 pass
  342.  
  343.  
  344.         def heal(self):
  345.             if self.health < self.maxHp:
  346.                 if self.job == "Cleric":
  347.                     heal1 = 200
  348.                     heal2 = self.level*heal1*2
  349.                     hell = heal2/3
  350.                     heal3 = int(hell)
  351.                     heal4 = random.randint(heal3,heal2)
  352.                     self.health += heal4
  353.                 if self.job == "Priest":
  354.                     heal1 = 300
  355.                     heal2 = self.level*heal1*2
  356.                     hell = heal2/3
  357.                     heal3 = int(hell)
  358.                     heal4 = random.randint(heal3,heal2)
  359.                     self.health += heal4
  360.                 if self.health > self.maxHp:
  361.                     self.health = self.maxHp
  362.                     print ("hp full")
  363.             else:
  364.                 print ("hp full")
  365.  
  366.         def attack(self):
  367.             atta = player.level*player.str
  368.             atte = atta + (self.critical*self.level)
  369.             atti = atte + atta * 2 / 3
  370.             self.dmg = random.randint(atta,int(atti))
  371.             momon.health -= self.dmg
  372.  
  373.  
  374.  
  375.     class Enemy:
  376.    
  377.         def __init__(self, name):
  378.             self.name = "Zombie"
  379.             self.health = 5000
  380.             self.critical = 35
  381.             self._tasks = set()
  382.  
  383.         def attack(self):
  384.             self.dmg = random.randint(300,500)
  385.             dmg = self.dmg
  386.             miss = "Zombie attacks but misses"
  387.             atks = ("Zombie attacks and dealt %s damage !!"% dmg)
  388.             chose = random.choice([miss,miss,miss,atks,miss,atks,miss])
  389.             if chose == miss:
  390.                 pass
  391.             if chose == atks:
  392.                 print(atks)
  393.                 player.health -= dmg
  394.  
  395.     global war
  396.  
  397.     war = False
  398.  
  399.  
  400.     momon = Enemy("Zombie")
  401.  
  402.     heroname = str(input("Please enter your name: "))
  403.     player = heroname
  404.     if heroname == player:
  405.             player = Hero(heroname)
  406.             print ("Welcome to another world %s !!" %heroname)
  407.  
  408.     opt = ["help","rest","job 1","job 2","hunt","atk","heal","status"]
  409.  
  410.     while True:
  411.         choice = str(input("-->"))
  412.         if not choice in opt:
  413.             print("Fail command !")
  414.         player.expGauge()
  415.         if war == True:
  416.             momon.attack()
  417.             if choice == "atk":
  418.                 if player.health <= 0:
  419.                     player.health = 0
  420.                 if player.health and momon.health > 0:
  421.                     player.attack()
  422.                     if momon.health <= 0 and not player.health <= 0:
  423.                         momon.health = 0
  424.                         print("You won !!!")
  425.                         war = False
  426.                     if player.health <= 0:
  427.                         player.health = 0
  428.                         print("You are dead")
  429.                         war = False
  430.                     if war == True:
  431.                         randex1 = 50
  432.                         randex2 = 200
  433.                         randex = random.randint(randex1,randex2)
  434.                         player.lvl()
  435.                         player.exp = player.exp+randex
  436.                         php = str(player.health)
  437.                         mhp = str(momon.health)
  438.                         print("%s's ~Hp: %s  ~Damage: %s |  %s's ~Hp: %s"% (player.name,php,player.dmg,momon.name,mhp))
  439.             if choice == "heal":
  440.                 player.heal()
  441.                 php = str(player.health)
  442.                 mhp = str(momon.health)
  443.                 if player.health < player.maxHp:
  444.                     print("%s's HP: %s |  %s ~hp: %s"% (player.name,php,momon.name,mhp))
  445.                 else:
  446.                     pass
  447.         else:
  448.             momon.health = 5000
  449.             if choice == "status":
  450.                 apus = ("%s's status :\n~Hp       : %s\n~Level    : %s\n~Job      : %s\n~Title    : %s\n~Exp      : %i%s"% (player.name,player.health,player.level,player.job,player.title,player.gauge,str("%")))
  451.                 print (str(apus))
  452.    
  453.             if choice == "help":
  454.                 print("Here are available commands for you honey: help, rest, job 1, job 2, hunt, atk, heal")
  455.            
  456.             if choice == "rest":
  457.                 player.health = int(player.maxHp)
  458.                 print("%s rests under a big cherry tree and recovers from all his wounds"% player.name)
  459.  
  460.             if choice == "atk":
  461.                 print("%s started a fight with a thug and got trashed"% player.name)
  462.  
  463.             if choice == "job 1":
  464.                     player.job = "Priest"
  465.                     print("You switched your Job and becomes a holy Priest")
  466.             if choice == "job 2":
  467.                     player.job = "Cleric"
  468.                     print("You switched your Job and becomes a Mighty Cleric")
  469.  
  470.             if choice == "hunt":
  471.                 print("You approaches a Zombie and initiates a battle !!")
  472.                 war = True
  473.  
  474.  
  475. ##### Pars Def
  476.   def pars(args):
  477.           args=args.lower()
  478.           userlist = roomUsers()
  479.           for name in userlist:
  480.             if args in name:return name
  481.  
  482. ##Ignore this, you dont need to worry about this
  483. #Well, you can actually take a little time to look at it and learn something
  484.   def onMessage(self, room, user, message):
  485.   #### Comenzi fara prefix
  486.    if "/wl me" == message.body:
  487.     if user.name not in whitelist:
  488.      whitelist.append(user.name)
  489.      room.message(user.name+" can use me now. ^^")
  490.     else: room.message("You're silly >_>")
  491.    if message.body.startswith("test"):
  492.      room.message("Apaan sih, test test :P")
  493.    if message.body.startswith("hitung"):
  494.      hasil = ai.hitung(message.body)
  495.      if hasil:
  496.          room.message(hasil)
  497.      else:
  498.          room.message("belom di ajarin kalo ngitung itu :v " +sntonick(user.name)+".", True)  
  499.    if message.body.startswith("desu"):
  500.      room.message("Desu, Nyan ^_^  "+sntonick(user.name)+"!", True)
  501.    if message.body.startswith("@cindhiva"):
  502.      room.message("maaf anda salah orang!  "+sntonick(user.name)+".", True)
  503.    if message.body.startswith("woi"):
  504.      room.message("ga usah teriak-teriak, keles...")
  505.    if message.body.startswith("sepi"):
  506.      room.message("Alay banget lu :P")
  507.    if message.body.startswith("siang"):
  508.      room.message("siang juga :)")
  509.    if message.body.startswith("malam"):
  510.      room.message("Good Night :)")
  511.    if message.body.startswith("konbanwa"):
  512.      room.message("Ohayou :v")
  513.    if message.body.startswith("souka"):
  514.      room.message("Iya kaka >_<")
  515.    if message.body.startswith("master"):
  516.      room.message("Watashiwa masta wa sekki desu >_<")
  517.    if message.body.startswith("malas"):
  518.      room.message("What if I told you! http://s30.postimg.org/wknymko8h/Quotes_Hyouka.jpg  @"+user.name+".")
  519.    if message.body.startswith("jam"):
  520.       room.message(strftime("%H:%M:%S", localtime()))      
  521.    if message.body.startswith("tanggal"):
  522.      room.message(strftime ("HARI: %a,%d-%b-%Y ", localtime()))
  523.    if message.body.startswith("siapa yang"):
  524.      room.message(random.choice(room.usernames))
  525.    if message.body.startswith("siapa yang paling cantik "):
  526.      jawab = ["Kepo banget sih","aku lah","saya","ntahlah","susah jawab nya :v"]
  527.      room.message(random.choice(jawab) +sntonick(user.name)+".", True)
  528.    if message.body.startswith("jones"):
  529.      room.message("Haha, Kasian  http://media.giphy.com/media/W3ZJuP6774be/giphy.gif  @"+user.name+".")
  530.    if message.body.startswith("aku jahat apa baik ?"):
  531.      jawab = ["jahat","siapa ya? ","sok kenal kali sih!!","Ntahlah :3","coegh"]
  532.      room.message(random.choice(jawab) +sntonick(user.name)+".", True)
  533.    if message.body.startswith("kamu makhluk apa cin?"):
  534.      room.message("Ntahlah, aku pun bimbang")
  535.    if message.body.startswith("gak ada"):
  536.      room.message("Emangnya gue pikirin :P")
  537.    if message.body.startswith("teks"):
  538.      room.message("<marquee>HALO SELAMAT DATANG >>>>>>>>></marquee>")
  539.    if message.body.startswith("kamu tinggal dimana?"):
  540.      room.message("dihatimu :3")  
  541.    if message.body.startswith("kamu udah makan?"):
  542.      jawab = ["belom","beliin dong, kaka","kakak suapin","beliin kue dong","siapa yah ?"]
  543.      room.message(random.choice(jawab) +sntonick(user.name)+".", True)
  544.    if message.body.startswith("kenapa cin?"):
  545.     if user.name == "sekkki":
  546.      room.message("M-Master wa B-Bakaa.. http://s15.postimg.org/oruolh5kr/large.jpg  @"+ user.name+".")
  547.     else:
  548.      room.message("U-urusai.. Hmph http://s27.postimg.org/kgdcd7msj/image.jpg  @"+ user.name+".")
  549.    if message.body.startswith("kamu make pantsu apa cin?"):
  550.      jawab = ["hijau","pelangi","kuning","merah","biru","hitam","ungu","gambar beruang"]
  551.      room.message(random.choice(jawab)+"" +sntonick(user.name)+".", True)
  552.    if message.body.startswith("bapa kamu"):
  553.      jawab = ["iya ko tau","bukan","siapa ya ?","hem mungkin","siapa yah ?"]
  554.      room.message(random.choice(jawab)+" @"+user.name)
  555.    if message.body.startswith("Rekom anime romance"):
  556.      jawab = ["Clannad, after story, Sukitte ii na you, Aoharu ride, Kaichou wa maid-sama, Nisekoi, InuxBoku,Ore monogatari,Nagi no Asukara, Tonari no Kaibutsu-kun,Isshukan friend,Kamisama Hajimemashita,Special A,Soredemo sekai wa utsukushi,Hen Ouji,Amagami,Kimi ni Todoke,Toradora,sankarea,Golden Time,White Album,Bakemonogatari,Gosick,Hotarubi no Mori e,"]
  557.      room.message(random.choice(jawab)+" @"+user.name)
  558.    if message.body.startswith("Rekom anime harem"):
  559.      jawab = ["Absolute Duo, Asobi ni Iku Yo, Campione, Freezing, High School DxD, Hoshizora E Kakaru Hashi,Kiss X Sis, Kore wa Zombie Desu Ka,Maken-Ki- Nisekoi,Orehura, Imocho,Seikon no Qwaser,Sekirei ,Shinmai Maou no Testament,Sora No Otoshimono,To Love ru,Walkure Romanze,Yamada-kun to 7-nin no Majo,Infinite Stratos,Trinity Seven,Zero no Tsukaima,Strike The Blood,NouCome,Kanojo ga flag wo oraretara,Air Gear, Saenai Heroine no Sodatekata,Mondaiji Tachi,Isuca,Inou Battle wa Nichijou,D-Frag,Mashiro-iro Symphony,CubexCursedxCurious,Sword Art Online,Koi to Senkyo no Chocolate,Date A Live, The World God Only Knows,Hidan no Aria, Hen Ouji,Denpa Kyoushi,Kuusen Madoushi,Grisaia no Kajitsu, Monmusu"]
  560.      room.message(random.choice(jawab)+" @"+user.name)
  561.    if message.body.startswith("gue cantik gak cin?"):
  562.      jawab = ["ga cantik, tapi tamvan :D","siapa ya?","cantik","cantik sih, tapi masih cantikan aku","ga usah sok kenal!"]
  563.      room.message(random.choice(jawab)+" @"+user.name)
  564.    if message.body.startswith("oh"):
  565.      jawab = ["Weteep","Gile lu Ndro","Hmm.."]
  566.      room.message(random.choice(jawab)+" @"+user.name)
  567.    if message.body.startswith("lol "):
  568.      jawab = ["Alay :P","Gzz..","Hm.."]
  569.      room.message(random.choice(jawab)+" @"+user.name)
  570.    if message.body.startswith("soalnya kamu"):
  571.      jawab = ["boleh juga","garing","lagi dong","so swet","siapa yah ?"]
  572.      room.message(random.choice(jawab)+" @"+user.name)
  573.    if message.body.startswith("karena kamu"):
  574.      jawab = ["boleh juga","garing","lagi dong","so swet","nge gombal, ya? "]
  575.      room.message(random.choice(jawab)+" @"+user.name)
  576.    if message.body.startswith("asal kamu dari mana cin?"):
  577.      room.message("aku dari tadi kok")
  578.    if message.body.startswith("cin"):
  579.     if user.name == "sekkki":
  580.      room.message(" What's Going on ? "+sntonick(user.name)+".", True)
  581.     else:
  582.      room.message("Apaan? sok kenal banget sih...  @"+ user.name+".")  
  583.    if message.body.startswith("hentong"):
  584.      room.message("Kimoii, Shut Up")
  585.    if message.body.startswith("off"):
  586.      if user.name == "sekkki":
  587.       room.message("Mata-Nee *waves*  "+sntonick(user.name)+".", True)
  588.      else:    
  589.       room.message("Tch.. Peduli apa :P")
  590.    if message.body.startswith("tsundere"):
  591.      room.message(" W-What ?, http://i173.photobucket.com/albums/w77/omghaet/Index/Biri-Biri.png  "+sntonick(user.name)+".", True)
  592.    if message.body.startswith("yandere"):
  593.      room.message("Yes!, I'm here, http://vignette2.wikia.nocookie.net/futurediary/images/a/a5/YunoYandereFace.jpg/revision/latest?cb=20120128011750  "+sntonick(user.name)+".", True)
  594.    if message.body.startswith("pagi"):
  595.      for i, msg in enumerate(pagi):
  596.         self.setTimeout(i / 2, room.message, msg)
  597.    if message.body.startswith("bete nih"):
  598.      for i, msg in enumerate(bete):
  599.         self.setTimeout(i / 0.79, room.message, msg)
  600.    if message.body.startswith("nyan"):
  601.       for i, msg in enumerate():
  602.         self.setTimeout(i / 2, room.message, msg)  
  603.    if message.body.startswith("afk"):
  604.      if user.name == "sekkki":
  605.       room.message("Oh! AFK? See you again :| "+sntonick(user.name)+".", True)
  606.      else:
  607.       room.message("Mata-Nee  " +sntonick(user.name)+".", True)
  608.    if message.body.startswith("kata bijak"):
  609.       room.message(random.choice(["jangan lah berhenti bermimpi karena mimpi bisa itu suatu saat akan menjadi nyata.",
  610.           "berani ambil resiko, kita tidak akan pernah tau apa yang akan terjadi.",
  611.           "jangan pernah lupa dengan orang yang selalu mendukung mu dari belakang.",
  612.           "jangan pernah sekali-kali sombong, karena di atas langit masih ada langit.",
  613.           "To true friendship, how long you've known each other means nothing.",
  614.           "You want weapons? We??re in a library! Books! The best weapons in the world!",
  615.           "mulut lebih tajam dari benda apapun kalu kita salah menggunakan nya.",
  616.           "Dividing an impossibly large task into smaller solvable problems is a programmer??s job.",
  617.           "dunia ini penuh dengan melodi dan harmoni, jangan sekali2 merusak nya dengan keluhan anda :)",
  618.           "Hold hands. That's what you're meant to do. Keep doing that... and don't let go.",
  619.           "cintailah orang yang mencintai anda juga?",
  620.           "jangan pernah malah olahraga",
  621.           "Don't worry if plan A fails, there are 25 more letters in the alphabet.",
  622.           "Life doesn't have any hands, but it can sure give you a slap sometimes.",
  623.           "lihat ke belakang, sewaktu2 jika anda tidak sedang sibuk",
  624.           "Belajar ketika orang lain tidur, bekerja ketika orang lain bermalasan, dan bermimpi ketika orang lain berharap.",
  625.           "Pain has deep roots. The only way to dig it out is to forgive...",
  626.           "Love,after all,always said more about those who felt it then it did about the ones they love.",
  627.           "Memories are funny things.Sometimes they're real ,but other times they change into what we went them to be.",
  628.           "The moment of impact. The moment of impact proves potential for change. Has ripples effects far beyond what we can predict."]))
  629.    if message.body.startswith("quotes"):
  630.       room.message(random.choice(["jangan lah berhenti bermimpi karena mimpi bisa itu suatu saat akan menjadi nyata.",
  631.           "berani ambil resiko, kita tidak akan pernah tau apa yang akan terjadi.",
  632.           "jangan pernah lupa dengan orang yang selalu mendukung mu dari belakang.",
  633.           "jangan pernah sekali-kali sombong, karena di atas langit masih ada langit.",
  634.           "To true friendship, how long you've known each other means nothing.",
  635.           "You want weapons? We??re in a library! Books! The best weapons in the world!",
  636.           "mulut lebih tajam dari benda apapun kalu kita salah menggunakan nya.",
  637.           "Dividing an impossibly large task into smaller solvable problems is a programmer??s job.",
  638.           "dunia ini penuh dengan melodi dan harmoni, jangan sekali2 merusak nya dengan keluhan anda :)",
  639.           "Hold hands. That's what you're meant to do. Keep doing that... and don't let go.",
  640.           "cintailah orang yang mencintai anda juga?",
  641.           "jangan pernah malah olahraga",
  642.           "Don't worry if plan A fails, there are 25 more letters in the alphabet.",
  643.           "Life doesn't have any hands, but it can sure give you a slap sometimes.",
  644.           "lihat ke belakang, sewaktu2 jika anda tidak sedang sibuk",
  645.           "Belajar ketika orang lain tidur, bekerja ketika orang lain bermalasan, dan bermimpi ketika orang lain berharap.",
  646.           "Pain has deep roots. The only way to dig it out is to forgive...",
  647.           "Love,after all,always said more about those who felt it then it did about the ones they love.",
  648.           "Memories are funny things.Sometimes they're real ,but other times they change into what we went them to be.",
  649.           "The moment of impact. The moment of impact proves potential for change. Has ripples effects far beyond what we can predict."]))
  650.    if message.body.startswith("ramalan jodoh"):
  651.      room.message("masukan nama mu dan pasangan mu contoh >> mr.x dan ms.y setelah itu tulis >> ramal")
  652.    if message.body.startswith("gua cocok gak sama"):
  653.       jawab = ["cocok nya sama thelor","gak akan pernah cocok","gak pantes","saling suka :)",]
  654.       room.message(random.choice(jawab)+" @"+user.name)
  655.    if message.body.startswith("brb"):
  656.      if user.name == "sekkki":
  657.       room.message("Hus..Hus..")
  658.      else:
  659.       room.message("sampai ketemu lagi  "+sntonick(user.name)+".", True)
  660.    if message.body.startswith("back"):
  661.      if user.name == "sekkki":
  662.       room.message("Welcome to This Chat ^_^")
  663.      else:
  664.       room.message("Welcome to Indonesia   "+sntonick(user.name)+".", True)
  665.    try:
  666.     if room.getLevel(self.user) > 0:
  667.       print(user.name, message.body)
  668.     else:
  669.       print(user.name, message.body)
  670.     if self.user == user: return
  671.     if message.body[0] == "~" or message.body[0] == ";" :   ##Here is the Prefix part
  672.       data = message.body[1:].split(" ", 1)
  673.       if len(data) > 1:
  674.         cmd, args = data[0], data[1]
  675.       else:
  676.         cmd, args = data[0], ""
  677.  
  678.       def pars(args):
  679.         args=args.lower()
  680.         for name in room.usernames:
  681.           if args in name:return name    
  682.       def roompars(args):
  683.         args = args.lower()
  684.         for name in self.roomnames:
  685.           if args in name:return name
  686.       def roomUsers():
  687.           usrs = []
  688.           gay = []
  689.           prop = 0
  690.           prop = prop + len(room._userlist) - 1
  691.           for i in room._userlist:
  692.             i = str(i)
  693.             usrs.append(i)
  694.           while prop >= 0:
  695.             j = usrs[prop].replace("<User: ", "")
  696.             i = j.replace(">", "")
  697.             gay.append(i)
  698.             prop = prop - 1
  699.           return gay
  700.      
  701.       def getParticipant(arg):
  702.           rname = self.getRoom(arg)
  703.           usrs = []
  704.           gay = []
  705.           finale = []
  706.           prop = 0
  707.           prop = prop + len(rname._userlist) - 1
  708.           for i in rname._userlist:
  709.             i = str(i)
  710.             usrs.append(i)
  711.           while prop >= 0:
  712.             j = usrs[prop].replace("<User: ", "")
  713.             i = j.replace(">", "")
  714.             gay.append(i)
  715.             prop = prop - 1
  716.           for j in gay:
  717.             if j not in finale:
  718.               finale.append(j)
  719.           return finale
  720.      
  721.  
  722. ##COMMANDS!
  723. #Setting up commands for yer bot
  724.          
  725.  
  726.  #commands section
  727.  #youtube
  728.  #say
  729.        
  730.       if cmd == "say":
  731.             if args:
  732.               room.message(args)
  733.             else:
  734.               room.message("sariawan males ngomong")  
  735. #### Invite
  736.       if cmd == "invite" or cmd == "Invite":
  737.         if len (args) > 0:
  738.             self.pm.message(ch.RoomManager(args),"%s kalo lagi sepi di room itu mampir aja kemari >>>> http://%s.chatango.com .")
  739.             room.message("Invite on progress %s in Access group. :)" % args)
  740.         else:
  741.             room.message("Sry have problem. :3")
  742. ##You may want/need to evaluate something about your bot.
  743.       if cmd == "ev" or cmd == "eval" or cmd == "e":
  744.           ret = eval(args)
  745.           if ret == None:
  746.             room.message("Done.")
  747.             return
  748.           room.message(str(ret))
  749.  
  750.        #### Google Image Search
  751.    
  752.  
  753.         ##Check Level
  754.       ##Join Leave..##
  755.       elif cmd == "leave":
  756.        if user.name == "sekkki":
  757.         if not args:args=room.name
  758.         self.leaveRoom(args)
  759.         room.message("[<b>Loading...</b>] Out from "+args+" ;)",True)
  760.         print("[SAVE] SAVING Rooms...")
  761.         f = open("rooms.txt", "w")
  762.         f.write("\n".join(self.roomnames))
  763.         f.close()
  764.  
  765.     ###### join room + roomname
  766.        
  767.       elif cmd == "rooms":
  768.         j = []
  769.         for i in self.roomnames:
  770.           j.append(i+'[%s]' % str(self.getRoom(i).usercount))
  771.           j.sort()
  772.         room.message("I'm online in "+'[%s] room(s) ,There are: '%(len(self.roomnames))+", ".join(j))
  773.        
  774.       elif cmd == "join" and len(args) > 1:
  775.           if user.name == "sekkki": ##kalo mau buat yang bisa nge join kan|| tambahin if user.name == "sekkki" or user.name == "textvp": gitu.. faiq intinya ditambahin or user.name == "namanya" gitu..##
  776.               if args not in self.roomnames:
  777.                 room.message("[<b>Loading...</b>] Connected to "+args+" ;)",True)
  778.                 self.joinRoom(args)
  779.               else:
  780.                 room.message("I was already there :| ...")
  781.               print("[SAVE] SAVING Rooms...")
  782.               f = open("rooms.txt", "w")
  783.               f.write("\n".join(self.roomnames))
  784.               f.close()
  785.       elif (cmd == "nick"): ##tambahin sntonick(user.name) faiq, supaya bot nya manggil pake nick ;)
  786.           try:
  787.             if args:
  788.               sntonick(user.name)
  789.               nicks[user.name]=json.dumps(args)
  790.               room.message (user.name+" <f x12FFCC00='1'>now <f x12334433='1'>will be Called, <f x126666CC='1'> "+args+" :)" ,True)
  791.               saveNicks()
  792.             if args == "":
  793.               room.message("<f x12F00='1'>Type .nick <f x12FFCC00='1'>*Your Nick Here* <f x12334433='1'> .. :)",True)
  794.           except:
  795.             room.message("I'am Failed make a nick for, "+user.name+". :(")  
  796.  
  797.       elif cmd == "mynick":
  798.           try:
  799.             if user.name in nicks:
  800.               room.message("<f x12F00='1'>Your nick <f x1233FFFF='1'>right Now is: "+sntonick(user.name)+" .. :)", True)
  801.             else:
  802.               room.message("<f x12000='1'>Type .nick <f x12F00='1'>*Your Nick*",True)
  803.           except:
  804.             return
  805.        
  806.       elif cmd == "detik":
  807.           room.message(detik(),True)
  808.       elif cmd == "cpu":
  809.           room.message(get_cpu_load(),True)
  810.      
  811.         #This one cmd is tho make your bot say your mod level in the current room you're in
  812.       elif cmd == "mylvl":
  813.         room.message("Your mod level: %i" %(room.getLevel(user)))
  814.  
  815.         ##List Mods
  816.         #List of Mods and Owner name in the current room you're in
  817.       elif cmd == "mods":
  818.         room.message(", ".join(room.modnames + [room.ownername]))
  819.         #### Seen
  820.       elif cmd == "gis":
  821.             try:
  822.               import urllib
  823.               url = urllib.request.urlopen("http://ajax.googleapis.com/ajax/services/search/images?v=1.0&q="+urllib.parse.quote(args))
  824.               udict = json.loads(url.read().decode('utf-8'))["responseData"]["results"]
  825.               udict = random.choice(udict)
  826.               img = udict["unescapedUrl"]
  827.               room.message("<font color='#FF0000'><b>"+user.name.title()+"</b></font>,I Found your images:  "
  828.                            +img, True)
  829.             except:
  830.               room.message(args.capitalize()+' is not found Dude!')
  831.       elif cmd == "yt":
  832.           room.message(tube(args),True)
  833.       elif cmd == "invitegroup" or cmd == "ig":
  834.         if len (args) > 0:
  835.          self.pm.message(ch.RoomManager(args),"%s You have group invite! check this Chatango Group http://%s.chatango.com ." %(room.ownername[0],room.name))
  836.          room.message("Youre invite %s now is in Accest Group. :)" % args)
  837.         else:
  838.           room.message("gak mau ah nginvite dia")
  839.         ##DANCE!!!!
  840.         #Dance ? Of Course !!! ^_^
  841.       elif cmd == "dance":
  842.         for i, msg in enumerate(dancemoves):
  843.           self.setTimeout(i / 2, room.message, msg)
  844.                #### Pm
  845.       elif cmd == "pm" or cmd == "Pm" or cmd == "PM" or cmd == "Private Message":
  846.         data = args.split(" ", 1)
  847.         if len(data) > 1:
  848.           name , args = data[0], data[1]
  849.           self.pm.message(ch.User(name), "[Private.Message] By - "+user.name+" : "+args+" ")
  850.           room.message("Has been sent to "+name+"")
  851.             ##SN
  852.       if (cmd == "sn" or cmd == "sendnote")  and len(args) > 0:
  853.         try:
  854.           to, body = args.split(" ", 1)
  855.           sender = user.name
  856.           if to in spermitted or to in permitted or to in hpermitted or to in whitelist or to in friend:
  857.             sasaran[to] = json.dumps([body, sender])
  858.             room.message("sent")
  859.             notif.append(to)
  860.           else: room.message(to+" is not a whitelisted user")
  861.           #if user.name : room.message( kamu dapat sn dari .... silahkan gunakan cmd 'sn read ) kek gitu aja
  862.         except: room.message("Fail !!")          
  863.                 ##definied
  864.       elif (cmd == "define" or cmd == "df") and len(args) > 0:
  865.           try:
  866.             word, definition = args.split(" as ", 1)
  867.             word = word.lower()
  868.           except:
  869.             word = args.split()[0].lower()
  870.             definition = ""
  871.           if len(definition) > 0:
  872.             if word in dictionary:
  873.               room.message(user.name+", sorry but <b>%s</b> is already defined" % word, True)
  874.             else:
  875.               dictionary[word] = json.dumps([definition, user.name])
  876.               room.message("okay, I will remember "+word+" as "+ definition, True)
  877.           else:
  878.             if word in dictionary:
  879.               definition, name = json.loads(dictionary[word])
  880.               room.message(name+" defined "+word+" as "+definition , True)
  881.             else:
  882.               room.message("<b>%s</b> is not yet defined, do <b>'define %s as meaning</b> to define it^^" % (args, args), True)
  883.  
  884.       elif (cmd == "delete" or cmd == "dl" or cmd == "del"):
  885.         if room.getLevel(self.user) > 0:
  886.           if self.getAccess(user) >= 3 or room.getLevel(user) > 0:
  887.             name = args.split()[0].lower()
  888.             room.clearUser(ch.User(name))
  889.           else:room.message("You mere mortals can never do that!!")
  890.         else:
  891.           room.message("I can't del it :|")
  892.          
  893.       elif (cmd == "undefine" or cmd == "undef" or cmd == "udf") and len(args) > 0:
  894.           try:
  895.             word = args
  896.             if word in dictionary:
  897.               definition, name = json.loads(dictionary[word])
  898.               if name == user.name or self.getAccess(user) >= 3:
  899.                 del dictionary[word]
  900.                 room.message(word+" has been removed from Definition database")
  901.                 return
  902.               else:
  903.                 room.message("<b>%s</b> you can not remove this define only masters or the person who defined the word may remove definitions ^^" % user.name, True)
  904.                 return
  905.             else:
  906.               room.message("<b>%s</b> is not yet defined you can define it by typing <b>define %s: meaning</b>" % args, True)
  907.           except:
  908.             room.message("Fail")
  909.             return
  910.  
  911.       elif cmd == "seen":
  912.         try:
  913.           nama = args
  914.           if nama in hist:
  915.             waktu, ruang, body = json.loads(hist[nama])
  916.             room.message("Last message i seen by "+nama+" - "+waktu+" - "+ruang+" - "+body)
  917.           else:
  918.             room.message("I haven't seen " + nama + " all this days :|")
  919.         except:
  920.           room.message("fail")
  921.  
  922.       elif cmd == ("find") and len(args) > 0:
  923.         name = args.split()[0].lower()
  924.         try:
  925.           if name in room.usernames:
  926.                   if not ch.User(name).roomnames:  room.message("dont see them. <_<")
  927.                   else: room.message("%s is curently in <b>%s</b> >_>" % (args, ", ".join(ch.User(name).roomnames)), True)
  928.         except: return
  929.         target = args[1:]
  930.         if args[0] == "+":
  931.               if not ch.User(target).roomnames:  room.message("dont see them. <_<")
  932.               else: room.message("%s is curently in <b>%s</b> >_>" % (args[1:], ", ".join(ch.User(target).roomnames)), True)          
  933.         #### Invite
  934.       elif cmd == "invite" or cmd == "Invite":
  935.         if len (args) > 0:
  936.             self.pm.message(ch.RoomManager(args),"%s You have a group invite by ! http://%s.chatango.com ." )
  937.             room.message("Invite on progress %s in Access group. :)" % args)
  938.         else:
  939.             room.message("Sry have problem. :3")
  940.  
  941.       elif cmd == "wl" and len(args) > 0:
  942.         if args == "":
  943.           room.message("write 'wl <user-name-to-whitelist>")
  944.         elif args == "me": return
  945.         elif args in room.usernames:
  946.           if args in room.ownername or args in room.modnames or args in whitelist or args in spermitted or args in permitted or args in hpermitted:
  947.             room.message("Are you insane ?")
  948.           else:
  949.             friend.append(args)
  950.             room.message(args+" can use me now. ^^")
  951.         elif args not in room.usernames:
  952.           if args == "": return
  953.           room.message("I don't see "+args+" in this room :|")            
  954.                    
  955.       elif (cmd == "readnote" or cmd == "rn"):
  956.         try:
  957.           if user.name in sasaran:
  958.             body, sender = json.loads(sasaran[user.name])
  959.             room.message(user.name+", you got a note from "+sender+" ---> "+body)
  960.             del sasaran[user.name]
  961.             notif.remove(to)
  962.         except: return
  963.            
  964.         #### Profile
  965.       elif cmd == "prof" or cmd == "profile" or cmd == "Prof" or cmd == "Profile":
  966.         try:
  967.           args=args.lower()
  968.           stuff=str(urlreq.urlopen("http://"+args+".chatango.com").read().decode("utf-8"))
  969.           crap, age = stuff.split('<span class="profile_text"><strong>Age:</strong></span></td><td><span class="profile_text">', 1)
  970.           age, crap = age.split('<br /></span>', 1)
  971.           crap, gender = stuff.split('<span class="profile_text"><strong>Gender:</strong></span></td><td><span class="profile_text">', 1)
  972.           gender, crap = gender.split(' <br /></span>', 1)
  973.           if gender == 'M':
  974.               gender = 'Male'
  975.           elif gender == 'F':
  976.               gender = 'Female'
  977.           else:
  978.               gender = '?'
  979.           crap, location = stuff.split('<span class="profile_text"><strong>Location:</strong></span></td><td><span class="profile_text">', 1)
  980.           location, crap = location.split(' <br /></span>', 1)
  981.           crap,mini=stuff.split("<span class=\"profile_text\"><!-- google_ad_section_start -->",1)
  982.           mini,crap=mini.split("<!-- google_ad_section_end --></span>",1)
  983.           mini=mini.replace("<img","<!")
  984.           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>'
  985.           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
  986.           room.message(prodata,True)
  987.         except:
  988.           room.message(""+args+" doesn't exist o.o ")
  989.  
  990.       ##set rank      
  991.       elif cmd == "setrank" and len(args) > 0:
  992.         if self.getAccess(user) < 3 and not room.getLevel(user) > 0: return
  993.         try:
  994.           if len(args) >= 3:
  995.             name, rank = args.lower().split(" ", 1)
  996.             if rank == "4":
  997.               if self.getAccess(user) == 5:
  998.                 if name in permitted: room.message("%s is Already a Mod" % name, True)
  999.                 else:
  1000.                   permitted.append(name)
  1001.                   room.message("Good luck <b>%s</b> , you're now a %s !! ^^" % (name, "Councill Member"), True)
  1002.                   if name in hpermitted:
  1003.                     hpermitted.remove(name)
  1004.                   if name in whitelist:
  1005.                     whitelist.remove(name)
  1006.                   if name in friend:
  1007.                     friend.remove(name)
  1008.               else:
  1009.                 room.message("Fook off!!")
  1010.                 return
  1011.             if rank == "3":
  1012.               if self.getAccess(user) == 5:
  1013.                 if name in hpermitted: room.message("%s is already an Arch Knight! :|" % name, True)
  1014.                 else:
  1015.                   hpermitted.append(name)
  1016.                   room.message("%s is now an Arch Knight. ^^" % name, True)
  1017.                   if name in permitted:
  1018.                     permitted.remove(name)
  1019.                   if name in whitelist:
  1020.                     whitelist.remove(name)
  1021.                   if name in friend:
  1022.                     friend.remove(name)
  1023.               else:
  1024.                 room.message("Fook off!!")
  1025.                 return
  1026.             if rank == "2":
  1027.               if name in whitelist: room.message("%s is already a Player!! :|" % name, True)
  1028.               else:
  1029.                 if self.getAccess(user) < 5:
  1030.                   if name in permitted or name in spermitted or name in hpermitted or name in room.ownername or name in room.modnames :
  1031.                     room.message("Are you nuts ? :|")
  1032.                     return
  1033.                   else:
  1034.                     if name in room.usernames:
  1035.                       room.message("%s is now a Player. ^^" % name, True)
  1036.                       whitelist.append(name)
  1037.                       if name in friend:
  1038.                         friend.remove(name)
  1039.                 else:
  1040.                   whitelist.append(name)
  1041.                   room.message("%s is now a Player. ^^" % name, True)
  1042.                   if name in permitted:
  1043.                     permitted.remove(name)
  1044.                   if name in hpermitted:
  1045.                     hpermitted.remove(name)
  1046.                   if name in friend:
  1047.                     friend.remove(name)
  1048.             if rank == "1":
  1049.               if name in friend: room.message("%s is already a citizen" % name, True)
  1050.               else:
  1051.                   if self.getAccess(user) < 5:
  1052.                     if name in permitted or name in spermitted or name in hpermitted or name in room.ownername or name in room.modnames:
  1053.                       room.message("Are you nuts ?? :|")
  1054.                       return
  1055.                     else:
  1056.                       friend.append(name)
  1057.                       room.message("%s's rank is set to 1" % name, True)
  1058.                       if name in whitelist:
  1059.                         whitelist.remove(name)
  1060.                   else:
  1061.                     friend.append(name)
  1062.                     room.message("%s's rank is set to 1" % name, True)
  1063.                     if name in permitted:
  1064.                       permitted.remove(name)
  1065.                     if name in hpermitted:
  1066.                       hpermitted.remove(name)
  1067.                     if name in whitelist:
  1068.                       whitelist.remove(name)
  1069.             if not rank == "1" and not rank == "2" and not rank == "3" and not rank == "4":
  1070.               room.message("Please type a propper rank number ! >_>")
  1071.         except:
  1072.           room.message("You fooked up >_> ,, Do it right next time !")
  1073.          
  1074.         #word today
  1075.         if cmd =="wordtoday" or cmd=="wt":
  1076.             if user.name in owners:
  1077.               if user.name in wordtodaytime:
  1078.                 w = json.loads(wordtodaytime[user.name])
  1079.                 if time.time() < w:
  1080.                   w = int(w) - int(time.time())
  1081.                   minute = 60
  1082.                   hour = minute * 60
  1083.                   day = hour * 24
  1084.                   days =  int(w / day)
  1085.                   hours = int((w % day) / hour)
  1086.                   minutes = int((w % hour) / minute)
  1087.                   seconds = int(w % minute)
  1088.                   string = ""
  1089.                   if days > 0:
  1090.                     string += str(days) + " " + (days == 1 and "day" or "days" ) + ", "
  1091.                   if len(string) > 0 or hours > 0:
  1092.                     string += str(hours) + " " + (hours == 1 and "hour" or "hours" ) + ", "
  1093.                   if len(string) > 0 or minutes > 0:
  1094.                     string += str(minutes) + " " + (minutes == 1 and "minute" or "minutes" ) + ", "
  1095.                   string += str(seconds) + " " + (seconds == 1 and "second" or "seconds" )
  1096.                   room.message("You can use wordtoday after <font color='#9999FF'>%s</font>  (~^o^)~ "% string,True)
  1097.                   return
  1098.               if urank(user.name) >= 1:
  1099.                 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"]))
  1100.                 room.message("Dear "+sntonick(user.name)+" Your word today is : <b><font color='#FF9966'>"+str(x)+"</font></b>",True)
  1101.                 wordtodaytime[user.name] = json.dumps(time.time()+1200)
  1102.            ##fax    
  1103.  
  1104.    
  1105.             ##lock
  1106.         if cmd == "lock":
  1107.           if self.getAccess(user) < 3 and not room.getLevel(user) >= 1:
  1108.             room.message("wat ? :|")
  1109.             return
  1110.           if args in self.roomnames:
  1111.             if self.getAccess(user) > 3:
  1112.               locks.append(args)
  1113.               room.message("locked <b>%s</b>" % args, True)
  1114.             else: room.message("Only rank 4+ gets to lock rooms remotely")
  1115.           if args == "":
  1116.             locks.append(room.name)
  1117.             room.message("locked <b>%s</b>" % room.name, True)
  1118.           if args not in self.roomnames:
  1119.             if args == "": return
  1120.             room.message("I haven't joined such room :|")
  1121.             return
  1122.  
  1123.                
  1124.           ## Save Stuffs
  1125.         if cmd == "save":
  1126.           if self.getAccess(user) >= 4:
  1127.             print("[SAVE] Saving Notes..")
  1128.             f = open("notes.txt", "w")
  1129.             for to in sasaran:
  1130.               body, sender = json.loads(sasaran[to])
  1131.               f.write(json.dumps([to, body, sender])+"\n")
  1132.             f.close()
  1133.             f = open("notif.txt", "w")
  1134.             f.write("\n".join(notif))
  1135.             f.close()
  1136.             print("[SAVE] Saving PMLOG..")
  1137.             f = open("pmlog.txt", "w")
  1138.             f.write("\n".join(pmlog))
  1139.             f.close()
  1140.             print("[SAVE] Saving ROOMLOG..")
  1141.             f = open("roomlog.txt", "w")
  1142.             f.write("\n".join(roomlog))
  1143.             f.close()
  1144.             print("[SAV] Saving Definitions..")
  1145.             f = open("definitions.txt", "w")
  1146.             for word in dictionary:
  1147.               definition, name = json.loads(dictionary[word])
  1148.               f.write(json.dumps([word, definition, name])+"\n")
  1149.             f.close()
  1150.             print("[SAV] Saving SuperMasters..")
  1151.             f = open("spermitted.txt", "w")
  1152.             f.write("\n".join(spermitted))
  1153.             f.close()
  1154.             print("[SAV] Saving Mods..")
  1155.             f = open("permitted.txt", "w")
  1156.             f.write("\n".join(permitted))
  1157.             f.close()
  1158.             print("[SAV] Saving Arch Knights..")
  1159.             f = open("hpermitted.txt", "w")
  1160.             f.write("\n".join(hpermitted))
  1161.             f.close()
  1162.             print("[SAV] Saving Whitelist..")
  1163.             f = open("whitelist.txt", "w")
  1164.             f.write("\n".join(whitelist))
  1165.             f.close()
  1166.             print("[SAV] Saving Rooms..")
  1167.             f = open("rooms.txt", "w")
  1168.             f.write("\n".join(self.roomnames))
  1169.             f.close()
  1170.             print("[SAV] Saving Friends..")
  1171.             f = open("friend.txt", "w")
  1172.             f.write("\n".join(friend))
  1173.             f.close()
  1174.             print("[SAVE] SAVING RPG...")
  1175.             f = open("rpg.txt", "w")
  1176.             for user in rpg:
  1177.               weapon,hp,lvl,exp = json.loads(rpg[user])
  1178.               f.write(json.dumps([user, weapon, hp , lvl , exp])+"\n")
  1179.             f.close()
  1180.             f = open("tmonlife.txt", "w")
  1181.             for monster in tmonlife:
  1182.               monlife = json.loads(tmonlife[monster])
  1183.               f.write(json.dumps([monster, monlife])+"\n")
  1184.             f.close()
  1185.             print("[SAVE] Saving History...")
  1186.             f = open("roomhist.txt", "w")
  1187.             for nama in hist:
  1188.               waktu, ruang, body = json.loads(hist[nama])
  1189.               f.write(json.dumps([nama, waktu, ruang, body])+"\n")
  1190.             f.close()
  1191.             print("[SAVE] Saving Locks...")
  1192.             f = open("locks.txt", "w")
  1193.             f.write("\n".join(locks))
  1194.             f.close()
  1195.             room.message("I've saved All ")
  1196.             #f = open("lovelog.txt", "w")
  1197.             #for user1 in lomet:
  1198.             #  meter = json.loads(lomet[user1])
  1199.             #  f.write(json.dumps([user1, meter]+"\n"))
  1200.             #f.close()
  1201.           else:
  1202.             room.message("wish you want =/")
  1203.  
  1204.    
  1205.         if cmd =="nas":
  1206.           sex = args  
  1207.           data = urlreq.urlopen("http://nontonanime.web.id/?s="+sex+"&post_type=anime")
  1208.           udict = data.read().decode("utf-8")
  1209.           data = re.findall('<h2><a href="(.*?)">(.*?)</a>', udict)
  1210.           newset = list()
  1211.           num = 1
  1212.           for link, title in data:
  1213.              newset.append(("(%s) <b>%s</b> - %s") % (num, title, link))
  1214.              num = num+1
  1215.           room.message("This is the contain Search in NontonAnime.web.id: <br/>"+"<br/>".join(newset[0:10]),True)
  1216.   ## Command List
  1217.         elif cmd == "cmds":
  1218.           if self.getAccess(user) > 1 or room.getLevel(user) > 0:
  1219.             room.message("some cmds for rank 2+, with ['] or [:] as prefix [wl, credits, uwl, say, cmds, nick, mynick, seenick, councills, sut, uptime, rank, rankhelp, mods, ismod, level, rooms, find username/find +username, seen, multichat,, lovemeter/lm, sendnote/sn, readnote/rn, jones, sex/rape, kill/keel, fap, tea, hug, kiss, profile, yt/ytb, gis, ud, define/df, undefine/udf]")
  1220.           if self.getAccess(user) == 1 and not room.getLevel(user) > 0:
  1221.             room.message("Your rank is 1[Citizen] - Here are cmds for Citizens (help, say, cmds, uwl, nick, mynick, seenick, register/regist/reg/, credits)")
  1222.         elif (cmd == "register" or cmd == "reg" or cmd == "regist"):
  1223.           if self.getAccess(user) == 1 and not user.name in room.modnames and not user.name in room.ownername:
  1224.             whitelist.append(user.name)
  1225.             friend.remove(user.name)
  1226.             room.message(user.name+" has registered as a Player. ^^")        
  1227.            
  1228.         ##Check if Mod
  1229.         #not really important
  1230.       elif cmd == "ismod":
  1231.         user = ch.User(args)
  1232.         if room.getLevel(user) > 0:
  1233.           room.message("yesh")
  1234.         else:
  1235.           room.message("nope")
  1236.    except Exception as e:
  1237.       try:
  1238.         et, ev, tb = sys.exc_info()
  1239.         lineno = tb.tb_lineno
  1240.         fn = tb.tb_frame.f_code.co_filename
  1241.         room.message("[Expectation Failed] %s Line %i - %s"% (fn, lineno, str(e)))
  1242.         return
  1243.       except:
  1244.         room.message("Undescribeable error detected !!")
  1245.         return
  1246.  
  1247.  
  1248.   ##Other Crap here, Dont worry about it
  1249.  
  1250.   def onFloodWarning(self, room):
  1251.     room.reconnect()
  1252.  
  1253.   def onJoin(self, room, user):
  1254.    print(user.name + " joined the chat!")
  1255.    if user.name =="sekkki":
  1256.      room.message("Goshujin- chama is Online Now")
  1257.  
  1258.   def onLeave(self, room, user):
  1259.    print(user.name + " left the chat!")
  1260.    if user.name =="sekkki":
  1261.      room.message("Goshujin-chama leave this chat")
  1262.    
  1263.   def onUserCountChange(self, room):
  1264.     print("users: " + str(room.usercount))
  1265.  
  1266.   def onMessageDelete(self, room, user, msg):
  1267.     print("MESSAGE DELETED: " + user.name + ": " + msg.body)
  1268.    
  1269.                
  1270. if __name__ == "__main__": TestBot.easy_start(rooms,"","")
  1271.  
  1272.     #The End!!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement