revision - old engine v1.0
This commit is contained in:
parent
92cd6bceb9
commit
9fd54fe47c
72
0.krylon_config
Normal file
72
0.krylon_config
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
[bot]
|
||||||
|
nick = krylon
|
||||||
|
username = krylon
|
||||||
|
realname = krylon
|
||||||
|
host = ircd.chat
|
||||||
|
port = 6697
|
||||||
|
channel = #b0ts3x
|
||||||
|
version=1
|
||||||
|
ssl = true
|
||||||
|
ssl_verify = cert_none
|
||||||
|
|
||||||
|
includes =
|
||||||
|
irc3.plugins.command
|
||||||
|
irc3.plugins.asynchronious
|
||||||
|
irc3.plugins.storage
|
||||||
|
irc3.plugins.uptime
|
||||||
|
irc3.plugins.ctcp
|
||||||
|
irc3.plugins.cron
|
||||||
|
irc3.plugins.logger
|
||||||
|
irc3.plugins.userlist
|
||||||
|
plugins.b33p
|
||||||
|
plugins.krylon
|
||||||
|
|
||||||
|
flood_burst = 0
|
||||||
|
flood_rate = 1
|
||||||
|
flood_rate_delay = 1
|
||||||
|
storage = json://.krylon_database
|
||||||
|
|
||||||
|
[irc3.plugins.command]
|
||||||
|
cmd = ?
|
||||||
|
guard = irc3.plugins.command.mask_based_policy
|
||||||
|
|
||||||
|
[irc3.plugins.command.masks]
|
||||||
|
d!*dr1p@* = all_permissions
|
||||||
|
* = view
|
||||||
|
|
||||||
|
ignore_list =
|
||||||
|
g1mp_!*@*
|
||||||
|
g1mp!*@*
|
||||||
|
ken_!*@*
|
||||||
|
ken!*@*
|
||||||
|
|
||||||
|
[bot_1]
|
||||||
|
nick = 6yl6n9ro5_1k_
|
||||||
|
username = 0ykblr3n4o
|
||||||
|
channel = #b0ts3x
|
||||||
|
|
||||||
|
[bot_2]
|
||||||
|
nick = 5rnko_y2_lb20
|
||||||
|
username = nkl15yf1or
|
||||||
|
channel = #b0ts3x
|
||||||
|
|
||||||
|
[bot_3]
|
||||||
|
nick = b3n__lor54ky7
|
||||||
|
username = k8lon807ry
|
||||||
|
channel = #b0ts3x
|
||||||
|
|
||||||
|
[bot_4]
|
||||||
|
nick = 4ley5_nrck_ob
|
||||||
|
username = ykol1n7rdb
|
||||||
|
channel = #b0ts3x
|
||||||
|
|
||||||
|
[bot_5]
|
||||||
|
nick = fyf5_kolr_n74
|
||||||
|
username = ofb9nr2ylk
|
||||||
|
channel = #b0ts3x
|
||||||
|
|
||||||
|
[bot_6]
|
||||||
|
nick = y11r_36_l7kon
|
||||||
|
username = ny5flbk8or
|
||||||
|
channel = #b0ts3x
|
||||||
|
|
264
1.goth.txt
Normal file
264
1.goth.txt
Normal file
File diff suppressed because one or more lines are too long
254
2.fh.txt
Normal file
254
2.fh.txt
Normal file
@ -0,0 +1,254 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from irc3.plugins.command import command
|
||||||
|
import irc3
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import random
|
||||||
|
import ipdb
|
||||||
|
from random import randint
|
||||||
|
from re import compile
|
||||||
|
from irc3 import rfc
|
||||||
|
|
||||||
|
dir_path = os.path.dirname(os.path.realpath(__file__))
|
||||||
|
|
||||||
|
KRYPTR = []
|
||||||
|
BOTNAMES = []
|
||||||
|
BOTNICKS = []
|
||||||
|
TOTAL_BOTS = 0
|
||||||
|
READY_BOTS = []
|
||||||
|
LOCK_KRYLON = 1 # 1
|
||||||
|
INTERRUPTED = 0
|
||||||
|
|
||||||
|
class KRYLON():
|
||||||
|
|
||||||
|
def __init__(self,bot,channel):
|
||||||
|
self.bot = bot
|
||||||
|
self.channel = channel
|
||||||
|
self.KRYLON_FILE = ['░█████╗░███╗░░██╗██╗░░░░░██╗███╗░░██╗███████╗', '██╔══██╗████╗░██║██║░░░░░██║████╗░██║██╔════╝', '██║░░██║██╔██╗██║██║░░░░░██║██╔██╗██║█████╗░░', '██║░░██║██║╚████║██║░░░░░██║██║╚████║██╔══╝░░', '╚█████╔╝██║░╚███║███████╗██║██║░╚███║███████╗', '░╚════╝░╚═╝░░╚══╝╚══════╝╚═╝╚═╝░░╚══╝╚══════╝', 'mcjonestown frickhole jonestown', 'mcjonestown frickhole jonestown', 'mcjonestown frickhole jonestown', 'mcjonestown frickhole jonestown', 'jones are jones and jones our sound', 'hole does fuck and jones in town', 'yeah im d and when i re i re as fuck re tard', 't c p direct for re and we as fuck re tard', 'mcchopchopchopchopchopchopchopchopchopchopchopchopjones', 'mcchopchopchopchopchopchopchopchopchopchopchopchoptown', 't c p direct for re and we as fuck re tard', 'yeah im d and when i re i re as fuck re tard', 'mcchopchopchopchopchopchopchopchopchopchopchopchopjones', 'mcchopchopchopchopchopchopchopchopchopchopchopchoptown', 'jones are jones and jones our sound', 'hole does fuck and jones in town', 'mcjonestown frickhole jonestown', 'mcjonestown frickhole jonestown', 'mcjonestown frickhole jonestown', 'mcjonestown frickhole jonestown', 'faded', 'hol up', 'we dem bois', 'hol up', 'we dem bois', 'hol up hol up hol up', "hoed up like like a farmer plow'n field", 'i knighted so hard queen riding my shield', 'simp-gimp- talking like a pimp.', 'jones- town- fucking pay your rent', 'tent- spent- gonzo dick be bent.', 'jones- town- trilln fuck the fent', '░█████╗░███╗░░██╗██╗░░░░░██╗███╗░░██╗███████╗', '██╔══██╗████╗░██║██║░░░░░██║████╗░██║██╔════╝', '██║░░██║██╔██╗██║██║░░░░░██║██╔██╗██║█████╗░░', '██║░░██║██║╚████║██║░░░░░██║██║╚████║██╔══╝░░', '╚█████╔╝██║░╚███║███████╗██║██║░╚███║███████╗', '░╚════╝░╚═╝░░╚══╝╚══════╝╚═╝╚═╝░░╚══╝╚══════╝']
|
||||||
|
self.__run__()
|
||||||
|
|
||||||
|
def __run__(self):
|
||||||
|
self.KRYLON_FILE.reverse()
|
||||||
|
self.FILE_BUFFER=[]
|
||||||
|
for _ in self.KRYLON_FILE:
|
||||||
|
self.FILE_BUFFER.append(_)
|
||||||
|
self.FILE_LINES = len(self.KRYLON_FILE)
|
||||||
|
self.INIT = 0
|
||||||
|
self.STARTED = 0
|
||||||
|
self.FINISHED = 0
|
||||||
|
self.FILE_INDEX = 0
|
||||||
|
# BITWISE FILE LOCK SET
|
||||||
|
self.KRYLON_FILE_LOCK = []
|
||||||
|
for _ in range(len(self.KRYLON_FILE)):
|
||||||
|
self.KRYLON_FILE_LOCK.append(1)
|
||||||
|
# BITWISE R/W BOT LOCK SET
|
||||||
|
self.BOTS_MODE_LOCK = []
|
||||||
|
for _ in range(len(READY_BOTS)):
|
||||||
|
self.BOTS_MODE_LOCK.append(zip('1','1'))
|
||||||
|
# BITWISE R/W BOT LOCK UNSET
|
||||||
|
R=[]; W=[]; _X=-1; _Y=-1;
|
||||||
|
for _ in range(len(READY_BOTS)):
|
||||||
|
_X,_Y=list(self.BOTS_MODE_LOCK[_])[0]
|
||||||
|
R.append(int(_X))
|
||||||
|
W.append(int(_Y))
|
||||||
|
self.BOTS_MODE_READ=R
|
||||||
|
self.BOTS_MODE_WRIT=W
|
||||||
|
|
||||||
|
@irc3.plugin
|
||||||
|
class Plugin(object):
|
||||||
|
|
||||||
|
def __init__(self, context):
|
||||||
|
self.log = context.log
|
||||||
|
self.context = context
|
||||||
|
self.channel = context.config.channel
|
||||||
|
self._ST8 = 0
|
||||||
|
|
||||||
|
def __emoj(self,s):
|
||||||
|
emote_db = '%s/emote.db' % dir_path
|
||||||
|
emoj = random.choice(list(open(emote_db)))
|
||||||
|
random.randint(0,1)
|
||||||
|
if random.randint(0,1) == 0:
|
||||||
|
emoj = "\x0304{}\x0F".format(emoj)
|
||||||
|
else:
|
||||||
|
emoj = "\x0303{}\x0F".format(emoj)
|
||||||
|
s = s + ' ▶ ' + emoj
|
||||||
|
return s
|
||||||
|
|
||||||
|
def __greet(self):
|
||||||
|
greet_db = '%s/greet.db' % dir_path
|
||||||
|
greet = random.choice(list(open(greet_db)))
|
||||||
|
return greet
|
||||||
|
|
||||||
|
def __symbol(self):
|
||||||
|
symbol_db = '%s/symbol.db' % dir_path
|
||||||
|
symbol = random.choice(list(open(symbol_db)))
|
||||||
|
return symbol
|
||||||
|
|
||||||
|
def rotate(self):
|
||||||
|
self.b1n+=1
|
||||||
|
if self.b1n == len(BOTNICKS):
|
||||||
|
self.b1n=0
|
||||||
|
ipdb.set_trace()
|
||||||
|
|
||||||
|
def spraying(self, mask, channel, **kw):
|
||||||
|
|
||||||
|
PTR = KRYPTR[0]
|
||||||
|
PTR.kbr = []; PTR.kbw = []; PTR.kbl = [];
|
||||||
|
PTR.chn = channel
|
||||||
|
|
||||||
|
for index in range(len(PTR.BOTS_MODE_READ)):
|
||||||
|
PTR.kbr.append(PTR.BOTS_MODE_READ[index])
|
||||||
|
PTR.kbw.append(PTR.BOTS_MODE_WRIT[index])
|
||||||
|
PTR.kbl.append(PTR.KRYLON_FILE_LOCK[index])
|
||||||
|
|
||||||
|
PTR.fbu = PTR.FILE_BUFFER
|
||||||
|
PTR.fli = PTR.FILE_LINES
|
||||||
|
PTR.fin = PTR.FILE_INDEX
|
||||||
|
BOTNAMES=','.join(self.context.config.botnet.keys()).split(',')
|
||||||
|
PTR.bna = BOTNAMES
|
||||||
|
BOTNICKS=[]
|
||||||
|
for _ in BOTNAMES:
|
||||||
|
BOTNICKS.append(self.context.config.botnet[_].nick)
|
||||||
|
PTR.bni = BOTNICKS
|
||||||
|
PTR.b1n = BOTNICKS.index(self.context.nick)
|
||||||
|
PTR.int = 0
|
||||||
|
|
||||||
|
if PTR.INIT == 0:
|
||||||
|
PTR._ST8 = 0
|
||||||
|
PTR.INIT = 1
|
||||||
|
print('<<<<<<> JUST INIT <>>>>>>') # test if initialized for first pass, fails on purpose
|
||||||
|
PTR.STARTED = 1
|
||||||
|
PTR.FINISHED = 0
|
||||||
|
PTR.exe = 1 # set to recognize execution
|
||||||
|
PTR.cyc = 0 # how many cycles within this operation, e.g. amount of bots pass through this function
|
||||||
|
PTR.ops = 0 # how many completed operations, cycles reset, ops continue to count
|
||||||
|
|
||||||
|
#ipdb.set_trace()
|
||||||
|
|
||||||
|
for y in range(len(PTR.bni)):
|
||||||
|
if not y == PTR.b1n:
|
||||||
|
PTR.kbr[y] = 0
|
||||||
|
else:
|
||||||
|
PTR.kbw[y] = 1
|
||||||
|
|
||||||
|
PTR.who = self.context.nick
|
||||||
|
MSG=PTR.fbu.pop()
|
||||||
|
PTR.what = MSG
|
||||||
|
PTR.fin+=1
|
||||||
|
NEWBOT=','.join(list(self.context.config.botnet.keys())).split(',')[PTR.b1n]
|
||||||
|
print(PTR.bni)
|
||||||
|
print(PTR.bna)
|
||||||
|
print(PTR.b1n)
|
||||||
|
print(PTR.bni[PTR.b1n])
|
||||||
|
print(PTR.bna[PTR.b1n])
|
||||||
|
print("WHO:{} NEWBOT:{}".format(PTR.who,NEWBOT))
|
||||||
|
self.context.privmsg(PTR.chn,MSG)
|
||||||
|
|
||||||
|
if PTR._ST8 <= 5 and PTR.int == 1:
|
||||||
|
INTERRUPTED = 0
|
||||||
|
PTR.int = INTERRUPTED
|
||||||
|
PTR._ST8 = 3
|
||||||
|
|
||||||
|
@irc3.event(irc3.rfc.JOIN)
|
||||||
|
def welcome(self, mask, channel, **kw):
|
||||||
|
|
||||||
|
if LOCK_KRYLON == 1:
|
||||||
|
B0T = self.context
|
||||||
|
B0TNAMES=','.join(self.context.config.botnet.keys()).split(',')
|
||||||
|
B0TN1CKS=[]
|
||||||
|
for _ in B0TNAMES:
|
||||||
|
B0TN1CKS.append(self.context.config.botnet[_].nick)
|
||||||
|
|
||||||
|
for i,B0T.nick in enumerate(B0TN1CKS):
|
||||||
|
if B0TN1CKS[i] == B0T.nick:
|
||||||
|
NFLAG=1
|
||||||
|
for _ in READY_BOTS:
|
||||||
|
if B0T.nick == _:
|
||||||
|
NFLAG=0
|
||||||
|
|
||||||
|
if NFLAG==1:
|
||||||
|
READY_BOTS.append(self.context.nick)
|
||||||
|
BOTCNT = len(self.context.config.botnet)
|
||||||
|
|
||||||
|
if len(READY_BOTS) == BOTCNT:
|
||||||
|
BOTNICKS=B0TN1CKS
|
||||||
|
BOTNAMES=B0TNAMES
|
||||||
|
TOTAL_BOTS = BOTCNT;
|
||||||
|
BOT=self.context
|
||||||
|
CHN=channel
|
||||||
|
k=KRYLON(BOT,CHN)
|
||||||
|
KRYPTR.append(k)
|
||||||
|
self.spraying(mask,channel,**kw)
|
||||||
|
|
||||||
|
@irc3.event(irc3.rfc.CONNECTED)
|
||||||
|
def connected(self, **kw):
|
||||||
|
|
||||||
|
if LOCK_KRYLON == 1:
|
||||||
|
self.context.join(self.channel)
|
||||||
|
|
||||||
|
|
||||||
|
@irc3.event(rfc.PRIVMSG, iotype="out")
|
||||||
|
def krylon_event(bot, mask=None, event=None, target=None, data=None):
|
||||||
|
NICK=bot.context.nick
|
||||||
|
CHANNEL=bot.channel
|
||||||
|
MSG="CHANNEL: {} event out: {}".format(CHANNEL,NICK)
|
||||||
|
print(MSG)
|
||||||
|
# ipdb.set_trace()
|
||||||
|
PTR = KRYPTR[0]
|
||||||
|
B0T=bot.context
|
||||||
|
B1N = PTR.bni.index(B0T.nick)
|
||||||
|
|
||||||
|
print("OUTPUT:{}".format(bot.context.nick))
|
||||||
|
|
||||||
|
@irc3.event(irc3.rfc.PRIVMSG, iotype="in")
|
||||||
|
def on_privmsg(self, mask=None, data=None, **kw):
|
||||||
|
|
||||||
|
# B0T=self.context
|
||||||
|
|
||||||
|
# print(data)
|
||||||
|
bot = self
|
||||||
|
NICK=bot.context.nick
|
||||||
|
CHANNEL=bot.channel
|
||||||
|
MSG="CHANNEL: {} event out: {}".format(CHANNEL,NICK)
|
||||||
|
print(MSG)
|
||||||
|
# ipdb.set_trace()
|
||||||
|
PTR = KRYPTR[0]
|
||||||
|
B0T=bot.context
|
||||||
|
B1N = PTR.bni.index(B0T.nick)
|
||||||
|
|
||||||
|
print("INPUT:{}".format(bot.context.nick))
|
||||||
|
|
||||||
|
WTF=0
|
||||||
|
|
||||||
|
if mask.nick == 'd':
|
||||||
|
self.context.privmsg('#b0ts3x','dont interrupt me mofo')
|
||||||
|
PTR.int = 1
|
||||||
|
PTR.FILE_BUFFER=[]
|
||||||
|
for _ in PTR.KRYLON_FILE:
|
||||||
|
PTR.FILE_BUFFER.append(_)
|
||||||
|
PTR.fbu = PTR.FILE_BUFFER
|
||||||
|
PTR.INIT = 0
|
||||||
|
PTR.fin=0
|
||||||
|
PTR.b1n=0
|
||||||
|
PTR.FINISHED = 0
|
||||||
|
self.spraying(mask,channel,**kw)
|
||||||
|
return
|
||||||
|
|
||||||
|
if PTR.who == mask.nick and PTR.STARTED == 1 and PTR.FINISHED == 0 and PTR.what == data and PTR.fin < PTR.fli:
|
||||||
|
|
||||||
|
|
||||||
|
PTR.fin+=1
|
||||||
|
PTR.b1n+=1
|
||||||
|
if PTR.b1n == len(PTR.bni):
|
||||||
|
PTR.b1n=0
|
||||||
|
|
||||||
|
PTR.who = PTR.bni[PTR.b1n]
|
||||||
|
MSG=PTR.fbu.pop()
|
||||||
|
PTR.what = MSG
|
||||||
|
NEWBOT=','.join(list(bot.context.config.botnet.keys())).split(',')[PTR.b1n]
|
||||||
|
print(NEWBOT)
|
||||||
|
bot.context.config.botnet[NEWBOT].privmsg(CHANNEL,MSG)
|
||||||
|
|
||||||
|
if PTR.fin == PTR.fli:
|
||||||
|
sys.exit(0)
|
||||||
|
|
254
3.mind.txt
Normal file
254
3.mind.txt
Normal file
File diff suppressed because one or more lines are too long
254
4.ghost.txt
Normal file
254
4.ghost.txt
Normal file
@ -0,0 +1,254 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from irc3.plugins.command import command
|
||||||
|
import irc3
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import random
|
||||||
|
import ipdb
|
||||||
|
from random import randint
|
||||||
|
from re import compile
|
||||||
|
from irc3 import rfc
|
||||||
|
|
||||||
|
dir_path = os.path.dirname(os.path.realpath(__file__))
|
||||||
|
|
||||||
|
KRYPTR = []
|
||||||
|
BOTNAMES = []
|
||||||
|
BOTNICKS = []
|
||||||
|
TOTAL_BOTS = 0
|
||||||
|
READY_BOTS = []
|
||||||
|
LOCK_KRYLON = 1 # 1
|
||||||
|
INTERRUPTED = 0
|
||||||
|
|
||||||
|
class KRYLON():
|
||||||
|
|
||||||
|
def __init__(self,bot,channel):
|
||||||
|
self.bot = bot
|
||||||
|
self.channel = channel
|
||||||
|
self.KRYLON_FILE = ['MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMms:-/NMMMMMMMMMMMMMMMMMMMMNmmdddmNMMMMMMMMMMMMMMMMMMMMMy+ohMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMN+....`sMMMMMMMMMMMMMMNds+:.--:::::-.-:oymMMMMMMMMMMMMMMh`...-yMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMmo-.` ..mMMMMMMMMMMNy/.-/shmNNNNNNNNmmho/-.+hMMMMMMMMMMN-.` `..:hMMMMMMMMMMMMMMMMMM', 'MMMMMNMMMMMMNh+.`` `.dMMMMMMMmo.-odNMMMMMMMMMMMMMMMMMNh+--sNMMMMMMN/`` `.:smMMMMMMMMMMMMMMM', 'MMMMMd+sys+:.` `/dMMMNo`:hNMMMMMMMMMMMMMMMMMMMMMMMms-.yMMMNy. `.:oydddyhMMMMMMM', 'MMMMMMh:` ```-+s-.yNMMMMMMMMMMMMMMMMMMMMMMMMMMMmo`/y/. ``.sMMMMMMMM', 'MMMMMMMNmysosyhdh+ -ohmmmmd/ :mMMMMMMMMNNMMMMMMMMMMMNNMMMMMMMMh. +hhhyo:` -+so+/:/+ymMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMo :dNMMMMMMd`:mMMMMMNds/::/ohNMMMMMh:..-yMMMMMMMd`-NMMMMMms. :NMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMdsNMMMMMMMN-`dMMMMNm/` `:dNMMN` dMMMMMMMy +MMMMMMMN+hMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMy oNMMMMN: .mMMNo. `/NMMMMMMMN-`NMMMMMMMMNMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMM/ hMMMMMm` dNMMMmhhdNMMMMMMMMNo yMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMM: mMMMMMNo :mMMMMMMMMMMMMMMMMMMs sMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMM/ dMMMMMMNs-` .omMMMMMMMMMMMMMMMMMMMo yMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMo yMMMMMMMMNhyooshmNMMMMMMMMMMMMMMMMMMMN+ dMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMy oNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN- NMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMm :NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMm`-MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMM.`mMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMy oMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMM+ yMMMNhdMMMMMMMMMMMMMMMMMMMMMMNNMMMMN: dMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMm`-mdo- oNMMMMMNMMMMMMMMNMMMMMMh-+hNMh`:MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMs -./o +NMMMm+sNMMMMMNh:yNMMMN: /.-o-`mMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMsymMm :NMmo.``hMMMMd/`/.-yNMh /MNh/-dMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM -mo.-hm..mMm+`:dMNo.-y: dMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM.`..yMMMd`:s..hMMMMMNo` /MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM-.sNMMMMMs `sNMMMMMMMMNomMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMdNMMMMMMMMsmMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM']
|
||||||
|
self.__run__()
|
||||||
|
|
||||||
|
def __run__(self):
|
||||||
|
self.KRYLON_FILE.reverse()
|
||||||
|
self.FILE_BUFFER=[]
|
||||||
|
for _ in self.KRYLON_FILE:
|
||||||
|
self.FILE_BUFFER.append(_)
|
||||||
|
self.FILE_LINES = len(self.KRYLON_FILE)
|
||||||
|
self.INIT = 0
|
||||||
|
self.STARTED = 0
|
||||||
|
self.FINISHED = 0
|
||||||
|
self.FILE_INDEX = 0
|
||||||
|
# BITWISE FILE LOCK SET
|
||||||
|
self.KRYLON_FILE_LOCK = []
|
||||||
|
for _ in range(len(self.KRYLON_FILE)):
|
||||||
|
self.KRYLON_FILE_LOCK.append(1)
|
||||||
|
# BITWISE R/W BOT LOCK SET
|
||||||
|
self.BOTS_MODE_LOCK = []
|
||||||
|
for _ in range(len(READY_BOTS)):
|
||||||
|
self.BOTS_MODE_LOCK.append(zip('1','1'))
|
||||||
|
# BITWISE R/W BOT LOCK UNSET
|
||||||
|
R=[]; W=[]; _X=-1; _Y=-1;
|
||||||
|
for _ in range(len(READY_BOTS)):
|
||||||
|
_X,_Y=list(self.BOTS_MODE_LOCK[_])[0]
|
||||||
|
R.append(int(_X))
|
||||||
|
W.append(int(_Y))
|
||||||
|
self.BOTS_MODE_READ=R
|
||||||
|
self.BOTS_MODE_WRIT=W
|
||||||
|
|
||||||
|
@irc3.plugin
|
||||||
|
class Plugin(object):
|
||||||
|
|
||||||
|
def __init__(self, context):
|
||||||
|
self.log = context.log
|
||||||
|
self.context = context
|
||||||
|
self.channel = context.config.channel
|
||||||
|
self._ST8 = 0
|
||||||
|
|
||||||
|
def __emoj(self,s):
|
||||||
|
emote_db = '%s/emote.db' % dir_path
|
||||||
|
emoj = random.choice(list(open(emote_db)))
|
||||||
|
random.randint(0,1)
|
||||||
|
if random.randint(0,1) == 0:
|
||||||
|
emoj = "\x0304{}\x0F".format(emoj)
|
||||||
|
else:
|
||||||
|
emoj = "\x0303{}\x0F".format(emoj)
|
||||||
|
s = s + ' ▶ ' + emoj
|
||||||
|
return s
|
||||||
|
|
||||||
|
def __greet(self):
|
||||||
|
greet_db = '%s/greet.db' % dir_path
|
||||||
|
greet = random.choice(list(open(greet_db)))
|
||||||
|
return greet
|
||||||
|
|
||||||
|
def __symbol(self):
|
||||||
|
symbol_db = '%s/symbol.db' % dir_path
|
||||||
|
symbol = random.choice(list(open(symbol_db)))
|
||||||
|
return symbol
|
||||||
|
|
||||||
|
def rotate(self):
|
||||||
|
self.b1n+=1
|
||||||
|
if self.b1n == len(BOTNICKS):
|
||||||
|
self.b1n=0
|
||||||
|
ipdb.set_trace()
|
||||||
|
|
||||||
|
def spraying(self, mask, channel, **kw):
|
||||||
|
|
||||||
|
PTR = KRYPTR[0]
|
||||||
|
PTR.kbr = []; PTR.kbw = []; PTR.kbl = [];
|
||||||
|
PTR.chn = channel
|
||||||
|
|
||||||
|
for index in range(len(PTR.BOTS_MODE_READ)):
|
||||||
|
PTR.kbr.append(PTR.BOTS_MODE_READ[index])
|
||||||
|
PTR.kbw.append(PTR.BOTS_MODE_WRIT[index])
|
||||||
|
PTR.kbl.append(PTR.KRYLON_FILE_LOCK[index])
|
||||||
|
|
||||||
|
PTR.fbu = PTR.FILE_BUFFER
|
||||||
|
PTR.fli = PTR.FILE_LINES
|
||||||
|
PTR.fin = PTR.FILE_INDEX
|
||||||
|
BOTNAMES=','.join(self.context.config.botnet.keys()).split(',')
|
||||||
|
PTR.bna = BOTNAMES
|
||||||
|
BOTNICKS=[]
|
||||||
|
for _ in BOTNAMES:
|
||||||
|
BOTNICKS.append(self.context.config.botnet[_].nick)
|
||||||
|
PTR.bni = BOTNICKS
|
||||||
|
PTR.b1n = BOTNICKS.index(self.context.nick)
|
||||||
|
PTR.int = 0
|
||||||
|
|
||||||
|
if PTR.INIT == 0:
|
||||||
|
PTR._ST8 = 0
|
||||||
|
PTR.INIT = 1
|
||||||
|
print('<<<<<<> JUST INIT <>>>>>>') # test if initialized for first pass, fails on purpose
|
||||||
|
PTR.STARTED = 1
|
||||||
|
PTR.FINISHED = 0
|
||||||
|
PTR.exe = 1 # set to recognize execution
|
||||||
|
PTR.cyc = 0 # how many cycles within this operation, e.g. amount of bots pass through this function
|
||||||
|
PTR.ops = 0 # how many completed operations, cycles reset, ops continue to count
|
||||||
|
|
||||||
|
#ipdb.set_trace()
|
||||||
|
|
||||||
|
for y in range(len(PTR.bni)):
|
||||||
|
if not y == PTR.b1n:
|
||||||
|
PTR.kbr[y] = 0
|
||||||
|
else:
|
||||||
|
PTR.kbw[y] = 1
|
||||||
|
|
||||||
|
PTR.who = self.context.nick
|
||||||
|
MSG=PTR.fbu.pop()
|
||||||
|
PTR.what = MSG
|
||||||
|
PTR.fin+=1
|
||||||
|
NEWBOT=','.join(list(self.context.config.botnet.keys())).split(',')[PTR.b1n]
|
||||||
|
print(PTR.bni)
|
||||||
|
print(PTR.bna)
|
||||||
|
print(PTR.b1n)
|
||||||
|
print(PTR.bni[PTR.b1n])
|
||||||
|
print(PTR.bna[PTR.b1n])
|
||||||
|
print("WHO:{} NEWBOT:{}".format(PTR.who,NEWBOT))
|
||||||
|
self.context.privmsg(PTR.chn,MSG)
|
||||||
|
|
||||||
|
if PTR._ST8 <= 5 and PTR.int == 1:
|
||||||
|
INTERRUPTED = 0
|
||||||
|
PTR.int = INTERRUPTED
|
||||||
|
PTR._ST8 = 3
|
||||||
|
|
||||||
|
@irc3.event(irc3.rfc.JOIN)
|
||||||
|
def welcome(self, mask, channel, **kw):
|
||||||
|
|
||||||
|
if LOCK_KRYLON == 1:
|
||||||
|
B0T = self.context
|
||||||
|
B0TNAMES=','.join(self.context.config.botnet.keys()).split(',')
|
||||||
|
B0TN1CKS=[]
|
||||||
|
for _ in B0TNAMES:
|
||||||
|
B0TN1CKS.append(self.context.config.botnet[_].nick)
|
||||||
|
|
||||||
|
for i,B0T.nick in enumerate(B0TN1CKS):
|
||||||
|
if B0TN1CKS[i] == B0T.nick:
|
||||||
|
NFLAG=1
|
||||||
|
for _ in READY_BOTS:
|
||||||
|
if B0T.nick == _:
|
||||||
|
NFLAG=0
|
||||||
|
|
||||||
|
if NFLAG==1:
|
||||||
|
READY_BOTS.append(self.context.nick)
|
||||||
|
BOTCNT = len(self.context.config.botnet)
|
||||||
|
|
||||||
|
if len(READY_BOTS) == BOTCNT:
|
||||||
|
BOTNICKS=B0TN1CKS
|
||||||
|
BOTNAMES=B0TNAMES
|
||||||
|
TOTAL_BOTS = BOTCNT;
|
||||||
|
BOT=self.context
|
||||||
|
CHN=channel
|
||||||
|
k=KRYLON(BOT,CHN)
|
||||||
|
KRYPTR.append(k)
|
||||||
|
self.spraying(mask,channel,**kw)
|
||||||
|
|
||||||
|
@irc3.event(irc3.rfc.CONNECTED)
|
||||||
|
def connected(self, **kw):
|
||||||
|
|
||||||
|
if LOCK_KRYLON == 1:
|
||||||
|
self.context.join(self.channel)
|
||||||
|
|
||||||
|
|
||||||
|
@irc3.event(rfc.PRIVMSG, iotype="out")
|
||||||
|
def krylon_event(bot, mask=None, event=None, target=None, data=None):
|
||||||
|
NICK=bot.context.nick
|
||||||
|
CHANNEL=bot.channel
|
||||||
|
MSG="CHANNEL: {} event out: {}".format(CHANNEL,NICK)
|
||||||
|
print(MSG)
|
||||||
|
# ipdb.set_trace()
|
||||||
|
PTR = KRYPTR[0]
|
||||||
|
B0T=bot.context
|
||||||
|
B1N = PTR.bni.index(B0T.nick)
|
||||||
|
|
||||||
|
print("OUTPUT:{}".format(bot.context.nick))
|
||||||
|
|
||||||
|
@irc3.event(irc3.rfc.PRIVMSG, iotype="in")
|
||||||
|
def on_privmsg(self, mask=None, data=None, **kw):
|
||||||
|
|
||||||
|
# B0T=self.context
|
||||||
|
|
||||||
|
# print(data)
|
||||||
|
bot = self
|
||||||
|
NICK=bot.context.nick
|
||||||
|
CHANNEL=bot.channel
|
||||||
|
MSG="CHANNEL: {} event out: {}".format(CHANNEL,NICK)
|
||||||
|
print(MSG)
|
||||||
|
# ipdb.set_trace()
|
||||||
|
PTR = KRYPTR[0]
|
||||||
|
B0T=bot.context
|
||||||
|
B1N = PTR.bni.index(B0T.nick)
|
||||||
|
|
||||||
|
print("INPUT:{}".format(bot.context.nick))
|
||||||
|
|
||||||
|
WTF=0
|
||||||
|
|
||||||
|
if mask.nick == 'd':
|
||||||
|
self.context.privmsg('#b0ts3x','dont interrupt me mofo')
|
||||||
|
PTR.int = 1
|
||||||
|
PTR.FILE_BUFFER=[]
|
||||||
|
for _ in PTR.KRYLON_FILE:
|
||||||
|
PTR.FILE_BUFFER.append(_)
|
||||||
|
PTR.fbu = PTR.FILE_BUFFER
|
||||||
|
PTR.INIT = 0
|
||||||
|
PTR.fin=0
|
||||||
|
PTR.b1n=0
|
||||||
|
PTR.FINISHED = 0
|
||||||
|
self.spraying(mask,channel,**kw)
|
||||||
|
return
|
||||||
|
|
||||||
|
if PTR.who == mask.nick and PTR.STARTED == 1 and PTR.FINISHED == 0 and PTR.what == data and PTR.fin < PTR.fli:
|
||||||
|
|
||||||
|
|
||||||
|
PTR.fin+=1
|
||||||
|
PTR.b1n+=1
|
||||||
|
if PTR.b1n == len(PTR.bni):
|
||||||
|
PTR.b1n=0
|
||||||
|
|
||||||
|
PTR.who = PTR.bni[PTR.b1n]
|
||||||
|
MSG=PTR.fbu.pop()
|
||||||
|
PTR.what = MSG
|
||||||
|
NEWBOT=','.join(list(bot.context.config.botnet.keys())).split(',')[PTR.b1n]
|
||||||
|
print(NEWBOT)
|
||||||
|
bot.context.config.botnet[NEWBOT].privmsg(CHANNEL,MSG)
|
||||||
|
|
||||||
|
if PTR.fin == PTR.fli:
|
||||||
|
sys.exit(0)
|
||||||
|
|
254
5.hack.txt
Normal file
254
5.hack.txt
Normal file
@ -0,0 +1,254 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from irc3.plugins.command import command
|
||||||
|
import irc3
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import random
|
||||||
|
import ipdb
|
||||||
|
from random import randint
|
||||||
|
from re import compile
|
||||||
|
from irc3 import rfc
|
||||||
|
|
||||||
|
dir_path = os.path.dirname(os.path.realpath(__file__))
|
||||||
|
|
||||||
|
KRYPTR = []
|
||||||
|
BOTNAMES = []
|
||||||
|
BOTNICKS = []
|
||||||
|
TOTAL_BOTS = 0
|
||||||
|
READY_BOTS = []
|
||||||
|
LOCK_KRYLON = 1 # 1
|
||||||
|
INTERRUPTED = 0
|
||||||
|
|
||||||
|
class KRYLON():
|
||||||
|
|
||||||
|
def __init__(self,bot,channel):
|
||||||
|
self.bot = bot
|
||||||
|
self.channel = channel
|
||||||
|
self.KRYLON_FILE = [' ┌------------------------------------------─┐', ' d"\' \' \' H A C K >> T H E >> P L A N E T \' \' \'"a', " '$r └------------------------------------------─┘ e$'", ' .a$ $a.', ' .e$$²² . ²²$$e.', ' $$4. "$s .4$$', ' `²$$$$$$$$$$sp. sP$#\'" .ps$$$$$$$$$$²`', ' ²²²$$$$ :$$$s_ o $$$$²²²', ' `²$$$$$$$$$$sp. .ps$ "s$$$$s : $$$$', ' $$$ $$$$$ ···$$$$e --──── .── |$$$$| ---─────────┘ $$$$1', ' . "$ss" ░ $$$$ ░ $$$$B$┐ ░ a$$ |$$$$\' ░░░░░ ░░ ░ $$$$0', ' .$ $$$$ $$$$ "$$ $$$ ░ °X°" $$$$', '$" ░ .eP7$²²²²²7e$$$$ee\' $$$$ "$$e.$$$ ░ .$$$²² .eP7$²²²²²7e$$$$$$$$$$7\' //', 'ss ░░ $$$$² $$$$ $$$$ 1 ╚$$$$$ ░ $$$$ $$$$² $$$$1 .', '`²²"\'.r ░░░ $$$$ ░░▓▓▓ $$$$ $$$$ O░ $$$$ $$$$ `"²$ $$$$0 ░░░ $.', ' .a$ ░░░ 0└$$7, ▀▀▀ $$$$ $$$$ 1▓▓░ $$$$ $$$$ └$$7, ░▓▓▄ $ $$$$1 ░░░ "$', '.e$$²² ░░░░1 $$$: \\s$$$$$$ $$$$ ▀▀ $$$$ $$$$ $$$: ▀▀ $ $$$$ ░░░ ss', '$$4. `"└└└=-- `$$$$ $$$$ .a$e"\' e"$$$w\' `"└└└=s// $$$$ ░░░ r."²²`', '`²$$$$$$$$$$sp. $$$$ ░ `²$$sP²²²²" `` "$ $$$$ ░░░ $a.', ' ²²²$$$$ ░░░░░░░ "└$$ ░░ ░░ ░░░░░░░ `"└$$ ²²$$e.', ' 1$$$$ ░░░░░░░░ "$ ░░░░░░ ░░░░░░░░░░░░ `$ .4$$', ' 0$$$$ ░░░░░░ e\' ░░░░ $$$$²² \'e ░░░░ " .ps$$$$$$$$$$²`', " ░ 1$$$$ ░░░░░░░ $$o.. ░░░░ $$$$ ..o$$ ░░░░ '7$$$$$$ $$$$²²²", ' $$$$ `²$$$$$ ░░ $$$$ $$$$$²` $$$$ ░░ $$$$', ' \'7$$$$$$$$e7²²²²²$7Pe. "$$$$ $$$$ ²²²$$$$e7²²²²²$7Pe. $$$$e ▄▓░ $$$$1░░░', ' $$$$ 1²$$$ $$$$ ""$ $$$$ $$$$ ²$$$ $$$$B$┐▀▀ $$$$0░░░', ' ░ $$$$ ░░░░░0 $$$$ $$$$ ░░ $ $$$$ ░ $$$$ ░░░░░ $$$$ $$$$ "$$ $$$$1░░', ' $$$$ ▀▓▓▓1 $$$$ $$$$ ▓▓░ $ $$$$ ▓░ $$$$ ░▓▓▄ ,7$$┘ $$$$ "$$e.$$$$', " \\ '7$$$$$$╗ 0.$$$$ $$$$ ▀▀ $$ $$$$ ▀ $$$$ ▀▀ :$$$ $$$$ ░ ╚$$$$$$7' //", ' $$$$ "$$. $$$" $$$$ .$$P $$$$ 1 $$$$ --=┘┘┘"` $$$$ $$$$$', ' $$$$ $$$$$$$" $$$$s$$╝ $$$$ 0 $$$$` "²²$ $$$$sss// "$$$', ' $$┘" "²²" $P╝" "e$$ 1²²$$$$ "$$$ $$┘"` $$', ' $" ` ┌─────────"───── -- - "$ ── "╚$$ ───--- ²²² ── $" ------··· `" 5m', ' : " "$', " o '"]
|
||||||
|
self.__run__()
|
||||||
|
|
||||||
|
def __run__(self):
|
||||||
|
self.KRYLON_FILE.reverse()
|
||||||
|
self.FILE_BUFFER=[]
|
||||||
|
for _ in self.KRYLON_FILE:
|
||||||
|
self.FILE_BUFFER.append(_)
|
||||||
|
self.FILE_LINES = len(self.KRYLON_FILE)
|
||||||
|
self.INIT = 0
|
||||||
|
self.STARTED = 0
|
||||||
|
self.FINISHED = 0
|
||||||
|
self.FILE_INDEX = 0
|
||||||
|
# BITWISE FILE LOCK SET
|
||||||
|
self.KRYLON_FILE_LOCK = []
|
||||||
|
for _ in range(len(self.KRYLON_FILE)):
|
||||||
|
self.KRYLON_FILE_LOCK.append(1)
|
||||||
|
# BITWISE R/W BOT LOCK SET
|
||||||
|
self.BOTS_MODE_LOCK = []
|
||||||
|
for _ in range(len(READY_BOTS)):
|
||||||
|
self.BOTS_MODE_LOCK.append(zip('1','1'))
|
||||||
|
# BITWISE R/W BOT LOCK UNSET
|
||||||
|
R=[]; W=[]; _X=-1; _Y=-1;
|
||||||
|
for _ in range(len(READY_BOTS)):
|
||||||
|
_X,_Y=list(self.BOTS_MODE_LOCK[_])[0]
|
||||||
|
R.append(int(_X))
|
||||||
|
W.append(int(_Y))
|
||||||
|
self.BOTS_MODE_READ=R
|
||||||
|
self.BOTS_MODE_WRIT=W
|
||||||
|
|
||||||
|
@irc3.plugin
|
||||||
|
class Plugin(object):
|
||||||
|
|
||||||
|
def __init__(self, context):
|
||||||
|
self.log = context.log
|
||||||
|
self.context = context
|
||||||
|
self.channel = context.config.channel
|
||||||
|
self._ST8 = 0
|
||||||
|
|
||||||
|
def __emoj(self,s):
|
||||||
|
emote_db = '%s/emote.db' % dir_path
|
||||||
|
emoj = random.choice(list(open(emote_db)))
|
||||||
|
random.randint(0,1)
|
||||||
|
if random.randint(0,1) == 0:
|
||||||
|
emoj = "\x0304{}\x0F".format(emoj)
|
||||||
|
else:
|
||||||
|
emoj = "\x0303{}\x0F".format(emoj)
|
||||||
|
s = s + ' ▶ ' + emoj
|
||||||
|
return s
|
||||||
|
|
||||||
|
def __greet(self):
|
||||||
|
greet_db = '%s/greet.db' % dir_path
|
||||||
|
greet = random.choice(list(open(greet_db)))
|
||||||
|
return greet
|
||||||
|
|
||||||
|
def __symbol(self):
|
||||||
|
symbol_db = '%s/symbol.db' % dir_path
|
||||||
|
symbol = random.choice(list(open(symbol_db)))
|
||||||
|
return symbol
|
||||||
|
|
||||||
|
def rotate(self):
|
||||||
|
self.b1n+=1
|
||||||
|
if self.b1n == len(BOTNICKS):
|
||||||
|
self.b1n=0
|
||||||
|
ipdb.set_trace()
|
||||||
|
|
||||||
|
def spraying(self, mask, channel, **kw):
|
||||||
|
|
||||||
|
PTR = KRYPTR[0]
|
||||||
|
PTR.kbr = []; PTR.kbw = []; PTR.kbl = [];
|
||||||
|
PTR.chn = channel
|
||||||
|
|
||||||
|
for index in range(len(PTR.BOTS_MODE_READ)):
|
||||||
|
PTR.kbr.append(PTR.BOTS_MODE_READ[index])
|
||||||
|
PTR.kbw.append(PTR.BOTS_MODE_WRIT[index])
|
||||||
|
PTR.kbl.append(PTR.KRYLON_FILE_LOCK[index])
|
||||||
|
|
||||||
|
PTR.fbu = PTR.FILE_BUFFER
|
||||||
|
PTR.fli = PTR.FILE_LINES
|
||||||
|
PTR.fin = PTR.FILE_INDEX
|
||||||
|
BOTNAMES=','.join(self.context.config.botnet.keys()).split(',')
|
||||||
|
PTR.bna = BOTNAMES
|
||||||
|
BOTNICKS=[]
|
||||||
|
for _ in BOTNAMES:
|
||||||
|
BOTNICKS.append(self.context.config.botnet[_].nick)
|
||||||
|
PTR.bni = BOTNICKS
|
||||||
|
PTR.b1n = BOTNICKS.index(self.context.nick)
|
||||||
|
PTR.int = 0
|
||||||
|
|
||||||
|
if PTR.INIT == 0:
|
||||||
|
PTR._ST8 = 0
|
||||||
|
PTR.INIT = 1
|
||||||
|
print('<<<<<<> JUST INIT <>>>>>>') # test if initialized for first pass, fails on purpose
|
||||||
|
PTR.STARTED = 1
|
||||||
|
PTR.FINISHED = 0
|
||||||
|
PTR.exe = 1 # set to recognize execution
|
||||||
|
PTR.cyc = 0 # how many cycles within this operation, e.g. amount of bots pass through this function
|
||||||
|
PTR.ops = 0 # how many completed operations, cycles reset, ops continue to count
|
||||||
|
|
||||||
|
#ipdb.set_trace()
|
||||||
|
|
||||||
|
for y in range(len(PTR.bni)):
|
||||||
|
if not y == PTR.b1n:
|
||||||
|
PTR.kbr[y] = 0
|
||||||
|
else:
|
||||||
|
PTR.kbw[y] = 1
|
||||||
|
|
||||||
|
PTR.who = self.context.nick
|
||||||
|
MSG=PTR.fbu.pop()
|
||||||
|
PTR.what = MSG
|
||||||
|
PTR.fin+=1
|
||||||
|
NEWBOT=','.join(list(self.context.config.botnet.keys())).split(',')[PTR.b1n]
|
||||||
|
print(PTR.bni)
|
||||||
|
print(PTR.bna)
|
||||||
|
print(PTR.b1n)
|
||||||
|
print(PTR.bni[PTR.b1n])
|
||||||
|
print(PTR.bna[PTR.b1n])
|
||||||
|
print("WHO:{} NEWBOT:{}".format(PTR.who,NEWBOT))
|
||||||
|
self.context.privmsg(PTR.chn,MSG)
|
||||||
|
|
||||||
|
if PTR._ST8 <= 5 and PTR.int == 1:
|
||||||
|
INTERRUPTED = 0
|
||||||
|
PTR.int = INTERRUPTED
|
||||||
|
PTR._ST8 = 3
|
||||||
|
|
||||||
|
@irc3.event(irc3.rfc.JOIN)
|
||||||
|
def welcome(self, mask, channel, **kw):
|
||||||
|
|
||||||
|
if LOCK_KRYLON == 1:
|
||||||
|
B0T = self.context
|
||||||
|
B0TNAMES=','.join(self.context.config.botnet.keys()).split(',')
|
||||||
|
B0TN1CKS=[]
|
||||||
|
for _ in B0TNAMES:
|
||||||
|
B0TN1CKS.append(self.context.config.botnet[_].nick)
|
||||||
|
|
||||||
|
for i,B0T.nick in enumerate(B0TN1CKS):
|
||||||
|
if B0TN1CKS[i] == B0T.nick:
|
||||||
|
NFLAG=1
|
||||||
|
for _ in READY_BOTS:
|
||||||
|
if B0T.nick == _:
|
||||||
|
NFLAG=0
|
||||||
|
|
||||||
|
if NFLAG==1:
|
||||||
|
READY_BOTS.append(self.context.nick)
|
||||||
|
BOTCNT = len(self.context.config.botnet)
|
||||||
|
|
||||||
|
if len(READY_BOTS) == BOTCNT:
|
||||||
|
BOTNICKS=B0TN1CKS
|
||||||
|
BOTNAMES=B0TNAMES
|
||||||
|
TOTAL_BOTS = BOTCNT;
|
||||||
|
BOT=self.context
|
||||||
|
CHN=channel
|
||||||
|
k=KRYLON(BOT,CHN)
|
||||||
|
KRYPTR.append(k)
|
||||||
|
self.spraying(mask,channel,**kw)
|
||||||
|
|
||||||
|
@irc3.event(irc3.rfc.CONNECTED)
|
||||||
|
def connected(self, **kw):
|
||||||
|
|
||||||
|
if LOCK_KRYLON == 1:
|
||||||
|
self.context.join(self.channel)
|
||||||
|
|
||||||
|
|
||||||
|
@irc3.event(rfc.PRIVMSG, iotype="out")
|
||||||
|
def krylon_event(bot, mask=None, event=None, target=None, data=None):
|
||||||
|
NICK=bot.context.nick
|
||||||
|
CHANNEL=bot.channel
|
||||||
|
MSG="CHANNEL: {} event out: {}".format(CHANNEL,NICK)
|
||||||
|
print(MSG)
|
||||||
|
# ipdb.set_trace()
|
||||||
|
PTR = KRYPTR[0]
|
||||||
|
B0T=bot.context
|
||||||
|
B1N = PTR.bni.index(B0T.nick)
|
||||||
|
|
||||||
|
print("OUTPUT:{}".format(bot.context.nick))
|
||||||
|
|
||||||
|
@irc3.event(irc3.rfc.PRIVMSG, iotype="in")
|
||||||
|
def on_privmsg(self, mask=None, data=None, **kw):
|
||||||
|
|
||||||
|
# B0T=self.context
|
||||||
|
|
||||||
|
# print(data)
|
||||||
|
bot = self
|
||||||
|
NICK=bot.context.nick
|
||||||
|
CHANNEL=bot.channel
|
||||||
|
MSG="CHANNEL: {} event out: {}".format(CHANNEL,NICK)
|
||||||
|
print(MSG)
|
||||||
|
# ipdb.set_trace()
|
||||||
|
PTR = KRYPTR[0]
|
||||||
|
B0T=bot.context
|
||||||
|
B1N = PTR.bni.index(B0T.nick)
|
||||||
|
|
||||||
|
print("INPUT:{}".format(bot.context.nick))
|
||||||
|
|
||||||
|
WTF=0
|
||||||
|
|
||||||
|
if mask.nick == 'd':
|
||||||
|
self.context.privmsg('#b0ts3x','dont interrupt me mofo')
|
||||||
|
PTR.int = 1
|
||||||
|
PTR.FILE_BUFFER=[]
|
||||||
|
for _ in PTR.KRYLON_FILE:
|
||||||
|
PTR.FILE_BUFFER.append(_)
|
||||||
|
PTR.fbu = PTR.FILE_BUFFER
|
||||||
|
PTR.INIT = 0
|
||||||
|
PTR.fin=0
|
||||||
|
PTR.b1n=0
|
||||||
|
PTR.FINISHED = 0
|
||||||
|
self.spraying(mask,channel,**kw)
|
||||||
|
return
|
||||||
|
|
||||||
|
if PTR.who == mask.nick and PTR.STARTED == 1 and PTR.FINISHED == 0 and PTR.what == data and PTR.fin < PTR.fli:
|
||||||
|
|
||||||
|
|
||||||
|
PTR.fin+=1
|
||||||
|
PTR.b1n+=1
|
||||||
|
if PTR.b1n == len(PTR.bni):
|
||||||
|
PTR.b1n=0
|
||||||
|
|
||||||
|
PTR.who = PTR.bni[PTR.b1n]
|
||||||
|
MSG=PTR.fbu.pop()
|
||||||
|
PTR.what = MSG
|
||||||
|
NEWBOT=','.join(list(bot.context.config.botnet.keys())).split(',')[PTR.b1n]
|
||||||
|
print(NEWBOT)
|
||||||
|
bot.context.config.botnet[NEWBOT].privmsg(CHANNEL,MSG)
|
||||||
|
|
||||||
|
if PTR.fin == PTR.fli:
|
||||||
|
sys.exit(0)
|
||||||
|
|
254
6.tskull.txt
Normal file
254
6.tskull.txt
Normal file
@ -0,0 +1,254 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from irc3.plugins.command import command
|
||||||
|
import irc3
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import random
|
||||||
|
import ipdb
|
||||||
|
from random import randint
|
||||||
|
from re import compile
|
||||||
|
from irc3 import rfc
|
||||||
|
|
||||||
|
dir_path = os.path.dirname(os.path.realpath(__file__))
|
||||||
|
|
||||||
|
KRYPTR = []
|
||||||
|
BOTNAMES = []
|
||||||
|
BOTNICKS = []
|
||||||
|
TOTAL_BOTS = 0
|
||||||
|
READY_BOTS = []
|
||||||
|
LOCK_KRYLON = 1 # 1
|
||||||
|
INTERRUPTED = 0
|
||||||
|
|
||||||
|
class KRYLON():
|
||||||
|
|
||||||
|
def __init__(self,bot,channel):
|
||||||
|
self.bot = bot
|
||||||
|
self.channel = channel
|
||||||
|
self.KRYLON_FILE = [' .................', ' .syhhso++++++++/++osyyhys+.', ' -oddyo+o+++++++++++++++o+oo+osdms:', ' :dmyo++oosssssssssssssssooooooo+/+ymm+`', ' hmyo++ossyyhhddddddddddddhyyyssss+//+ymd-', ' -mho+oosyhhhddmmmmmmmmmmmmmmddhhyyyso+//+hN+', ' my+++syhhhhdmmNNNNNNNNNNNNmmmmmdhhyyyyo//+sd:', ' hs//+oyhhhhdmNNNNNNNNNNNNNNNNNNmmdhyhhhyo//++y', ' s+++shddhhdmmNNNNNNNNNNNNNNNNNNNNmdhhhdhyo/++/', " 'hs+shmmmddmNNNNNNNNNNNNNNNNNNNNNmddddddhs+oh/", ' shsshdmmmmmNNMMMMMMMMMMMNNNNNNNNmmmmmmdhssdh-', ' +ssohdmmmmNNNNNMMMMMMMMNNNNNNmmmmmNNmdhhhs:`', ' -+oo++////++sydmNNNNNNNNNNNNNNNNNNNdyyys/--://+//:', ' d/+hmNNNmmdddhhhdmNNNNNNNNNNNNNNNmdhyyyhhhddmmNmdyd-', ' ++--+ymNMMNNNNNNmmmmNNNNNNNNNNNmdhddmNNMMMMMMNmhyss', ' /d+` -+ydmNMMMMMMNNmNMMMMMMMmmmmNNMMMMMNNmh- :sdo', ' sNo ` /ohdmNNMMMMNNMMMMMNNNMMMMMNmdyo/ ` hNh', " M+' ``-/oyhmNNMNhNMNhNMMMMNmho/ ` 'MN/", " ar' `-+osydh0w.nzmNNmho: 'co:", ' +o/ ` :oo+:s :+o/-` -dds', " :hdo x `-/ooss:':+ooo: ` 0 :sdm+", " +dNNNh+ :ydmNNm' `sddmyo +hmNmds", ' dhNMMNNNNmddhsyhdmmNNNM: NNmNmhyo+oyyyhmNMMNmysd', ' adNNNNNh+/++rhmMMMMNMNh cNNNNNNNmho++++yddhysso', " `:sNMMMMN' `mNMNNNd/`", ' XXXXXXXXX y/hMMNm/ .arco. -hdmdy: ` XXXXXXX', ' XXXXXXXX `o+hNNds. -ymNNy- .yhys+/`` XXXXXX', ' XXXXXXXX +-+//o/+odMNMMMNdmh++////-/s XXXXXX', ' XXXXXXX mhNd -+d/+myo++ysy/hs -mNsdh/ XXXXXX', ' XXXXXXXX mhMN+ dMm-/-smy-::dMN/sMMmdo XXXXXX', ' XXXXXXXXXX NMy+NMMh oMMMs yMMMyNMMs+ XXXXXXX', ' XXXXXXXXXXX dy-hMMm+dMMMdoNMMh ydo XXXXXXXXX', " XXXXXXXXXXXXX smm 'NMMy dms sm XXXXXXXXXX", ' XXXXXXXXXXXXXX XXXXXXXXXXX', ' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', ' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', ' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', ' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', ' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', ' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', ' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', ' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', ' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXER0']
|
||||||
|
self.__run__()
|
||||||
|
|
||||||
|
def __run__(self):
|
||||||
|
self.KRYLON_FILE.reverse()
|
||||||
|
self.FILE_BUFFER=[]
|
||||||
|
for _ in self.KRYLON_FILE:
|
||||||
|
self.FILE_BUFFER.append(_)
|
||||||
|
self.FILE_LINES = len(self.KRYLON_FILE)
|
||||||
|
self.INIT = 0
|
||||||
|
self.STARTED = 0
|
||||||
|
self.FINISHED = 0
|
||||||
|
self.FILE_INDEX = 0
|
||||||
|
# BITWISE FILE LOCK SET
|
||||||
|
self.KRYLON_FILE_LOCK = []
|
||||||
|
for _ in range(len(self.KRYLON_FILE)):
|
||||||
|
self.KRYLON_FILE_LOCK.append(1)
|
||||||
|
# BITWISE R/W BOT LOCK SET
|
||||||
|
self.BOTS_MODE_LOCK = []
|
||||||
|
for _ in range(len(READY_BOTS)):
|
||||||
|
self.BOTS_MODE_LOCK.append(zip('1','1'))
|
||||||
|
# BITWISE R/W BOT LOCK UNSET
|
||||||
|
R=[]; W=[]; _X=-1; _Y=-1;
|
||||||
|
for _ in range(len(READY_BOTS)):
|
||||||
|
_X,_Y=list(self.BOTS_MODE_LOCK[_])[0]
|
||||||
|
R.append(int(_X))
|
||||||
|
W.append(int(_Y))
|
||||||
|
self.BOTS_MODE_READ=R
|
||||||
|
self.BOTS_MODE_WRIT=W
|
||||||
|
|
||||||
|
@irc3.plugin
|
||||||
|
class Plugin(object):
|
||||||
|
|
||||||
|
def __init__(self, context):
|
||||||
|
self.log = context.log
|
||||||
|
self.context = context
|
||||||
|
self.channel = context.config.channel
|
||||||
|
self._ST8 = 0
|
||||||
|
|
||||||
|
def __emoj(self,s):
|
||||||
|
emote_db = '%s/emote.db' % dir_path
|
||||||
|
emoj = random.choice(list(open(emote_db)))
|
||||||
|
random.randint(0,1)
|
||||||
|
if random.randint(0,1) == 0:
|
||||||
|
emoj = "\x0304{}\x0F".format(emoj)
|
||||||
|
else:
|
||||||
|
emoj = "\x0303{}\x0F".format(emoj)
|
||||||
|
s = s + ' ▶ ' + emoj
|
||||||
|
return s
|
||||||
|
|
||||||
|
def __greet(self):
|
||||||
|
greet_db = '%s/greet.db' % dir_path
|
||||||
|
greet = random.choice(list(open(greet_db)))
|
||||||
|
return greet
|
||||||
|
|
||||||
|
def __symbol(self):
|
||||||
|
symbol_db = '%s/symbol.db' % dir_path
|
||||||
|
symbol = random.choice(list(open(symbol_db)))
|
||||||
|
return symbol
|
||||||
|
|
||||||
|
def rotate(self):
|
||||||
|
self.b1n+=1
|
||||||
|
if self.b1n == len(BOTNICKS):
|
||||||
|
self.b1n=0
|
||||||
|
ipdb.set_trace()
|
||||||
|
|
||||||
|
def spraying(self, mask, channel, **kw):
|
||||||
|
|
||||||
|
PTR = KRYPTR[0]
|
||||||
|
PTR.kbr = []; PTR.kbw = []; PTR.kbl = [];
|
||||||
|
PTR.chn = channel
|
||||||
|
|
||||||
|
for index in range(len(PTR.BOTS_MODE_READ)):
|
||||||
|
PTR.kbr.append(PTR.BOTS_MODE_READ[index])
|
||||||
|
PTR.kbw.append(PTR.BOTS_MODE_WRIT[index])
|
||||||
|
PTR.kbl.append(PTR.KRYLON_FILE_LOCK[index])
|
||||||
|
|
||||||
|
PTR.fbu = PTR.FILE_BUFFER
|
||||||
|
PTR.fli = PTR.FILE_LINES
|
||||||
|
PTR.fin = PTR.FILE_INDEX
|
||||||
|
BOTNAMES=','.join(self.context.config.botnet.keys()).split(',')
|
||||||
|
PTR.bna = BOTNAMES
|
||||||
|
BOTNICKS=[]
|
||||||
|
for _ in BOTNAMES:
|
||||||
|
BOTNICKS.append(self.context.config.botnet[_].nick)
|
||||||
|
PTR.bni = BOTNICKS
|
||||||
|
PTR.b1n = BOTNICKS.index(self.context.nick)
|
||||||
|
PTR.int = 0
|
||||||
|
|
||||||
|
if PTR.INIT == 0:
|
||||||
|
PTR._ST8 = 0
|
||||||
|
PTR.INIT = 1
|
||||||
|
print('<<<<<<> JUST INIT <>>>>>>') # test if initialized for first pass, fails on purpose
|
||||||
|
PTR.STARTED = 1
|
||||||
|
PTR.FINISHED = 0
|
||||||
|
PTR.exe = 1 # set to recognize execution
|
||||||
|
PTR.cyc = 0 # how many cycles within this operation, e.g. amount of bots pass through this function
|
||||||
|
PTR.ops = 0 # how many completed operations, cycles reset, ops continue to count
|
||||||
|
|
||||||
|
#ipdb.set_trace()
|
||||||
|
|
||||||
|
for y in range(len(PTR.bni)):
|
||||||
|
if not y == PTR.b1n:
|
||||||
|
PTR.kbr[y] = 0
|
||||||
|
else:
|
||||||
|
PTR.kbw[y] = 1
|
||||||
|
|
||||||
|
PTR.who = self.context.nick
|
||||||
|
MSG=PTR.fbu.pop()
|
||||||
|
PTR.what = MSG
|
||||||
|
PTR.fin+=1
|
||||||
|
NEWBOT=','.join(list(self.context.config.botnet.keys())).split(',')[PTR.b1n]
|
||||||
|
print(PTR.bni)
|
||||||
|
print(PTR.bna)
|
||||||
|
print(PTR.b1n)
|
||||||
|
print(PTR.bni[PTR.b1n])
|
||||||
|
print(PTR.bna[PTR.b1n])
|
||||||
|
print("WHO:{} NEWBOT:{}".format(PTR.who,NEWBOT))
|
||||||
|
self.context.privmsg(PTR.chn,MSG)
|
||||||
|
|
||||||
|
if PTR._ST8 <= 5 and PTR.int == 1:
|
||||||
|
INTERRUPTED = 0
|
||||||
|
PTR.int = INTERRUPTED
|
||||||
|
PTR._ST8 = 3
|
||||||
|
|
||||||
|
@irc3.event(irc3.rfc.JOIN)
|
||||||
|
def welcome(self, mask, channel, **kw):
|
||||||
|
|
||||||
|
if LOCK_KRYLON == 1:
|
||||||
|
B0T = self.context
|
||||||
|
B0TNAMES=','.join(self.context.config.botnet.keys()).split(',')
|
||||||
|
B0TN1CKS=[]
|
||||||
|
for _ in B0TNAMES:
|
||||||
|
B0TN1CKS.append(self.context.config.botnet[_].nick)
|
||||||
|
|
||||||
|
for i,B0T.nick in enumerate(B0TN1CKS):
|
||||||
|
if B0TN1CKS[i] == B0T.nick:
|
||||||
|
NFLAG=1
|
||||||
|
for _ in READY_BOTS:
|
||||||
|
if B0T.nick == _:
|
||||||
|
NFLAG=0
|
||||||
|
|
||||||
|
if NFLAG==1:
|
||||||
|
READY_BOTS.append(self.context.nick)
|
||||||
|
BOTCNT = len(self.context.config.botnet)
|
||||||
|
|
||||||
|
if len(READY_BOTS) == BOTCNT:
|
||||||
|
BOTNICKS=B0TN1CKS
|
||||||
|
BOTNAMES=B0TNAMES
|
||||||
|
TOTAL_BOTS = BOTCNT;
|
||||||
|
BOT=self.context
|
||||||
|
CHN=channel
|
||||||
|
k=KRYLON(BOT,CHN)
|
||||||
|
KRYPTR.append(k)
|
||||||
|
self.spraying(mask,channel,**kw)
|
||||||
|
|
||||||
|
@irc3.event(irc3.rfc.CONNECTED)
|
||||||
|
def connected(self, **kw):
|
||||||
|
|
||||||
|
if LOCK_KRYLON == 1:
|
||||||
|
self.context.join(self.channel)
|
||||||
|
|
||||||
|
|
||||||
|
@irc3.event(rfc.PRIVMSG, iotype="out")
|
||||||
|
def krylon_event(bot, mask=None, event=None, target=None, data=None):
|
||||||
|
NICK=bot.context.nick
|
||||||
|
CHANNEL=bot.channel
|
||||||
|
MSG="CHANNEL: {} event out: {}".format(CHANNEL,NICK)
|
||||||
|
print(MSG)
|
||||||
|
# ipdb.set_trace()
|
||||||
|
PTR = KRYPTR[0]
|
||||||
|
B0T=bot.context
|
||||||
|
B1N = PTR.bni.index(B0T.nick)
|
||||||
|
|
||||||
|
print("OUTPUT:{}".format(bot.context.nick))
|
||||||
|
|
||||||
|
@irc3.event(irc3.rfc.PRIVMSG, iotype="in")
|
||||||
|
def on_privmsg(self, mask=None, data=None, **kw):
|
||||||
|
|
||||||
|
# B0T=self.context
|
||||||
|
|
||||||
|
# print(data)
|
||||||
|
bot = self
|
||||||
|
NICK=bot.context.nick
|
||||||
|
CHANNEL=bot.channel
|
||||||
|
MSG="CHANNEL: {} event out: {}".format(CHANNEL,NICK)
|
||||||
|
print(MSG)
|
||||||
|
# ipdb.set_trace()
|
||||||
|
PTR = KRYPTR[0]
|
||||||
|
B0T=bot.context
|
||||||
|
B1N = PTR.bni.index(B0T.nick)
|
||||||
|
|
||||||
|
print("INPUT:{}".format(bot.context.nick))
|
||||||
|
|
||||||
|
WTF=0
|
||||||
|
|
||||||
|
if mask.nick == 'd':
|
||||||
|
self.context.privmsg('#b0ts3x','dont interrupt me mofo')
|
||||||
|
PTR.int = 1
|
||||||
|
PTR.FILE_BUFFER=[]
|
||||||
|
for _ in PTR.KRYLON_FILE:
|
||||||
|
PTR.FILE_BUFFER.append(_)
|
||||||
|
PTR.fbu = PTR.FILE_BUFFER
|
||||||
|
PTR.INIT = 0
|
||||||
|
PTR.fin=0
|
||||||
|
PTR.b1n=0
|
||||||
|
PTR.FINISHED = 0
|
||||||
|
self.spraying(mask,channel,**kw)
|
||||||
|
return
|
||||||
|
|
||||||
|
if PTR.who == mask.nick and PTR.STARTED == 1 and PTR.FINISHED == 0 and PTR.what == data and PTR.fin < PTR.fli:
|
||||||
|
|
||||||
|
|
||||||
|
PTR.fin+=1
|
||||||
|
PTR.b1n+=1
|
||||||
|
if PTR.b1n == len(PTR.bni):
|
||||||
|
PTR.b1n=0
|
||||||
|
|
||||||
|
PTR.who = PTR.bni[PTR.b1n]
|
||||||
|
MSG=PTR.fbu.pop()
|
||||||
|
PTR.what = MSG
|
||||||
|
NEWBOT=','.join(list(bot.context.config.botnet.keys())).split(',')[PTR.b1n]
|
||||||
|
print(NEWBOT)
|
||||||
|
bot.context.config.botnet[NEWBOT].privmsg(CHANNEL,MSG)
|
||||||
|
|
||||||
|
if PTR.fin == PTR.fli:
|
||||||
|
sys.exit(0)
|
||||||
|
|
BIN
7.acid.txt
Normal file
BIN
7.acid.txt
Normal file
Binary file not shown.
81
README.md
Normal file
81
README.md
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
# krylon - art spam micro botnet logic - old engine v1.0, not the v2.0 i will be working on soon.
|
||||||
|
```
|
||||||
|
.oydddhhyo+/-.
|
||||||
|
`hddddhhddddddddhso/.
|
||||||
|
.dddh. ``..-:+ohdh-
|
||||||
|
__ .__ -ddddds/-` -sd/`
|
||||||
|
| | _________ ___.__.| | ____ ____ :dd//sdddhys+/:-` sdy-.
|
||||||
|
| |/ /\_ __ < | || | / _ \ / \ ody `yhdhddddddhhs/:+ddd/
|
||||||
|
| < | | \/\___ || |_( <_> ) | \ yd/ .hdh.hdhshddddddddddy
|
||||||
|
|__|_ \ |__| / ____||____/\____/|___| / `dh. `yddo:dd: ``-/+odddddo
|
||||||
|
\/ \/ \/ :hy +dddyhddhyo:. .sddddy:
|
||||||
|
+hy hddhdddhsyhdhohdddy:`
|
||||||
|
hdd` hdd/+hdhs//hddddy/`
|
||||||
|
.dddo`odd` .+yddddddh/`
|
||||||
|
`.--:://+-ydddyyds `+ddddh+`
|
||||||
|
.oso+. `:oyhhhddddddy.-odddd+ `:ydddh+.
|
||||||
|
:hddddh+`+ddddhyso++//+../ohddhyydddds.
|
||||||
|
+hdddds::..sdd/.` -hso+oosyyhyo+-
|
||||||
|
`odddhshy` `ody+-` -hdddy- ````+dh+
|
||||||
|
`sdddy- -ys. /hddhs/-` .:+s/ -dddo
|
||||||
|
`yddh. `oy/` .+hddddhso/-..```````.:ydddd+`++.
|
||||||
|
`/hy+.` :yy+.` `/shdddddddhyyyssyyhddddddd-+dh/`
|
||||||
|
`/yhs-` `/yhs/.` ./shddyyyyyhdddddddddddo`oddds
|
||||||
|
`++-/yhy+-` -ohdy+:`` `-:+oyyysddddddddho-.odddds
|
||||||
|
.sddhs:-+hdhs/.`.:shdhyo:.`` `..-/+osso/:.-ohddddd:
|
||||||
|
`/hddddy- -/shdhs/--/ohdddhys+/:--..--:+shdddddddy
|
||||||
|
.sddddh/ `-+yhddyo+osyddddddddddddddddddddddd:
|
||||||
|
/hddddo` `-/oyhdddhddddddddddddddddddddds
|
||||||
|
.sddddy- `-/+shdddddddddddddddddddh.
|
||||||
|
/hdddh/ `.:/+osyhhhhhhys+/.
|
||||||
|
.:+syyy` .sddddo` /o.
|
||||||
|
.+ydddddddho- `-+ddddy- sdd+
|
||||||
|
-sddddddhsoydddhhdddddh: .----. hddy
|
||||||
|
-sddddds/.`ohdddddddddd+` .:oyddddddddy/` .ddd+
|
||||||
|
`odddddo. .ydddddhddddh- -+ydddddddhhhddddh/ +ddd-
|
||||||
|
/hddddh: .yhddo-.``odd/ .+hddddho/-.` `:ohhho` `hddh
|
||||||
|
-ydddddd- `yddd: od. -sddddh+-` `/yho oddd:
|
||||||
|
`+ddddddd+ +ddd: .d` .sdddds:` -ddodddy
|
||||||
|
-ydddh/hdd. `hddo h- `/hdddy- yddddh.
|
||||||
|
ydddo` hhy -ddh` so .` `sdddh/` .ddddd:
|
||||||
|
ddd+ shy :ddo -h/.``:/ `ydddy. sdddd/
|
||||||
|
hdd: /dh :dd/ :hhyhs` oddds` odddd/
|
||||||
|
odd/ `dd` .dd/ `/o/` `ddds` `sdddh:
|
||||||
|
.hdo od/ sdo .ddd- -ydddh-
|
||||||
|
+dh` `hy -dh` `hdd- `+hddds.
|
||||||
|
`yd+ /d/ od+ +dd/ `/hdddh/`
|
||||||
|
.hd/ oh- `yh- `sdh. ./ydddds-
|
||||||
|
-hd/ `yh- .yh. `odh+. `-ohddddy:`
|
||||||
|
.yd/ `yh- .yh: :yhhs+:----/oydddddy/`
|
||||||
|
.sdo` .yh: `sdo` `/ydddddddddddddy/`
|
||||||
|
`ody. `oy/` `+hy:` `-ohddddddddy/`
|
||||||
|
/hs-` `+sy- -yds- `` `./shdddddho-
|
||||||
|
-yy+. :hdo` `/hds:` -:.`` ``./sddddddho:`
|
||||||
|
`odh/` -ydh/` .+hdy+-` .syysyhddddddyo:`
|
||||||
|
:hdy- `+hdy/` .+hddhs+:---yddddddy+sd/
|
||||||
|
`ohds- .ohdy/. `:shddddddddddddd:.ydh`
|
||||||
|
.shds:`-sdddo:` `:oyhhdddddddd+hddd-
|
||||||
|
-sddho::shddho:` `.-://///ohddh-
|
||||||
|
.+hdddsoydddddyo/-.` `odddy.
|
||||||
|
-ohddddddddddddddhhyhhddd+
|
||||||
|
-+sdddddddddddddddddh-
|
||||||
|
.:+osyhdddddhys+`
|
||||||
|
```
|
||||||
|
|
||||||
|
# INSTALL:
|
||||||
|
|
||||||
|
## NOTES:
|
||||||
|
```
|
||||||
|
- install python3 `apt install python3`
|
||||||
|
- install python3-pip `apt install python3-pip`
|
||||||
|
- install python3-venv `python3 -m pip install virtualenv`
|
||||||
|
```
|
||||||
|
|
||||||
|
## COMMANDS:
|
||||||
|
```
|
||||||
|
- `git clone --recursive https://git.tcp.direct/decoded/krylon`
|
||||||
|
- `cd krylon`
|
||||||
|
- `python3 -m venv .env`
|
||||||
|
- `. .env/bin/activate`
|
||||||
|
- `python3 -m pip install --upgrade pip -r requirements.txt`
|
||||||
|
- `bash run.sh` or `bash run_debug.sh` or `bash run_artop.sh` or `irc3 .krylon_config`
|
19
plugins/b33p.py
Normal file
19
plugins/b33p.py
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from irc3.plugins.command import command
|
||||||
|
import irc3
|
||||||
|
|
||||||
|
@irc3.plugin
|
||||||
|
class Plugin:
|
||||||
|
|
||||||
|
def __init__(self, bot):
|
||||||
|
self.bot = bot
|
||||||
|
|
||||||
|
@command(permission='view')
|
||||||
|
def b33p(self, mask, target, args):
|
||||||
|
"""b33p an irc b0t, it should b00p back
|
||||||
|
%%b33p <dubstep>...
|
||||||
|
"""
|
||||||
|
robostep='{}: b00p'.format(mask.nick)
|
||||||
|
roooboot = ''.join(args['<dubstep>'])
|
||||||
|
if roooboot == self.bot.nick:
|
||||||
|
self.bot.privmsg(target,robostep)
|
426
plugins/emote.db
Normal file
426
plugins/emote.db
Normal file
@ -0,0 +1,426 @@
|
|||||||
|
¢‿¢
|
||||||
|
©¿© o
|
||||||
|
ª{•̃̾_•̃̾}ª
|
||||||
|
¬_¬
|
||||||
|
¯\(º_o)/¯
|
||||||
|
¯\(º o)/¯
|
||||||
|
¯\_(⊙︿⊙)_/¯
|
||||||
|
¯\_(ツ)_/¯
|
||||||
|
°ω°
|
||||||
|
°Д°
|
||||||
|
°‿‿°
|
||||||
|
°ﺑ°
|
||||||
|
´ ▽ ` )ノ
|
||||||
|
¿ⓧ_ⓧﮌ
|
||||||
|
Ò,ó
|
||||||
|
ó‿ó
|
||||||
|
ô⌐ô
|
||||||
|
ôヮô
|
||||||
|
ŎםŎ
|
||||||
|
ŏﺡó
|
||||||
|
ʕ•̫͡•ʔ
|
||||||
|
ʕ•ᴥ•ʔ
|
||||||
|
ʘ‿ʘ
|
||||||
|
˚•_•˚
|
||||||
|
˚⌇˚
|
||||||
|
˚▱˚
|
||||||
|
̿ ̿̿'̿'\̵͇̿̿\=(•̪●)=/̵͇̿̿/'̿̿ ̿ ̿ ̿
|
||||||
|
͡° ͜ʖ ͡°
|
||||||
|
Σ ◕ ◡ ◕
|
||||||
|
Σ (゚Д゚;)
|
||||||
|
Σ(゚Д゚;≡;゚д゚)
|
||||||
|
Σ(゚Д゚ )
|
||||||
|
Σ(||゚Д゚)
|
||||||
|
Φ,Φ
|
||||||
|
δﺡό
|
||||||
|
σ_σ
|
||||||
|
д_д
|
||||||
|
ф_ф
|
||||||
|
щ(゚Д゚щ)
|
||||||
|
щ(ಠ益ಠщ)
|
||||||
|
щ(ಥДಥщ)
|
||||||
|
Ծ_Ծ
|
||||||
|
أ‿أ
|
||||||
|
ب_ب
|
||||||
|
ح˚௰˚づ
|
||||||
|
ح˚ᆺ˚ว
|
||||||
|
حᇂﮌᇂ)
|
||||||
|
٩๏̯͡๏۶
|
||||||
|
٩๏̯͡๏)۶
|
||||||
|
٩◔̯◔۶
|
||||||
|
٩(×̯×)۶
|
||||||
|
٩(̾●̮̮̃̾•̃̾)۶
|
||||||
|
٩(͡๏̯͡๏)۶
|
||||||
|
٩(͡๏̯ ͡๏)۶
|
||||||
|
٩(ಥ_ಥ)۶
|
||||||
|
٩(•̮̮̃•̃)۶
|
||||||
|
٩(●̮̮̃•̃)۶
|
||||||
|
٩(●̮̮̃●̃)۶
|
||||||
|
٩(。͡•‿•。)۶
|
||||||
|
٩(-̮̮̃•̃)۶
|
||||||
|
٩(-̮̮̃-̃)۶
|
||||||
|
۞_۞
|
||||||
|
۞_۟۞
|
||||||
|
۹ↁﮌↁ
|
||||||
|
۹⌤_⌤۹
|
||||||
|
॓_॔
|
||||||
|
१✌◡✌५
|
||||||
|
१|˚–˚|५
|
||||||
|
ਉ_ਉ
|
||||||
|
ଘ_ଘ
|
||||||
|
இ_இ
|
||||||
|
ఠ_ఠ
|
||||||
|
రృర
|
||||||
|
ಠ¿ಠi
|
||||||
|
ಠ‿ಠ
|
||||||
|
ಠ⌣ಠ
|
||||||
|
ಠ╭╮ಠ
|
||||||
|
ಠ▃ಠ
|
||||||
|
ಠ◡ಠ
|
||||||
|
ಠ益ಠ
|
||||||
|
ಠ益ಠ
|
||||||
|
ಠ︵ಠ凸
|
||||||
|
ಠ , ಥ
|
||||||
|
ಠ.ಠ
|
||||||
|
ಠoಠ
|
||||||
|
ಠ_ృ
|
||||||
|
ಠ_ಠ
|
||||||
|
ಠ_๏
|
||||||
|
ಠ~ಠ
|
||||||
|
ಡ_ಡ
|
||||||
|
ತಎತ
|
||||||
|
ತ_ತ
|
||||||
|
ಥдಥ
|
||||||
|
ಥ‿ಥ
|
||||||
|
ಥ⌣ಥ
|
||||||
|
ಥ◡ಥ
|
||||||
|
ಥ﹏ಥ
|
||||||
|
ಥ_ಥ
|
||||||
|
ಭ_ಭ
|
||||||
|
ರ_ರ
|
||||||
|
ಸ , ໖
|
||||||
|
ಸ_ಸ
|
||||||
|
ക_ക
|
||||||
|
อ้_อ้
|
||||||
|
อ_อ
|
||||||
|
โ๏௰๏ใ ื
|
||||||
|
๏̯͡๏﴿
|
||||||
|
๏̯͡๏
|
||||||
|
๏̯͡๏﴿
|
||||||
|
๏[-ิิ_•ิ]๏
|
||||||
|
๏_๏
|
||||||
|
໖_໖
|
||||||
|
ლ(´ڡ`ლ)
|
||||||
|
ლ(́◉◞౪◟◉‵ლ)
|
||||||
|
ლ(ಠ益ಠლ)
|
||||||
|
ლ(╹◡╹ლ)
|
||||||
|
ლ(◉◞౪◟◉‵ლ)
|
||||||
|
ლ,ᔑ•ﺪ͟͠•ᔐ.ლ
|
||||||
|
ᄽὁȍ ̪ őὀᄿ
|
||||||
|
ᕕ( ᐛ )ᕗ
|
||||||
|
ᕙ(⇀‸↼‶)ᕗ
|
||||||
|
ᕦ(ò_óˇ)ᕤ
|
||||||
|
ᶘ ᵒᴥᵒᶅ
|
||||||
|
‘︿’
|
||||||
|
•▱•
|
||||||
|
•✞_✞•
|
||||||
|
•ﺑ•
|
||||||
|
•(⌚_⌚)•
|
||||||
|
•_•)
|
||||||
|
‷̗ↂ凸ↂ‴̖
|
||||||
|
‹•.•›
|
||||||
|
‹› ‹(•¿•)› ‹›
|
||||||
|
‹(ᵒᴥᵒ)›
|
||||||
|
‹(•¿•)›
|
||||||
|
ↁ_ↁ
|
||||||
|
⇎_⇎
|
||||||
|
∩(︶▽︶)∩
|
||||||
|
∩( ・ω・)∩
|
||||||
|
≖‿≖
|
||||||
|
≧ヮ≦
|
||||||
|
⊂•⊃_⊂•⊃
|
||||||
|
⊂⌒~⊃。Д。)⊃
|
||||||
|
⊂(◉‿◉)つ
|
||||||
|
⊂(゚Д゚,,⊂⌒`つ
|
||||||
|
⊙ω⊙
|
||||||
|
⊙▂⊙
|
||||||
|
⊙▃⊙
|
||||||
|
⊙△⊙
|
||||||
|
⊙︿⊙
|
||||||
|
⊙﹏⊙
|
||||||
|
⊙0⊙
|
||||||
|
⊛ठ̯⊛
|
||||||
|
⋋ō_ō`
|
||||||
|
━━━ヽ(ヽ(゚ヽ(゚ヽ(゚゚ヽ(゚゚)ノ゚゚)ノ゚)ノ゚)ノ)ノ━━━
|
||||||
|
┌∩┐(◕_◕)┌∩┐
|
||||||
|
┌( ಠ_ಠ)┘
|
||||||
|
┌( ಥ_ಥ)┘
|
||||||
|
╚(•⌂•)╝
|
||||||
|
╭╮╭╮☜{•̃̾_•̃̾}☞╭╮╭╮
|
||||||
|
╭✬⌢✬╮
|
||||||
|
╮(▽)╭
|
||||||
|
╯‵Д′)╯彡┻━┻
|
||||||
|
╰☆╮
|
||||||
|
□_□
|
||||||
|
►_◄
|
||||||
|
◃┆◉◡◉┆▷
|
||||||
|
◉△◉
|
||||||
|
◉︵◉
|
||||||
|
◉_◉
|
||||||
|
○_○
|
||||||
|
●¿●\ ~
|
||||||
|
●_●
|
||||||
|
◔̯◔
|
||||||
|
◔ᴗ◔
|
||||||
|
◔ ⌣ ◔
|
||||||
|
◔_◔
|
||||||
|
◕ω◕
|
||||||
|
◕‿◕
|
||||||
|
◕◡◕
|
||||||
|
◕ ◡ ◕
|
||||||
|
◖♪_♪|◗
|
||||||
|
◖|◔◡◉|◗
|
||||||
|
◘_◘
|
||||||
|
◙‿◙
|
||||||
|
◜㍕◝
|
||||||
|
◪_◪
|
||||||
|
◮_◮
|
||||||
|
☁ ☝ˆ~ˆ☂
|
||||||
|
☆¸☆
|
||||||
|
☉‿⊙
|
||||||
|
☉_☉
|
||||||
|
☐_☐
|
||||||
|
☜ق❂Ⴢ❂ق☞
|
||||||
|
☜(⌒▽⌒)☞
|
||||||
|
☜(゚ヮ゚☜)
|
||||||
|
☜-(ΘLΘ)-☞
|
||||||
|
☝☞✌
|
||||||
|
☮▁▂▃▄☾ ♛ ◡ ♛ ☽▄▃▂▁☮
|
||||||
|
☹_☹
|
||||||
|
☻_☻
|
||||||
|
☼.☼
|
||||||
|
☾˙❀‿❀˙☽
|
||||||
|
♀ح♀ヾ
|
||||||
|
♥‿♥
|
||||||
|
♥╣[-_-]╠♥
|
||||||
|
♥╭╮♥
|
||||||
|
♥◡♥
|
||||||
|
✌♫♪˙❤‿❤˙♫♪✌
|
||||||
|
✌.ʕʘ‿ʘʔ.✌
|
||||||
|
✌.|•͡˘‿•͡˘|.✌
|
||||||
|
✖‿✖
|
||||||
|
✖_✖
|
||||||
|
❐‿❑
|
||||||
|
_
|
||||||
|
_Ꙩ
|
||||||
|
⨂_⨂
|
||||||
|
〆(・・@)
|
||||||
|
《〠_〠》
|
||||||
|
【•】_【•】
|
||||||
|
〠_〠
|
||||||
|
〴⋋_⋌〵
|
||||||
|
の<EFBFBD> <20>の
|
||||||
|
ニガー? ━━━━━━(゚゚)━━━━━━ ニガー?
|
||||||
|
ペ㍕˚\
|
||||||
|
ヽ(´ー` )ノ
|
||||||
|
ヽ(๏๏ )ノ
|
||||||
|
ヽ(`Д´)ノ
|
||||||
|
ヽ(o`皿′o)ノ
|
||||||
|
ヽ(`Д´)ノ
|
||||||
|
ㅎ_ㅎ
|
||||||
|
乂◜◬◝乂
|
||||||
|
凸ಠ益ಠ)凸
|
||||||
|
句_句
|
||||||
|
Ꙩ⌵Ꙩ
|
||||||
|
Ꙩ_Ꙩ
|
||||||
|
ꙩ_ꙩ
|
||||||
|
Ꙫ_Ꙫ
|
||||||
|
ꙫ_ꙫ
|
||||||
|
ꙮ_ꙮ
|
||||||
|
흫_흫
|
||||||
|
句_句
|
||||||
|
﴾͡๏̯͡๏﴿ O'RLY?
|
||||||
|
¯\(ºдಠ)/¯
|
||||||
|
(·×·)
|
||||||
|
(⌒Д⌒)
|
||||||
|
(╹ェ╹)
|
||||||
|
(♯・・)⊃
|
||||||
|
( ´`)☆
|
||||||
|
( ´`)
|
||||||
|
(゜Д゜)
|
||||||
|
(・・)
|
||||||
|
(・A・)
|
||||||
|
(゚゚)
|
||||||
|
( ̄へ ̄)
|
||||||
|
( ´☣///_ゝ///☣`)
|
||||||
|
( つ Д `)
|
||||||
|
_☆( ´_⊃`)☆_
|
||||||
|
。◕‿‿◕。
|
||||||
|
。◕ ‿ ◕。
|
||||||
|
!⑈ˆ~ˆ!⑈
|
||||||
|
!(`・ω・。)
|
||||||
|
(¬‿¬)
|
||||||
|
(¬▂¬)
|
||||||
|
(¬_¬)
|
||||||
|
(°ℇ °)
|
||||||
|
(°°)
|
||||||
|
(´ω`)
|
||||||
|
(´◉◞౪◟◉)
|
||||||
|
(´ヘ`;)
|
||||||
|
(´・ω・`)
|
||||||
|
(´ー`)
|
||||||
|
(ʘ‿ʘ)
|
||||||
|
(ʘ_ʘ)
|
||||||
|
(˚இ˚)
|
||||||
|
(͡๏̯͡๏)
|
||||||
|
(ΘεΘ;)
|
||||||
|
(ι´Д`)ノ
|
||||||
|
(Ծ‸ Ծ)
|
||||||
|
(॓_॔)
|
||||||
|
(० ्०)
|
||||||
|
(ு८ு_ .:)
|
||||||
|
(ಠ‾ಠ)
|
||||||
|
(ಠ‿ʘ)
|
||||||
|
(ಠ‿ಠ)
|
||||||
|
(ಠ⌣ಠ)
|
||||||
|
(ಠ益ಠ ╬)
|
||||||
|
(ಠ益ಠ)
|
||||||
|
(ಠ_ృ)
|
||||||
|
(ಠ_ಠ)
|
||||||
|
(ಥ﹏ಥ)
|
||||||
|
(ಥ_ಥ)
|
||||||
|
(๏̯͡๏ )
|
||||||
|
(ღ˘⌣˘ღ) ♫・*:.。. .。.:*・
|
||||||
|
(ღ˘⌣˘ღ)
|
||||||
|
(ᵔᴥᵔ)
|
||||||
|
(•ω•)
|
||||||
|
(•‿•)
|
||||||
|
(•⊙ω⊙•)
|
||||||
|
(• ε •)
|
||||||
|
(∩▂∩)
|
||||||
|
(∩︵∩)
|
||||||
|
(∪ ◡ ∪)
|
||||||
|
(≧ω≦)
|
||||||
|
(≧◡≦)
|
||||||
|
(≧ロ≦)
|
||||||
|
(⊙ヮ⊙)
|
||||||
|
(⊙_◎)
|
||||||
|
(⋋▂⋌)
|
||||||
|
(⌐■_■)
|
||||||
|
(‿‿)
|
||||||
|
(┛◉Д◉)┛┻━┻
|
||||||
|
(╥_╥)
|
||||||
|
(╬ಠ益ಠ)
|
||||||
|
(╬◣д◢)
|
||||||
|
(╬ ಠ益ಠ)
|
||||||
|
(╯°□°)╯︵ ┻━┻
|
||||||
|
(╯ಊ╰)
|
||||||
|
(╯◕_◕)╯
|
||||||
|
(╯︵╰,)
|
||||||
|
(╯3╰)
|
||||||
|
(╯_╰)
|
||||||
|
(╹◡╹)凸
|
||||||
|
(▰˘◡˘▰)
|
||||||
|
(●´ω`●)
|
||||||
|
(●´`●)
|
||||||
|
(◑‿◐)
|
||||||
|
(◑◡◑)
|
||||||
|
(◕‿◕✿)
|
||||||
|
(◕‿◕)
|
||||||
|
(◕‿-)
|
||||||
|
(◕︵◕)
|
||||||
|
(◕ ^ ◕)
|
||||||
|
(◕_◕)
|
||||||
|
(◜௰◝)
|
||||||
|
(◡‿◡✿)
|
||||||
|
(◣_◢)
|
||||||
|
(☞゚゚)☞
|
||||||
|
(☞゚ヮ゚)☞
|
||||||
|
(☞゚ ゚ )☞
|
||||||
|
(☼◡☼)
|
||||||
|
(☼_☼)
|
||||||
|
(✌゚゚)☞
|
||||||
|
(✖╭╮✖)
|
||||||
|
(✪㉨✪)
|
||||||
|
(✿◠‿◠)
|
||||||
|
(✿ ♥‿♥)
|
||||||
|
( ・・)
|
||||||
|
( ・ัω・ั)?
|
||||||
|
( ゚゚)o彡゜えーりんえーりん!!
|
||||||
|
(。・_・。)
|
||||||
|
(つд`)
|
||||||
|
(づ。◕‿‿◕。)づ
|
||||||
|
(ノಠ益ಠ)ノ彡┻━┻
|
||||||
|
(ノ ◑‿◑)ノ
|
||||||
|
(ノ_・。)
|
||||||
|
(・・ )
|
||||||
|
(屮゚Д゚)屮
|
||||||
|
(︶ω︶)
|
||||||
|
(︶︹︺)
|
||||||
|
(ﺧ益ﺨ)
|
||||||
|
(;一_一)
|
||||||
|
(`・ω・´)”
|
||||||
|
(。◕‿‿◕。)
|
||||||
|
(。◕‿◕。)
|
||||||
|
(。◕ ‿ ◕。)
|
||||||
|
(。♥‿♥。)
|
||||||
|
(。・ω..・)っ
|
||||||
|
(・ェ-)
|
||||||
|
(ノ◕ヮ◕)ノ*:・゚✧
|
||||||
|
(゚Д゚)
|
||||||
|
(゚Д゚)y┛~~
|
||||||
|
(゚゚)
|
||||||
|
(゚ヮ゚)
|
||||||
|
( ̄□ ̄)
|
||||||
|
( ̄。 ̄)
|
||||||
|
( ̄ー ̄)
|
||||||
|
( ̄(エ) ̄)
|
||||||
|
( °٢° )
|
||||||
|
( ´_ゝ`)
|
||||||
|
( ͡° ͜ʖ ͡°)
|
||||||
|
( ͡~ ͜ʖ ͡°)
|
||||||
|
( ಠ◡ಠ )
|
||||||
|
( •_•)>⌐■-■
|
||||||
|
( ゚,_ゝ゚)
|
||||||
|
( ・ิз・ิ)
|
||||||
|
( ゚д゚)、
|
||||||
|
( ^▽^)σ)~O~)
|
||||||
|
((((゜д゜;))))
|
||||||
|
(*´д`*)
|
||||||
|
(*..Д`)
|
||||||
|
(*..д`*)
|
||||||
|
(*~▽~)
|
||||||
|
(-’๏_๏’-)
|
||||||
|
(-_- )ノ
|
||||||
|
(/◔ ◡ ◔)/
|
||||||
|
(///_ಥ)
|
||||||
|
(;´Д`)
|
||||||
|
(=ω=;)
|
||||||
|
(=゜ω゜)
|
||||||
|
(>'o')> ♥ <('o'<)
|
||||||
|
(n˘v˘•)¬
|
||||||
|
(o´ω`o)
|
||||||
|
(V)(°,,°)(V)
|
||||||
|
(\/) (°,,°) (\/)
|
||||||
|
(^▽^)
|
||||||
|
(`・ω・´)
|
||||||
|
(~ ̄▽ ̄)~
|
||||||
|
/╲/\╭ºoꍘoº╮/\╱\
|
||||||
|
<【☯】‿【☯】>
|
||||||
|
= (゚д゚)ウ
|
||||||
|
@_@
|
||||||
|
d(*⌒▽⌒*)b
|
||||||
|
o(≧≦)o
|
||||||
|
o(≧o≦)o
|
||||||
|
q(❂‿❂)p
|
||||||
|
y=ー( ゚д゚)・∵.
|
||||||
|
\˚ㄥ˚\
|
||||||
|
\ᇂ_ᇂ\
|
||||||
|
\(ಠ ὡ ಠ )/
|
||||||
|
\(◕ ◡ ◕\)
|
||||||
|
^̮^
|
||||||
|
^ㅂ^
|
||||||
|
_(͡๏̯͡๏)_
|
||||||
|
{´◕ ◡ ◕`}
|
||||||
|
{ಠ_ಠ}__,,|,
|
||||||
|
{◕ ◡ ◕}
|
106
plugins/greet.db
Normal file
106
plugins/greet.db
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
Hallo
|
||||||
|
Mirë dita
|
||||||
|
مرحبا
|
||||||
|
Салам
|
||||||
|
سلام
|
||||||
|
Kaixo
|
||||||
|
Zdravo
|
||||||
|
Olá
|
||||||
|
Oi
|
||||||
|
Demat
|
||||||
|
Здравейте
|
||||||
|
Hola
|
||||||
|
Moni
|
||||||
|
Bonghjornu
|
||||||
|
Bok
|
||||||
|
Ahoj
|
||||||
|
Hej
|
||||||
|
Hallo
|
||||||
|
Hello
|
||||||
|
Saluton
|
||||||
|
Tere
|
||||||
|
سلام
|
||||||
|
درود بر تو
|
||||||
|
درود بر شما
|
||||||
|
Bula
|
||||||
|
Kamusta
|
||||||
|
Hei
|
||||||
|
Terve
|
||||||
|
Bonjour
|
||||||
|
მიესალმები
|
||||||
|
miesalmebi
|
||||||
|
Hallo
|
||||||
|
Χαίρε
|
||||||
|
Hello
|
||||||
|
Aloha
|
||||||
|
שלום
|
||||||
|
नमस्ते
|
||||||
|
Sziasztok
|
||||||
|
Halo
|
||||||
|
Hai
|
||||||
|
Dia dhuit
|
||||||
|
Ciao
|
||||||
|
こんにちは
|
||||||
|
Kon'nichiwa
|
||||||
|
ನಮಸ್ಕಾರ
|
||||||
|
Namaskār
|
||||||
|
ជំរាបសួរ
|
||||||
|
안녕
|
||||||
|
Annyeong
|
||||||
|
ສະບາຍດີ
|
||||||
|
sabaidi
|
||||||
|
Salve
|
||||||
|
Sveiki
|
||||||
|
Hallau
|
||||||
|
Sveiki
|
||||||
|
Добар ден
|
||||||
|
Selamat tengahari
|
||||||
|
Ħelow
|
||||||
|
你好
|
||||||
|
Nǐ hǎo
|
||||||
|
Kia ora
|
||||||
|
नमस्ते
|
||||||
|
Namaste
|
||||||
|
Hei
|
||||||
|
ନମସ୍କାର
|
||||||
|
Namaskār
|
||||||
|
سلام
|
||||||
|
salam
|
||||||
|
Cześć
|
||||||
|
Hej
|
||||||
|
Olá
|
||||||
|
Oi
|
||||||
|
Buna
|
||||||
|
Привет
|
||||||
|
Preevyet
|
||||||
|
Talofa
|
||||||
|
Haló
|
||||||
|
Здраво
|
||||||
|
Zdravo
|
||||||
|
侬好
|
||||||
|
Noŋ hɔ
|
||||||
|
Mhoro
|
||||||
|
Ahoj
|
||||||
|
Zdravo
|
||||||
|
Hola
|
||||||
|
Grüss Gott
|
||||||
|
Hodi
|
||||||
|
Hej
|
||||||
|
Hallá
|
||||||
|
வனக்கம்
|
||||||
|
Vanakkam
|
||||||
|
Xin chào
|
||||||
|
Womenjeka
|
||||||
|
שלום
|
||||||
|
Sholem
|
||||||
|
வணக்கம்
|
||||||
|
Vanakaam
|
||||||
|
నమస్కారం
|
||||||
|
Namaskāram
|
||||||
|
สวัสดีค่ะ
|
||||||
|
Sawatdeekha
|
||||||
|
Merhaba
|
||||||
|
Chào bạn
|
||||||
|
Helo
|
||||||
|
העלא
|
||||||
|
Sawubona
|
254
plugins/krylon.py
Normal file
254
plugins/krylon.py
Normal file
@ -0,0 +1,254 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from irc3.plugins.command import command
|
||||||
|
import irc3
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import random
|
||||||
|
import ipdb
|
||||||
|
from random import randint
|
||||||
|
from re import compile
|
||||||
|
from irc3 import rfc
|
||||||
|
|
||||||
|
dir_path = os.path.dirname(os.path.realpath(__file__))
|
||||||
|
|
||||||
|
KRYPTR = []
|
||||||
|
BOTNAMES = []
|
||||||
|
BOTNICKS = []
|
||||||
|
TOTAL_BOTS = 0
|
||||||
|
READY_BOTS = []
|
||||||
|
LOCK_KRYLON = 1 # 1
|
||||||
|
INTERRUPTED = 0
|
||||||
|
|
||||||
|
class KRYLON():
|
||||||
|
|
||||||
|
def __init__(self,bot,channel):
|
||||||
|
self.bot = bot
|
||||||
|
self.channel = channel
|
||||||
|
self.KRYLON_FILE = ['MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMms:-/NMMMMMMMMMMMMMMMMMMMMNmmdddmNMMMMMMMMMMMMMMMMMMMMMy+ohMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMN+....`sMMMMMMMMMMMMMMNds+:.--:::::-.-:oymMMMMMMMMMMMMMMh`...-yMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMmo-.` ..mMMMMMMMMMMNy/.-/shmNNNNNNNNmmho/-.+hMMMMMMMMMMN-.` `..:hMMMMMMMMMMMMMMMMMM', 'MMMMMNMMMMMMNh+.`` `.dMMMMMMMmo.-odNMMMMMMMMMMMMMMMMMNh+--sNMMMMMMN/`` `.:smMMMMMMMMMMMMMMM', 'MMMMMd+sys+:.` `/dMMMNo`:hNMMMMMMMMMMMMMMMMMMMMMMMms-.yMMMNy. `.:oydddyhMMMMMMM', 'MMMMMMh:` ```-+s-.yNMMMMMMMMMMMMMMMMMMMMMMMMMMMmo`/y/. ``.sMMMMMMMM', 'MMMMMMMNmysosyhdh+ -ohmmmmd/ :mMMMMMMMMNNMMMMMMMMMMMNNMMMMMMMMh. +hhhyo:` -+so+/:/+ymMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMo :dNMMMMMMd`:mMMMMMNds/::/ohNMMMMMh:..-yMMMMMMMd`-NMMMMMms. :NMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMdsNMMMMMMMN-`dMMMMNm/` `:dNMMN` dMMMMMMMy +MMMMMMMN+hMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMy oNMMMMN: .mMMNo. `/NMMMMMMMN-`NMMMMMMMMNMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMM/ hMMMMMm` dNMMMmhhdNMMMMMMMMNo yMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMM: mMMMMMNo :mMMMMMMMMMMMMMMMMMMs sMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMM/ dMMMMMMNs-` .omMMMMMMMMMMMMMMMMMMMo yMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMo yMMMMMMMMNhyooshmNMMMMMMMMMMMMMMMMMMMN+ dMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMy oNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN- NMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMm :NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMm`-MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMM.`mMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMy oMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMM+ yMMMNhdMMMMMMMMMMMMMMMMMMMMMMNNMMMMN: dMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMm`-mdo- oNMMMMMNMMMMMMMMNMMMMMMh-+hNMh`:MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMs -./o +NMMMm+sNMMMMMNh:yNMMMN: /.-o-`mMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMsymMm :NMmo.``hMMMMd/`/.-yNMh /MNh/-dMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM -mo.-hm..mMm+`:dMNo.-y: dMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM.`..yMMMd`:s..hMMMMMNo` /MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM-.sNMMMMMs `sNMMMMMMMMNomMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMdNMMMMMMMMsmMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM', 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM']
|
||||||
|
self.__run__()
|
||||||
|
|
||||||
|
def __run__(self):
|
||||||
|
self.KRYLON_FILE.reverse()
|
||||||
|
self.FILE_BUFFER=[]
|
||||||
|
for _ in self.KRYLON_FILE:
|
||||||
|
self.FILE_BUFFER.append(_)
|
||||||
|
self.FILE_LINES = len(self.KRYLON_FILE)
|
||||||
|
self.INIT = 0
|
||||||
|
self.STARTED = 0
|
||||||
|
self.FINISHED = 0
|
||||||
|
self.FILE_INDEX = 0
|
||||||
|
# BITWISE FILE LOCK SET
|
||||||
|
self.KRYLON_FILE_LOCK = []
|
||||||
|
for _ in range(len(self.KRYLON_FILE)):
|
||||||
|
self.KRYLON_FILE_LOCK.append(1)
|
||||||
|
# BITWISE R/W BOT LOCK SET
|
||||||
|
self.BOTS_MODE_LOCK = []
|
||||||
|
for _ in range(len(READY_BOTS)):
|
||||||
|
self.BOTS_MODE_LOCK.append(zip('1','1'))
|
||||||
|
# BITWISE R/W BOT LOCK UNSET
|
||||||
|
R=[]; W=[]; _X=-1; _Y=-1;
|
||||||
|
for _ in range(len(READY_BOTS)):
|
||||||
|
_X,_Y=list(self.BOTS_MODE_LOCK[_])[0]
|
||||||
|
R.append(int(_X))
|
||||||
|
W.append(int(_Y))
|
||||||
|
self.BOTS_MODE_READ=R
|
||||||
|
self.BOTS_MODE_WRIT=W
|
||||||
|
|
||||||
|
@irc3.plugin
|
||||||
|
class Plugin(object):
|
||||||
|
|
||||||
|
def __init__(self, context):
|
||||||
|
self.log = context.log
|
||||||
|
self.context = context
|
||||||
|
self.channel = context.config.channel
|
||||||
|
self._ST8 = 0
|
||||||
|
|
||||||
|
def __emoj(self,s):
|
||||||
|
emote_db = '%s/emote.db' % dir_path
|
||||||
|
emoj = random.choice(list(open(emote_db)))
|
||||||
|
random.randint(0,1)
|
||||||
|
if random.randint(0,1) == 0:
|
||||||
|
emoj = "\x0304{}\x0F".format(emoj)
|
||||||
|
else:
|
||||||
|
emoj = "\x0303{}\x0F".format(emoj)
|
||||||
|
s = s + ' ▶ ' + emoj
|
||||||
|
return s
|
||||||
|
|
||||||
|
def __greet(self):
|
||||||
|
greet_db = '%s/greet.db' % dir_path
|
||||||
|
greet = random.choice(list(open(greet_db)))
|
||||||
|
return greet
|
||||||
|
|
||||||
|
def __symbol(self):
|
||||||
|
symbol_db = '%s/symbol.db' % dir_path
|
||||||
|
symbol = random.choice(list(open(symbol_db)))
|
||||||
|
return symbol
|
||||||
|
|
||||||
|
def rotate(self):
|
||||||
|
self.b1n+=1
|
||||||
|
if self.b1n == len(BOTNICKS):
|
||||||
|
self.b1n=0
|
||||||
|
ipdb.set_trace()
|
||||||
|
|
||||||
|
def spraying(self, mask, channel, **kw):
|
||||||
|
|
||||||
|
PTR = KRYPTR[0]
|
||||||
|
PTR.kbr = []; PTR.kbw = []; PTR.kbl = [];
|
||||||
|
PTR.chn = channel
|
||||||
|
|
||||||
|
for index in range(len(PTR.BOTS_MODE_READ)):
|
||||||
|
PTR.kbr.append(PTR.BOTS_MODE_READ[index])
|
||||||
|
PTR.kbw.append(PTR.BOTS_MODE_WRIT[index])
|
||||||
|
PTR.kbl.append(PTR.KRYLON_FILE_LOCK[index])
|
||||||
|
|
||||||
|
PTR.fbu = PTR.FILE_BUFFER
|
||||||
|
PTR.fli = PTR.FILE_LINES
|
||||||
|
PTR.fin = PTR.FILE_INDEX
|
||||||
|
BOTNAMES=','.join(self.context.config.botnet.keys()).split(',')
|
||||||
|
PTR.bna = BOTNAMES
|
||||||
|
BOTNICKS=[]
|
||||||
|
for _ in BOTNAMES:
|
||||||
|
BOTNICKS.append(self.context.config.botnet[_].nick)
|
||||||
|
PTR.bni = BOTNICKS
|
||||||
|
PTR.b1n = BOTNICKS.index(self.context.nick)
|
||||||
|
PTR.int = 0
|
||||||
|
|
||||||
|
if PTR.INIT == 0:
|
||||||
|
PTR._ST8 = 0
|
||||||
|
PTR.INIT = 1
|
||||||
|
print('<<<<<<> JUST INIT <>>>>>>') # test if initialized for first pass, fails on purpose
|
||||||
|
PTR.STARTED = 1
|
||||||
|
PTR.FINISHED = 0
|
||||||
|
PTR.exe = 1 # set to recognize execution
|
||||||
|
PTR.cyc = 0 # how many cycles within this operation, e.g. amount of bots pass through this function
|
||||||
|
PTR.ops = 0 # how many completed operations, cycles reset, ops continue to count
|
||||||
|
|
||||||
|
#ipdb.set_trace()
|
||||||
|
|
||||||
|
for y in range(len(PTR.bni)):
|
||||||
|
if not y == PTR.b1n:
|
||||||
|
PTR.kbr[y] = 0
|
||||||
|
else:
|
||||||
|
PTR.kbw[y] = 1
|
||||||
|
|
||||||
|
PTR.who = self.context.nick
|
||||||
|
MSG=PTR.fbu.pop()
|
||||||
|
PTR.what = MSG
|
||||||
|
PTR.fin+=1
|
||||||
|
NEWBOT=','.join(list(self.context.config.botnet.keys())).split(',')[PTR.b1n]
|
||||||
|
print(PTR.bni)
|
||||||
|
print(PTR.bna)
|
||||||
|
print(PTR.b1n)
|
||||||
|
print(PTR.bni[PTR.b1n])
|
||||||
|
print(PTR.bna[PTR.b1n])
|
||||||
|
print("WHO:{} NEWBOT:{}".format(PTR.who,NEWBOT))
|
||||||
|
self.context.privmsg(PTR.chn,MSG)
|
||||||
|
|
||||||
|
if PTR._ST8 <= 5 and PTR.int == 1:
|
||||||
|
INTERRUPTED = 0
|
||||||
|
PTR.int = INTERRUPTED
|
||||||
|
PTR._ST8 = 3
|
||||||
|
|
||||||
|
@irc3.event(irc3.rfc.JOIN)
|
||||||
|
def welcome(self, mask, channel, **kw):
|
||||||
|
|
||||||
|
if LOCK_KRYLON == 1:
|
||||||
|
B0T = self.context
|
||||||
|
B0TNAMES=','.join(self.context.config.botnet.keys()).split(',')
|
||||||
|
B0TN1CKS=[]
|
||||||
|
for _ in B0TNAMES:
|
||||||
|
B0TN1CKS.append(self.context.config.botnet[_].nick)
|
||||||
|
|
||||||
|
for i,B0T.nick in enumerate(B0TN1CKS):
|
||||||
|
if B0TN1CKS[i] == B0T.nick:
|
||||||
|
NFLAG=1
|
||||||
|
for _ in READY_BOTS:
|
||||||
|
if B0T.nick == _:
|
||||||
|
NFLAG=0
|
||||||
|
|
||||||
|
if NFLAG==1:
|
||||||
|
READY_BOTS.append(self.context.nick)
|
||||||
|
BOTCNT = len(self.context.config.botnet)
|
||||||
|
|
||||||
|
if len(READY_BOTS) == BOTCNT:
|
||||||
|
BOTNICKS=B0TN1CKS
|
||||||
|
BOTNAMES=B0TNAMES
|
||||||
|
TOTAL_BOTS = BOTCNT;
|
||||||
|
BOT=self.context
|
||||||
|
CHN=channel
|
||||||
|
k=KRYLON(BOT,CHN)
|
||||||
|
KRYPTR.append(k)
|
||||||
|
self.spraying(mask,channel,**kw)
|
||||||
|
|
||||||
|
@irc3.event(irc3.rfc.CONNECTED)
|
||||||
|
def connected(self, **kw):
|
||||||
|
|
||||||
|
if LOCK_KRYLON == 1:
|
||||||
|
self.context.join(self.channel)
|
||||||
|
|
||||||
|
|
||||||
|
@irc3.event(rfc.PRIVMSG, iotype="out")
|
||||||
|
def krylon_event(bot, mask=None, event=None, target=None, data=None):
|
||||||
|
NICK=bot.context.nick
|
||||||
|
CHANNEL=bot.channel
|
||||||
|
MSG="CHANNEL: {} event out: {}".format(CHANNEL,NICK)
|
||||||
|
print(MSG)
|
||||||
|
# ipdb.set_trace()
|
||||||
|
PTR = KRYPTR[0]
|
||||||
|
B0T=bot.context
|
||||||
|
B1N = PTR.bni.index(B0T.nick)
|
||||||
|
|
||||||
|
print("OUTPUT:{}".format(bot.context.nick))
|
||||||
|
|
||||||
|
@irc3.event(irc3.rfc.PRIVMSG, iotype="in")
|
||||||
|
def on_privmsg(self, mask=None, data=None, **kw):
|
||||||
|
|
||||||
|
# B0T=self.context
|
||||||
|
|
||||||
|
# print(data)
|
||||||
|
bot = self
|
||||||
|
NICK=bot.context.nick
|
||||||
|
CHANNEL=bot.channel
|
||||||
|
MSG="CHANNEL: {} event out: {}".format(CHANNEL,NICK)
|
||||||
|
print(MSG)
|
||||||
|
# ipdb.set_trace()
|
||||||
|
PTR = KRYPTR[0]
|
||||||
|
B0T=bot.context
|
||||||
|
B1N = PTR.bni.index(B0T.nick)
|
||||||
|
|
||||||
|
print("INPUT:{}".format(bot.context.nick))
|
||||||
|
|
||||||
|
WTF=0
|
||||||
|
|
||||||
|
if mask.nick == 'd':
|
||||||
|
self.context.privmsg('#b0ts3x','dont interrupt me mofo')
|
||||||
|
PTR.int = 1
|
||||||
|
PTR.FILE_BUFFER=[]
|
||||||
|
for _ in PTR.KRYLON_FILE:
|
||||||
|
PTR.FILE_BUFFER.append(_)
|
||||||
|
PTR.fbu = PTR.FILE_BUFFER
|
||||||
|
PTR.INIT = 0
|
||||||
|
PTR.fin=0
|
||||||
|
PTR.b1n=0
|
||||||
|
PTR.FINISHED = 0
|
||||||
|
self.spraying(mask,channel,**kw)
|
||||||
|
return
|
||||||
|
|
||||||
|
if PTR.who == mask.nick and PTR.STARTED == 1 and PTR.FINISHED == 0 and PTR.what == data and PTR.fin < PTR.fli:
|
||||||
|
|
||||||
|
|
||||||
|
PTR.fin+=1
|
||||||
|
PTR.b1n+=1
|
||||||
|
if PTR.b1n == len(PTR.bni):
|
||||||
|
PTR.b1n=0
|
||||||
|
|
||||||
|
PTR.who = PTR.bni[PTR.b1n]
|
||||||
|
MSG=PTR.fbu.pop()
|
||||||
|
PTR.what = MSG
|
||||||
|
NEWBOT=','.join(list(bot.context.config.botnet.keys())).split(',')[PTR.b1n]
|
||||||
|
print(NEWBOT)
|
||||||
|
bot.context.config.botnet[NEWBOT].privmsg(CHANNEL,MSG)
|
||||||
|
|
||||||
|
if PTR.fin == PTR.fli:
|
||||||
|
sys.exit(0)
|
||||||
|
|
4
plugins/symbol.db
Normal file
4
plugins/symbol.db
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
ψ
|
||||||
|
☠
|
||||||
|
☽
|
||||||
|
☀
|
5
requirements.txt
Normal file
5
requirements.txt
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
hupper
|
||||||
|
irc3
|
||||||
|
aiocron
|
||||||
|
asyncio
|
||||||
|
ipdb
|
130
run.sh
Executable file
130
run.sh
Executable file
@ -0,0 +1,130 @@
|
|||||||
|
INIT=0
|
||||||
|
CONFIG=".krylon_config"; #[ -f $CONFIG ] && rm $CONFIG
|
||||||
|
[ -f $CONFIG ] && INIT=1
|
||||||
|
MEMORY=""
|
||||||
|
|
||||||
|
kset() {
|
||||||
|
if [[ -z $1 ]] || [[ -z $2 ]]; then echo "error: no variable or value to kset()"; exit; fi
|
||||||
|
echo "$1 = $2" >> $CONFIG
|
||||||
|
}
|
||||||
|
kwrite() {
|
||||||
|
if [[ -z $1 ]]; then echo "error: no value to kwrite()"; exit; fi
|
||||||
|
echo "$1" >> $CONFIG
|
||||||
|
}
|
||||||
|
kblank() {
|
||||||
|
echo "" >> $CONFIG
|
||||||
|
}
|
||||||
|
|
||||||
|
kprompt() {
|
||||||
|
if [[ -z $1 ]] || [[ -z $2 ]] || [[ -z $3 ]] || [[ -z $4 ]] || [[ -z $5 ]] || [[ -z $6 ]]; then echo "error: no variable, prompt, help, enforcement, type or memory passed to kprompt()"; exit; fi
|
||||||
|
local INIVAR=$1; local PROMPT=$2; local HALPLZ=$3; local ENFORCE=$4; local TYPE=$5; local MEMORIZE=$6; unset REPLY;
|
||||||
|
while [[ -z "${REPLY}" ]] || [[ $ENFORCE -eq 1 ]]; do
|
||||||
|
echo -en "$HALPLZ\n$PROMPT"; [ $ENFORCE -eq 0 ] && echo -n ": " || echo -n "[y/n]: "
|
||||||
|
read;
|
||||||
|
if [[ $ENFORCE -eq 1 ]] && [[ $TYPE -eq 0 ]]; then
|
||||||
|
while ! [[ -z $ENFORCE ]]; do
|
||||||
|
if ([ ${REPLY} == "y" ] || [ ${REPLY} == "Y" ]); then
|
||||||
|
return 0
|
||||||
|
elif ([ ${REPLY} == "n" ] || [ ${REPLY} == "N" ]); then
|
||||||
|
return 9
|
||||||
|
else
|
||||||
|
echo -n "$HALPLZ\n$PROMPT"; [ $ENFORCE -eq 0 ] && echo -n ": " || echo -n "[y/n]: "
|
||||||
|
read;
|
||||||
|
fi;
|
||||||
|
done;
|
||||||
|
elif [[ $TYPE -eq 1 ]]; then
|
||||||
|
while true; do
|
||||||
|
[[ ${REPLY} =~ ^-?[0-9]+$ ]]
|
||||||
|
if ! [ $? -eq 0 ]; then
|
||||||
|
echo -n "$HALPLZ\n$PROMPT"; [ $ENFORCE -eq 0 ] && echo -n ": " || echo -n "[y/n]: "
|
||||||
|
read;
|
||||||
|
else
|
||||||
|
return ${REPLY}
|
||||||
|
fi
|
||||||
|
done;
|
||||||
|
fi;
|
||||||
|
done;
|
||||||
|
|
||||||
|
if [ $MEMORIZE -eq 1 ]; then
|
||||||
|
MEMORY=${REPLY}
|
||||||
|
fi;
|
||||||
|
|
||||||
|
[ $TYPE -eq 1 ] && return ${REPLY} || kset "$INIVAR" "${REPLY}"
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ $INIT -eq 0 ]; then
|
||||||
|
kwrite "[bot]"
|
||||||
|
kprompt "nick" "bot ircnick" "bot's nickname to use on the network. e.g. here!*@*" 0 0 1
|
||||||
|
BOTNICK=$(python -c "import random; print(''.join(random.sample('$MEMORY',len('$MEMORY'))))");
|
||||||
|
kprompt "username" "bot username" "bot's username to use on the network. e.g. *!here@*" 0 0 1
|
||||||
|
USERNAME=$(python -c "import random; print(''.join(random.sample('$MEMORY',len('$MEMORY'))))");
|
||||||
|
kprompt "realname" "bot realname" "bot's realname that shows if someone. /whois bot." 0 0 0
|
||||||
|
kprompt "host" "irc address" "the ip/hostname of the irc server this bot will connect to." 0 0 0
|
||||||
|
kprompt "port" "irc port" "the port number of the irc server this bot will connect to." 0 0 0
|
||||||
|
kprompt "channel" "irc channel" "the channel the bot(s) will join upon connection." 0 0 1
|
||||||
|
CHANNEL=$MEMORY;
|
||||||
|
kwrite "version=1"
|
||||||
|
kprompt "ssl" "use ssl?" "is the connect to this irc server using secure socket layers?" 1 0 0
|
||||||
|
[ $? -eq 0 ] && (kset "ssl" "true"; kset "ssl_verify" "cert_none") || (kset "ssl" "false")
|
||||||
|
kprompt "bots" "how many helper bots?[0-255]" "how many bots will connect to the ircserver?" 0 1 0
|
||||||
|
BOTCOUNT=$?;
|
||||||
|
kblank
|
||||||
|
kwrite "includes ="
|
||||||
|
kwrite " irc3.plugins.command"
|
||||||
|
kwrite " irc3.plugins.asynchronious"
|
||||||
|
kwrite " irc3.plugins.storage"
|
||||||
|
kwrite " irc3.plugins.uptime"
|
||||||
|
kwrite " irc3.plugins.ctcp"
|
||||||
|
kwrite " irc3.plugins.cron"
|
||||||
|
kwrite " irc3.plugins.logger"
|
||||||
|
kwrite " irc3.plugins.userlist"
|
||||||
|
kwrite " plugins.b33p"
|
||||||
|
kwrite " plugins.krylon"
|
||||||
|
kblank
|
||||||
|
kwrite "flood_burst = 0"
|
||||||
|
kwrite "flood_rate = 1"
|
||||||
|
kwrite "flood_rate_delay = 1"
|
||||||
|
kwrite "storage = json://.krylon_database"
|
||||||
|
kblank
|
||||||
|
kwrite "[irc3.plugins.command]"
|
||||||
|
kwrite "cmd = ?"
|
||||||
|
kwrite "guard = irc3.plugins.command.mask_based_policy"
|
||||||
|
kblank
|
||||||
|
kwrite "[irc3.plugins.command.masks]"
|
||||||
|
kwrite "d"'!'"*dr1p@* = all_permissions"
|
||||||
|
kwrite "* = view"
|
||||||
|
kblank
|
||||||
|
kwrite "ignore_list ="
|
||||||
|
kwrite " g1mp_"'!'"*@*"
|
||||||
|
kwrite " g1mp"'!'"*@*"
|
||||||
|
kwrite " ken_"'!'"*@*"
|
||||||
|
kwrite " ken"'!'"*@*"
|
||||||
|
kblank
|
||||||
|
for i in $(seq 1 $BOTCOUNT); do
|
||||||
|
kwrite "[bot_$i]"
|
||||||
|
RANDOM=$((1 + $RANDOM % 255))
|
||||||
|
SALT=$(printf '%x\n' $RANDOM)
|
||||||
|
THIS=$SALT"_krylon_$(printf '%x\n' $i)"
|
||||||
|
THAT=$(python -c "import random; print(''.join(random.sample('$THIS',len('$THIS'))))");
|
||||||
|
kwrite "nick = $THAT"
|
||||||
|
RANDOM=$((1 + $RANDOM % 255))
|
||||||
|
SALT=$(printf '%x\n' $RANDOM)
|
||||||
|
THIS=$SALT"$USERNAME"
|
||||||
|
THAT=$(python -c "import random; print(''.join(random.sample('$THIS',len('$THIS'))))");
|
||||||
|
kwrite "username = $THAT"
|
||||||
|
kwrite "channel = $CHANNEL"
|
||||||
|
kblank
|
||||||
|
done;
|
||||||
|
fi;
|
||||||
|
|
||||||
|
echo -e "\n-\n"
|
||||||
|
|
||||||
|
[ -f $CONFIG ] && cat $CONFIG
|
||||||
|
|
||||||
|
echo -e "\n-\nEXECUTING"
|
||||||
|
|
||||||
|
irc3 $CONFIG
|
||||||
|
|
||||||
|
exit
|
22
run_artop.sh
Executable file
22
run_artop.sh
Executable file
@ -0,0 +1,22 @@
|
|||||||
|
rm .krylon_config
|
||||||
|
bash run.sh
|
||||||
|
while :
|
||||||
|
do
|
||||||
|
cp 6.tskull.txt plugins/krylon.py
|
||||||
|
bash run.sh
|
||||||
|
sleep 0.5
|
||||||
|
cp 5.hack.txt plugins/krylon.py
|
||||||
|
bash run.sh
|
||||||
|
sleep 0.5
|
||||||
|
cp 4.ghost.txt plugins/krylon.py
|
||||||
|
bash run.sh
|
||||||
|
sleep 0.5
|
||||||
|
cp 3.mind.txt plugins/krylon.py
|
||||||
|
bash run.sh
|
||||||
|
sleep 0.5
|
||||||
|
cp 1.goth.txt plugins/krylon.py
|
||||||
|
bash run.sh
|
||||||
|
sleep 0.5
|
||||||
|
cp 2.fh.txt plugins/krylon.py
|
||||||
|
bash run.sh
|
||||||
|
done
|
1
run_debug.sh
Executable file
1
run_debug.sh
Executable file
@ -0,0 +1 @@
|
|||||||
|
hupper -m irc3 .krylon_config
|
5
tool_ans2utf8.sh
Executable file
5
tool_ans2utf8.sh
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
#infile.ans
|
||||||
|
ANSI=$1
|
||||||
|
#outfile.txt
|
||||||
|
ASCII=$2
|
||||||
|
piconv -f CP437 -t UTF-8 < $1 > $2
|
214
tool_dconvutf8.py
Executable file
214
tool_dconvutf8.py
Executable file
@ -0,0 +1,214 @@
|
|||||||
|
import ipdb
|
||||||
|
import subprocess
|
||||||
|
cp437 = {
|
||||||
|
0:'\u0000',1:'\u263A',2:'\u263B',3:'\u2665',4:'\u2666',5:'\u2663',6:'\u2660',7:'\u2022',
|
||||||
|
8:'\u25D8',9:'\u25CB',10:'\u25D9',11:'\u2642',12:'\u2640',13:'\u266A',14:'\u266B',15:'\u263C',
|
||||||
|
16:'\u25BA',17:'\u25C4',18:'\u2195',19:'\u203C',20:'\u00B6',21:'\u00A7',22:'\u25AC',23:'\u21A8',
|
||||||
|
24:'\u2191',25:'\u2193',26:'\u2192',27:'\u2190',28:'\u221F',29:'\u2194',30:'\u25B2',31:'\u25BC',
|
||||||
|
32:'\u0020',33:'\u0021',34:'\u0022',35:'\u0023',36:'\u0024',37:'\u0025',38:'\u0026',39:'\u0027',
|
||||||
|
40:'\u0028',41:'\u0029',42:'\u002A',43:'\u002B',44:'\u002C',45:'\u002D',46:'\u002E',47:'\u002F',
|
||||||
|
48:'\u0030',49:'\u0031',50:'\u0032',51:'\u0033',52:'\u0034',53:'\u0035',54:'\u0036',55:'\u0037',
|
||||||
|
56:'\u0038',57:'\u0039',58:'\u003A',59:'\u003B',60:'\u003C',61:'\u003D',62:'\u003E',63:'\u003F',
|
||||||
|
64:'\u0040',65:'\u0041',66:'\u0042',67:'\u0043',68:'\u0044',69:'\u0045',70:'\u0046',71:'\u0047',
|
||||||
|
72:'\u0048',73:'\u0049',74:'\u004A',75:'\u004B',76:'\u004C',77:'\u004D',78:'\u004E',79:'\u004F',
|
||||||
|
80:'\u0050',81:'\u0051',82:'\u0052',83:'\u0053',84:'\u0054',85:'\u0055',86:'\u0056',87:'\u0057',
|
||||||
|
88:'\u0058',89:'\u0059',90:'\u005A',91:'\u005B',92:'\u005C',93:'\u005D',94:'\u005E',95:'\u005F',
|
||||||
|
96:'\u0060',97:'\u0061',98:'\u0062',99:'\u0063',100:'\u0064',101:'\u0065',102:'\u0066',103:'\u0067',
|
||||||
|
104:'\u0068',105:'\u0069',106:'\u006A',107:'\u006B',108:'\u006C',109:'\u006D',110:'\u006E',111:'\u006F',
|
||||||
|
112:'\u0070',113:'\u0071',114:'\u0072',115:'\u0073',116:'\u0074',117:'\u0075',118:'\u0076',119:'\u0077',
|
||||||
|
120:'\u0078',121:'\u0079',122:'\u007A',123:'\u007B',124:'\u007C',125:'\u007D',126:'\u007E',127:'\u2302',
|
||||||
|
128:'\u00C7',129:'\u00FC',130:'\u00E9',131:'\u00E2',132:'\u00E4',133:'\u00E0',134:'\u00E5',135:'\u00E7',
|
||||||
|
136:'\u00EA',137:'\u00EB',138:'\u00E8',139:'\u00EF',140:'\u00EE',141:'\u00EC',142:'\u00C4',143:'\u00C5',
|
||||||
|
144:'\u00C9',145:'\u00E6',146:'\u00C6',147:'\u00F4',148:'\u00F6',149:'\u00F2',150:'\u00FB',151:'\u00F9',
|
||||||
|
152:'\u00FF',153:'\u00D6',154:'\u00DC',155:'\u00A2',156:'\u00A3',157:'\u00A5',158:'\u20A7',159:'\u0192',
|
||||||
|
160:'\u00E1',161:'\u00ED',162:'\u00F3',163:'\u00FA',164:'\u00F1',165:'\u00D1',166:'\u00AA',167:'\u00BA',
|
||||||
|
168:'\u00BF',169:'\u2310',170:'\u00AC',171:'\u00BD',172:'\u00BC',173:'\u00A1',174:'\u00AB',175:'\u00BB',
|
||||||
|
176:'\u2591',177:'\u2592',178:'\u2593',179:'\u2502',180:'\u2524',181:'\u2561',182:'\u2562',183:'\u2556',
|
||||||
|
184:'\u2555',185:'\u2563',186:'\u2551',187:'\u2557',188:'\u255D',189:'\u255C',190:'\u255B',191:'\u2510',
|
||||||
|
192:'\u2514',193:'\u2534',194:'\u252C',195:'\u251C',196:'\u2500',197:'\u253C',198:'\u255E',199:'\u255F',
|
||||||
|
200:'\u255A',201:'\u2554',202:'\u2569',203:'\u2566',204:'\u2560',205:'\u2550',206:'\u256C',207:'\u2567',
|
||||||
|
208:'\u2568',209:'\u2564',210:'\u2565',211:'\u2559',212:'\u2558',213:'\u2552',214:'\u2553',215:'\u256B',
|
||||||
|
216:'\u256A',217:'\u2518',218:'\u250C',219:'\u2588',220:'\u2584',221:'\u258C',222:'\u2590',223:'\u2580',
|
||||||
|
224:'\u03B1',225:'\u00DF',226:'\u0393',227:'\u03C0',228:'\u03A3',229:'\u03C3',230:'\u00B5',231:'\u03C4',
|
||||||
|
232:'\u03A6',233:'\u0398',234:'\u03A9',235:'\u03B4',236:'\u221E',237:'\u03C6',238:'\u03B5',239:'\u2229',
|
||||||
|
240:'\u2261',241:'\u00B1',242:'\u2265',243:'\u2264',244:'\u2320',245:'\u2321',246:'\u00F7',247:'\u2248',
|
||||||
|
248:'\u00B0',249:'\u2219',250:'\u00B7',251:'\u221A',252:'\u207F',253:'\u00B2',254:'\u25A0',255:'\u00A0',
|
||||||
|
}
|
||||||
|
|
||||||
|
def q(s):
|
||||||
|
f = open('/home/dr1p/.weechat/weechat_fifo','w')
|
||||||
|
f.write('*{}\x0a'.format(s))
|
||||||
|
f.close()
|
||||||
|
|
||||||
|
class D():
|
||||||
|
def __init__(self):
|
||||||
|
self.MODE_BOLD=0
|
||||||
|
return
|
||||||
|
def c(self,n):
|
||||||
|
n = int(n)
|
||||||
|
cc = {
|
||||||
|
99:'\x03',
|
||||||
|
1:'\x02', #bold
|
||||||
|
3:'\x1d', #italics
|
||||||
|
4:'\x1f', #underline
|
||||||
|
9:'\x1e', #strikethrough
|
||||||
|
0:'\x01',
|
||||||
|
40:'1',
|
||||||
|
|
||||||
|
30:'14',
|
||||||
|
31:'04',
|
||||||
|
32:'09',
|
||||||
|
33:'08',
|
||||||
|
34:'12',
|
||||||
|
35:'13',
|
||||||
|
36:'11',
|
||||||
|
37:'15',
|
||||||
|
41:'04',
|
||||||
|
42:'09',
|
||||||
|
43:'08',
|
||||||
|
44:'12',
|
||||||
|
45:'13',
|
||||||
|
46:'11',
|
||||||
|
47:'15'
|
||||||
|
}
|
||||||
|
|
||||||
|
cb = {
|
||||||
|
99:'\x03',
|
||||||
|
1:'\x02', #bold
|
||||||
|
3:'\x1d', #italics
|
||||||
|
4:'\x1f', #underline
|
||||||
|
9:'\x1e', #strikethrough
|
||||||
|
0:'\x01',
|
||||||
|
40:'1',
|
||||||
|
|
||||||
|
30:'14',
|
||||||
|
31:'28',
|
||||||
|
32:'09',
|
||||||
|
33:'54',
|
||||||
|
34:'72',
|
||||||
|
35:'13',
|
||||||
|
36:'11',
|
||||||
|
37:'15',
|
||||||
|
41:'04',
|
||||||
|
42:'09',
|
||||||
|
43:'08',
|
||||||
|
44:'12',
|
||||||
|
45:'13',
|
||||||
|
46:'11',
|
||||||
|
47:'15'
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ipdb.set_trace()
|
||||||
|
if self.MODE_BOLD==1:
|
||||||
|
if n >= 30 and n <= 47:
|
||||||
|
return int(cc[n])
|
||||||
|
else:
|
||||||
|
return cb[n]
|
||||||
|
else:
|
||||||
|
return cb[n]
|
||||||
|
|
||||||
|
def w(s,index):
|
||||||
|
d=D()
|
||||||
|
s = s.replace('\x1b','')
|
||||||
|
ss = s
|
||||||
|
codes=[]
|
||||||
|
ogcodes=[]
|
||||||
|
newcodes=[]
|
||||||
|
while True:
|
||||||
|
sa = ss.find('[')
|
||||||
|
sb = ss.find('m')
|
||||||
|
if sa == -1 and sb == -1:
|
||||||
|
break
|
||||||
|
x = ss[sa:sb+1]
|
||||||
|
ogcodes.append(x)
|
||||||
|
codes.append(x.replace('m','').replace('[','').split(';'))
|
||||||
|
ss=ss[sb+1:]
|
||||||
|
count = len(codes[-1])
|
||||||
|
if count == 1:
|
||||||
|
ca = codes[-1][0]
|
||||||
|
if ca == '1' or ca == '3' or ca == '4' or ca == '9':
|
||||||
|
if ca == '1':
|
||||||
|
code = "{}".format(d.c(99))
|
||||||
|
else:
|
||||||
|
code = "{}".format(d.c(ca))
|
||||||
|
elif ca == '0':
|
||||||
|
code = "{}".format(d.c(1))
|
||||||
|
elif ca == '31':
|
||||||
|
# d.MODE_BOLD=0
|
||||||
|
code = "{}{}".format(d.c(99),d.c(31))
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
code = "{}{}".format(d.c(99),d.c(ca))
|
||||||
|
#code = "{},{}".format(c[99],c[int(ca)])
|
||||||
|
except:
|
||||||
|
if ca == '7C1':
|
||||||
|
codes[-1]=1
|
||||||
|
|
||||||
|
newcodes.append(code)
|
||||||
|
elif count == 2:
|
||||||
|
ca = codes[-1][0]
|
||||||
|
cb = codes[-1][1]
|
||||||
|
# ipdb.set_trace()
|
||||||
|
if ca == '0':
|
||||||
|
d.MODE_BOLD=0
|
||||||
|
code = "{}{}".format(d.c(99),d.c(cb))
|
||||||
|
elif ca == '1':
|
||||||
|
d.MODE_BOLD=1
|
||||||
|
code = "{}{}".format(d.c(99),d.c(cb))
|
||||||
|
else:
|
||||||
|
code = "{}{}{}{}".format(d.c(99),d.c(ca),d.c(99),d.c(cb))
|
||||||
|
|
||||||
|
newcodes.append(code)
|
||||||
|
elif count == 3:
|
||||||
|
ca = codes[-1][0]
|
||||||
|
cb = codes[-1][1]
|
||||||
|
cc = codes[-1][1]
|
||||||
|
if ca == '0':
|
||||||
|
code = "{}{},{}".format(d.c(99),d.c(cb),d.c(cc))
|
||||||
|
elif ca == '1':
|
||||||
|
d.MODE_BOLD=1
|
||||||
|
code = "{}{}{}{}".format(d.c(99),d.c(cb),d.c(99),d.c(cc))
|
||||||
|
newcodes.append(code)
|
||||||
|
|
||||||
|
elif count == 4:
|
||||||
|
ca = codes[-1][0]
|
||||||
|
cb = codes[-1][1]
|
||||||
|
cc = codes[-1][2]
|
||||||
|
cd = codes[-1][3]
|
||||||
|
code = "{}{}{},{}".format(d.c(1),d.c(99),d.c(cd),d.c(cc))
|
||||||
|
newcodes.append(code)
|
||||||
|
|
||||||
|
buffer = s
|
||||||
|
for i,_ in enumerate(ogcodes):
|
||||||
|
z = buffer.find(_)
|
||||||
|
if z == 0:
|
||||||
|
b=buffer[len(_):]
|
||||||
|
a=newcodes[i]
|
||||||
|
buffer = "{}{}".format(a,b)
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
a=buffer[:buffer.find(_)]
|
||||||
|
b=newcodes[i]
|
||||||
|
c=buffer[buffer.find(_)+len(ogcodes[i]):]
|
||||||
|
buffer = "{}{}{}".format(a,b,c)
|
||||||
|
except:
|
||||||
|
print('hi')
|
||||||
|
ipdb.set_trace()
|
||||||
|
print('hi')
|
||||||
|
print('hi')
|
||||||
|
q(buffer)
|
||||||
|
|
||||||
|
if __name__=="__main__":
|
||||||
|
|
||||||
|
|
||||||
|
f = open('/home/dr1p/Documents/python/acid.txt','r')
|
||||||
|
l = f.read().splitlines()
|
||||||
|
f.close()
|
||||||
|
|
||||||
|
for i,_ in enumerate(l):
|
||||||
|
if _.find('\x1aSAUCE') == -1:
|
||||||
|
w(_,i)
|
||||||
|
else:
|
||||||
|
pass
|
Loading…
Reference in New Issue
Block a user