feat: implement mobile scan terminal dashboard and city picker with backend forum automation scripts

This commit is contained in:
2569718930@qq.com
2026-05-17 17:05:47 +08:00
parent 2d9aa576dd
commit 58e6557c66
12 changed files with 942 additions and 242 deletions
@@ -219,6 +219,7 @@ const TELEGRAM_BOT_URL = String(
process.env.NEXT_PUBLIC_TELEGRAM_BOT_URL || "https://t.me/WeatherQuant_bot",
).trim();
const TELEGRAM_MARKET_CHANNEL_URL = "https://t.me/+hGAk7JsjtdhiOTUx";
const TELEGRAM_TOPICS_GROUP_URL = "https://t.me/+8vel7rwjZagxODUx";
const SUBSCRIPTION_HELP_HREF = "/subscription-help";
const PAYMENT_RECOVERY_STORAGE_KEY = "polyweather:lastPaymentRecovery";
const PAYMENT_RECOVERY_TTL_MS = 6 * 60 * 60 * 1000;
@@ -708,6 +709,16 @@ export function AccountCenter() {
telegramHint: isEn
? "Send the command below to the polyweather bot to sync notifications and access."
: "将下方命令发送给polyweather机器人,实现全平台气象查询与权限同步。",
telegramUpgradeTitle: isEn
? "Channel Upgrade: New Topics Group Live"
: "频道升级通知:新话题群组已上线",
telegramUpgradeBody: isEn
? "Real-time airport temperature pushes are migrating to the new PolyWeather Topics group, organized by city for better tracking. Current channel will stop updating and be deleted in 3 days — please join the new group now."
: "为了更好地按城市分类推送,后续实时机场温度推送将迁移至新的 PolyWeather Topics 群组。当前频道将在 3 天后停止更新并删除,请及时迁移。",
telegramUpgradeFeatures: isEn
? "Independent city topics:"
: "支持独立城市话题订阅:",
telegramUpgradeJoin: isEn ? "Join New Group" : "加入新群",
paymentManualSupport: isEn
? "If payment succeeds but Pro is still not activated, email yhrsc30@gmail.com. This project is currently maintained by one developer, so manual recovery may be needed in edge cases."
: "如果付款成功后 Pro 仍未开通,请发邮件到 yhrsc30@gmail.com。当前项目由我一人维护,极少数边缘情况可能需要人工补开。给你带来的不便,敬请谅解!",
@@ -2755,6 +2766,34 @@ export function AccountCenter() {
<p className="text-slate-400 text-sm mb-6">
{copy.telegramHint}
</p>
{/* Channel Upgrade / Migration Notice — Pro users only */}
{isSubscribed ? (
<div className="mb-6 rounded-2xl border border-cyan-400/30 bg-gradient-to-br from-cyan-500/12 to-blue-500/8 px-5 py-4">
<h4 className="text-sm font-bold text-cyan-300 mb-2 flex items-center gap-1.5">
<Sparkles size={15} /> {copy.telegramUpgradeTitle}
</h4>
<p className="text-slate-300 text-xs leading-relaxed mb-3">
{copy.telegramUpgradeBody}
</p>
<p className="text-slate-400 text-[11px] font-semibold mb-1.5">
{copy.telegramUpgradeFeatures}
</p>
<p className="text-slate-300 text-xs leading-relaxed mb-3">
🇯🇵 Tokyo · 🇰🇷 Seoul · 🇰🇷 Busan · 🇨🇳 Beijing · 🇨🇳 Shanghai · 🇨🇳 Guangzhou · 🇨🇳 Chengdu · 🇨🇳 Wuhan · 🇭🇰 Hong Kong · 🇹🇼 Taipei · 🇸🇬 Singapore · 🇹🇷 Istanbul · 🇫🇮 Helsinki · 🇳🇱 Amsterdam · 🇫🇷 Paris · 🇺🇸 New York · 🇺🇸 Los Angeles · 🇺🇸 Chicago
</p>
<Link
href={TELEGRAM_TOPICS_GROUP_URL}
target="_blank"
rel="noreferrer"
className="inline-flex min-h-9 items-center gap-1.5 rounded-lg border border-cyan-400/40 bg-cyan-500/15 px-4 py-2 text-xs font-bold text-cyan-200 hover:bg-cyan-500/25 transition-colors"
>
{copy.telegramUpgradeJoin}
<ExternalLink size={12} />
</Link>
</div>
) : null}
<div className="mb-4 flex flex-wrap gap-2">
{TELEGRAM_BOT_URL ? (
<Link