v2.7 - floodrate delay interval added/efnet
This commit is contained in:
12
README.md
12
README.md
@@ -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
|
||||||

|

|
||||||
@@ -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
|
||||||
37
dr1p4ns1.py
37
dr1p4ns1.py
@@ -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
|
||||||
Reference in New Issue
Block a user