def put(self, id): team = session.query(Team).filter(Team.id == id).first() if not team: abort(404, message="Team {} does not exist".format(id)) error_message = None try: # Processing input arguments parser.add_argument('name', type=str, required=True, trim=True) parsed_args = parser.parse_args() # Updating team instance team.name = parsed_args['name'] if parsed_args['name'] else team.name # Saving to DB session.merge(team) session.commit() except IntegrityError: error_message = 'Faulty or a duplicate record' except ValueError as e: error_message = str(e) except Exception as e: print(str(e)) error_message = 'Bad request' finally: if error_message: session.rollback() abort(400, message='Unable to create team record: ' + error_message) else: return team, 202
def process_flag(flag): download_flag(flag) longflag(flag) audioflag(flag) md5sum(flag) session.merge(flag) session.commit()
def stocks_update(arr: list): arr = filter(lambda x: x['type'] in stock_types.enums, arr) g = [(r['symbol'], r['description'], r['type'], r['exchange'], r['lotsize'], r['rating'], r['volatility'], r.get('last_price')) for r in arr] for i in g: session.merge(Stock(*i)) session.commit()
def put(self): sectionSchema = SectionSchema() json_data = request.get_json() if not json_data: return jsonify({'message:' : 'No input data provided'}), 400 section = sectionSchema.load(json_data).data session.merge(section) return sectionSchema.dump(section), 200
def fetch_username(userid): user = session.query(User).filter(User.userid == userid).first() if user: return user.username profile_url = 'https://forums.somethingawful.com/member.php?action=getinfo&userid=' response = requests.get(profile_url + str(userid), cookies=SA_COOKIE) if not response.ok: return match = re.search(r'<h3>About (.+)</h3>', response.text) username = match and match.groups()[0] or 'INVALID' session.merge(User(userid=userid, username=username)) session.commit() return username
def process_flag_json(flag): flag['raw'] = str(flag) flag['flagid'] = int(flag['path'].split('.')[0].split('/')[-1]) flag['userid'] = fetch_userid(flag['username']) del flag['username'] already_fetched = session.query(exists().where(Flag.flagid==flag['flagid'])).scalar() session.merge(Flag(**flag)) session.commit() if not already_fetched: flag = session.query(Flag).filter(Flag.flagid==flag['flagid']).first() process_flag(flag) print(flag, session.query(User).count(), session.query(Flag).count())
def fetch_userid(username): user = session.query(User).filter(User.username == username).first() if user: return user.userid try: profile_url = 'https://forums.somethingawful.com/member.php?action=getinfo&username='******'userid=(\d+)', response.text) userid = match and int(match.groups()[0]) or 0 session.merge(User(userid=userid, username=username)) session.commit() return userid
def main(): current_page = args.page_number try: print("Processing page {}...".format(current_page)) result = make_request(args, current_page) if 'error' in result: exit() res = result['response']['search']['offers']['entities'] # res = list(filter(lambda r: r['building'].get('buildingId'), res)) for e in convert(res): session.merge(Author(*e['author'])) if e['site']: session.merge(Site(*e['site'])) if e['building']: session.merge(Building(*e['building'])) nbid = None else: nb = session.merge(NewBuilding(*e['new_building'])) session.commit( ) # todo it's working now only for new buildings autoinc IDs nbid = nb.id o = (nbid, ) + e['offer'] session.merge(Offer(*o)) # session.merge(Photo(*e['photo'])) # for ent in res: # session.merge(Offer( # ent['offerId'], # ent['active'], # ent['area']['value'], # ent['building'].get('houseId') # )) session.commit() current_page += 1 print("Waiting {0} seconds".format(args.delay)) time.sleep(args.delay) except Exception as e: print(e) print("Unknown exception, waiting 60 seconds.") time.sleep(60) except KeyboardInterrupt: print("Finishing...") exit() print("Done")
def put(self, id): user = session.query(User).filter(User.id == id).first() if not user: abort(404, message="User {} does not exist".format(id)) error_message = None try: # Processing input arguments parser.add_argument('name', type=str, trim=True) parser.add_argument('email', type=str, trim=True) parser.add_argument('password', type=str) parser.add_argument('user_id', type=str) parser.add_argument('pin', type=str) parser.add_argument('profile_picture', type=str) parsed_args = parser.parse_args() # Updating user instance user.name = parsed_args['name'] if parsed_args['name'] else user.name user.email = parsed_args['email'] if parsed_args['email'] else user.email user.password = parsed_args['password'] if parsed_args['password'] else user.password user.user_id = parsed_args['user_id'] if parsed_args['user_id'] else user.user_id user.pin = parsed_args['pin'] if parsed_args['pin'] else user.pin user.profile_picture = parsed_args['profile_picture'] if parsed_args[ 'profile_picture'] else user.profile_picture # Saving to DB session.merge(user) session.commit() except IntegrityError: error_message = 'Faulty or a duplicate record' except ValueError as e: error_message = str(e) except Exception as e: print(str(e)) error_message = 'Bad request' finally: if error_message: session.rollback() abort(400, message='Unable to create user record: ' + error_message) else: return user, 202
def load_special_users(): session.merge(User(userid=62448, username="******")) session.merge(User(userid=94203, username="******")) session.commit()
def trades_update(arr: list): for trade in arr: session.merge(Trade(*trade.values())) session.commit()