☺️ 获取音频时可以添加描述方便查找,补全翻译

This commit is contained in:
xtaodada 2020-02-20 21:37:19 +08:00
parent f26b6805e7
commit 6517f8d9a0
No known key found for this signature in database
GPG Key ID: 39EFACA711DF5D8C
3 changed files with 39 additions and 29 deletions

View File

@ -187,31 +187,32 @@ async def profile(context):
await context.edit("出错了呜呜呜 ~ 指定的 UserID 已超出整数限制,您确定输对了?") await context.edit("出错了呜呜呜 ~ 指定的 UserID 已超出整数限制,您确定输对了?")
return return
raise exception raise exception
user_type = "Bot" if target_user.user.bot else "User" user_type = "Bot" if target_user.user.bot else "用户"
username_system = f"@{target_user.user.username}" if target_user.user.username is not None else ( username_system = f"@{target_user.user.username}" if target_user.user.username is not None else (
"This user have not yet defined their username.") "喵喵喵 ~ 好像没有设置")
first_name = target_user.user.first_name.replace("\u2060", "") first_name = target_user.user.first_name.replace("\u2060", "")
last_name = target_user.user.last_name.replace("\u2060", "") if target_user.user.last_name is not None else ( last_name = target_user.user.last_name.replace("\u2060", "") if target_user.user.last_name is not None else (
"This user did not define a last name." "喵喵喵 ~ 好像没有设置"
) )
biography = target_user.about if target_user.about is not None else "This user did not define a biography string." biography = target_user.about if target_user.about is not None else "没有公开的情报"
caption = f"**Profile:** \n" \ caption = f"**用户简介:** \n" \
f"Username: {username_system} \n" \ f"道纹: {username_system} \n" \
f"UserID: {target_user.user.id} \n" \ f"ID: {target_user.user.id} \n" \
f"First Name: {first_name} \n" \ f"名字: {first_name} \n" \
f"Last Name: {last_name} \n" \ f"姓氏: {last_name} \n" \
f"Biography: {biography} \n" \ f"目前已知的情报: {biography} \n" \
f"Common Groups: {target_user.common_chats_count} \n" \ f"共同裙: {target_user.common_chats_count} \n" \
f"Verified: {target_user.user.verified} \n" \ f"官方认证: {target_user.user.verified} \n" \
f"Restricted: {target_user.user.restricted} \n" \ f"受限制: {target_user.user.restricted} \n" \
f"Type: {user_type} \n" \ f"类型: {user_type} \n" \
f"Permanent Link: [{first_name}](tg://user?id={target_user.user.id})" f"[{first_name}](tg://user?id={target_user.user.id})"
reply_to = context.message.reply_to_msg_id reply_to = context.message.reply_to_msg_id
photo = await context.client.download_profile_photo( photo = await context.client.download_profile_photo(
target_user.user.id, target_user.user.id,
"./" + str(target_user.user.id) + ".jpg", "./" + str(target_user.user.id) + ".jpg",
download_big=True download_big=True
) )
if not reply_to: if not reply_to:
reply_to = None reply_to = None
try: try:
@ -226,7 +227,7 @@ async def profile(context):
if not photo.startswith("http"): if not photo.startswith("http"):
remove(photo) remove(photo)
await context.delete() await context.delete()
remove(photo)
return return
except TypeError: except TypeError:
await context.edit(caption) await context.edit(caption)
remove(photo)

View File

@ -42,7 +42,7 @@ async def translate(context):
source_lang = LANGUAGES[f'{result.src.lower()}'] source_lang = LANGUAGES[f'{result.src.lower()}']
trans_lang = LANGUAGES[f'{result.dest.lower()}'] trans_lang = LANGUAGES[f'{result.dest.lower()}']
result = f"**Translated** from {source_lang.title()}:\n{result.text}" result = f"**文本翻译** 源语言 {source_lang.title()}:\n{result.text}"
if len(result) > 4096: if len(result) > 4096:
await context.edit("出错了呜呜呜 ~ 输出超出 TG 限制,正在附加文件。") await context.edit("出错了呜呜呜 ~ 输出超出 TG 限制,正在附加文件。")
@ -50,9 +50,9 @@ async def translate(context):
return return
await context.edit(result) await context.edit(result)
if len(result) <= 4096: if len(result) <= 4096:
await log(f"Translated `{message}` from {source_lang} to {trans_lang}.") await log(f"把 `{message}` 从 {source_lang} 翻译到了 {trans_lang}")
else: else:
await log(f"Translated message from {source_lang} to {trans_lang}.") await log(f"把一条消息从 {source_lang} 翻译到了 {trans_lang}.")
@listener(outgoing=True, command="tts", @listener(outgoing=True, command="tts",
@ -130,10 +130,18 @@ async def google(context):
@listener(outgoing=True, command="fetchaudio", @listener(outgoing=True, command="fetchaudio",
description="从多个平台获取音频文件。", description="从多个平台获取音频文件。",
parameters="<url>") parameters="<url>,<string>")
async def fetchaudio(context): async def fetchaudio(context):
if context.arguments:
if ',' in context.arguments:
url, string_2 = context.arguments.split(',', 1)
else:
url = context.arguments
string_2 = "#audio "
else:
await context.edit("出错了呜呜呜 ~ 错误的语法。")
return
""" Fetches audio from provided URL. """ """ Fetches audio from provided URL. """
url = context.arguments
reply = await context.get_reply_message() reply = await context.get_reply_message()
reply_id = None reply_id = None
await context.edit("拉取音频中 . . .") await context.edit("拉取音频中 . . .")
@ -144,7 +152,7 @@ async def fetchaudio(context):
return return
youtube_pattern = regex_compile(r"^(http(s)?://)?((w){3}.)?youtu(be|.be)?(\.com)?/.+") youtube_pattern = regex_compile(r"^(http(s)?://)?((w){3}.)?youtu(be|.be)?(\.com)?/.+")
if youtube_pattern.match(url): if youtube_pattern.match(url):
if not await fetch_youtube_audio(url, context.chat_id, reply_id): if not await fetch_youtube_audio(url, context.chat_id, reply_id, string_2):
await context.edit("出错了呜呜呜 ~ 原声带下载失败。") await context.edit("出错了呜呜呜 ~ 原声带下载失败。")
await log(f"从链接中获取了一条音频,链接: {url}.") await log(f"从链接中获取了一条音频,链接: {url}.")

View File

@ -78,7 +78,7 @@ async def random_gen(selection, length=64):
return await execute(f"head -c 65536 /dev/urandom | tr -dc {selection} | head -c {length} ; echo \'\'") return await execute(f"head -c 65536 /dev/urandom | tr -dc {selection} | head -c {length} ; echo \'\'")
async def fetch_youtube_audio(url, chat_id, reply_id): async def fetch_youtube_audio(url, chat_id, reply_id, string_2):
""" Extracts and uploads audio from YouTube video. """ """ Extracts and uploads audio from YouTube video. """
youtube_dl_options = { youtube_dl_options = {
'format': 'bestaudio/best', 'format': 'bestaudio/best',
@ -95,7 +95,8 @@ async def fetch_youtube_audio(url, chat_id, reply_id):
await bot.send_file( await bot.send_file(
chat_id, chat_id,
"audio.mp3", "audio.mp3",
reply_to=reply_id reply_to=reply_id,
caption=str(string_2)
) )
remove("audio.mp3") remove("audio.mp3")
return True return True