File size: 1,590 Bytes
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
import json
from .. import helpers
from requests import get
from random import randint as rand
def findSong(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(request, signature): return {"status": "error", "details": { "error_code": 105, "error_details": "Invalid signature" }}
    
    try:
        if request.method == 'POST': query = request.form['query']
        else: query = request.args['query']
        if query.strip() in ['', None]: raise Exception()
    except: return {"status": "error", "details": { "error_code": 133, "error_details": "No query" }}
    
    tryment = get("https://api.chimu.moe/v1/search", params={"query": query})
    if int(tryment.status_code) not in [404, 403]:
        res = []
        counter = 0
        for chunk in tryment.json()['data']:
            res.append({
                "beatmapId": chunk['SetId'],
                "artist": chunk['Artist'],
                "title": chunk['Title'],
                "creator": chunk['Creator'],
                "source": chunk['Source'],
                "tags": chunk['Tags']
            })
            counter += 1
            if counter >= rand(3,7): break
        return {"status": "pass", "details": {"code": int(tryment.status_code), "result": res}}
    else: 
        return {"status": "error", "details": {"code": int(tryment.status_code), "answer": tryment.text}}