def prompt_setting(update: Update, context: CallbackContext): settings: dict = context.user_data['settings'] university: str = context.user_data['university'] config_cls = get_config_cls(university) required_settings = config_cls.get_key_name(required=True) for k in required_settings: if k in settings: continue else: update.effective_chat.send_message(f'请输入{required_settings[k]}') context.user_data['cur_setting'] = k return 'settings' new_config = config_cls(**settings) user, is_created = User.get_or_create(user_id=update.effective_user.id) query = User.update( chat_id=update.effective_chat.id, university=university, config=new_config.base64(), ).where(User.user_id == user.user_id) query.execute() if is_created: scrapers.update_user_config(user.user_id, new_config) update.effective_chat.send_message('设置成功!') help_text(update, context) return ConversationHandler.END
def oauth(): resp = openstreetmap.authorized_response() if resp is None: return 'Denied. <a href="' + url_for('login') + '">Try again</a>.' session['osm_token'] = (resp['oauth_token'], resp['oauth_token_secret']) user_details = openstreetmap.get('user/details').data session['osm_uid'] = int(user_details[0].get('id')) name = user_details[0].get('display_name') user, created = User.get_or_create(uid=session['osm_uid'], defaults={'name': name}) if user.name != name or created: user.name = name user.save() return redirect(url_for('front'))
def wrapped(self, update, context, *args, **kwargs): # extract user_id from arbitrary update try: user = update.message.from_user except (NameError, AttributeError): print('No hay user_id en el mensaje.') return ConversationHandler.END user, created = User.get_or_create( id=user.id, last_name=user.last_name, first_name=user.first_name, ) if created: print("Usuario {} creado".format(user.id)) context.user_data['user'] = user return func(self, update, context, *args, **kwargs)
def agree(update, context): print('agree start') print('agree context.user_data: ' + str(context.user_data)) check_done(update, context) user = update.callback_query.from_user id = user.id first_name = user.first_name last_name = user.last_name username = user.username context.user_data['first_name'] = first_name context.user_data['last_name'] = last_name context.user_data['username'] =username print(context.user_data) user, created = User.get_or_create(id=id, first_name=first_name, last_name=last_name, username=username) print(str(user) + ', created: ' + str(created)) update.callback_query.message.reply_text(text='Отлично! Напиши как тебя зовут.', callback_data=str(PHONE)) return NAME
def oauth(): resp = openstreetmap.authorized_response() if resp is None: return 'Denied. <a href="' + url_for('login') + '">Try again</a>.' session['osm_token'] = (resp['oauth_token'], resp['oauth_token_secret']) user_details = openstreetmap.get('user/details').data session['osm_uid'] = int(user_details[0].get('id')) name = user_details[0].get('display_name') user, created = User.get_or_create(uid=session['osm_uid'], defaults={'name': name}) if user.name != name or created: user.name = name user.lang = get_language_from_request() user.save() # Use the same task a user has seen when not logged in ch.get_or_create_task_for_user(user, ip=get_ip()) if session.get('next'): redir = session['next'] del session['next'] else: redir = url_for('front') return redirect(redir)