def on(server): if not server.running: Log.report('Starting: %s' % server.name) try: server.start() except Exception as e: Log.report_error(e.message)
def run(self): Event.add_event(obj=SqlServer, method='manage_clean', interval=10, key=SqlServer.KEY, start=True) self.__running = True try: self.__server.bind(('localhost', self.__port)) self.__server.listen(100) except Exception as e: Log.report_error(e.message) self.__running = False while self.__running: try: response = None handler = SqlConnectionHandler(*self.__server.accept()) key, db, q, args = handler.begin() if key == SqlAccess.MANAGE: self.__master.manage(args) elif key == SqlAccess.QUERY: response = self.__master.execute(db, q, args) handler.complete(response) except Exception as e: Log.report_error(e.message) Event.remove_event(SqlServer.KEY) self.__master.manage(SqlMaster.CLEAR)
def off(server): if server.running: Log.report('Stopping: %s' % server.name) try: server.running = False server.join(0) except Exception as e: Log.report_error(e.message)
def execute(self, db, q, args): result = None try: if self.__locate_db(db): result = self.__dbs[db].execute(q, args) except Exception as e: Log.report_error(e.message) return result
def get_file(filename, path): if path: if filename not in get_files(path): Log.report_error('No file found %s' % path) return None, None header, filename = StreamFunction.force_media(filename, path) else: header, filename = Static.Builder.find_media(filename) return header, filename
def process_tmp(): keys = Event.get_keys() to_del = [File(Config.TMP_DIR + item) for item in get_files(Config.TMP_DIR) if item not in keys] for item in to_del: try: item.delete() except Exception as e: Log.report_error(e.message)
def send_manage(self, args=None): result = '' try: self.connect(('localhost', StaticSqlAccess.PORT)) self.__send_line(SqlAccess.MANAGE) self.__send_line(args) result = self.__receive_line() self.close() except Exception as e: Log.report_error(e.message) return result
def send_query(self, db, q, args=None): result = '' try: self.connect(('localhost', StaticSqlAccess.PORT)) self.__send_line(SqlAccess.QUERY) self.__send_line(db) self.__send_line(q) self.__send_line(args) result = self.__receive_line() self.close() except Exception as e: Log.report_error(e.message) return result
def burn(self): try: self.bind((self.__ip, self.__port)) except Exception: pass Log.report('Ghost Update %s:%s' % (self.__ip, self.__port)) self.listen(500) while State.active: try: conn, address = self.accept() account = conn.recv(1024) if account and account in Manager.Clients: Event.add_event(obj=Client, method='send_to', key=account, start=True, onetime=True, args={'account': account, 'data': Manager.Code.PUSH}) except Exception: pass
def burn(self): try: self.bind((self.__ip, self.__port)) except Exception as e: Log.report_error(e.message) Log.report('Ghost Server %s:%s' % (self.__ip, self.__port)) self.listen(500) while State.active: try: conn, address = self.accept() account = conn.recv(1024).replace('\n', '') if account != '': client = Client(conn, address, account) Manager.Clients.update({account: client}) try: Event.remove_event(account) Event.add_event(obj=Client, method='send_to', key=account, start=True, interval=Manager.HEARTBEAT, args={ 'account': account, 'data': Manager.Code.HEARTBEAT }) except Exception as e: Log.report_error(e.message) except Exception: State.active = False
def burn(self): try: self.bind((self.__ip, self.__port)) except Exception: pass Log.report('Ghost Update %s:%s' % (self.__ip, self.__port)) self.listen(500) while State.active: try: conn, address = self.accept() account = conn.recv(1024) if account and account in Manager.Clients: Event.add_event(obj=Client, method='send_to', key=account, start=True, onetime=True, args={ 'account': account, 'data': Manager.Code.PUSH }) except Exception: pass
def burn(self): try: self.bind((self.__ip, self.__port)) except Exception as e: Log.report_error(e.message) Log.report('Ghost Server %s:%s' % (self.__ip, self.__port)) self.listen(500) while State.active: try: conn, address = self.accept() account = conn.recv(1024).replace('\n', '') if account != '': client = Client(conn, address, account) Manager.Clients.update({account: client}) try: Event.remove_event(account) Event.add_event(obj=Client, method='send_to', key=account, start=True, interval=Manager.HEARTBEAT, args={'account': account, 'data': Manager.Code.HEARTBEAT}) except Exception as e: Log.report_error(e.message) except Exception: State.active = False
def __callback_pre(self): Log.set_writer(self.get_writer())
def handle_error(self, request, address): Log.report_socket_error(address=address, traceback=trace()[-1][1:])
def query(self, q=None): if q: Log.report_info(access_query(self.__db, q)) else: Log.report_error('empty query')
def __callback_begin(self): self.__callback_pre() Log.ready()