コード例 #1
0
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)
コード例 #2
0
ファイル: main.py プロジェクト: jakebarnwell/PythonGenerator
    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))
コード例 #3
0
 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))
コード例 #4
0
ファイル: main.py プロジェクト: IshaiJaffe/paypal_adaptive
 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))
コード例 #5
0
    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))
コード例 #6
0
 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))
コード例 #7
0
 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))
コード例 #8
0
 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))
コード例 #9
0
 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))
コード例 #10
0
ファイル: main.py プロジェクト: llucio/cil
 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))
コード例 #11
0
 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))
コード例 #12
0
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')
コード例 #13
0
 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))
コード例 #14
0
ファイル: main.py プロジェクト: llucio/cil
 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))
コード例 #15
0
 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))
コード例 #16
0
ファイル: main.py プロジェクト: llucio/cil
 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))
コード例 #17
0
 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))
コード例 #18
0
 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))
コード例 #19
0
ファイル: main.py プロジェクト: llucio/cil
 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))
コード例 #20
0
 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))
コード例 #21
0
 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))
コード例 #22
0
ファイル: main.py プロジェクト: llucio/cil
  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))
コード例 #23
0
ファイル: home.py プロジェクト: dkeriazisStuy/StuySanta
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)
コード例 #24
0
ファイル: main.py プロジェクト: llucio/cil
  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))
コード例 #25
0
    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))
コード例 #26
0
 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))
コード例 #27
0
  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))
コード例 #28
0
    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))
コード例 #29
0
ファイル: main.py プロジェクト: jakebarnwell/PythonGenerator
    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))