mirror of
https://github.com/yuukiwww/taiko-web.git
synced 2024-10-22 08:05:44 +02:00
アップロードに制限を設ける
This commit is contained in:
parent
df6b051d17
commit
95cd6717d5
61
app.py
61
app.py
@ -456,7 +456,7 @@ def route_api_preview():
|
|||||||
@app.route(basedir + 'api/songs')
|
@app.route(basedir + 'api/songs')
|
||||||
@app.cache.cached(timeout=15)
|
@app.cache.cached(timeout=15)
|
||||||
def route_api_songs():
|
def route_api_songs():
|
||||||
songs = list(db.songs.find({'enabled': True}, {'_id': False, 'enabled': False}).sort({"order":-1}).limit(1000))
|
songs = list(db.songs.find({'enabled': True}, {'_id': False, 'enabled': False}))
|
||||||
for song in songs:
|
for song in songs:
|
||||||
if song['maker_id']:
|
if song['maker_id']:
|
||||||
if song['maker_id'] == 0:
|
if song['maker_id'] == 0:
|
||||||
@ -774,6 +774,9 @@ def send_upload(ref):
|
|||||||
|
|
||||||
@app.route("/upload", methods=["POST"])
|
@app.route("/upload", methods=["POST"])
|
||||||
def upload_file():
|
def upload_file():
|
||||||
|
if client.taiko.songs.count_documents({}) >= 5000:
|
||||||
|
return flask.jsonify({"error": "既に追加されている曲が多すぎます"})
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# POSTリクエストにファイルの部分がない場合
|
# POSTリクエストにファイルの部分がない場合
|
||||||
if 'file_tja' not in flask.request.files or 'file_music' not in flask.request.files:
|
if 'file_tja' not in flask.request.files or 'file_music' not in flask.request.files:
|
||||||
@ -844,62 +847,6 @@ def delete():
|
|||||||
|
|
||||||
return flask.jsonify({'success': True})
|
return flask.jsonify({'success': True})
|
||||||
|
|
||||||
@app.route("/cloudflare")
|
|
||||||
def cloudflare():
|
|
||||||
token = flask.request.headers.get("X-Token")
|
|
||||||
zone_id = flask.request.args.get("zone_id")
|
|
||||||
|
|
||||||
today = datetime.datetime.now()
|
|
||||||
last_month = today - datetime.timedelta(days=30)
|
|
||||||
|
|
||||||
query = """{
|
|
||||||
viewer {
|
|
||||||
zones(filter: {
|
|
||||||
zoneTag: $zoneTag
|
|
||||||
}) {
|
|
||||||
httpRequests1dGroups(
|
|
||||||
orderBy: [date_ASC],
|
|
||||||
limit: $limit,
|
|
||||||
filter: {
|
|
||||||
date_gt: $from,
|
|
||||||
date_leq: $to
|
|
||||||
}
|
|
||||||
) {
|
|
||||||
dimensions {
|
|
||||||
date
|
|
||||||
}
|
|
||||||
sum {
|
|
||||||
bytes
|
|
||||||
cachedBytes
|
|
||||||
}
|
|
||||||
uniq {
|
|
||||||
uniques
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
"""
|
|
||||||
variables = {
|
|
||||||
"zoneTag": zone_id,
|
|
||||||
"from": last_month.astimezone(datetime.timezone.utc).strftime("%Y-%m-%d"),
|
|
||||||
"to": today.astimezone(datetime.timezone.utc).strftime("%Y-%m-%d"),
|
|
||||||
"limit": 30
|
|
||||||
}
|
|
||||||
data = {
|
|
||||||
"query": query,
|
|
||||||
"variables": variables
|
|
||||||
}
|
|
||||||
result = requests.post(
|
|
||||||
url="https://api.cloudflare.com/client/v4/graphql",
|
|
||||||
headers={
|
|
||||||
"Authorization": f"Bearer {token}"
|
|
||||||
},
|
|
||||||
data=json.dumps(data)
|
|
||||||
)
|
|
||||||
|
|
||||||
return cache_wrap(flask.jsonify(result.json()), 60)
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user