关于 AutoBangumi

upload successful

AutoBangumi是一个根据订阅自动下载番剧的工具,最近进行了升级并且更加好用了。但是在丰富了番剧订阅管理的同时增加了认证功能,对我这种密码太多记不住的人来说不是很友好。

解决方案

官方解决方式

果不其然今天想登陆进去看管理番剧却发现怎么也记不起来密码了,于是去翻看官方faq,却发现官方并不支持重置密码:

1
2
3
4
修改和忘记密码
修改密码:在登录后点击右上角···,点击 Profile,修改用户名和密码。
目前没有简单的忘记密码的重置方法,如果忘记密码,可以删除 data/data.db 文件,然后重启。

官方推荐直接删除数据库,我(备份之后)删除之后登录出现没有提示的报错,并且担心这样做会导致番剧管理设置被清除,于是就开始研究如何手动重置密码。

手动重置密码

翻看源码后发现,密码管理模块位于Auto_Bangumi/backend/src/module /security/jwt.py文件,于是写了个脚本来替换对应的hashed_passd。

脚本内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import sqlite3
from passlib.context import CryptContext

# 这里设置要修改的密码
passwd = input("input new password: ")

# Hashing 密码
app_pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")

pwd = app_pwd_context.hash(passwd)

print(pwd)

# 连接到数据库文件
conn = sqlite3.connect('data.db') # 建议先备份
cursor = conn.cursor()


# 更新表中的数据
cursor.execute('''
UPDATE user
SET password = ?
WHERE username = ?
''', (pwd, 'admin'))

# 提交更改
conn.commit()

# 关闭连接
conn.close()

print("your password has been changed")

强烈建议执行脚本之前建议先备份 data.db!

结果

upload successful

如此一来就能成功登录进管理界面了!