Skip to main content
Glama
drfccv
by drfccv
update_stations.py2.15 kB
import asyncio import aiohttp import aiofiles import os import sys import logging from datetime import datetime # 兼容包路径,自动把项目根目录加入PYTHONPATH sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))) from src.mcp_12306.services.station_service import StationService STATION_JS_URL = "https://kyfw.12306.cn/otn/resources/js/framework/station_name.js" LOCAL_PATH = "src/mcp_12306/resources/station_name.js" async def fetch_station_js(url=STATION_JS_URL, save_path=LOCAL_PATH): async with aiohttp.ClientSession() as session: async with session.get(url) as resp: if resp.status != 200: raise Exception(f"请求失败,状态码: {resp.status}") text = await resp.text(encoding='utf-8', errors='ignore') async with aiofiles.open(save_path, "w", encoding="utf-8") as f: await f.write(text) return save_path async def update_stations(): print("🚀 12306车站信息更新工具") print("=" * 50) print(f"🌐 数据源: {STATION_JS_URL}") print(f"⏰ 更新时间: {datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S')} (UTC)") print(f"👤 操作用户: {os.getenv('USERNAME') or os.getenv('USER') or 'unknown'}") print("=" * 50) try: print("📡 正在连接12306官网...") await fetch_station_js() print("✅ 已成功获取12306最新JS数据!") except Exception as e: print(f"❌ 获取失败: {e}") print("🔄 使用本地 station_name.js 文件继续解析...") if not os.path.exists(LOCAL_PATH): print("❌ 本地 station_name.js 文件不存在,无法继续。") sys.exit(1) print("🔍 正在解析车站数据...") service = StationService() await service.load_stations(path=LOCAL_PATH) print(f"✅ 共加载 {len(service.stations)} 个车站,示例:") for station in service.stations[:10]: print(f" - {station.name}({station.code},{station.city})") print("✨ 车站信息更新完成!") if __name__ == "__main__": asyncio.run(update_stations())

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/drfccv/mcp-server-12306'

If you have feedback or need assistance with the MCP directory API, please join our Discord server