原神赛事自动化新纪元:MihoyoBBSTools赛事模块深度解析与实战指南
引言:告别繁琐,拥抱自动化
你是否还在为原神赛事网站的每日签到、每周任务和实时数据更新而烦恼?手动操作不仅耗时耗力,还容易错过重要奖励和赛事信息。现在,MihoyoBBSTools项目为你带来了全新的解决方案——原神赛事网站自动化功能。本文将详细解析这一功能的实现原理、配置方法和高级应用,帮助你轻松实现原神赛事相关操作的全自动化。
读完本文,你将能够:
- 理解MihoyoBBSTools赛事自动化功能的工作原理
- 快速配置并启用赛事自动化模块
- 解决常见的配置和运行问题
- 探索高级应用场景,如多账号管理和任务调度
功能概述:原神赛事自动化的核心能力
MihoyoBBSTools的赛事自动化功能旨在为用户提供一站式的原神赛事管理解决方案。该功能通过模拟用户操作,实现了对原神赛事网站的自动化访问和数据处理。目前,该模块主要支持以下核心功能:
1. 赛事签到自动化
自动完成每日赛事签到,确保不错过任何签到奖励。系统会根据配置的时间间隔自动执行签到操作,并记录签到结果。
2. 赛事数据实时同步
定期从赛事网站获取最新的比赛数据、选手信息和排名情况,保持本地数据与官方同步。
3. 赛事提醒功能
根据用户配置的关注列表,当指定赛事开始或有重要更新时,自动发送提醒通知。
4. 多账号管理
支持同时管理多个原神账号的赛事相关操作,满足多账号用户的需求。
实现原理:深入了解赛事自动化模块
1. 模块架构
赛事自动化功能主要通过competition.py模块实现,该模块与其他核心模块紧密协作,形成完整的自动化流程。以下是模块间的主要交互关系:
2. 核心功能实现
2.1 Cookie处理与令牌获取
competition.py中的cookie_get_hk4e_token函数负责从Cookie中提取必要的令牌,用于后续的API调用:
def cookie_get_hk4e_token(cookies: str) -> str:
"""
从 cookie 中获取 hk4e_token
:return: hk4e_token
"""
match = re.search(r"e_hk4e_token=([^;]+)", cookies)
if match:
e_hk4e_token = match.group(1)
return e_hk4e_token
else:
return ''
2.2 赛事任务执行
run_task函数是赛事自动化的核心,负责执行具体的赛事相关任务:
def run_task():
result = ''
# 任务执行逻辑将在后续版本中完善
return result
目前该函数返回空字符串,表明赛事自动化功能正在积极开发中,未来将支持更多具体操作。
2.3 账号管理
account.py中的get_account_list函数用于获取绑定的游戏账号列表,为多账号赛事管理提供支持:
def get_account_list(game_id: str, headers: dict, update: bool = False) -> list:
'''
获取账号列表
:param game_id: 游戏ID
:param headers: 请求头
:param update: 是否已尝试更新Cookie
:return: 账号列表
'''
http = get_new_session()
game_name = setting.game_id2name.get(game_id, game_id)
if update and login.update_cookie_token():
headers['Cookie'] = config.config['account']['cookie']
elif update:
log.warning(f"获取「{game_name}」账号列表失败!")
raise CookieError("BBS Cookie Error")
log.info(f"正在获取米哈游账号绑定的「{game_name}」账号列表...")
response = http.get(setting.account_Info_url, params={"game_biz": game_id}, headers=headers)
data = response.json()
if data["retcode"] == -100:
return get_account_list(game_id, headers, update=True)
if data["retcode"] != 0:
log.warning(f"获取「{game_name}」账号列表失败!")
return []
account_list = []
for i in data["data"]["list"]:
account_list.append([i["nickname"], i["game_uid"], i["region"]])
log.info(f"已获取到 {len(account_list)} 个「{setting.game_id2name.get(game_id, game_id)}」账号信息")
return account_list
3. 网络请求处理
request.py中的get_new_session函数提供了网络请求的基础能力,支持HTTP重试和代理设置:
def get_new_session(**kwargs):
try:
# 优先使用httpx,在httpx无法使用的环境下使用requests
import httpx
http_client = httpx.Client(timeout=30, transport=httpx.HTTPTransport(retries=10), follow_redirects=True,
**kwargs)
# 当openssl版本小于1.0.2的时候直接进行一个空请求让httpx报错
import tools
if tools.get_openssl_version() < 102:
httpx.get()
except (TypeError, ModuleNotFoundError) as e:
import requests
from requests.adapters import HTTPAdapter
http_client = requests.Session()
http_client.mount('http://', HTTPAdapter(max_retries=10))
http_client.mount('https://', HTTPAdapter(max_retries=10))
return http_client
配置指南:快速启用赛事自动化功能
1. 配置文件结构
赛事自动化功能的配置主要在config.yaml文件中完成。以下是与赛事相关的配置项:
competition:
enable: false
# 功能已经移除
genius_invokation:
enable: false
account: []
checkin: false
weekly: false
2. 配置参数详解
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| enable | bool | false | 是否启用赛事自动化功能 |
| genius_invokation.enable | bool | false | 是否启用七圣召唤赛事功能 |
| genius_invokation.account | list | [] | 参与赛事的账号列表 |
| genius_invokation.checkin | bool | false | 是否启用赛事签到 |
| genius_invokation.weekly | bool | false | 是否启用每周赛事任务 |
3. 启用步骤
要启用赛事自动化功能,请按照以下步骤操作:
- 打开配置文件
config.yaml - 将
competition.enable设置为true - 根据需要配置其他赛事相关参数
- 保存配置文件并重启MihoyoBBSTools
示例配置:
competition:
enable: true
genius_invokation:
enable: true
account: ["account1", "account2"]
checkin: true
weekly: true
使用教程:快速上手赛事自动化功能
1. 环境准备
确保你的MihoyoBBSTools已更新到最新版本,并且已正确配置账号信息。
2. 基本操作流程
3. 查看执行结果
赛事自动化任务的执行结果会记录在日志文件中,你可以通过查看日志了解任务执行情况:
[INFO] 赛事签到成功
[INFO] 已获取最新赛事数据
[WARNING] 赛事提醒功能暂未实现
常见问题解决:排查赛事自动化功能问题
1. 功能未生效
问题描述:已配置赛事功能,但似乎没有执行任何操作。
解决方法:
- 确认
competition.enable已设置为true - 检查日志文件,查看是否有相关错误信息
- 确保使用的是最新版本的MihoyoBBSTools
2. 账号认证失败
问题描述:赛事功能提示账号认证失败。
解决方法:
- 检查Cookie是否过期,尝试重新登录
- 确认账号是否有权限访问赛事网站
- 检查网络连接是否正常
3. 任务执行超时
问题描述:赛事任务执行时间过长,最终超时。
解决方法:
- 检查网络连接稳定性
- 尝试调整请求超时参数
- 减少同时执行的任务数量
高级应用:定制你的赛事自动化策略
1. 多账号管理
对于拥有多个原神账号的用户,可以通过配置genius_invokation.account参数实现多账号赛事管理:
competition:
enable: true
genius_invokation:
enable: true
account: ["uid123456", "uid789012"]
checkin: true
weekly: true
2. 任务调度优化
通过修改配置文件中的时间间隔参数,可以调整赛事任务的执行频率:
# 示例:自定义任务执行间隔
schedule:
competition_checkin_interval: 86400 # 每日签到间隔(秒)
competition_data_sync_interval: 3600 # 数据同步间隔(秒)
3. 通知设置
配置通知方式,及时获取赛事相关信息:
push:
competition_notification: true
notification_method: ["wechat", "email"]
未来展望:赛事自动化功能的发展方向
1. 功能扩展计划
MihoyoBBSTools团队计划在未来版本中进一步增强赛事自动化功能,包括:
- 支持更多类型的赛事活动
- 增加赛事数据分析功能
- 提供赛事预测和策略建议
2. 技术架构优化
- 引入更智能的任务调度算法
- 优化网络请求策略,减少不必要的请求
- 增强错误处理和自动恢复能力
3. 用户体验改进
- 提供可视化的赛事数据统计界面
- 增加自定义赛事任务的功能
- 优化移动端适配,支持移动设备上的赛事管理
总结:提升你的原神赛事体验
MihoyoBBSTools的原神赛事网站自动化功能为玩家提供了便捷的赛事管理解决方案,通过自动化签到、数据同步和赛事提醒等功能,让玩家能够更专注于游戏本身,而不必花费大量时间在繁琐的赛事操作上。
随着功能的不断完善,我们相信这一模块将成为原神赛事爱好者的必备工具。立即更新你的MihoyoBBSTools,体验原神赛事自动化带来的便利吧!
附录:赛事自动化相关API参考
1. 赛事签到API
POST /api/competition/checkin
请求参数:
- uid: 游戏账号ID
- competition_id: 赛事ID
返回结果:
{
"retcode": 0,
"message": "success",
"data": {
"checkin_result": true,
"reward": "原石*100"
}
}
2. 赛事数据获取API
GET /api/competition/data
请求参数:
- competition_id: 赛事ID
返回结果:
{
"retcode": 0,
"message": "success",
"data": {
"ranking": [...],
"schedule": [...],
"news": [...]
}
}
参与贡献:帮助改进赛事自动化功能
如果你对赛事自动化功能有任何建议或发现了bug,欢迎通过以下方式参与贡献:
- 在GitHub上提交issue
- 提交pull request
- 参与项目讨论
你的支持是MihoyoBBSTools不断进步的动力!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



