Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python26
- # -*- coding: utf-8 -*-
- '''
- Created on 19.02.2011
- @author: Flyer
- '''
- from socket import *
- import hashlib
- import time, datetime
- import urllib
- import os
- from binascii import hexlify, unhexlify
- import sys,traceback
- from struct import pack, unpack
- import threading
- import random
- #import MySQLdb
- import string
- import ftplib
- from models import Lang
- print 'Transformice Exlfer bot'
- data = ('http://kikoo.formice.com/data.txt','exlfer','data.txt')
- user = ('Imrubot','','801')
- ref_file = open('usr/.ref_control')
- ref_control = ref_file.read()
- ref_file.close()
- news_file = open('usr/.news_control')
- news_control = news_file.read()
- news_file.close()
- helper_file = open('usr/.helper_control')
- helper_control = helper_file.read()
- helper_file.close()
- full_file = open('usr/.full_control')
- full_control = full_file.read()
- full_file.close()
- serveur = ('176.31.234.223', 44440)
- version = ""
- key = ""
- commty = ('00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '0a')
- emott = ('00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '0a')
- commk = ('en', 'fr', 'br', 'ru', 'es', 'cn', 'vk', 'tr', 'nl', 'pl', 'hu', 'ен', 'фр', 'ру', 'бр', 'ес', 'вк', 'тр', 'сн', 'нл', 'пл', 'ху')
- comms = ('модлист','хелперы','рефб','рефв','hlp','hr','pr','modlist','helpers','refv','refb','add','repl','view', 'help', 'помощь', 'news', 'update', 'restart', 'version', 'обновление', 'что нового', 'обнова', 'новости', 'event','ивент', 'эвент', 'event', 'праздник', 'refhelp', 'helpershelp', 'fullhelp', 'badmap', 'about', 'клубника', 'клубничка', 'клубники', 'клубнички', 'Exlfer', 'exlfer', 'Екслфер', 'екслфер', 'Флер', 'флер', 'Dgi', 'dgi', 'Дги', 'дги', 'Sniperik', 'sniperik', 'Снайперик', 'снайперик', 'Снип', 'снип', 'Snip', 'snip', 'Сниперик', 'сниперик', 'Снайп', 'снайп')
- newupdate = ('news', 'update', 'restart', 'version', 'обновление', 'что нового', 'обнова', 'новости')
- eventss = ('event', 'ивент', 'эвент', 'инвент', 'праздник')
- fathers = ('Exlfer', 'exlfer', 'Екслфер', 'екслфер', 'Флер', 'флер', 'Dgi', 'dgi', 'Дги', 'дги', 'Sniperik', 'sniperik', 'Снайперик', 'снайперик', 'Снип', 'снип', 'Snip', 'snip', 'Сниперик', 'сниперик', 'Снайп', 'снайп')
- fleur = 'bug'#тупая переменная для исправления ебаного бага -_-
- #############################################################################
- class ParseKey():
- def __init__(self, link):
- global version, key
- url = link
- filename = 'cache/data.txt'
- urllib.urlretrieve(url, filename=filename)
- safe = open(filename, 'r')
- kikoo = safe.readline()
- safe.close()
- self.kikoo = kikoo.split(' ')
- version = self.kikoo[1]
- key = self.kikoo[2]
- ############################################################################
- class CCC:
- firstpack = '\x1C\x01'
- auth = '\x01\x01'
- chatmsg = '\x06\x06'
- emotions = '\x08\x01'
- LogIn = '\x26\x04'
- entertribehouse = '\x16\x01'
- ############################################################################
- class prefixgen():
- def __init__(self,data):
- self.MDT = []
- self.data = data
- message = self.data
- LMDT = list(message[4])
- for c in map(int, LMDT):
- if c == 0: self.MDT.append(chr(10))
- else: self.MDT.append(chr(c))
- self.CMDTEC = int(message[5])
- def __call__(self):
- loc3 = self.CMDTEC % 9000 + 1000
- fingerprint = b""
- fingerprint += bytes(self.MDT[int(loc3 / 1000)])
- fingerprint += bytes(self.MDT[int(loc3 / 100) % 10])
- fingerprint += bytes(self.MDT[int(loc3 / 10) % 10])
- fingerprint += bytes(self.MDT[loc3 % 10])
- self.CMDTEC+=1
- return fingerprint
- ################################PREFIX BULLE5##############################
- class prefixbulle():
- def __init__(self,SMDT,SCMDTEC):
- self.MDT = []
- self.data = data
- dMDT = list(SMDT)
- for c in map(int, dMDT):
- if c == 0: self.MDT.append(chr(10))
- else: self.MDT.append(chr(c))
- self.CMDTEC = int(SCMDTEC)
- def __call__(self):
- loc3 = self.CMDTEC % 9000 + 1000
- fingerprint = b""
- fingerprint += bytes(self.MDT[int(loc3 / 1000)])
- fingerprint += bytes(self.MDT[int(loc3 / 100) % 10])
- fingerprint += bytes(self.MDT[int(loc3 / 10) % 10])
- fingerprint += bytes(self.MDT[loc3 % 10])
- self.CMDTEC+=1
- return fingerprint
- #############################RECV C and CC######################
- def recv_code(data):
- code = hexlify(data[4:6])
- if code == '0101':
- code = hexlify(data[8:10])
- return code
- #################################################################
- def recv_name(data):
- if '\x2E' in data:
- name = data.split('\x2E')
- if name[1] == '0101':
- name = hexlify(data[8:10])
- return name[1]
- ############################ХУЯ ПОНЯТЬ ЧТО###########################
- def recv_first(data):
- name = data.split['\x01']
- name = name[3]
- if name[0] == '0101':
- name = hexlify(data[8:10])
- return name
- #####################################################################
- def get_packet_data(data):
- size = unpack('!l', data[1:4])[0]
- if size != len(data):
- print('Needed size %d != %d' % (size, len(data)))
- return None
- ##############################SURVIVAL###############################
- def survival_main():
- while True:
- movement = GenerateBulle() + '\x04\x04\x00\x00\x00\x00\x00\x00\x01\x90\x04\x4D\x00\x00\x00\x21\x00\x00\x00'
- b.send( pack('!l', len(movement)+4) + movement )
- movement = GenerateBulle() + '\x04\x05' + '\x00\x00\x00\x00'
- b.send( pack('!l', len(movement)+4) + movement )
- time.sleep(160)
- def normsurv():
- while True:
- survival = GeneratePrefix()+'\x01\x01\x00\x02\x1A\x02'
- m.send('\x00\x00\x00\x0E' + survival )
- surv = GenerateBulle()+'\x01\x01\x00\x02\x1A\x02'
- b.send('\x00\x00\x00\x0E' + surv)
- time.sleep(15)
- #############################EMOTIONS############################
- #def emotions():
- # last_timee = time.time()
- # while True:
- # if time.time() - last_timee > 160:
- # #time.sleep(0.1)
- # #movement = GenerateBulle() + '\x04\x05' + '\x00\x00\x00\x00'
- # movement = GenerateBulle() + '\x04\x04\x00\x00\x00\x00\x00\x00\x01\x90\x04\x4D\x00\x00\x00\x21\x00\x00\x00'
- # b.send( pack('!l', len(movement)+4) + movement )
- # movement = GenerateBulle() + '\x04\x05' + '\x00\x00\x00\x00'
- # b.send( pack('!l', len(movement)+4) + movement )
- # last_timee = time.time()
- #
- ###########################REPORTS############################################## ОНИ ОФФ ПОКА ЧТО СОРРИ
- #def reports_helpers_db(nick, onnick, linkq, reasonq):
- # try:
- # db = MySQLdb.connect(host="sniperik.mysql.ukraine.com.ua", user="sniperik_fleur", passwd="passwordfordrots", db="sniperik_db", charset='utf8')
- # cursor = db.cursor()
- # sql = """INSERT INTO reports_helpers(nickname,onnick, link, reason) VALUES ('%(nickname)s','%(onnick)s', '%(link)s', '%(reason)s') """%{"nickname":nick,"onnick":onnick ,"link":linkq, "reason":reasonq}
- # cursor.execute(sql)
- # db.commit()
- # db.close()
- # except Exception as e:
- # print traceback.format_exc(10)
- #def reports_users_db(nick, onnick, linkq, reasonq):
- # try:
- # db = MySQLdb.connect(host="sniperik.mysql.ukraine.com.ua", user="sniperik_fleur", passwd="passwordfordrots", db="sniperik_db", charset='utf8')
- # cursor = db.cursor()
- # sql = """INSERT INTO reports_users(nickname,onnick, link, reason) VALUES ('%(nickname)s','%(onnick)s', '%(link)s', '%(reason)s') """%{"nickname":nick,"onnick":onnick ,"link":linkq, "reason":reasonq}
- # cursor.execute(sql)
- # db.commit()
- # db.close()
- # except Exception as e:
- # print traceback.format_exc(10)
- #def reports_maps_db(nick, linkq, reasonq):
- # try:
- # db = MySQLdb.connect(host="sniperik.mysql.ukraine.com.ua", user="sniperik_fleur", passwd="passwordfordrots", db="sniperik_db", charset='utf8')
- # cursor = db.cursor()
- # sql = """INSERT INTO reports_maps(nickname, link, reason) VALUES ('%(nickname)s', '%(link)s', '%(reason)s') """%{"nickname":nick, "link":linkq, "reason":reasonq}
- # cursor.execute(sql)
- # db.commit()
- # db.close()
- # except Exception as e:
- # print traceback.format_exc(10)
- ###########################PMSEND#############################
- def pm_send(innick, text):
- recvmsg = GeneratePrefix() + '\x06\x07' + pack('!h', len(innick)) + innick + pack('!h', len(text)) + text
- m.send( pack('!l', len(recvmsg)+4) + recvmsg )
- #####################################API#########################
- def API():
- last_timer = time.time()
- while True:
- if time.time() - last_timer > 10:
- recvmsg = GeneratePrefix() + '\x01\x01' + pack('!h', len('\x08\x0D')) + '\x08\x0D'
- m.send( pack('!l', len(recvmsg)+4) + recvmsg )
- helpersonline = m.recv(4096)
- name = ""
- str = Lang.Lang.mods_str_ru_on
- safe = open('date/.modo', 'r')
- for j in safe.readlines():
- for i in helpersonline.split('\x01'):
- if '\x02' in i:
- name = i.split('\x02')[0]
- if j == name or j[:len(j)-1] == name:
- str +=name + ', '
- safe.close()
- if str == Lang.Lang.mods_str_ru_on: str = Lang.Lang.mods_str_ru_off + ':('
- recvmessage = str[:-2]
- print unicode(recvmessage.decode('utf-8'))
- db = MySQLdb.connect(host="sniperik.mysql.ukraine.com.ua", user="sniperik_fleur", passwd="passwordfordrots", db="sniperik_db", charset='utf8')
- cursor = db.cursor()
- sql = ("""
- UPDATE web_api
- SET staff=%s
- WHERE type=%s
- """, (recvmessage, 'M'))
- #sql = """UPDATE web_api SET staff = recvmessage WHERE type = 'M'""" % ('M')
- cursor.execute(sql)
- db.commit()
- db.close()
- last_timer = time.time()
- #########################RESTART############################
- def restart_program():
- python = sys.executable
- os.execl(python, python, * sys.argv)
- def community_text():
- if communit == '00': comm = 'en'
- elif communit == '01': comm = 'fr'
- elif communit == '02': comm = 'ru'
- elif communit == '03': comm = 'br'
- elif communit == '04': comm = 'es'
- elif communit == '05': comm = 'cn'
- elif communit == '06': comm = 'tr'
- elif communit == '07': comm = 'vk'
- elif communit == '08': comm = 'pl'
- elif communit == '09': comm = 'hu'
- elif communit == '0A': comm = 'nl'
- ###################################################
- def dec2hex(n):
- return "%X" % n
- def logfile():
- last_timerx = time.time()
- while True:
- if time.time() - last_timerx > 180:
- s = ftplib.FTP('sniperik.ftp.ukraine.com.ua','sniperik_fleir','')
- f = open('date/log','rb')
- s.storbinary('STOR www/webinterface/data/exlbot_log', f)
- f.close()
- s.quit()
- last_timerx = time.time()
- ParseKey(data[0])
- print 'Transformice version: '+version
- print 'Client key: '+key
- print 'Generating first packet data...'
- key = key.replace('\n','')
- versia = str(dec2hex(int(version)))
- firstpacket = '\x00\x00\x00\x00'+CCC.firstpack + '\x00' + versia.decode('hex') + pack('!h', len(key))+key+'\x17\xED'
- firstpacket = pack('!l', len(firstpacket)+4) + firstpacket
- print bytes([firstpacket])
- print 'done'
- print 'Connecting to: '+serveur[0]+':'+str(serveur[1])
- m = socket(AF_INET, SOCK_STREAM)
- m.connect((serveur[0], serveur[1]))
- print 'done'
- print 'sending 1st packet...'
- m.send(firstpacket)
- print 'done'
- kikoopwet = m.recv(4096)
- print 'Mice online, MDT and CMDTEC from main server'
- bullerecv = m.recv(4096)
- print 'done'
- print bytes([bullerecv.split('\x01')])
- firstrecv = bullerecv.split('\x01')
- print 'Mice online: ' + firstrecv[3]
- print 'MDT: ' + firstrecv[4]
- print 'CMDTEC: ' + firstrecv[5]
- GeneratePrefix = prefixgen(firstrecv)
- print 'LogIn ^^'
- h = hashlib.sha256(user[1]).hexdigest()
- comm = GeneratePrefix()+'\x08\x02'+'\x02'
- m.send(pack('!l', len(comm)+4)+comm)
- print 'Community changed!'
- print 'Send login&passw&room'
- defsize ='\x1A\x04\x01' + user[0] + '\x01' + h + '\x01' + user[2]
- authtrue = GeneratePrefix()+ '\x01\x01'+pack('!h', len(defsize))+'\x1A\x04\x01' + user[0] + '\x01' + h + '\x01' + user[2]
- porra = pack('!l', len(authtrue)+4) + authtrue
- m.send(porra)
- data = m.recv(4096)
- data = m.recv(4096)
- data = m.recv(4096)
- data = m.recv(4096)
- print bytes(data.split('\x00'))
- kes = data.split('\x00')
- bulleipk = data[len(data)-26:]
- bulleip = bulleipk[:-1]
- bulleip = bulleip.split('\x00')[0][1:]
- print '-------------------------------------'
- print 'ip:' + bytes([bulleip])
- key = kes[len(kes)-6]
- #key = key.split('\x01')[1]
- key = key[1:]
- print len(key)
- print hexlify(key)
- print 'Bulle5 key: ' + bytes([key])
- ##############################opening connection to bulle server
- print 'Connecting to ' + bulleip + ':' + str(serveur[1])
- b = socket(AF_INET, SOCK_STREAM)
- b.connect((bulleip, serveur[1]))
- print 'done'
- ########################sending key
- bulkey = '\x00\x00\x00\x00'+key
- b.send(pack('!l', len(bulkey)+4)+bulkey)
- print bytes([pack('!l', len(bulkey)+4)+bulkey])
- dataof = b.recv(4096)
- print bytes([dataof])
- resul = b.recv(4096)
- resul = b.recv(4096)
- #################################CMDTEC and MDT######################
- unpers = dataof.split('\x00')[4]
- print 'MDT & CMDTEC from bulle5 server'
- print 'MDT: ' + unpers[1:11]
- huyznaetchto = unpack('!H', unpers[11:len(dataof)])
- pizdec = str(huyznaetchto)
- print 'CMDTEC: ' + pizdec[1:5]
- GenerateBulle = prefixbulle(unpers[1:11],pizdec[1:5])
- tmm = 0
- #############################################################
- def bulle_server():
- while True:
- time.sleep(0.1)
- bpkg = b.recv(4096)
- bcode = recv_code(bpkg)
- if bcode == '0808':
- emotion = emott[random.randint(0,9)]
- danc = GenerateBulle() + '\x08\x01' + emotion.decode('hex')
- b.send( pack('!l', len(danc)+4) + danc )
- #############################################################
- ############################START Threads####################
- tz=threading.Thread(target=survival_main)
- tz.start()
- tzzz=threading.Thread(target=normsurv)
- tzzz.start()
- #emotz=threading.Thread(target=emotions)
- #emotz.start()
- bulle_serv=threading.Thread(target=bulle_server)
- bulle_serv.start()
- #log_file_th=threading.Thread(target=logfile)
- #log_file_th.start()
- danc = GenerateBulle() + '\x08\x01\x08'
- b.send( pack('!l', len(danc)+4) + danc )
- ############################START WHILE####################
- while True:
- time.sleep(0.1)
- mpkg = m.recv(4096)
- mcode = recv_code(mpkg)
- if mcode == '0607':
- try:
- datas = mpkg.split('\x00')
- innick = datas[4][1:len(datas[4])-1] #nickname
- communit = datas[4][len(datas[4])-1:len(datas[4])]
- messg = datas[5][1:len(datas[5])]
- if communit.encode('hex') not in commty:
- communit = '00'
- innick = datas[4][1:len(datas[4])]
- messg = datas[6][1:len(datas[6])]
- else: communit = communit.encode('hex')
- except Exception as e:
- huihuihui = 'fgsfdh'
- if mpkg[6:7] == '\x01':
- if communit == '00': comm = 'en'
- elif communit == '01': comm = 'fr'
- elif communit == '02': comm = 'ru'
- elif communit == '03': comm = 'br'
- elif communit == '04': comm = 'es'
- elif communit == '05': comm = 'cn'
- elif communit == '06': comm = 'tr'
- elif communit == '07': comm = 'vk'
- elif communit == '08': comm = 'pl'
- elif communit == '09': comm = 'hu'
- elif communit == '0A': comm = 'nl'
- print '[' + comm + ']' + '[' + innick + '] ' + messg.decode('cp866','replace')
- # print '[' + comm + ']' + '[' + innick + '] ' + unicode(messg.decode('utf-8'))
- f = open('date/log', 'a')
- f.write('[' + comm + ']' + '[' + innick + '] ' + messg + "\n")
- f.close()
- ###########################################################################################################
- #addtolist and etc
- if fleur == 'bug':
- nike = messg.split(' ')
- #########################################################ADDTOLIST#########################################
- if nike[0] == 'add':
- if innick in ref_control:
- if nike[1] == 'refb':
- f = open('date/.bkref', 'a')
- f.write(nike[2] + "\n")
- f.close()
- mapsof = '\x06\x1A\x01friend ' + nike[2]
- dans = GeneratePrefix() + '\x01\x01' + pack('!h', len(mapsof)) + mapsof
- m.send( pack('!l', len(dans)+4) + dans )
- recvmessage = Lang.Lang.addedinlist_completed
- pm_send(innick, recvmessage)
- elif nike[1] == 'refv':
- f = open('date/.vanillaref', 'a')
- f.write(nike[2] + "\n")
- f.close()
- mapsof = '\x06\x1A\x01friend ' + nike[2]
- dans = GeneratePrefix() + '\x01\x01' + pack('!h', len(mapsof)) + mapsof
- m.send( pack('!l', len(dans)+4) + dans )
- recvmessage = Lang.Lang.addedinlist_completed
- pm_send(innick, recvmessage)
- if innick in helper_control:
- if nike[1] == 'helpers':
- f = open('date/.helpers', 'a')
- f.write(nike[2] + "\n")
- f.close()
- mapsof = '\x06\x1A\x01friend ' + nike[2]
- dans = GeneratePrefix() + '\x01\x01' + pack('!h', len(mapsof)) + mapsof
- m.send( pack('!l', len(dans)+4) + dans )
- recvmessage = Lang.Lang.addedinlist_completed
- pm_send(innick, recvmessage)
- if innick in full_control:
- if nike[1] == 'modo':
- f = open('date/.modo_'+nike[2], 'a')
- f.write(nike[3] + "\n")
- f.close()
- mapsof = '\x06\x1A\x01friend ' + nike[3]
- dans = GeneratePrefix() + '\x01\x01' + pack('!h', len(mapsof)) + mapsof
- m.send( pack('!l', len(dans)+4) + dans )
- recvmessage = Lang.Lang.addedinlist_completed
- pm_send(innick, recvmessage)
- elif nike[1] == 'hlplider':
- hlpt = open('usr/.helper_control', 'a')
- hlpt.write(nike[2] + "\n")
- hlpt.close()
- recvmessage = Lang.Lang.addedinlist_completed
- pm_send(innick, recvmessage)
- elif nike[1] == 'reflider':
- reft = open('usr/.ref_control', 'a')
- reft.write(nike[2] + "\n")
- reft.close()
- recvmessage = Lang.Lang.addedinlist_completed
- pm_send(innick, recvmessage)
- elif nike[1] == 'admn':
- admnf = open('usr/.full_control', 'a')
- admnf.write(nike[2] + "\n")
- admnf.close()
- recvmessage = Lang.Lang.addedinlist_completed
- pm_send(innick, recvmessage)
- elif nike[1] == 'newsmakers':
- newsf = open('usr/.news_control', 'a')
- newsf.write(nike[2] + "\n")
- newsf.close()
- recvmessage = Lang.Lang.addedinlist_completed
- pm_send(innick, recvmessage)
- if innick in news_control:
- if nike[1] == 'update':
- filename = 'update/.news'
- urllib.urlretrieve('http://lefleur.pro/webinterface/update.txt', filename=filename)
- recvmessage = Lang.Lang.update_completed
- pm_send(innick, recvmessage)
- elif nike[1] == 'event':
- filename = 'update/.event'
- urllib.urlretrieve('http://lefleur.pro/webinterface/event.txt', filename=filename)
- recvmessage = Lang.Lang.update_completed
- pm_send(innick, recvmessage)
- #######################################REPLACE#####################################
- elif nike[0] == 'repl':
- if innick in ref_control:
- news_file = open('date/.vanillaref')
- vanillaref = news_file.read()
- news_file.close()
- news_file = open('date/.bkref')
- bref = news_file.read()
- news_file.close()
- if nike[1] in bref or vanillaref:
- mapsof = '\x08\x0E\x01' + nike[1]
- dans = GeneratePrefix() + '\x01\x01' + pack('!h', len(mapsof)) + mapsof
- m.send( pack('!l', len(dans)+4) + dans )
- recvmessage = Lang.Lang.removeinlist_completed
- pm_send(innick, recvmessage)
- if innick in helper_control:
- news_file = open('date/.helpers')
- helperslist = news_file.read()
- news_file.close()
- if nike[1] in helperslist:
- mapsof = '\x08\x0E\x01' + nike[1]
- dans = GeneratePrefix() + '\x01\x01' + pack('!h', len(mapsof)) + mapsof
- m.send( pack('!l', len(dans)+4) + dans )
- recvmessage = Lang.Lang.removeinlist_completed
- pm_send(innick, recvmessage)
- if innick in full_control:
- mapsof = '\x08\x0E\x01' + nike[1]
- dans = GeneratePrefix() + '\x01\x01' + pack('!h', len(mapsof)) + mapsof
- m.send( pack('!l', len(dans)+4) + dans )
- recvmessage = Lang.Lang.removeinlist_completed
- pm_send(innick, recvmessage)
- #########################################################REPORT#########################################
- elif nike[0] == 'hr':
- if len(nike)>=3:
- # reports_helpers_db(innick,nike[1], nike[2],messg[len(nike[1])+len(nike[2])+len(nike[0])+2:])
- # recvmessage = Lang.Lang.warn_good
- recvmessage = Lang.Lang.offlinesry
- pm_send(innick, recvmessage)
- else:
- recvmessage = Lang.Lang.addedinlist_error_access
- pm_send(innick, recvmessage)
- elif nike[0] == 'pr':
- if len(nike)>=3:
- # reports_users_db(innick,nike[1], nike[2], messg[len(nike[1])+len(nike[2])+len(nike[0])+2:])
- # recvmessage = Lang.Lang.warn_good
- recvmessage = Lang.Lang.offlinesry
- pm_send(innick, recvmessage)
- else:
- recvmessage = Lang.Lang.addedinlist_error_access
- pm_send(innick, recvmessage)
- elif nike[0] == 'badmap':
- if len(nike)>=3:
- community_text()
- # reports_maps_db(innick,nike[1],messg[len(nike[1])+7:])
- # recvmessage = Lang.Lang.warn_good
- recvmessage = Lang.Lang.offlinesry
- pm_send(innick, recvmessage)
- else:
- recvmessage = Lang.Lang.addedinlist_error_access
- pm_send(innick, recvmessage)
- ######################################NEW MODO##############################################
- elif nike[0] == 'modlist' or nike[0] == 'модлист':
- if len(messg) == 7 or len(messg) == 14:
- if communit == '00': comm = 'en'
- elif communit == '01': comm = 'fr'
- elif communit == '02': comm = 'ru'
- elif communit == '03': comm = 'br'
- elif communit == '04': comm = 'es'
- elif communit == '05': comm = 'cn'
- elif communit == '06': comm = 'tr'
- elif communit == '07': comm = 'vk'
- elif communit == '08': comm = 'pl'
- elif communit == '09': comm = 'hu'
- elif communit == '0A': comm = 'nl'
- recvmsg = GeneratePrefix() + '\x01\x01' + pack('!h', len('\x08\x0D')) + '\x08\x0D'
- m.send( pack('!l', len(recvmsg)+4) + recvmsg )
- helpersonline = m.recv(4096)
- name = ""
- str = Lang.Lang.mods_str_ru_on
- strd = []
- safe = open('date/.modo_'+comm , 'r')
- for j in safe.readlines():
- for i in helpersonline.split('\x01'):
- if '\x02' in i:
- name = i.split('\x02')[0]
- if j == name or j[:len(j)-1] == name:
- strd.append(name)
- safe.close()
- if len(strd) == 0: str = Lang.Lang.mods_str_ru_off
- else: strd = sorted(strd)
- strd = ', '.join(strd)
- recvmessage = str + strd
- pm_send(innick, recvmessage)
- else:
- listcomm = nike[1]
- if len(nike)>=2:
- if listcomm in commk:
- if listcomm == 'ен': listcomm = 'en'
- elif listcomm == 'фр': listcomm = 'fr'
- elif listcomm == 'ру': listcomm = 'ru'
- elif listcomm == 'бр': listcomm = 'br'
- elif listcomm == 'ес': listcomm = 'es'
- elif listcomm == 'сн': listcomm = 'cn'
- elif listcomm == 'тр': listcomm = 'tr'
- elif listcomm == 'вк': listcomm = 'vk'
- elif listcomm == 'нл': listcomm = 'nl'
- elif listcomm == 'пл': listcomm = 'pl'
- elif listcomm == 'ху': listcomm = 'hu'
- recvmsg = GeneratePrefix() + '\x01\x01' + pack('!h', len('\x08\x0D')) + '\x08\x0D'
- m.send( pack('!l', len(recvmsg)+4) + recvmsg )
- helpersonline = m.recv(4096)
- name = ""
- str = Lang.Lang.mods_str_ru_on
- strd = []
- safe = open('date/.modo_'+listcomm , 'r')
- for j in safe.readlines():
- for i in helpersonline.split('\x01'):
- if '\x02' in i:
- name = i.split('\x02')[0]
- if j == name or j[:len(j)-1] == name:
- strd.append(name)
- safe.close()
- if len(strd) == 0: str = Lang.Lang.mods_str_ru_off
- else: strd = sorted(strd)
- strd = ', '.join(strd)
- recvmessage = str + strd
- pm_send(innick, recvmessage)
- else:
- pm_send(innick, Lang.Lang.errormodlist)
- ####################################VIEW###########################################################
- elif nike[0] == 'view':
- if innick in ref_control:
- if nike[1] == 'refv':
- news_file = open('date/.vanillaref')
- recvmessage = news_file.read()
- news_file.close()
- if recvmessage == '': recvmessage = Lang.Lang.clrlist
- pm_send(innick, recvmessage)
- elif nike[1] == 'refb':
- news_file = open('date/.bkref')
- recvmessage = news_file.read()
- news_file.close()
- if recvmessage == '': recvmessage = Lang.Lang.clrlist
- pm_send(innick, recvmessage)
- if innick in helper_control:
- if nike[1] == 'helpers':
- news_file = open('date/.helpers')
- recvmessage = news_file.read()
- news_file.close()
- if recvmessage == '': recvmessage = Lang.Lang.clrlist
- pm_send(innick, recvmessage)
- if innick in full_control:
- if nike[1] == 'modo':
- community_text()
- if len(nike)>2:
- news_file = open('date/.modo_'+nike[2])
- recvmessage = news_file.read()
- news_file.close()
- pm_send(innick, recvmessage)
- else:
- news_file = open('date/.modo_'+comm , 'r')
- recvmessage = news_file.read()
- news_file.close()
- pm_send(innick, recvmessage)
- if nike[1] == 'reflider':
- news_file = open('usr/.ref_control')
- recvmessage = news_file.read()
- news_file.close()
- pm_send(innick, recvmessage)
- if nike[1] == 'hlplider':
- news_file = open('usr/.helper_control')
- recvmessage = news_file.read()
- news_file.close()
- pm_send(innick, recvmessage)
- if nike[1] == 'admn':
- news_file = open('usr/.full_control')
- recvmessage = news_file.read()
- news_file.close()
- pm_send(innick, recvmessage)
- if nike[1] == 'newsmakers':
- news_file = open('usr/.news_control')
- recvmessage = news_file.read()
- news_file.close()
- pm_send(innick, recvmessage)
- #########################################################INT TRIBE CHAT HELP#########################################
- elif nike[0] == 'hlp':
- community_text()
- recvmessage = Lang.Lang.alert_hlp
- pm_send(innick, recvmessage)
- recvmessage = '[' + comm + ']' + '[' + innick + '] ' + messg[4:]
- recvmsg = GeneratePrefix() + '\x06\x08' + pack('!h', len(recvmessage)) + recvmessage
- m.send( pack('!l', len(recvmsg)+4) + recvmsg )
- #################################################ERROR#########################################
- if messg not in comms:
- if ' ' in messg:
- nike = messg.split(' ')
- if nike[0] not in comms:
- recvmessage = Lang.Lang.addedinlist_error_access
- pm_send(innick, recvmessage)
- else:
- recvmessage = Lang.Lang.addedinlist_error_access
- pm_send(innick, recvmessage)
- #########################################################REFFHELP#########################################
- if nike[0] == 'refhelp':
- if innick in ref_control:
- recvmessage = Lang.Lang.ref_help
- pm_send(innick, recvmessage)
- else:
- recvmessage = Lang.Lang.addedinlist_error_access
- pm_send(innick, recvmessage)
- #################################################HELPERS HELP#########################################
- elif nike[0] == 'helpershelp':
- if innick in helper_control:
- recvmessage = Lang.Lang.helper_help
- pm_send(innick, recvmessage)
- else:
- recvmessage = Lang.Lang.addedinlist_error_access
- pm_send(innick, recvmessage)
- #################################################FULL HELP#########################################
- elif nike[0] == 'fullhelp':
- if innick in full_control:
- recvmessage = Lang.Lang.full_help
- pm_send(innick, recvmessage)
- else:
- recvmessage = Lang.Lang.addedinlist_error_access
- pm_send(innick, recvmessage)
- #########################################################HELPERSLIST#########################################
- elif nike[0] == 'helpers' or nike[0] == 'хелперы':
- recvmsg = GeneratePrefix() + '\x01\x01' + pack('!h', len('\x08\x0D')) + '\x08\x0D'
- m.send( pack('!l', len(recvmsg)+4) + recvmsg )
- helpersonline = m.recv(4096)
- name = ""
- str = Lang.Lang.helpers_str_ru_on
- strd = []
- safe = open('date/.helpers', 'r')
- for j in safe.readlines():
- for i in helpersonline.split('\x01'):
- if '\x02' in i:
- name = i.split('\x02')[0]
- if j == name or j[:len(j)-1] == name:
- strd.append(name)
- safe.close()
- if len(strd) == 0: str = Lang.Lang.helpers_str_ru_off + ':('
- else: strd = sorted(strd)
- strd = ', '.join(strd)
- recvmessage = str + strd
- pm_send(innick, recvmessage)
- #########################################################GUIDES#########################################
- # elif messg == 'guide' or messg == 'гайд':
- # recvmessage = Lang.Lang.error_str_ru_on
- # pm_send(innick, recvmessage)
- #########################################################REFFERI BOOTCAMP#########################################
- elif nike[0] == 'refb' or nike[0] == 'рефб':
- recvmsg = GeneratePrefix() + '\x01\x01' + pack('!h', len('\x08\x0D')) + '\x08\x0D'
- m.send( pack('!l', len(recvmsg)+4) + recvmsg )
- helpersonline = m.recv(4096)
- name = ""
- str = Lang.Lang.ref_str_ru_on
- strd = []
- safe = open('date/.bkref', 'r')
- for j in safe.readlines():
- for i in helpersonline.split('\x01'):
- if '\x02' in i:
- name = i.split('\x02')[0]
- if j == name or j[:len(j)-1] == name:
- strd.append(name)
- safe.close()
- if len(strd) == 0: str = Lang.Lang.ref_str_ru_off
- else: strd = sorted(strd)
- strd = ', '.join(strd)
- recvmessage = str + strd
- pm_send(innick, recvmessage)
- #########################################################REFFERI VANILLA#########################################
- elif nike[0] == 'refv' or nike[0] == 'рефв':
- recvmsg = GeneratePrefix() + '\x01\x01' + pack('!h', len('\x08\x0D')) + '\x08\x0D'
- m.send( pack('!l', len(recvmsg)+4) + recvmsg )
- helpersonline = m.recv(4096)
- name = ""
- str = Lang.Lang.ref_str_ru_on
- strd = []
- safe = open('date/.vanillaref', 'r')
- for j in safe.readlines():
- for i in helpersonline.split('\x01'):
- if '\x02' in i:
- name = i.split('\x02')[0]
- if j == name or j[:len(j)-1] == name:
- strd.append(name)
- safe.close()
- if len(strd) == 0: str =Lang.Lang.ref_str_ru_off
- else: strd = sorted(strd)
- strd = ', '.join(strd)
- recvmessage = str + strd
- pm_send(innick, recvmessage)
- #########################################################UPDATE#########################################
- elif nike[0] in newupdate:
- event_file = open('update/.news')
- event = event_file.read()
- if event == '': event = Lang.Lang.error_str_ru_on
- event_file.close()
- recvmessage = event
- pm_send(innick, recvmessage)
- #########################################################EVENT#########################################
- elif nike[0] in eventss:
- event_file = open('update/.event')
- event = event_file.read()
- if event == 'def': event = 'Нет активного эвента в данный момент ;('
- event_file.close()
- recvmessage = event
- pm_send(innick, recvmessage)
- #########################################################HELP#########################################
- elif nike[0] == 'помощь' or nike[0] == 'help':
- if nike[0] == 'помощь': recvmessage = Lang.Lang.helpall
- elif nike[0] == 'help': recvmessage = Lang.Lang.helpall_en
- pm_send(innick, recvmessage)
- elif nike[0] == 'about':
- recvmessage = Lang.Lang.aboutme
- pm_send(innick, recvmessage)
- # elif messg == 'клубника':
- elif 'клубни' in messg:
- recvmessage = Lang.Lang.strawb
- pm_send(innick, recvmessage)
- elif messg in fathers:
- pm_send(innick, 'ПАПА! *-*')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement