krylon/2.fh.txt

255 lines
10 KiB
Plaintext

# -*- 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)