示例#1
0
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)
示例#2
0
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)
示例#3
0
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)
示例#4
0
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)