ansi depumper plugin
This commit is contained in:
parent
0ac14554d7
commit
e635b62d70
|
@ -1,4 +1,7 @@
|
|||
# -*- coding: utf-8 -*- ########################################################################################### SOF
|
||||
# -*- coding: utf-8 -*- #################################################################################### SOF
|
||||
|
||||
################################################################################################################
|
||||
|
||||
"""# MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM ####
|
||||
#### MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMh+MMMMMMMMMMMMMMhsMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM ####
|
||||
#### MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMm/ oMMMMMMMMMMMMMMm +NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM ####
|
||||
|
@ -31,6 +34,8 @@
|
|||
#### MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNs. -hMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM ####
|
||||
#### MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMdyymMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM #"""
|
||||
|
||||
################################################################################################################
|
||||
|
||||
import os
|
||||
import re
|
||||
import subprocess
|
||||
|
@ -43,7 +48,7 @@ from irc3.plugins.cron import cron
|
|||
|
||||
from plugins.tool_guds_plugin import guds
|
||||
|
||||
#######################################################################################################################
|
||||
################################################################################################################
|
||||
|
||||
global REASSEMBLY
|
||||
global iCount
|
||||
|
@ -65,17 +70,17 @@ COLOR_SET_C = "\x1b[38;2;128;0;255m"
|
|||
COLOR_SET_D = "\x1b[2;35m"
|
||||
COLOR_SET_E = "\x1b[2;31m"
|
||||
|
||||
#######################################################################################################################
|
||||
################################################################################################################
|
||||
|
||||
############
|
||||
@irc3.plugin
|
||||
############ ##########################################################################################################
|
||||
############ ###################################################################################################
|
||||
|
||||
############# #########################################################################################################
|
||||
############# ##################################################################################################
|
||||
class Plugin:
|
||||
#############
|
||||
|
||||
########################### #######################################################################################
|
||||
########################### ################################################################################
|
||||
class HYDRA_FILE_HANDLER():
|
||||
###########################
|
||||
|
||||
|
@ -88,8 +93,9 @@ class Plugin:
|
|||
self.png=[]
|
||||
|
||||
self.ptr=[]
|
||||
###########################
|
||||
|
||||
########################### #######################################################################################
|
||||
########################### ################################################################################
|
||||
class DR1P_STATE_MACHINE():
|
||||
###########################
|
||||
|
||||
|
@ -276,10 +282,9 @@ class Plugin:
|
|||
asm = self.asm
|
||||
self.ack()
|
||||
asm(b)
|
||||
###########################
|
||||
|
||||
########################### #######################################################################################
|
||||
|
||||
##################################### #############################################################################
|
||||
##################################### ######################################################################
|
||||
class ESCAPE_CODE_DETECTION_SYSTEM():
|
||||
#####################################
|
||||
|
||||
|
@ -306,7 +311,7 @@ class Plugin:
|
|||
self.STRINCREMENT = f"{str(INDEX)}".zfill(8)
|
||||
self.FILENAME = f"{ANSI_HOME}/{FILE_PREFIX}{self.STRINCREMENT}.txt"
|
||||
|
||||
self.f1 = open(self.FILENAME, "w") # file handle f1
|
||||
self.f1 = open(self.FILENAME, "w")
|
||||
|
||||
#################################################
|
||||
def push(self,nick,channel,dataline,hexdataline):
|
||||
|
@ -328,10 +333,9 @@ class Plugin:
|
|||
x[5].append(hexdataline)
|
||||
except Exception as e:
|
||||
pass
|
||||
#####################################
|
||||
|
||||
##################################### #############################################################################
|
||||
|
||||
######################## ##########################################################################################
|
||||
######################## ###################################################################################
|
||||
def __init__(self, bot):
|
||||
########################
|
||||
|
||||
|
@ -345,12 +349,13 @@ class Plugin:
|
|||
self.processing_command=[]
|
||||
self.DELIMIT=False
|
||||
self.hexdataline=None
|
||||
########################
|
||||
|
||||
############
|
||||
@irc3.extend
|
||||
###################### ######################################################################################### find every instance of a string within a string
|
||||
######################### ################################## find every instance of a string within a string
|
||||
def depumper_reset(self):
|
||||
######################
|
||||
#########################
|
||||
|
||||
self.bot.hfh = guds.memory('HYDRA_FILE_HANDLER')()
|
||||
self.bot.ecds = guds.memory('ESCAPE_CODE_DETECTION_SYSTEM')()
|
||||
|
@ -362,11 +367,11 @@ class Plugin:
|
|||
global iCount
|
||||
REASSEMBLY="1B5B306D"
|
||||
iCount=-1
|
||||
|
||||
#########################
|
||||
|
||||
############
|
||||
@irc3.extend
|
||||
###################### ######################################################################################### find every instance of a string within a string
|
||||
###################### ##################################### find every instance of a string within a string
|
||||
def findall(self,s,w):
|
||||
######################
|
||||
|
||||
|
@ -374,11 +379,11 @@ class Plugin:
|
|||
|
||||
#############
|
||||
return result
|
||||
#############
|
||||
######################
|
||||
|
||||
############
|
||||
@irc3.extend
|
||||
####################### ######################################################################################## used to strip a string of escape codes
|
||||
####################### ##############################################used to strip a string of escape codes
|
||||
def stripcodes(self,s):
|
||||
#######################
|
||||
|
||||
|
@ -400,11 +405,11 @@ class Plugin:
|
|||
|
||||
#############
|
||||
return buffer
|
||||
#############
|
||||
#######################
|
||||
|
||||
############
|
||||
@irc3.extend
|
||||
################################################################################################################ used to make sure a string fits into a space
|
||||
###################### ######################################## used to make sure a string fits into a space
|
||||
def padding(self,s,n):
|
||||
######################
|
||||
|
||||
|
@ -414,15 +419,14 @@ class Plugin:
|
|||
|
||||
########
|
||||
return s
|
||||
########
|
||||
######################
|
||||
|
||||
############
|
||||
@irc3.extend
|
||||
############################ ######################################################################################
|
||||
################################# ##########################################################################
|
||||
def process_irc_codes(self,ecds):
|
||||
############################
|
||||
|
||||
# self.bot = self
|
||||
self.ecds = ecds
|
||||
dsm=self.DR1P_STATE_MACHINE()
|
||||
if not guds.memory('DR1P_STATE_MACHINEE'):
|
||||
|
@ -430,9 +434,6 @@ class Plugin:
|
|||
|
||||
for i in range(0,len(self.ecds.l)):
|
||||
|
||||
#########################
|
||||
# REQUIRES MOTION FROM CRONJOB
|
||||
#########################
|
||||
DYTE=hex(self.ecds.l[i])[2:].zfill(2).upper()
|
||||
DINT=hex(self.ecds.l[i])
|
||||
self.processing_byte.append(DYTE)
|
||||
|
@ -489,11 +490,11 @@ class Plugin:
|
|||
|
||||
#####################
|
||||
return self.ecds.l
|
||||
#####################
|
||||
#################################
|
||||
|
||||
#############################
|
||||
@irc3.event(irc3.rfc.PRIVMSG)
|
||||
########################################################################## ########################################
|
||||
########################################################################## #################################
|
||||
def on_privmsg(self, mask=None, event=None, target=None, data=None, **kw):
|
||||
##########################################################################
|
||||
|
||||
|
@ -504,16 +505,13 @@ class Plugin:
|
|||
for c in data:
|
||||
self.hexdataline += hex(ord(c))[2:].upper()
|
||||
self.bot.ecds.push(mask.nick, target, data, self.hexdataline)
|
||||
|
||||
################################################################################################################### DMZ
|
||||
# DMZ #################################################################################################################
|
||||
################################################################################################################### DMZ
|
||||
##########################################################################
|
||||
|
||||
######################
|
||||
@cron('* * * * * */1')
|
||||
###################### ################################################################################################
|
||||
###################### #########################################################################################
|
||||
|
||||
###################### ################################################################################################
|
||||
###################### #########################################################################################
|
||||
def ecds_cronjob(bot):
|
||||
######################
|
||||
|
||||
|
@ -548,8 +546,7 @@ def ecds_cronjob(bot):
|
|||
ecds.sorting.remove(ecds.sorting[z])
|
||||
ecds_sorted = ecds.sorted[-1]
|
||||
for dataline in ecds_sorted[2]:
|
||||
ecds.f1.write(f"{dataline}\n") # file handle f1
|
||||
# bot.privmsg(hydrachan,dataline)
|
||||
ecds.f1.write(f"{dataline}\n")
|
||||
|
||||
########################
|
||||
SELF_DISABLE_FLAG = True
|
||||
|
@ -576,15 +573,15 @@ def ecds_cronjob(bot):
|
|||
ecds.buffering = False
|
||||
|
||||
|
||||
bot.ecds.f1.close() # file handle f1
|
||||
bot.ecds.f1.close()
|
||||
print('\x1b[36m'+'█'*16+'\n█ \x1b[32mDEPUMPER █\n'+'█'*16)
|
||||
|
||||
try:
|
||||
ecds.IN__FILE__UTF8_IRC_ARTWORK_TXT = ecds.FILENAME
|
||||
ecds.OUT_FILE_CP437_ANS_ARTWORK_BIN = ecds.IN__FILE__UTF8_IRC_ARTWORK_TXT+".ans"
|
||||
ecds.f2 = open(ecds.IN__FILE__UTF8_IRC_ARTWORK_TXT, "rb") # file handle f2
|
||||
ecds.l = ecds.f2.read() # file handle f2
|
||||
ecds.f2.close() # file handle f2
|
||||
ecds.f2 = open(ecds.IN__FILE__UTF8_IRC_ARTWORK_TXT, "rb")
|
||||
ecds.l = ecds.f2.read()
|
||||
ecds.f2.close()
|
||||
except:
|
||||
print('\n\x1b[31mERROR: NO INPUT BUFFER/FILE')
|
||||
|
||||
|
@ -593,18 +590,14 @@ def ecds_cronjob(bot):
|
|||
print(chr(27)+"[2J")
|
||||
print(f'\x1b[36mPROCESSING: {ecds.IN__FILE__UTF8_IRC_ARTWORK_TXT}')
|
||||
|
||||
#################################
|
||||
#################################printhex(main(DR1P_STATE_MACHINE))
|
||||
#################################
|
||||
###########################
|
||||
bot.process_irc_codes(ecds)
|
||||
#################################
|
||||
#################################
|
||||
#################################
|
||||
###########################
|
||||
|
||||
irc_bytes = []
|
||||
for i in range(len(REASSEMBLY)//2):
|
||||
irc_bytes.append(int(REASSEMBLY[i*2:i*2+2], 16))
|
||||
bot.ecds.f3 = open(bot.ecds.OUT_FILE_CP437_ANS_ARTWORK_BIN, 'wb') # file handle f3
|
||||
bot.ecds.f3 = open(bot.ecds.OUT_FILE_CP437_ANS_ARTWORK_BIN, 'wb')
|
||||
bad_byte_seq = [226, 150, 172]
|
||||
good_byte_seq = []
|
||||
rebuilt_bytes = []
|
||||
|
@ -634,11 +627,11 @@ def ecds_cronjob(bot):
|
|||
|
||||
try:
|
||||
irc_bytes = bytes(irc_bytes).decode().encode('cp437')
|
||||
bot.ecds.f3.write(irc_bytes) # file handle f3
|
||||
bot.ecds.f3.write(irc_bytes)
|
||||
except Exception as e:
|
||||
print(f"error: post-codec-conversion: {e}")
|
||||
|
||||
bot.ecds.f3.close() # file handle f3
|
||||
bot.ecds.f3.close()
|
||||
|
||||
MSG=f'\x1b[32mSUCCESS:\n'
|
||||
MSG+=f'\x1b[35mIN < PROCESSED: {bot.ecds.IN__FILE__UTF8_IRC_ARTWORK_TXT}\n'
|
||||
|
@ -699,15 +692,13 @@ def ecds_cronjob(bot):
|
|||
print(f'\x1b[31mFAILURE: {e}')
|
||||
|
||||
###########################################################
|
||||
###########################################################
|
||||
|
||||
del bot.ecds;
|
||||
bot.ecds = guds.memory('ESCAPE_CODE_DETECTION_SYSTEM')()
|
||||
bot.depumper_reset()
|
||||
###########################################################
|
||||
###########################################################
|
||||
######################
|
||||
|
||||
################################################################################################################### EOF
|
||||
################################################################################################################
|
||||
|
||||
"""# MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMmyydMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM ####
|
||||
#### MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMh- .sNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM ####
|
||||
|
@ -739,4 +730,6 @@ def ecds_cronjob(bot):
|
|||
#### MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMm- -MMMMMMMMMMMMMMMy 'yMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM ####
|
||||
#### MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN+ mMMMMMMMMMMMMMMo /mMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM ####
|
||||
#### MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMshMMMMMMMMMMMMMM+hMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM ####
|
||||
#### MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM #"""
|
||||
#### MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM #"""
|
||||
|
||||
############################################################################################################ EOF
|
Loading…
Reference in New Issue