def process_message(update, context): """Process every new update.""" # pp = pprint.PrettyPrinter(indent=4) # pp.pprint(update.to_dict()) group_id = update.effective_chat.id user_id = update.effective_user.id user_name = get_name(update) msg_type = effective_message_type(update) text = update.effective_message.text if text: msg_length = len(text.split()) else: msg_length = 0 timestamp = update.effective_message.date if DEBUG: debug_msg = ("DEBUG: ON\n\n" f"Group ID: {group_id}\n" f"Type:{msg_type}\n" f"Name:{user_name}\n" f"ID:{user_id}\n" f"Length:{msg_length}\n" f"Date:{timestamp}\n") context.bot.send_message(chat_id=update.effective_chat.id, text=debug_msg) try: db_add_message(group_id, hash_uid(user_id), msg_type, msg_length, timestamp) except ValueError as err: print(f"An error has occurred: {err}\nTrying to add new user.") add_user(hash_uid(user_id), user_name)
def get(self, key): item = model.Item.get(key) data = { 'item': item } util.add_user( self.request.uri, data ) path = os.path.join(os.path.dirname(__file__), 'templates/buy.htm') self.response.out.write(template.render(path, data))
def get(self): data = { 'items': model.Item.recent(), } util.add_user( self.request.uri, data ) path = os.path.join(os.path.dirname(__file__), 'templates/main.htm') self.response.out.write(template.render(path, data))
def get(self): data = { 'items' : model.Purchase.all().order('-created').fetch(100) } util.add_user(self.request.uri, data) path = os.path.join(os.path.dirname(__file__), 'templates/close_deals.html') self.response.out.write(template.render(path, data))
def get(self, key): item = model.Item.get(key) data = {'item': item} util.add_user(self.request.uri, data) path = os.path.join(os.path.dirname(__file__), 'templates/buy.htm') self.response.out.write(template.render(path, data))
def get(self): data = { 'profile': model.Profile.from_user(users.get_current_user()) } util.add_user( self.request.uri, data ) path = os.path.join(os.path.dirname(__file__), 'templates/profile.htm') self.response.out.write(template.render(path, data))
def get(self): data = { 'items': model.Item.recent(), } util.add_user(self.request.uri, data) path = os.path.join(os.path.dirname(__file__), 'templates/main.htm') self.response.out.write(template.render(path, data))
def get(self): data = { 'items': model.Purchase.all().filter( 'owner =', users.get_current_user() ).order('-created').fetch(100), } util.add_user( self.request.uri, data ) path = os.path.join(os.path.dirname(__file__), 'templates/sellhistory.htm') self.response.out.write(template.render(path, data))
def _process(self, message=None): data = { 'message': message, 'items': model.Item.all().filter( 'owner =', users.get_current_user() ).fetch(100), } util.add_user( self.request.uri, data ) path = os.path.join(os.path.dirname(__file__), 'templates/sell.htm') self.response.out.write(template.render(path, data))
def get(self,key): data={} item=model.Item.get(key) data['item']=item path = os.path.join(os.path.dirname(__file__), 'templates/item.htm') user=users.get_current_user() util.add_user( self.request.uri, data ) data['profile']=model.Profile.from_user(user) self.response.out.write(template.render(path, data))
def _process(self, message=None): data = { 'message': message, 'items': model.Item.all().fetch(100), 'use_ebay': settings.USE_EBAY, 'use_ebay_pricer': settings.USE_EBAY_PRICER } util.add_user( self.request.uri, data ) path = os.path.join(os.path.dirname(__file__), 'templates/sell.htm') self.response.out.write(template.render(path, data))
def route_register(): if request.method == 'POST': email = request.form['email'] password = request.form['password'] hashed_password = util.hash_password(password) # datetime = util.get_current_time() # print(email, password, datetime) util.add_user(email, hashed_password) return redirect(url_for('route_index')) return render_template('registration.html')
def _process(self, message=None): data = { 'message': message, 'items': model.Item.all().fetch(100), 'use_ebay': settings.USE_EBAY, 'use_ebay_pricer': settings.USE_EBAY_PRICER } util.add_user(self.request.uri, data) path = os.path.join(os.path.dirname(__file__), 'templates/sell.htm') self.response.out.write(template.render(path, data))
def _process(self, key=None, message=None): incident = model.Incident.get(key) data = { 'message': message, 'item': incident, 'profile': model.Profile.from_user(users.get_current_user()) } util.add_user( self.request.uri, data ) path = os.path.join(os.path.dirname(__file__), 'templates/update.htm') self.response.out.write(template.render(path, data))
def post(self): profile = model.Profile.from_user(users.get_current_user()) if profile == None: profile = model.Profile(owner=users.get_current_user()) profile.paypal_email = self.request.get('paypal_email') profile.put() data = {'profile': profile, 'message': 'Profile updated'} util.add_user(self.request.uri, data) path = os.path.join(os.path.dirname(__file__), 'templates/profile.htm') self.response.out.write(template.render(path, data))
def post(self): profile = model.Profile.from_user( users.get_current_user() ) if profile == None: profile = model.Profile( owner = users.get_current_user(), role="ADMIN") profile.name = self.request.get('name') profile.put() data = { 'profile': profile, 'message': 'Perfil actualizado' } util.add_user( self.request.uri, data ) path = os.path.join(os.path.dirname(__file__), 'templates/profile.htm') self.response.out.write(template.render(path, data))
def post(self): profile = model.Profile.from_user( users.get_current_user() ) if profile == None: profile = model.Profile( owner = users.get_current_user() ) profile.paypal_email = self.request.get('paypal_email') profile.put() data = { 'profile': profile, 'message': 'Profile updated' } util.add_user( self.request.uri, data ) path = os.path.join(os.path.dirname(__file__), 'templates/profile.htm') self.response.out.write(template.render(path, data))
def get(self, key): item = model.Item.get(key) data = { 'item': item } util.add_user( self.request.uri, data ) if settings.USE_EMBEDDED: (ok, pay) = self.start_purchase( item ) data['endpoint'] = settings.EMBEDDED_ENDPOINT data['paykey'] = pay.paykey() path = os.path.join(os.path.dirname(__file__), 'templates/buy_embedded.htm') else: path = os.path.join(os.path.dirname(__file__), 'templates/buy.htm') self.response.out.write(template.render(path, data))
def post(self,key): category=model.Category.get(key) if category: data={} if category.name=="root": data={'items':model.Item.recent()} else: data={'items':category.members} path = os.path.join(os.path.dirname(__file__), 'templates/items.htm') user=users.get_current_user() util.add_user( self.request.uri, data ) data['profile']=model.Profile.from_user(user) self.response.out.write(template.render(path, data))
def post(self, key): item = model.Item.get(key) (ok, pay) = self.start_purchase(item) if ok: self.redirect( pay.next_url().encode('ascii') ) # go to paypal else: data = { 'item': model.Item.get(key), 'message': 'An error occurred during the purchase process' } util.add_user( self.request.uri, data ) path = os.path.join(os.path.dirname(__file__), 'templates/buy.htm') self.response.out.write(template.render(path, data))
def post(self, key): item = model.Item.get(key) (ok, next_url) = self.set_ExpressPurchase(item) if ok: self.redirect(next_url.encode('ascii')) # go to paypal else: data = { 'item': model.Item.get(key), 'message': 'An error occurred during the purchase process' } util.add_user(self.request.uri, data) path = os.path.join(os.path.dirname(__file__), 'templates/buy.htm') self.response.out.write(template.render(path, data))
def get(self): profile = model.Profile.from_user( users.get_current_user() ) message=None if profile == None: profile = model.Profile( owner = users.get_current_user(), role="ADMIN") profile.put() message="Es necesario actualizar su nombre completo" data = { 'profile': profile, 'message': message } logging.info( "------------------ %s" % util.GqlEncoder().encode(profile)) util.add_user( self.request.uri, data ) path = os.path.join(os.path.dirname(__file__), 'templates/profile.htm') self.response.out.write(template.render(path, data))
def main(): fields = render.get_fields() try: username = fields['username'] except KeyError: return render.redirect('error.html') call(lambda: add_user(username, fields['email'], fields['key'], fields[ 'nonce'])) call(lambda: remember(username, fields['series_id'], fields['series_token'] )) call(lambda: add_group(username, fields['group_name'], fields[ 'group_description'])) group_str = '<ul>' groups = get_groups() for code in get_groups(): if username in groups[code]['users']: group_str += '<li>' group_str += groups[code]['name'] group_str += '</li>' group_str += '</ul>' render.render_file("home.html", username=username, groups=group_str)
def get(self): user = users.get_current_user() profile=None message=None if not user: self.redirect(users.create_login_url( "/shoppingCart/" )) else: profile=model.Profile.from_user( user ) if not profile: self.redirect(users.create_login_url( "/profile")) data={ 'profile': model.Profile.from_user(users.get_current_user()), } path = os.path.join(os.path.dirname(__file__), 'templates/categories.htm') util.add_user( self.request.uri, data ) self.response.out.write(template.render(path, data))
def get(self, item_key, purchase_key, secret): '''user arrives here after purchase''' purchase = model.Purchase.get(purchase_key) # validation if purchase == None: # no key self.error(404) elif purchase.status != 'CREATED' and purchase.status != 'COMPLETED': purchase.status_detail = 'Expected status to be CREATED or COMPLETED, not %s - duplicate transaction?' % purchase.status purchase.status = 'ERROR' purchase.put() self.error(501) elif secret != purchase.secret: purchase.status = 'ERROR' purchase.status_detail = 'BuyReturn secret "%s" did not match' % secret purchase.put() self.error(501) else: if purchase.status != 'COMPLETED': purchase.status = 'RETURNED' purchase.put() if settings.SHIPPING: purchase.shipping = paypal.ShippingAddress( purchase.paykey, self.request.remote_addr).raw_response # TODO parse purchase.put() data = { 'item': model.Item.get(item_key), 'message': 'Purchased', } util.add_user(self.request.uri, data) if settings.USE_EMBEDDED: data['close_embedded'] = True data['items'] = model.Item.recent() path = os.path.join(os.path.dirname(__file__), 'templates/main_embedded.htm') else: path = os.path.join(os.path.dirname(__file__), 'templates/buy.htm') self.response.out.write(template.render(path, data))
def get(self, item_key, purchase_key): logging.debug( "cancelled %s with %s" % ( item_key, purchase_key ) ) purchase = model.Purchase.get( purchase_key ) purchase.status = 'CANCELLED' purchase.put() data = { 'item': model.Item.get(item_key), 'message': 'Purchase cancelled', } util.add_user( self.request.uri, data ) if settings.USE_EMBEDDED: data['close_embedded'] = True data['items'] = model.Item.recent() path = os.path.join(os.path.dirname(__file__), 'templates/main_embedded.htm') else: path = os.path.join(os.path.dirname(__file__), 'templates/buy.htm') self.response.out.write(template.render(path, data))
def get(self, item_key, purchase_key, secret ): '''user arrives here after purchase''' purchase = model.Purchase.get( purchase_key ) # validation if purchase == None: # no key self.error(404) elif purchase.status != 'CREATED' and purchase.status != 'COMPLETED': purchase.status_detail = 'Expected status to be CREATED or COMPLETED, not %s - duplicate transaction?' % purchase.status purchase.status = 'ERROR' purchase.put() self.error(501) elif secret != purchase.secret: purchase.status = 'ERROR' purchase.status_detail = 'BuyReturn secret "%s" did not match' % secret purchase.put() self.error(501) else: if purchase.status != 'COMPLETED': purchase.status = 'RETURNED' purchase.put() if settings.SHIPPING: purchase.shipping = paypal.ShippingAddress( purchase.paykey, self.request.remote_addr ).raw_response # TODO parse purchase.put() data = { 'item': model.Item.get(item_key), 'message': 'Purchased', } util.add_user( self.request.uri, data ) if settings.USE_EMBEDDED: data['close_embedded'] = True data['items'] = model.Item.recent() path = os.path.join(os.path.dirname(__file__), 'templates/main_embedded.htm') else: path = os.path.join(os.path.dirname(__file__), 'templates/buy.htm') self.response.out.write(template.render(path, data))
def get(self, item_key, purchase_key, secret): '''user arrives here after purchase''' reqSrc = self.request.uri token_payer_id = reqSrc.split('?')[1] logging.info("return info: %s,%s,%s" % (item_key, purchase_key, secret)) logging.info("token-payer-id: %s", token_payer_id) ret = dict((n, v) for n, v in (a.split('=') for a in token_payer_id.split('&'))) tokenID = ret['token'] PayerID = ret['PayerID'] logging.info("token:%s, PayerID: %s" % (tokenID, PayerID)) purchase = model.Purchase.get(purchase_key) item = model.Item.get(item_key) # validation if purchase == None: # no key self.error(404) elif purchase.status != 'CREATED' and purchase.status != 'COMPLETED': purchase.status_detail = 'Expected status to be CREATED or COMPLETED, not %s - duplicate transaction?' % purchase.status purchase.status = 'ERROR' purchase.put() self.error(501) elif secret != purchase.secret: purchase.status = 'ERROR' purchase.status_detail = 'BuyReturn secret "%s" did not match' % secret purchase.put() self.error(501) else: if purchase.status != 'COMPLETED': purchase.status = 'RETURNED' purchase.put() if settings.SHIPPING: purchase.shipping = paypal.ShippingAddress( purchase.paykey, self.request.remote_addr).raw_response # TODO parse purchase.put() self.signature_values = { 'USER': settings.PAYPAL_USERID, 'PWD': settings.PAYPAL_PASSWORD, 'SIGNATURE': settings.PAYPAL_SIGNATURE, 'VERSION': '65.0', } self.API_ENDPOINT = 'https://api-3t.sandbox.paypal.com/nvp' self.PAYPAL_URL = 'https://www.sandbox.paypal.com/webscr&cmd=_express-checkout' self.signature = urllib.urlencode(self.signature_values) + "&" params = {'METHOD': 'DoExpressCheckoutPayment'} expressParams = { 'TOKEN': tokenID, 'PAYERID': PayerID, 'PAYMENTREQUEST_0_AMT': '%0.2f' % item.price_dollars(), 'PAYMENTREQUEST_0_CURRENCYCODE': 'USD', 'PAYMENTREQUEST_0_PAYMENTACTION': 'Sale' } params_string = self.signature + urllib.urlencode( params) + "&" + urllib.urlencode(expressParams) self.raw_response = urllib.urlopen(self.PAYPAL_URL, params_string) self.response_c41ontent = self.raw_response.read() logging.debug(self.request.uri) logging.debug(self.request.remote_addr) data = { 'item': model.Item.get(item_key), 'message': 'Purchased', } util.add_user(self.request.uri, data) path = os.path.join(os.path.dirname(__file__), 'templates/buy.htm') self.response.out.write(template.render(path, data))
def get(self, item_key, purchase_key, secret ): '''user arrives here after purchase''' reqSrc = self.request.uri token_payer_id = reqSrc.split('?')[1] logging.info("return info: %s,%s,%s" % (item_key, purchase_key, secret)) logging.info("token-payer-id: %s", token_payer_id) ret = dict( (n,v) for n,v in (a.split('=') for a in token_payer_id.split('&') ) ) tokenID = ret['token'] PayerID = ret['PayerID'] logging.info("token:%s, PayerID: %s" % ( tokenID, PayerID)) purchase = model.Purchase.get( purchase_key ) item = model.Item.get(item_key) # validation if purchase == None: # no key self.error(404) elif purchase.status != 'CREATED' and purchase.status != 'COMPLETED': purchase.status_detail = 'Expected status to be CREATED or COMPLETED, not %s - duplicate transaction?' % purchase.status purchase.status = 'ERROR' purchase.put() self.error(501) elif secret != purchase.secret: purchase.status = 'ERROR' purchase.status_detail = 'BuyReturn secret "%s" did not match' % secret purchase.put() self.error(501) else: if purchase.status != 'COMPLETED': purchase.status = 'RETURNED' purchase.put() if settings.SHIPPING: purchase.shipping = paypal.ShippingAddress( purchase.paykey, self.request.remote_addr ).raw_response # TODO parse purchase.put() self.signature_values = { 'USER' :settings.PAYPAL_USERID, 'PWD': settings.PAYPAL_PASSWORD, 'SIGNATURE':settings.PAYPAL_SIGNATURE, 'VERSION' : '65.0', } self.API_ENDPOINT = 'https://api-3t.sandbox.paypal.com/nvp' self.PAYPAL_URL = 'https://www.sandbox.paypal.com/webscr&cmd=_express-checkout' self.signature = urllib.urlencode(self.signature_values) + "&" params = { 'METHOD' : 'DoExpressCheckoutPayment' } expressParams = { 'TOKEN' : tokenID, 'PAYERID' : PayerID, 'PAYMENTREQUEST_0_AMT' : '%0.2f' % item.price_dollars(), 'PAYMENTREQUEST_0_CURRENCYCODE' : 'USD', 'PAYMENTREQUEST_0_PAYMENTACTION' : 'Sale' } params_string = self.signature + urllib.urlencode(params) + "&" + urllib.urlencode(expressParams) self.raw_response = urllib.urlopen(self.PAYPAL_URL, params_string) self.response_c41ontent = self.raw_response.read() logging.debug(self.request.uri) logging.debug(self.request.remote_addr) data = { 'item': model.Item.get(item_key), 'message': 'Purchased', } util.add_user( self.request.uri, data ) path = os.path.join(os.path.dirname(__file__), 'templates/buy.htm') self.response.out.write(template.render(path, data))