mirror of
https://github.com/saveweb/biliarchiver.git
synced 2024-09-19 11:05:28 -07:00
SESSDATA 登录检查
This commit is contained in:
parent
b0badf78a6
commit
927325a062
@ -34,9 +34,10 @@ async def new_get_subtitle_info(client: httpx.AsyncClient, bvid, cid):
|
||||
api.get_subtitle_info = new_get_subtitle_info
|
||||
|
||||
|
||||
async def archive_bvid(d: DownloaderBilibili, bvid: str):
|
||||
async def archive_bvid(d: DownloaderBilibili, bvid: str, logined: bool=False):
|
||||
assert d.hierarchy is True, 'hierarchy 必须为 True' # 为保持后续目录结构、文件命名的一致性
|
||||
assert d.client.cookies.get('SESSDATA') is not None, 'sess_data 不能为空' # 开个大会员呗,能下 4k 呢。
|
||||
assert logined is True, '请先检查 SESSDATA 是否过期,再将 logined 设置为 True' # 防误操作
|
||||
assert os.path.exists('biliarchiver.home'), '先创建 biliarchiver.home 文件' # 防误操作
|
||||
|
||||
videos_basepath = f'biliarchiver/videos/{bvid}'
|
||||
|
@ -6,7 +6,7 @@ from _biliarchiver_archive_bvid import archive_bvid
|
||||
|
||||
from bilix.sites.bilibili.downloader import DownloaderBilibili
|
||||
from rich.console import Console
|
||||
|
||||
from httpx import Client
|
||||
from rich.traceback import install
|
||||
install()
|
||||
|
||||
@ -33,11 +33,16 @@ def main():
|
||||
|
||||
d = DownloaderBilibili(video_concurrency=tasks_limit, part_concurrency=1, hierarchy=True, sess_data=args.sess_data,
|
||||
)
|
||||
|
||||
logined = is_login(Client(cookies=d.client.cookies, headers=d.client.headers))
|
||||
if not logined:
|
||||
return
|
||||
|
||||
d.progress.start()
|
||||
for bvid in bvids:
|
||||
while len(asyncio.all_tasks(loop)) > tasks_limit:
|
||||
loop.run_until_complete(asyncio.sleep(0.01))
|
||||
task = loop.create_task(archive_bvid(d, bvid))
|
||||
task = loop.create_task(archive_bvid(d, bvid, logined=logined))
|
||||
|
||||
|
||||
|
||||
@ -46,6 +51,15 @@ def get_sess_data():
|
||||
sess_data = f.read().strip()
|
||||
return sess_data
|
||||
|
||||
def is_login(cilent: Client) -> bool:
|
||||
r = cilent.get('https://api.bilibili.com/x/member/web/account')
|
||||
r.raise_for_status()
|
||||
nav_json = r.json()
|
||||
if nav_json['code'] == 0:
|
||||
print('用户登录成功')
|
||||
return True
|
||||
print('未登录/SESSDATA无效/过期')
|
||||
return False
|
||||
|
||||
if __name__ == '__main__':
|
||||
try:
|
||||
|
Loading…
Reference in New Issue
Block a user