ansi depumper plugin

This commit is contained in:
.[d]. 2022-11-23 13:45:32 +00:00
parent 0ac14554d7
commit e635b62d70

View File

@ -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