def deposit_index(methods=["GET", "OPTIONS"]): if request.method == "OPTIONS": return jsonify({}), 200 try: # authentication token, user = Helper.user_authentication() if token and user == None: return Helper.abort(401, "Unauthorized", base="Invalid credentials") # ordering order_by = request.args.get('order_by', 'created_at') order = request.args.get('order', 'desc') # pagination size = int(request.args.get('page_size', 10)) if size > 10 and size < 1: size = 10 page = int(request.args.get('page', 1)) if page < 1: page = 1 # get deposit ds = Deposit.get_deposits(size=size, page=page, order_by=order_by, order=order, user=user) resp = Response(Deposit.to_deposits_json(ds)) resp.code = 200 if user: resp.headers['X-Token'] = "B2SHARE " + user.get_token() return resp except: return Helper.abort(500, "Internal Server Error", base="Internal Server Error")
def check(user, passwd): try: i = imaplib.IMAP4_SSL("imap.gmail.com") i.login(user, passwd) except imaplib.IMAP4.error as ex: ## kannski grípa utar log(str(ex)) sys.exit(1) i.select() status, response = i.search(None, 'ALL') mailids = [int(a) for a in response[0].split()] my_mailid = DB.get().max_mailid() new_mailids = [a + 1 for a in range(my_mailid, max(mailids))] for mailid in new_mailids: DB.get().add_mailid(mailid) f = i.fetch(mailid, '(RFC822)') mail = f[1][0][1] info = f[1][0][0] try: b = Bankmail(mail) # .new() calls .save() :( Deposit.new(b.username, b.amount, "Wire", deposit=True, vsk=25.5) logger.email( "Username: {username}\nAmount: {amount}".format(**b.__dict__)) except NotBankmail as notb: log("Skipping {0}: {1}".format(mailid, str(notb))) pass except ValueError as ve: logger.email("Skipping {0}: {1}".format(mailid, ve)) except AttributeError: logger.email( "User {username} not found. Amount: {amount}. Parser: {bank}". format(**b.__dict__)) except Exception as e: logger.email("Uncaught exception: " + str(e)) sys.exit(1) i.close() i.logout()
def check(user, passwd): try: i = imaplib.IMAP4_SSL("imap.gmail.com") i.login(user, passwd) except imaplib.IMAP4.error as ex: ## kannski grípa utar log(str(ex)) sys.exit(1) i.select() status, response = i.search(None, 'ALL') mailids = [int(a) for a in response[0].split()] my_mailid = DB.get().max_mailid() new_mailids = [a+1 for a in range(my_mailid, max(mailids))] for mailid in new_mailids: DB.get().add_mailid(mailid) f = i.fetch(mailid, '(RFC822)') mail = f[1][0][1] info = f[1][0][0] try: b = Bankmail(mail) # .new() calls .save() :( Deposit.new(b.username, b.amount, "Wire", deposit=True, vsk=25.5) logger.email("Username: {username}\nAmount: {amount}".format(**b.__dict__)) except NotBankmail as notb: log("Skipping {0}: {1}".format(mailid, str(notb))) pass except ValueError as ve: logger.email("Skipping {0}: {1}".format(mailid, ve)) except AttributeError: logger.email("User {username} not found. Amount: {amount}. Parser: {bank}".format(**b.__dict__)) except Exception as e: logger.email("Uncaught exception: " + str(e)) sys.exit(1) i.close() i.logout()
def deposit(methods=["GET", "OPTIONS"]): if request.method == "OPTIONS": return jsonify({}), 200 try: # authentication token, user = Helper.user_authentication() if token and user == None: return Helper.abort(401, "Unauthorized", base="Invalid credentials") # request uuid = request.args.get('uuid', None) if uuid == None: return Helper.abort(400, "Bad Request", base="Unknown Deposit request") deposit = Deposit.find_deposit(uuid=uuid, user=user) if deposit == None: return Helper.abort(404, "Not Found", base="Deposit not found") resp = Response(deposit.to_json()) resp.code = 200 if user: resp.headers['X-Token'] = "B2SHARE " + user.get_token() return resp except: return Helper.abort(500, "Internal Server Error", base="Internal Server Error")