48 lines
1.3 KiB
Python
48 lines
1.3 KiB
Python
from loguru import logger
|
|
|
|
from bit_tools import get_browser_lists_Browser, get_group_lists
|
|
from models import db1
|
|
from models.ips import Ips
|
|
from models.xstart import Xstart
|
|
from models.xtoken import XToken
|
|
|
|
|
|
def ensure_tables():
|
|
db1.connect(reuse_if_open=True)
|
|
try:
|
|
db1.create_tables([XToken, Xstart, Ips], safe=True)
|
|
finally:
|
|
if not db1.is_closed():
|
|
db1.close()
|
|
|
|
|
|
def sync_xstart_from_bitbrowser(group_name="推特", max_pages=10):
|
|
fz_datas = get_group_lists()
|
|
if group_name not in fz_datas:
|
|
logger.error(f"未找到分组:{group_name}")
|
|
return
|
|
|
|
group_id = fz_datas[group_name]
|
|
created = 0
|
|
scanned = 0
|
|
|
|
db1.connect(reuse_if_open=True)
|
|
try:
|
|
for page in range(max_pages):
|
|
browser_list = get_browser_lists_Browser(id=group_id, page=page)
|
|
if not browser_list:
|
|
break
|
|
|
|
for browser in browser_list:
|
|
scanned += 1
|
|
_, is_created = Xstart.get_or_create(
|
|
bit_id=browser.get("id"),
|
|
)
|
|
if is_created:
|
|
created += 1
|
|
finally:
|
|
if not db1.is_closed():
|
|
db1.close()
|
|
|
|
logger.info(f"已扫描 {scanned} 个浏览器配置,写入 Xstart {created} 条")
|