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
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()
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
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()
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()
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
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))
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 __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()
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())
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()
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
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:
def __init__(self, plugin_dir, filename_regexp=None): self.plugin_dir = plugin_dir self.plugin_loader = PluginLoader(filename_regexp)
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)
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()
def __init__(self, config): self.config = config loader = PluginLoader(config) plugins, handlers = loader.load_plugins() self.plugins = plugins self.handlers = handlers