Merge remote-tracking branch 'origin/sorted' into sorted-fastload
This commit is contained in:
28
app.py
28
app.py
@@ -46,6 +46,19 @@ def take_config(name, required=False):
|
||||
return None
|
||||
|
||||
app = Flask(__name__)
|
||||
SONG_TYPES = [
|
||||
"01 Pop",
|
||||
"02 Anime",
|
||||
"03 Vocaloid",
|
||||
"04 Children and Folk",
|
||||
"05 Variety",
|
||||
"06 Classical",
|
||||
"07 Game Music",
|
||||
"08 Live Festival Mode",
|
||||
"09 Namco Original",
|
||||
"10 Taiko Towers",
|
||||
"11 Dan Dojo",
|
||||
]
|
||||
|
||||
def get_remote_address() -> str:
|
||||
return flask.request.headers.get("CF-Connecting-IP") or flask.request.headers.get("X-Forwarded-For") or flask.request.remote_addr or "127.0.0.1"
|
||||
@@ -91,6 +104,7 @@ sess.init_app(app)
|
||||
db = client[take_config('MONGO', required=True)['database']]
|
||||
db.users.create_index('username', unique=True)
|
||||
db.songs.create_index('id', unique=True)
|
||||
db.songs.create_index('song_type')
|
||||
db.scores.create_index('username')
|
||||
|
||||
|
||||
@@ -481,7 +495,13 @@ def route_api_preview():
|
||||
@app.route(basedir + 'api/songs')
|
||||
@app.cache.cached(timeout=15)
|
||||
def route_api_songs():
|
||||
songs = list(db.songs.find({'enabled': True}, {'_id': False, 'enabled': False}))
|
||||
type_q = flask.request.args.get('type')
|
||||
query = {'enabled': True}
|
||||
if type_q:
|
||||
if type_q not in SONG_TYPES:
|
||||
return abort(400)
|
||||
query['song_type'] = type_q
|
||||
songs = list(db.songs.find(query, {'_id': False, 'enabled': False}))
|
||||
for song in songs:
|
||||
if song['maker_id']:
|
||||
if song['maker_id'] == 0:
|
||||
@@ -880,6 +900,12 @@ def upload_file():
|
||||
db_entry['enabled'] = True
|
||||
pprint.pprint(db_entry)
|
||||
|
||||
# 必要な歌曲类型
|
||||
song_type = flask.request.form.get('song_type')
|
||||
if not song_type or song_type not in SONG_TYPES:
|
||||
return flask.jsonify({'error': 'invalid_song_type'})
|
||||
db_entry['song_type'] = song_type
|
||||
|
||||
# mongoDBにデータをぶち込む(重複IDは部分更新で上書きし、_id を不変に保つ)
|
||||
coll = client['taiko']["songs"]
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user