Merge pull request #33 from itouakirai/v2
Some checks failed
/ Build Windows (push) Has been cancelled

修复登录脚本2fa错误值类型,添加账号登出脚本
This commit is contained in:
世界观察日志
2025-07-19 04:11:04 +08:00
committed by GitHub
3 changed files with 43 additions and 1 deletions

View File

@@ -113,6 +113,16 @@ class WrapperManager:
raise WrapperManagerException(resp.header.msg)
return resp.data.m3u8
@retry(retry=((retry_if_exception_type(WrapperManagerException)) & (
retry_if_not_exception_message('no such account'))),
wait=wait_random_exponential(multiplier=1, max=60),
stop=stop_after_attempt(32), before_sleep=before_sleep_log(it(GlobalLogger).logger, "WARNING"))
async def logout(self, username: str):
resp: LogoutReply = await self._stub.Logout(LogoutRequest(data=LogoutData(username=username)))
if resp.header.code != 0:
raise WrapperManagerException(resp.header.msg)
return
@retry(retry=((retry_if_exception_type(WrapperManagerException)) & (
retry_if_not_exception_message('no available instance'))),
wait=wait_random_exponential(multiplier=1, max=60),

View File

@@ -20,7 +20,7 @@ add_creator(WMCreator)
async def on_2fa(username: str, password: str):
two_step_code = input("2FA code: ")
return int(two_step_code)
return two_step_code
async def main():

32
tools/logout.py Normal file
View File

@@ -0,0 +1,32 @@
import asyncio
import os
import sys
from creart import add_creator, it
loop = asyncio.new_event_loop()
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
from src.logger import LoggerCreator, GlobalLogger
add_creator(LoggerCreator)
from src.config import ConfigCreator, Config
add_creator(ConfigCreator)
from src.grpc.manager import WMCreator, WrapperManager, WrapperManagerException
add_creator(WMCreator)
async def main():
await it(WrapperManager).init(it(Config).instance.url, it(Config).instance.secure)
username = input("Username: ")
try:
await it(WrapperManager).logout(username)
except WrapperManagerException as e:
it(GlobalLogger).logger.error("Logout Failed!")
return
it(GlobalLogger).logger.info("Logout Success!")
if __name__ == '__main__':
loop.run_until_complete(main())