2023年政策修订增补工作正在进行中,欢迎参与!
  • Moegirl.ICU:萌娘百科流亡社群 581077156(QQ),欢迎对萌娘百科运营感到失望的编辑者加入
  • Moegirl.ICU:账号认领正在试运行,有意者请参照账号认领流程

User:伍昱物起/tsbpy

萌娘百科,万物皆可萌的百科全书!转载请标注来源页面的网页链接,并声明引自萌娘百科。内容不可商用。
跳转到导航 跳转到搜索

这是一个利用Python实现Temple Song模板半自动化的小工具

介绍

限于直接爬数据会被阿b弹验证码,所以本代码主要使用bilibili的api接口实现,在这里我使用了大佬们做的b站api接口的Python第三方库,原仓库已经404了,新仓库的地址和开发文档会在下面放出

使用方法

这里的方法是基于Windows11系统的主要我也没Mac或者Linux,而且也应该没人会想着在手机上运行Python吧(

  • 环境:首先确保电脑安装了最新版的Python和pip,Python版本不应低于3.6否则格式化输出会报错,pip是用来安装第三方库用的
  • 1.使用Python打开代码文件(这里使用vscode等编辑器都可以)
  • 2.等待程序检查更新第三方库(第一次使用等待时间可能较长)
  • 3.在命令提示框中输入视频BV号,注意BV号格式,不能是AV号,而且必须严格区分字母大小写
  • 4.检查弹出来的模板是否无错误,并复制粘贴进条目,随后enter退出

关于error

  • 首先,你需要关掉你的梯子,无论是全局还是规则
  • 一般直接运行后出现闪退就是出现了错误
  • 首先看Python版本,因为代码格式化输出时运用了“f""”,这一调用在很老的版本中并不管用
  • 其次查看是否安装/更新了api第三方库,或者删除并重新安装库(代码中已经调用pip进行了更新,此错误一般不会出现)
  • 如果还是无法解决的话,建议用vscode等编辑器可以详细看到错误信息,这里只提供通用的办法,如果要详细解决办法请自行通过错误信息进行Baidu/Google/ChatGPT

源码

在这里放上源码可能很屎,有佬能改进的话也挺好的不得不说gpt蛮好用的,这段的时间格式化就是gpt写的

from pip._internal import main
import asyncio
import datetime

print(f"使用办法:\n输入视频的bv号,将自动输出符合规范的Temple Song模板\n正常打开文件并检查更新完成后会输出类似“D:/xxx/xxxxx/文件名”的代码,这是正常情况\n该工具最新的更新地址在“https://zh.moegirl.org.cn/User:%E4%BC%8D%E6%98%B1%E7%89%A9%E8%B5%B7/tsbpy”\n")
print(f"自动检查更新中...\n(此过程大概需要10-20s)\n")
main(['install', 'bilibili_api'])
print(f"\n检查已完成\n若出现导致程序非正常运行的错误请检查错误信息\n(此工具大部分的错误信息都不影响程序正常运行)\n")
from bilibili_api import video

async def main() -> None:
    v = video.Video(bvid=input("\n请输入bv号:"))# 实例化 Video 类

    info = await v.get_info()# 获取信息
    timestamp = info['pubdate']  # 时间戳
    date_object = datetime.datetime.fromtimestamp(timestamp)  # 时间戳转换为日期时间对象
    time = date_object.strftime("%y/%m/%d")  # 时间格式化
    if len(time) >= 4 and time[3] == '0':
        time = time[:3] + time[4:]
    bv=info['bvid']#bv号
    pic=info['pic']#封面
    title=info['title']#标题
    left="{{"
    right="}}"

    times="Temple Song|color=transparent"
    bbid="|bb_id="
    song="|曲目 ="
    btime="|投稿日期 ="
    bcount= "|再生数量 ="
    bilicount="BilibiliCount|id="
    image="|image link ="
    #模板

    print(f"\n{left}{times}\n{bbid}{bv}\n{song}{title}\n{btime}{time}\n{bcount}{left}{bilicount}{bv}{right}\n{image}{pic}\n{right}\n")
    input("Ctrl+C复制后按enter退出...")

if __name__ == "__main__":
    asyncio.get_event_loop().run_until_complete(main())

示例

环境:Windows11家庭中文版,安装有Python3.12.1,pip24.0
双击打开文件并等待程序更新完毕后,弹出以下命令框

使用办法:
输入视频的bv号,将自动输出符合规范的Temple Song模板
正常打开文件会输出类似“D:/xxx/xxxxx/Temple_Song_of_moe”的代码,这是正常情况

D:\yuan\Desktop\py项目\Temple_Song_of_moe.py:35: DeprecationWarning: There is no current event loop
  asyncio.get_event_loop().run_until_complete(main())

请输入bv号:

随后输入“BV1vb411Y7A6”(洛天依-夜间出租车)后命令框输出

{{Temple Song|color=transparent
|bb_id=BV1vb411Y7A6
|曲目 =洛天依,原创《夜间出租车》
|投稿日期 =19/2/21
|再生数量 ={{BilibiliCount|id=BV1vb411Y7A6}}
|image link =http://i0.hdslb.com/bfs/archive/d58b6de2016cf0251315a4030eccbbb527301098.jpg
}}

Ctrl+C复制后按enter退出...

最后退出,这里是模板效果

曲目:洛天依,原创《夜间出租车》
投稿时间:19/2/21
播放数量:已拥有 -- 次播放
链接: Bilibilitv-logo.pngbilibili

链接