hybrid
This commit is contained in:
parent
4ff4d2dd84
commit
945ec2ba24
|
@ -7,6 +7,8 @@ import ipdb
|
|||
from random import randint
|
||||
from re import compile
|
||||
from irc3 import rfc
|
||||
import subprocess
|
||||
#ipdb.set_trace()
|
||||
|
||||
dir_path = os.path.dirname(os.path.realpath(__file__))
|
||||
|
||||
|
@ -18,15 +20,242 @@ READY_BOTS = []
|
|||
LOCK_KRYLON = 1 # 1
|
||||
INTERRUPTED = 0
|
||||
|
||||
|
||||
global FIRST_EXEC
|
||||
|
||||
cp437 = {
|
||||
0:'\u0000',1:'\u263A',2:'\u263B',3:'\u2665',4:'\u2666',5:'\u2663',6:'\u2660',7:'\u2022',
|
||||
8:'\u25D8',9:'\u25CB',10:'\u25D9',11:'\u2642',12:'\u2640',13:'\u266A',14:'\u266B',15:'\u263C',
|
||||
16:'\u25BA',17:'\u25C4',18:'\u2195',19:'\u203C',20:'\u00B6',21:'\u00A7',22:'\u25AC',23:'\u21A8',
|
||||
24:'\u2191',25:'\u2193',26:'\u2192',27:'\u2190',28:'\u221F',29:'\u2194',30:'\u25B2',31:'\u25BC',
|
||||
32:'\u0020',33:'\u0021',34:'\u0022',35:'\u0023',36:'\u0024',37:'\u0025',38:'\u0026',39:'\u0027',
|
||||
40:'\u0028',41:'\u0029',42:'\u002A',43:'\u002B',44:'\u002C',45:'\u002D',46:'\u002E',47:'\u002F',
|
||||
48:'\u0030',49:'\u0031',50:'\u0032',51:'\u0033',52:'\u0034',53:'\u0035',54:'\u0036',55:'\u0037',
|
||||
56:'\u0038',57:'\u0039',58:'\u003A',59:'\u003B',60:'\u003C',61:'\u003D',62:'\u003E',63:'\u003F',
|
||||
64:'\u0040',65:'\u0041',66:'\u0042',67:'\u0043',68:'\u0044',69:'\u0045',70:'\u0046',71:'\u0047',
|
||||
72:'\u0048',73:'\u0049',74:'\u004A',75:'\u004B',76:'\u004C',77:'\u004D',78:'\u004E',79:'\u004F',
|
||||
80:'\u0050',81:'\u0051',82:'\u0052',83:'\u0053',84:'\u0054',85:'\u0055',86:'\u0056',87:'\u0057',
|
||||
88:'\u0058',89:'\u0059',90:'\u005A',91:'\u005B',92:'\u005C',93:'\u005D',94:'\u005E',95:'\u005F',
|
||||
96:'\u0060',97:'\u0061',98:'\u0062',99:'\u0063',100:'\u0064',101:'\u0065',102:'\u0066',103:'\u0067',
|
||||
104:'\u0068',105:'\u0069',106:'\u006A',107:'\u006B',108:'\u006C',109:'\u006D',110:'\u006E',111:'\u006F',
|
||||
112:'\u0070',113:'\u0071',114:'\u0072',115:'\u0073',116:'\u0074',117:'\u0075',118:'\u0076',119:'\u0077',
|
||||
120:'\u0078',121:'\u0079',122:'\u007A',123:'\u007B',124:'\u007C',125:'\u007D',126:'\u007E',127:'\u2302',
|
||||
128:'\u00C7',129:'\u00FC',130:'\u00E9',131:'\u00E2',132:'\u00E4',133:'\u00E0',134:'\u00E5',135:'\u00E7',
|
||||
136:'\u00EA',137:'\u00EB',138:'\u00E8',139:'\u00EF',140:'\u00EE',141:'\u00EC',142:'\u00C4',143:'\u00C5',
|
||||
144:'\u00C9',145:'\u00E6',146:'\u00C6',147:'\u00F4',148:'\u00F6',149:'\u00F2',150:'\u00FB',151:'\u00F9',
|
||||
152:'\u00FF',153:'\u00D6',154:'\u00DC',155:'\u00A2',156:'\u00A3',157:'\u00A5',158:'\u20A7',159:'\u0192',
|
||||
160:'\u00E1',161:'\u00ED',162:'\u00F3',163:'\u00FA',164:'\u00F1',165:'\u00D1',166:'\u00AA',167:'\u00BA',
|
||||
168:'\u00BF',169:'\u2310',170:'\u00AC',171:'\u00BD',172:'\u00BC',173:'\u00A1',174:'\u00AB',175:'\u00BB',
|
||||
176:'\u2591',177:'\u2592',178:'\u2593',179:'\u2502',180:'\u2524',181:'\u2561',182:'\u2562',183:'\u2556',
|
||||
184:'\u2555',185:'\u2563',186:'\u2551',187:'\u2557',188:'\u255D',189:'\u255C',190:'\u255B',191:'\u2510',
|
||||
192:'\u2514',193:'\u2534',194:'\u252C',195:'\u251C',196:'\u2500',197:'\u253C',198:'\u255E',199:'\u255F',
|
||||
200:'\u255A',201:'\u2554',202:'\u2569',203:'\u2566',204:'\u2560',205:'\u2550',206:'\u256C',207:'\u2567',
|
||||
208:'\u2568',209:'\u2564',210:'\u2565',211:'\u2559',212:'\u2558',213:'\u2552',214:'\u2553',215:'\u256B',
|
||||
216:'\u256A',217:'\u2518',218:'\u250C',219:'\u2588',220:'\u2584',221:'\u258C',222:'\u2590',223:'\u2580',
|
||||
224:'\u03B1',225:'\u00DF',226:'\u0393',227:'\u03C0',228:'\u03A3',229:'\u03C3',230:'\u00B5',231:'\u03C4',
|
||||
232:'\u03A6',233:'\u0398',234:'\u03A9',235:'\u03B4',236:'\u221E',237:'\u03C6',238:'\u03B5',239:'\u2229',
|
||||
240:'\u2261',241:'\u00B1',242:'\u2265',243:'\u2264',244:'\u2320',245:'\u2321',246:'\u00F7',247:'\u2248',
|
||||
248:'\u00B0',249:'\u2219',250:'\u00B7',251:'\u221A',252:'\u207F',253:'\u00B2',254:'\u25A0',255:'\u00A0',
|
||||
}
|
||||
|
||||
class D():
|
||||
def __init__(self):
|
||||
self.MODE_BOLD=0
|
||||
return
|
||||
def c(self,n):
|
||||
n = int(n)
|
||||
cc = {
|
||||
99:'\x03',
|
||||
1:'\x02', #bold
|
||||
3:'\x1d', #italics
|
||||
4:'\x1f', #underline
|
||||
9:'\x1e', #strikethrough
|
||||
0:'\x01',
|
||||
40:'1',
|
||||
|
||||
30:'14',
|
||||
31:'04',
|
||||
32:'09',
|
||||
33:'08',
|
||||
34:'12',
|
||||
35:'13',
|
||||
36:'11',
|
||||
37:'15',
|
||||
41:'04',
|
||||
42:'09',
|
||||
43:'08',
|
||||
44:'12',
|
||||
45:'13',
|
||||
46:'11',
|
||||
47:'15'
|
||||
}
|
||||
|
||||
cb = {
|
||||
99:'\x03',
|
||||
1:'\x02', #bold
|
||||
3:'\x1d', #italics
|
||||
4:'\x1f', #underline
|
||||
9:'\x1e', #strikethrough
|
||||
0:'\x01',
|
||||
40:'1',
|
||||
|
||||
30:'14',
|
||||
31:'28',
|
||||
32:'09',
|
||||
33:'54',
|
||||
34:'72',
|
||||
35:'13',
|
||||
36:'11',
|
||||
37:'15',
|
||||
41:'04',
|
||||
42:'09',
|
||||
43:'08',
|
||||
44:'12',
|
||||
45:'13',
|
||||
46:'11',
|
||||
47:'15'
|
||||
}
|
||||
|
||||
#ipdb.set_trace()
|
||||
if self.MODE_BOLD==1:
|
||||
if n >= 30 and n <= 47:
|
||||
return int(cc[n])
|
||||
else:
|
||||
return cb[n]
|
||||
else:
|
||||
return cb[n]
|
||||
|
||||
class KRYLON():
|
||||
|
||||
def __init__(self,bot,channel):
|
||||
|
||||
self.KRYLON_FILE = []
|
||||
self.bot = bot
|
||||
self.channel = channel
|
||||
self.KRYLON_FILE = ['a'*40,'b'*40,'c'*40,'d'*40,'e'*40,'f'*40,'g'*40,'h'*40,'1'*40,'2'*40,'3'*40,'4'*40,'5'*40,'6'*40,'7'*40,'8'*40]
|
||||
#self.KRYLON_FILE = ['a'*40,'b'*40,'c'*40,'d'*40,'e'*40,'f'*40,'g'*40,'h'*40,'1'*40,'2'*40,'3'*40,'4'*40,'5'*40,'6'*40,'7'*40,'8'*40]
|
||||
#ipdb.set_trace()
|
||||
self.__run__()
|
||||
|
||||
def q(self,s):
|
||||
#f = open('/home/dr1p/.weechat/weechat_fifo','w')
|
||||
#f.write('*{}\x0a'.format(s))
|
||||
#f.close()
|
||||
#f = open('/home/dr1p/Documents/code/python/krylon/test.txt','a')
|
||||
#f.write('*{}\x0a'.format(s))
|
||||
#f.close()
|
||||
self.KRYLON_FILE.append(s)
|
||||
|
||||
def w(self,s,index):
|
||||
d=D()
|
||||
s = s.replace('\x1b','')
|
||||
ss = s
|
||||
codes=[]
|
||||
ogcodes=[]
|
||||
newcodes=[]
|
||||
while True:
|
||||
sa = ss.find('[')
|
||||
sb = ss.find('m')
|
||||
if sa == -1 and sb == -1:
|
||||
break
|
||||
x = ss[sa:sb+1]
|
||||
ogcodes.append(x)
|
||||
codes.append(x.replace('m','').replace('[','').split(';'))
|
||||
ss=ss[sb+1:]
|
||||
count = len(codes[-1])
|
||||
if count == 1:
|
||||
ca = codes[-1][0]
|
||||
if ca == '1' or ca == '3' or ca == '4' or ca == '9':
|
||||
if ca == '1':
|
||||
code = "{}".format(d.c(99))
|
||||
else:
|
||||
code = "{}".format(d.c(ca))
|
||||
elif ca == '0':
|
||||
code = "{}".format(d.c(1))
|
||||
elif ca == '31':
|
||||
# d.MODE_BOLD=0
|
||||
code = "{}{}".format(d.c(99),d.c(31))
|
||||
else:
|
||||
try:
|
||||
code = "{}{}".format(d.c(99),d.c(ca))
|
||||
#code = "{},{}".format(c[99],c[int(ca)])
|
||||
except:
|
||||
if ca == '7C1':
|
||||
codes[-1]=1
|
||||
|
||||
newcodes.append(code)
|
||||
elif count == 2:
|
||||
ca = codes[-1][0]
|
||||
cb = codes[-1][1]
|
||||
# ipdb.set_trace()
|
||||
if ca == '0':
|
||||
d.MODE_BOLD=0
|
||||
code = "{}{}".format(d.c(99),d.c(cb))
|
||||
elif ca == '1':
|
||||
d.MODE_BOLD=1
|
||||
code = "{}{}".format(d.c(99),d.c(cb))
|
||||
else:
|
||||
code = "{}{}{}{}".format(d.c(99),d.c(ca),d.c(99),d.c(cb))
|
||||
|
||||
newcodes.append(code)
|
||||
elif count == 3:
|
||||
ca = codes[-1][0]
|
||||
cb = codes[-1][1]
|
||||
cc = codes[-1][1]
|
||||
if ca == '0':
|
||||
code = "{}{},{}".format(d.c(99),d.c(cb),d.c(cc))
|
||||
elif ca == '1':
|
||||
d.MODE_BOLD=1
|
||||
code = "{}{}{}{}".format(d.c(99),d.c(cb),d.c(99),d.c(cc))
|
||||
newcodes.append(code)
|
||||
|
||||
elif count == 4:
|
||||
ca = codes[-1][0]
|
||||
cb = codes[-1][1]
|
||||
cc = codes[-1][2]
|
||||
cd = codes[-1][3]
|
||||
code = "{}{}{},{}".format(d.c(1),d.c(99),d.c(cd),d.c(cc))
|
||||
newcodes.append(code)
|
||||
|
||||
buffer = s
|
||||
for i,_ in enumerate(ogcodes):
|
||||
z = buffer.find(_)
|
||||
if z == 0:
|
||||
b=buffer[len(_):]
|
||||
a=newcodes[i]
|
||||
buffer = "{}{}".format(a,b)
|
||||
else:
|
||||
try:
|
||||
a=buffer[:buffer.find(_)]
|
||||
b=newcodes[i]
|
||||
c=buffer[buffer.find(_)+len(ogcodes[i]):]
|
||||
buffer = "{}{}{}".format(a,b,c)
|
||||
except:
|
||||
print('hi')
|
||||
ipdb.set_trace()
|
||||
print('hi')
|
||||
print('hi')
|
||||
self.q(buffer)
|
||||
|
||||
|
||||
|
||||
def __run__(self):
|
||||
|
||||
try:
|
||||
if int(FIRST_EXEC) == 0:
|
||||
print('yolo')
|
||||
except:
|
||||
#ipdb.set_trace()
|
||||
FIRST_EXEC = 1
|
||||
self.__f = open('/home/dr1p/Documents/code/python/krylon/acid.txt','r')
|
||||
self.__l = self.__f.read().splitlines()
|
||||
self.__f.close()
|
||||
|
||||
for i,_ in enumerate(self.__l):
|
||||
if _.find('\x1aSAUCE') == -1:
|
||||
self.w(_,i)
|
||||
else:
|
||||
pass
|
||||
|
||||
self.KRYLON_FILE.reverse()
|
||||
self.FILE_BUFFER=[]
|
||||
for _ in self.KRYLON_FILE:
|
||||
|
@ -148,10 +377,6 @@ class Plugin(object):
|
|||
INTERRUPTED = 0
|
||||
PTR._ST8 = 3
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@irc3.event(irc3.rfc.JOIN)
|
||||
def welcome(self, mask, channel, **kw):
|
||||
|
||||
|
|
Loading…
Reference in New Issue