Skip to content

Instantly share code, notes, and snippets.

@Kylmakalle
Last active September 21, 2021 09:15
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Kylmakalle/e63902025c527ac3610989530f4fa417 to your computer and use it in GitHub Desktop.
Save Kylmakalle/e63902025c527ac3610989530f4fa417 to your computer and use it in GitHub Desktop.
# -*- coding: utf-8 -*-
import json
import logging
import requests
import flask
# https://play.google.com/store/apps/details?id=app.greyshirts.sslcapture for Token and User-Agent
vkapi_url = 'https://api.vk.com/method/audio.getById'
vk_token = 'qwertyuiopasdfghjklzxcvbnm1234567890'
headers = {
'User-Agent': 'KateMobileAndroid/42.1-408 (Android 6.0.1; SDK 23; arm64-v8a; Xiaomi Redmi 3S; en)'
}
blacklist = []
def music_request(aid, owner):
session = requests.Session()
session.headers.update(headers)
try:
r = session.post(vkapi_url,
params={'audios': '{}_{}'.format(owner, aid), 'access_token': vk_token, 'v': '5.67'})
if r.status_code == 200:
return json.dumps({'ok': True, 'vk_response': r.json()['response'][0]})
else:
return json.dumps({'ok': False})
except Exception as e:
logging.error(json.dumps({'aid': aid, 'owner_id': owner, 'error': e}))
return json.dumps({'ok': False})
def checkJson(s):
try:
json.loads(s)
return True
except:
return False
app = flask.Flask(__name__)
root_logger = logging.getLogger()
root_logger.setLevel(logging.INFO) # or whatever
handler = logging.FileHandler('vkmusapi.log', 'a', 'utf-8') # or whatever
handler.setFormatter(logging.Formatter('%(levelname)-8s [%(asctime)s] %(message)s')) # or whatever
root_logger.addHandler(handler)
@app.route('/', methods=['GET'])
def get_data():
if flask.request.headers.get('content-type') == 'application/json':
info = flask.request.get_data().decode('utf-8')
if checkJson(info):
json_info = json.loads(info)
logging.info(json.dumps(json_info))
# if flask.request.remote_addr not in blacklist:
return music_request(json_info['aid'], json_info['owner_id'])
logging.error(info)
return json.dumps({'ok': False})
else:
flask.abort(403)
app.run(host='127.0.0.1', port=7780, debug=True)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment