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

@@ -1,5 +1,5 @@
# .[d]. ircd.chat/6697 #tcpdirect # .[d]. ircd.chat/6697 #tcpdirect
``` ```
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMh+MMMMMMMMMMMMMMhsMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMh+MMMMMMMMMMMMMMhsMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
@@ -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)
@@ -59,4 +65,4 @@ ansi files can be queued so that when you pump they are being sent in a sequenti
- **PUMPQUEUE:** using the q key you can queue up a bunch of ansis to pump, then just press p to fire - **PUMPQUEUE:** using the q key you can queue up a bunch of ansis to pump, then just press p to fire
them off. if there is nothing in the queue then whatever is on the screen will be pumped to fifo. them off. if there is nothing in the queue then whatever is on the screen will be pumped to fifo.
- **FIFO:** in order to use the pump feature, you need a fifo setup in something like weechat/irsii/etc.. - **FIFO:** in order to use the pump feature, you need a fifo setup in something like weechat/irsii/etc..
if you have one setup, adjust the FIFO_PATH at the top of dr1p4ns1.py if you have one setup, adjust the FIFO_PATH at the top of dr1p4ns1.py

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