def main():
    if subprocess.check_output(['git', 'status', '--porcelain'],
                               cwd=os.path.dirname(__file__) or '.') != b'':
        print('Working directory is not clean, refusing to start.')
        sys.exit(1)
    if os.path.isfile('UPDATE'):
        os.remove('UPDATE')
    if os.path.isfile('Instagram_run'):
        os.remove('Instagram_run')

    settings.version = subprocess.check_output([
        'git', 'show', '-s', '--format=format:%cd.%h', '--date=format:%Y%m%d'
    ],
                                               cwd=os.path.dirname(__file__)
                                               or '.',
                                               encoding='utf-8')

    settings.logger = log.Log(settings.log_file_name)
    settings.logger.daemon = True
    settings.logger.start()
    settings.logger.log('Starting iBot')

    settings.irc_bot = irc.IRC()
    settings.irc_bot.daemon = True
    settings.irc_bot.start()

    while settings.running:
        if os.path.isfile('STOP'):
            os.remove('STOP')
            open('UPDATE', 'w').close()
            break
        time.sleep(1)
예제 #2
0
def main():
    settings.init()
    settings.logger = log.Log(settings.log_file_name)
    settings.logger.daemon = True
    settings.logger.start()
    settings.logger.log('Starting NewsGrabber')

    tools.create_dir(settings.dir_assigned_services)

    if not os.path.isfile(settings.target):
        settings.logger.log(
            "Please add one or more discovery rsync targets to file '{settings.target}'"
            .format(**locals()), 'ERROR')

    settings.irc_bot = irc.IRC()
    settings.irc_bot.daemon = True
    settings.irc_bot.start()
    time.sleep(30)
    settings.upload = service.Upload()
    settings.upload.daemon = True
    settings.upload.start()
    settings.run_services = service.RunServices()
    settings.run_services.daemon = True
    settings.run_services.start()

    while settings.running:
        time.sleep(1)
예제 #3
0
def main():
    try:
        config = sys.argv[1]
    except:
        print 'I need a config file!'
        sys.exit(1)
    try:
        with open(config, 'r') as fptr:
            yml = yaml.load(fptr.read())
    except Exception as e:
        print 'Could not load config.yaml because: {0}'.format(e)
        sys.exit(1)
    kwargs = {}
    kwargs['nick'] = yml['nick']
    kwargs['server'] = yml['server']
    kwargs['port'] = yml['port']
    kwargs['user'] = yml['user']
    kwargs['channel'] = yml['channel']
    try:
        kwargs['rejoin'] = yml['rejoin']
    except KeyError as e:
        kwargs['rejoin'] = False
    bot = irc.IRC(**kwargs)
    bot.connect()
    bot.run(blocking=True)
예제 #4
0
def main():
    settings.init()
    settings.logger = log.Log(settings.log_file_name)
    settings.logger.daemon = True
    settings.logger.start()
    settings.logger.log('Starting NewsGrabber')

    tools.create_dir(settings.dir_new_urllists)
    tools.create_dir(settings.dir_old_urllists)
    tools.create_dir(settings.dir_donefiles)
    tools.create_dir(settings.dir_ready)
    tools.create_dir(settings.dir_last_upload)
    tools.create_dir(settings.dir_dumped_url_data)

    if not os.path.isfile(settings.targets):
        settings.logger.log(
            "Please add one or more rsync targets to file '{settings.targets}'"
            .format(**locals()), 'ERROR')

    settings.irc_bot = irc.IRC()
    settings.irc_bot.daemon = True
    settings.irc_bot.start()
    time.sleep(30)
    settings.upload = upload.Upload()
    settings.upload.daemon = True
    settings.upload.start()
    settings.run_services = service.RunServices()
    settings.run_services.daemon = True
    settings.run_services.start()

    while settings.running:
        time.sleep(1)
예제 #5
0
	def __init__(self, request):
		self.servername = 'smilebasic'
		self.nickname = ''
		self.password = ''
		self.realname = '' # TODO: use for server info
		self.joinedto = []
		self.tojoin = []
		self.channels = {}
		self.connected = False

		self.irc = irc.IRC(self.servername, request)
		self.irc.on_MODE = self.irc_on_MODE
		self.irc.on_WHO  = self.irc_on_WHO
		self.irc.on_PASS = self.irc_on_PASS
		self.irc.on_NICK = self.irc_on_NICK
		self.irc.on_USER = self.irc_on_USER
		self.irc.on_JOIN = self.irc_on_JOIN
		self.irc.on_PART = self.irc_on_PART
		self.irc.on_PRIVMSG = self.irc_on_PRIVMSG

		self.sbs = sbs2.SBS2()
		self.sbs.debug_traceback = self.debug_traceback
		self.sbs.debug = self.debug
		self.sbs.on_message = self.sbs_on_message
		self.sbs.on_userList = self.sbs_on_userList
		self.sbs.on_response = self.sbs_on_response
예제 #6
0
    def __init__(self, channel: str, secret: str, nickname: str):
        self.client = irc.IRC(channel, secret, nickname)
        self.client.sock.send(
            f"CAP REQ :twitch.tv/tags twitch.tv/commands twitch.tv/membership\r\n"
            .encode('utf-8'))  #unused

        clear()

        print("============================")
        print("      " + nickname + " ONLINE")
        print("============================\n")
예제 #7
0
def main():
    settings.init()
    settings.logger = log.Log(settings.log_file_name)
    settings.logger.daemon = True
    settings.logger.start()
    settings.logger.log(
        'Starting grabber {name}'.format(name=settings.irc_nick))

    tools.create_dir(settings.dir_ready)
    tools.create_dir(settings.dir_new_lists)
    tools.create_dir(settings.dir_old_lists)

    if not os.path.isfile(settings.target_main):
        raise Exception(
            "Please add a rsync target to file '{settings.target_main}'.".
            format(**locals()))

    settings.irc_bot = irc.IRC()
    settings.irc_bot.daemon = True
    settings.irc_bot.start()
    time.sleep(30)
    settings.upload = upload.Upload()
    settings.upload.daemon = True
    settings.upload.start()
    settings.grab = grab.Grab()
    settings.grab.daemon = True
    settings.grab.start()

    while settings.running:
        #    if not settings.logger.isAlive():
        #        print('The logger stopped running...')
        #        settings.irc_bot.send('PRIVMSG', 'The logger stopped running...',
        #                settings.irc_channel_bot)
        #        settings.running = False
        #    if not settings.irc_bot.isAlive():
        #        print('The IRC bot stopped running...')
        #        settings.running = False
        #    if not settings.upload.isAlive():
        #        print('The uploader stopped running...')
        #        settings.irc_bot.send('PRIVMSG', 'The uploader stopped running...',
        #                settings.irc_channel_bot)
        #        settings.running = False
        #    if not settings.grab.isAlive():
        #        print('The grabber stopped running...')
        #        settings.irc_bot.send('PRIVMSG', 'The grabber stopped working...',
        #                settings.irc_channel_bot)
        #        settings.running = False
        time.sleep(1)
예제 #8
0
def main():
    if os.path.isfile('UPDATE'):
        os.remove('UPDATE')

    settings.logger = log.Log(settings.log_file_name)
    settings.logger.daemon = True
    settings.logger.start()
    settings.logger.log('Starting iBot')

    settings.irc_bot = irc.IRC()
    settings.irc_bot.daemon = True
    settings.irc_bot.start()

    while settings.running:
        if os.path.isfile('STOP'):
            os.remove('STOP')
            open('UPDATE', 'w').close()
            break
        time.sleep(1)
예제 #9
0
def main():
    if os.path.isfile('UPDATE'):
        os.remove('UPDATE')


#    settings.init()
    settings.logger = log.Log(settings.log_file_name)
    settings.logger.daemon = True
    settings.logger.start()
    settings.logger.log('Starting NewsGrabber')

    tools.create_dir(settings.dir_new_urllists)
    tools.create_dir(settings.dir_old_urllists)
    tools.create_dir(settings.dir_donefiles)
    tools.create_dir(settings.dir_ready)
    tools.create_dir(settings.dir_last_upload)
    tools.create_dir(settings.dir_dumped_url_data)

    if not os.path.isfile(settings.targets):
        settings.logger.log("Please add one or more rsync targets to file " \
                            "'{targets}'".format(targets=settings.targets),
                            'ERROR')
    if not os.path.isfile(settings.keys):
        settings.logger.log("Please add you keys by running 'add_keys.py'.",
                            'ERROR')

    settings.irc_bot = irc.IRC()
    settings.irc_bot.daemon = True
    settings.irc_bot.start()
    time.sleep(30)
    settings.upload = upload.Upload()
    settings.upload.daemon = True
    settings.upload.start()
    settings.run_services = service.RunServices()
    settings.run_services.daemon = True
    settings.run_services.start()

    while settings.running:
        if os.path.isfile('STOP'):
            os.remove('STOP')
            open('UPDATE', 'w').close()
            break
        time.sleep(1)
예제 #10
0
def main():
    if os.path.isfile('UPDATE'):
        os.remove('UPDATE')
    if os.system('service rsync status') != 0:
        print('rsync not running; attempting to start')
        try:
            os.system('service rsync start')
        except OSError:
            print('failed to start rsync service')
            os.system('service rsync status')
    settings.init()
    settings.logger = log.Log(settings.log_file_name)
    settings.logger.daemon = True
    settings.logger.start()
    settings.logger.log('Starting NewsGrabber')

    tools.create_dir(settings.dir_assigned_services)

    if not os.path.isfile(settings.target):
        settings.logger.log("Please add one or more discovery rsync targets to file '{target}'".format(target=settings.target), 'ERROR')

    settings.irc_bot = irc.IRC()
    settings.irc_bot.daemon = True
    settings.irc_bot.start()
    time.sleep(30)
    settings.upload = discoveryservice.Upload()
    settings.upload.daemon = True
    settings.upload.start()
    settings.run_services = discoveryservice.RunServices()
    settings.run_services.daemon = True
    settings.run_services.start()
    
    while settings.running:
        if os.path.isfile('STOP'):
            os.remove('STOP')
            open('UPDATE', 'w').close()
            break
        time.sleep(1)
예제 #11
0
def main():
    if os.path.isfile('UPDATE'):
        os.remove('UPDATE')

    settings.init()
    settings.logger = log.Log(settings.log_file_name)
    settings.logger.daemon = True
    settings.logger.start()
    settings.logger.log(
        'Starting grabber {name}'.format(name=settings.irc_nick))

    tools.create_dir(settings.dir_ready)
    tools.create_dir(settings.dir_new_lists)
    tools.create_dir(settings.dir_old_lists)

    if not os.path.isfile(settings.target_main):
        raise Exception(
            "Please add a rsync target to file '{target_main}'.".format(
                target_main=settings.target_main))

    settings.irc_bot = irc.IRC()
    settings.irc_bot.daemon = True
    settings.irc_bot.start()
    time.sleep(30)
    settings.upload = upload.Upload()
    settings.upload.daemon = True
    settings.upload.start()
    settings.grab = grab.Grab()
    settings.grab.daemon = True
    settings.grab.start()

    while settings.running:
        if os.path.isfile('STOP'):
            os.remove('STOP')
            open('UPDATE', 'w').close()
            break
        time.sleep(1)
예제 #12
0
import irc
import workers
import functions as func

RESPONSE_TIME = 0.01
MSG_PER_MINUTE = 2

#################### IRC CONFIG ####################
PORT = 6666
SERVER = "chat.freenode.net"
CHANNEL = "#kaestChannels"
BOTNICK = "FooBot"
#################### IRC CONFIG ####################

################ IRC INITIALIZATION ################
IRC = irc.IRC()
IRC.connect(SERVER, PORT, CHANNEL, BOTNICK)
IRC.send(CHANNEL, f"{BOTNICK} logging on")
################ IRC INITIALIZATION ################

################ Print Chat Connection Info ################
RESPONSE = ""
while RESPONSE.find(f"JOIN {CHANNEL}") < 0:
    RESPONSE = IRC.get_response().rstrip()
    print(RESPONSE + "\n")
################ Print Chat Connection Info ################

################ WORKER INITIALIZATION ################
MESSAGE_CACHE = []  # Initialize the autotracking message queue
CLEANER = workers.MessageQueueCleaner(RESPONSE_TIME, MESSAGE_CACHE)
TALKER_DICT = {}  # Initialize talker dictionary
예제 #13
0
import sys
import irc
import telebot

token = 'token_name'

client_irc = irc.IRC()

nick = 'Pons_IRC_Telegram'
server = 'chat.freenode.net'
channel = sys.argv[1]
chat_id = -270350582

client_irc.connect(server, nick)
client_irc.join(channel)

client_teleg = telebot.TeleBot(token)
@client_teleg.message_handler(content_types=["text"])
def send(message):
    client_irc.send(channel, message.text)

client_teleg.polling()
예제 #14
0
import irc, os, comms
os.system('clear')

channel = "#mk-comms"
server = "irc.freenode.net"
nickname = "rpi-service"

client = irc.IRC()
client.connect(server, channel, nickname, "MK-COMMS Test Service")

while True:
    open('public/list', 'w').write(str(os.listdir('public')))
    cmd, user, fullmsg = comms.parsecmd(client.get_text())
    if not cmd == None:
        if cmd == 'ping':
            client.send('pong')
            print('ping from ' + user + ' ponged.')

        elif cmd == 'pong':
            print('pong from ' + user + ' recieved.')

        elif cmd == 'send':
            if fullmsg.split(' ')[1] == nickname:
                sent_command = ' '.join(fullmsg.split(' ')[2:])
                print('sending message from ' + user + ' to logs.')
                print(sent_command)

        elif cmd == 'post':
            sent_command = ' '.join(fullmsg.split(' ')[1:])
            print('sending post from ' + user + ' to logs.')
            print(sent_command)
예제 #15
0
def initialize():
    conn = irc.IRC()
    conn.connect(server, channel, port, nickname)
    aclist = baekjoon.get_aclist(boj_username)
    boardlist = snucsepl.get_boardlist()
    return conn, aclist, boardlist
예제 #16
0
import time
import os
import thread
import cPickle
from collections import defaultdict

import reminder as rem
import irc

irc = irc.IRC('irc.synirc.net', 6667)
try:
  f = open('reminder.pickle', 'r')
  ru = cPickle.load(f)
except IOError:
  ru = defaultdict(list)
bot = rem.RemBot(irc, ru)
thread.start_new_thread(bot.run, ())

print ru

fs = os.stat('reminder.py').st_mtime

try:
  while 1:
    # watch for changes innit
    try:
      stat = os.stat('reminder.py').st_mtime
    except OSError:
      pass
    if stat != fs:
      print '### reloading'
예제 #17
0
def start():
    console.clear()
    if HRAM.readTab('crash'):
        console.writeline(
            'your microsystem computer has crashed. here is some info.')
        console.writeline(HRAM.readTab('crash_dump'))
        if HRAM.readTab('crash_fatal'):
            misc.delay(5000)
            console.writeline('resuming your session...')
            misc.delay(1000)
        else:
            HRAM.writeTab('crash', False)
            console.writeline('your computer will resume in 5 seconds.')
            misc.delay(5000)
            console.writeline('resuming your computer')
            misc.delay(1000)
    console.clear()

    console.writeline('welcome to microsystems.')
    console.writeline('')

    filesystem.changeCWD(HROM.readTab('rootdir') + '/home/')

    RAM = ram.ram()
    RAM.purge()

    RAM.writeTab('usefile_content',
                 open(HROM.readTab('usefile')).read().split('\n'))
    RAM.writeTab(
        'sudo_list',
        re.split(HROM.readTab('use_regexp'),
                 RAM.readTab('usefile_content')[0]) +
        HROM.readTab('sudo_list'))
    RAM.writeTab(
        'user_list',
        re.split(HROM.readTab('use_regexp'),
                 RAM.readTab('usefile_content')[1]) +
        HROM.readTab('user_list'))
    RAM.writeTab(
        'pass_list',
        re.split(HROM.readTab('use_regexp'),
                 RAM.readTab('usefile_content')[2]) +
        HROM.readTab('pass_list'))
    RAM.writeTab('user_session_active', False)

    while HRAM.readTab('system_active'):
        if not (RAM.readTab('user_session_active')):
            while not (RAM.readTab('user_session_active')):
                console.writeline('please log in.')
                RAM.writeTab('user_name', console.readline('  username: '******'pass_word', console.readline('  password: '******'user_name') in RAM.readTab(
                        'user_list') + HROM.readTab('user_list'):
                    if RAM.readTab('pass_word') == RAM.readTab('pass_list')[
                            RAM.readTab('user_list').index(
                                RAM.readTab('user_name'))]:
                        RAM.writeTab('user_session_active', True)
                        # If user's sudo status is the string 'True' then they get sudo privs.
                        RAM.writeTab(
                            'user_is_sudo',
                            'True' == RAM.readTab('sudo_list')[RAM.readTab(
                                'user_list').index(RAM.readTab('user_name'))])
                        console.clear()
                    else:
                        console.clear()
                        console.writeline('error: password incorrect.')
                        console.writeline('')

                    client = irc.IRC()
                    RAM.writeTab(
                        'irc_name',
                        RAM.readTab('user_name') + '-' +
                        HRAM.readTab('host_name'))
                    client.connect(HROM.readTab('server'),
                                   HROM.readTab('channel'),
                                   RAM.readTab('irc_name'),
                                   "A Microsystems User")
                    console.writeline('starting IRC listening daemon...')

                    def ircListener(client):
                        try:
                            console.writeline('IRC listening daemon active.')
                            while True:
                                cmd, user, fullmsg = comms.parsecmd(
                                    client.get_text())
                                if not cmd == None:
                                    if cmd == 'ping':
                                        client.send('pong')

                                    elif cmd == 'pong':
                                        RAM.writeTab('ponged', user)

                                    elif cmd == 'post':
                                        sent_command = ' '.join(
                                            fullmsg.split(' ')[1:])
                                        filesystem.appendFile(
                                            HROM.readTab('post_dest'),
                                            '[' + user + '] posted: ' +
                                            sent_command + '\n')

                                    elif cmd == 'send':
                                        if fullmsg.split(' ')[
                                                1] == RAM.readTab('irc_name'):
                                            sent_command = ' '.join(
                                                fullmsg.split(' ')[2:])
                                            filesystem.appendFile(
                                                HROM.readTab('inbox_dest') +
                                                RAM.readTab('user_name') +
                                                '.inb',
                                                '[' + user + '] sent: ' +
                                                sent_command + '\n')

                                    elif cmd == 'give':
                                        if fullmsg.split(' ')[
                                                1] == RAM.readTab('irc_name'):
                                            sent_command = ' '.join(
                                                fullmsg.split(' ')[2:])
                                            if sent_command == 'ack':
                                                RAM.writeTab('ack', True)
                                            else:
                                                RAM.writeTab(
                                                    'response', sent_command)
                                                if sent_command.split(
                                                        ' ')[0] == 'file':
                                                    comms.decode_file(
                                                        sent_command.split(' ')
                                                        [1], ' '.join(
                                                            sent_command.split(
                                                                ' ')[2:]))

                                    elif cmd == 'rqst':
                                        if fullmsg.split(' ')[
                                                1] == RAM.readTab('irc_name'):
                                            rqst_data = ' '.join(
                                                fullmsg.split(' ')[2:])
                                            if rqst_data == 'ack':
                                                client.send('give ' + user +
                                                            ' ack')
                                            elif rqst_data.split(
                                                    ' ')[0] == 'get':
                                                if HRAM.readTab('server'):
                                                    try:
                                                        client.send(
                                                            'give ' + user +
                                                            ' file ' +
                                                            rqst_data.split(
                                                                ' ')[1] + ' ' +
                                                            comms.encode_file(
                                                                'public/' +
                                                                rqst_data.
                                                                split(' ')[1]))
                                                    except:
                                                        client.send(
                                                            'fail ' + user +
                                                            ' 1:OBJECT_NOT_RECOGNIZED'
                                                        )
                                                else:
                                                    client.send(
                                                        'fail ' + user +
                                                        ' 2:SERVICE_CLOSED')
                                            else:
                                                client.send(
                                                    'fail ' + user +
                                                    ' 0:RQST_NOT_RECOGNIZED')

                                    elif cmd == 'fail':
                                        if fullmsg.split(' ')[
                                                1] == RAM.readTab('irc_name'):
                                            sent_command = ' '.join(
                                                fullmsg.split(' ')[2:])
                                            RAM.writeTab(
                                                'failed_msg', sent_command)
                                            RAM.writeTab('failed_rqst', True)

                        except Exception as e:
                            console.writeline('\n\nIRC daemon died!')
                            filesystem.dumpError(sys.exc_info())
                            console.writeline(str(e) + '\n')
                            #ircListeningDaemon = threading.Thread(target=ircListener, args=([client]), daemon=True)
                            #ircListeningDaemon.start()

                    ircListeningDaemon = threading.Thread(target=ircListener,
                                                          args=([client]),
                                                          daemon=True)
                    ircListeningDaemon.start()

                    console.writeline('IRC listening daemon set up.')

                    console.writeline('microsystems MK-COMMS system set up.\n')

                    console.writeline(
                        'note: you may need to wait before your connection is complete.'
                    )
                    console.writeline(
                        'to check if you are connected, try typing \'mk-ping\' until you get a response.\n'
                    )
                else:
                    console.clear()
                    console.writeline('error: invalid user.')
                    console.writeline('')

        RAM.writeTab(
            'user_input',
            console.readline(
                RAM.readTab('user_name') + '@' + HRAM.readTab('host_name') +
                ' ~ $ '))

        if RAM.readTab('user_input') == 'restart':
            HRAM.writeTab('system_restart', True)
            HRAM.writeTab('system_active', False)

        elif RAM.readTab('user_input') == 'mk-serveron':
            if RAM.readTab('user_is_sudo'):
                HRAM.writeTab('server', True)
                console.writeline('server mode enabled.')
            else:
                console.writeline('\nyou are not a super-user.')

        elif RAM.readTab('user_input') == 'mk-ping':
            RAM.writeTab('ponged', '')
            client.send('ping')
            console.writeline('ping sent; listening for reply.')

            timer_start = time.time()
            while timer_start - time.time() > -1:
                if RAM.readTab('ponged') != '':
                    console.writeline('user [' + RAM.readTab('ponged') +
                                      '] ponged.')
                    RAM.writeTab('ponged', '')

            console.writeline('ping complete.\n')

        elif RAM.readTab('user_input').split(' ')[0] == 'mk-send':
            client.send('send ' + RAM.readTab('user_input').split(' ')[1] +
                        ' ' +
                        ' '.join(RAM.readTab('user_input').split(' ')[2:]))

        elif RAM.readTab('user_input').split(' ')[0] == 'mk-post':
            client.send('post ' +
                        ' '.join(RAM.readTab('user_input').split(' ')[1:]))

        elif RAM.readTab('user_input').split(' ')[0] == 'mk-rqst':
            RAM.writeTab('ack', False)
            client.send('rqst ' + RAM.readTab('user_input').split(' ')[1] +
                        ' ack')
            console.writeline('sending ack request..')
            timer_start = time.time()
            while timer_start - time.time() > -1:
                if RAM.readTab('ack'):
                    break

            if RAM.readTab('ack'):
                console.writeline('ack request answered, continuing.')
                RAM.writeTab('response', '')
                RAM.writeTab('failed_rqst', False)
                client.send('rqst ' + RAM.readTab('user_input').split(' ')[1] +
                            ' ' +
                            ' '.join(RAM.readTab('user_input').split(' ')[2:]))
                timer_start = time.time()
                while timer_start - time.time() > -1:
                    if '' != RAM.readTab('response'):
                        console.writeline('got a response!')
                        break

                    elif RAM.readTab('failed_rqst'):
                        console.writeline('request failed: ' +
                                          RAM.readTab('failed_msg'))
                        break

            else:
                console.writeline('ack request ignored, aborting.')
                continue
            console.writeline('')

        elif RAM.readTab('user_input') == 'clear':
            console.clear()

        elif RAM.readTab('user_input').split(' ')[0] == 'del':
            if filesystem.removeFile(RAM.readTab('user_input').split(' ')[1]):
                console.writeline('file deleted successfully.')
            else:
                console.writeline('"' +
                                  RAM.readTab('user_input').split(' ')[1] +
                                  '" is not a valid file.')

        elif RAM.readTab('user_input') == 'ls':
            console.writeline('\nhere is the directory listing:')
            RAM.writeTab('tmp00', filesystem.listCWD())

            for i in range(len(RAM.readTab('tmp00'))):
                console.writeline('> ' + RAM.readTab('tmp00')[i])

            console.writeline('\n\nlisting complete\n')

        elif RAM.readTab('user_input')[:3] == 'cat':
            console.writeline(
                'reading ' + RAM.readTab('user_input')[4:] + '...\n\n' +
                filesystem.readFile(RAM.readTab('user_input')[4:]) + '\n')

        elif RAM.readTab('user_input') == 'post':
            posts = open(HROM.readTab('post_dest')).read().split('\n')
            for i in range(len(posts)):
                console.writeline(posts[i])

        elif RAM.readTab('user_input') == 'clearpost':
            open(HROM.readTab('post_dest'), 'w+').write('')
            console.writeline('cleared.')

        elif RAM.readTab('user_input') == 'inbox':
            inbox = open(
                HROM.readTab('inbox_dest') + RAM.readTab('user_name') +
                '.inb').read().split('\n')
            for i in range(len(inbox)):
                console.writeline(inbox[i])

        elif RAM.readTab('user_input') == 'clearinbox':
            open(
                HROM.readTab('inbox_dest') + RAM.readTab('user_name') + '.inb',
                'w+').write('')
            console.writeline('cleared.')

        elif RAM.readTab('user_input')[:3] == 'run':
            console.writeline('running ' + RAM.readTab('user_input')[4:] +
                              '...\n')
            RAM.writeTab('last_exec',
                         exec.runFile(RAM.readTab('user_input')[4:], RAM))

        elif RAM.readTab('user_input') == 'shutdown':
            HRAM.writeTab('system_restart', False)
            HRAM.writeTab('system_active', False)

        elif RAM.readTab('user_input') == 'dumpram':
            if RAM.readTab('user_is_sudo'):
                console.writeline(RAM.dumpAll())
            else:
                console.writeline('\nyou are not a super-user.')

        elif RAM.readTab('user_input') == 'dumphrom':
            if RAM.readTab('user_is_sudo'):
                console.writeline(HROM.dumpAll())
            else:
                console.writeline('\nyou are not a super-user.')

        elif RAM.readTab('user_input') == 'dumphram':
            if RAM.readTab('user_is_sudo'):
                console.writeline(HRAM.dumpAll())
            else:
                console.writeline('\nyou are not a super-user.')

        elif RAM.readTab('user_input') == 'dumperam':
            if RAM.readTab('user_is_sudo'):
                try:
                    console.writeline(RAM.readTab('last_exec').dumpAll())
                except:
                    pass
            else:
                console.writeline('\nyou are not a super-user.')

        elif RAM.readTab('user_input') == 'logout':
            RAM.writeTab('user_session_active', False)
            console.clear()

        elif RAM.readTab('user_input') == 'purgeram':
            if RAM.readTab('user_is_sudo'):
                console.writeline(RAM.purge())
            else:
                console.writeline('\nyou are not a super-user.')

        elif RAM.readTab('user_input') == 'fatalcrash':
            if RAM.readTab('user_is_sudo'):
                raise error.FatalTestException
            else:
                console.writeline('\nyou are not a super-user.')

        elif RAM.readTab('user_input') == 'crash':
            if RAM.readTab('user_is_sudo'):
                raise error.TestException
            else:
                console.writeline('\nyou are not a super-user.')

        elif RAM.readTab('user_input') == 'lastdump':
            if RAM.readTab('user_is_sudo'):
                console.writeline(open(HROM.readTab('dumpfile')).read())
            else:
                console.writeline('\nyou are not a super-user.')
예제 #18
0

def closing(sig, frame):
    print("clossing !")
    irc.irc.send(("PART " + chan).encode("utf-8"))
    irc.irc.close()
    thread_chatReader.stop()
    thread_chatTimer.stop()
    sys.exit(0)


def main():

    irc.connect(server, chan, nick, passw)
    signal.signal(signal.SIGINT, closing)
    executions()


chan = "#joleo007"
server = "irc.chat.twitch.tv"
nick = "agentsergentchef"
passw = open("secretkey.txt", 'r').read()
sleeptime = 10

irc = irc.IRC()
thread_chatReader = readChat()
thread_chatTimer = timerChat()

if __name__ == "__main__":
    main()
예제 #19
0
def main():
    # Parse config file
    config = models.config.Config("config.json")
    # Validate config
    if config.validateSelf() == False:
        print("config invalid! exiting...")
        exit()
    else:
        print("config valid, continue...")

    print("Getting twitch channel " + config.channelName + " data...\n")

    # Get twitch user data
    response = GetTwitchUser(config.channelName, config.clientID)
    # print(str(response) + "\n\n")
    userResponse = models.twitch.user.UsersResponse(response)
    user = userResponse.user

    print(
        "Twitch channel {} (login: {}, ID: {})\nView count: {}\nChannel type: {}\nDescription: {}"
        .format(userResponse.user.displayName, userResponse.user.name,
                userResponse.user.id, userResponse.user.viewCount,
                userResponse.user.type, userResponse.user.description))

    # Get twitch user data from new api
    response = GetTwitchUserNew(userResponse.user.id, config.clientID)
    # print(str(response) + "\n\n")

    # Get twitch user stream data
    response = GetTwitchUserStream(userResponse.user.id, config.clientID)
    # print(str(response) + "\n\n")

    streamResponse = models.twitch.stream.StreamResponse(response)
    stream = streamResponse.stream

    if streamResponse.stream != None:
        print("Streaming {} with {} viewers for {} with average FPS of {}".
              format(streamResponse.stream.game, streamResponse.stream.viewers,
                     streamResponse.stream.timedeltaSinceStart,
                     streamResponse.stream.avgFPS))
    else:
        print("Stream offline")

    print(
        "\n\n=====================================\nFinished initial data fetching!\n=====================================\n\n"
    )

    print("Starting autoupdater of user data for channel {} every {} seconds".
          format(config.channelName, config.updateDataInterval))
    autoupdateUserDataTimer = autoupdateUserData(config.updateDataInterval,
                                                 config.clientID,
                                                 config.channelName, user)

    print("Starting autoupdater of stream data for user {} every {} seconds".
          format(userResponse.user.displayName, config.updateDataInterval))
    autoUpdateStreamDataTimer = autoupdateStreamData(config.updateDataInterval,
                                                     config.clientID,
                                                     userResponse.user.id,
                                                     stream)

    print(
        "\n\n=====================================\nFinished starting autoupdaters!\n=====================================\n\n"
    )

    # Connect to twitch chat irc
    chat = irc.IRC(config.chatToken, config.chatUsername, user, stream)
    chat.connect("irc.chat.twitch.tv", 6667)

    stdinControl(chat)
    autoupdateUserDataTimer.cancel()
    autoUpdateStreamDataTimer.cancel()
    print("TwitchBotPrime dies.")
    sys.exit(0)
예제 #20
0
# -*- coding: utf-8 -*-
import irc, os, sys, time, platform, easygui
from ctypes import c_int, WINFUNCTYPE, windll
from ctypes.wintypes import HWND, LPCSTR, UINT

masternick = ''
cmdflag = False
chanflag = True
channel = input('Enter a channel to go to: ').strip()
thebot = irc.IRC('MN1Bot', 'MN1Bot', 'MN1Bot')
thebot.IRCJoin(channel)
while True:
    mydat = str(thebot.IRCRecv(4096))
    print(mydat)
    if 'PING' in mydat:
        print("PINGPONG")
        thebot.IRCSend('PONG')
    if 'PRIVMSG KickBot :sekritpass' in mydat:
        pmflag = True
        for i in range(0, len(mydat)):
            if mydat[i] == ':':
                continue
            if mydat[i] == ':':
                masternick = mydat[:i]

        thebot.IRCSend(
            'PRIVMSG Marionumber1 :You are now the commander of me!')
    if masternick + ' PRIVMSG KickBot :$chanon' in mydat and pmflag:
        thebot.IRCChat('Marionumber1 has turned on channel commands')
        chanflag = True
    if masternick + ' PRIVMSG KickBot :$chanoff' in mydat and pmflag: