86 lines
3.8 KiB
Python
86 lines
3.8 KiB
Python
# -*- coding: utf-8 -*-
|
|
from irc3.plugins.command import command
|
|
import irc3
|
|
import random
|
|
import uuid
|
|
###########################################################################################
|
|
###########################################################################################
|
|
@irc3.plugin
|
|
class Plugin:
|
|
#######################################################################################
|
|
#######################################################################################
|
|
def __init__(self,bot):
|
|
self.bot=bot
|
|
#######################################################################################
|
|
#######################################################################################
|
|
@irc3.event(irc3.rfc.JOIN)
|
|
def quote_user_join(self, mask, channel, **kw):
|
|
"""quote a user when they join"""
|
|
quote_list=self.bot.db.getlist("quotes")
|
|
if not quote_list:
|
|
quote_list=[]
|
|
self.bot.db.setlist('quotes',[])
|
|
quote_user=[]
|
|
for i in range(len(quote_list)):
|
|
user=mask.nick.lower()
|
|
if mask.nick==self.bot.nick: user=self.bot.original_nick.lower()
|
|
if(quote_list[i]['user']==user):
|
|
quote_user.append(quote_list[i]['message'])
|
|
if quote_user:
|
|
msg=random.choice(quote_user)+' \x02\x0303▶\x0F '+user
|
|
msg=self.bot.emo(msg)
|
|
print(f'\n{msg}\n')
|
|
self.bot.privmsg(channel,msg)
|
|
#######################################################################################
|
|
#######################################################################################
|
|
@command(permission='view')
|
|
def quote(self,mask,target, args):
|
|
"""quote user message
|
|
%%quote <noise>...
|
|
"""
|
|
noise=' '.join(args['<noise>'])
|
|
user=noise.split(' ')[0]
|
|
noise=noise.split(' ')[1:]
|
|
message=' '.join(noise)
|
|
status=''
|
|
try:
|
|
quote_list=self.bot.db.getlist("quotes")
|
|
if not quote_list:
|
|
quote_list=[]
|
|
self.bot.db.setlist("quotes",quote_list)
|
|
quote_uuid=uuid.uuid4().hex
|
|
quote={"user":user.lower(),"message":message,"uuid":quote_uuid}
|
|
quote_list.append(quote)
|
|
self.bot.db.setlist("quotes",quote_list)
|
|
status=f"TCPDIRECT/QUOTED: {user} "
|
|
status+=f"\x02\x0303▶\x0F {message} "
|
|
status+=f"\x02\x0303▶\x0F {quote_uuid}"
|
|
except Exception as e:
|
|
status=f"\x02\x0304error \x02\x0303▶\x0F {e.message[0]['message']}'"
|
|
msg=self.bot.emo(status)
|
|
self.bot.privmsg(target,msg)
|
|
#######################################################################################
|
|
#######################################################################################
|
|
@command(permission='view')
|
|
def quotes(self, mask, target, args):
|
|
"""quotes user
|
|
%%quotes <nick>
|
|
"""
|
|
user=args.get("<nick>")
|
|
quote_list=self.bot.db.getlist("quotes")
|
|
if not quote_list:
|
|
quote_list=[]
|
|
self.bot.db.setlist('quotes',[])
|
|
quote_user=[]
|
|
for i in range(len(quote_list)):
|
|
if(quote_list[i]['user']==user):
|
|
quote_user.append(quote_list[i]['message'])
|
|
for i in range(len(quote_user)):
|
|
msg=user+' \x02\x0303▶\x0F '+quote_user[i]
|
|
msg=self.bot.emo(msg)
|
|
self.bot.privmsg(target,msg)
|
|
#######################################################################################
|
|
#######################################################################################
|
|
###########################################################################################
|
|
###########################################################################################
|