def get_about(self, username): # facebook_scraper = pickle.load(open( "facebook_scraper.pickle", "rb" )) try: result = facebook_scraper.get_about(username) user = FacebookUser.query.filter_by(username=username).first() if not user: user = FacebookUser() convert_result(user, result) user.created_at = datetime.now() db.session.add(user) transact_type = 'create' else: convert_result(user, result) transact_type = 'update' user.updated_at = datetime.now() except Exception as e: transaction = Transaction( timestamp = datetime.utcnow(), transact_type = 'error', func = 'get_about(%s)' % username, ref = "%s: %s" % ( str(e.errno) if hasattr(e, 'errno') else 0, e.strerror if hasattr(e, 'strerror') else e ) ) if 'result' in locals(): transaction.data = str(result) transaction.ref = "%s.%s" % (FacebookUser.__tablename__, str(result.uid)) db.session.add(transaction) db.session.commit() return ## Scrape Transaction transaction = Transaction( timestamp = datetime.utcnow(), transact_type = transact_type, ref = "%s.%s" % (FacebookUser.__tablename__, str(result.uid)), func = 'get_about(%s)' % username, data = str(result) ) db.session.add(transaction) db.session.commit() return result