Update receive_music163_search.py

pull/445/head
midoks 2 years ago
parent a8a3fa1754
commit ab7bbe942b
  1. 108
      plugins/tgbot/startup/extend/receive_music163_search.py

@ -1 +1,109 @@
# coding:utf-8
import sys
import io
import os
import time
import re
import json
import base64
import threading
# sys.path.append(os.getcwd() + "/class/core")
# import mw
# import telebot
# from telebot import types
# from telebot.util import quick_markup
# 网易音乐搜索
def httpPost(url, data, timeout=10):
"""
发送POST请求
@url 被请求的URL地址(必需)
@data POST参数可以是字符串或字典(必需)
@timeout 超时时间默认60秒
return string
"""
try:
import urllib.request
import ssl
try:
ssl._create_default_https_context = ssl._create_unverified_context
except:
pass
data = urllib.parse.urlencode(data).encode('utf-8')
req = urllib.request.Request(url, data)
response = urllib.request.urlopen(req, timeout=timeout)
result = response.read()
if type(result) == bytes:
result = result.decode('utf-8')
return result
except Exception as ex:
return str(ex)
def musicSearch(kw, page=1, page_size=5):
data = httpPost('http://music.163.com/api/cloudsearch/pc', {
's': kw,
'type': '1',
'total': 'true',
'limit': page_size,
'offset': 0,
})
# data_a = json.loads(data)
# print(data)
return json.loads(data)
def musicSongD(mid):
data = httpPost('http://music.163.com/api/v3/song/detail/', {
'c': '[{"id":' + str(mid) + ',"v":0}]',
})
# print(data)
return json.loads(data)
def musicSongDataUrl(mid):
data = httpPost('http://music.163.com/api/song/enhance/player/url', {
'br': 320 * 1000,
'ids': [mid],
})
return json.loads(data)
def writeLog(log_str):
if __name__ == "__main__":
print(log_str)
now = mw.getDateFromNow()
log_file = mw.getServerDir() + '/tgbot/task.log'
mw.writeFileLog(now + ':' + log_str, log_file, limit_size=5 * 1024)
return True
def tgSearchMusic(bot, message, cmd_text):
data = musicSearch(cmd_text, 1, 5)
print(data)
def run(bot, message):
text_body = message.text
if isThisCmd('/music', text_body):
cmd_text = getReadCmd('/music', text_body)
cmd_text = cmd_text.strip().strip(":")
if cmd_text == "":
return bot.send_message(message.chat.id, "搜索内容不能为空, 例如:/faq 数据库")
return tgSearchMusic(bot, message, cmd_text)
return bot
if __name__ == '__main__':
# musicSearch("刀郎")
t = musicSongDataUrl(2063487880)
print(t['data'][0]['url'])
print("111")

Loading…
Cancel
Save