WeChatMsg/app/util/music.py
2024-01-01 02:12:08 +08:00

56 lines
1.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import os
import traceback
import shutil
from app.log import log, logger
from app.util.protocbuf.msg_pb2 import MessageBytesExtra
import requests
from urllib.parse import urlparse, parse_qs
import re
root_path = './data/music/'
if not os.path.exists('./data'):
os.mkdir('./data')
if not os.path.exists(root_path):
os.mkdir(root_path)
class File:
def __init__(self):
self.open_flag = False
def get_music_path(url, file_title, output_path=root_path) -> str:
try:
parsed_url = urlparse(url)
if '.' in parsed_url.path:
# 获取扩展名
file_extension = parsed_url.path.split('.')[-1]
pattern = r'[\\/:*?"<>|\r\n]+'
file_title = re.sub(pattern, "_", file_title)
file_name = file_title + '.' + file_extension
music_path = os.path.join(output_path, file_name)
if os.path.exists(music_path):
# print('文件' + music_path + '已存在')
return music_path
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.40 Safari/537.36 Edg/87.0.664.24'
}
requests.packages.urllib3.disable_warnings()
response = requests.get(url,headers=header,verify=False)
if response.status_code == 200:
with open(music_path, 'wb') as f:
f.write(response.content)
else:
music_path = ''
print("音乐" + file_name + "获取失败:请求地址:" + url)
else:
music_path = ''
print('音乐文件已失效url' + url)
return music_path
except Exception as e:
print(f"Get Music Path Error: {e}")
logger.error(traceback.format_exc())
return ""