v2.7 - floodrate delay interval added/efnet

This commit is contained in:
decoded
2022-03-19 11:39:02 -05:00
parent dda1be84ba
commit 1e0299a53e
2 changed files with 43 additions and 6 deletions

View File

@@ -35,7 +35,13 @@ MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMdyymMMMMMMMMMMMMMMMMMMMMMMMMMMM
``` ```
## summary ## summary
``` ```
dr1p4ns1 v2.3 - cp437 ansi parser dr1p4ns1 v2.6 - cp437 ansi parser
```
## changelog - v2.6
```
- ! added a floodrate delay interval for servers like efnet, press d to set the delay interval
- ? the delay option waits x seconds between each line sent to a server to prevent server flood kicking
- ? an interger of 0, 1, 2 or even float 0.3, 1.666 fractions are acceptable as a delay interval
``` ```
## screenshots ## screenshots
![screenshots](screenshots/ss1.jpg) ![screenshots](screenshots/ss1.jpg)

View File

@@ -1,4 +1,4 @@
########################################################################################### dr1p4ns1 version 2.3 ####### SOF ########################################################################################### dr1p4ns1 version 2.6 ####### SOF
#################################################################################################### ####################### #################################################################################################### #######################
from glob import glob from glob import glob
from time import sleep from time import sleep
@@ -47,6 +47,7 @@ FIFO_PATH = f"{os.path.expanduser('~')}/.weechat/weechat_fifo"
FIFO_ENABLED = True ##### FIFO_ENABLED = True #####
COPY_PATH = f"{os.path.expanduser('~')}/Pictures" ##### COPY_PATH = f"{os.path.expanduser('~')}/Pictures" #####
DELETE_PATH = "/tmp" ##### DELETE_PATH = "/tmp" #####
FLOODRATE_INTERVAL_SECONDS = 0.335 #####
#################################################################################################### ####################### #################################################################################################### #######################
#################################################################################################### ####################### #################################################################################################### #######################
##### #####
@@ -95,7 +96,12 @@ def getfiles(argv=""):
print('ERROR: NO ANSI FILES IN THE PATH SPECIFIED',end='') print('ERROR: NO ANSI FILES IN THE PATH SPECIFIED',end='')
sys.exit(1) sys.exit(1)
return FILES return FILES
#############################################################################################################################
class D:
def __init__(self):
self.delay=FLOODRATE_INTERVAL_SECONDS
########################################################################################################## CLASS DR1P4NS1 - 2 ########################################################################################################## CLASS DR1P4NS1 - 2
class dr1p4ns1: class dr1p4ns1:
############################################################################################################ LOOKUP TABLE ############################################################################################################ LOOKUP TABLE
commands = { commands = {
@@ -589,6 +595,7 @@ class UI:
113: 'q', 113: 'q',
120: 'x', 120: 'x',
99: 'c', 99: 'c',
100: 'd',
82: 'R' 82: 'R'
} }
return key_mapping.get(k, chr(k)) return key_mapping.get(k, chr(k))
@@ -609,7 +616,7 @@ class UI:
while True: while True:
B='\x1b[1;94m'; C='\x1b[1;95m'; S='\x1b[1;36m'; M='\x1b[1;92m'; E='\x1b[0m'; R='\x1b[31m' B='\x1b[1;94m'; C='\x1b[1;95m'; S='\x1b[1;36m'; M='\x1b[1;92m'; E='\x1b[0m'; R='\x1b[31m'
msg=f"{B}[ {C}DR1P {B}] {B}- {B}[ {M}x{B}: {M}exit{B}, {M}c{B}: {M}copy{B}, {M}R{B}: {M}remove{B}, {M}q{B}: {M}pumpqueue{B}, {M}p{B}: {M}pump{B}, " msg=f"{B}[ {C}DR1P {B}] {B}- {B}[ {M}x{B}: {M}exit{B}, {M}c{B}: {M}copy{B}, {M}R{B}: {M}remove{B}, {M}q{B}: {M}pumpqueue{B}, {M}p{B}: {M}pump{B}, "
msg+=f"{M}left{B}/{M}right{B}: {M}browse {B}] {B}- " msg+=f"{M}left{B}/{M}right{B}: {M}browse {B}] {B}- [ {M}d{B}: {M}delay{B} - {M}{dr1p.delay}{B} ]"
msg+=f"{B}[ {S}pumpqueue{B}: {C}{len(self.QUEUE)} {B}- {S}index{B}: {C}{index+1}{B}/{C}{len(self.files)} {B}- {S}filename{B}: {C}{d.filename} {B}]{E}" msg+=f"{B}[ {S}pumpqueue{B}: {C}{len(self.QUEUE)} {B}- {S}index{B}: {C}{index+1}{B}/{C}{len(self.files)} {B}- {S}filename{B}: {C}{d.filename} {B}]{E}"
if self.REMOVED==True: msg+=f'{R} - FILE REMOVED' if self.REMOVED==True: msg+=f'{R} - FILE REMOVED'
print(msg) print(msg)
@@ -669,6 +676,28 @@ class UI:
sleep(1) sleep(1)
print('\x1bc') print('\x1bc')
decoder.as_terminal() decoder.as_terminal()
elif k == 'd':
while True:
print(f'{C}input floodrate delay{B}: {C}',end='')
USER_INPUT=input()
TRAPFLAG=-1
try:
TRAPFLAG=int(USER_INPUT)
except:
try:
TRAPFLAG=float(USER_INPUT)
except:
print(f'{S}accepted floodrate delay range is between 0 and 10.0 seconds')
try:
if TRAPFLAG>=0 and TRAPFLAG<=10:
dr1p.delay=TRAPFLAG
break
except:
print(f'{S}accepted floodrate delay range is between 0 and 10.0 seconds')
print(f'{M}floodrate delay set to{B}: {C}{dr1p.delay}')
sleep(1)
print('\x1bc')
decoder.as_terminal()
elif k == 'p': elif k == 'p':
PMSG="" PMSG=""
try: try:
@@ -1133,6 +1162,7 @@ class ANSIDecoder:
self.as_irc_lines() self.as_irc_lines()
for _ in self.output_lines: for _ in self.output_lines:
self.fifo(_) self.fifo(_)
sleep(dr1p.delay)
################################################################################################### RE-ENCODING ENCODINGS ################################################################################################### RE-ENCODING ENCODINGS
def as_terminal_lines(self): def as_terminal_lines(self):
default_fg=7 default_fg=7
@@ -1208,8 +1238,9 @@ class ANSIDecoder:
print(_) print(_)
################################################################################################################### ENTRY - 1 ################################################################################################################### ENTRY - 1
if __name__=="__main__": if __name__=="__main__":
dr1p=D()
FIFO_ENABLED = os.path.exists(FIFO_PATH) FIFO_ENABLED = os.path.exists(FIFO_PATH)
files = getfiles(sys.argv) files = getfiles(sys.argv)
ui = UI(files) ui = UI(files)
#################################################################################################### ####################### #################################################################################################### #######################
########################################################################################### dr1p4ns1 version 2.3 ####### EOF ########################################################################################### dr1p4ns1 version 2.6 ####### EOF