Beispiel #1
0
def main():
    logger.info("Starting {0}".format(version_string))

    try:
        gem.runite.context = gem.runite.Context()
        gem.runite.context.unpack(config.game_data['data_file'], config.game_data['index_files'])

        plugin_loader = PluginLoader(plugin_path)
        plugin_loader.load()

        # init service listeners
        # inserts an engine.Start hook to launch listeners
        listeners = ServiceListeners()

        # start the engine
        engine = gem.engine.Engine()
        engine.start()
        signal_handler.setup_exit_handler(engine.stop)

        logger.notice("Finished engine initialization")
    except Exception as e:
        logger.error("Startup failed: {0}".format(e))

    if args.no_console:
        logger.notice("Press Control-D to toggle the interactive console")
        while True:
            line = sys.stdin.readline()
            if not line: # readline will return "" on EOF
                interactive_console()
    else:
        while True:
            pass
Beispiel #2
0
    def run(self):
        plugin_loader = PluginLoader()
        plugin_directory = PluginDirectory()
        commands = plugin_loader.load(plugin_directory)
        self.interpreter = Interpreter(commands)
        poller = Poller(self.input_source, self.input_evaluator)

        poller.poll()
Beispiel #3
0
    def run(self):
        plugin_loader = PluginLoader()
        plugin_directory = PluginDirectory()
        commands = plugin_loader.load(plugin_directory)
        interpreter = Interpreter(commands)
 
        while True:
            print interpreter.interpret(raw_input())
 def produce(self):
     plugin_loader = PluginLoader()
     try:
         router_module, server, realm, vendor = plugin_loader.load_plugin(self.router_info['addr'],
                                                                          self.router_info['port'], self.session)
     except ErrorTimeout, e:
         self.print_with_lock(self.addr + ': fail, connect timeout at module identification')
         self.router_info['status'] = 'offline'
         return self.router_info
Beispiel #5
0
 def produce(self):
     plugin_loader = PluginLoader()
     try:
         router_module, server, realm, vendor = plugin_loader.load_plugin(self.router_info['addr'],
                                                                          self.router_info['port'], self.session)
     except ErrorTimeout, e:
         self.print_with_lock(self.addr + ': fail, connect timeout at module identification')
         self.router_info['status'] = 'offline'
         return self.router_info
Beispiel #6
0
class ScraperEngine(object):
    def __init__(self, plugin_dir, filename_regexp=None):
        self.plugin_dir = plugin_dir
        self.plugin_loader = PluginLoader(filename_regexp)

    def load_plugins(self):
        self.plugin_loader.load_plugins([self.plugin_dir])

    def run(self):
        for plug in self.plugin_loader.plugins:
            scraper = plug.get_scraper()
            scraper.scrape()
Beispiel #7
0
    def run(self):
        plugin_loader = PluginLoader()
        plugin_directory = PluginDirectory('core')
        commands = plugin_loader.load(plugin_directory)

        self._welcome()

        self._init_completion(commands)
        
        self.interpreter = Interpreter(commands)
        
        poller = Poller(self.input_source, self.input_evaluator)
        poller.poll()
Beispiel #8
0
    def __init__(self, **kwargs):
        super().__init__(**kwargs)

        self.camera = None

        self.clip_size = None
        self.ndarray_available.connect(self.clip_array)
        self.ndarray_available.connect(self.convert_to_grayscale)

        self.plugin_loader = PluginLoader()
        self.plugins = self.plugin_loader.plugins
        for plugin in self.plugins:
            try:
                plugin.message.connect(self.message)
            except:
                qDebug("Cannot connect to messages from {}".format(plugin.getName()))
        self.ndarray_available.connect(self.plugin_loader.ndarray_available)
        self.ndarray_bw_available.connect(self.plugin_loader.ndarray_bw_available)
        self.clipped_ndarray_available.connect(self.plugin_loader.clipped_ndarray_available)
        self.clipped_ndarray_bw_available.connect(self.plugin_loader.clipped_ndarray_bw_available)

        self.data_saver = DataSaver()
        self.ndarray_bw_available.connect(self.data_saver.set_array)
        self.save_file.connect(self.data_saver.save_image)
        self.data_saver.message.connect(self.message)

        # this limits the global frame rate in this program:
        self.last_frame_time = time.time()
        self.frame_interval = 0.1
Beispiel #9
0
class BidScraperEngine(TaskManager):
    def __init__(self,
                 plugin_dir,
                 results_dir,
                 logfile='/var/log/bidmap/bid_scraper_engine.log'):
        self.plugin_dir = plugin_dir
        self.results_dir = results_dir
        self.logfile = logfile
        self.plugins = []
        self.pldr = PluginLoader()

        self.logger = logging.getLogger('bidmap')
        self.logger.setLevel(logging.DEBUG)

        fh = logging.FileHandler(filename=logfile, mode='w')
        fh.setLevel(logging.DEBUG)

        formatter = logging.Formatter(
            '%(asctime)s - %(name)s - %(levelname)s - %(message)s')
        fh.setFormatter(formatter)

        self.logger.addHandler(fh)

        super(BidScraperEngine, self).__init__()

    def load_plugins(self):
        self.pldr.load_plugins([self.plugin_dir])
        random.shuffle(self.pldr.plugins)

        tasks = [
            PluginRunner(plugin=p,
                         results_dir=self.results_dir,
                         logfile=self.logfile) for p in self.pldr.plugins
        ]
        self.set_task_list(tasks=tasks)

        self.logger.info('loaded %d plugins' % len(self.pldr.plugins))

    def task_launched(self, task, pid):
        self.logger.info('Task %d for plugin %s launched' %
                         (int(pid), task.plugin))

    def task_completed(self, task, pid):
        self.logger.info('Task %d for plugin %s completed' %
                         (int(pid), task.plugin))
Beispiel #10
0
    def __init__(self, plugin_dir, results_dir='./results/', filename_regexp=None, max_active=5, max_run_time=None):
        self.num_active = 0
        self.max_active = max_active
        self.max_run_time = max_run_time

        self.plugin_loader = PluginLoader(filename_regexp)
        self.plugin_loader.load_plugins([plugin_dir])

        self.process_list = [ PluginProcess(plugin=p, result_dir=results_dir) for p in self.plugin_loader.plugins ]    
Beispiel #11
0
    def __init__(self, conf):

        api_token = conf['general']['api_token']
        name = conf['general']['bot_name']

        self.hipster = HipChat(token=api_token)

        try:
            self.available_rooms = dict(map(lambda x:[x['name'],x['room_id']], self.hipster.list_rooms()['rooms']))
        except HTTPError:
            logger.error('Error! API token not specified or invalid')
            exit()

        if name:
            self.name = name

        pl = PluginLoader(conf, '/plugins')

        self.plugins = pl.get_plugins()

        self.__set_actions()
Beispiel #12
0
class ScraperEngine(object):
    def __init__(self, plugin_dir, results_dir='./results/', filename_regexp=None, max_active=5, max_run_time=None):
        self.num_active = 0
        self.max_active = max_active
        self.max_run_time = max_run_time

        self.plugin_loader = PluginLoader(filename_regexp)
        self.plugin_loader.load_plugins([plugin_dir])

        self.process_list = [ PluginProcess(plugin=p, result_dir=results_dir) for p in self.plugin_loader.plugins ]    

    def launch_max_active(self):
        '''
        Launch up to max_active processes to run plugins
        '''
        self.num_active = len(active_children())

        while len(self.process_list) > 0 and self.num_active < self.max_active:
            process = self.process_list.pop(0)
            process.start_time = datetime.now()
            process.start()

            self.num_active = len(active_children())
        
    def run(self):
        while len(self.process_list) > 0 or self.num_active > 0:
            self.launch_max_active()

            #
            # Monitor for hung processes
            #
            if self.max_run_time:
                for p in active_children():
                    run_time = datetime.now() - p.start_time
                    if p.is_alive() and run_time > self.max_run_time:
                        p.terminate()

            time.sleep(1)
            self.num_active = len(active_children())
Beispiel #13
0
    def __init__(self,
                 plugin_dir,
                 results_dir,
                 logfile='/var/log/bidmap/bid_scraper_engine.log'):
        self.plugin_dir = plugin_dir
        self.results_dir = results_dir
        self.logfile = logfile
        self.plugins = []
        self.pldr = PluginLoader()

        self.logger = logging.getLogger('bidmap')
        self.logger.setLevel(logging.DEBUG)

        fh = logging.FileHandler(filename=logfile, mode='w')
        fh.setLevel(logging.DEBUG)

        formatter = logging.Formatter(
            '%(asctime)s - %(name)s - %(levelname)s - %(message)s')
        fh.setFormatter(formatter)

        self.logger.addHandler(fh)

        super(BidScraperEngine, self).__init__()
    def __init__(self, conf):

        api_token = conf['general']['api_token']
        name = conf['general']['bot_name']

        self.hipster = HipChat(token=api_token)

        try:
            self.available_rooms = dict(
                map(lambda x: [x['name'], x['room_id']],
                    self.hipster.list_rooms()['rooms']))
        except HTTPError:
            print('Error! API token not specified or invalid')
            exit()

        if name:
            self.name = name

        pl = PluginLoader(conf, '/plugins')

        self.plugins = pl.get_plugins()

        self.__set_actions()
Beispiel #15
0
    def run(self):
        plugin_loader = PluginLoader()
        plugin_directory = PluginDirectory()
        commands = plugin_loader.load(plugin_directory)
        interpreter = Interpreter(commands)

        try:
            while True:
                input = self.input()
                result = interpreter.interpret(input)

                if result is not None:
                    if isinstance(result, str):
                        lines = result.split("\n")

                        if len(lines) > 1:
                            for line in lines:
                                self.output(line)
                        else:
                            self.output(result)
                    else:
                        self.output(result)
        except SystemExit:
            pass
Beispiel #16
0
            f = open(path, 'w')
            f.write(json.dumps(so, indent=2))
            f.close()
        except Exception, e:
            sys.stderr.write("Exception: %s\n" % e)
            sys.exc_clear()

        num_bids = org.bid_set.count()
        self.logger.info('Saved %d bids for org %s to file %s' % (num_bids, org.name, path))

    def make_plugin_filename(self):
        """
        Return the filename we'll use to store results for a given plugin.
        """
        netloc = urlparse(self.plugin.GOVINFO['home_page_url']).netloc
        tld = netloc.rsplit('.', 1)[1]

        filename = tld + '-' + self.plugin.__name__
        return filename

if __name__ == '__main__':
    if len(sys.argv) != 2:
        sys.stderr.write('usage: %s <plugin>\n' % sys.argv[0])
        sys.exit(1)

    pldr = PluginLoader()
    plug = pldr.load_plugin(sys.argv[1])

    plugin_runner = PluginRunner(plugin=plug, results_dir='results/')
    plugin_runner.run()
#! venv3/bin/python

from plugin_loader import PluginLoader
import discord
import asyncio
import configparser
import traceback
import json
import sys
import logging
import twitter


config = configparser.RawConfigParser()
plugins = PluginLoader()
client = discord.Client()


@client.async_event
def on_ready():
    print('Logged in as: ', client.user.name, 'with ID:', client.user.id)


@client.async_event
def on_message(message):
    selfname = config.get("BotSettings", "self_name")
    permitted_channels = json.loads(config.get('BotSettings', 'permitted_channels'))
    server_id = config.get("BotSettings", "server_id")

    if message.channel.is_private:
        if not message.author.name == selfname:
Beispiel #18
0
 def __init__(self, plugin_dir, filename_regexp=None):
     self.plugin_dir = plugin_dir
     self.plugin_loader = PluginLoader(filename_regexp)
Beispiel #19
0
    elif message.is_upload():
        print "-- %s UPLOADED FILE %s: %s" % (
            user,
            message.upload["name"],
            message.upload["url"]
        )
    elif message.is_topic_change():
        print "-- %s CHANGED TOPIC TO '%s'" % (user, message.body)

def error(e):
    print("Stream STOPPED due to ERROR: %s" % e)
    print("Press ENTER to continue")

from plugin_loader import PluginLoader

pm = PluginLoader("%s/src/plugins" % PROJECT_ROOT)

for p in pm.plugins:
    x = pm.init_plugin(p)
    token, cb = x.get_link()
    hsah = hashlib.md5(token.pattern.encode('utf-8')).hexdigest()
    pkg = {
        "token": token,
        "cb": cb,
    }
    current_list = demons.get(hsah, list())
    current_list.append(pkg)
    demons[hsah] = current_list

# print "Ups! Fake run! F**k run!"
campfire = pyfire.Campfire(CAMPFIRE_ACCOUNT, CAMPFIRE_API_KEY, "x", ssl=True)
Beispiel #20
0
            f.close()
        except Exception, e:
            sys.stderr.write("Exception: %s\n" % e)
            sys.exc_clear()

        num_bids = org.bid_set.count()
        self.logger.info('Saved %d bids for org %s to file %s' %
                         (num_bids, org.name, path))

    def make_plugin_filename(self):
        """
        Return the filename we'll use to store results for a given plugin.
        """
        netloc = urlparse(self.plugin.GOVINFO['home_page_url']).netloc
        tld = netloc.rsplit('.', 1)[1]

        filename = tld + '-' + self.plugin.__name__
        return filename


if __name__ == '__main__':
    if len(sys.argv) != 2:
        sys.stderr.write('usage: %s <plugin>\n' % sys.argv[0])
        sys.exit(1)

    pldr = PluginLoader()
    plug = pldr.load_plugin(sys.argv[1])

    plugin_runner = PluginRunner(plugin=plug, results_dir='results/')
    plugin_runner.run()
Beispiel #21
0
 def __init__(self, config):
     self.config = config
     loader = PluginLoader(config)
     plugins, handlers = loader.load_plugins()
     self.plugins = plugins
     self.handlers = handlers