def getStalkerCategoryAlias(plexSectionID): ret = Common.mappingDict.get(plexSectionID) if ret: return ret else: logger.error( "No mapped Stalker category alias for Plex section ID {}". format(plexSectionID)) return ret
def invite_users_to_group_processing(self): info('Invite users to group processing. BEGIN', '\r\n') for id_ in self.get_group_hand_shake_ids(): info('User id: {}'.format(str(id_))) try: self.vk_app.group_invite(id_) self.db.add_user_to_group(id_) except Exception: error(traceback.format_exc()) info('Invite users to group processing. END')
def run(self): try: info('Group processing. BEGIN') theft_result = self.get_first_wall_item() if theft_result: is_post_created = self.create_post( theft_result['wall_item'], theft_result['group_id'], theft_result['group_name'], theft_result['wall_item_id'], theft_result['date_time']) if not is_post_created or self.delete_empty_post(): self.run() info('Group processing. END') except Exception: error('Unknown error during create post') error(traceback.format_exc()) self.run()
def __connect(self, **kw): con = None try: if kw.get('database') == "stalker": con = mysql.connector.connect( host=self.stalker_db_host, user=self.stalker_db_user, password=self.stalker_db_pass, database=mappings.Stalker.database) if kw.get('database') == "plex": con = sqlite3.connect(self.plex_db_path) if kw.get('database') == "ifc": con = sqlite3.connect(self.ifc_db_path) except sqlite3.Error as e: logger.error("SQLite connection error: %s" % e) except mysql.connector.Error as e: logger.error("MySQL connection error: %s" % e) logger.info("success opening {0} database connection".format( kw.get('database'))) return con
def create_post(self, wall_item, owner_id, owner_name, owner_post_id, create_date) -> bool: try: info('Create post. BEGIN', '\r\n') text = self.get_wall_text(wall_item) info('Text: "{}"'.format(str(text))) attachments = self.get_wall_attachments(wall_item) info('Attachments: {}'.format(attachments.__len__())) if attachments.__len__() < 1: error('No post was created without attachments') return False post_id = self.vk_app.group_wall_post(text, attachments) info('Created post: "{}"'.format(str(post_id))) self.db.insert_wall_posts(post_id, owner_id, owner_name, owner_post_id, create_date) info('Create post. END') return True except Exception: error('Unknown error during create post') error(traceback.format_exc()) return False
def __executeSQL(self, query, parameters=False, **kw): try: data = None con = None case = 0 #set differently depending on sqlite or mysql db is queried if kw.get('database') == "ifc": con = self.ifcDBcon case = 1 #sqlite db and query if kw.get('database') == "plex": con = self.plexDBcon case = 1 if kw.get('database') == "stalker": con = self.stalkerDBcon case = 2 cur = con.cursor() logger.debug("Query to execute:\n\t{0}".format(query)) if not parameters: cur.execute(query) else: cur.execute(query, parameters) if case == 1: #sqlite db and query data = cur.fetchall() if not data: con.commit() logger.debug( '{0} rows in {1} database affected by the execute call.' .format(cur.rowcount, kw.get('database'))) return True logger.debug('{0} rows from {1} database returned.'.format( len(data), kw.get('database'))) if case == 2: #mysql db and query if cur.description is None: # No recordset for INSERT, UPDATE, CREATE, etc con.commit() logger.debug( 'No recordset returned by the execute call on {0} database.' .format(kw.get('database'))) return cur.lastrowid else: # Recordset for SELECT data = cur.fetchall() logger.debug('{0} rows from {1} database returned.'.format( cur.rowcount, kw.get('database'))) except sqlite3.Error as e: logger.error("SQLite error: %s" % e) except mysql.connector.Error as e: logger.error("MySQL error: %s" % e) except Exception as e: logger.error("Exception in query: %s" % e) return data
def execute_wrap_exception(func, *args): try: return func(*args) except Exception: error(traceback.format_exc())