File size: 1,894 Bytes
66ca64a
 
 
 
 
 
 
 
 
3a32016
66ca64a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f02b1de
66ca64a
f02b1de
66ca64a
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from .. import helpers
from .findSong import *
from requests import get
from random import randint as rand
def getPreview(request):
    try:
        if request.method == 'POST': signature = request.form['signature']
        else: signature = request.args['signature']
    except: return {"status": "error", "details": { "error_code": 103, "error_details": "No signature" }}
    if not helpers.checkSignature(signature): return {"status": "error", "details": { "error_code": 105, "error_details": "Invalid signature" }}
    
    try:
        if request.method == 'POST': beatmapId = request.form['beatmapId']
        else: beatmapId = request.args['beatmapId']
        if beatmapId.strip() in ['', None]:
            raise Exception()
    except: beatmapId = None
    
    try:
        if request.method == 'POST': query = request.form['query']
        else: query = request.args['query']
        if query.strip() in ['', None]:
            raise Exception()
    except: 
        if beatmapId == None: return {"status": "error", "details": { "error_code": 133, "error_details": "No details for finding preview" }}
        else: query = None
    
    if beatmapId != None:
        tryment = get(f"https://b.ppy.sh/preview/{beatmapId}.mp3")
        if int(tryment.status_code) not in [404, 403]:
            return {"status": "pass", "details": {"code": int(tryment.status_code), "result": f"https://b.ppy.sh/preview/{beatmapId}.mp3"}}
        else: 
            return {"status": "error", "details": {"code": int(tryment.status_code), "answer": tryment.text}}
    if query != None:
        fffff = findSong(request)
        if fffff['status'] == "error": return fffff
        return {"status": "pass", "details": {"code": fffff['details']['code'], "result": "https://b.ppy.sh/preview/{}.mp3".format(fffff['details']['result'][rand(0,len(fffff['details']['result']))]['beatmapId'])}}
    return {}