def check_user(**args): if not g.username: user = None g.userdata = None return try: user = database.User.by(alias=g.username) g.userdata = user.userdata(date=g.date) except: user = None g.userdata = None if user is None: error = NotFound() error.type = 'user' error.msg = 'err_url_invalid_username' raise error elif user.userdata_pool.count() == 0: error = InternalServerError error.type = 'user' if not user.raw_main: error.msg = 'err_data_not_collected' elif u'現在システムエラーが発生しております' in user.raw_main: error.msg = 'err_eamusement_system' elif u'プレーヤーデータを公開していません' in user.raw_main: error.msg = 'err_eamusement_nonpublic' else: error.msg = 'err_unknown' raise error return dict(user=user, userdata=g.userdata)
def check_tune(**args): mkey, dkey = args['music_key'], args['dif_key'] if dkey.isnumeric(): dif_id = int(dkey) else: try: dif_id = DIF_TRANS[dkey.lower()] except KeyError: error = NotFound() error.type = 'dif' error.msg = 'err_url_invalid_dif' raise error try: music_id = int(mkey) music = database.Music.by(music_id=music_id) except ValueError: music = database.Music.by_keyword(mkey, g.lang) if music is None: error = NotFound() error.type = 'music' error.msg = 'err_url_invalid_music' raise error subtitle = music.title l10n = music.localization(g.lang) if l10n: subtitle += ' (%s)' % l10n.text subtitle += ' ' + const.DIFFICULTY_NAMES2[dif_id] return dict(music=music, dif_id=dif_id, subtitle=subtitle)
def check_stat(**args): stats = args['stat_keys'].split('+') view = 'dist' if stats[0] in DIST_STATS else 'num' fmt = filter.xform(stats[0]) if not hasattr(args['userdata'], stats[0]): e = NotFound() e.type = 'stat' e.msg = 'err_invalid_statistics_name' raise e subtitle = ', '.join(map(filter.msg, stats)) return dict(stats=stats, stat_view=view, xfmt=fmt, subtitle=subtitle)
def enroll(): g.info_ver = request.args.get('ver') if not g.info_ver in modules().keys(): flask.abort(404) username = request.args.get('alias') friend_id = request.args.get('friend_id') if not username or not friend_id: error = NotFound() error.type = 'enroll' error.msg = 'err_no_alias' if not username else\ 'err_enroll_friend_id' raise error url = url_for(g.info_ver + '.enroll', username=username, friend_id=friend_id) return redirect(url)