mirror of
https://github.com/saveweb/biliarchiver.git
synced 2024-09-19 11:05:28 -07:00
feat: 使用 browser-cookie3 从浏览器加载 cookies
This commit is contained in:
parent
88008537f0
commit
f7efbe3472
@ -3,7 +3,7 @@ import os
|
||||
import argparse
|
||||
from pathlib import Path
|
||||
import time
|
||||
from typing import Union
|
||||
from typing import Optional, Union
|
||||
|
||||
from internetarchive import get_item
|
||||
|
||||
@ -27,6 +27,7 @@ from dataclasses import dataclass
|
||||
class Args:
|
||||
bvids: str
|
||||
skip_ia: bool
|
||||
from_browser: Optional[str]
|
||||
|
||||
def parse_args():
|
||||
|
||||
@ -34,6 +35,7 @@ def parse_args():
|
||||
parser.add_argument('--bvids', dest='bvids', type=str, help='bvids 列表的文件路径', required=True)
|
||||
parser.add_argument('-s', '--skip-ia-check', dest='skip_ia', action='store_true',
|
||||
help='不检查 IA 上是否已存在对应 BVID 的 item ,直接开始下载')
|
||||
parser.add_argument('--fb', '--from-browser', dest='from_browser', type=str, help='从指定浏览器导入 cookies (否则导入 config.json 中的 cookies_file) [default: None]', default=None)
|
||||
|
||||
args = Args(**vars(parser.parse_args()))
|
||||
|
||||
@ -88,7 +90,12 @@ def _main():
|
||||
part_concurrency=config.part_concurrency,
|
||||
stream_retry=config.stream_retry,
|
||||
)
|
||||
update_cookies_from_file(d.client, config.cookies_file)
|
||||
|
||||
# load cookies
|
||||
if args.from_browser is not None:
|
||||
update_cookies_from_browser(d.client, args.from_browser)
|
||||
else:
|
||||
update_cookies_from_file(d.client, config.cookies_file)
|
||||
client = Client(cookies=d.client.cookies, headers=d.client.headers)
|
||||
logined = is_login(client)
|
||||
if not logined:
|
||||
@ -115,12 +122,11 @@ def _main():
|
||||
|
||||
def update_cookies_from_browser(client: AsyncClient, browser: str):
|
||||
try:
|
||||
a = time.time()
|
||||
import browser_cookie3
|
||||
f = getattr(browser_cookie3, browser.lower())
|
||||
print(f"trying to load cookies from {browser}: bilibili.com, may need auth")
|
||||
client.cookies.update(f(domain_name="bilibili.com"))
|
||||
print(f"load complete, consumed time: {time.time() - a} s")
|
||||
cookies_to_update = f(domain_name="bilibili.com")
|
||||
client.cookies.update(cookies_to_update)
|
||||
print(f"从 {browser} 品尝了 {len(cookies_to_update)} 块 cookies")
|
||||
except AttributeError:
|
||||
raise AttributeError(f"Invalid Browser {browser}")
|
||||
|
||||
|
8
poetry.lock
generated
8
poetry.lock
generated
@ -85,14 +85,14 @@ serve = ["fastapi (>=0.92.0)", "passlib[bcrypt]", "python-jose[cryptography]", "
|
||||
|
||||
[[package]]
|
||||
name = "browser-cookie3"
|
||||
version = "0.19.0"
|
||||
version = "0.19.1"
|
||||
description = "Loads cookies from your browser into a cookiejar object so can download with urllib and other libraries the same content you see in the web browser."
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = "*"
|
||||
files = [
|
||||
{file = "browser-cookie3-0.19.0.tar.gz", hash = "sha256:0ad54fb4c857ea9056e2b33e1eaebc95f33a1287095fa7e05ee44e11f62c84bd"},
|
||||
{file = "browser_cookie3-0.19.0-py3-none-any.whl", hash = "sha256:7663ccc30cf42268bf3d60c6e8465b815eb6ed0e5bf181c2d15e25053d80815f"},
|
||||
{file = "browser-cookie3-0.19.1.tar.gz", hash = "sha256:3031ad14b96b47ef1e4c8545f2f463e10ad844ef834dcd0ebdae361e31c6119a"},
|
||||
{file = "browser_cookie3-0.19.1-py3-none-any.whl", hash = "sha256:114e40fe80853211d65f14bc690a7d90c4c287251593dc5767692a950a9006d4"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
@ -974,4 +974,4 @@ zstd = ["zstandard (>=0.18.0)"]
|
||||
[metadata]
|
||||
lock-version = "2.0"
|
||||
python-versions = "^3.9"
|
||||
content-hash = "1d87816bea40eec2d592dab06c7c4e64d496213709432c032bf23c3848471810"
|
||||
content-hash = "59f16db31a0dff91eeeaf50d1150b9bf88e3c3c4c69fecd23fc31a814bff4fbd"
|
||||
|
@ -11,6 +11,7 @@ python = "^3.9"
|
||||
bilix = "0.18.3"
|
||||
internetarchive = "^3.5.0"
|
||||
danmakuc = "^0.3.6"
|
||||
browser-cookie3 = "^0.19.1"
|
||||
|
||||
[tool.poetry.scripts]
|
||||
bili_archive_bvids = "biliarchiver.cli_tools:bili_archive_bvids.main"
|
||||
|
@ -4,3 +4,4 @@ aiofiles
|
||||
httpx
|
||||
requests
|
||||
internetarchive
|
||||
browser-cookie3
|
||||
|
Loading…
Reference in New Issue
Block a user