############################################################################################################################ SOF
# command line 1  command line 1  command line 1  command line 1  command line 1  command line 1  command line 1  command line 1
# command line 1  command line 1  command line 1  command line 1  command line 1  command line 1  command line 1  command line 1
# command line 1  command line 1  command line 1  command line 1  command line 1  command line 1  command line 1  command line 1
mkdir tcpbot && cd tcpbot && mkdir plugins && virtualenv -p python3 env && source env/bin/activate && pip install irc3 aiocron
# command line 2  command line 2  command line 2  command line 2  command line 2  command line 2  command line 2  command line 2
# command line 2  command line 2  command line 2  command line 2  command line 2  command line 2  command line 2  command line 2
# command line 2  command line 2  command line 2  command line 2  command line 2  command line 2  command line 2  command line 2
cat << eof > tcpbot.ini
[bot]
nick = tcpbot
username = bot
realname = "[ bot ]"
host = ircd.chat
port = 6697
version = 1
url = ircd.chat
ssl = true
ssl_verify = CERT_NONE

includes =
    irc3.plugins.command
    irc3.plugins.asynchronious
    irc3.plugins.uptime
    irc3.plugins.ctcp
    irc3.plugins.cron
    irc3.plugins.log
    irc3.plugins.logger
    irc3.plugins.userlist
    plugins.auth_plugin
    plugins.tcpbot_plugin

autojoins =
    \${#}tcpdirect
    \${#}botsex

flood_burst = 0
flood_rate = 1
flood_rate_delay = 1

[irc3.plugins.command]
cmd = ?

[irc3.plugins.command.masks]
d!*@1.3.3.7 = all_permissions
* = view
eof
# command line 3  command line 3  command line 3  command line 3  command line 3  command line 3  command line 3  command line 3
# command line 3  command line 3  command line 3  command line 3  command line 3  command line 3  command line 3  command line 3
# command line 3  command line 3  command line 3  command line 3  command line 3  command line 3  command line 3  command line 3
cat << eof > plugins/tcpbot_plugin.py
# -*- coding: utf-8 -*- ################################## SOF
import irc3
from irc3.plugins.command import command
from irc3.plugins.cron import cron
    ##########################################################
@irc3.plugin
class tcpbot:
    ##########################################################
    def __init__(self, bot):
        self.bot=bot
        print('[ tcpbot plugin loaded ]')
    ##########################################################
    def connection_made(self):
        print('connection made')
    ##########################################################
    def server_ready(self):
        print('server ready')
    ##########################################################
    def connection_lost(self):
        print('connection lost')
    ##########################################################
    @irc3.event(irc3.rfc.JOIN)
    def sup(self,mask,channel,**kw):
        """sup doots who join a channel"""
        if mask.nick != self.bot.nick:
            self.bot.privmsg(channel,f'sup doot: {mask.nick}')
        else:
            self.bot.privmsg(channel,'sup doot')
    ##########################################################
    @command
    def echo(self,mask,target,args):
        """echo command: usage ?echo wtf
            %%echo <words>...
        """
        self.bot.privmsg(mask.nick,' '.join(args['<words>']))
##############################################################
@cron('* * * * *')
def _tcpbot(bot):
    for channel in bot.channels:
        msg="tcpbot:cronjob - sup doots"
        bot.privmsg(channel,msg)
        print(f'{msg} sent to {channel}')
########################################################## EOF
eof
# command line 4  command line 4  command line 4  command line 4  command line 4  command line 4  command line 4  command line 4
# command line 4  command line 4  command line 4  command line 4  command line 4  command line 4  command line 4  command line 4
# command line 4  command line 4  command line 4  command line 4  command line 4  command line 4  command line 4  command line 4
cat << eof > plugins/auth_plugin.py
# -*- coding: utf-8 -*-
from irc3.plugins.cron import cron
import irc3
###########################################################################################
###########################################################################################
NICKSERV_USERNAME='not_maple'
NICKSERV_PASSWORD='CHANGEYOURPASSWORD'
###########################################################################################
###########################################################################################
@irc3.plugin
class Plugin:
    def __init__(self,bot):
            self.bot=bot
    #######################################################################################
    #######################################################################################
    @irc3.event(irc3.rfc.CONNECTED)
    def connected(self, **kw):
        MSG=f"identify {NICKSERV_USERNAME} {NICKSERV_PASSWORD}"
        self.bot.privmsg('NICKSERV',MSG)
    #######################################################################################
    #######################################################################################
###########################################################################################
###########################################################################################
@cron('*/1 * * * *')
def cron_auth(bot):
        if not bot.nick==bot.original_nick:
            MSG=f"identify {NICKSERV_USERNAME} {NICKSERV_PASSWORD}"
            bot.privmsg('NICKSERV',MSG)
###########################################################################################
###########################################################################################
eof
# command line 5  command line 5  command line 5  command line 5  command line 5  command line 5  command line 5  command line 5
# command line 5  command line 5  command line 5  command line 5  command line 5  command line 5  command line 5  command line 5
# command line 5  command line 5  command line 5  command line 5  command line 5  command line 5  command line 5  command line 5
echo -n 'nickserv username:' && read nickserv_username && echo -n 'nickserv password:' && read nickserv_password && sed -i s/not_maple/$nickserv_username/g plugins/auth_plugin.py && sed -i s/CHANGEYOURPASSWORD/$nickserv_password/g plugins/auth_plugin.py
# command line 6  command line 6  command line 6  command line 6  command line 6  command line 6  command line 6  command line 6
# command line 6  command line 6  command line 6  command line 6  command line 6  command line 6  command line 6  command line 6
# command line 6  command line 6  command line 6  command line 6  command line 6  command line 6  command line 6  command line 6
irc3 tcpbot.ini
############################################################################################################################ EOF
