From dcfa89e63cfcc34af477c3a8cf5570ff820994ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A0=91=E8=90=8C=E8=8A=BD?= <3205788256@qq.com> Date: Mon, 15 Sep 2025 19:08:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=BB=93=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 3 +- {backend => InfoGenie-backend}/.env | 0 .../.env.production | 0 InfoGenie-backend/ai_config.json | 13 + {backend => InfoGenie-backend}/app.py | 4 +- {backend => InfoGenie-backend}/config.py | 0 .../__pycache__/aimodelapp.cpython-313.pyc | Bin 0 -> 27780 bytes .../__pycache__/api_60s.cpython-313.pyc | Bin .../__pycache__/api_scanner.cpython-313.pyc | Bin .../modules/__pycache__/auth.cpython-313.pyc | Bin 14634 -> 14806 bytes .../__pycache__/email_service.cpython-313.pyc | Bin .../__pycache__/smallgame.cpython-313.pyc | Bin .../user_management.cpython-313.pyc | Bin 0 -> 13194 bytes InfoGenie-backend/modules/aimodelapp.py | 765 ++++++++++++++++++ .../modules/auth.py | 10 +- .../modules/email_service.py | 0 InfoGenie-backend/modules/user_management.py | 408 ++++++++++ .../requirements.txt | 0 InfoGenie-backend/start_backend.bat | 2 + InfoGenie-backend/start_backend.sh | 2 + .../test/email_test.py | 0 .../test/mongo_test.py | 0 .../test/test_email.py | 0 .../test/test_email_fix.py | 0 .../test/test_mongo.py | 0 InfoGenie-backend/后端架构文档.md | 0 InfoGenie-backend/用户数据模板.json | 13 + .../.env.development | 0 {frontend => InfoGenie-frontend}/.env.local | 0 InfoGenie-frontend/.env.production | 1 + .../build_frontend.bat | 2 - {frontend => InfoGenie-frontend}/env.backup | 0 .../package-lock.json | 0 {frontend => InfoGenie-frontend}/package.json | 0 .../随机JavaScript趣味题/css/background.css | 0 .../随机JavaScript趣味题/css/style.css | 0 .../娱乐消遣/随机JavaScript趣味题/index.html | 0 .../随机JavaScript趣味题/js/script.js | 0 .../随机JavaScript趣味题/接口集合.json | 0 .../随机JavaScript趣味题/返回接口.json | 0 .../娱乐消遣/随机KFC文案/css/background.css | 0 .../60sapi/娱乐消遣/随机KFC文案/css/style.css | 0 .../60sapi/娱乐消遣/随机KFC文案/index.html | 0 .../60sapi/娱乐消遣/随机KFC文案/js/main.js | 0 .../60sapi/娱乐消遣/随机KFC文案/接口集合.json | 0 .../60sapi/娱乐消遣/随机KFC文案/返回接口.json | 0 .../娱乐消遣/随机一言/css/background.css | 0 .../60sapi/娱乐消遣/随机一言/css/style.css | 0 .../60sapi/娱乐消遣/随机一言/index.html | 0 .../60sapi/娱乐消遣/随机一言/js/script.js | 0 .../60sapi/娱乐消遣/随机一言/接口集合.json | 0 .../60sapi/娱乐消遣/随机一言/返回接口.json | 0 .../娱乐消遣/随机冷笑话/css/Untitled-1.html | 0 .../娱乐消遣/随机冷笑话/css/background.css | 0 .../60sapi/娱乐消遣/随机冷笑话/css/style.css | 0 .../60sapi/娱乐消遣/随机冷笑话/index.html | 0 .../60sapi/娱乐消遣/随机冷笑话/js/script.js | 0 .../60sapi/娱乐消遣/随机冷笑话/接口集合.json | 0 .../60sapi/娱乐消遣/随机冷笑话/返回接口.json | 0 .../娱乐消遣/随机发病文学/css/background.css | 0 .../娱乐消遣/随机发病文学/css/style.css | 0 .../60sapi/娱乐消遣/随机发病文学/index.html | 0 .../60sapi/娱乐消遣/随机发病文学/js/script.js | 0 .../娱乐消遣/随机发病文学/接口集合.json | 0 .../娱乐消遣/随机发病文学/返回接口.json | 0 .../娱乐消遣/随机唱歌音频/css/style.css | 0 .../60sapi/娱乐消遣/随机唱歌音频/index.html | 0 .../60sapi/娱乐消遣/随机唱歌音频/js/script.js | 0 .../娱乐消遣/随机唱歌音频/接口集合.json | 0 .../娱乐消遣/随机唱歌音频/返回接口.json | 0 .../娱乐消遣/随机搞笑段子/css/background.css | 0 .../娱乐消遣/随机搞笑段子/css/style.css | 0 .../60sapi/娱乐消遣/随机搞笑段子/index.html | 0 .../60sapi/娱乐消遣/随机搞笑段子/js/script.js | 0 .../娱乐消遣/随机搞笑段子/接口集合.json | 0 .../娱乐消遣/随机搞笑段子/返回接口.json | 0 .../娱乐消遣/随机运势/css/background.css | 0 .../60sapi/娱乐消遣/随机运势/css/style.css | 0 .../60sapi/娱乐消遣/随机运势/index.html | 0 .../60sapi/娱乐消遣/随机运势/js/script.js | 0 .../60sapi/娱乐消遣/随机运势/接口集合.json | 0 .../60sapi/娱乐消遣/随机运势/返回接口.json | 0 .../实用功能/EpicGames免费游戏/css/style.css | 0 .../实用功能/EpicGames免费游戏/index.html | 0 .../实用功能/EpicGames免费游戏/js/script.js | 0 .../实用功能/EpicGames免费游戏/接口集合.json | 0 .../实用功能/EpicGames免费游戏/返回接口.json | 0 .../实用功能/公网IP地址/css/background.css | 0 .../60sapi/实用功能/公网IP地址/css/style.css | 0 .../60sapi/实用功能/公网IP地址/index.html | 0 .../60sapi/实用功能/公网IP地址/js/script.js | 0 .../60sapi/实用功能/公网IP地址/接口集合.json | 0 .../60sapi/实用功能/公网IP地址/返回接口.json | 0 .../实用功能/农历信息/css/background.css | 0 .../60sapi/实用功能/农历信息/css/style.css | 0 .../60sapi/实用功能/农历信息/index.html | 0 .../60sapi/实用功能/农历信息/js/script.js | 0 .../60sapi/实用功能/农历信息/接口集合.json | 0 .../60sapi/实用功能/农历信息/返回接口.json | 0 .../实用功能/哈希解压压缩/css/style.css | 0 .../60sapi/实用功能/哈希解压压缩/index.html | 0 .../60sapi/实用功能/哈希解压压缩/js/script.js | 0 .../实用功能/哈希解压压缩/接口集合.json | 0 .../实用功能/哈希解压压缩/返回接口.json | 0 .../60sapi/实用功能/在线翻译/background.css | 137 ++++ .../60sapi/实用功能/在线翻译/index.html | 99 +++ .../public/60sapi/实用功能/在线翻译/script.js | 452 +++++++++++ .../60sapi/实用功能/在线翻译/styles.css | 441 ++++++++++ .../在线翻译/在线翻译支持语言列表接口.json | 551 +++++++++++++ .../60sapi/实用功能/在线翻译/返回接口.json | 1 + .../实用功能/天气预报/css/background.css | 0 .../60sapi/实用功能/天气预报/css/style.css | 0 .../60sapi/实用功能/天气预报/index.html | 0 .../60sapi/实用功能/天气预报/js/script.js | 0 .../60sapi/实用功能/天气预报/接口集合.json | 0 .../60sapi/实用功能/天气预报/返回接口.json | 0 .../实时天气[目前有问题]/background.css | 0 .../实用功能/实时天气[目前有问题]/index.html | 0 .../实用功能/实时天气[目前有问题]/script.js | 0 .../实用功能/实时天气[目前有问题]/styles.css | 0 .../实时天气[目前有问题]/返回接口.json | 0 .../实用功能/密码强度检测/css/style.css | 0 .../60sapi/实用功能/密码强度检测/index.html | 0 .../60sapi/实用功能/密码强度检测/js/script.js | 0 .../实用功能/密码强度检测/返回接口.json | 0 .../实用功能/生成二维码/css/background.css | 0 .../60sapi/实用功能/生成二维码/css/style.css | 0 .../60sapi/实用功能/生成二维码/index.html | 0 .../60sapi/实用功能/生成二维码/js/script.js | 0 .../60sapi/实用功能/生成二维码/接口集合.json | 0 .../实用功能/百度百科词条/css/background.css | 0 .../实用功能/百度百科词条/css/style.css | 0 .../60sapi/实用功能/百度百科词条/index.html | 0 .../60sapi/实用功能/百度百科词条/js/script.js | 0 .../实用功能/百度百科词条/接口集合.json | 0 .../实用功能/百度百科词条/返回接口.json | 0 .../实用功能/身体健康分析/background.css | 0 .../60sapi/实用功能/身体健康分析/index.html | 0 .../60sapi/实用功能/身体健康分析/script.js | 0 .../60sapi/实用功能/身体健康分析/styles.css | 0 .../实用功能/身体健康分析/返回接口.json | 0 .../60sapi/实用功能/配色方案/background.css | 0 .../60sapi/实用功能/配色方案/index.html | 0 .../public/60sapi/实用功能/配色方案/script.js | 0 .../60sapi/实用功能/配色方案/styles.css | 0 .../60sapi/实用功能/配色方案/返回接口.json | 0 .../实用功能/链接OG信息/css/background.css | 0 .../60sapi/实用功能/链接OG信息/css/style.css | 0 .../60sapi/实用功能/链接OG信息/index.html | 0 .../60sapi/实用功能/链接OG信息/js/script.js | 0 .../60sapi/实用功能/链接OG信息/接口集合.json | 0 .../60sapi/实用功能/链接OG信息/返回接口.json | 0 .../随机密码生成器/css/background.css | 0 .../实用功能/随机密码生成器/css/style.css | 0 .../60sapi/实用功能/随机密码生成器/index.html | 0 .../实用功能/随机密码生成器/js/script.js | 0 .../实用功能/随机密码生成器/返回接口.json | 0 .../60sapi/实用功能/随机颜色/background.css | 0 .../60sapi/实用功能/随机颜色/index.html | 0 .../public/60sapi/实用功能/随机颜色/script.js | 0 .../60sapi/实用功能/随机颜色/styles.css | 0 .../60sapi/实用功能/随机颜色/返回接口.json | 0 .../日更资讯/历史上的今天/css/style.css | 0 .../60sapi/日更资讯/历史上的今天/index.html | 0 .../60sapi/日更资讯/历史上的今天/js/script.js | 0 .../日更资讯/历史上的今天/接口集合.json | 0 .../日更资讯/历史上的今天/返回接口.json | 0 .../日更资讯/必应每日壁纸/css/style.css | 0 .../60sapi/日更资讯/必应每日壁纸/index.html | 0 .../60sapi/日更资讯/必应每日壁纸/js/script.js | 0 .../日更资讯/必应每日壁纸/接口集合.json | 0 .../日更资讯/必应每日壁纸/返回接口.json | 0 .../日更资讯/每天60s读懂世界/css/style.css | 0 .../日更资讯/每天60s读懂世界/index.html | 0 .../日更资讯/每天60s读懂世界/js/script.js | 0 .../日更资讯/每天60s读懂世界/接口集合.json | 0 .../日更资讯/每天60s读懂世界/返回接口.json | 0 .../日更资讯/每日国际汇率/css/style.css | 0 .../60sapi/日更资讯/每日国际汇率/index.html | 0 .../60sapi/日更资讯/每日国际汇率/js/script.js | 0 .../日更资讯/每日国际汇率/接口集合.json | 0 .../日更资讯/每日国际汇率/返回接口.json | 0 .../Hacker News 榜单/css/background.css | 0 .../热搜榜单/Hacker News 榜单/css/style.css | 0 .../热搜榜单/Hacker News 榜单/index.html | 0 .../热搜榜单/Hacker News 榜单/js/script.js | 0 .../热搜榜单/Hacker News 榜单/接口集合.json | 0 .../热搜榜单/Hacker News 榜单/返回接口.json | 0 .../哔哩哔哩热搜榜/css/background.css | 0 .../热搜榜单/哔哩哔哩热搜榜/css/style.css | 0 .../60sapi/热搜榜单/哔哩哔哩热搜榜/index.html | 0 .../60sapi/热搜榜单/哔哩哔哩热搜榜/js/main.js | 0 .../热搜榜单/哔哩哔哩热搜榜/接口集合.json | 0 .../热搜榜单/哔哩哔哩热搜榜/返回接口.json | 0 .../热搜榜单/头条热搜榜/css/background.css | 0 .../60sapi/热搜榜单/头条热搜榜/css/style.css | 0 .../60sapi/热搜榜单/头条热搜榜/index.html | 0 .../60sapi/热搜榜单/头条热搜榜/js/main.js | 0 .../60sapi/热搜榜单/头条热搜榜/接口集合.json | 0 .../60sapi/热搜榜单/头条热搜榜/返回接口.json | 0 .../60sapi/热搜榜单/小红书热点/background.css | 144 ++++ .../60sapi/热搜榜单/小红书热点/index.html | 40 + .../60sapi/热搜榜单/小红书热点/script.js | 180 +++++ .../60sapi/热搜榜单/小红书热点/styles.css | 299 +++++++ .../60sapi/热搜榜单/小红书热点/返回接口.json | 166 ++++ .../热搜榜单/微博热搜榜/css/background.css | 0 .../60sapi/热搜榜单/微博热搜榜/css/style.css | 0 .../60sapi/热搜榜单/微博热搜榜/img/qeye.svg | 0 .../60sapi/热搜榜单/微博热搜榜/index.html | 0 .../60sapi/热搜榜单/微博热搜榜/js/main.js | 0 .../60sapi/热搜榜单/微博热搜榜/接口集合.json | 0 .../60sapi/热搜榜单/微博热搜榜/返回接口.json | 0 .../public/60sapi/热搜榜单/懂车帝热搜/api.js | 180 +++++ .../public/60sapi/热搜榜单/懂车帝热搜/app.js | 313 +++++++ .../60sapi/热搜榜单/懂车帝热搜/background.css | 55 ++ .../60sapi/热搜榜单/懂车帝热搜/index.html | 72 ++ .../60sapi/热搜榜单/懂车帝热搜/styles.css | 532 ++++++++++++ .../public/60sapi/热搜榜单/懂车帝热搜/ui.js | 410 ++++++++++ .../60sapi/热搜榜单/懂车帝热搜/返回接口.json | 66 ++ .../热搜榜单/抖音热搜榜/css/background.css | 0 .../60sapi/热搜榜单/抖音热搜榜/css/style.css | 0 .../60sapi/热搜榜单/抖音热搜榜/index.html | 0 .../60sapi/热搜榜单/抖音热搜榜/js/script.js | 0 .../60sapi/热搜榜单/抖音热搜榜/接口集合.json | 0 .../60sapi/热搜榜单/抖音热搜榜/返回接口.json | 0 .../热搜榜单/猫眼票房排行榜/css/style.css | 0 .../60sapi/热搜榜单/猫眼票房排行榜/index.html | 0 .../热搜榜单/猫眼票房排行榜/js/script.js | 0 .../热搜榜单/猫眼票房排行榜/接口集合.json | 0 .../热搜榜单/猫眼票房排行榜/返回接口.json | 0 .../热搜榜单/百度实时热搜/background.css | 196 +++++ .../60sapi/热搜榜单/百度实时热搜/index.html | 40 + .../60sapi/热搜榜单/百度实时热搜/script.js | 196 +++++ .../60sapi/热搜榜单/百度实时热搜/styles.css | 371 +++++++++ .../热搜榜单/百度实时热搜/返回接口.json | 606 ++++++++++++++ .../热搜榜单/百度电视剧榜/background.css | 242 ++++++ .../60sapi/热搜榜单/百度电视剧榜/index.html | 40 + .../60sapi/热搜榜单/百度电视剧榜/script.js | 267 ++++++ .../60sapi/热搜榜单/百度电视剧榜/styles.css | 378 +++++++++ .../热搜榜单/百度电视剧榜/返回接口.json | 276 +++++++ .../60sapi/热搜榜单/百度贴吧话题榜/api.js | 146 ++++ .../60sapi/热搜榜单/百度贴吧话题榜/app.js | 201 +++++ .../60sapi/热搜榜单/百度贴吧话题榜/index.html | 57 ++ .../60sapi/热搜榜单/百度贴吧话题榜/styles.css | 419 ++++++++++ .../60sapi/热搜榜单/百度贴吧话题榜/ui.js | 354 ++++++++ .../热搜榜单/百度贴吧话题榜/返回接口.json | 306 +++++++ .../热搜榜单/知乎热门话题/css/background.css | 0 .../热搜榜单/知乎热门话题/css/style.css | 0 .../热搜榜单/知乎热门话题/img/zhihu-logo.svg | 0 .../60sapi/热搜榜单/知乎热门话题/index.html | 0 .../60sapi/热搜榜单/知乎热门话题/js/main.js | 0 .../热搜榜单/知乎热门话题/接口集合.json | 0 .../热搜榜单/知乎热门话题/返回接口.json | 0 .../热搜榜单/网易云榜单/css/background.css | 0 .../热搜榜单/网易云榜单/css/responsive.css | 0 .../60sapi/热搜榜单/网易云榜单/css/style.css | 0 .../60sapi/热搜榜单/网易云榜单/index.html | 0 .../60sapi/热搜榜单/网易云榜单/js/app.js | 0 .../60sapi/热搜榜单/网易云榜单/接口集合.json | 0 .../60sapi/热搜榜单/网易云榜单/返回接口.json | 0 .../public/60sapi/生成要求模板.txt | 0 .../public/_redirects | 0 .../public/aimodelapp/AI写诗小助手/index.html | 246 ++++++ .../public/aimodelapp/AI写诗小助手/script.js | 109 +++ .../aimodelapp/AI变量命名助手/index.html | 0 .../aimodelapp/AI变量命名助手/script.js | 33 +- .../aimodelapp/AI变量命名助手/styles.css | 219 ++--- .../public/aimodelapp/AI姓名评测/index.html | 0 .../public/aimodelapp/AI姓名评测/script.js | 23 +- .../public/aimodelapp/AI姓名评测/styles.css | 265 ++++++ .../aimodelapp/AI文章转文言文/index.html | 66 ++ .../aimodelapp/AI文章转文言文/script.js | 288 +++++++ .../aimodelapp/AI文章转文言文/styles.css | 603 ++++++++++++++ .../aimodelapp/AI生成Linux命令/index.html | 50 ++ .../aimodelapp/AI生成Linux命令/script.js | 351 ++++++++ .../aimodelapp/AI生成Linux命令/styles.css | 576 +++++++++++++ .../public/aimodelapp/AI生成表情包/index.html | 52 ++ .../public/aimodelapp/AI生成表情包/script.js | 298 +++++++ .../public/aimodelapp/AI生成表情包/styles.css | 436 ++++++++++ .../aimodelapp/AI语言翻译助手/index.html | 62 ++ .../aimodelapp/AI语言翻译助手/script.js | 239 ++++++ .../aimodelapp/AI语言翻译助手/styles.css | 488 +++++++++++ .../public/aimodelapp/API测试页面.html | 228 ++++++ .../public/aimodelapp/生成要求.txt | 0 InfoGenie-frontend/public/assets/logo.png | Bin 0 -> 872777 bytes .../public/index.html | 14 +- .../public/manifest.json | 0 .../public/smallgame/2048/controls.js | 0 .../public/smallgame/2048/game-logic.js | 0 .../public/smallgame/2048/index.html | 0 .../public/smallgame/2048/statistics.js | 0 .../public/smallgame/2048/styles.css | 0 .../smallgame/俄罗斯方块/game-controls.js | 0 .../public/smallgame/俄罗斯方块/game-stats.js | 0 .../public/smallgame/俄罗斯方块/index.html | 0 .../public/smallgame/俄罗斯方块/styles.css | 0 .../public/smallgame/俄罗斯方块/tetris.js | 0 .../public/smallgame/别踩白方块/MUSIC.mp3 | Bin .../public/smallgame/别踩白方块/game.js | 0 .../public/smallgame/别踩白方块/index.html | 0 .../public/smallgame/扫雷/css/style.css | 79 ++ .../public/smallgame/扫雷/index.html | 56 ++ .../public/smallgame/扫雷/js/main.js | 273 +++++++ .../public/smallgame/生成要求.txt | 3 +- .../public/smallgame/贪吃蛇/game-controls.js | 130 +++ .../public/smallgame/贪吃蛇/game-core.js | 366 +++++++++ .../public/smallgame/贪吃蛇/game-stats.js | 295 +++++++ .../public/smallgame/贪吃蛇/index.html | 61 ++ .../public/smallgame/贪吃蛇/styles.css | 258 ++++++ {frontend => InfoGenie-frontend}/public/sw.js | 0 {frontend => InfoGenie-frontend}/setting.json | 0 {frontend => InfoGenie-frontend}/src/App.js | 2 + .../src/components/Footer.js | 2 +- .../src/components/Header.js | 8 +- .../src/components/Navigation.js | 7 +- .../src/config/StaticPageConfig.js | 61 +- .../src/contexts/UserContext.js | 0 {frontend => InfoGenie-frontend}/src/index.js | 0 .../src/md/前端邮件功能测试指南.md | 0 .../src/pages/AiModelPage.js | 22 +- .../src/pages/Api60sPage.js | 6 +- .../src/pages/HomePage.js | 2 +- .../src/pages/LoginPage.js | 10 +- .../src/pages/SmallGamePage.js | 18 +- .../src/pages/UserProfilePage.js | 359 ++++++++ .../src/styles/global.css | 14 +- .../src/styles/index.css | 71 ++ .../src/utils/api.js | 27 +- InfoGenie-frontend/start_frontend.bat | 2 + InfoGenie-frontend/start_frontend.sh | 2 + InfoGenie-frontend/前端架构文档.md | 0 InfoGenie-frontend/酷安热度榜/soc.py | 27 + InfoGenie-frontend/酷安热度榜/性价比排行榜.py | 27 + .../酷安热度榜/抓取酷安热度版.py | 27 + InfoGenie-frontend/酷安热度榜/热度排行榜.py | 27 + InfoGenie-frontend/酷安热度榜/系统排行榜.py | 27 + backend/__pycache__/app.cpython-313.pyc | Bin 3851 -> 0 bytes backend/__pycache__/config.cpython-313.pyc | Bin 3038 -> 0 bytes backend/deploy.bat | 27 - backend/md/邮件服务修复说明.md | 92 --- .../__pycache__/aimodelapp.cpython-313.pyc | Bin 3505 -> 0 bytes .../user_management.cpython-313.pyc | Bin 7396 -> 0 bytes backend/modules/user_management.py | 211 ----- frontend/.env.development | 1 - frontend/assets/logo.png | Bin 952335 -> 0 bytes frontend/assets/logo2.png | Bin 1619286 -> 0 bytes .../public/aimodelapp/AI写诗小助手/env.js | 35 - .../public/aimodelapp/AI写诗小助手/index.html | 317 -------- .../public/aimodelapp/AI变量命名助手/env.js | 68 -- frontend/public/aimodelapp/AI姓名评测/env.js | 47 -- .../public/aimodelapp/AI姓名评测/styles.css | 249 ------ frontend/src/utils/helpers.js | 310 ------- start_backend.bat | 3 - start_backend.sh | 3 - start_frontend.bat | 3 - start_frontend.sh | 3 - 用户数据模板.json | 5 - 357 files changed, 16156 insertions(+), 1589 deletions(-) rename {backend => InfoGenie-backend}/.env (100%) rename {backend => InfoGenie-backend}/.env.production (100%) mode change 100755 => 100644 create mode 100644 InfoGenie-backend/ai_config.json rename {backend => InfoGenie-backend}/app.py (97%) mode change 100755 => 100644 rename {backend => InfoGenie-backend}/config.py (100%) mode change 100755 => 100644 create mode 100644 InfoGenie-backend/modules/__pycache__/aimodelapp.cpython-313.pyc rename {backend => InfoGenie-backend}/modules/__pycache__/api_60s.cpython-313.pyc (100%) rename {backend => InfoGenie-backend}/modules/__pycache__/api_scanner.cpython-313.pyc (100%) rename {backend => InfoGenie-backend}/modules/__pycache__/auth.cpython-313.pyc (88%) rename {backend => InfoGenie-backend}/modules/__pycache__/email_service.cpython-313.pyc (100%) rename {backend => InfoGenie-backend}/modules/__pycache__/smallgame.cpython-313.pyc (100%) create mode 100644 InfoGenie-backend/modules/__pycache__/user_management.cpython-313.pyc create mode 100644 InfoGenie-backend/modules/aimodelapp.py rename {backend => InfoGenie-backend}/modules/auth.py (98%) mode change 100755 => 100644 rename {backend => InfoGenie-backend}/modules/email_service.py (100%) mode change 100755 => 100644 create mode 100644 InfoGenie-backend/modules/user_management.py rename {backend => InfoGenie-backend}/requirements.txt (100%) mode change 100755 => 100644 create mode 100644 InfoGenie-backend/start_backend.bat create mode 100644 InfoGenie-backend/start_backend.sh rename {backend => InfoGenie-backend}/test/email_test.py (100%) mode change 100755 => 100644 rename {backend => InfoGenie-backend}/test/mongo_test.py (100%) mode change 100755 => 100644 rename {backend => InfoGenie-backend}/test/test_email.py (100%) mode change 100755 => 100644 rename {backend => InfoGenie-backend}/test/test_email_fix.py (100%) mode change 100755 => 100644 rename {backend => InfoGenie-backend}/test/test_mongo.py (100%) mode change 100755 => 100644 create mode 100644 InfoGenie-backend/后端架构文档.md create mode 100644 InfoGenie-backend/用户数据模板.json rename frontend/.env.production => InfoGenie-frontend/.env.development (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/.env.local (100%) create mode 100644 InfoGenie-frontend/.env.production rename build_frontend.bat => InfoGenie-frontend/build_frontend.bat (50%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/env.backup (100%) rename {frontend => InfoGenie-frontend}/package-lock.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/package.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机JavaScript趣味题/css/background.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机JavaScript趣味题/css/style.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机JavaScript趣味题/index.html (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机JavaScript趣味题/js/script.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机JavaScript趣味题/接口集合.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机JavaScript趣味题/返回接口.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机KFC文案/css/background.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机KFC文案/css/style.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机KFC文案/index.html (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机KFC文案/js/main.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机KFC文案/接口集合.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机KFC文案/返回接口.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机一言/css/background.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机一言/css/style.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机一言/index.html (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机一言/js/script.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机一言/接口集合.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机一言/返回接口.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机冷笑话/css/Untitled-1.html (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机冷笑话/css/background.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机冷笑话/css/style.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机冷笑话/index.html (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机冷笑话/js/script.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机冷笑话/接口集合.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机冷笑话/返回接口.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机发病文学/css/background.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机发病文学/css/style.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机发病文学/index.html (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机发病文学/js/script.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机发病文学/接口集合.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机发病文学/返回接口.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机唱歌音频/css/style.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机唱歌音频/index.html (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机唱歌音频/js/script.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机唱歌音频/接口集合.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机唱歌音频/返回接口.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机搞笑段子/css/background.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机搞笑段子/css/style.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机搞笑段子/index.html (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机搞笑段子/js/script.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机搞笑段子/接口集合.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机搞笑段子/返回接口.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机运势/css/background.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机运势/css/style.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机运势/index.html (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机运势/js/script.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机运势/接口集合.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/娱乐消遣/随机运势/返回接口.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/EpicGames免费游戏/css/style.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/EpicGames免费游戏/index.html (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/EpicGames免费游戏/js/script.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/EpicGames免费游戏/接口集合.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/EpicGames免费游戏/返回接口.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/公网IP地址/css/background.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/公网IP地址/css/style.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/公网IP地址/index.html (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/公网IP地址/js/script.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/公网IP地址/接口集合.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/公网IP地址/返回接口.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/农历信息/css/background.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/农历信息/css/style.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/农历信息/index.html (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/农历信息/js/script.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/农历信息/接口集合.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/农历信息/返回接口.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/哈希解压压缩/css/style.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/哈希解压压缩/index.html (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/哈希解压压缩/js/script.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/哈希解压压缩/接口集合.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/哈希解压压缩/返回接口.json (100%) mode change 100755 => 100644 create mode 100644 InfoGenie-frontend/public/60sapi/实用功能/在线翻译/background.css create mode 100644 InfoGenie-frontend/public/60sapi/实用功能/在线翻译/index.html create mode 100644 InfoGenie-frontend/public/60sapi/实用功能/在线翻译/script.js create mode 100644 InfoGenie-frontend/public/60sapi/实用功能/在线翻译/styles.css create mode 100644 InfoGenie-frontend/public/60sapi/实用功能/在线翻译/在线翻译支持语言列表接口.json create mode 100644 InfoGenie-frontend/public/60sapi/实用功能/在线翻译/返回接口.json rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/天气预报/css/background.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/天气预报/css/style.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/天气预报/index.html (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/天气预报/js/script.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/天气预报/接口集合.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/天气预报/返回接口.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/实时天气[目前有问题]/background.css (100%) rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/实时天气[目前有问题]/index.html (100%) rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/实时天气[目前有问题]/script.js (100%) rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/实时天气[目前有问题]/styles.css (100%) rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/实时天气[目前有问题]/返回接口.json (100%) rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/密码强度检测/css/style.css (100%) rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/密码强度检测/index.html (100%) rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/密码强度检测/js/script.js (100%) rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/密码强度检测/返回接口.json (100%) rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/生成二维码/css/background.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/生成二维码/css/style.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/生成二维码/index.html (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/生成二维码/js/script.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/生成二维码/接口集合.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/百度百科词条/css/background.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/百度百科词条/css/style.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/百度百科词条/index.html (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/百度百科词条/js/script.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/百度百科词条/接口集合.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/百度百科词条/返回接口.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/身体健康分析/background.css (100%) rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/身体健康分析/index.html (100%) rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/身体健康分析/script.js (100%) rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/身体健康分析/styles.css (100%) rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/身体健康分析/返回接口.json (100%) rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/配色方案/background.css (100%) rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/配色方案/index.html (100%) rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/配色方案/script.js (100%) rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/配色方案/styles.css (100%) rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/配色方案/返回接口.json (100%) rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/链接OG信息/css/background.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/链接OG信息/css/style.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/链接OG信息/index.html (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/链接OG信息/js/script.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/链接OG信息/接口集合.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/链接OG信息/返回接口.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/随机密码生成器/css/background.css (100%) rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/随机密码生成器/css/style.css (100%) rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/随机密码生成器/index.html (100%) rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/随机密码生成器/js/script.js (100%) rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/随机密码生成器/返回接口.json (100%) rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/随机颜色/background.css (100%) rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/随机颜色/index.html (100%) rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/随机颜色/script.js (100%) rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/随机颜色/styles.css (100%) rename {frontend => InfoGenie-frontend}/public/60sapi/实用功能/随机颜色/返回接口.json (100%) rename {frontend => InfoGenie-frontend}/public/60sapi/日更资讯/历史上的今天/css/style.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/日更资讯/历史上的今天/index.html (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/日更资讯/历史上的今天/js/script.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/日更资讯/历史上的今天/接口集合.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/日更资讯/历史上的今天/返回接口.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/日更资讯/必应每日壁纸/css/style.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/日更资讯/必应每日壁纸/index.html (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/日更资讯/必应每日壁纸/js/script.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/日更资讯/必应每日壁纸/接口集合.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/日更资讯/必应每日壁纸/返回接口.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/日更资讯/每天60s读懂世界/css/style.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/日更资讯/每天60s读懂世界/index.html (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/日更资讯/每天60s读懂世界/js/script.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/日更资讯/每天60s读懂世界/接口集合.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/日更资讯/每天60s读懂世界/返回接口.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/日更资讯/每日国际汇率/css/style.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/日更资讯/每日国际汇率/index.html (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/日更资讯/每日国际汇率/js/script.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/日更资讯/每日国际汇率/接口集合.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/日更资讯/每日国际汇率/返回接口.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/Hacker News 榜单/css/background.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/Hacker News 榜单/css/style.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/Hacker News 榜单/index.html (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/Hacker News 榜单/js/script.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/Hacker News 榜单/接口集合.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/Hacker News 榜单/返回接口.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/哔哩哔哩热搜榜/css/background.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/哔哩哔哩热搜榜/css/style.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/哔哩哔哩热搜榜/index.html (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/哔哩哔哩热搜榜/js/main.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/哔哩哔哩热搜榜/接口集合.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/哔哩哔哩热搜榜/返回接口.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/头条热搜榜/css/background.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/头条热搜榜/css/style.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/头条热搜榜/index.html (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/头条热搜榜/js/main.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/头条热搜榜/接口集合.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/头条热搜榜/返回接口.json (100%) mode change 100755 => 100644 create mode 100644 InfoGenie-frontend/public/60sapi/热搜榜单/小红书热点/background.css create mode 100644 InfoGenie-frontend/public/60sapi/热搜榜单/小红书热点/index.html create mode 100644 InfoGenie-frontend/public/60sapi/热搜榜单/小红书热点/script.js create mode 100644 InfoGenie-frontend/public/60sapi/热搜榜单/小红书热点/styles.css create mode 100644 InfoGenie-frontend/public/60sapi/热搜榜单/小红书热点/返回接口.json rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/微博热搜榜/css/background.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/微博热搜榜/css/style.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/微博热搜榜/img/qeye.svg (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/微博热搜榜/index.html (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/微博热搜榜/js/main.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/微博热搜榜/接口集合.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/微博热搜榜/返回接口.json (100%) mode change 100755 => 100644 create mode 100644 InfoGenie-frontend/public/60sapi/热搜榜单/懂车帝热搜/api.js create mode 100644 InfoGenie-frontend/public/60sapi/热搜榜单/懂车帝热搜/app.js create mode 100644 InfoGenie-frontend/public/60sapi/热搜榜单/懂车帝热搜/background.css create mode 100644 InfoGenie-frontend/public/60sapi/热搜榜单/懂车帝热搜/index.html create mode 100644 InfoGenie-frontend/public/60sapi/热搜榜单/懂车帝热搜/styles.css create mode 100644 InfoGenie-frontend/public/60sapi/热搜榜单/懂车帝热搜/ui.js create mode 100644 InfoGenie-frontend/public/60sapi/热搜榜单/懂车帝热搜/返回接口.json rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/抖音热搜榜/css/background.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/抖音热搜榜/css/style.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/抖音热搜榜/index.html (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/抖音热搜榜/js/script.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/抖音热搜榜/接口集合.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/抖音热搜榜/返回接口.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/猫眼票房排行榜/css/style.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/猫眼票房排行榜/index.html (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/猫眼票房排行榜/js/script.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/猫眼票房排行榜/接口集合.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/猫眼票房排行榜/返回接口.json (100%) mode change 100755 => 100644 create mode 100644 InfoGenie-frontend/public/60sapi/热搜榜单/百度实时热搜/background.css create mode 100644 InfoGenie-frontend/public/60sapi/热搜榜单/百度实时热搜/index.html create mode 100644 InfoGenie-frontend/public/60sapi/热搜榜单/百度实时热搜/script.js create mode 100644 InfoGenie-frontend/public/60sapi/热搜榜单/百度实时热搜/styles.css create mode 100644 InfoGenie-frontend/public/60sapi/热搜榜单/百度实时热搜/返回接口.json create mode 100644 InfoGenie-frontend/public/60sapi/热搜榜单/百度电视剧榜/background.css create mode 100644 InfoGenie-frontend/public/60sapi/热搜榜单/百度电视剧榜/index.html create mode 100644 InfoGenie-frontend/public/60sapi/热搜榜单/百度电视剧榜/script.js create mode 100644 InfoGenie-frontend/public/60sapi/热搜榜单/百度电视剧榜/styles.css create mode 100644 InfoGenie-frontend/public/60sapi/热搜榜单/百度电视剧榜/返回接口.json create mode 100644 InfoGenie-frontend/public/60sapi/热搜榜单/百度贴吧话题榜/api.js create mode 100644 InfoGenie-frontend/public/60sapi/热搜榜单/百度贴吧话题榜/app.js create mode 100644 InfoGenie-frontend/public/60sapi/热搜榜单/百度贴吧话题榜/index.html create mode 100644 InfoGenie-frontend/public/60sapi/热搜榜单/百度贴吧话题榜/styles.css create mode 100644 InfoGenie-frontend/public/60sapi/热搜榜单/百度贴吧话题榜/ui.js create mode 100644 InfoGenie-frontend/public/60sapi/热搜榜单/百度贴吧话题榜/返回接口.json rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/知乎热门话题/css/background.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/知乎热门话题/css/style.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/知乎热门话题/img/zhihu-logo.svg (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/知乎热门话题/index.html (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/知乎热门话题/js/main.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/知乎热门话题/接口集合.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/知乎热门话题/返回接口.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/网易云榜单/css/background.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/网易云榜单/css/responsive.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/网易云榜单/css/style.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/网易云榜单/index.html (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/网易云榜单/js/app.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/网易云榜单/接口集合.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/热搜榜单/网易云榜单/返回接口.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/60sapi/生成要求模板.txt (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/_redirects (100%) mode change 100755 => 100644 create mode 100644 InfoGenie-frontend/public/aimodelapp/AI写诗小助手/index.html create mode 100644 InfoGenie-frontend/public/aimodelapp/AI写诗小助手/script.js rename {frontend => InfoGenie-frontend}/public/aimodelapp/AI变量命名助手/index.html (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/aimodelapp/AI变量命名助手/script.js (89%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/aimodelapp/AI变量命名助手/styles.css (51%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/aimodelapp/AI姓名评测/index.html (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/aimodelapp/AI姓名评测/script.js (91%) mode change 100755 => 100644 create mode 100644 InfoGenie-frontend/public/aimodelapp/AI姓名评测/styles.css create mode 100644 InfoGenie-frontend/public/aimodelapp/AI文章转文言文/index.html create mode 100644 InfoGenie-frontend/public/aimodelapp/AI文章转文言文/script.js create mode 100644 InfoGenie-frontend/public/aimodelapp/AI文章转文言文/styles.css create mode 100644 InfoGenie-frontend/public/aimodelapp/AI生成Linux命令/index.html create mode 100644 InfoGenie-frontend/public/aimodelapp/AI生成Linux命令/script.js create mode 100644 InfoGenie-frontend/public/aimodelapp/AI生成Linux命令/styles.css create mode 100644 InfoGenie-frontend/public/aimodelapp/AI生成表情包/index.html create mode 100644 InfoGenie-frontend/public/aimodelapp/AI生成表情包/script.js create mode 100644 InfoGenie-frontend/public/aimodelapp/AI生成表情包/styles.css create mode 100644 InfoGenie-frontend/public/aimodelapp/AI语言翻译助手/index.html create mode 100644 InfoGenie-frontend/public/aimodelapp/AI语言翻译助手/script.js create mode 100644 InfoGenie-frontend/public/aimodelapp/AI语言翻译助手/styles.css create mode 100644 InfoGenie-frontend/public/aimodelapp/API测试页面.html rename {frontend => InfoGenie-frontend}/public/aimodelapp/生成要求.txt (100%) mode change 100755 => 100644 create mode 100644 InfoGenie-frontend/public/assets/logo.png rename {frontend => InfoGenie-frontend}/public/index.html (89%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/manifest.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/smallgame/2048/controls.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/smallgame/2048/game-logic.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/smallgame/2048/index.html (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/smallgame/2048/statistics.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/smallgame/2048/styles.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/smallgame/俄罗斯方块/game-controls.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/smallgame/俄罗斯方块/game-stats.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/smallgame/俄罗斯方块/index.html (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/smallgame/俄罗斯方块/styles.css (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/smallgame/俄罗斯方块/tetris.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/smallgame/别踩白方块/MUSIC.mp3 (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/smallgame/别踩白方块/game.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/public/smallgame/别踩白方块/index.html (100%) mode change 100755 => 100644 create mode 100644 InfoGenie-frontend/public/smallgame/扫雷/css/style.css create mode 100644 InfoGenie-frontend/public/smallgame/扫雷/index.html create mode 100644 InfoGenie-frontend/public/smallgame/扫雷/js/main.js rename {frontend => InfoGenie-frontend}/public/smallgame/生成要求.txt (78%) mode change 100755 => 100644 create mode 100644 InfoGenie-frontend/public/smallgame/贪吃蛇/game-controls.js create mode 100644 InfoGenie-frontend/public/smallgame/贪吃蛇/game-core.js create mode 100644 InfoGenie-frontend/public/smallgame/贪吃蛇/game-stats.js create mode 100644 InfoGenie-frontend/public/smallgame/贪吃蛇/index.html create mode 100644 InfoGenie-frontend/public/smallgame/贪吃蛇/styles.css rename {frontend => InfoGenie-frontend}/public/sw.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/setting.json (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/src/App.js (95%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/src/components/Footer.js (99%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/src/components/Header.js (97%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/src/components/Navigation.js (94%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/src/config/StaticPageConfig.js (72%) rename {frontend => InfoGenie-frontend}/src/contexts/UserContext.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/src/index.js (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/src/md/前端邮件功能测试指南.md (100%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/src/pages/AiModelPage.js (93%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/src/pages/Api60sPage.js (97%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/src/pages/HomePage.js (98%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/src/pages/LoginPage.js (98%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/src/pages/SmallGamePage.js (94%) mode change 100755 => 100644 create mode 100644 InfoGenie-frontend/src/pages/UserProfilePage.js rename {frontend => InfoGenie-frontend}/src/styles/global.css (94%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/src/styles/index.css (69%) mode change 100755 => 100644 rename {frontend => InfoGenie-frontend}/src/utils/api.js (82%) mode change 100755 => 100644 create mode 100644 InfoGenie-frontend/start_frontend.bat create mode 100644 InfoGenie-frontend/start_frontend.sh create mode 100644 InfoGenie-frontend/前端架构文档.md create mode 100644 InfoGenie-frontend/酷安热度榜/soc.py create mode 100644 InfoGenie-frontend/酷安热度榜/性价比排行榜.py create mode 100644 InfoGenie-frontend/酷安热度榜/抓取酷安热度版.py create mode 100644 InfoGenie-frontend/酷安热度榜/热度排行榜.py create mode 100644 InfoGenie-frontend/酷安热度榜/系统排行榜.py delete mode 100644 backend/__pycache__/app.cpython-313.pyc delete mode 100644 backend/__pycache__/config.cpython-313.pyc delete mode 100755 backend/deploy.bat delete mode 100755 backend/md/邮件服务修复说明.md delete mode 100644 backend/modules/__pycache__/aimodelapp.cpython-313.pyc delete mode 100644 backend/modules/__pycache__/user_management.cpython-313.pyc delete mode 100755 backend/modules/user_management.py delete mode 100644 frontend/.env.development delete mode 100755 frontend/assets/logo.png delete mode 100755 frontend/assets/logo2.png delete mode 100755 frontend/public/aimodelapp/AI写诗小助手/env.js delete mode 100755 frontend/public/aimodelapp/AI写诗小助手/index.html delete mode 100755 frontend/public/aimodelapp/AI变量命名助手/env.js delete mode 100755 frontend/public/aimodelapp/AI姓名评测/env.js delete mode 100755 frontend/public/aimodelapp/AI姓名评测/styles.css delete mode 100755 frontend/src/utils/helpers.js delete mode 100755 start_backend.bat delete mode 100755 start_backend.sh delete mode 100755 start_frontend.bat delete mode 100755 start_frontend.sh delete mode 100755 用户数据模板.json diff --git a/.vscode/settings.json b/.vscode/settings.json index 3b664107..a1508387 100755 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,4 @@ { - "git.ignoreLimitWarning": true + "git.ignoreLimitWarning": true, + "terminal.integrated.defaultProfile.windows": "Command Prompt" } \ No newline at end of file diff --git a/backend/.env b/InfoGenie-backend/.env similarity index 100% rename from backend/.env rename to InfoGenie-backend/.env diff --git a/backend/.env.production b/InfoGenie-backend/.env.production old mode 100755 new mode 100644 similarity index 100% rename from backend/.env.production rename to InfoGenie-backend/.env.production diff --git a/InfoGenie-backend/ai_config.json b/InfoGenie-backend/ai_config.json new file mode 100644 index 00000000..e2aea1aa --- /dev/null +++ b/InfoGenie-backend/ai_config.json @@ -0,0 +1,13 @@ +{ + "deepseek": { + "api_key": "sk-832f8e5250464de08a31523c7fd71295", + "api_base": "https://api.deepseek.com", + "model": ["deepseek-chat","deepseek-reasoner"] + }, + + "kimi": { + "api_key": "sk-zdg9NBpTlhOcDDpoWfaBKu0KNDdGv18SipORnL2utawja0bE", + "api_base": "https://api.moonshot.cn", + "model": ["kimi-k2-0905-preview","kimi-k2-0711-preview"] + } +} \ No newline at end of file diff --git a/backend/app.py b/InfoGenie-backend/app.py old mode 100755 new mode 100644 similarity index 97% rename from backend/app.py rename to InfoGenie-backend/app.py index 1975c060..bf3bfc54 --- a/backend/app.py +++ b/InfoGenie-backend/app.py @@ -18,6 +18,7 @@ import secrets from modules.auth import auth_bp from modules.user_management import user_bp from modules.email_service import init_mail +from modules.aimodelapp import aimodelapp_bp from config import Config @@ -41,6 +42,7 @@ def create_app(): # 注册蓝图 app.register_blueprint(auth_bp, url_prefix='/api/auth') app.register_blueprint(user_bp, url_prefix='/api/user') + app.register_blueprint(aimodelapp_bp, url_prefix='/api/aimodelapp') # 基础路由 @app.route('/') @@ -136,7 +138,7 @@ def create_app(): try: # 获取项目根目录 project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) - ai_directory = os.path.join(project_root, 'frontend', 'aimodelapp') + ai_directory = os.path.join(project_root, 'frontend', 'public', 'aimodelapp') # 安全检查:确保文件路径在允许的目录内 full_path = os.path.join(ai_directory, filename) diff --git a/backend/config.py b/InfoGenie-backend/config.py old mode 100755 new mode 100644 similarity index 100% rename from backend/config.py rename to InfoGenie-backend/config.py diff --git a/InfoGenie-backend/modules/__pycache__/aimodelapp.cpython-313.pyc b/InfoGenie-backend/modules/__pycache__/aimodelapp.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a094e037633db4afe73e51d9f43cebaaccfd0f04 GIT binary patch literal 27780 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 diff --git a/backend/modules/__pycache__/email_service.cpython-313.pyc b/InfoGenie-backend/modules/__pycache__/email_service.cpython-313.pyc similarity index 100% rename from backend/modules/__pycache__/email_service.cpython-313.pyc rename to InfoGenie-backend/modules/__pycache__/email_service.cpython-313.pyc diff --git a/backend/modules/__pycache__/smallgame.cpython-313.pyc b/InfoGenie-backend/modules/__pycache__/smallgame.cpython-313.pyc similarity index 100% rename from backend/modules/__pycache__/smallgame.cpython-313.pyc rename to InfoGenie-backend/modules/__pycache__/smallgame.cpython-313.pyc diff --git a/InfoGenie-backend/modules/__pycache__/user_management.cpython-313.pyc b/InfoGenie-backend/modules/__pycache__/user_management.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cb15a4fca13ef57989f4c858b9f97dbb714d9983 GIT binary patch literal 13194 zcmeHNdvp`mnIFC156hPPkcDNi!7{da7!yN)#5_ze4YVF>Lu*=BvBtK7J#t1?cr;Cc zG(n{ym;`FmO^Y~7Qf1o&cAITz9!=Av*=_%_qTM6yl{4;6E;XliW0_*Nrc1+VNM5;H+oj`lB(K`7=k!pn z-fieIaz;0`U%r&0HTz9%a^V@AnbuZOoQ2kbwC*=|FB3bF`=#}?VU>(FZjkS{(xxh^ zEmI`^a<(G%%(Nw2&sv~fX_0y*lIPh9)GI4euT)a6tUx_`k$QGXKOF_?If~RPm(;5$ zP_KMY<*5vJz;Nkj&&JY`*Joe7I6MAyI(Bj92NU{j9OD~f{O*SjZ*@Y)Atn?G1XkT0?7F*w($Hr*HR;FY~Gg=(TO@VYu|Z;lUsm7#kW1 z^}H;H5f1nF!yxlY7*bzn*bMFTVC|XL|9f(mFo0Lp- zU&`s8YTg{TZ23^Tg_OAC1~-;$f|A%*0 zbuy5PCMZr$GC@~E=4&uTd$ZHGhic2@z0^7xEvup)(TY&T%Dl2V$|Dc2gKD$q-<)~- zoG=aM{^qIq7q85mkA3u3Bz^XB`kCCsn0fA*%)0vMt?%?hy==lMT?79&x55Lr$eNwS1zq<$@YlWuY;AJ{}hj54{z!S!`$TpM|@)dWJfex86U@R?s*&vvaq;P$nm=2 z;NT$R?+dVbMq*9AIEcTT6WdaAOej1&#>)mmsN{xplyhN;4OcXW zklr^CX8W=Kd?WNT!1f_hr4TrY0+^LIggnkU-(fWkFA<~($*vA7& zi#xTVIW}~wlTwsf7N8qt3mQdP*#f07mEF)%){^nMDNF6-^0=jTN?Usqx=V2gz#ci* zg!yI=1d6`y7DmOqcmz0HuQ-sQS`hH6(<*&r&6E3X$!)5oHx-oHynwld<&<&Bl+wkm z0<9z3Rij*RATZ4Eik&-p0F?n;VV3wqi&i682>}xR2%rA5*euD~yNmVe##+rp#VYA>3HBJQJeoz4z&bCdC{`({qo8fQ2>c{@ zm16(QRI7Z^+n25*_Ma|el^x1DO86a+Wi7isj8B<+_Vt<5-xDa;+&_Ff{k`+NhM2s7 zpI7t+{GGQEnS}D`tEXmOnVfkcCcws7m^)#FfVtORnmPSC0hjboV>3@blb-n5{KRX* zjTes2j6W-&4Y?s?(?7YGK6iyfLoD1CIN!;irH>xt)jmLk#~1(=jjz8y7zP4o;+Vle zXbem-ax-2(>$c0gjFNxsR6LY!l51x$9VpqK-|V$`h`<7Coh7@nm>Df?(*f0 z?)h8L`8^(k0AVo1l)x@jBSCgB$jki?^I9ARq%OR6Ai(vkOKXGRHd zDMDkMN5!F;>~N@1DRd9G zgm#I_dd*fjvGTckFT%L3`#hpz_=c>4KRnplWceYPyE3R8=l9qx z-IAzU3xwrD`}y|ho+}**=lYbRYGUZj(Bu=bLkUOw4THK=AJN>h0!*gLovAV>Jf}hr zxM(#1E}E=>i&iV(qR#s9Ej?wl-=viAUKU5HygF6c_>5$1qQR+2uyxqiUOn~L;4F*l5Blhk@||ySYPgyWeEz{`y3r2 zkeDSl2#B;=0x%i`m|o=BB;|+?t=$N4;D^OtuvEA4EJgW{s7Tw^7ijx#^v56q762h` z2}tUOmh)4076fx8-N;w+607toyUX)#!X<6&trYKi72;DRhD7C6iDP)jsF@bMnHfio zw$RqyrYF-?;@?f*(o_u@y>Kn5!zaf~dae&r&G+XmHnZk%D zS?&3A@65dM(#$(g&0l;I?A-e1wX3J!J~jRG?}9la0MFqH=GLRQ2L+BiY%ojvhnW5Y z+5Yqm`9edyV~_!p0VH?v{oD9#p>t$!J@f1Z;YzSg91id&%DNCU)OrZ2yv@q!R;Ly(TDlk`pQNfBSh8b2cfn?Lr zfpxc{*oI;|3Y-yq$w7uYaD)jDwuBhi0R+Ylb2JwAV4*%dicS+Wkh~eT&4Gac@Oom8 zxgDt02?9(l?nbx=QS3#r4#iFs2pN+0N~E8b3?;V`HFkjrA#}k$LQDd2wg^z49cS)q zp!E={SHTBDJGzP38`uwgXsJn9Y9mUpQxk{I9EzH+$P?wQ$?^^H@(qdddn3l81!;@( zrA?wG-BQ$&qJgtS9#0smCm&51+?Te+jETCotMWwMMzQkNPpe#7^_REyf6`OBZrKgk z)+~#zi)k-zxw0u~xj$~XU+iIVqHx1VxmvGmN>txJrLDYPQkyJkikCE{Ot!NROg@w- ztDiD1Pnk-`ho;d2F7QqEPMHWp=0vdt>4 z^Lgn6E~MifYddY!yKT)Nf3>Wm34Y$UHlW+g<}JR_Kp*%6hC|?XBR9r^W4>YV+GcL^x<`WG zK7gVSZz9_RvWozy5;g+_G&>105<5VEau2vY5RM5la$3mo3O0C<*9Ahsfgm^H8zVR= zfiZ=^^8rNRqYIFP+e*Nr%pM-WmTaH|jQ|v$hyTz85Qs$fd`7>ZrK(-28aMt`R$X(| zU)cZs{eS(nq^m9NYD>880d`%YkEn9&y0Q>U{vTo2=*m3aVeTlQ-YwB@l_}nJIy*Kg z-d!)l{3aF1Bl=Z?z7eJw_eG1SH16YO+*s*5lBfo!Vk;it5f1PszOk6qJ>Lj{?nBUZNF} z9r$PQQDo_9VL}d`g93{f{ea?l717Y&Rl{&s4I{0CUYWo*p%9-&TUwMr&vU)Df}f&9 zvea!EGKdSBq^zGJS4T;g_M-QSq&z=`6oSe!uwl>mDafw`HXL`rM*8a2bmTPn57MVz z?_}yed9-js|nX{o(50$Z5;Bs@n_~vzCCmG*lnC9v#O~8?1Wd(!Plo!xO^NF{1rL=#p`fg1AKzRcNaV@-%Vl5;#yAc2>xT7()A?|4V&dzCvYvRCj2cn*Yqbag; z`Y-0n0Pn=UGy5ioVzPw2QS@T8$G()PT9vX_lClG_H3@rjYRS?IL+6L0Po$QwNO@XP z?xq_WWjlCul{J5kHAGTU&EiZ3T>LhA6PweJ7g1 zn0LGL8ih;rchENS?tp?`HEnB#fC8)DYbN*4!kECSplxtRVG?q}#A z4dxy^kkWbTUNlc@1#00Y->rt)lM)Uhz#c_h5_rr3ddJ!qwX(DqodhI#?c&q!@H|25 z#PhU_wRhNIk3xPWWTTFFp3;|3gGCn%`CSOc5pDgKo9joK>-`)H4<{sp3u0~*1&1O8 zB3uVTU*QHB35}6#n(Xunqc6_-h~^%d&4LW zfasa`gB)xn>E?YNWnQ_^oxcJd;$;$EM(`iOQ#=|t_=5W-j)8!!pKuZ}Z-o;U=;px~ zjIf{565`Sq9_4lDn-ORX$qMvEgLi?|coah18Cel=_k`)XGb2!gI|zk*3E5AI91Wda+_&()j@-vIUFxtq@^SRv98@2woYhk_K1Y;F?;}b|suNY>pc? z|FR{ywI{x{XUf~3*y^7e8cA#&5&c^oMZHc7;NM!AtZs={x5S>f`go%H3*hI1NPp7V z9CtQPwQT(*#J@Tr;Pyu~WppjbEvEWw)pg10<`1i(^uAwKL5*=8?BbKImJeMmvGA2g z60VMMeaf{W?rKd|Z-`fK7}s4dt&Yl`-*UaIE+&hYdE#YtDf^OW$@5>mzM=sx;DsC7 z@mEW^Yp0CWa9v&%F{JDj5k2H9T^F?HwNYoxm#A1BF^R#rL$Q*CVZuZ}z*dIp=WFN4qBlxk>Cxf@cojj7s}ch1#6n>G;222@Zo{_ea1fy>;ya7#nHR=Q+S4~gGL67W;drHjf5xdW=U zRD42)s%aM0vG-=FsWyzbpHG$IDrC3hIy?R zAmsKy2Rg&(egcLy_lxIeo_bM;qs?A?b?((mLM_1$O!(G1&@33+lL>(-*yRWZRqhDY z^@MSX2^|1tCorr``&+WLNH6b<(3J{Y=OKJLP+E$EeVlN>Ua14%63&JW8TSQ8c@os0HlR1{dO@f9G2x{mjAdpD3 z-VtXjEuUyV(>~c1lP5}7CQH}EOV=byTO-=ErChYe?L~naf@%L7@vz$v58EgWhqWgy zo8p#iw6FL%KcEYuwTm&Y?YladXzQG6-kB(QAfmo*C`lS>;)a@NZNji@+E{w}!IKX@ zvv(Q~4?^T??WetU#)K7r@aK(uwZoS?-eK6Gpx!liG{MiW?p+S@y`>#i_<6t80`k`i z{f<_}uT9P!Es9?^$S~ic0_myXHGO^lV1Hj9uNnXje1Jm}B+O+*KFQ?8Im9a;#^^Kp zFgRqYypA0D3^zXScU-7eNUoCKcKO63$G^Am*u*DgR`o;IQt$P}_b_xqeSo{*KcB zo^t-XzI42E@_~fD{;1{;O08_uAIcoEB@3%5x$cDPm@9H5x+8keQP-4gWlCnbA$QBH za0F9MMAL#2E*G}TGP-c;Gu9bvN9A=yd5c83Z9xf_3&1%t4IhfuN6S&yLv+g}x{V7; zxLjB(sy-fNq7R{JGf{1jsJ1L9;c}rz>;v?-GfKM9M0CF?lPEVYDDisX33vnH?G8uR UM;mf)*CtVJx&dbltz>-v3+59evj6}9 literal 0 HcmV?d00001 diff --git a/InfoGenie-backend/modules/aimodelapp.py b/InfoGenie-backend/modules/aimodelapp.py new file mode 100644 index 00000000..72dedcbc --- /dev/null +++ b/InfoGenie-backend/modules/aimodelapp.py @@ -0,0 +1,765 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" +AI模型应用服务模块 +Created by: 神奇万事通 +Date: 2025-01-15 +""" + +from flask import Blueprint, request, jsonify +import requests +import json +import os +from datetime import datetime + +# 创建蓝图 +aimodelapp_bp = Blueprint('aimodelapp', __name__) + +#加载AI配置文件 +def load_ai_config(): + """加载AI配置文件""" + try: + config_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'ai_config.json') + with open(config_path, 'r', encoding='utf-8') as f: + return json.load(f) + except Exception as e: + print(f"加载AI配置失败: {e}") + return None + +#调用DeepSeek API,带重试机制 +def call_deepseek_api(messages, model="deepseek-chat", max_retries=3): + """调用DeepSeek API,带重试机制""" + config = load_ai_config() + if not config or 'deepseek' not in config: + return None, "AI配置加载失败" + + deepseek_config = config['deepseek'] + + headers = { + 'Authorization': f'Bearer {deepseek_config["api_key"]}', + 'Content-Type': 'application/json' + } + + data = { + 'model': model, + 'messages': messages, + 'temperature': 0.7, + 'max_tokens': 2000 + } + + import time + + for attempt in range(max_retries): + try: + # 增加超时时间到90秒 + response = requests.post( + f"{deepseek_config['api_base']}/chat/completions", + headers=headers, + json=data, + timeout=90 + ) + + if response.status_code == 200: + result = response.json() + return result['choices'][0]['message']['content'], None + else: + error_msg = f"API调用失败: {response.status_code} - {response.text}" + if attempt < max_retries - 1: + print(f"第{attempt + 1}次尝试失败,等待重试: {error_msg}") + time.sleep(2 ** attempt) # 指数退避 + continue + return None, error_msg + + except requests.exceptions.Timeout: + error_msg = "API请求超时" + if attempt < max_retries - 1: + print(f"第{attempt + 1}次尝试超时,等待重试") + time.sleep(2 ** attempt) # 指数退避 + continue + return None, f"{error_msg}(已重试{max_retries}次)" + + except Exception as e: + error_msg = f"API调用异常: {str(e)}" + if attempt < max_retries - 1: + print(f"第{attempt + 1}次尝试异常,等待重试: {error_msg}") + time.sleep(2 ** attempt) # 指数退避 + continue + return None, f"{error_msg}(已重试{max_retries}次)" + +#调用Kimi API +def call_kimi_api(messages, model="kimi-k2-0905-preview"): + """调用Kimi API""" + config = load_ai_config() + if not config or 'kimi' not in config: + return None, "AI配置加载失败" + + kimi_config = config['kimi'] + + headers = { + 'Authorization': f'Bearer {kimi_config["api_key"]}', + 'Content-Type': 'application/json' + } + + data = { + 'model': model, + 'messages': messages, + 'temperature': 0.7, + 'max_tokens': 2000 + } + + try: + response = requests.post( + f"{kimi_config['api_base']}/v1/chat/completions", + headers=headers, + json=data, + timeout=30 + ) + + if response.status_code == 200: + result = response.json() + return result['choices'][0]['message']['content'], None + else: + return None, f"API调用失败: {response.status_code} - {response.text}" + + except Exception as e: + return None, f"API调用异常: {str(e)}" + +#统一的AI聊天接口 +@aimodelapp_bp.route('/chat', methods=['POST']) +def ai_chat(): + """统一的AI聊天接口""" + try: + data = request.get_json() + + if not data: + return jsonify({'error': '请求数据为空'}), 400 + + # 获取请求参数 + messages = data.get('messages', []) + model_provider = data.get('provider', 'deepseek') # 默认使用deepseek + model_name = data.get('model', 'deepseek-chat') # 默认模型 + + if not messages: + return jsonify({'error': '消息内容不能为空'}), 400 + + # 根据提供商调用对应的API + if model_provider == 'deepseek': + content, error = call_deepseek_api(messages, model_name) + elif model_provider == 'kimi': + content, error = call_kimi_api(messages, model_name) + else: + return jsonify({'error': f'不支持的AI提供商: {model_provider}'}), 400 + + if error: + return jsonify({'error': error}), 500 + + return jsonify({ + 'success': True, + 'content': content, + 'provider': model_provider, + 'model': model_name, + 'timestamp': datetime.now().isoformat() + }) + + except Exception as e: + return jsonify({'error': f'服务器错误: {str(e)}'}), 500 + +#姓名分析专用接口 +@aimodelapp_bp.route('/name-analysis', methods=['POST']) +def name_analysis(): + """姓名分析专用接口""" + try: + data = request.get_json() + name = data.get('name', '').strip() + + if not name: + return jsonify({'error': '姓名不能为空'}), 400 + + # 构建姓名分析的专业提示词 + prompt = f"""你是一位专业的姓名学专家和语言学家,请对输入的姓名进行全面分析。请直接输出分析结果,不要包含任何思考过程或标签。 + +姓名:{name} + +请按照以下格式严格输出分析结果: + +【稀有度评分】 +评分:X% +评价:[对稀有度的详细说明,包括姓氏和名字的常见程度分析] + +【音韵评价】 +评分:X% +评价:[对音韵美感的分析,包括声调搭配、读音流畅度、音律和谐度等] + +【含义解读】 +[详细分析姓名的寓意内涵,包括: +1. 姓氏的历史渊源和文化背景 +2. 名字各字的含义和象征 +3. 整体姓名的寓意组合 +4. 可能体现的父母期望或文化内涵 +5. 与传统文化、诗词典故的关联等] + +要求: +1. 评分必须是1-100的整数百分比,要有明显区分度,避免雷同 +2. 分析要专业、客观、有依据,评分要根据实际情况有所差异 +3. 含义解读要详细深入,至少150字 +4. 严格按照上述格式输出,不要添加思考过程、标签或其他内容 +5. 如果是生僻字或罕见姓名,要特别说明 +6. 直接输出最终结果,不要显示推理过程""" + + messages = [ + {"role": "user", "content": prompt} + ] + + # 使用DeepSeek进行分析 + content, error = call_deepseek_api(messages) + + if error: + return jsonify({'error': error}), 500 + + return jsonify({ + 'success': True, + 'analysis': content, + 'name': name, + 'timestamp': datetime.now().isoformat() + }) + + except Exception as e: + return jsonify({'error': f'姓名分析失败: {str(e)}'}), 500 + +#变量命名助手接口 +@aimodelapp_bp.route('/variable-naming', methods=['POST']) +def variable_naming(): + """变量命名助手接口""" + try: + data = request.get_json() + description = data.get('description', '').strip() + language = data.get('language', 'javascript').lower() + + if not description: + return jsonify({'error': '变量描述不能为空'}), 400 + + # 构建变量命名的提示词 + prompt = f"""你是一个专业的变量命名助手。请根据以下描述为变量生成合适的名称: + +描述:{description} + +请为每种命名规范生成3个变量名建议: +1. camelCase (驼峰命名法) +2. PascalCase (帕斯卡命名法) +3. snake_case (下划线命名法) +4. kebab-case (短横线命名法) +5. CONSTANT_CASE (常量命名法) + +要求: +- 变量名要准确反映功能和用途 +- 严格遵循各自的命名规范 +- 避免使用缩写,除非是广泛认知的缩写 +- 名称要简洁但具有描述性 +- 考虑代码的可读性和维护性 + +请按以下JSON格式返回: +{{ + "suggestions": {{ + "camelCase": [ + {{"name": "变量名1", "description": "解释说明1"}}, + {{"name": "变量名2", "description": "解释说明2"}}, + {{"name": "变量名3", "description": "解释说明3"}} + ], + "PascalCase": [ + {{"name": "变量名1", "description": "解释说明1"}}, + {{"name": "变量名2", "description": "解释说明2"}}, + {{"name": "变量名3", "description": "解释说明3"}} + ], + "snake_case": [ + {{"name": "变量名1", "description": "解释说明1"}}, + {{"name": "变量名2", "description": "解释说明2"}}, + {{"name": "变量名3", "description": "解释说明3"}} + ], + "kebab-case": [ + {{"name": "变量名1", "description": "解释说明1"}}, + {{"name": "变量名2", "description": "解释说明2"}}, + {{"name": "变量名3", "description": "解释说明3"}} + ], + "CONSTANT_CASE": [ + {{"name": "变量名1", "description": "解释说明1"}}, + {{"name": "变量名2", "description": "解释说明2"}}, + {{"name": "变量名3", "description": "解释说明3"}} + ] + }} +}} + +只返回JSON格式的结果,不要包含其他文字。""" + + messages = [ + {"role": "user", "content": prompt} + ] + + # 使用DeepSeek进行分析 + content, error = call_deepseek_api(messages) + + if error: + return jsonify({'error': error}), 500 + + # 解析AI返回的JSON格式数据 + try: + # 尝试直接解析JSON + ai_response = json.loads(content) + suggestions = ai_response.get('suggestions', {}) + except json.JSONDecodeError: + # 如果直接解析失败,尝试提取JSON部分 + import re + json_match = re.search(r'\{[\s\S]*\}', content) + if json_match: + try: + ai_response = json.loads(json_match.group()) + suggestions = ai_response.get('suggestions', {}) + except json.JSONDecodeError: + return jsonify({'error': 'AI返回的数据格式无法解析'}), 500 + else: + return jsonify({'error': 'AI返回的数据中未找到有效的JSON格式'}), 500 + + return jsonify({ + 'success': True, + 'suggestions': suggestions, + 'description': description, + 'language': language, + 'timestamp': datetime.now().isoformat() + }) + + except Exception as e: + return jsonify({'error': f'变量命名失败: {str(e)}'}), 500 + +@aimodelapp_bp.route('/poetry', methods=['POST']) +def poetry_assistant(): + """AI写诗助手接口""" + try: + data = request.get_json() + theme = data.get('theme', '').strip() + style = data.get('style', '现代诗').strip() + mood = data.get('mood', '').strip() + + if not theme: + return jsonify({'error': '诗歌主题不能为空'}), 400 + + # 构建写诗的提示词 + prompt = f"""你是一位才华横溢的诗人,请根据以下要求创作一首诗歌。 + +主题:{theme} +风格:{style} +情感基调:{mood if mood else '自由发挥'} + +创作要求: +1. 紧扣主题,情感真挚 +2. 语言优美,意境深远 +3. 符合指定的诗歌风格 +4. 长度适中,朗朗上口 +5. 如果是古体诗,注意平仄和韵律 + +请直接输出诗歌作品,不需要额外的解释或分析。""" + + messages = [ + {"role": "user", "content": prompt} + ] + + # 使用DeepSeek进行创作 + content, error = call_deepseek_api(messages) + + if error: + return jsonify({'error': error}), 500 + + return jsonify({ + 'success': True, + 'poem': content, + 'theme': theme, + 'style': style, + 'mood': mood, + 'timestamp': datetime.now().isoformat() + }) + + except Exception as e: + return jsonify({'error': f'诗歌创作失败: {str(e)}'}), 500 + +@aimodelapp_bp.route('/translation', methods=['POST']) +def translation(): + """AI语言翻译接口""" + try: + data = request.get_json() + source_text = data.get('source_text', '').strip() + target_language = data.get('target_language', 'zh-CN').strip() + + if not source_text: + return jsonify({'error': '翻译内容不能为空'}), 400 + + # 语言映射 + language_map = { + 'zh-CN': '中文(简体)', + 'zh-TW': '中文(繁体)', + 'en': '英语', + 'ja': '日语', + 'ko': '韩语', + 'fr': '法语', + 'de': '德语', + 'es': '西班牙语', + 'it': '意大利语', + 'pt': '葡萄牙语', + 'ru': '俄语', + 'ar': '阿拉伯语', + 'hi': '印地语', + 'th': '泰语', + 'vi': '越南语' + } + + target_language_name = language_map.get(target_language, target_language) + + # 构建翻译的专业提示词 + prompt = f"""你是一位专业的翻译专家,精通多种语言的翻译工作。请将以下文本翻译成{target_language_name}。 + +原文:{source_text} + +翻译要求: +1. 【信】- 忠实原文,准确传达原意,不遗漏、不添加、不歪曲 +2. 【达】- 译文通顺流畅,符合目标语言的表达习惯和语法规范 +3. 【雅】- 用词优美得体,风格与原文相符,具有良好的可读性 + +特别注意: +- 自动检测源语言,无需用户指定 +- 保持原文的语气、情感色彩和文体风格 +- 对于专业术语,提供准确的对应翻译 +- 对于文化特色词汇,在保持原意的基础上进行适当的本土化处理 +- 如果是单词或短语,提供多个常用含义的翻译 +- 如果是句子,确保语法正确、表达自然 + +请按以下JSON格式返回翻译结果: +{{ + "detected_language": "检测到的源语言名称", + "target_language": "{target_language_name}", + "translation": "翻译结果", + "alternative_translations": [ + "备选翻译1", + "备选翻译2", + "备选翻译3" + ], + "explanation": "翻译说明(包括语境、用法、注意事项等)", + "pronunciation": "目标语言的发音指导(如适用)" +}} + +只返回JSON格式的结果,不要包含其他文字。""" + + messages = [ + {"role": "user", "content": prompt} + ] + + # 使用DeepSeek进行翻译 + content, error = call_deepseek_api(messages) + + if error: + return jsonify({'error': error}), 500 + + return jsonify({ + 'success': True, + 'translation_result': content, + 'source_text': source_text, + 'target_language': target_language, + 'timestamp': datetime.now().isoformat() + }) + + except Exception as e: + return jsonify({'error': f'翻译失败: {str(e)}'}), 500 + +#现代文转文言文接口 +@aimodelapp_bp.route('/classical_conversion', methods=['POST']) +def classical_conversion(): + """现代文转文言文接口""" + try: + data = request.get_json() + modern_text = data.get('modern_text', '').strip() + style = data.get('style', '古雅').strip() + article_type = data.get('article_type', '散文').strip() + + if not modern_text: + return jsonify({'error': '现代文内容不能为空'}), 400 + + # 构建文言文转换的专业提示词 + prompt = f"""你是一位精通古代文言文的文学大师,擅长将现代文转换为优美的文言文。请将以下现代文转换为文言文。 + +现代文:{modern_text} + +转换要求: +1. 风格:{style} +2. 文体:{article_type} +3. 保持原文的核心意思和情感色彩 +4. 使用恰当的文言文语法和词汇 +5. 注重音韵美感和文字的雅致 +6. 根据不同风格调整用词和句式 + +风格说明: +- 古雅:典雅庄重,用词考究,句式工整 +- 简洁:言简意赅,删繁就简,朴实无华 +- 华丽:辞藻华美,对仗工整,音韵和谐 +- 朴实:平实自然,通俗易懂,贴近生活 + +文体特点: +- 散文:行文自由,情理并茂 +- 诗歌:讲究韵律,意境深远 +- 议论文:逻辑严密,论证有力 +- 记叙文:叙事生动,描写细腻 +- 书信:格式规范,情真意切 +- 公文:庄重严肃,用词准确 + +请按以下JSON格式返回转换结果: +{{ + "classical_text": "转换后的文言文", + "translation_notes": "转换说明,包括重要词汇的选择理由和语法特点", + "style_analysis": "风格分析,说明如何体现所选风格特点", + "difficulty_level": "难度等级(初级/中级/高级)", + "key_phrases": [ + {{ + "modern": "现代词汇", + "classical": "对应文言文词汇", + "explanation": "转换说明" + }} + ], + "cultural_elements": "文化内涵说明,包含的典故、意象等" +}} + +只返回JSON格式的结果,不要包含其他文字。""" + + messages = [ + {"role": "user", "content": prompt} + ] + + # 使用DeepSeek进行文言文转换 + content, error = call_deepseek_api(messages) + + if error: + return jsonify({'error': error}), 500 + + return jsonify({ + 'success': True, + 'conversion_result': content, + 'modern_text': modern_text, + 'style': style, + 'article_type': article_type, + 'timestamp': datetime.now().isoformat() + }) + + except Exception as e: + return jsonify({'error': f'文言文转换失败: {str(e)}'}), 500 + +#AI表情制作器接口 +@aimodelapp_bp.route('/expression-maker', methods=['POST']) +def expression_maker(): + """AI表情制作器接口""" + try: + data = request.get_json() + text = data.get('text', '').strip() + style = data.get('style', 'mixed').strip() + + if not text: + return jsonify({'error': '文字内容不能为空'}), 400 + + # 风格映射 + style_prompts = { + 'mixed': '混合使用Emoji表情和颜文字', + 'emoji': '仅使用Emoji表情符号', + 'kaomoji': '仅使用颜文字(日式表情符号)', + 'cute': '使用可爱风格的表情符号', + 'cool': '使用酷炫风格的表情符号' + } + + style_description = style_prompts.get(style, style_prompts['mixed']) + + # 构建表情制作的提示词 + prompt = f"""你是一个专业的表情符号专家,擅长为文字内容生成合适的表情符号。请根据以下文字内容生成相应的表情符号: + +文字内容:{text} +表情风格:{style_description} + +请为这个文字内容生成表情符号,要求: +1. 准确表达文字的情感和含义 +2. 符合指定的表情风格 +3. 提供多样化的选择 +4. 包含使用场景说明 + +请按以下分类生成表情符号: +1. Emoji表情(使用Unicode表情符号) +2. 颜文字(使用ASCII字符组成的表情) +3. 组合表情(多个符号组合使用) + +每个分类提供5个不同的表情选项,每个选项包含: +- 表情符号本身 +- 适用场景说明 +- 情感强度(轻微/中等/强烈) + +请按以下JSON格式返回: +{{ + "expressions": {{ + "emoji": [ + {{ + "symbol": "😊", + "description": "适用场景和情感说明", + "intensity": "中等", + "usage": "使用建议" + }} + ], + "kaomoji": [ + {{ + "symbol": "(^_^)", + "description": "适用场景和情感说明", + "intensity": "轻微", + "usage": "使用建议" + }} + ], + "combination": [ + {{ + "symbol": "🎉✨", + "description": "适用场景和情感说明", + "intensity": "强烈", + "usage": "使用建议" + }} + ] + }}, + "summary": {{ + "emotion_analysis": "对输入文字的情感分析", + "recommended_usage": "推荐的使用场景", + "style_notes": "风格特点说明" + }} +}} + +只返回JSON格式的结果,不要包含其他文字。""" + + messages = [ + {"role": "user", "content": prompt} + ] + + # 使用DeepSeek进行分析 + content, error = call_deepseek_api(messages) + + if error: + return jsonify({'error': error}), 500 + + # 解析AI返回的JSON格式数据 + try: + # 尝试直接解析JSON + ai_response = json.loads(content) + expressions = ai_response.get('expressions', {}) + summary = ai_response.get('summary', {}) + except json.JSONDecodeError: + # 如果直接解析失败,尝试提取JSON部分 + import re + json_match = re.search(r'\{[\s\S]*\}', content) + if json_match: + try: + ai_response = json.loads(json_match.group()) + expressions = ai_response.get('expressions', {}) + summary = ai_response.get('summary', {}) + except json.JSONDecodeError: + return jsonify({'error': 'AI返回的数据格式无法解析'}), 500 + else: + return jsonify({'error': 'AI返回的数据中未找到有效的JSON格式'}), 500 + + return jsonify({ + 'success': True, + 'expressions': expressions, + 'summary': summary, + 'text': text, + 'style': style, + 'timestamp': datetime.now().isoformat() + }) + + except Exception as e: + return jsonify({'error': f'表情制作失败: {str(e)}'}), 500 + +#Linux命令生成接口 +@aimodelapp_bp.route('/linux-command', methods=['POST']) +def linux_command_generator(): + """Linux命令生成接口""" + try: + data = request.get_json() + task_description = data.get('task_description', '').strip() + difficulty_level = data.get('difficulty_level', 'beginner').strip() + + if not task_description: + return jsonify({'error': '任务描述不能为空'}), 400 + + # 构建Linux命令生成的专业提示词 + prompt = f"""你是一位Linux系统专家,请根据用户的任务描述生成相应的Linux命令。 + +任务描述:{task_description} +用户水平:{difficulty_level} + +请为这个任务生成合适的Linux命令,要求: +1. 命令准确可用,符合Linux标准 +2. 根据用户水平提供适当的复杂度 +3. 提供多种实现方式(如果有的话) +4. 包含安全提示和注意事项 +5. 解释每个命令的作用和参数 + +用户水平说明: +- beginner(初学者):提供基础命令,详细解释 +- intermediate(中级):提供常用命令和选项 +- advanced(高级):提供高效命令和高级用法 + +请按以下JSON格式返回: +{{ + "commands": [ + {{ + "command": "具体的Linux命令", + "description": "命令的详细说明", + "safety_level": "safe/caution/dangerous", + "explanation": "命令各部分的解释", + "example_output": "预期的命令输出示例", + "alternatives": ["替代命令1", "替代命令2"] + }} + ], + "safety_warnings": ["安全提示1", "安全提示2"], + "prerequisites": ["前置条件1", "前置条件2"], + "related_concepts": ["相关概念1", "相关概念2"] +}} + +只返回JSON格式的结果,不要包含其他文字。""" + + messages = [ + {"role": "user", "content": prompt} + ] + + # 使用DeepSeek进行命令生成 + content, error = call_deepseek_api(messages) + + if error: + return jsonify({'error': error}), 500 + + return jsonify({ + 'success': True, + 'command_result': content, + 'task_description': task_description, + 'difficulty_level': difficulty_level, + 'timestamp': datetime.now().isoformat() + }) + + except Exception as e: + return jsonify({'error': f'Linux命令生成失败: {str(e)}'}), 500 + +#获取可用的AI模型列表 +@aimodelapp_bp.route('/models', methods=['GET']) +def get_available_models(): + """获取可用的AI模型列表""" + try: + config = load_ai_config() + if not config: + return jsonify({'error': 'AI配置加载失败'}), 500 + + models = {} + for provider, provider_config in config.items(): + if 'model' in provider_config: + models[provider] = provider_config['model'] + + return jsonify({ + 'success': True, + 'models': models, + 'default_provider': 'deepseek', + 'default_model': 'deepseek-chat' + }) + + except Exception as e: + return jsonify({'error': f'获取模型列表失败: {str(e)}'}), 500 \ No newline at end of file diff --git a/backend/modules/auth.py b/InfoGenie-backend/modules/auth.py old mode 100755 new mode 100644 similarity index 98% rename from backend/modules/auth.py rename to InfoGenie-backend/modules/auth.py index 96fd48d4..b7adb752 --- a/backend/modules/auth.py +++ b/InfoGenie-backend/modules/auth.py @@ -218,7 +218,15 @@ def register(): '注册时间': datetime.now().isoformat(), '最后登录': None, '登录次数': 0, - '用户状态': 'active' + '用户状态': 'active', + '等级': 0, + '经验': 0, + '萌芽币': 0, + '签到系统': { + '连续签到天数': 0, + '今日是否已签到': False, + '签到时间': '2025-01-01' + } } result = users_collection.insert_one(user_data) diff --git a/backend/modules/email_service.py b/InfoGenie-backend/modules/email_service.py old mode 100755 new mode 100644 similarity index 100% rename from backend/modules/email_service.py rename to InfoGenie-backend/modules/email_service.py diff --git a/InfoGenie-backend/modules/user_management.py b/InfoGenie-backend/modules/user_management.py new file mode 100644 index 00000000..97b70df6 --- /dev/null +++ b/InfoGenie-backend/modules/user_management.py @@ -0,0 +1,408 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" +用户管理模块 +Created by: 神奇万事通 +Date: 2025-09-02 +""" + +from flask import Blueprint, request, jsonify, session, current_app +from datetime import datetime +from bson import ObjectId +import jwt +from functools import wraps + +user_bp = Blueprint('user', __name__) + +def verify_token(token): + """验证JWT token""" + try: + payload = jwt.decode(token, current_app.config['SECRET_KEY'], algorithms=['HS256']) + return {'success': True, 'data': payload} + except jwt.ExpiredSignatureError: + return {'success': False, 'message': 'Token已过期'} + except jwt.InvalidTokenError: + return {'success': False, 'message': 'Token无效'} + +def login_required(f): + """登录验证装饰器(支持JWT token和session)""" + @wraps(f) + def decorated_function(*args, **kwargs): + # 优先检查JWT token + token = request.headers.get('Authorization') + if token: + if token.startswith('Bearer '): + token = token[7:] + + result = verify_token(token) + if result['success']: + request.current_user = result['data'] + return f(*args, **kwargs) + + # 回退到session验证 + if not session.get('logged_in'): + return jsonify({ + 'success': False, + 'message': '请先登录' + }), 401 + return f(*args, **kwargs) + return decorated_function + +@user_bp.route('/profile', methods=['GET']) +@login_required +def get_profile(): + """获取用户资料""" + try: + user_id = session.get('user_id') + users_collection = current_app.mongo.db.userdata + + user = users_collection.find_one({'_id': ObjectId(user_id)}) + + if not user: + return jsonify({ + 'success': False, + 'message': '用户不存在' + }), 404 + + # 返回用户信息(不包含密码) + profile = { + 'account': user['账号'], + 'register_time': user.get('注册时间'), + 'last_login': user.get('最后登录'), + 'login_count': user.get('登录次数', 0), + 'status': user.get('用户状态', 'active') + } + + return jsonify({ + 'success': True, + 'data': profile + }), 200 + + except Exception as e: + return jsonify({ + 'success': False, + 'message': f'服务器错误: {str(e)}' + }), 500 + +@user_bp.route('/change-password', methods=['POST']) +@login_required +def change_password(): + """修改密码""" + try: + data = request.get_json() + old_password = data.get('old_password', '').strip() + new_password = data.get('new_password', '').strip() + + if not old_password or not new_password: + return jsonify({ + 'success': False, + 'message': '旧密码和新密码不能为空' + }), 400 + + if len(new_password) < 6 or len(new_password) > 20: + return jsonify({ + 'success': False, + 'message': '新密码长度必须在6-20位之间' + }), 400 + + user_id = session.get('user_id') + users_collection = current_app.mongo.db.userdata + + user = users_collection.find_one({'_id': ObjectId(user_id)}) + + if not user: + return jsonify({ + 'success': False, + 'message': '用户不存在' + }), 404 + + from werkzeug.security import check_password_hash, generate_password_hash + + # 验证旧密码 + if not check_password_hash(user['密码'], old_password): + return jsonify({ + 'success': False, + 'message': '原密码错误' + }), 401 + + # 更新密码 + new_password_hash = generate_password_hash(new_password) + + result = users_collection.update_one( + {'_id': ObjectId(user_id)}, + {'$set': {'密码': new_password_hash}} + ) + + if result.modified_count > 0: + return jsonify({ + 'success': True, + 'message': '密码修改成功' + }), 200 + else: + return jsonify({ + 'success': False, + 'message': '密码修改失败' + }), 500 + + except Exception as e: + return jsonify({ + 'success': False, + 'message': f'服务器错误: {str(e)}' + }), 500 + +@user_bp.route('/stats', methods=['GET']) +@login_required +def get_user_stats(): + """获取用户统计信息""" + try: + user_id = session.get('user_id') + + # 这里可以添加更多统计信息,比如API调用次数等 + stats = { + 'login_today': 1, # 今日登录次数 + 'api_calls_today': 0, # 今日API调用次数 + 'total_api_calls': 0, # 总API调用次数 + 'join_days': 1, # 加入天数 + 'last_activity': datetime.now().isoformat() + } + + return jsonify({ + 'success': True, + 'data': stats + }), 200 + + except Exception as e: + return jsonify({ + 'success': False, + 'message': f'服务器错误: {str(e)}' + }), 500 + +@user_bp.route('/game-data', methods=['GET']) +@login_required +def get_user_game_data(): + """获取用户游戏数据""" + try: + # 优先从JWT token获取用户ID + if hasattr(request, 'current_user'): + user_id = request.current_user['user_id'] + else: + user_id = session.get('user_id') + + users_collection = current_app.mongo.db.userdata + + user = users_collection.find_one({'_id': ObjectId(user_id)}) + + if not user: + return jsonify({ + 'success': False, + 'message': '用户不存在' + }), 404 + + # 返回用户游戏数据 + game_data = { + 'level': user.get('等级', 0), + 'experience': user.get('经验', 0), + 'coins': user.get('萌芽币', 0), + 'checkin_system': user.get('签到系统', { + '连续签到天数': 0, + '今日是否已签到': False, + '签到时间': '2025-01-01' + }) + } + + return jsonify({ + 'success': True, + 'data': game_data + }), 200 + + except Exception as e: + return jsonify({ + 'success': False, + 'message': f'服务器错误: {str(e)}' + }), 500 + +@user_bp.route('/checkin', methods=['POST']) +@login_required +def daily_checkin(): + """每日签到""" + try: + # 优先从JWT token获取用户ID + if hasattr(request, 'current_user'): + user_id = request.current_user['user_id'] + else: + user_id = session.get('user_id') + + users_collection = current_app.mongo.db.userdata + + user = users_collection.find_one({'_id': ObjectId(user_id)}) + + if not user: + return jsonify({ + 'success': False, + 'message': '用户不存在' + }), 404 + + # 获取当前日期 + today = datetime.now().strftime('%Y-%m-%d') + + # 获取签到系统数据 + checkin_system = user.get('签到系统', { + '连续签到天数': 0, + '今日是否已签到': False, + '签到时间': '2025-01-01' + }) + + # 检查今日是否已签到 + if checkin_system.get('今日是否已签到', False) and checkin_system.get('签到时间') == today: + return jsonify({ + 'success': False, + 'message': '今日已签到,请明天再来!' + }), 400 + + # 计算连续签到天数 + last_checkin_date = checkin_system.get('签到时间', '2025-01-01') + consecutive_days = checkin_system.get('连续签到天数', 0) + + # 检查是否连续签到 + if last_checkin_date: + try: + last_date = datetime.strptime(last_checkin_date, '%Y-%m-%d') + today_date = datetime.strptime(today, '%Y-%m-%d') + days_diff = (today_date - last_date).days + + if days_diff == 1: + # 连续签到 + consecutive_days += 1 + elif days_diff > 1: + # 断签,重新开始 + consecutive_days = 1 + else: + # 同一天,不应该发生 + consecutive_days = consecutive_days + except: + consecutive_days = 1 + else: + consecutive_days = 1 + + # 签到奖励 + coin_reward = 300 + exp_reward = 200 + + # 获取当前用户数据 + current_coins = user.get('萌芽币', 0) + current_exp = user.get('经验', 0) + current_level = user.get('等级', 0) + + # 计算新的经验和等级 + new_exp = current_exp + exp_reward + new_level = current_level + + # 等级升级逻辑:100 × 1.2^(等级) + while True: + exp_needed = int(100 * (1.2 ** new_level)) + if new_exp >= exp_needed: + new_exp -= exp_needed + new_level += 1 + else: + break + + # 更新用户数据 + update_data = { + '萌芽币': current_coins + coin_reward, + '经验': new_exp, + '等级': new_level, + '签到系统': { + '连续签到天数': consecutive_days, + '今日是否已签到': True, + '签到时间': today + } + } + + result = users_collection.update_one( + {'_id': ObjectId(user_id)}, + {'$set': update_data} + ) + + if result.modified_count > 0: + level_up = new_level > current_level + return jsonify({ + 'success': True, + 'message': '签到成功!', + 'data': { + 'coin_reward': coin_reward, + 'exp_reward': exp_reward, + 'consecutive_days': consecutive_days, + 'level_up': level_up, + 'new_level': new_level, + 'new_coins': current_coins + coin_reward, + 'new_exp': new_exp + } + }), 200 + else: + return jsonify({ + 'success': False, + 'message': '签到失败,请稍后重试' + }), 500 + + except Exception as e: + return jsonify({ + 'success': False, + 'message': f'服务器错误: {str(e)}' + }), 500 + +@user_bp.route('/delete', methods=['POST']) +@login_required +def delete_account(): + """删除账户""" + try: + data = request.get_json() + password = data.get('password', '').strip() + + if not password: + return jsonify({ + 'success': False, + 'message': '请输入密码确认删除' + }), 400 + + user_id = session.get('user_id') + users_collection = current_app.mongo.db.userdata + + user = users_collection.find_one({'_id': ObjectId(user_id)}) + + if not user: + return jsonify({ + 'success': False, + 'message': '用户不存在' + }), 404 + + from werkzeug.security import check_password_hash + + # 验证密码 + if not check_password_hash(user['密码'], password): + return jsonify({ + 'success': False, + 'message': '密码错误' + }), 401 + + # 删除用户 + result = users_collection.delete_one({'_id': ObjectId(user_id)}) + + if result.deleted_count > 0: + # 清除会话 + session.clear() + + return jsonify({ + 'success': True, + 'message': '账户已成功删除' + }), 200 + else: + return jsonify({ + 'success': False, + 'message': '删除失败' + }), 500 + + except Exception as e: + return jsonify({ + 'success': False, + 'message': f'服务器错误: {str(e)}' + }), 500 diff --git a/backend/requirements.txt b/InfoGenie-backend/requirements.txt old mode 100755 new mode 100644 similarity index 100% rename from backend/requirements.txt rename to InfoGenie-backend/requirements.txt diff --git a/InfoGenie-backend/start_backend.bat b/InfoGenie-backend/start_backend.bat new file mode 100644 index 00000000..ec8b3e13 --- /dev/null +++ b/InfoGenie-backend/start_backend.bat @@ -0,0 +1,2 @@ +@echo off +python app.py \ No newline at end of file diff --git a/InfoGenie-backend/start_backend.sh b/InfoGenie-backend/start_backend.sh new file mode 100644 index 00000000..cd71ab28 --- /dev/null +++ b/InfoGenie-backend/start_backend.sh @@ -0,0 +1,2 @@ +#!/bin/bash +python3 app.py diff --git a/backend/test/email_test.py b/InfoGenie-backend/test/email_test.py old mode 100755 new mode 100644 similarity index 100% rename from backend/test/email_test.py rename to InfoGenie-backend/test/email_test.py diff --git a/backend/test/mongo_test.py b/InfoGenie-backend/test/mongo_test.py old mode 100755 new mode 100644 similarity index 100% rename from backend/test/mongo_test.py rename to InfoGenie-backend/test/mongo_test.py diff --git a/backend/test/test_email.py b/InfoGenie-backend/test/test_email.py old mode 100755 new mode 100644 similarity index 100% rename from backend/test/test_email.py rename to InfoGenie-backend/test/test_email.py diff --git a/backend/test/test_email_fix.py b/InfoGenie-backend/test/test_email_fix.py old mode 100755 new mode 100644 similarity index 100% rename from backend/test/test_email_fix.py rename to InfoGenie-backend/test/test_email_fix.py diff --git a/backend/test/test_mongo.py b/InfoGenie-backend/test/test_mongo.py old mode 100755 new mode 100644 similarity index 100% rename from backend/test/test_mongo.py rename to InfoGenie-backend/test/test_mongo.py diff --git a/InfoGenie-backend/后端架构文档.md b/InfoGenie-backend/后端架构文档.md new file mode 100644 index 00000000..e69de29b diff --git a/InfoGenie-backend/用户数据模板.json b/InfoGenie-backend/用户数据模板.json new file mode 100644 index 00000000..5b2f2d07 --- /dev/null +++ b/InfoGenie-backend/用户数据模板.json @@ -0,0 +1,13 @@ +{ + "账号":"3205788256", + "邮箱":"3205788256@qq.com", + "密码":"0123456789", + "等级":0, + "经验":0, + "萌芽币":0, + "签到系统":{ + "连续签到天数":0, + "今日是否已签到":false, + "签到时间":"2025-01-01" + } +} \ No newline at end of file diff --git a/frontend/.env.production b/InfoGenie-frontend/.env.development old mode 100755 new mode 100644 similarity index 100% rename from frontend/.env.production rename to InfoGenie-frontend/.env.development diff --git a/frontend/.env.local b/InfoGenie-frontend/.env.local similarity index 100% rename from frontend/.env.local rename to InfoGenie-frontend/.env.local diff --git a/InfoGenie-frontend/.env.production b/InfoGenie-frontend/.env.production new file mode 100644 index 00000000..0c9ca94e --- /dev/null +++ b/InfoGenie-frontend/.env.production @@ -0,0 +1 @@ +REACT_APP_API_URL=http://127.0.0.1:5002 \ No newline at end of file diff --git a/build_frontend.bat b/InfoGenie-frontend/build_frontend.bat old mode 100755 new mode 100644 similarity index 50% rename from build_frontend.bat rename to InfoGenie-frontend/build_frontend.bat index 66bfcc0c..20b19b16 --- a/build_frontend.bat +++ b/InfoGenie-frontend/build_frontend.bat @@ -1,6 +1,4 @@ @echo off -cd /d "e:\Python\InfoGenie\frontend\react-app" npm run build - npx serve -s build pause \ No newline at end of file diff --git a/frontend/env.backup b/InfoGenie-frontend/env.backup similarity index 100% rename from frontend/env.backup rename to InfoGenie-frontend/env.backup diff --git a/frontend/package-lock.json b/InfoGenie-frontend/package-lock.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/package-lock.json rename to InfoGenie-frontend/package-lock.json diff --git a/frontend/package.json b/InfoGenie-frontend/package.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/package.json rename to InfoGenie-frontend/package.json diff --git a/frontend/public/60sapi/娱乐消遣/随机JavaScript趣味题/css/background.css b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机JavaScript趣味题/css/background.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机JavaScript趣味题/css/background.css rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机JavaScript趣味题/css/background.css diff --git a/frontend/public/60sapi/娱乐消遣/随机JavaScript趣味题/css/style.css b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机JavaScript趣味题/css/style.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机JavaScript趣味题/css/style.css rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机JavaScript趣味题/css/style.css diff --git a/frontend/public/60sapi/娱乐消遣/随机JavaScript趣味题/index.html b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机JavaScript趣味题/index.html old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机JavaScript趣味题/index.html rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机JavaScript趣味题/index.html diff --git a/frontend/public/60sapi/娱乐消遣/随机JavaScript趣味题/js/script.js b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机JavaScript趣味题/js/script.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机JavaScript趣味题/js/script.js rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机JavaScript趣味题/js/script.js diff --git a/frontend/public/60sapi/娱乐消遣/随机JavaScript趣味题/接口集合.json b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机JavaScript趣味题/接口集合.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机JavaScript趣味题/接口集合.json rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机JavaScript趣味题/接口集合.json diff --git a/frontend/public/60sapi/娱乐消遣/随机JavaScript趣味题/返回接口.json b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机JavaScript趣味题/返回接口.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机JavaScript趣味题/返回接口.json rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机JavaScript趣味题/返回接口.json diff --git a/frontend/public/60sapi/娱乐消遣/随机KFC文案/css/background.css b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机KFC文案/css/background.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机KFC文案/css/background.css rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机KFC文案/css/background.css diff --git a/frontend/public/60sapi/娱乐消遣/随机KFC文案/css/style.css b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机KFC文案/css/style.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机KFC文案/css/style.css rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机KFC文案/css/style.css diff --git a/frontend/public/60sapi/娱乐消遣/随机KFC文案/index.html b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机KFC文案/index.html old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机KFC文案/index.html rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机KFC文案/index.html diff --git a/frontend/public/60sapi/娱乐消遣/随机KFC文案/js/main.js b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机KFC文案/js/main.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机KFC文案/js/main.js rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机KFC文案/js/main.js diff --git a/frontend/public/60sapi/娱乐消遣/随机KFC文案/接口集合.json b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机KFC文案/接口集合.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机KFC文案/接口集合.json rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机KFC文案/接口集合.json diff --git a/frontend/public/60sapi/娱乐消遣/随机KFC文案/返回接口.json b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机KFC文案/返回接口.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机KFC文案/返回接口.json rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机KFC文案/返回接口.json diff --git a/frontend/public/60sapi/娱乐消遣/随机一言/css/background.css b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机一言/css/background.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机一言/css/background.css rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机一言/css/background.css diff --git a/frontend/public/60sapi/娱乐消遣/随机一言/css/style.css b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机一言/css/style.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机一言/css/style.css rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机一言/css/style.css diff --git a/frontend/public/60sapi/娱乐消遣/随机一言/index.html b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机一言/index.html old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机一言/index.html rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机一言/index.html diff --git a/frontend/public/60sapi/娱乐消遣/随机一言/js/script.js b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机一言/js/script.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机一言/js/script.js rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机一言/js/script.js diff --git a/frontend/public/60sapi/娱乐消遣/随机一言/接口集合.json b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机一言/接口集合.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机一言/接口集合.json rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机一言/接口集合.json diff --git a/frontend/public/60sapi/娱乐消遣/随机一言/返回接口.json b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机一言/返回接口.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机一言/返回接口.json rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机一言/返回接口.json diff --git a/frontend/public/60sapi/娱乐消遣/随机冷笑话/css/Untitled-1.html b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机冷笑话/css/Untitled-1.html old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机冷笑话/css/Untitled-1.html rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机冷笑话/css/Untitled-1.html diff --git a/frontend/public/60sapi/娱乐消遣/随机冷笑话/css/background.css b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机冷笑话/css/background.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机冷笑话/css/background.css rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机冷笑话/css/background.css diff --git a/frontend/public/60sapi/娱乐消遣/随机冷笑话/css/style.css b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机冷笑话/css/style.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机冷笑话/css/style.css rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机冷笑话/css/style.css diff --git a/frontend/public/60sapi/娱乐消遣/随机冷笑话/index.html b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机冷笑话/index.html old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机冷笑话/index.html rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机冷笑话/index.html diff --git a/frontend/public/60sapi/娱乐消遣/随机冷笑话/js/script.js b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机冷笑话/js/script.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机冷笑话/js/script.js rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机冷笑话/js/script.js diff --git a/frontend/public/60sapi/娱乐消遣/随机冷笑话/接口集合.json b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机冷笑话/接口集合.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机冷笑话/接口集合.json rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机冷笑话/接口集合.json diff --git a/frontend/public/60sapi/娱乐消遣/随机冷笑话/返回接口.json b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机冷笑话/返回接口.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机冷笑话/返回接口.json rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机冷笑话/返回接口.json diff --git a/frontend/public/60sapi/娱乐消遣/随机发病文学/css/background.css b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机发病文学/css/background.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机发病文学/css/background.css rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机发病文学/css/background.css diff --git a/frontend/public/60sapi/娱乐消遣/随机发病文学/css/style.css b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机发病文学/css/style.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机发病文学/css/style.css rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机发病文学/css/style.css diff --git a/frontend/public/60sapi/娱乐消遣/随机发病文学/index.html b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机发病文学/index.html old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机发病文学/index.html rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机发病文学/index.html diff --git a/frontend/public/60sapi/娱乐消遣/随机发病文学/js/script.js b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机发病文学/js/script.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机发病文学/js/script.js rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机发病文学/js/script.js diff --git a/frontend/public/60sapi/娱乐消遣/随机发病文学/接口集合.json b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机发病文学/接口集合.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机发病文学/接口集合.json rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机发病文学/接口集合.json diff --git a/frontend/public/60sapi/娱乐消遣/随机发病文学/返回接口.json b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机发病文学/返回接口.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机发病文学/返回接口.json rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机发病文学/返回接口.json diff --git a/frontend/public/60sapi/娱乐消遣/随机唱歌音频/css/style.css b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机唱歌音频/css/style.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机唱歌音频/css/style.css rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机唱歌音频/css/style.css diff --git a/frontend/public/60sapi/娱乐消遣/随机唱歌音频/index.html b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机唱歌音频/index.html old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机唱歌音频/index.html rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机唱歌音频/index.html diff --git a/frontend/public/60sapi/娱乐消遣/随机唱歌音频/js/script.js b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机唱歌音频/js/script.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机唱歌音频/js/script.js rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机唱歌音频/js/script.js diff --git a/frontend/public/60sapi/娱乐消遣/随机唱歌音频/接口集合.json b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机唱歌音频/接口集合.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机唱歌音频/接口集合.json rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机唱歌音频/接口集合.json diff --git a/frontend/public/60sapi/娱乐消遣/随机唱歌音频/返回接口.json b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机唱歌音频/返回接口.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机唱歌音频/返回接口.json rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机唱歌音频/返回接口.json diff --git a/frontend/public/60sapi/娱乐消遣/随机搞笑段子/css/background.css b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机搞笑段子/css/background.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机搞笑段子/css/background.css rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机搞笑段子/css/background.css diff --git a/frontend/public/60sapi/娱乐消遣/随机搞笑段子/css/style.css b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机搞笑段子/css/style.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机搞笑段子/css/style.css rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机搞笑段子/css/style.css diff --git a/frontend/public/60sapi/娱乐消遣/随机搞笑段子/index.html b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机搞笑段子/index.html old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机搞笑段子/index.html rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机搞笑段子/index.html diff --git a/frontend/public/60sapi/娱乐消遣/随机搞笑段子/js/script.js b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机搞笑段子/js/script.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机搞笑段子/js/script.js rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机搞笑段子/js/script.js diff --git a/frontend/public/60sapi/娱乐消遣/随机搞笑段子/接口集合.json b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机搞笑段子/接口集合.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机搞笑段子/接口集合.json rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机搞笑段子/接口集合.json diff --git a/frontend/public/60sapi/娱乐消遣/随机搞笑段子/返回接口.json b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机搞笑段子/返回接口.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机搞笑段子/返回接口.json rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机搞笑段子/返回接口.json diff --git a/frontend/public/60sapi/娱乐消遣/随机运势/css/background.css b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机运势/css/background.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机运势/css/background.css rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机运势/css/background.css diff --git a/frontend/public/60sapi/娱乐消遣/随机运势/css/style.css b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机运势/css/style.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机运势/css/style.css rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机运势/css/style.css diff --git a/frontend/public/60sapi/娱乐消遣/随机运势/index.html b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机运势/index.html old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机运势/index.html rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机运势/index.html diff --git a/frontend/public/60sapi/娱乐消遣/随机运势/js/script.js b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机运势/js/script.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机运势/js/script.js rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机运势/js/script.js diff --git a/frontend/public/60sapi/娱乐消遣/随机运势/接口集合.json b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机运势/接口集合.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机运势/接口集合.json rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机运势/接口集合.json diff --git a/frontend/public/60sapi/娱乐消遣/随机运势/返回接口.json b/InfoGenie-frontend/public/60sapi/娱乐消遣/随机运势/返回接口.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/娱乐消遣/随机运势/返回接口.json rename to InfoGenie-frontend/public/60sapi/娱乐消遣/随机运势/返回接口.json diff --git a/frontend/public/60sapi/实用功能/EpicGames免费游戏/css/style.css b/InfoGenie-frontend/public/60sapi/实用功能/EpicGames免费游戏/css/style.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/EpicGames免费游戏/css/style.css rename to InfoGenie-frontend/public/60sapi/实用功能/EpicGames免费游戏/css/style.css diff --git a/frontend/public/60sapi/实用功能/EpicGames免费游戏/index.html b/InfoGenie-frontend/public/60sapi/实用功能/EpicGames免费游戏/index.html old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/EpicGames免费游戏/index.html rename to InfoGenie-frontend/public/60sapi/实用功能/EpicGames免费游戏/index.html diff --git a/frontend/public/60sapi/实用功能/EpicGames免费游戏/js/script.js b/InfoGenie-frontend/public/60sapi/实用功能/EpicGames免费游戏/js/script.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/EpicGames免费游戏/js/script.js rename to InfoGenie-frontend/public/60sapi/实用功能/EpicGames免费游戏/js/script.js diff --git a/frontend/public/60sapi/实用功能/EpicGames免费游戏/接口集合.json b/InfoGenie-frontend/public/60sapi/实用功能/EpicGames免费游戏/接口集合.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/EpicGames免费游戏/接口集合.json rename to InfoGenie-frontend/public/60sapi/实用功能/EpicGames免费游戏/接口集合.json diff --git a/frontend/public/60sapi/实用功能/EpicGames免费游戏/返回接口.json b/InfoGenie-frontend/public/60sapi/实用功能/EpicGames免费游戏/返回接口.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/EpicGames免费游戏/返回接口.json rename to InfoGenie-frontend/public/60sapi/实用功能/EpicGames免费游戏/返回接口.json diff --git a/frontend/public/60sapi/实用功能/公网IP地址/css/background.css b/InfoGenie-frontend/public/60sapi/实用功能/公网IP地址/css/background.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/公网IP地址/css/background.css rename to InfoGenie-frontend/public/60sapi/实用功能/公网IP地址/css/background.css diff --git a/frontend/public/60sapi/实用功能/公网IP地址/css/style.css b/InfoGenie-frontend/public/60sapi/实用功能/公网IP地址/css/style.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/公网IP地址/css/style.css rename to InfoGenie-frontend/public/60sapi/实用功能/公网IP地址/css/style.css diff --git a/frontend/public/60sapi/实用功能/公网IP地址/index.html b/InfoGenie-frontend/public/60sapi/实用功能/公网IP地址/index.html old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/公网IP地址/index.html rename to InfoGenie-frontend/public/60sapi/实用功能/公网IP地址/index.html diff --git a/frontend/public/60sapi/实用功能/公网IP地址/js/script.js b/InfoGenie-frontend/public/60sapi/实用功能/公网IP地址/js/script.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/公网IP地址/js/script.js rename to InfoGenie-frontend/public/60sapi/实用功能/公网IP地址/js/script.js diff --git a/frontend/public/60sapi/实用功能/公网IP地址/接口集合.json b/InfoGenie-frontend/public/60sapi/实用功能/公网IP地址/接口集合.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/公网IP地址/接口集合.json rename to InfoGenie-frontend/public/60sapi/实用功能/公网IP地址/接口集合.json diff --git a/frontend/public/60sapi/实用功能/公网IP地址/返回接口.json b/InfoGenie-frontend/public/60sapi/实用功能/公网IP地址/返回接口.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/公网IP地址/返回接口.json rename to InfoGenie-frontend/public/60sapi/实用功能/公网IP地址/返回接口.json diff --git a/frontend/public/60sapi/实用功能/农历信息/css/background.css b/InfoGenie-frontend/public/60sapi/实用功能/农历信息/css/background.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/农历信息/css/background.css rename to InfoGenie-frontend/public/60sapi/实用功能/农历信息/css/background.css diff --git a/frontend/public/60sapi/实用功能/农历信息/css/style.css b/InfoGenie-frontend/public/60sapi/实用功能/农历信息/css/style.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/农历信息/css/style.css rename to InfoGenie-frontend/public/60sapi/实用功能/农历信息/css/style.css diff --git a/frontend/public/60sapi/实用功能/农历信息/index.html b/InfoGenie-frontend/public/60sapi/实用功能/农历信息/index.html old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/农历信息/index.html rename to InfoGenie-frontend/public/60sapi/实用功能/农历信息/index.html diff --git a/frontend/public/60sapi/实用功能/农历信息/js/script.js b/InfoGenie-frontend/public/60sapi/实用功能/农历信息/js/script.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/农历信息/js/script.js rename to InfoGenie-frontend/public/60sapi/实用功能/农历信息/js/script.js diff --git a/frontend/public/60sapi/实用功能/农历信息/接口集合.json b/InfoGenie-frontend/public/60sapi/实用功能/农历信息/接口集合.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/农历信息/接口集合.json rename to InfoGenie-frontend/public/60sapi/实用功能/农历信息/接口集合.json diff --git a/frontend/public/60sapi/实用功能/农历信息/返回接口.json b/InfoGenie-frontend/public/60sapi/实用功能/农历信息/返回接口.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/农历信息/返回接口.json rename to InfoGenie-frontend/public/60sapi/实用功能/农历信息/返回接口.json diff --git a/frontend/public/60sapi/实用功能/哈希解压压缩/css/style.css b/InfoGenie-frontend/public/60sapi/实用功能/哈希解压压缩/css/style.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/哈希解压压缩/css/style.css rename to InfoGenie-frontend/public/60sapi/实用功能/哈希解压压缩/css/style.css diff --git a/frontend/public/60sapi/实用功能/哈希解压压缩/index.html b/InfoGenie-frontend/public/60sapi/实用功能/哈希解压压缩/index.html old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/哈希解压压缩/index.html rename to InfoGenie-frontend/public/60sapi/实用功能/哈希解压压缩/index.html diff --git a/frontend/public/60sapi/实用功能/哈希解压压缩/js/script.js b/InfoGenie-frontend/public/60sapi/实用功能/哈希解压压缩/js/script.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/哈希解压压缩/js/script.js rename to InfoGenie-frontend/public/60sapi/实用功能/哈希解压压缩/js/script.js diff --git a/frontend/public/60sapi/实用功能/哈希解压压缩/接口集合.json b/InfoGenie-frontend/public/60sapi/实用功能/哈希解压压缩/接口集合.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/哈希解压压缩/接口集合.json rename to InfoGenie-frontend/public/60sapi/实用功能/哈希解压压缩/接口集合.json diff --git a/frontend/public/60sapi/实用功能/哈希解压压缩/返回接口.json b/InfoGenie-frontend/public/60sapi/实用功能/哈希解压压缩/返回接口.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/哈希解压压缩/返回接口.json rename to InfoGenie-frontend/public/60sapi/实用功能/哈希解压压缩/返回接口.json diff --git a/InfoGenie-frontend/public/60sapi/实用功能/在线翻译/background.css b/InfoGenie-frontend/public/60sapi/实用功能/在线翻译/background.css new file mode 100644 index 00000000..8cadc9c7 --- /dev/null +++ b/InfoGenie-frontend/public/60sapi/实用功能/在线翻译/background.css @@ -0,0 +1,137 @@ +/* 背景样式文件 */ + +/* 页面主背景 */ +body { + background: linear-gradient(135deg, #e8f5e8 0%, #f0fdf4 25%, #dcfce7 50%, #f0fdf4 75%, #e8f5e8 100%); + background-size: 400% 400%; + animation: gradientShift 15s ease infinite; + background-attachment: fixed; +} + +/* 背景动画 */ +@keyframes gradientShift { + 0% { + background-position: 0% 50%; + } + 50% { + background-position: 100% 50%; + } + 100% { + background-position: 0% 50%; + } +} + +/* 容器背景 */ +.container { + background: rgba(255, 255, 255, 0.1); + backdrop-filter: blur(10px); + border-radius: 20px; + border: 1px solid rgba(255, 255, 255, 0.2); +} + +/* 翻译框背景 */ +.translate-box { + background: rgba(255, 255, 255, 0.95); + backdrop-filter: blur(20px); + border: 1px solid rgba(116, 198, 157, 0.3); +} + +/* 输入框背景 */ +#input-text { + background: rgba(255, 255, 255, 0.9); +} + +#input-text:focus { + background: rgba(255, 255, 255, 1); +} + +/* 输出框背景 */ +.output-text { + background: #f8fffe; +} + +/* 按钮背景 */ +.translate-btn { + background: linear-gradient(135deg, #74c69d, #52b788); +} + +.translate-btn:hover { + background: linear-gradient(135deg, #52b788, #40916c); +} + +.translate-btn:disabled { + background: #b7e4c7; +} + +.swap-btn { + background: #74c69d; +} + +.swap-btn:hover { + background: #52b788; +} + +/* 语言选择器背景 */ +.lang-select { + background: white; +} + +.lang-select:focus { + background: rgba(255, 255, 255, 1); +} + +/* 发音信息背景 */ +.pronounce-item { + background: rgba(116, 198, 157, 0.1); +} + +/* 清除和复制按钮背景 */ +.clear-btn:hover, +.copy-btn:hover { + background: rgba(116, 198, 157, 0.1); +} + +/* 提示消息背景 */ +.toast { + background: #52b788; +} + +.toast.error { + background: #e74c3c; +} + +/* 响应式背景调整 */ +@media (max-width: 767px) { + body { + background-size: 200% 200%; + animation-duration: 10s; + } + + .container { + background: rgba(255, 255, 255, 0.05); + backdrop-filter: blur(5px); + } + + .translate-box { + background: rgba(255, 255, 255, 0.98); + backdrop-filter: blur(15px); + } +} + +@media (max-width: 480px) { + body { + background-size: 150% 150%; + animation-duration: 8s; + } + + .container { + background: transparent; + backdrop-filter: none; + border: none; + } + + .translate-box { + background: rgba(255, 255, 255, 0.99); + backdrop-filter: blur(10px); + } +} \ No newline at end of file diff --git a/InfoGenie-frontend/public/60sapi/实用功能/在线翻译/index.html b/InfoGenie-frontend/public/60sapi/实用功能/在线翻译/index.html new file mode 100644 index 00000000..d32953c9 --- /dev/null +++ b/InfoGenie-frontend/public/60sapi/实用功能/在线翻译/index.html @@ -0,0 +1,99 @@ + + + + + + 在线翻译 - 支持109种语言 + + + + +

+
+

在线机器翻译

+

支持109种语言互译

+
+ +
+
+
+
+ + +
+ + + +
+ + +
+
+ +
+
+
+ + +
+ +
+ 0/5000 +
+
+ +
+
+ + +
+
翻译结果将显示在这里...
+
+
+
+
+
+
+ +
+ +
+
+
+ +
+

数据来源于有道翻译,与其网页端同步

+
+
+ +
+ + + + \ No newline at end of file diff --git a/InfoGenie-frontend/public/60sapi/实用功能/在线翻译/script.js b/InfoGenie-frontend/public/60sapi/实用功能/在线翻译/script.js new file mode 100644 index 00000000..c0a5f087 --- /dev/null +++ b/InfoGenie-frontend/public/60sapi/实用功能/在线翻译/script.js @@ -0,0 +1,452 @@ +// 全局变量 +let supportedLanguages = {}; +let isTranslating = false; + +// DOM元素 +const elements = { + fromLang: null, + toLang: null, + inputText: null, + outputText: null, + translateBtn: null, + swapBtn: null, + clearBtn: null, + copyBtn: null, + charCount: null, + detectedLang: null, + targetLang: null, + pronounceSection: null +}; + +// 初始化 +document.addEventListener('DOMContentLoaded', function() { + initializeElements(); + loadSupportedLanguages(); + bindEvents(); + updateCharCount(); +}); + +// 初始化DOM元素 +function initializeElements() { + elements.fromLang = document.getElementById('from-lang'); + elements.toLang = document.getElementById('to-lang'); + elements.inputText = document.getElementById('input-text'); + elements.outputText = document.getElementById('output-text'); + elements.translateBtn = document.getElementById('translate-btn'); + elements.swapBtn = document.getElementById('swap-btn'); + elements.clearBtn = document.getElementById('clear-btn'); + elements.copyBtn = document.getElementById('copy-btn'); + elements.charCount = document.getElementById('char-count'); + elements.detectedLang = document.getElementById('detected-lang'); + elements.targetLang = document.getElementById('target-lang'); + elements.pronounceSection = document.getElementById('pronounce-section'); +} + +// 加载支持的语言列表 +async function loadSupportedLanguages() { + try { + const response = await fetch('https://60s.viki.moe/v2/fanyi/langs'); + const data = await response.json(); + + if (data.code === 200 && data.data && Array.isArray(data.data)) { + // 转换数组格式为对象格式 + supportedLanguages = {}; + supportedLanguages['auto'] = '自动检测'; + data.data.forEach(lang => { + supportedLanguages[lang.code] = lang.label; + }); + populateLanguageSelectors(); + } else { + throw new Error('获取语言列表失败'); + } + } catch (error) { + console.error('加载语言列表失败:', error); + showToast('加载语言列表失败,请刷新页面重试', 'error'); + // 使用默认语言列表 + useDefaultLanguages(); + } +} + +// 使用默认语言列表(备用方案) +function useDefaultLanguages() { + supportedLanguages = { + 'auto': '自动检测', + 'zh-CHS': '中文', + 'en': '英语', + 'ja': '日语', + 'ko': '韩语', + 'fr': '法语', + 'de': '德语', + 'es': '西班牙语', + 'ru': '俄语', + 'th': '泰语', + 'ar': '阿拉伯语', + 'pt': '葡萄牙语', + 'it': '意大利语' + }; + populateLanguageSelectors(); +} + +// 填充语言选择器 +function populateLanguageSelectors() { + const fromSelect = elements.fromLang; + const toSelect = elements.toLang; + + // 清空现有选项 + fromSelect.innerHTML = ''; + toSelect.innerHTML = ''; + + // 添加语言选项 + Object.entries(supportedLanguages).forEach(([code, name]) => { + const fromOption = new Option(name, code); + const toOption = new Option(name, code); + + fromSelect.appendChild(fromOption); + toSelect.appendChild(toOption); + }); + + // 设置默认值 + fromSelect.value = 'auto'; + toSelect.value = 'en'; + + // 如果没有auto选项,则设置为中文 + if (!supportedLanguages['auto']) { + fromSelect.value = 'zh-CHS'; + } +} + +// 绑定事件 +function bindEvents() { + // 输入框事件 + elements.inputText.addEventListener('input', function() { + updateCharCount(); + clearOutput(); + }); + + elements.inputText.addEventListener('keydown', function(e) { + if (e.ctrlKey && e.key === 'Enter') { + translateText(); + } + }); + + // 按钮事件 + elements.translateBtn.addEventListener('click', translateText); + elements.swapBtn.addEventListener('click', swapLanguages); + elements.clearBtn.addEventListener('click', clearInput); + elements.copyBtn.addEventListener('click', copyOutput); + + // 语言选择器事件 + elements.fromLang.addEventListener('change', function() { + clearOutput(); + updateLanguageLabels(); + }); + + elements.toLang.addEventListener('change', function() { + clearOutput(); + updateLanguageLabels(); + }); +} + +// 更新字符计数 +function updateCharCount() { + const text = elements.inputText.value; + const count = text.length; + elements.charCount.textContent = `${count}/5000`; + + if (count > 5000) { + elements.charCount.style.color = '#e74c3c'; + } else { + elements.charCount.style.color = '#74c69d'; + } +} + +// 更新语言标签 +function updateLanguageLabels() { + const fromLang = elements.fromLang.value; + const toLang = elements.toLang.value; + + elements.detectedLang.textContent = supportedLanguages[fromLang] || '未知语言'; + elements.targetLang.textContent = supportedLanguages[toLang] || '未知语言'; +} + +// 翻译文本 +async function translateText() { + const text = elements.inputText.value.trim(); + + if (!text) { + showToast('请输入要翻译的文本', 'error'); + return; + } + + if (text.length > 5000) { + showToast('文本长度不能超过5000字符', 'error'); + return; + } + + if (isTranslating) { + return; + } + + setTranslating(true); + + try { + const fromLang = elements.fromLang.value; + const toLang = elements.toLang.value; + + // 构建请求URL + const params = new URLSearchParams({ + text: text, + from: fromLang, + to: toLang + }); + + const response = await fetch(`https://60s.viki.moe/v2/fanyi?${params}`); + const data = await response.json(); + + if (data.code === 200 && data.data) { + displayTranslationResult(data.data); + } else { + throw new Error(data.msg || '翻译失败'); + } + } catch (error) { + console.error('翻译失败:', error); + showToast('翻译失败: ' + error.message, 'error'); + elements.outputText.textContent = '翻译失败,请重试'; + } finally { + setTranslating(false); + } +} + +// 显示翻译结果 +function displayTranslationResult(data) { + // 显示翻译结果 + const translation = data.target ? data.target.text : ''; + elements.outputText.textContent = translation; + + // 更新检测到的语言 + if (data.source && data.source.type_desc) { + elements.detectedLang.textContent = `检测: ${data.source.type_desc}`; + } + + // 显示发音信息 + displayPronunciation(data); + + // 如果翻译结果为空 + if (!translation) { + elements.outputText.textContent = '未获取到翻译结果'; + } +} + +// 显示发音信息 +function displayPronunciation(data) { + const pronounceSection = elements.pronounceSection; + if (!pronounceSection) { + return; + } + pronounceSection.innerHTML = ''; + + // 原文发音 + if (data.source && data.source.pronounce) { + const sourcePhoneticDiv = document.createElement('div'); + sourcePhoneticDiv.className = 'pronounce-item show'; + sourcePhoneticDiv.textContent = `原文发音: [${data.source.pronounce}]`; + pronounceSection.appendChild(sourcePhoneticDiv); + } + + // 译文发音 + if (data.target && data.target.pronounce) { + const targetPhoneticDiv = document.createElement('div'); + targetPhoneticDiv.className = 'pronounce-item show'; + targetPhoneticDiv.textContent = `译文发音: [${data.target.pronounce}]`; + pronounceSection.appendChild(targetPhoneticDiv); + } +} + +// 设置翻译状态 +function setTranslating(translating) { + isTranslating = translating; + elements.translateBtn.disabled = translating; + + if (translating) { + elements.translateBtn.classList.add('loading'); + } else { + elements.translateBtn.classList.remove('loading'); + } +} + +// 交换语言 +function swapLanguages() { + const fromValue = elements.fromLang.value; + const toValue = elements.toLang.value; + + // 不能交换自动检测 + if (fromValue === 'auto') { + showToast('自动检测语言无法交换', 'error'); + return; + } + + elements.fromLang.value = toValue; + elements.toLang.value = fromValue; + + // 交换文本内容 + const inputText = elements.inputText.value; + const outputText = elements.outputText.textContent; + + if (outputText && outputText !== '翻译结果将在这里显示...' && outputText !== '翻译失败,请重试' && outputText !== '未获取到翻译结果') { + elements.inputText.value = outputText; + elements.outputText.textContent = inputText; + } + + updateCharCount(); + updateLanguageLabels(); + clearPronunciation(); +} + +// 清空输入 +function clearInput() { + elements.inputText.value = ''; + updateCharCount(); + clearOutput(); +} + +// 清空输出 +function clearOutput() { + elements.outputText.textContent = '翻译结果将在这里显示...'; + clearPronunciation(); +} + +// 清空发音信息 +function clearPronunciation() { + if (elements.pronounceSection) { + elements.pronounceSection.innerHTML = ''; + } +} + +// 复制输出 +function copyOutput() { + const text = elements.outputText.textContent; + + if (!text || text === '翻译结果将在这里显示...' || text === '翻译失败,请重试' || text === '未获取到翻译结果') { + showToast('没有可复制的内容', 'error'); + return; + } + + // 使用现代API复制 + if (navigator.clipboard) { + navigator.clipboard.writeText(text).then(() => { + showToast('已复制到剪贴板'); + }).catch(() => { + fallbackCopy(text); + }); + } else { + fallbackCopy(text); + } +} + +// 备用复制方法 +function fallbackCopy(text) { + const textArea = document.createElement('textarea'); + textArea.value = text; + textArea.style.position = 'fixed'; + textArea.style.opacity = '0'; + document.body.appendChild(textArea); + textArea.select(); + + try { + document.execCommand('copy'); + showToast('已复制到剪贴板'); + } catch (err) { + showToast('复制失败,请手动复制', 'error'); + } + + document.body.removeChild(textArea); +} + +// 显示提示消息 +function showToast(message, type = 'success') { + // 移除现有的toast + const existingToast = document.querySelector('.toast'); + if (existingToast) { + existingToast.remove(); + } + + const toast = document.createElement('div'); + toast.className = `toast ${type}`; + toast.textContent = message; + + document.body.appendChild(toast); + + // 显示toast + setTimeout(() => { + toast.classList.add('show'); + }, 100); + + // 自动隐藏 + setTimeout(() => { + toast.classList.remove('show'); + setTimeout(() => { + if (toast.parentNode) { + toast.parentNode.removeChild(toast); + } + }, 300); + }, 3000); +} + +// 工具函数:防抖 +function debounce(func, wait) { + let timeout; + return function executedFunction(...args) { + const later = () => { + clearTimeout(timeout); + func(...args); + }; + clearTimeout(timeout); + timeout = setTimeout(later, wait); + }; +} + +// 添加键盘快捷键支持 +document.addEventListener('keydown', function(e) { + // Ctrl+Enter 翻译 + if (e.ctrlKey && e.key === 'Enter') { + e.preventDefault(); + translateText(); + } + + // Ctrl+Shift+C 复制结果 + if (e.ctrlKey && e.shiftKey && e.key === 'C') { + e.preventDefault(); + copyOutput(); + } + + // Ctrl+Shift+X 清空输入 + if (e.ctrlKey && e.shiftKey && e.key === 'X') { + e.preventDefault(); + clearInput(); + } + + // Ctrl+Shift+S 交换语言 + if (e.ctrlKey && e.shiftKey && e.key === 'S') { + e.preventDefault(); + swapLanguages(); + } +}); + +// 页面可见性变化时的处理 +document.addEventListener('visibilitychange', function() { + if (document.hidden) { + // 页面隐藏时暂停翻译请求 + if (isTranslating) { + setTranslating(false); + } + } +}); + +// 错误处理 +window.addEventListener('error', function(e) { + console.error('页面错误:', e.error); +}); + +window.addEventListener('unhandledrejection', function(e) { + console.error('未处理的Promise拒绝:', e.reason); +}); \ No newline at end of file diff --git a/InfoGenie-frontend/public/60sapi/实用功能/在线翻译/styles.css b/InfoGenie-frontend/public/60sapi/实用功能/在线翻译/styles.css new file mode 100644 index 00000000..099b81a9 --- /dev/null +++ b/InfoGenie-frontend/public/60sapi/实用功能/在线翻译/styles.css @@ -0,0 +1,441 @@ +/* 基础样式重置 */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif; + line-height: 1.6; + color: #2d5a3d; + min-height: 100vh; +} + +.container { + max-width: 1200px; + margin: 0 auto; + padding: 20px; + min-height: 100vh; + display: flex; + flex-direction: column; +} + +/* 头部样式 */ +.header { + text-align: center; + margin-bottom: 30px; +} + +.header h1 { + font-size: 2.5rem; + color: #1a4d2e; + margin-bottom: 10px; + font-weight: 700; +} + +.subtitle { + font-size: 1.1rem; + color: #4a7c59; + opacity: 0.9; +} + +/* 主要内容区域 */ +.main-content { + flex: 1; + display: flex; + justify-content: center; + align-items: flex-start; +} + +.translate-box { + width: 100%; + max-width: 900px; + border-radius: 20px; + padding: 30px; + box-shadow: 0 10px 30px rgba(26, 77, 46, 0.1); +} + +/* 语言选择器 */ +.language-selector { + display: flex; + align-items: center; + gap: 20px; + margin-bottom: 25px; + justify-content: center; +} + +.lang-group { + display: flex; + flex-direction: column; + gap: 8px; + flex: 1; + max-width: 200px; +} + +.lang-group label { + font-size: 0.9rem; + color: #2d5a3d; + font-weight: 500; +} + +.lang-select { + padding: 12px 16px; + border: 2px solid #74c69d; + border-radius: 12px; + color: #2d5a3d; + font-size: 1rem; + cursor: pointer; + transition: all 0.3s ease; +} + +.lang-select:focus { + outline: none; + border-color: #52b788; + box-shadow: 0 0 0 3px rgba(116, 198, 157, 0.2); +} + +.lang-select:hover { + border-color: #52b788; +} + +.swap-btn { + border: none; + border-radius: 50%; + width: 45px; + height: 45px; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + transition: all 0.3s ease; + color: white; + margin-top: 25px; +} + +.swap-btn:hover { + transform: rotate(180deg); +} + +/* 文本区域 */ +.text-areas { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 20px; + margin-bottom: 25px; +} + +.input-section, +.output-section { + display: flex; + flex-direction: column; +} + +.textarea-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 10px; + padding: 0 5px; +} + +.detected-lang, +.target-lang { + font-size: 0.9rem; + color: #4a7c59; + font-weight: 500; +} + +.clear-btn, +.copy-btn { + background: none; + border: none; + color: #74c69d; + cursor: pointer; + padding: 5px; + border-radius: 6px; + transition: all 0.3s ease; +} + +.clear-btn:hover, +.copy-btn:hover { + color: #52b788; +} + +#input-text { + width: 100%; + height: 200px; + padding: 16px; + border: 2px solid #74c69d; + border-radius: 12px; + font-size: 1rem; + color: #2d5a3d; + resize: vertical; + transition: all 0.3s ease; + font-family: inherit; +} + +#input-text:focus { + outline: none; + border-color: #52b788; + box-shadow: 0 0 0 3px rgba(116, 198, 157, 0.2); +} + +#input-text::placeholder { + color: #74c69d; + opacity: 0.7; +} + +.output-text { + width: 100%; + height: 200px; + padding: 16px; + border: 2px solid #b7e4c7; + border-radius: 12px; + font-size: 1rem; + color: #2d5a3d; + overflow-y: auto; + line-height: 1.6; +} + +.char-count { + text-align: right; + font-size: 0.8rem; + color: #74c69d; + margin-top: 5px; +} + +.pronounce-section { + margin-top: 10px; + display: flex; + flex-direction: column; + gap: 5px; +} + +.pronounce-item { + font-size: 0.9rem; + color: #4a7c59; + font-style: italic; + padding: 5px 10px; + border-radius: 8px; + display: none; +} + +.pronounce-item.show { + display: block; +} + +/* 操作按钮 */ +.action-buttons { + display: flex; + justify-content: center; +} + +.translate-btn { + color: white; + border: none; + padding: 15px 40px; + border-radius: 25px; + font-size: 1.1rem; + font-weight: 600; + cursor: pointer; + transition: all 0.3s ease; + position: relative; + overflow: hidden; + min-width: 120px; + display: flex; + align-items: center; + justify-content: center; + gap: 10px; +} + +.translate-btn:hover { + transform: translateY(-2px); + box-shadow: 0 8px 20px rgba(116, 198, 157, 0.3); +} + +.translate-btn:active { + transform: translateY(0); +} + +.translate-btn:disabled { + cursor: not-allowed; + transform: none; + box-shadow: none; +} + +.loading-spinner { + width: 20px; + height: 20px; + border: 2px solid rgba(255, 255, 255, 0.3); + border-top: 2px solid white; + border-radius: 50%; + animation: spin 1s linear infinite; + display: none; +} + +.translate-btn.loading .btn-text { + display: none; +} + +.translate-btn.loading .loading-spinner { + display: block; +} + +@keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} + +/* 页脚 */ +.footer { + text-align: center; + margin-top: 30px; + padding: 20px; + color: #4a7c59; + font-size: 0.9rem; + opacity: 0.8; +} + +/* 提示消息 */ +.toast { + position: fixed; + top: 20px; + right: 20px; + color: white; + padding: 12px 20px; + border-radius: 8px; + font-size: 0.9rem; + transform: translateX(100%); + transition: transform 0.3s ease; + z-index: 1000; + box-shadow: 0 4px 12px rgba(82, 183, 136, 0.3); +} + +.toast.show { + transform: translateX(0); +} + +.toast.error { + box-shadow: 0 4px 12px rgba(231, 76, 60, 0.3); +} + +/* 平板适配 (768px - 1024px) */ +@media (max-width: 1024px) and (min-width: 768px) { + .container { + padding: 15px; + } + + .header h1 { + font-size: 2.2rem; + } + + .translate-box { + padding: 25px; + } + + .language-selector { + gap: 15px; + } + + .text-areas { + gap: 15px; + } + + #input-text, + .output-text { + height: 180px; + } +} + +/* 手机端适配 (最大768px) */ +@media (max-width: 767px) { + .container { + padding: 10px; + } + + .header h1 { + font-size: 1.8rem; + } + + .subtitle { + font-size: 1rem; + } + + .translate-box { + padding: 20px 15px; + border-radius: 15px; + } + + .language-selector { + flex-direction: column; + gap: 15px; + align-items: stretch; + } + + .lang-group { + max-width: none; + } + + .swap-btn { + align-self: center; + margin-top: 0; + order: 2; + } + + .text-areas { + grid-template-columns: 1fr; + gap: 20px; + } + + #input-text, + .output-text { + height: 150px; + font-size: 0.95rem; + } + + .translate-btn { + padding: 12px 30px; + font-size: 1rem; + width: 100%; + max-width: 200px; + } + + .toast { + right: 10px; + left: 10px; + transform: translateY(-100%); + } + + .toast.show { + transform: translateY(0); + } +} + +/* 超小屏幕适配 (最大480px) */ +@media (max-width: 480px) { + .header h1 { + font-size: 1.6rem; + } + + .translate-box { + padding: 15px 10px; + } + + .lang-select { + padding: 10px 12px; + font-size: 0.9rem; + } + + #input-text, + .output-text { + height: 120px; + padding: 12px; + font-size: 0.9rem; + } + + .translate-btn { + padding: 10px 25px; + font-size: 0.95rem; + } +} \ No newline at end of file diff --git a/InfoGenie-frontend/public/60sapi/实用功能/在线翻译/在线翻译支持语言列表接口.json b/InfoGenie-frontend/public/60sapi/实用功能/在线翻译/在线翻译支持语言列表接口.json new file mode 100644 index 00000000..5f4f0f2b --- /dev/null +++ b/InfoGenie-frontend/public/60sapi/实用功能/在线翻译/在线翻译支持语言列表接口.json @@ -0,0 +1,551 @@ +{ + "code": 200, + "message": "获取成功。数据来自官方/权威源头,以确保稳定与实时。开源地址 https://github.com/vikiboss/60s,反馈群 595941841", + "data": [ + { + "code": "sq", + "label": "阿尔巴尼亚语", + "alphabet": "A" + }, + { + "code": "ga", + "label": "爱尔兰语", + "alphabet": "A" + }, + { + "code": "et", + "label": "爱沙尼亚语", + "alphabet": "A" + }, + { + "code": "ar", + "label": "阿拉伯语", + "alphabet": "A" + }, + { + "code": "am", + "label": "阿姆哈拉语", + "alphabet": "A" + }, + { + "code": "az", + "label": "阿塞拜疆语", + "alphabet": "A" + }, + { + "code": "be", + "label": "白俄罗斯语", + "alphabet": "B" + }, + { + "code": "bg", + "label": "保加利亚语", + "alphabet": "B" + }, + { + "code": "eu", + "label": "巴斯克语", + "alphabet": "B" + }, + { + "code": "is", + "label": "冰岛语", + "alphabet": "B" + }, + { + "code": "pl", + "label": "波兰语", + "alphabet": "B" + }, + { + "code": "bs-Latn", + "label": "波斯尼亚语(拉丁语)", + "alphabet": "B" + }, + { + "code": "fa", + "label": "波斯语", + "alphabet": "B" + }, + { + "code": "da", + "label": "丹麦语", + "alphabet": "D" + }, + { + "code": "de", + "label": "德语", + "alphabet": "D" + }, + { + "code": "ru", + "label": "俄语", + "alphabet": "E" + }, + { + "code": "fr", + "label": "法语", + "alphabet": "F" + }, + { + "code": "tl", + "label": "菲律宾语", + "alphabet": "F" + }, + { + "code": "fi", + "label": "芬兰语", + "alphabet": "F" + }, + { + "code": "fy", + "label": "弗里斯兰语", + "alphabet": "F" + }, + { + "code": "km", + "label": "高棉语", + "alphabet": "G" + }, + { + "code": "ka", + "label": "格鲁吉亚语", + "alphabet": "G" + }, + { + "code": "gu", + "label": "古吉拉特语", + "alphabet": "G" + }, + { + "code": "ko", + "label": "韩语", + "alphabet": "H" + }, + { + "code": "ht", + "label": "海地语", + "alphabet": "H" + }, + { + "code": "ha", + "label": "豪萨语", + "alphabet": "H" + }, + { + "code": "kk", + "label": "哈萨克语", + "alphabet": "H" + }, + { + "code": "nl", + "label": "荷兰语", + "alphabet": "H" + }, + { + "code": "gl", + "label": "加利西亚语", + "alphabet": "J" + }, + { + "code": "ca", + "label": "加泰罗尼亚语", + "alphabet": "J" + }, + { + "code": "cs", + "label": "捷克语", + "alphabet": "J" + }, + { + "code": "ky", + "label": "吉尔吉斯斯坦语", + "alphabet": "J" + }, + { + "code": "kn", + "label": "卡纳达语", + "alphabet": "K" + }, + { + "code": "tlh", + "label": "克林贡语", + "alphabet": "K" + }, + { + "code": "hr", + "label": "克罗地亚语", + "alphabet": "K" + }, + { + "code": "otq", + "label": "克洛塔罗乙巳语", + "alphabet": "K" + }, + { + "code": "co", + "label": "科西嘉语", + "alphabet": "K" + }, + { + "code": "ku", + "label": "库尔德语", + "alphabet": "K" + }, + { + "code": "la", + "label": "拉丁语", + "alphabet": "L" + }, + { + "code": "lo", + "label": "老挝语", + "alphabet": "L" + }, + { + "code": "lv", + "label": "拉脱维亚语", + "alphabet": "L" + }, + { + "code": "lt", + "label": "立陶宛语", + "alphabet": "L" + }, + { + "code": "ro", + "label": "罗马尼亚语", + "alphabet": "L" + }, + { + "code": "lb", + "label": "卢森堡语", + "alphabet": "L" + }, + { + "code": "mg", + "label": "马尔加什语", + "alphabet": "M" + }, + { + "code": "mt", + "label": "马耳他语", + "alphabet": "M" + }, + { + "code": "mr", + "label": "马拉地语", + "alphabet": "M" + }, + { + "code": "ms", + "label": "马来语", + "alphabet": "M" + }, + { + "code": "ml", + "label": "马拉雅拉姆语", + "alphabet": "M" + }, + { + "code": "mi", + "label": "毛利语", + "alphabet": "M" + }, + { + "code": "mk", + "label": "马其顿语", + "alphabet": "M" + }, + { + "code": "mn", + "label": "蒙古语", + "alphabet": "M" + }, + { + "code": "bn", + "label": "孟加拉语", + "alphabet": "M" + }, + { + "code": "my", + "label": "缅甸语", + "alphabet": "M" + }, + { + "code": "mww", + "label": "苗族昂山土语", + "alphabet": "M" + }, + { + "code": "hmn", + "label": "苗族语", + "alphabet": "M" + }, + { + "code": "xh", + "label": "南非科萨语", + "alphabet": "N" + }, + { + "code": "zu", + "label": "南非祖鲁语", + "alphabet": "N" + }, + { + "code": "ne", + "label": "尼泊尔语", + "alphabet": "N" + }, + { + "code": "no", + "label": "挪威语", + "alphabet": "N" + }, + { + "code": "pa", + "label": "旁遮普语", + "alphabet": "P" + }, + { + "code": "ps", + "label": "普什图语", + "alphabet": "P" + }, + { + "code": "pt", + "label": "葡萄牙语", + "alphabet": "P" + }, + { + "code": "ny", + "label": "齐切瓦语", + "alphabet": "Q" + }, + { + "code": "ja", + "label": "日语", + "alphabet": "R" + }, + { + "code": "sv", + "label": "瑞典语", + "alphabet": "R" + }, + { + "code": "sr-Latn", + "label": "塞尔维亚语(拉丁语)", + "alphabet": "S" + }, + { + "code": "sr-Cyrl", + "label": "塞尔维亚语(西里尔)", + "alphabet": "S" + }, + { + "code": "st", + "label": "塞索托语", + "alphabet": "S" + }, + { + "code": "sm", + "label": "萨摩亚语", + "alphabet": "S" + }, + { + "code": "si", + "label": "僧伽罗语", + "alphabet": "S" + }, + { + "code": "eo", + "label": "世界语", + "alphabet": "S" + }, + { + "code": "sk", + "label": "斯洛伐克语", + "alphabet": "S" + }, + { + "code": "sl", + "label": "斯洛语尼亚语", + "alphabet": "S" + }, + { + "code": "sw", + "label": "斯瓦希里语", + "alphabet": "S" + }, + { + "code": "gd", + "label": "苏格兰盖尔语", + "alphabet": "S" + }, + { + "code": "so", + "label": "索马里语", + "alphabet": "S" + }, + { + "code": "ceb", + "label": "宿务语", + "alphabet": "S" + }, + { + "code": "te", + "label": "泰卢固语", + "alphabet": "T" + }, + { + "code": "ta", + "label": "泰米尔语", + "alphabet": "T" + }, + { + "code": "th", + "label": "泰语", + "alphabet": "T" + }, + { + "code": "tg", + "label": "塔吉克语", + "alphabet": "T" + }, + { + "code": "tr", + "label": "土耳其语", + "alphabet": "T" + }, + { + "code": "cy", + "label": "威尔士语", + "alphabet": "W" + }, + { + "code": "zh-lzh", + "label": "文言文", + "alphabet": "W" + }, + { + "code": "ur", + "label": "乌尔都语", + "alphabet": "W" + }, + { + "code": "uk", + "label": "乌克兰语", + "alphabet": "W" + }, + { + "code": "uz", + "label": "乌兹别克语", + "alphabet": "W" + }, + { + "code": "haw", + "label": "夏威夷语", + "alphabet": "X" + }, + { + "code": "es", + "label": "西班牙语", + "alphabet": "X" + }, + { + "code": "he", + "label": "希伯来语", + "alphabet": "X" + }, + { + "code": "el", + "label": "希腊语", + "alphabet": "X" + }, + { + "code": "sd", + "label": "信德语", + "alphabet": "X" + }, + { + "code": "hu", + "label": "匈牙利语", + "alphabet": "X" + }, + { + "code": "sn", + "label": "修纳语", + "alphabet": "X" + }, + { + "code": "en", + "label": "英语", + "alphabet": "Y" + }, + { + "code": "hy", + "label": "亚美尼亚语", + "alphabet": "Y" + }, + { + "code": "ig", + "label": "伊博语", + "alphabet": "Y" + }, + { + "code": "it", + "label": "意大利语", + "alphabet": "Y" + }, + { + "code": "yi", + "label": "意第绪语", + "alphabet": "Y" + }, + { + "code": "hi", + "label": "印地语", + "alphabet": "Y" + }, + { + "code": "id", + "label": "印度尼西亚语", + "alphabet": "Y" + }, + { + "code": "su", + "label": "印尼巽他语", + "alphabet": "Y" + }, + { + "code": "jw", + "label": "印尼爪哇语", + "alphabet": "Y" + }, + { + "code": "yua", + "label": "尤卡坦玛雅语", + "alphabet": "Y" + }, + { + "code": "yo", + "label": "约鲁巴语", + "alphabet": "Y" + }, + { + "code": "vi", + "label": "越南语", + "alphabet": "Y" + }, + { + "code": "zh-CHS", + "label": "中文", + "alphabet": "Z" + }, + { + "code": "zh-CHT", + "label": "中文(繁体)", + "alphabet": "Z" + } + ] +} \ No newline at end of file diff --git a/InfoGenie-frontend/public/60sapi/实用功能/在线翻译/返回接口.json b/InfoGenie-frontend/public/60sapi/实用功能/在线翻译/返回接口.json new file mode 100644 index 00000000..cc373914 --- /dev/null +++ b/InfoGenie-frontend/public/60sapi/实用功能/在线翻译/返回接口.json @@ -0,0 +1 @@ +{"code":200,"message":"所有数据均来自官方,确保稳定与实时,用户群: 595941841,开源地址: https://github.com/vikiboss/60s","data":{"source":{"text":"こんにちは","type":"ja","type_desc":"日语","pronounce":"Konnitiha"},"target":{"text":"你好","type":"zh-CHS","type_desc":"中文","pronounce":"nĭhăo"}}} \ No newline at end of file diff --git a/frontend/public/60sapi/实用功能/天气预报/css/background.css b/InfoGenie-frontend/public/60sapi/实用功能/天气预报/css/background.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/天气预报/css/background.css rename to InfoGenie-frontend/public/60sapi/实用功能/天气预报/css/background.css diff --git a/frontend/public/60sapi/实用功能/天气预报/css/style.css b/InfoGenie-frontend/public/60sapi/实用功能/天气预报/css/style.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/天气预报/css/style.css rename to InfoGenie-frontend/public/60sapi/实用功能/天气预报/css/style.css diff --git a/frontend/public/60sapi/实用功能/天气预报/index.html b/InfoGenie-frontend/public/60sapi/实用功能/天气预报/index.html old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/天气预报/index.html rename to InfoGenie-frontend/public/60sapi/实用功能/天气预报/index.html diff --git a/frontend/public/60sapi/实用功能/天气预报/js/script.js b/InfoGenie-frontend/public/60sapi/实用功能/天气预报/js/script.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/天气预报/js/script.js rename to InfoGenie-frontend/public/60sapi/实用功能/天气预报/js/script.js diff --git a/frontend/public/60sapi/实用功能/天气预报/接口集合.json b/InfoGenie-frontend/public/60sapi/实用功能/天气预报/接口集合.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/天气预报/接口集合.json rename to InfoGenie-frontend/public/60sapi/实用功能/天气预报/接口集合.json diff --git a/frontend/public/60sapi/实用功能/天气预报/返回接口.json b/InfoGenie-frontend/public/60sapi/实用功能/天气预报/返回接口.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/天气预报/返回接口.json rename to InfoGenie-frontend/public/60sapi/实用功能/天气预报/返回接口.json diff --git a/frontend/public/60sapi/实用功能/实时天气[目前有问题]/background.css b/InfoGenie-frontend/public/60sapi/实用功能/实时天气[目前有问题]/background.css similarity index 100% rename from frontend/public/60sapi/实用功能/实时天气[目前有问题]/background.css rename to InfoGenie-frontend/public/60sapi/实用功能/实时天气[目前有问题]/background.css diff --git a/frontend/public/60sapi/实用功能/实时天气[目前有问题]/index.html b/InfoGenie-frontend/public/60sapi/实用功能/实时天气[目前有问题]/index.html similarity index 100% rename from frontend/public/60sapi/实用功能/实时天气[目前有问题]/index.html rename to InfoGenie-frontend/public/60sapi/实用功能/实时天气[目前有问题]/index.html diff --git a/frontend/public/60sapi/实用功能/实时天气[目前有问题]/script.js b/InfoGenie-frontend/public/60sapi/实用功能/实时天气[目前有问题]/script.js similarity index 100% rename from frontend/public/60sapi/实用功能/实时天气[目前有问题]/script.js rename to InfoGenie-frontend/public/60sapi/实用功能/实时天气[目前有问题]/script.js diff --git a/frontend/public/60sapi/实用功能/实时天气[目前有问题]/styles.css b/InfoGenie-frontend/public/60sapi/实用功能/实时天气[目前有问题]/styles.css similarity index 100% rename from frontend/public/60sapi/实用功能/实时天气[目前有问题]/styles.css rename to InfoGenie-frontend/public/60sapi/实用功能/实时天气[目前有问题]/styles.css diff --git a/frontend/public/60sapi/实用功能/实时天气[目前有问题]/返回接口.json b/InfoGenie-frontend/public/60sapi/实用功能/实时天气[目前有问题]/返回接口.json similarity index 100% rename from frontend/public/60sapi/实用功能/实时天气[目前有问题]/返回接口.json rename to InfoGenie-frontend/public/60sapi/实用功能/实时天气[目前有问题]/返回接口.json diff --git a/frontend/public/60sapi/实用功能/密码强度检测/css/style.css b/InfoGenie-frontend/public/60sapi/实用功能/密码强度检测/css/style.css similarity index 100% rename from frontend/public/60sapi/实用功能/密码强度检测/css/style.css rename to InfoGenie-frontend/public/60sapi/实用功能/密码强度检测/css/style.css diff --git a/frontend/public/60sapi/实用功能/密码强度检测/index.html b/InfoGenie-frontend/public/60sapi/实用功能/密码强度检测/index.html similarity index 100% rename from frontend/public/60sapi/实用功能/密码强度检测/index.html rename to InfoGenie-frontend/public/60sapi/实用功能/密码强度检测/index.html diff --git a/frontend/public/60sapi/实用功能/密码强度检测/js/script.js b/InfoGenie-frontend/public/60sapi/实用功能/密码强度检测/js/script.js similarity index 100% rename from frontend/public/60sapi/实用功能/密码强度检测/js/script.js rename to InfoGenie-frontend/public/60sapi/实用功能/密码强度检测/js/script.js diff --git a/frontend/public/60sapi/实用功能/密码强度检测/返回接口.json b/InfoGenie-frontend/public/60sapi/实用功能/密码强度检测/返回接口.json similarity index 100% rename from frontend/public/60sapi/实用功能/密码强度检测/返回接口.json rename to InfoGenie-frontend/public/60sapi/实用功能/密码强度检测/返回接口.json diff --git a/frontend/public/60sapi/实用功能/生成二维码/css/background.css b/InfoGenie-frontend/public/60sapi/实用功能/生成二维码/css/background.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/生成二维码/css/background.css rename to InfoGenie-frontend/public/60sapi/实用功能/生成二维码/css/background.css diff --git a/frontend/public/60sapi/实用功能/生成二维码/css/style.css b/InfoGenie-frontend/public/60sapi/实用功能/生成二维码/css/style.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/生成二维码/css/style.css rename to InfoGenie-frontend/public/60sapi/实用功能/生成二维码/css/style.css diff --git a/frontend/public/60sapi/实用功能/生成二维码/index.html b/InfoGenie-frontend/public/60sapi/实用功能/生成二维码/index.html old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/生成二维码/index.html rename to InfoGenie-frontend/public/60sapi/实用功能/生成二维码/index.html diff --git a/frontend/public/60sapi/实用功能/生成二维码/js/script.js b/InfoGenie-frontend/public/60sapi/实用功能/生成二维码/js/script.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/生成二维码/js/script.js rename to InfoGenie-frontend/public/60sapi/实用功能/生成二维码/js/script.js diff --git a/frontend/public/60sapi/实用功能/生成二维码/接口集合.json b/InfoGenie-frontend/public/60sapi/实用功能/生成二维码/接口集合.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/生成二维码/接口集合.json rename to InfoGenie-frontend/public/60sapi/实用功能/生成二维码/接口集合.json diff --git a/frontend/public/60sapi/实用功能/百度百科词条/css/background.css b/InfoGenie-frontend/public/60sapi/实用功能/百度百科词条/css/background.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/百度百科词条/css/background.css rename to InfoGenie-frontend/public/60sapi/实用功能/百度百科词条/css/background.css diff --git a/frontend/public/60sapi/实用功能/百度百科词条/css/style.css b/InfoGenie-frontend/public/60sapi/实用功能/百度百科词条/css/style.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/百度百科词条/css/style.css rename to InfoGenie-frontend/public/60sapi/实用功能/百度百科词条/css/style.css diff --git a/frontend/public/60sapi/实用功能/百度百科词条/index.html b/InfoGenie-frontend/public/60sapi/实用功能/百度百科词条/index.html old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/百度百科词条/index.html rename to InfoGenie-frontend/public/60sapi/实用功能/百度百科词条/index.html diff --git a/frontend/public/60sapi/实用功能/百度百科词条/js/script.js b/InfoGenie-frontend/public/60sapi/实用功能/百度百科词条/js/script.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/百度百科词条/js/script.js rename to InfoGenie-frontend/public/60sapi/实用功能/百度百科词条/js/script.js diff --git a/frontend/public/60sapi/实用功能/百度百科词条/接口集合.json b/InfoGenie-frontend/public/60sapi/实用功能/百度百科词条/接口集合.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/百度百科词条/接口集合.json rename to InfoGenie-frontend/public/60sapi/实用功能/百度百科词条/接口集合.json diff --git a/frontend/public/60sapi/实用功能/百度百科词条/返回接口.json b/InfoGenie-frontend/public/60sapi/实用功能/百度百科词条/返回接口.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/百度百科词条/返回接口.json rename to InfoGenie-frontend/public/60sapi/实用功能/百度百科词条/返回接口.json diff --git a/frontend/public/60sapi/实用功能/身体健康分析/background.css b/InfoGenie-frontend/public/60sapi/实用功能/身体健康分析/background.css similarity index 100% rename from frontend/public/60sapi/实用功能/身体健康分析/background.css rename to InfoGenie-frontend/public/60sapi/实用功能/身体健康分析/background.css diff --git a/frontend/public/60sapi/实用功能/身体健康分析/index.html b/InfoGenie-frontend/public/60sapi/实用功能/身体健康分析/index.html similarity index 100% rename from frontend/public/60sapi/实用功能/身体健康分析/index.html rename to InfoGenie-frontend/public/60sapi/实用功能/身体健康分析/index.html diff --git a/frontend/public/60sapi/实用功能/身体健康分析/script.js b/InfoGenie-frontend/public/60sapi/实用功能/身体健康分析/script.js similarity index 100% rename from frontend/public/60sapi/实用功能/身体健康分析/script.js rename to InfoGenie-frontend/public/60sapi/实用功能/身体健康分析/script.js diff --git a/frontend/public/60sapi/实用功能/身体健康分析/styles.css b/InfoGenie-frontend/public/60sapi/实用功能/身体健康分析/styles.css similarity index 100% rename from frontend/public/60sapi/实用功能/身体健康分析/styles.css rename to InfoGenie-frontend/public/60sapi/实用功能/身体健康分析/styles.css diff --git a/frontend/public/60sapi/实用功能/身体健康分析/返回接口.json b/InfoGenie-frontend/public/60sapi/实用功能/身体健康分析/返回接口.json similarity index 100% rename from frontend/public/60sapi/实用功能/身体健康分析/返回接口.json rename to InfoGenie-frontend/public/60sapi/实用功能/身体健康分析/返回接口.json diff --git a/frontend/public/60sapi/实用功能/配色方案/background.css b/InfoGenie-frontend/public/60sapi/实用功能/配色方案/background.css similarity index 100% rename from frontend/public/60sapi/实用功能/配色方案/background.css rename to InfoGenie-frontend/public/60sapi/实用功能/配色方案/background.css diff --git a/frontend/public/60sapi/实用功能/配色方案/index.html b/InfoGenie-frontend/public/60sapi/实用功能/配色方案/index.html similarity index 100% rename from frontend/public/60sapi/实用功能/配色方案/index.html rename to InfoGenie-frontend/public/60sapi/实用功能/配色方案/index.html diff --git a/frontend/public/60sapi/实用功能/配色方案/script.js b/InfoGenie-frontend/public/60sapi/实用功能/配色方案/script.js similarity index 100% rename from frontend/public/60sapi/实用功能/配色方案/script.js rename to InfoGenie-frontend/public/60sapi/实用功能/配色方案/script.js diff --git a/frontend/public/60sapi/实用功能/配色方案/styles.css b/InfoGenie-frontend/public/60sapi/实用功能/配色方案/styles.css similarity index 100% rename from frontend/public/60sapi/实用功能/配色方案/styles.css rename to InfoGenie-frontend/public/60sapi/实用功能/配色方案/styles.css diff --git a/frontend/public/60sapi/实用功能/配色方案/返回接口.json b/InfoGenie-frontend/public/60sapi/实用功能/配色方案/返回接口.json similarity index 100% rename from frontend/public/60sapi/实用功能/配色方案/返回接口.json rename to InfoGenie-frontend/public/60sapi/实用功能/配色方案/返回接口.json diff --git a/frontend/public/60sapi/实用功能/链接OG信息/css/background.css b/InfoGenie-frontend/public/60sapi/实用功能/链接OG信息/css/background.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/链接OG信息/css/background.css rename to InfoGenie-frontend/public/60sapi/实用功能/链接OG信息/css/background.css diff --git a/frontend/public/60sapi/实用功能/链接OG信息/css/style.css b/InfoGenie-frontend/public/60sapi/实用功能/链接OG信息/css/style.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/链接OG信息/css/style.css rename to InfoGenie-frontend/public/60sapi/实用功能/链接OG信息/css/style.css diff --git a/frontend/public/60sapi/实用功能/链接OG信息/index.html b/InfoGenie-frontend/public/60sapi/实用功能/链接OG信息/index.html old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/链接OG信息/index.html rename to InfoGenie-frontend/public/60sapi/实用功能/链接OG信息/index.html diff --git a/frontend/public/60sapi/实用功能/链接OG信息/js/script.js b/InfoGenie-frontend/public/60sapi/实用功能/链接OG信息/js/script.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/链接OG信息/js/script.js rename to InfoGenie-frontend/public/60sapi/实用功能/链接OG信息/js/script.js diff --git a/frontend/public/60sapi/实用功能/链接OG信息/接口集合.json b/InfoGenie-frontend/public/60sapi/实用功能/链接OG信息/接口集合.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/链接OG信息/接口集合.json rename to InfoGenie-frontend/public/60sapi/实用功能/链接OG信息/接口集合.json diff --git a/frontend/public/60sapi/实用功能/链接OG信息/返回接口.json b/InfoGenie-frontend/public/60sapi/实用功能/链接OG信息/返回接口.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/实用功能/链接OG信息/返回接口.json rename to InfoGenie-frontend/public/60sapi/实用功能/链接OG信息/返回接口.json diff --git a/frontend/public/60sapi/实用功能/随机密码生成器/css/background.css b/InfoGenie-frontend/public/60sapi/实用功能/随机密码生成器/css/background.css similarity index 100% rename from frontend/public/60sapi/实用功能/随机密码生成器/css/background.css rename to InfoGenie-frontend/public/60sapi/实用功能/随机密码生成器/css/background.css diff --git a/frontend/public/60sapi/实用功能/随机密码生成器/css/style.css b/InfoGenie-frontend/public/60sapi/实用功能/随机密码生成器/css/style.css similarity index 100% rename from frontend/public/60sapi/实用功能/随机密码生成器/css/style.css rename to InfoGenie-frontend/public/60sapi/实用功能/随机密码生成器/css/style.css diff --git a/frontend/public/60sapi/实用功能/随机密码生成器/index.html b/InfoGenie-frontend/public/60sapi/实用功能/随机密码生成器/index.html similarity index 100% rename from frontend/public/60sapi/实用功能/随机密码生成器/index.html rename to InfoGenie-frontend/public/60sapi/实用功能/随机密码生成器/index.html diff --git a/frontend/public/60sapi/实用功能/随机密码生成器/js/script.js b/InfoGenie-frontend/public/60sapi/实用功能/随机密码生成器/js/script.js similarity index 100% rename from frontend/public/60sapi/实用功能/随机密码生成器/js/script.js rename to InfoGenie-frontend/public/60sapi/实用功能/随机密码生成器/js/script.js diff --git a/frontend/public/60sapi/实用功能/随机密码生成器/返回接口.json b/InfoGenie-frontend/public/60sapi/实用功能/随机密码生成器/返回接口.json similarity index 100% rename from frontend/public/60sapi/实用功能/随机密码生成器/返回接口.json rename to InfoGenie-frontend/public/60sapi/实用功能/随机密码生成器/返回接口.json diff --git a/frontend/public/60sapi/实用功能/随机颜色/background.css b/InfoGenie-frontend/public/60sapi/实用功能/随机颜色/background.css similarity index 100% rename from frontend/public/60sapi/实用功能/随机颜色/background.css rename to InfoGenie-frontend/public/60sapi/实用功能/随机颜色/background.css diff --git a/frontend/public/60sapi/实用功能/随机颜色/index.html b/InfoGenie-frontend/public/60sapi/实用功能/随机颜色/index.html similarity index 100% rename from frontend/public/60sapi/实用功能/随机颜色/index.html rename to InfoGenie-frontend/public/60sapi/实用功能/随机颜色/index.html diff --git a/frontend/public/60sapi/实用功能/随机颜色/script.js b/InfoGenie-frontend/public/60sapi/实用功能/随机颜色/script.js similarity index 100% rename from frontend/public/60sapi/实用功能/随机颜色/script.js rename to InfoGenie-frontend/public/60sapi/实用功能/随机颜色/script.js diff --git a/frontend/public/60sapi/实用功能/随机颜色/styles.css b/InfoGenie-frontend/public/60sapi/实用功能/随机颜色/styles.css similarity index 100% rename from frontend/public/60sapi/实用功能/随机颜色/styles.css rename to InfoGenie-frontend/public/60sapi/实用功能/随机颜色/styles.css diff --git a/frontend/public/60sapi/实用功能/随机颜色/返回接口.json b/InfoGenie-frontend/public/60sapi/实用功能/随机颜色/返回接口.json similarity index 100% rename from frontend/public/60sapi/实用功能/随机颜色/返回接口.json rename to InfoGenie-frontend/public/60sapi/实用功能/随机颜色/返回接口.json diff --git a/frontend/public/60sapi/日更资讯/历史上的今天/css/style.css b/InfoGenie-frontend/public/60sapi/日更资讯/历史上的今天/css/style.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/日更资讯/历史上的今天/css/style.css rename to InfoGenie-frontend/public/60sapi/日更资讯/历史上的今天/css/style.css diff --git a/frontend/public/60sapi/日更资讯/历史上的今天/index.html b/InfoGenie-frontend/public/60sapi/日更资讯/历史上的今天/index.html old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/日更资讯/历史上的今天/index.html rename to InfoGenie-frontend/public/60sapi/日更资讯/历史上的今天/index.html diff --git a/frontend/public/60sapi/日更资讯/历史上的今天/js/script.js b/InfoGenie-frontend/public/60sapi/日更资讯/历史上的今天/js/script.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/日更资讯/历史上的今天/js/script.js rename to InfoGenie-frontend/public/60sapi/日更资讯/历史上的今天/js/script.js diff --git a/frontend/public/60sapi/日更资讯/历史上的今天/接口集合.json b/InfoGenie-frontend/public/60sapi/日更资讯/历史上的今天/接口集合.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/日更资讯/历史上的今天/接口集合.json rename to InfoGenie-frontend/public/60sapi/日更资讯/历史上的今天/接口集合.json diff --git a/frontend/public/60sapi/日更资讯/历史上的今天/返回接口.json b/InfoGenie-frontend/public/60sapi/日更资讯/历史上的今天/返回接口.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/日更资讯/历史上的今天/返回接口.json rename to InfoGenie-frontend/public/60sapi/日更资讯/历史上的今天/返回接口.json diff --git a/frontend/public/60sapi/日更资讯/必应每日壁纸/css/style.css b/InfoGenie-frontend/public/60sapi/日更资讯/必应每日壁纸/css/style.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/日更资讯/必应每日壁纸/css/style.css rename to InfoGenie-frontend/public/60sapi/日更资讯/必应每日壁纸/css/style.css diff --git a/frontend/public/60sapi/日更资讯/必应每日壁纸/index.html b/InfoGenie-frontend/public/60sapi/日更资讯/必应每日壁纸/index.html old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/日更资讯/必应每日壁纸/index.html rename to InfoGenie-frontend/public/60sapi/日更资讯/必应每日壁纸/index.html diff --git a/frontend/public/60sapi/日更资讯/必应每日壁纸/js/script.js b/InfoGenie-frontend/public/60sapi/日更资讯/必应每日壁纸/js/script.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/日更资讯/必应每日壁纸/js/script.js rename to InfoGenie-frontend/public/60sapi/日更资讯/必应每日壁纸/js/script.js diff --git a/frontend/public/60sapi/日更资讯/必应每日壁纸/接口集合.json b/InfoGenie-frontend/public/60sapi/日更资讯/必应每日壁纸/接口集合.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/日更资讯/必应每日壁纸/接口集合.json rename to InfoGenie-frontend/public/60sapi/日更资讯/必应每日壁纸/接口集合.json diff --git a/frontend/public/60sapi/日更资讯/必应每日壁纸/返回接口.json b/InfoGenie-frontend/public/60sapi/日更资讯/必应每日壁纸/返回接口.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/日更资讯/必应每日壁纸/返回接口.json rename to InfoGenie-frontend/public/60sapi/日更资讯/必应每日壁纸/返回接口.json diff --git a/frontend/public/60sapi/日更资讯/每天60s读懂世界/css/style.css b/InfoGenie-frontend/public/60sapi/日更资讯/每天60s读懂世界/css/style.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/日更资讯/每天60s读懂世界/css/style.css rename to InfoGenie-frontend/public/60sapi/日更资讯/每天60s读懂世界/css/style.css diff --git a/frontend/public/60sapi/日更资讯/每天60s读懂世界/index.html b/InfoGenie-frontend/public/60sapi/日更资讯/每天60s读懂世界/index.html old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/日更资讯/每天60s读懂世界/index.html rename to InfoGenie-frontend/public/60sapi/日更资讯/每天60s读懂世界/index.html diff --git a/frontend/public/60sapi/日更资讯/每天60s读懂世界/js/script.js b/InfoGenie-frontend/public/60sapi/日更资讯/每天60s读懂世界/js/script.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/日更资讯/每天60s读懂世界/js/script.js rename to InfoGenie-frontend/public/60sapi/日更资讯/每天60s读懂世界/js/script.js diff --git a/frontend/public/60sapi/日更资讯/每天60s读懂世界/接口集合.json b/InfoGenie-frontend/public/60sapi/日更资讯/每天60s读懂世界/接口集合.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/日更资讯/每天60s读懂世界/接口集合.json rename to InfoGenie-frontend/public/60sapi/日更资讯/每天60s读懂世界/接口集合.json diff --git a/frontend/public/60sapi/日更资讯/每天60s读懂世界/返回接口.json b/InfoGenie-frontend/public/60sapi/日更资讯/每天60s读懂世界/返回接口.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/日更资讯/每天60s读懂世界/返回接口.json rename to InfoGenie-frontend/public/60sapi/日更资讯/每天60s读懂世界/返回接口.json diff --git a/frontend/public/60sapi/日更资讯/每日国际汇率/css/style.css b/InfoGenie-frontend/public/60sapi/日更资讯/每日国际汇率/css/style.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/日更资讯/每日国际汇率/css/style.css rename to InfoGenie-frontend/public/60sapi/日更资讯/每日国际汇率/css/style.css diff --git a/frontend/public/60sapi/日更资讯/每日国际汇率/index.html b/InfoGenie-frontend/public/60sapi/日更资讯/每日国际汇率/index.html old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/日更资讯/每日国际汇率/index.html rename to InfoGenie-frontend/public/60sapi/日更资讯/每日国际汇率/index.html diff --git a/frontend/public/60sapi/日更资讯/每日国际汇率/js/script.js b/InfoGenie-frontend/public/60sapi/日更资讯/每日国际汇率/js/script.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/日更资讯/每日国际汇率/js/script.js rename to InfoGenie-frontend/public/60sapi/日更资讯/每日国际汇率/js/script.js diff --git a/frontend/public/60sapi/日更资讯/每日国际汇率/接口集合.json b/InfoGenie-frontend/public/60sapi/日更资讯/每日国际汇率/接口集合.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/日更资讯/每日国际汇率/接口集合.json rename to InfoGenie-frontend/public/60sapi/日更资讯/每日国际汇率/接口集合.json diff --git a/frontend/public/60sapi/日更资讯/每日国际汇率/返回接口.json b/InfoGenie-frontend/public/60sapi/日更资讯/每日国际汇率/返回接口.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/日更资讯/每日国际汇率/返回接口.json rename to InfoGenie-frontend/public/60sapi/日更资讯/每日国际汇率/返回接口.json diff --git a/frontend/public/60sapi/热搜榜单/Hacker News 榜单/css/background.css b/InfoGenie-frontend/public/60sapi/热搜榜单/Hacker News 榜单/css/background.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/Hacker News 榜单/css/background.css rename to InfoGenie-frontend/public/60sapi/热搜榜单/Hacker News 榜单/css/background.css diff --git a/frontend/public/60sapi/热搜榜单/Hacker News 榜单/css/style.css b/InfoGenie-frontend/public/60sapi/热搜榜单/Hacker News 榜单/css/style.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/Hacker News 榜单/css/style.css rename to InfoGenie-frontend/public/60sapi/热搜榜单/Hacker News 榜单/css/style.css diff --git a/frontend/public/60sapi/热搜榜单/Hacker News 榜单/index.html b/InfoGenie-frontend/public/60sapi/热搜榜单/Hacker News 榜单/index.html old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/Hacker News 榜单/index.html rename to InfoGenie-frontend/public/60sapi/热搜榜单/Hacker News 榜单/index.html diff --git a/frontend/public/60sapi/热搜榜单/Hacker News 榜单/js/script.js b/InfoGenie-frontend/public/60sapi/热搜榜单/Hacker News 榜单/js/script.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/Hacker News 榜单/js/script.js rename to InfoGenie-frontend/public/60sapi/热搜榜单/Hacker News 榜单/js/script.js diff --git a/frontend/public/60sapi/热搜榜单/Hacker News 榜单/接口集合.json b/InfoGenie-frontend/public/60sapi/热搜榜单/Hacker News 榜单/接口集合.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/Hacker News 榜单/接口集合.json rename to InfoGenie-frontend/public/60sapi/热搜榜单/Hacker News 榜单/接口集合.json diff --git a/frontend/public/60sapi/热搜榜单/Hacker News 榜单/返回接口.json b/InfoGenie-frontend/public/60sapi/热搜榜单/Hacker News 榜单/返回接口.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/Hacker News 榜单/返回接口.json rename to InfoGenie-frontend/public/60sapi/热搜榜单/Hacker News 榜单/返回接口.json diff --git a/frontend/public/60sapi/热搜榜单/哔哩哔哩热搜榜/css/background.css b/InfoGenie-frontend/public/60sapi/热搜榜单/哔哩哔哩热搜榜/css/background.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/哔哩哔哩热搜榜/css/background.css rename to InfoGenie-frontend/public/60sapi/热搜榜单/哔哩哔哩热搜榜/css/background.css diff --git a/frontend/public/60sapi/热搜榜单/哔哩哔哩热搜榜/css/style.css b/InfoGenie-frontend/public/60sapi/热搜榜单/哔哩哔哩热搜榜/css/style.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/哔哩哔哩热搜榜/css/style.css rename to InfoGenie-frontend/public/60sapi/热搜榜单/哔哩哔哩热搜榜/css/style.css diff --git a/frontend/public/60sapi/热搜榜单/哔哩哔哩热搜榜/index.html b/InfoGenie-frontend/public/60sapi/热搜榜单/哔哩哔哩热搜榜/index.html old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/哔哩哔哩热搜榜/index.html rename to InfoGenie-frontend/public/60sapi/热搜榜单/哔哩哔哩热搜榜/index.html diff --git a/frontend/public/60sapi/热搜榜单/哔哩哔哩热搜榜/js/main.js b/InfoGenie-frontend/public/60sapi/热搜榜单/哔哩哔哩热搜榜/js/main.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/哔哩哔哩热搜榜/js/main.js rename to InfoGenie-frontend/public/60sapi/热搜榜单/哔哩哔哩热搜榜/js/main.js diff --git a/frontend/public/60sapi/热搜榜单/哔哩哔哩热搜榜/接口集合.json b/InfoGenie-frontend/public/60sapi/热搜榜单/哔哩哔哩热搜榜/接口集合.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/哔哩哔哩热搜榜/接口集合.json rename to InfoGenie-frontend/public/60sapi/热搜榜单/哔哩哔哩热搜榜/接口集合.json diff --git a/frontend/public/60sapi/热搜榜单/哔哩哔哩热搜榜/返回接口.json b/InfoGenie-frontend/public/60sapi/热搜榜单/哔哩哔哩热搜榜/返回接口.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/哔哩哔哩热搜榜/返回接口.json rename to InfoGenie-frontend/public/60sapi/热搜榜单/哔哩哔哩热搜榜/返回接口.json diff --git a/frontend/public/60sapi/热搜榜单/头条热搜榜/css/background.css b/InfoGenie-frontend/public/60sapi/热搜榜单/头条热搜榜/css/background.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/头条热搜榜/css/background.css rename to InfoGenie-frontend/public/60sapi/热搜榜单/头条热搜榜/css/background.css diff --git a/frontend/public/60sapi/热搜榜单/头条热搜榜/css/style.css b/InfoGenie-frontend/public/60sapi/热搜榜单/头条热搜榜/css/style.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/头条热搜榜/css/style.css rename to InfoGenie-frontend/public/60sapi/热搜榜单/头条热搜榜/css/style.css diff --git a/frontend/public/60sapi/热搜榜单/头条热搜榜/index.html b/InfoGenie-frontend/public/60sapi/热搜榜单/头条热搜榜/index.html old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/头条热搜榜/index.html rename to InfoGenie-frontend/public/60sapi/热搜榜单/头条热搜榜/index.html diff --git a/frontend/public/60sapi/热搜榜单/头条热搜榜/js/main.js b/InfoGenie-frontend/public/60sapi/热搜榜单/头条热搜榜/js/main.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/头条热搜榜/js/main.js rename to InfoGenie-frontend/public/60sapi/热搜榜单/头条热搜榜/js/main.js diff --git a/frontend/public/60sapi/热搜榜单/头条热搜榜/接口集合.json b/InfoGenie-frontend/public/60sapi/热搜榜单/头条热搜榜/接口集合.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/头条热搜榜/接口集合.json rename to InfoGenie-frontend/public/60sapi/热搜榜单/头条热搜榜/接口集合.json diff --git a/frontend/public/60sapi/热搜榜单/头条热搜榜/返回接口.json b/InfoGenie-frontend/public/60sapi/热搜榜单/头条热搜榜/返回接口.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/头条热搜榜/返回接口.json rename to InfoGenie-frontend/public/60sapi/热搜榜单/头条热搜榜/返回接口.json diff --git a/InfoGenie-frontend/public/60sapi/热搜榜单/小红书热点/background.css b/InfoGenie-frontend/public/60sapi/热搜榜单/小红书热点/background.css new file mode 100644 index 00000000..8a5a8569 --- /dev/null +++ b/InfoGenie-frontend/public/60sapi/热搜榜单/小红书热点/background.css @@ -0,0 +1,144 @@ +/* 背景样式文件 - 独立管理所有背景相关样式 */ + +/* 页面主背景 */ +body { + background: linear-gradient(135deg, #f8fffe 0%, #f0f9f4 50%, #e8f5e8 100%); + background-attachment: fixed; + background-size: cover; + position: relative; +} + +/* 背景装饰元素 */ +body::before { + content: ''; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-image: + radial-gradient(circle at 20% 80%, rgba(168, 230, 207, 0.1) 0%, transparent 50%), + radial-gradient(circle at 80% 20%, rgba(39, 174, 96, 0.08) 0%, transparent 50%), + radial-gradient(circle at 40% 40%, rgba(46, 204, 113, 0.05) 0%, transparent 50%); + pointer-events: none; + z-index: -1; +} + +/* 容器背景 */ +.container { + background: rgba(255, 255, 255, 0.7); + backdrop-filter: blur(10px); + border-radius: 20px; + margin-top: 20px; + margin-bottom: 20px; + box-shadow: 0 8px 32px rgba(39, 174, 96, 0.1); +} + +/* 头部背景 */ +.header { + background: linear-gradient(135deg, rgba(168, 230, 207, 0.2) 0%, rgba(39, 174, 96, 0.1) 100%); + border-radius: 20px 20px 0 0; + position: relative; + overflow: hidden; +} + +.header::before { + content: ''; + position: absolute; + top: -50%; + left: -50%; + width: 200%; + height: 200%; + background: radial-gradient(circle, rgba(39, 174, 96, 0.05) 0%, transparent 70%); + animation: float 6s ease-in-out infinite; +} + +@keyframes float { + 0%, 100% { + transform: translate(0, 0) rotate(0deg); + } + 50% { + transform: translate(-10px, -10px) rotate(180deg); + } +} + +/* 热点项目背景 */ +.hot-item { + background: rgba(255, 255, 255, 0.9); + backdrop-filter: blur(5px); + position: relative; +} + +.hot-item::after { + content: ''; + position: absolute; + top: 0; + right: 0; + width: 60px; + height: 60px; + background: radial-gradient(circle, rgba(168, 230, 207, 0.1) 0%, transparent 70%); + border-radius: 50%; + transform: translate(30px, -30px); + pointer-events: none; +} + +/* 前三名特殊背景效果 */ +.hot-item:nth-child(1) { + background: linear-gradient(135deg, rgba(255, 215, 0, 0.1) 0%, rgba(255, 255, 255, 0.9) 100%); +} + +.hot-item:nth-child(2) { + background: linear-gradient(135deg, rgba(192, 192, 192, 0.1) 0%, rgba(255, 255, 255, 0.9) 100%); +} + +.hot-item:nth-child(3) { + background: linear-gradient(135deg, rgba(205, 127, 50, 0.1) 0%, rgba(255, 255, 255, 0.9) 100%); +} + +/* 底部背景 */ +.footer { + background: linear-gradient(135deg, rgba(168, 230, 207, 0.1) 0%, rgba(39, 174, 96, 0.05) 100%); + border-radius: 0 0 20px 20px; +} + +/* 加载状态背景 */ +.loading { + background: rgba(255, 255, 255, 0.8); + border-radius: 12px; + backdrop-filter: blur(5px); +} + +/* 错误信息背景 */ +.error-message { + background: rgba(255, 255, 255, 0.9); + border: 1px solid rgba(231, 76, 60, 0.2); + border-radius: 12px; + backdrop-filter: blur(5px); +} + +/* 响应式背景调整 */ +@media (max-width: 768px) { + .container { + margin-top: 10px; + margin-bottom: 10px; + border-radius: 16px; + } + + .header { + border-radius: 16px 16px 0 0; + } + + .footer { + border-radius: 0 0 16px 16px; + } +} + +@media (min-width: 1025px) { + body::before { + background-image: + radial-gradient(circle at 15% 85%, rgba(168, 230, 207, 0.15) 0%, transparent 50%), + radial-gradient(circle at 85% 15%, rgba(39, 174, 96, 0.12) 0%, transparent 50%), + radial-gradient(circle at 50% 50%, rgba(46, 204, 113, 0.08) 0%, transparent 50%), + radial-gradient(circle at 25% 25%, rgba(168, 230, 207, 0.06) 0%, transparent 50%); + } +} \ No newline at end of file diff --git a/InfoGenie-frontend/public/60sapi/热搜榜单/小红书热点/index.html b/InfoGenie-frontend/public/60sapi/热搜榜单/小红书热点/index.html new file mode 100644 index 00000000..007cfc91 --- /dev/null +++ b/InfoGenie-frontend/public/60sapi/热搜榜单/小红书热点/index.html @@ -0,0 +1,40 @@ + + + + + + 小红书热点榜单 + + + + +
+
+

小红书热点榜单

+

实时热门话题,发现精彩内容

+
+ +
+
+
+

正在加载热点数据...

+
+ + + + +
+ +
+

+
+
+ + + + \ No newline at end of file diff --git a/InfoGenie-frontend/public/60sapi/热搜榜单/小红书热点/script.js b/InfoGenie-frontend/public/60sapi/热搜榜单/小红书热点/script.js new file mode 100644 index 00000000..5fcd322c --- /dev/null +++ b/InfoGenie-frontend/public/60sapi/热搜榜单/小红书热点/script.js @@ -0,0 +1,180 @@ +// 小红书热点榜单 JavaScript 逻辑 + +// DOM 元素 +const loadingEl = document.getElementById('loading'); +const errorEl = document.getElementById('error'); +const hotListEl = document.getElementById('hotList'); +const updateTimeEl = document.getElementById('updateTime'); + +// 页面加载完成后初始化 +document.addEventListener('DOMContentLoaded', function() { + loadData(); +}); + +// 加载数据函数 +async function loadData() { + try { + showLoading(); + + // 从API接口获取数据 + const response = await fetch('https://60s.api.shumengya.top/v2/rednote'); + + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + + const data = await response.json(); + + if (data.code === 200 && data.data) { + renderHotList(data.data); + updateTime(); + showSuccess(); + } else { + throw new Error('数据格式错误'); + } + + } catch (error) { + console.error('加载数据失败:', error); + showError(); + } +} + +// 显示加载状态 +function showLoading() { + loadingEl.style.display = 'block'; + errorEl.style.display = 'none'; + hotListEl.style.display = 'none'; +} + +// 显示错误状态 +function showError() { + loadingEl.style.display = 'none'; + errorEl.style.display = 'block'; + hotListEl.style.display = 'none'; +} + +// 显示成功状态 +function showSuccess() { + loadingEl.style.display = 'none'; + errorEl.style.display = 'none'; + hotListEl.style.display = 'block'; +} + +// 渲染热点列表 +function renderHotList(hotData) { + hotListEl.innerHTML = ''; + + hotData.forEach((item, index) => { + const hotItem = createHotItem(item, index); + hotListEl.appendChild(hotItem); + }); +} + +// 创建热点项目元素 +function createHotItem(item, index) { + const itemEl = document.createElement('div'); + itemEl.className = 'hot-item'; + + // 添加点击事件 + itemEl.addEventListener('click', () => { + if (item.link) { + window.open(item.link, '_blank'); + } + }); + + // 构建HTML内容 + itemEl.innerHTML = ` +
+
${item.rank}
+
+ ${item.work_type_icon ? `${item.word_type}` : ''} + ${item.word_type && item.word_type !== '无' ? `${item.word_type}` : ''} +
+
+
+

${escapeHtml(item.title)}

+

热度: ${item.score}

+
+ `; + + return itemEl; +} + +// 获取类型样式类名 +function getTypeClass(wordType) { + switch (wordType) { + case '热': + return 'hot'; + case '新': + return 'new'; + default: + return 'default'; + } +} + +// HTML转义函数 +function escapeHtml(text) { + const div = document.createElement('div'); + div.textContent = text; + return div.innerHTML; +} + +// 更新时间显示 +function updateTime() { + const now = new Date(); + const timeString = now.toLocaleString('zh-CN', { + year: 'numeric', + month: '2-digit', + day: '2-digit', + hour: '2-digit', + minute: '2-digit', + second: '2-digit' + }); + updateTimeEl.textContent = `最后更新: ${timeString}`; +} + +// 添加页面可见性变化监听,当页面重新可见时刷新数据 +document.addEventListener('visibilitychange', function() { + if (!document.hidden) { + // 页面变为可见时,延迟1秒后刷新数据 + setTimeout(() => { + loadData(); + }, 1000); + } +}); + +// 添加网络状态监听 +window.addEventListener('online', function() { + // 网络恢复时自动重新加载 + setTimeout(() => { + loadData(); + }, 500); +}); + +// 添加错误处理 +window.addEventListener('error', function(e) { + console.error('页面错误:', e.error); +}); + +// 添加未处理的Promise拒绝监听 +window.addEventListener('unhandledrejection', function(e) { + console.error('未处理的Promise拒绝:', e.reason); + e.preventDefault(); +}); + +// 添加触摸设备的优化 +if ('ontouchstart' in window) { + // 为触摸设备添加触摸反馈 + document.addEventListener('touchstart', function() {}, { passive: true }); +} + +// 添加键盘导航支持 +document.addEventListener('keydown', function(e) { + if (e.key === 'F5' || (e.ctrlKey && e.key === 'r')) { + e.preventDefault(); + loadData(); + } +}); + +// 导出函数供全局使用 +window.loadData = loadData; \ No newline at end of file diff --git a/InfoGenie-frontend/public/60sapi/热搜榜单/小红书热点/styles.css b/InfoGenie-frontend/public/60sapi/热搜榜单/小红书热点/styles.css new file mode 100644 index 00000000..a9385421 --- /dev/null +++ b/InfoGenie-frontend/public/60sapi/热搜榜单/小红书热点/styles.css @@ -0,0 +1,299 @@ +/* 基础样式重置 */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif; + line-height: 1.6; + color: #2c3e50; + overflow-x: hidden; +} + +.container { + max-width: 1200px; + margin: 0 auto; + padding: 0 16px; + min-height: 100vh; + display: flex; + flex-direction: column; +} + +/* 头部样式 */ +.header { + text-align: center; + padding: 24px 0; + border-bottom: 2px solid #a8e6cf; + margin-bottom: 24px; +} + +.title { + font-size: 28px; + font-weight: 700; + color: #27ae60; + margin-bottom: 8px; + text-shadow: 0 2px 4px rgba(39, 174, 96, 0.1); +} + +.subtitle { + font-size: 14px; + color: #7f8c8d; + font-weight: 400; +} + +/* 主内容区域 */ +.main-content { + flex: 1; + position: relative; +} + +/* 加载状态 */ +.loading { + text-align: center; + padding: 60px 20px; + color: #27ae60; +} + +.loading-spinner { + width: 40px; + height: 40px; + border: 3px solid #a8e6cf; + border-top: 3px solid #27ae60; + border-radius: 50%; + animation: spin 1s linear infinite; + margin: 0 auto 16px; +} + +@keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} + +/* 错误信息 */ +.error-message { + text-align: center; + padding: 40px 20px; + color: #e74c3c; +} + +.retry-btn { + background: #27ae60; + color: white; + border: none; + padding: 10px 20px; + border-radius: 20px; + cursor: pointer; + font-size: 14px; + margin-top: 16px; + transition: background 0.3s ease; +} + +.retry-btn:hover { + background: #219a52; +} + +/* 热点列表 */ +.hot-list { + display: grid; + gap: 12px; +} + +.hot-item { + background: #ffffff; + border: 1px solid #e8f5e8; + border-radius: 12px; + padding: 16px; + transition: all 0.3s ease; + box-shadow: 0 2px 8px rgba(39, 174, 96, 0.08); + position: relative; + overflow: hidden; +} + +.hot-item:hover { + transform: translateY(-2px); + box-shadow: 0 4px 16px rgba(39, 174, 96, 0.15); + border-color: #a8e6cf; +} + +.hot-item::before { + content: ''; + position: absolute; + left: 0; + top: 0; + width: 4px; + height: 100%; + background: linear-gradient(to bottom, #27ae60, #a8e6cf); +} + +.item-header { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 8px; +} + +.rank { + background: linear-gradient(135deg, #27ae60, #2ecc71); + color: white; + width: 28px; + height: 28px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-weight: 700; + font-size: 14px; + flex-shrink: 0; +} + +.rank.top3 { + background: linear-gradient(135deg, #f39c12, #e67e22); +} + +.word-type { + display: flex; + align-items: center; + gap: 4px; +} + +.type-icon { + width: 16px; + height: 16px; + object-fit: contain; +} + +.type-text { + font-size: 12px; + padding: 2px 8px; + border-radius: 10px; + font-weight: 500; +} + +.type-hot { + background: #ffe6e6; + color: #e74c3c; +} + +.type-new { + background: #e6f3ff; + color: #3498db; +} + +.item-content { + margin-bottom: 8px; +} + +.item-title { + font-size: 16px; + font-weight: 600; + color: #2c3e50; + line-height: 1.4; + margin-bottom: 4px; + cursor: pointer; + transition: color 0.3s ease; +} + +.item-title:hover { + color: #27ae60; +} + +.item-score { + font-size: 14px; + color: #7f8c8d; + font-weight: 500; +} + +/* 底部 */ +.footer { + text-align: center; + padding: 24px 0; + border-top: 1px solid #e8f5e8; + margin-top: 32px; +} + +.update-time { + font-size: 12px; + color: #95a5a6; +} + +/* 手机端优化 (默认) */ +@media (max-width: 768px) { + .container { + padding: 0 12px; + } + + .header { + padding: 20px 0; + } + + .title { + font-size: 24px; + } + + .subtitle { + font-size: 13px; + } + + .hot-item { + padding: 14px; + } + + .item-title { + font-size: 15px; + } + + .rank { + width: 26px; + height: 26px; + font-size: 13px; + } +} + +/* 平板端适配 */ +@media (min-width: 769px) and (max-width: 1024px) { + .container { + padding: 0 24px; + } + + .hot-list { + grid-template-columns: repeat(2, 1fr); + gap: 16px; + } + + .title { + font-size: 32px; + } +} + +/* 电脑端适配 */ +@media (min-width: 1025px) { + .container { + padding: 0 32px; + } + + .hot-list { + grid-template-columns: repeat(2, 1fr); + gap: 20px; + } + + .title { + font-size: 36px; + } + + .hot-item { + padding: 20px; + } + + .item-title { + font-size: 17px; + } +} + +/* 大屏幕优化 */ +@media (min-width: 1400px) { + .hot-list { + grid-template-columns: repeat(3, 1fr); + } +} \ No newline at end of file diff --git a/InfoGenie-frontend/public/60sapi/热搜榜单/小红书热点/返回接口.json b/InfoGenie-frontend/public/60sapi/热搜榜单/小红书热点/返回接口.json new file mode 100644 index 00000000..493aa294 --- /dev/null +++ b/InfoGenie-frontend/public/60sapi/热搜榜单/小红书热点/返回接口.json @@ -0,0 +1,166 @@ +{ + "code": 200, + "message": "获取成功。数据来自官方/权威源头,以确保稳定与实时。开源地址 https://github.com/vikiboss/60s,反馈群 595941841", + "data": [ + { + "rank": 1, + "title": "九三阅兵", + "score": "908.5w", + "word_type": "热", + "work_type_icon": "https://picasso-static.xiaohongshu.com/fe-platform/cfd317ff14757c7ede6ef5176ec487589565e49e.png", + "link": "https://www.xiaohongshu.com/search_result?keyword=%E4%B9%9D%E4%B8%89%E9%98%85%E5%85%B5&type=51" + }, + { + "rank": 2, + "title": "我镜头下的中式建筑美学", + "score": "872.9w", + "word_type": "新", + "work_type_icon": "https://sns-img-qc.xhscdn.com/search/trends/icon/label/new/version/1", + "link": "https://www.xiaohongshu.com/search_result?keyword=%E6%88%91%E9%95%9C%E5%A4%B4%E4%B8%8B%E7%9A%84%E4%B8%AD%E5%BC%8F%E5%BB%BA%E7%AD%91%E7%BE%8E%E5%AD%A6&type=51" + }, + { + "rank": 3, + "title": "原来人机感才是出片的秘诀", + "score": "754.4w", + "word_type": "无", + "work_type_icon": "", + "link": "https://www.xiaohongshu.com/search_result?keyword=%E5%8E%9F%E6%9D%A5%E4%BA%BA%E6%9C%BA%E6%84%9F%E6%89%8D%E6%98%AF%E5%87%BA%E7%89%87%E7%9A%84%E7%A7%98%E8%AF%80&type=51" + }, + { + "rank": 4, + "title": "我的二十年航天路", + "score": "703.9w", + "word_type": "热", + "work_type_icon": "https://picasso-static.xiaohongshu.com/fe-platform/cfd317ff14757c7ede6ef5176ec487589565e49e.png", + "link": "https://www.xiaohongshu.com/search_result?keyword=%E6%88%91%E7%9A%84%E4%BA%8C%E5%8D%81%E5%B9%B4%E8%88%AA%E5%A4%A9%E8%B7%AF&type=51" + }, + { + "rank": 5, + "title": "用横图的方式打开香格里拉", + "score": "458.5w", + "word_type": "新", + "work_type_icon": "https://sns-img-qc.xhscdn.com/search/trends/icon/label/new/version/1", + "link": "https://www.xiaohongshu.com/search_result?keyword=%E7%94%A8%E6%A8%AA%E5%9B%BE%E7%9A%84%E6%96%B9%E5%BC%8F%E6%89%93%E5%BC%80%E9%A6%99%E6%A0%BC%E9%87%8C%E6%8B%89&type=51" + }, + { + "rank": 6, + "title": "我拍到了苏州丰收的景象", + "score": "392w", + "word_type": "无", + "work_type_icon": "", + "link": "https://www.xiaohongshu.com/search_result?keyword=%E6%88%91%E6%8B%8D%E5%88%B0%E4%BA%86%E8%8B%8F%E5%B7%9E%E4%B8%B0%E6%94%B6%E7%9A%84%E6%99%AF%E8%B1%A1&type=51" + }, + { + "rank": 7, + "title": "我拍下了960万平方公里的中国", + "score": "390.7w", + "word_type": "热", + "work_type_icon": "https://picasso-static.xiaohongshu.com/fe-platform/cfd317ff14757c7ede6ef5176ec487589565e49e.png", + "link": "https://www.xiaohongshu.com/search_result?keyword=%E6%88%91%E6%8B%8D%E4%B8%8B%E4%BA%86960%E4%B8%87%E5%B9%B3%E6%96%B9%E5%85%AC%E9%87%8C%E7%9A%84%E4%B8%AD%E5%9B%BD&type=51" + }, + { + "rank": 8, + "title": "12岁冰岛少年的川剧变脸梦", + "score": "389.7w", + "word_type": "热", + "work_type_icon": "https://picasso-static.xiaohongshu.com/fe-platform/cfd317ff14757c7ede6ef5176ec487589565e49e.png", + "link": "https://www.xiaohongshu.com/search_result?keyword=12%E5%B2%81%E5%86%B0%E5%B2%9B%E5%B0%91%E5%B9%B4%E7%9A%84%E5%B7%9D%E5%89%A7%E5%8F%98%E8%84%B8%E6%A2%A6&type=51" + }, + { + "rank": 9, + "title": "人生总要去一次阿勒泰吧", + "score": "389.6w", + "word_type": "新", + "work_type_icon": "https://sns-img-qc.xhscdn.com/search/trends/icon/label/new/version/1", + "link": "https://www.xiaohongshu.com/search_result?keyword=%E4%BA%BA%E7%94%9F%E6%80%BB%E8%A6%81%E5%8E%BB%E4%B8%80%E6%AC%A1%E9%98%BF%E5%8B%92%E6%B3%B0%E5%90%A7&type=51" + }, + { + "rank": 10, + "title": "普通人的10年绘画进步史", + "score": "389.4w", + "word_type": "无", + "work_type_icon": "", + "link": "https://www.xiaohongshu.com/search_result?keyword=%E6%99%AE%E9%80%9A%E4%BA%BA%E7%9A%8410%E5%B9%B4%E7%BB%98%E7%94%BB%E8%BF%9B%E6%AD%A5%E5%8F%B2&type=51" + }, + { + "rank": 11, + "title": "过生日不要忘记反转镜头", + "score": "389.2w", + "word_type": "热", + "work_type_icon": "https://picasso-static.xiaohongshu.com/fe-platform/cfd317ff14757c7ede6ef5176ec487589565e49e.png", + "link": "https://www.xiaohongshu.com/search_result?keyword=%E8%BF%87%E7%94%9F%E6%97%A5%E4%B8%8D%E8%A6%81%E5%BF%98%E8%AE%B0%E5%8F%8D%E8%BD%AC%E9%95%9C%E5%A4%B4&type=51" + }, + { + "rank": 12, + "title": "低卡又解馋的报恩零食", + "score": "389.2w", + "word_type": "无", + "work_type_icon": "", + "link": "https://www.xiaohongshu.com/search_result?keyword=%E4%BD%8E%E5%8D%A1%E5%8F%88%E8%A7%A3%E9%A6%8B%E7%9A%84%E6%8A%A5%E6%81%A9%E9%9B%B6%E9%A3%9F&type=51" + }, + { + "rank": 13, + "title": "和爸妈去旅游 我是水印", + "score": "389w", + "word_type": "新", + "work_type_icon": "https://sns-img-qc.xhscdn.com/search/trends/icon/label/new/version/1", + "link": "https://www.xiaohongshu.com/search_result?keyword=%E5%92%8C%E7%88%B8%E5%A6%88%E5%8E%BB%E6%97%85%E6%B8%B8%20%E6%88%91%E6%98%AF%E6%B0%B4%E5%8D%B0&type=51" + }, + { + "rank": 14, + "title": "一种很新的镜子拍谷法出现了", + "score": "389w", + "word_type": "热", + "work_type_icon": "https://picasso-static.xiaohongshu.com/fe-platform/cfd317ff14757c7ede6ef5176ec487589565e49e.png", + "link": "https://www.xiaohongshu.com/search_result?keyword=%E4%B8%80%E7%A7%8D%E5%BE%88%E6%96%B0%E7%9A%84%E9%95%9C%E5%AD%90%E6%8B%8D%E8%B0%B7%E6%B3%95%E5%87%BA%E7%8E%B0%E4%BA%86&type=51" + }, + { + "rank": 15, + "title": "二次构图带来的故事感", + "score": "389w", + "word_type": "无", + "work_type_icon": "", + "link": "https://www.xiaohongshu.com/search_result?keyword=%E4%BA%8C%E6%AC%A1%E6%9E%84%E5%9B%BE%E5%B8%A6%E6%9D%A5%E7%9A%84%E6%95%85%E4%BA%8B%E6%84%9F&type=51" + }, + { + "rank": 16, + "title": "当我在老动画片里找美妆灵感", + "score": "389w", + "word_type": "无", + "work_type_icon": "", + "link": "https://www.xiaohongshu.com/search_result?keyword=%E5%BD%93%E6%88%91%E5%9C%A8%E8%80%81%E5%8A%A8%E7%94%BB%E7%89%87%E9%87%8C%E6%89%BE%E7%BE%8E%E5%A6%86%E7%81%B5%E6%84%9F&type=51" + }, + { + "rank": 17, + "title": "在蓝调时刻起舞告别夏天", + "score": "389w", + "word_type": "热", + "work_type_icon": "https://picasso-static.xiaohongshu.com/fe-platform/cfd317ff14757c7ede6ef5176ec487589565e49e.png", + "link": "https://www.xiaohongshu.com/search_result?keyword=%E5%9C%A8%E8%93%9D%E8%B0%83%E6%97%B6%E5%88%BB%E8%B5%B7%E8%88%9E%E5%91%8A%E5%88%AB%E5%A4%8F%E5%A4%A9&type=51" + }, + { + "rank": 18, + "title": "人生建议:去看一次鱼灯巡游", + "score": "389w", + "word_type": "无", + "work_type_icon": "", + "link": "https://www.xiaohongshu.com/search_result?keyword=%E4%BA%BA%E7%94%9F%E5%BB%BA%E8%AE%AE%EF%BC%9A%E5%8E%BB%E7%9C%8B%E4%B8%80%E6%AC%A1%E9%B1%BC%E7%81%AF%E5%B7%A1%E6%B8%B8&type=51" + }, + { + "rank": 19, + "title": "夜晚的树是大自然送给天空的星星", + "score": "389w", + "word_type": "新", + "work_type_icon": "https://sns-img-qc.xhscdn.com/search/trends/icon/label/new/version/1", + "link": "https://www.xiaohongshu.com/search_result?keyword=%E5%A4%9C%E6%99%9A%E7%9A%84%E6%A0%91%E6%98%AF%E5%A4%A7%E8%87%AA%E7%84%B6%E9%80%81%E7%BB%99%E5%A4%A9%E7%A9%BA%E7%9A%84%E6%98%9F%E6%98%9F&type=51" + }, + { + "rank": 20, + "title": "欢迎收看老师开学的一天", + "score": "389w", + "word_type": "无", + "work_type_icon": "", + "link": "https://www.xiaohongshu.com/search_result?keyword=%E6%AC%A2%E8%BF%8E%E6%94%B6%E7%9C%8B%E8%80%81%E5%B8%88%E5%BC%80%E5%AD%A6%E7%9A%84%E4%B8%80%E5%A4%A9&type=51" + } + ] +} \ No newline at end of file diff --git a/frontend/public/60sapi/热搜榜单/微博热搜榜/css/background.css b/InfoGenie-frontend/public/60sapi/热搜榜单/微博热搜榜/css/background.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/微博热搜榜/css/background.css rename to InfoGenie-frontend/public/60sapi/热搜榜单/微博热搜榜/css/background.css diff --git a/frontend/public/60sapi/热搜榜单/微博热搜榜/css/style.css b/InfoGenie-frontend/public/60sapi/热搜榜单/微博热搜榜/css/style.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/微博热搜榜/css/style.css rename to InfoGenie-frontend/public/60sapi/热搜榜单/微博热搜榜/css/style.css diff --git a/frontend/public/60sapi/热搜榜单/微博热搜榜/img/qeye.svg b/InfoGenie-frontend/public/60sapi/热搜榜单/微博热搜榜/img/qeye.svg old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/微博热搜榜/img/qeye.svg rename to InfoGenie-frontend/public/60sapi/热搜榜单/微博热搜榜/img/qeye.svg diff --git a/frontend/public/60sapi/热搜榜单/微博热搜榜/index.html b/InfoGenie-frontend/public/60sapi/热搜榜单/微博热搜榜/index.html old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/微博热搜榜/index.html rename to InfoGenie-frontend/public/60sapi/热搜榜单/微博热搜榜/index.html diff --git a/frontend/public/60sapi/热搜榜单/微博热搜榜/js/main.js b/InfoGenie-frontend/public/60sapi/热搜榜单/微博热搜榜/js/main.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/微博热搜榜/js/main.js rename to InfoGenie-frontend/public/60sapi/热搜榜单/微博热搜榜/js/main.js diff --git a/frontend/public/60sapi/热搜榜单/微博热搜榜/接口集合.json b/InfoGenie-frontend/public/60sapi/热搜榜单/微博热搜榜/接口集合.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/微博热搜榜/接口集合.json rename to InfoGenie-frontend/public/60sapi/热搜榜单/微博热搜榜/接口集合.json diff --git a/frontend/public/60sapi/热搜榜单/微博热搜榜/返回接口.json b/InfoGenie-frontend/public/60sapi/热搜榜单/微博热搜榜/返回接口.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/微博热搜榜/返回接口.json rename to InfoGenie-frontend/public/60sapi/热搜榜单/微博热搜榜/返回接口.json diff --git a/InfoGenie-frontend/public/60sapi/热搜榜单/懂车帝热搜/api.js b/InfoGenie-frontend/public/60sapi/热搜榜单/懂车帝热搜/api.js new file mode 100644 index 00000000..a5ec529e --- /dev/null +++ b/InfoGenie-frontend/public/60sapi/热搜榜单/懂车帝热搜/api.js @@ -0,0 +1,180 @@ +/** + * 懂车帝热搜API模块 + * 负责数据获取、验证和格式化 + */ +class CarHotTopicsAPI { + constructor() { + this.baseURL = 'https://60s.api.shumengya.top/v2/dongchedi'; + this.timeout = 10000; // 10秒超时 + this.retryCount = 3; + this.retryDelay = 1000; // 1秒重试延迟 + } + + /** + * 获取热搜数据 + * @param {string} encoding - 编码格式(可选) + * @returns {Promise} 热搜数据 + */ + async fetchHotTopics(encoding = '') { + const url = encoding ? `${this.baseURL}?encoding=${encodeURIComponent(encoding)}` : this.baseURL; + + for (let attempt = 1; attempt <= this.retryCount; attempt++) { + try { + console.log(`[API] 尝试获取数据 (${attempt}/${this.retryCount}): ${url}`); + + const controller = new AbortController(); + const timeoutId = setTimeout(() => controller.abort(), this.timeout); + + const response = await fetch(url, { + method: 'GET', + headers: { + 'Accept': 'application/json', + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36' + }, + signal: controller.signal + }); + + clearTimeout(timeoutId); + + if (!response.ok) { + throw new Error(`HTTP ${response.status}: ${response.statusText}`); + } + + const data = await response.json(); + console.log('[API] 数据获取成功:', data); + + // 验证数据格式 + const validatedData = this.validateData(data); + return this.formatData(validatedData); + + } catch (error) { + console.error(`[API] 第${attempt}次请求失败:`, error.message); + + if (attempt === this.retryCount) { + throw new Error(`获取数据失败: ${error.message}`); + } + + // 等待后重试 + await this.delay(this.retryDelay * attempt); + } + } + } + + /** + * 验证API返回数据格式 + * @param {Object} data - API返回的原始数据 + * @returns {Object} 验证后的数据 + */ + validateData(data) { + if (!data || typeof data !== 'object') { + throw new Error('数据格式错误:响应不是有效的JSON对象'); + } + + if (data.code !== 200) { + throw new Error(`API错误:${data.message || '未知错误'}`); + } + + if (!Array.isArray(data.data)) { + throw new Error('数据格式错误:data字段不是数组'); + } + + // 验证每个热搜项目的必需字段 + data.data.forEach((item, index) => { + const requiredFields = ['rank', 'title', 'score', 'score_desc']; + const missingFields = requiredFields.filter(field => !(field in item)); + + if (missingFields.length > 0) { + console.warn(`[API] 第${index + 1}项数据缺少字段:`, missingFields); + } + }); + + return data; + } + + /** + * 格式化数据 + * @param {Object} data - 验证后的数据 + * @returns {Object} 格式化后的数据 + */ + formatData(data) { + const formattedTopics = data.data.map(item => ({ + rank: parseInt(item.rank) || 0, + title: String(item.title || '').trim(), + score: parseInt(item.score) || 0, + scoreDesc: String(item.score_desc || '').trim(), + // 添加一些计算字段 + isTop3: parseInt(item.rank) <= 3, + formattedScore: this.formatScore(item.score), + searchUrl: this.generateSearchUrl(item.title) + })); + + return { + code: data.code, + message: data.message, + data: formattedTopics, + updateTime: new Date().toLocaleString('zh-CN'), + total: formattedTopics.length + }; + } + + /** + * 格式化分数显示 + * @param {number} score - 原始分数 + * @returns {string} 格式化后的分数 + */ + formatScore(score) { + if (!score || isNaN(score)) return '0'; + + if (score >= 10000) { + return (score / 10000).toFixed(1) + 'w'; + } + + return score.toLocaleString(); + } + + /** + * 生成搜索URL + * @param {string} title - 热搜标题 + * @returns {string} 搜索URL + */ + generateSearchUrl(title) { + const encodedTitle = encodeURIComponent(title); + return `https://www.dongchedi.com/search?query=${encodedTitle}`; + } + + /** + * 延迟函数 + * @param {number} ms - 延迟毫秒数 + * @returns {Promise} Promise对象 + */ + delay(ms) { + return new Promise(resolve => setTimeout(resolve, ms)); + } + + /** + * 获取API状态 + * @returns {Promise} API状态信息 + */ + async getAPIStatus() { + try { + const startTime = Date.now(); + await this.fetchHotTopics(); + const responseTime = Date.now() - startTime; + + return { + status: 'online', + responseTime: responseTime, + message: 'API服务正常' + }; + } catch (error) { + return { + status: 'offline', + responseTime: null, + message: error.message + }; + } + } +} + +// 导出API实例 +window.CarHotTopicsAPI = CarHotTopicsAPI; \ No newline at end of file diff --git a/InfoGenie-frontend/public/60sapi/热搜榜单/懂车帝热搜/app.js b/InfoGenie-frontend/public/60sapi/热搜榜单/懂车帝热搜/app.js new file mode 100644 index 00000000..9972067a --- /dev/null +++ b/InfoGenie-frontend/public/60sapi/热搜榜单/懂车帝热搜/app.js @@ -0,0 +1,313 @@ +/** + * 懂车帝热搜应用主程序 + * 整合API和UI模块,管理应用生命周期 + */ +class CarHotTopicsApp { + constructor() { + this.api = null; + this.ui = null; + this.autoRefreshInterval = null; + this.autoRefreshDelay = 5 * 60 * 1000; // 5分钟自动刷新 + this.isInitialized = false; + + this.init(); + } + + /** + * 初始化应用 + */ + async init() { + try { + console.log('[App] 开始初始化懂车帝热搜应用...'); + + // 等待DOM加载完成 + if (document.readyState === 'loading') { + await new Promise(resolve => { + document.addEventListener('DOMContentLoaded', resolve); + }); + } + + // 检查必需的类是否存在 + if (!window.CarHotTopicsAPI || !window.UIManager) { + throw new Error('缺少必需的模块:CarHotTopicsAPI 或 UIManager'); + } + + // 初始化模块 + this.api = new window.CarHotTopicsAPI(); + this.ui = new window.UIManager(); + + // 检查必需的DOM元素 + this.checkRequiredElements(); + + // 绑定事件 + this.bindEvents(); + + // 首次加载数据 + await this.loadData(); + + // 设置自动刷新 + this.setupAutoRefresh(); + + // 设置页面可见性监听 + this.setupVisibilityListener(); + + this.isInitialized = true; + console.log('[App] 应用初始化完成'); + + } catch (error) { + console.error('[App] 初始化失败:', error); + this.handleInitError(error); + } + } + + /** + * 检查必需的DOM元素 + */ + checkRequiredElements() { + const requiredIds = ['loading', 'error', 'hotList', 'topicsContainer', 'refreshBtn']; + const missingElements = requiredIds.filter(id => !document.getElementById(id)); + + if (missingElements.length > 0) { + throw new Error(`缺少必需的DOM元素: ${missingElements.join(', ')}`); + } + } + + /** + * 绑定事件监听器 + */ + bindEvents() { + // 监听UI触发的刷新事件 + document.addEventListener('refreshData', () => { + this.handleManualRefresh(); + }); + + // 监听网络状态变化 + window.addEventListener('online', () => { + console.log('[App] 网络已连接,尝试刷新数据'); + this.ui.showToast('网络已连接'); + this.loadData(); + }); + + window.addEventListener('offline', () => { + console.log('[App] 网络已断开'); + this.ui.showToast('网络连接已断开'); + }); + + // 监听页面错误 + window.addEventListener('error', (event) => { + console.error('[App] 页面错误:', event.error); + }); + + // 监听未处理的Promise拒绝 + window.addEventListener('unhandledrejection', (event) => { + console.error('[App] 未处理的Promise拒绝:', event.reason); + event.preventDefault(); + }); + } + + /** + * 加载热搜数据 + * @param {boolean} showLoading - 是否显示加载状态 + */ + async loadData(showLoading = true) { + try { + if (showLoading) { + this.ui.showLoading(); + } + + console.log('[App] 开始加载热搜数据...'); + const data = await this.api.fetchHotTopics(); + + console.log('[App] 数据加载成功:', data); + this.ui.showHotList(data); + + // 重置自动刷新计时器 + this.resetAutoRefresh(); + + } catch (error) { + console.error('[App] 数据加载失败:', error); + this.ui.showError(error.message); + + // 如果是网络错误,延迟重试 + if (this.isNetworkError(error)) { + setTimeout(() => { + if (navigator.onLine) { + this.loadData(false); + } + }, 30000); // 30秒后重试 + } + } + } + + /** + * 处理手动刷新 + */ + async handleManualRefresh() { + console.log('[App] 手动刷新数据'); + await this.loadData(); + } + + /** + * 设置自动刷新 + */ + setupAutoRefresh() { + if (this.autoRefreshInterval) { + clearInterval(this.autoRefreshInterval); + } + + this.autoRefreshInterval = setInterval(() => { + if (document.visibilityState === 'visible' && navigator.onLine) { + console.log('[App] 自动刷新数据'); + this.loadData(false); + } + }, this.autoRefreshDelay); + + console.log(`[App] 自动刷新已设置,间隔: ${this.autoRefreshDelay / 1000}秒`); + } + + /** + * 重置自动刷新计时器 + */ + resetAutoRefresh() { + this.setupAutoRefresh(); + } + + /** + * 设置页面可见性监听 + */ + setupVisibilityListener() { + document.addEventListener('visibilitychange', () => { + if (document.visibilityState === 'visible') { + console.log('[App] 页面变为可见'); + + // 检查数据是否需要更新 + const currentData = this.ui.getCurrentData(); + if (currentData) { + const lastUpdate = new Date(currentData.updateTime); + const now = new Date(); + const timeDiff = now - lastUpdate; + + // 如果数据超过3分钟,自动刷新 + if (timeDiff > 3 * 60 * 1000) { + console.log('[App] 数据已过期,自动刷新'); + this.loadData(false); + } + } + } else { + console.log('[App] 页面变为隐藏'); + } + }); + } + + /** + * 判断是否为网络错误 + * @param {Error} error - 错误对象 + * @returns {boolean} 是否为网络错误 + */ + isNetworkError(error) { + const networkErrorMessages = [ + 'fetch', + 'network', + 'timeout', + 'connection', + 'offline' + ]; + + return networkErrorMessages.some(msg => + error.message.toLowerCase().includes(msg) + ); + } + + /** + * 处理初始化错误 + * @param {Error} error - 错误对象 + */ + handleInitError(error) { + // 显示基本错误信息 + const errorContainer = document.getElementById('error'); + if (errorContainer) { + errorContainer.style.display = 'flex'; + const errorMessage = errorContainer.querySelector('.error-message'); + if (errorMessage) { + errorMessage.textContent = `初始化失败: ${error.message}`; + } + } + + // 隐藏加载状态 + const loadingContainer = document.getElementById('loading'); + if (loadingContainer) { + loadingContainer.style.display = 'none'; + } + } + + /** + * 获取应用状态 + * @returns {Object} 应用状态信息 + */ + getStatus() { + return { + isInitialized: this.isInitialized, + hasData: !!this.ui?.getCurrentData(), + autoRefreshEnabled: !!this.autoRefreshInterval, + isOnline: navigator.onLine, + isVisible: document.visibilityState === 'visible' + }; + } + + /** + * 销毁应用 + */ + destroy() { + console.log('[App] 销毁应用'); + + if (this.autoRefreshInterval) { + clearInterval(this.autoRefreshInterval); + this.autoRefreshInterval = null; + } + + if (this.ui) { + this.ui.clearData(); + } + + this.isInitialized = false; + } +} + +// 全局错误处理 +window.addEventListener('error', (event) => { + console.error('[Global] JavaScript错误:', { + message: event.message, + filename: event.filename, + lineno: event.lineno, + colno: event.colno, + error: event.error + }); +}); + +window.addEventListener('unhandledrejection', (event) => { + console.error('[Global] 未处理的Promise拒绝:', event.reason); +}); + +// 应用启动 +let app; + +// 确保在DOM加载完成后启动应用 +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', () => { + app = new CarHotTopicsApp(); + }); +} else { + app = new CarHotTopicsApp(); +} + +// 导出应用实例(用于调试) +window.CarHotTopicsApp = CarHotTopicsApp; +window.app = app; + +// 调试信息 +console.log('[App] 懂车帝热搜应用脚本已加载'); +console.log('[Debug] 可用的全局对象:', { + CarHotTopicsAPI: !!window.CarHotTopicsAPI, + UIManager: !!window.UIManager, + CarHotTopicsApp: !!window.CarHotTopicsApp +}); \ No newline at end of file diff --git a/InfoGenie-frontend/public/60sapi/热搜榜单/懂车帝热搜/background.css b/InfoGenie-frontend/public/60sapi/热搜榜单/懂车帝热搜/background.css new file mode 100644 index 00000000..4b43a29f --- /dev/null +++ b/InfoGenie-frontend/public/60sapi/热搜榜单/懂车帝热搜/background.css @@ -0,0 +1,55 @@ +/* 背景样式文件 */ +body { + background: linear-gradient(135deg, #e8f5e8 0%, #f0f8f0 25%, #f5f9f5 50%, #fafcfa 75%, #ffffff 100%); + background-attachment: fixed; + background-size: 400% 400%; + animation: gradientShift 15s ease infinite; +} + +/* 背景动画 */ +@keyframes gradientShift { + 0% { + background-position: 0% 50%; + } + 50% { + background-position: 100% 50%; + } + 100% { + background-position: 0% 50%; + } +} + +/* 容器背景 */ +.container { + background: rgba(255, 255, 255, 0.1); + backdrop-filter: blur(10px); + border-radius: 20px; + margin-top: 20px; + margin-bottom: 20px; + box-shadow: 0 8px 32px rgba(139, 195, 74, 0.1); +} + +/* 移动端背景优化 */ +@media (max-width: 767px) { + body { + background-attachment: scroll; + } + + .container { + margin-top: 10px; + margin-bottom: 10px; + border-radius: 16px; + } +} + +/* 深色模式支持 */ +@media (prefers-color-scheme: dark) { + body { + background: linear-gradient(135deg, #1a2e1a 0%, #2d4a2d 25%, #3a5a3a 50%, #4a6a4a 75%, #5a7a5a 100%); + } + + .container { + background: rgba(0, 0, 0, 0.2); + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); + } +} \ No newline at end of file diff --git a/InfoGenie-frontend/public/60sapi/热搜榜单/懂车帝热搜/index.html b/InfoGenie-frontend/public/60sapi/热搜榜单/懂车帝热搜/index.html new file mode 100644 index 00000000..6c84eae6 --- /dev/null +++ b/InfoGenie-frontend/public/60sapi/热搜榜单/懂车帝热搜/index.html @@ -0,0 +1,72 @@ + + + + + + + + 懂车帝热搜榜单 + + + + + +
+ +
+ + +
+ + +
+ +
+
+

正在加载热搜数据...

+
+ + + + + + +
+ + +
+ +
+
+ + +
+ + + + + + \ No newline at end of file diff --git a/InfoGenie-frontend/public/60sapi/热搜榜单/懂车帝热搜/styles.css b/InfoGenie-frontend/public/60sapi/热搜榜单/懂车帝热搜/styles.css new file mode 100644 index 00000000..b5fc8011 --- /dev/null +++ b/InfoGenie-frontend/public/60sapi/热搜榜单/懂车帝热搜/styles.css @@ -0,0 +1,532 @@ +/* 全局样式重置 */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif; + line-height: 1.6; + color: #333; + min-height: 100vh; + overflow-x: hidden; +} + +/* 容器布局 */ +.container { + max-width: 1200px; + margin: 0 auto; + min-height: 100vh; + display: flex; + flex-direction: column; + padding: 0 16px; +} + +/* 头部样式 */ +.header { + display: flex; + justify-content: space-between; + align-items: center; + padding: 20px 0; + border-bottom: 1px solid rgba(139, 195, 74, 0.2); + margin-bottom: 20px; +} + +.logo { + display: flex; + align-items: center; + gap: 12px; +} + +.logo i { + font-size: 28px; + color: #8bc34a; + background: linear-gradient(135deg, #a5d6a7, #81c784); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.logo h1 { + font-size: 24px; + font-weight: 600; + color: #2e7d32; + margin: 0; +} + +.refresh-btn { + display: flex; + align-items: center; + gap: 8px; + padding: 10px 16px; + background: linear-gradient(135deg, #a5d6a7, #81c784); + color: white; + border: none; + border-radius: 20px; + cursor: pointer; + font-size: 14px; + font-weight: 500; + transition: all 0.3s ease; + box-shadow: 0 2px 8px rgba(139, 195, 74, 0.3); +} + +.refresh-btn:hover { + background: linear-gradient(135deg, #81c784, #66bb6a); + transform: translateY(-1px); + box-shadow: 0 4px 12px rgba(139, 195, 74, 0.4); +} + +.refresh-btn:active { + transform: translateY(0); +} + +.refresh-btn i { + font-size: 14px; +} + +.refresh-btn.loading i { + animation: spin 1s linear infinite; +} + +/* 主内容区域 */ +.main-content { + flex: 1; + position: relative; +} + +/* 加载状态 */ +.loading { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + padding: 60px 20px; + text-align: center; +} + +.loading-spinner { + width: 40px; + height: 40px; + border: 3px solid rgba(139, 195, 74, 0.2); + border-top: 3px solid #8bc34a; + border-radius: 50%; + animation: spin 1s linear infinite; + margin-bottom: 16px; +} + +.loading p { + color: #666; + font-size: 16px; +} + +/* 错误状态 */ +.error { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + padding: 60px 20px; + text-align: center; +} + +.error-icon i { + font-size: 48px; + color: #ff7043; + margin-bottom: 16px; +} + +.error-message { + color: #666; + font-size: 16px; + margin-bottom: 20px; +} + +.retry-btn { + padding: 10px 20px; + background: linear-gradient(135deg, #a5d6a7, #81c784); + color: white; + border: none; + border-radius: 20px; + cursor: pointer; + font-size: 14px; + transition: all 0.3s ease; +} + +.retry-btn:hover { + background: linear-gradient(135deg, #81c784, #66bb6a); +} + +/* 热搜列表 */ +.hot-list { + animation: fadeIn 0.5s ease-in; +} + +.list-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 20px; + padding-bottom: 12px; + border-bottom: 2px solid rgba(139, 195, 74, 0.2); +} + +.list-header h2 { + font-size: 20px; + font-weight: 600; + color: #2e7d32; + margin: 0; +} + +.update-time { + font-size: 12px; + color: #666; + background: rgba(139, 195, 74, 0.1); + padding: 4px 8px; + border-radius: 12px; +} + +.topics-container { + display: grid; + gap: 12px; +} + +/* 热搜项目 */ +.topic-item { + background: white; + border-radius: 12px; + padding: 16px; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06); + border: 1px solid rgba(139, 195, 74, 0.1); + transition: all 0.3s ease; + cursor: pointer; + position: relative; + overflow: hidden; +} + +.topic-item:hover { + transform: translateY(-2px); + box-shadow: 0 4px 16px rgba(139, 195, 74, 0.15); + border-color: rgba(139, 195, 74, 0.3); +} + +.topic-item::before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 4px; + height: 100%; + background: linear-gradient(135deg, #a5d6a7, #81c784); + opacity: 0; + transition: opacity 0.3s ease; +} + +.topic-item:hover::before { + opacity: 1; +} + +.topic-header { + display: flex; + align-items: center; + gap: 12px; + margin-bottom: 8px; +} + +.rank-badge { + display: flex; + align-items: center; + justify-content: center; + width: 24px; + height: 24px; + border-radius: 50%; + font-size: 12px; + font-weight: 600; + color: white; + flex-shrink: 0; +} + +.rank-badge.top-3 { + background: linear-gradient(135deg, #ffb74d, #ff9800); + box-shadow: 0 2px 6px rgba(255, 152, 0, 0.3); +} + +.rank-badge.normal { + background: linear-gradient(135deg, #a5d6a7, #81c784); + box-shadow: 0 2px 6px rgba(139, 195, 74, 0.3); +} + +.topic-title { + font-size: 16px; + font-weight: 500; + color: #333; + line-height: 1.4; + flex: 1; + word-break: break-word; +} + +.topic-footer { + display: flex; + justify-content: space-between; + align-items: center; + margin-top: 12px; + padding-top: 8px; + border-top: 1px solid rgba(139, 195, 74, 0.1); +} + +.topic-score { + font-size: 14px; + font-weight: 600; + color: #8bc34a; +} + +.topic-actions { + display: flex; + gap: 8px; +} + +.action-btn { + padding: 4px 8px; + background: rgba(139, 195, 74, 0.1); + color: #8bc34a; + border: none; + border-radius: 6px; + cursor: pointer; + font-size: 12px; + transition: all 0.3s ease; +} + +.action-btn:hover { + background: rgba(139, 195, 74, 0.2); +} + +/* 底部样式 */ +.footer { + margin-top: 40px; + padding: 20px 0; + border-top: 1px solid rgba(139, 195, 74, 0.2); + text-align: center; +} + +.footer-content p { + margin: 4px 0; + font-size: 12px; + color: #666; +} + +.data-source { + font-weight: 500; +} + +/* 提示消息 */ +.toast { + position: fixed; + top: 20px; + left: 50%; + transform: translateX(-50%); + background: rgba(46, 125, 50, 0.9); + color: white; + padding: 12px 20px; + border-radius: 20px; + font-size: 14px; + z-index: 1000; + opacity: 0; + visibility: hidden; + transition: all 0.3s ease; + backdrop-filter: blur(10px); +} + +.toast.show { + opacity: 1; + visibility: visible; +} + +/* 动画效果 */ +@keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} + +@keyframes fadeIn { + 0% { + opacity: 0; + transform: translateY(20px); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} + +/* 平板端适配 */ +@media (min-width: 768px) and (max-width: 1024px) { + .container { + padding: 0 24px; + } + + .topics-container { + grid-template-columns: repeat(2, 1fr); + gap: 16px; + } + + .topic-item { + padding: 18px; + } + + .logo h1 { + font-size: 26px; + } + + .topic-title { + font-size: 17px; + } +} + +/* 桌面端适配 */ +@media (min-width: 1025px) { + .container { + padding: 0 32px; + } + + .header { + padding: 24px 0; + } + + .topics-container { + grid-template-columns: repeat(3, 1fr); + gap: 20px; + } + + .topic-item { + padding: 20px; + } + + .logo h1 { + font-size: 28px; + } + + .topic-title { + font-size: 18px; + } + + .refresh-btn { + padding: 12px 20px; + font-size: 15px; + } +} + +/* 移动端优化 */ +@media (max-width: 767px) { + .container { + padding: 0 12px; + } + + .header { + padding: 16px 0; + margin-bottom: 16px; + } + + .logo h1 { + font-size: 20px; + } + + .logo i { + font-size: 24px; + } + + .refresh-btn { + padding: 8px 12px; + font-size: 13px; + } + + .refresh-btn span { + display: none; + } + + .topics-container { + grid-template-columns: 1fr; + gap: 10px; + } + + .topic-item { + padding: 14px; + } + + .topic-title { + font-size: 15px; + line-height: 1.3; + } + + .rank-badge { + width: 22px; + height: 22px; + font-size: 11px; + } + + .topic-score { + font-size: 13px; + } + + .action-btn { + padding: 3px 6px; + font-size: 11px; + } + + .list-header h2 { + font-size: 18px; + } + + .update-time { + font-size: 11px; + } + + .footer { + margin-top: 30px; + padding: 16px 0; + } + + .toast { + left: 12px; + right: 12px; + transform: none; + border-radius: 12px; + } +} + +/* 超小屏幕优化 */ +@media (max-width: 360px) { + .container { + padding: 0 8px; + } + + .topic-item { + padding: 12px; + } + + .topic-title { + font-size: 14px; + } + + .logo h1 { + font-size: 18px; + } +} + +/* 滚动条样式 */ +::-webkit-scrollbar { + width: 6px; +} + +::-webkit-scrollbar-track { + background: rgba(139, 195, 74, 0.1); + border-radius: 3px; +} + +::-webkit-scrollbar-thumb { + background: rgba(139, 195, 74, 0.5); + border-radius: 3px; +} + +::-webkit-scrollbar-thumb:hover { + background: rgba(139, 195, 74, 0.7); +} \ No newline at end of file diff --git a/InfoGenie-frontend/public/60sapi/热搜榜单/懂车帝热搜/ui.js b/InfoGenie-frontend/public/60sapi/热搜榜单/懂车帝热搜/ui.js new file mode 100644 index 00000000..bb151216 --- /dev/null +++ b/InfoGenie-frontend/public/60sapi/热搜榜单/懂车帝热搜/ui.js @@ -0,0 +1,410 @@ +/** + * UI管理模块 + * 负责页面渲染、交互和状态管理 + */ +class UIManager { + constructor() { + this.elements = {}; + this.isLoading = false; + this.currentData = null; + this.touchStartY = 0; + this.pullThreshold = 80; + this.isPulling = false; + + this.initElements(); + this.bindEvents(); + } + + /** + * 初始化DOM元素引用 + */ + initElements() { + this.elements = { + loading: document.getElementById('loading'), + error: document.getElementById('error'), + hotList: document.getElementById('hotList'), + topicsContainer: document.getElementById('topicsContainer'), + refreshBtn: document.getElementById('refreshBtn'), + updateTime: document.getElementById('updateTime'), + toast: document.getElementById('toast') + }; + + // 检查必需元素 + const missingElements = Object.entries(this.elements) + .filter(([key, element]) => !element) + .map(([key]) => key); + + if (missingElements.length > 0) { + console.error('[UI] 缺少必需的DOM元素:', missingElements); + } + } + + /** + * 绑定事件监听器 + */ + bindEvents() { + // 刷新按钮点击事件 + if (this.elements.refreshBtn) { + this.elements.refreshBtn.addEventListener('click', () => { + this.handleRefresh(); + }); + } + + // 键盘快捷键 + document.addEventListener('keydown', (e) => { + if (e.key === 'F5' || (e.ctrlKey && e.key === 'r')) { + e.preventDefault(); + this.handleRefresh(); + } + }); + + // 移动端下拉刷新 + this.initPullToRefresh(); + + // 页面可见性变化 + document.addEventListener('visibilitychange', () => { + if (!document.hidden && this.currentData) { + // 页面重新可见时检查数据是否过期(5分钟) + const lastUpdate = new Date(this.currentData.updateTime); + const now = new Date(); + if (now - lastUpdate > 5 * 60 * 1000) { + this.handleRefresh(); + } + } + }); + } + + /** + * 初始化下拉刷新功能 + */ + initPullToRefresh() { + let startY = 0; + let currentY = 0; + let pullDistance = 0; + + document.addEventListener('touchstart', (e) => { + if (window.scrollY === 0) { + startY = e.touches[0].clientY; + this.isPulling = true; + } + }, { passive: true }); + + document.addEventListener('touchmove', (e) => { + if (!this.isPulling || this.isLoading) return; + + currentY = e.touches[0].clientY; + pullDistance = currentY - startY; + + if (pullDistance > 0 && window.scrollY === 0) { + e.preventDefault(); + + // 添加视觉反馈 + const progress = Math.min(pullDistance / this.pullThreshold, 1); + document.body.style.transform = `translateY(${pullDistance * 0.3}px)`; + document.body.style.opacity = 1 - progress * 0.1; + } + }, { passive: false }); + + document.addEventListener('touchend', () => { + if (this.isPulling) { + document.body.style.transform = ''; + document.body.style.opacity = ''; + + if (pullDistance > this.pullThreshold && !this.isLoading) { + this.handleRefresh(); + } + + this.isPulling = false; + pullDistance = 0; + } + }); + } + + /** + * 处理刷新操作 + */ + async handleRefresh() { + if (this.isLoading) return; + + this.showToast('正在刷新数据...'); + + // 触发自定义刷新事件 + const refreshEvent = new CustomEvent('refreshData'); + document.dispatchEvent(refreshEvent); + } + + /** + * 显示加载状态 + */ + showLoading() { + this.isLoading = true; + this.hideAllStates(); + if (this.elements.loading) { + this.elements.loading.style.display = 'flex'; + } + + // 刷新按钮加载状态 + if (this.elements.refreshBtn) { + this.elements.refreshBtn.classList.add('loading'); + this.elements.refreshBtn.disabled = true; + } + } + + /** + * 显示错误状态 + * @param {string} message - 错误消息 + */ + showError(message = '加载失败,请稍后重试') { + this.isLoading = false; + this.hideAllStates(); + + if (this.elements.error) { + this.elements.error.style.display = 'flex'; + const errorMessage = this.elements.error.querySelector('.error-message'); + if (errorMessage) { + errorMessage.textContent = message; + } + } + + this.resetRefreshButton(); + } + + /** + * 显示热搜列表 + * @param {Object} data - 热搜数据 + */ + showHotList(data) { + this.isLoading = false; + this.currentData = data; + this.hideAllStates(); + + if (this.elements.hotList) { + this.elements.hotList.style.display = 'block'; + } + + this.renderTopics(data.data); + this.updateTime(data.updateTime); + this.resetRefreshButton(); + + this.showToast(`已更新 ${data.total} 条热搜数据`); + } + + /** + * 隐藏所有状态 + */ + hideAllStates() { + ['loading', 'error', 'hotList'].forEach(state => { + if (this.elements[state]) { + this.elements[state].style.display = 'none'; + } + }); + } + + /** + * 重置刷新按钮状态 + */ + resetRefreshButton() { + if (this.elements.refreshBtn) { + this.elements.refreshBtn.classList.remove('loading'); + this.elements.refreshBtn.disabled = false; + } + } + + /** + * 渲染热搜话题列表 + * @param {Array} topics - 话题数组 + */ + renderTopics(topics) { + if (!this.elements.topicsContainer) return; + + this.elements.topicsContainer.innerHTML = ''; + + topics.forEach((topic, index) => { + const topicElement = this.createTopicElement(topic, index); + this.elements.topicsContainer.appendChild(topicElement); + }); + } + + /** + * 创建单个话题元素 + * @param {Object} topic - 话题数据 + * @param {number} index - 索引 + * @returns {HTMLElement} 话题元素 + */ + createTopicElement(topic, index) { + const item = document.createElement('div'); + item.className = 'topic-item'; + item.style.animationDelay = `${index * 0.1}s`; + + item.innerHTML = ` +
+
+ ${topic.rank} +
+
${this.escapeHtml(topic.title)}
+
+ + `; + + this.bindTopicEvents(item, topic); + return item; + } + + /** + * 绑定话题元素事件 + * @param {HTMLElement} element - 话题元素 + * @param {Object} topic - 话题数据 + */ + bindTopicEvents(element, topic) { + // 点击整个项目跳转搜索 + element.addEventListener('click', (e) => { + if (!e.target.closest('.action-btn')) { + window.open(topic.searchUrl, '_blank'); + } + }); + + // 复制按钮 + const copyBtn = element.querySelector('.copy-btn'); + if (copyBtn) { + copyBtn.addEventListener('click', (e) => { + e.stopPropagation(); + this.copyToClipboard(topic.title); + }); + } + + // 搜索按钮 + const searchBtn = element.querySelector('.search-btn'); + if (searchBtn) { + searchBtn.addEventListener('click', (e) => { + e.stopPropagation(); + window.open(topic.searchUrl, '_blank'); + }); + } + + // 长按显示详情 + let longPressTimer; + element.addEventListener('touchstart', () => { + longPressTimer = setTimeout(() => { + this.showTopicDetails(topic); + }, 800); + }); + + element.addEventListener('touchend', () => { + clearTimeout(longPressTimer); + }); + + element.addEventListener('touchmove', () => { + clearTimeout(longPressTimer); + }); + } + + /** + * 显示话题详情 + * @param {Object} topic - 话题数据 + */ + showTopicDetails(topic) { + const details = ` + 标题: ${topic.title} + 排名: 第${topic.rank}名 + 热度: ${topic.scoreDesc} + 原始分数: ${topic.score.toLocaleString()} + `; + + this.showToast(details, 3000); + } + + /** + * 复制文本到剪贴板 + * @param {string} text - 要复制的文本 + */ + async copyToClipboard(text) { + try { + if (navigator.clipboard && window.isSecureContext) { + await navigator.clipboard.writeText(text); + } else { + // 降级方案 + const textArea = document.createElement('textarea'); + textArea.value = text; + textArea.style.position = 'fixed'; + textArea.style.opacity = '0'; + document.body.appendChild(textArea); + textArea.select(); + document.execCommand('copy'); + document.body.removeChild(textArea); + } + + this.showToast('已复制到剪贴板'); + } catch (error) { + console.error('[UI] 复制失败:', error); + this.showToast('复制失败'); + } + } + + /** + * 更新时间显示 + * @param {string} time - 更新时间 + */ + updateTime(time) { + if (this.elements.updateTime) { + this.elements.updateTime.textContent = `更新时间: ${time}`; + } + } + + /** + * 显示提示消息 + * @param {string} message - 消息内容 + * @param {number} duration - 显示时长(毫秒) + */ + showToast(message, duration = 2000) { + if (!this.elements.toast) return; + + this.elements.toast.textContent = message; + this.elements.toast.classList.add('show'); + + setTimeout(() => { + this.elements.toast.classList.remove('show'); + }, duration); + } + + /** + * HTML转义 + * @param {string} text - 原始文本 + * @returns {string} 转义后的文本 + */ + escapeHtml(text) { + const div = document.createElement('div'); + div.textContent = text; + return div.innerHTML; + } + + /** + * 获取当前数据 + * @returns {Object|null} 当前数据 + */ + getCurrentData() { + return this.currentData; + } + + /** + * 清除当前数据 + */ + clearData() { + this.currentData = null; + if (this.elements.topicsContainer) { + this.elements.topicsContainer.innerHTML = ''; + } + } +} + +// 导出UI管理器 +window.UIManager = UIManager; \ No newline at end of file diff --git a/InfoGenie-frontend/public/60sapi/热搜榜单/懂车帝热搜/返回接口.json b/InfoGenie-frontend/public/60sapi/热搜榜单/懂车帝热搜/返回接口.json new file mode 100644 index 00000000..441f0095 --- /dev/null +++ b/InfoGenie-frontend/public/60sapi/热搜榜单/懂车帝热搜/返回接口.json @@ -0,0 +1,66 @@ +{ + "code": 200, + "message": "获取成功。数据来自官方/权威源头,以确保稳定与实时。开源地址 https://github.com/vikiboss/60s,反馈群 595941841", + "data": [ + { + "rank": 1, + "title": "吉利银河星耀6将于9月5日发布", + "score": 846099, + "score_desc": "84.6w" + }, + { + "rank": 2, + "title": "销售称Model Y L日均订单近万辆", + "score": 602350, + "score_desc": "60.2w" + }, + { + "rank": 3, + "title": "极氪9X将于9月底上市", + "score": 241114, + "score_desc": "24.1w" + }, + { + "rank": 4, + "title": "比亚迪“全家福”亮相齐鲁秋季车展", + "score": 239586, + "score_desc": "24.0w" + }, + { + "rank": 5, + "title": "新一代宝马X5内饰曝光", + "score": 209847, + "score_desc": "21.0w" + }, + { + "rank": 6, + "title": "LOL前职业选手PDD喜提理想MEGA", + "score": 204628, + "score_desc": "20.5w" + }, + { + "rank": 7, + "title": "零跑Lafa5伪装车曝光", + "score": 143127, + "score_desc": "14.3w" + }, + { + "rank": 8, + "title": "方程豹钛7将于9月9日上市", + "score": 135759, + "score_desc": "13.6w" + }, + { + "rank": 9, + "title": "零跑9月购车政策", + "score": 94419, + "score_desc": "9.4w" + }, + { + "rank": 10, + "title": "捷途X70L将于9月10日预售", + "score": 74292, + "score_desc": "7.4w" + } + ] +} \ No newline at end of file diff --git a/frontend/public/60sapi/热搜榜单/抖音热搜榜/css/background.css b/InfoGenie-frontend/public/60sapi/热搜榜单/抖音热搜榜/css/background.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/抖音热搜榜/css/background.css rename to InfoGenie-frontend/public/60sapi/热搜榜单/抖音热搜榜/css/background.css diff --git a/frontend/public/60sapi/热搜榜单/抖音热搜榜/css/style.css b/InfoGenie-frontend/public/60sapi/热搜榜单/抖音热搜榜/css/style.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/抖音热搜榜/css/style.css rename to InfoGenie-frontend/public/60sapi/热搜榜单/抖音热搜榜/css/style.css diff --git a/frontend/public/60sapi/热搜榜单/抖音热搜榜/index.html b/InfoGenie-frontend/public/60sapi/热搜榜单/抖音热搜榜/index.html old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/抖音热搜榜/index.html rename to InfoGenie-frontend/public/60sapi/热搜榜单/抖音热搜榜/index.html diff --git a/frontend/public/60sapi/热搜榜单/抖音热搜榜/js/script.js b/InfoGenie-frontend/public/60sapi/热搜榜单/抖音热搜榜/js/script.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/抖音热搜榜/js/script.js rename to InfoGenie-frontend/public/60sapi/热搜榜单/抖音热搜榜/js/script.js diff --git a/frontend/public/60sapi/热搜榜单/抖音热搜榜/接口集合.json b/InfoGenie-frontend/public/60sapi/热搜榜单/抖音热搜榜/接口集合.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/抖音热搜榜/接口集合.json rename to InfoGenie-frontend/public/60sapi/热搜榜单/抖音热搜榜/接口集合.json diff --git a/frontend/public/60sapi/热搜榜单/抖音热搜榜/返回接口.json b/InfoGenie-frontend/public/60sapi/热搜榜单/抖音热搜榜/返回接口.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/抖音热搜榜/返回接口.json rename to InfoGenie-frontend/public/60sapi/热搜榜单/抖音热搜榜/返回接口.json diff --git a/frontend/public/60sapi/热搜榜单/猫眼票房排行榜/css/style.css b/InfoGenie-frontend/public/60sapi/热搜榜单/猫眼票房排行榜/css/style.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/猫眼票房排行榜/css/style.css rename to InfoGenie-frontend/public/60sapi/热搜榜单/猫眼票房排行榜/css/style.css diff --git a/frontend/public/60sapi/热搜榜单/猫眼票房排行榜/index.html b/InfoGenie-frontend/public/60sapi/热搜榜单/猫眼票房排行榜/index.html old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/猫眼票房排行榜/index.html rename to InfoGenie-frontend/public/60sapi/热搜榜单/猫眼票房排行榜/index.html diff --git a/frontend/public/60sapi/热搜榜单/猫眼票房排行榜/js/script.js b/InfoGenie-frontend/public/60sapi/热搜榜单/猫眼票房排行榜/js/script.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/猫眼票房排行榜/js/script.js rename to InfoGenie-frontend/public/60sapi/热搜榜单/猫眼票房排行榜/js/script.js diff --git a/frontend/public/60sapi/热搜榜单/猫眼票房排行榜/接口集合.json b/InfoGenie-frontend/public/60sapi/热搜榜单/猫眼票房排行榜/接口集合.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/猫眼票房排行榜/接口集合.json rename to InfoGenie-frontend/public/60sapi/热搜榜单/猫眼票房排行榜/接口集合.json diff --git a/frontend/public/60sapi/热搜榜单/猫眼票房排行榜/返回接口.json b/InfoGenie-frontend/public/60sapi/热搜榜单/猫眼票房排行榜/返回接口.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/猫眼票房排行榜/返回接口.json rename to InfoGenie-frontend/public/60sapi/热搜榜单/猫眼票房排行榜/返回接口.json diff --git a/InfoGenie-frontend/public/60sapi/热搜榜单/百度实时热搜/background.css b/InfoGenie-frontend/public/60sapi/热搜榜单/百度实时热搜/background.css new file mode 100644 index 00000000..7be1cfe9 --- /dev/null +++ b/InfoGenie-frontend/public/60sapi/热搜榜单/百度实时热搜/background.css @@ -0,0 +1,196 @@ +/* 页面主背景 */ +body { + background: linear-gradient(135deg, #f8fffe 0%, #e8f5e8 50%, #d4f1d4 100%); + background-attachment: fixed; + position: relative; +} + +/* 背景装饰元素 */ +body::before { + content: ''; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-image: + radial-gradient(circle at 20% 80%, rgba(39, 174, 96, 0.05) 0%, transparent 50%), + radial-gradient(circle at 80% 20%, rgba(46, 204, 113, 0.05) 0%, transparent 50%), + radial-gradient(circle at 40% 40%, rgba(168, 230, 207, 0.08) 0%, transparent 50%); + pointer-events: none; + z-index: -1; +} + +/* 容器背景 */ +.container { + background: rgba(255, 255, 255, 0.7); + backdrop-filter: blur(10px); + border-radius: 16px; + box-shadow: 0 8px 32px rgba(39, 174, 96, 0.1); + margin-top: 20px; + margin-bottom: 20px; +} + +/* 头部背景 */ +.header { + background: linear-gradient(135deg, rgba(39, 174, 96, 0.05) 0%, rgba(168, 230, 207, 0.05) 100%); + border-radius: 16px 16px 0 0; + position: relative; + overflow: hidden; +} + +.header::before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: + radial-gradient(circle at 30% 20%, rgba(39, 174, 96, 0.1) 0%, transparent 40%), + radial-gradient(circle at 70% 80%, rgba(46, 204, 113, 0.08) 0%, transparent 40%); + pointer-events: none; +} + +/* 热搜项目背景 */ +.hot-item { + background: rgba(255, 255, 255, 0.9); + backdrop-filter: blur(8px); + position: relative; + overflow: hidden; +} + +.hot-item::after { + content: ''; + position: absolute; + top: 0; + right: 0; + width: 60px; + height: 100%; + background: linear-gradient(90deg, transparent 0%, rgba(39, 174, 96, 0.02) 100%); + pointer-events: none; +} + +/* 前三名特殊背景效果 */ +.hot-item:nth-child(1) { + background: linear-gradient(135deg, rgba(231, 76, 60, 0.05) 0%, rgba(255, 255, 255, 0.95) 100%); +} + +.hot-item:nth-child(2) { + background: linear-gradient(135deg, rgba(243, 156, 18, 0.05) 0%, rgba(255, 255, 255, 0.95) 100%); +} + +.hot-item:nth-child(3) { + background: linear-gradient(135deg, rgba(52, 152, 219, 0.05) 0%, rgba(255, 255, 255, 0.95) 100%); +} + +/* 加载状态背景 */ +.loading { + background: rgba(255, 255, 255, 0.8); + backdrop-filter: blur(8px); + border-radius: 12px; + margin: 20px; +} + +/* 错误信息背景 */ +.error-message { + background: linear-gradient(135deg, rgba(231, 76, 60, 0.05) 0%, rgba(255, 255, 255, 0.9) 100%); + backdrop-filter: blur(8px); + border-radius: 12px; + border: 1px solid rgba(231, 76, 60, 0.1); + margin: 20px; +} + +/* 底部背景 */ +.footer { + background: linear-gradient(135deg, rgba(39, 174, 96, 0.03) 0%, rgba(168, 230, 207, 0.03) 100%); + border-radius: 0 0 16px 16px; + position: relative; +} + +.footer::before { + content: ''; + position: absolute; + top: 0; + left: 50%; + transform: translateX(-50%); + width: 60px; + height: 1px; + background: linear-gradient(90deg, transparent 0%, rgba(39, 174, 96, 0.3) 50%, transparent 100%); +} + +/* 响应式背景调整 */ +@media (max-width: 768px) { + .container { + margin-top: 10px; + margin-bottom: 10px; + border-radius: 12px; + } + + .header { + border-radius: 12px 12px 0 0; + } + + .footer { + border-radius: 0 0 12px 12px; + } + + body::before { + background-image: + radial-gradient(circle at 20% 80%, rgba(39, 174, 96, 0.03) 0%, transparent 40%), + radial-gradient(circle at 80% 20%, rgba(46, 204, 113, 0.03) 0%, transparent 40%); + } +} + +@media (min-width: 1025px) { + .container { + margin-top: 40px; + margin-bottom: 40px; + } + + body::before { + background-image: + radial-gradient(circle at 15% 85%, rgba(39, 174, 96, 0.06) 0%, transparent 60%), + radial-gradient(circle at 85% 15%, rgba(46, 204, 113, 0.06) 0%, transparent 60%), + radial-gradient(circle at 50% 50%, rgba(168, 230, 207, 0.04) 0%, transparent 70%); + } +} + +/* 动画效果 */ +@keyframes backgroundShift { + 0% { + background-position: 0% 50%; + } + 50% { + background-position: 100% 50%; + } + 100% { + background-position: 0% 50%; + } +} + +/* 悬浮时的背景变化 */ +.hot-item:hover { + background: rgba(255, 255, 255, 0.95); +} + +.hot-item:hover::after { + background: linear-gradient(90deg, transparent 0%, rgba(39, 174, 96, 0.05) 100%); +} + +/* 排名背景渐变 */ +.rank { + position: relative; + overflow: hidden; +} + +.rank::before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 0%, transparent 100%); + pointer-events: none; +} \ No newline at end of file diff --git a/InfoGenie-frontend/public/60sapi/热搜榜单/百度实时热搜/index.html b/InfoGenie-frontend/public/60sapi/热搜榜单/百度实时热搜/index.html new file mode 100644 index 00000000..41d8157f --- /dev/null +++ b/InfoGenie-frontend/public/60sapi/热搜榜单/百度实时热搜/index.html @@ -0,0 +1,40 @@ + + + + + + 百度实时热搜榜单 + + + + +
+
+

百度实时热搜榜单

+

实时热门搜索,掌握网络脉搏

+
+ +
+
+
+

正在加载热搜数据...

+
+ + + + +
+ +
+

+
+
+ + + + \ No newline at end of file diff --git a/InfoGenie-frontend/public/60sapi/热搜榜单/百度实时热搜/script.js b/InfoGenie-frontend/public/60sapi/热搜榜单/百度实时热搜/script.js new file mode 100644 index 00000000..049f2d9b --- /dev/null +++ b/InfoGenie-frontend/public/60sapi/热搜榜单/百度实时热搜/script.js @@ -0,0 +1,196 @@ +// DOM元素获取 +const loadingElement = document.getElementById('loading'); +const errorElement = document.getElementById('error'); +const hotListElement = document.getElementById('hotList'); +const updateTimeElement = document.getElementById('updateTime'); + +// 页面加载完成后初始化 +document.addEventListener('DOMContentLoaded', function() { + loadData(); + + // 每5分钟自动刷新数据 + setInterval(loadData, 5 * 60 * 1000); + + // 监听页面可见性变化,页面重新可见时刷新数据 + document.addEventListener('visibilitychange', function() { + if (!document.hidden) { + loadData(); + } + }); + + // 监听网络状态变化 + window.addEventListener('online', loadData); +}); + +// 加载数据函数 +async function loadData() { + try { + showLoading(); + + // 调用百度实时热搜API + const response = await fetch('https://60s.api.shumengya.top/v2/baidu/realtime'); + + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + + const data = await response.json(); + + if (data.code === 200 && data.data) { + renderHotList(data.data); + updateTime(); + hideLoading(); + } else { + throw new Error(data.message || '数据格式错误'); + } + + } catch (error) { + console.error('加载数据失败:', error); + showError(); + } +} + +// 渲染热搜列表 +function renderHotList(hotData) { + if (!hotData || !Array.isArray(hotData)) { + showError(); + return; + } + + const listHTML = hotData.map((item, index) => { + const rank = index + 1; + const rankClass = rank <= 3 ? (rank === 1 ? 'top1' : 'top3') : ''; + + // 处理封面图片 + const coverImg = item.pic ? + `${item.title}` : + ''; + + // 处理描述信息 + const description = item.desc || ''; + + // 处理热度值 + const hotValue = item.hot || ''; + + // 处理链接 + const linkUrl = item.url || '#'; + + return ` +
+
${rank}
+ ${coverImg} +
+
+

${item.title || '无标题'}

+
+ ${description ? `

${description}

` : ''} + +
+
+ `; + }).join(''); + + hotListElement.innerHTML = listHTML; + hotListElement.style.display = 'block'; +} + +// 格式化热度值 +function formatHotValue(value) { + if (!value) return ''; + + // 如果是数字,进行格式化 + if (typeof value === 'number') { + if (value >= 10000) { + return (value / 10000).toFixed(1) + '万'; + } + return value.toString(); + } + + // 如果是字符串,直接返回 + return value.toString(); +} + +// 打开链接 +function openLink(url) { + if (url && url !== '#') { + window.open(url, '_blank'); + } +} + +// 显示加载状态 +function showLoading() { + loadingElement.style.display = 'block'; + errorElement.style.display = 'none'; + hotListElement.style.display = 'none'; +} + +// 隐藏加载状态 +function hideLoading() { + loadingElement.style.display = 'none'; +} + +// 显示错误信息 +function showError() { + loadingElement.style.display = 'none'; + errorElement.style.display = 'block'; + hotListElement.style.display = 'none'; +} + +// 更新时间显示 +function updateTime() { + const now = new Date(); + const timeString = now.toLocaleString('zh-CN', { + year: 'numeric', + month: '2-digit', + day: '2-digit', + hour: '2-digit', + minute: '2-digit', + second: '2-digit' + }); + updateTimeElement.textContent = `最后更新时间: ${timeString}`; +} + +// 重试加载数据 +function retryLoad() { + loadData(); +} + +// 页面滚动优化 +let ticking = false; + +function updateScrollPosition() { + // 可以在这里添加滚动相关的优化逻辑 + ticking = false; +} + +window.addEventListener('scroll', function() { + if (!ticking) { + requestAnimationFrame(updateScrollPosition); + ticking = true; + } +}); + +// 错误处理和日志记录 +window.addEventListener('error', function(e) { + console.error('页面错误:', e.error); +}); + +window.addEventListener('unhandledrejection', function(e) { + console.error('未处理的Promise拒绝:', e.reason); +}); + +// 性能监控 +if ('performance' in window) { + window.addEventListener('load', function() { + setTimeout(function() { + const perfData = performance.timing; + const loadTime = perfData.loadEventEnd - perfData.navigationStart; + console.log('页面加载时间:', loadTime + 'ms'); + }, 0); + }); +} \ No newline at end of file diff --git a/InfoGenie-frontend/public/60sapi/热搜榜单/百度实时热搜/styles.css b/InfoGenie-frontend/public/60sapi/热搜榜单/百度实时热搜/styles.css new file mode 100644 index 00000000..766cde4e --- /dev/null +++ b/InfoGenie-frontend/public/60sapi/热搜榜单/百度实时热搜/styles.css @@ -0,0 +1,371 @@ +/* 基础样式重置 */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif; + line-height: 1.6; + color: #2c3e50; + overflow-x: hidden; +} + +.container { + max-width: 1200px; + margin: 0 auto; + padding: 0 16px; + min-height: 100vh; + display: flex; + flex-direction: column; +} + +/* 头部样式 */ +.header { + text-align: center; + padding: 24px 0; + border-bottom: 2px solid #a8e6cf; + margin-bottom: 24px; +} + +.title { + font-size: 28px; + font-weight: 700; + color: #27ae60; + margin-bottom: 8px; + text-shadow: 0 2px 4px rgba(39, 174, 96, 0.1); +} + +.subtitle { + font-size: 14px; + color: #7f8c8d; + font-weight: 400; +} + +/* 主内容区域 */ +.main-content { + flex: 1; + position: relative; +} + +/* 加载状态 */ +.loading { + text-align: center; + padding: 60px 20px; + color: #27ae60; +} + +.loading-spinner { + width: 40px; + height: 40px; + border: 3px solid #a8e6cf; + border-top: 3px solid #27ae60; + border-radius: 50%; + animation: spin 1s linear infinite; + margin: 0 auto 16px; +} + +@keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} + +/* 错误信息 */ +.error-message { + text-align: center; + padding: 40px 20px; + color: #e74c3c; +} + +.retry-btn { + background: #27ae60; + color: white; + border: none; + padding: 10px 20px; + border-radius: 20px; + cursor: pointer; + font-size: 14px; + margin-top: 16px; + transition: background 0.3s ease; +} + +.retry-btn:hover { + background: #219a52; +} + +/* 热搜列表 */ +.hot-list { + display: grid; + gap: 16px; +} + +.hot-item { + background: #ffffff; + border: 1px solid #e8f5e8; + border-radius: 12px; + padding: 16px; + transition: all 0.3s ease; + box-shadow: 0 2px 8px rgba(39, 174, 96, 0.08); + position: relative; + overflow: hidden; + display: flex; + gap: 12px; + cursor: pointer; +} + +.hot-item:hover { + transform: translateY(-2px); + box-shadow: 0 4px 16px rgba(39, 174, 96, 0.15); + border-color: #a8e6cf; +} + +.hot-item::before { + content: ''; + position: absolute; + left: 0; + top: 0; + width: 4px; + height: 100%; + background: linear-gradient(to bottom, #27ae60, #a8e6cf); +} + +/* 排名样式 */ +.rank { + background: linear-gradient(135deg, #27ae60, #2ecc71); + color: white; + width: 32px; + height: 32px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-weight: 700; + font-size: 14px; + flex-shrink: 0; + margin-top: 4px; +} + +.rank.top3 { + background: linear-gradient(135deg, #f39c12, #e67e22); +} + +.rank.top1 { + background: linear-gradient(135deg, #e74c3c, #c0392b); +} + +/* 封面图片 */ +.item-cover { + width: 80px; + height: 60px; + border-radius: 8px; + object-fit: cover; + flex-shrink: 0; + border: 1px solid #e8f5e8; +} + +/* 内容区域 */ +.item-content { + flex: 1; + display: flex; + flex-direction: column; + justify-content: space-between; + min-height: 60px; +} + +.item-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + margin-bottom: 8px; +} + +.item-title { + font-size: 16px; + font-weight: 600; + color: #2c3e50; + line-height: 1.4; + margin-bottom: 4px; + transition: color 0.3s ease; + flex: 1; +} + +.item-title:hover { + color: #27ae60; +} + +.item-desc { + font-size: 13px; + color: #7f8c8d; + line-height: 1.3; + margin-bottom: 8px; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; +} + +.item-footer { + display: flex; + align-items: center; + justify-content: space-between; + gap: 8px; +} + +.item-score { + font-size: 14px; + color: #27ae60; + font-weight: 600; +} + +.item-type { + display: flex; + align-items: center; + gap: 4px; +} + +.type-icon { + width: 16px; + height: 16px; + object-fit: contain; +} + +.type-text { + font-size: 12px; + padding: 2px 8px; + border-radius: 10px; + font-weight: 500; +} + +.type-hot { + background: #ffe6e6; + color: #e74c3c; +} + +.type-new { + background: #e6f3ff; + color: #3498db; +} + +.type-default { + background: #f8f9fa; + color: #6c757d; +} + +/* 底部 */ +.footer { + text-align: center; + padding: 24px 0; + border-top: 1px solid #e8f5e8; + margin-top: 32px; +} + +.update-time { + font-size: 12px; + color: #95a5a6; +} + +/* 手机端优化 (默认) */ +@media (max-width: 768px) { + .container { + padding: 0 12px; + } + + .header { + padding: 20px 0; + } + + .title { + font-size: 24px; + } + + .subtitle { + font-size: 13px; + } + + .hot-item { + padding: 14px; + gap: 10px; + } + + .item-cover { + width: 60px; + height: 45px; + } + + .item-title { + font-size: 15px; + } + + .item-desc { + font-size: 12px; + } + + .rank { + width: 28px; + height: 28px; + font-size: 13px; + } +} + +/* 平板端适配 */ +@media (min-width: 769px) and (max-width: 1024px) { + .container { + padding: 0 24px; + } + + .hot-list { + grid-template-columns: repeat(1, 1fr); + gap: 18px; + } + + .title { + font-size: 32px; + } + + .hot-item { + padding: 18px; + } +} + +/* 电脑端适配 */ +@media (min-width: 1025px) { + .container { + padding: 0 32px; + } + + .hot-list { + grid-template-columns: repeat(1, 1fr); + gap: 20px; + } + + .title { + font-size: 36px; + } + + .hot-item { + padding: 20px; + gap: 16px; + } + + .item-cover { + width: 100px; + height: 75px; + } + + .item-title { + font-size: 17px; + } + + .item-desc { + font-size: 14px; + } +} + +/* 大屏幕优化 */ +@media (min-width: 1400px) { + .hot-list { + grid-template-columns: repeat(2, 1fr); + gap: 24px; + } +} \ No newline at end of file diff --git a/InfoGenie-frontend/public/60sapi/热搜榜单/百度实时热搜/返回接口.json b/InfoGenie-frontend/public/60sapi/热搜榜单/百度实时热搜/返回接口.json new file mode 100644 index 00000000..0a68ca26 --- /dev/null +++ b/InfoGenie-frontend/public/60sapi/热搜榜单/百度实时热搜/返回接口.json @@ -0,0 +1,606 @@ +{ + "code": 200, + "message": "获取成功。数据来自官方/权威源头,以确保稳定与实时。开源地址 https://github.com/vikiboss/60s,反馈群 595941841", + "data": [ + { + "rank": 1, + "title": "102岁老兵ICU看阅兵后安详离世", + "desc": "", + "score": "7807952", + "score_desc": "780.8w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/e190dea8327f8295c8a5883878fe6d14", + "type": "1", + "type_desc": "新", + "type_icon": "https://search-operate.cdn.bcebos.com/42e626c5469cc4cd3b91131bcfe53d44.png", + "url": "https://www.baidu.com/s?wd=102%E5%B2%81%E8%80%81%E5%85%B5ICU%E7%9C%8B%E9%98%85%E5%85%B5%E5%90%8E%E5%AE%89%E8%AF%A6%E7%A6%BB%E4%B8%96&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 2, + "title": "看阅兵明白了耿爽联合国发言含金量", + "desc": "", + "score": "7714187", + "score_desc": "771.42w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/83340b647c7a2f569c0a03482d5b40f1", + "type": "3", + "type_desc": "热", + "type_icon": "https://search-operate.cdn.bcebos.com/54a1ed72d00cd07334860b0509489d8b.png", + "url": "https://www.baidu.com/s?wd=%E7%9C%8B%E9%98%85%E5%85%B5%E6%98%8E%E7%99%BD%E4%BA%86%E8%80%BF%E7%88%BD%E8%81%94%E5%90%88%E5%9B%BD%E5%8F%91%E8%A8%80%E5%90%AB%E9%87%91%E9%87%8F&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 3, + "title": "80秒带你回顾阅兵“高燃瞬间”", + "desc": "", + "score": "7616477", + "score_desc": "761.65w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/a64eb808789c7bae99eb3e0f98a20621", + "type": "0", + "type_desc": null, + "type_icon": null, + "url": "https://www.baidu.com/s?wd=80%E7%A7%92%E5%B8%A6%E4%BD%A0%E5%9B%9E%E9%A1%BE%E9%98%85%E5%85%B5%E2%80%9C%E9%AB%98%E7%87%83%E7%9E%AC%E9%97%B4%E2%80%9D&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 4, + "title": "新华社认证的帅兵哥已婚", + "desc": "", + "score": "7522472", + "score_desc": "752.25w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/493dd01d2abf915809eb1387e5b8a026", + "type": "1", + "type_desc": "新", + "type_icon": "https://search-operate.cdn.bcebos.com/42e626c5469cc4cd3b91131bcfe53d44.png", + "url": "https://www.baidu.com/s?wd=%E6%96%B0%E5%8D%8E%E7%A4%BE%E8%AE%A4%E8%AF%81%E7%9A%84%E5%B8%85%E5%85%B5%E5%93%A5%E5%B7%B2%E5%A9%9A&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 5, + "title": "普京记者会身后的大红灯笼亮了", + "desc": "", + "score": "7426902", + "score_desc": "742.69w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/1e895a56da47054e111ce225b1efd58f", + "type": "3", + "type_desc": "热", + "type_icon": "https://search-operate.cdn.bcebos.com/54a1ed72d00cd07334860b0509489d8b.png", + "url": "https://www.baidu.com/s?wd=%E6%99%AE%E4%BA%AC%E8%AE%B0%E8%80%85%E4%BC%9A%E8%BA%AB%E5%90%8E%E7%9A%84%E5%A4%A7%E7%BA%A2%E7%81%AF%E7%AC%BC%E4%BA%AE%E4%BA%86&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 6, + "title": "中国网警:烽火烬处 赓续前行", + "desc": "", + "score": "7332067", + "score_desc": "733.21w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/0d872743f2cfabc8fd9ee1da970a5fed", + "type": "0", + "type_desc": null, + "type_icon": null, + "url": "https://www.baidu.com/s?wd=%E4%B8%AD%E5%9B%BD%E7%BD%91%E8%AD%A6%EF%BC%9A%E7%83%BD%E7%81%AB%E7%83%AC%E5%A4%84+%E8%B5%93%E7%BB%AD%E5%89%8D%E8%A1%8C&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 7, + "title": "“呼叫81192!” 这一刻含泪量太高", + "desc": "", + "score": "7237296", + "score_desc": "723.73w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/552c202f87db2219d6e150a39976bad7", + "type": "1", + "type_desc": "新", + "type_icon": "https://search-operate.cdn.bcebos.com/42e626c5469cc4cd3b91131bcfe53d44.png", + "url": "https://www.baidu.com/s?wd=%E2%80%9C%E5%91%BC%E5%8F%AB81192%EF%BC%81%E2%80%9D+%E8%BF%99%E4%B8%80%E5%88%BB%E5%90%AB%E6%B3%AA%E9%87%8F%E5%A4%AA%E9%AB%98&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 8, + "title": "天津和平鸽归巢主人激动吹哨迎接", + "desc": "", + "score": "7139286", + "score_desc": "713.93w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/1c5dfd83c55b6482d1307f310d5642a7", + "type": "3", + "type_desc": "热", + "type_icon": "https://search-operate.cdn.bcebos.com/54a1ed72d00cd07334860b0509489d8b.png", + "url": "https://www.baidu.com/s?wd=%E5%A4%A9%E6%B4%A5%E5%92%8C%E5%B9%B3%E9%B8%BD%E5%BD%92%E5%B7%A2%E4%B8%BB%E4%BA%BA%E6%BF%80%E5%8A%A8%E5%90%B9%E5%93%A8%E8%BF%8E%E6%8E%A5&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 9, + "title": "中国排面给全世界亿点点震撼", + "desc": "", + "score": "7042854", + "score_desc": "704.29w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/986b69bb82a32bbd72f4c90281ece503", + "type": "0", + "type_desc": null, + "type_icon": null, + "url": "https://www.baidu.com/s?wd=%E4%B8%AD%E5%9B%BD%E6%8E%92%E9%9D%A2%E7%BB%99%E5%85%A8%E4%B8%96%E7%95%8C%E4%BA%BF%E7%82%B9%E7%82%B9%E9%9C%87%E6%92%BC&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 10, + "title": "8万只气球缘何直径都是26厘米左右", + "desc": "", + "score": "6943236", + "score_desc": "694.32w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/783293899ac972283b13501deb5772fa", + "type": "3", + "type_desc": "热", + "type_icon": "https://search-operate.cdn.bcebos.com/54a1ed72d00cd07334860b0509489d8b.png", + "url": "https://www.baidu.com/s?wd=8%E4%B8%87%E5%8F%AA%E6%B0%94%E7%90%83%E7%BC%98%E4%BD%95%E7%9B%B4%E5%BE%84%E9%83%BD%E6%98%AF26%E5%8E%98%E7%B1%B3%E5%B7%A6%E5%8F%B3&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 11, + "title": "江苏足协辟谣“苏超”要改名", + "desc": "近日,有部分自媒体称“苏超”已改名,对此,江苏省足协回应:“苏超”没有改名,也没有想过要改名。", + "score": "6853163", + "score_desc": "685.32w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/fe16124a5cd018feee2e941d05850e00", + "type": "0", + "type_desc": null, + "type_icon": null, + "url": "https://www.baidu.com/s?wd=%E6%B1%9F%E8%8B%8F%E8%B6%B3%E5%8D%8F%E8%BE%9F%E8%B0%A3%E2%80%9C%E8%8B%8F%E8%B6%85%E2%80%9D%E8%A6%81%E6%94%B9%E5%90%8D&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 12, + "title": "金正恩只回了韩议长一个字", + "desc": "", + "score": "6760236", + "score_desc": "676.02w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/68824cd0db12d3d6b71f6d79dc9cd1e4", + "type": "3", + "type_desc": "热", + "type_icon": "https://search-operate.cdn.bcebos.com/54a1ed72d00cd07334860b0509489d8b.png", + "url": "https://www.baidu.com/s?wd=%E9%87%91%E6%AD%A3%E6%81%A9%E5%8F%AA%E5%9B%9E%E4%BA%86%E9%9F%A9%E8%AE%AE%E9%95%BF%E4%B8%80%E4%B8%AA%E5%AD%97&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 13, + "title": "特朗普称看了九三阅兵:很精彩很震撼", + "desc": "", + "score": "6656922", + "score_desc": "665.69w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/bb902e423148eb1e83e78955f2eb9adb", + "type": "3", + "type_desc": "热", + "type_icon": "https://search-operate.cdn.bcebos.com/54a1ed72d00cd07334860b0509489d8b.png", + "url": "https://www.baidu.com/s?wd=%E7%89%B9%E6%9C%97%E6%99%AE%E7%A7%B0%E7%9C%8B%E4%BA%86%E4%B9%9D%E4%B8%89%E9%98%85%E5%85%B5%EF%BC%9A%E5%BE%88%E7%B2%BE%E5%BD%A9%E5%BE%88%E9%9C%87%E6%92%BC&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 14, + "title": "韩国高铁站直播九三阅兵", + "desc": "", + "score": "6566970", + "score_desc": "656.7w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/b68cb01b4b20989cea82c78c9fe39c3b", + "type": "3", + "type_desc": "热", + "type_icon": "https://search-operate.cdn.bcebos.com/54a1ed72d00cd07334860b0509489d8b.png", + "url": "https://www.baidu.com/s?wd=%E9%9F%A9%E5%9B%BD%E9%AB%98%E9%93%81%E7%AB%99%E7%9B%B4%E6%92%AD%E4%B9%9D%E4%B8%89%E9%98%85%E5%85%B5&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 15, + "title": "在中国的加沙人看阅兵时落泪", + "desc": "", + "score": "6476621", + "score_desc": "647.66w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/f16f082786ac14ea20dc709c527dec4b", + "type": "3", + "type_desc": "热", + "type_icon": "https://search-operate.cdn.bcebos.com/54a1ed72d00cd07334860b0509489d8b.png", + "url": "https://www.baidu.com/s?wd=%E5%9C%A8%E4%B8%AD%E5%9B%BD%E7%9A%84%E5%8A%A0%E6%B2%99%E4%BA%BA%E7%9C%8B%E9%98%85%E5%85%B5%E6%97%B6%E8%90%BD%E6%B3%AA&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 16, + "title": "专家:东风-61出现改变命名规则", + "desc": "", + "score": "6376137", + "score_desc": "637.61w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/66c1c659e7b1a37732b2735253716d60", + "type": "3", + "type_desc": "热", + "type_icon": "https://search-operate.cdn.bcebos.com/54a1ed72d00cd07334860b0509489d8b.png", + "url": "https://www.baidu.com/s?wd=%E4%B8%93%E5%AE%B6%EF%BC%9A%E4%B8%9C%E9%A3%8E-61%E5%87%BA%E7%8E%B0%E6%94%B9%E5%8F%98%E5%91%BD%E5%90%8D%E8%A7%84%E5%88%99&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 17, + "title": "军嫂盯着徒步方队找丈夫迷糊了", + "desc": "", + "score": "6274961", + "score_desc": "627.5w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/90ac62b9f3b3365dc7fed40c62259a9f", + "type": "0", + "type_desc": null, + "type_icon": null, + "url": "https://www.baidu.com/s?wd=%E5%86%9B%E5%AB%82%E7%9B%AF%E7%9D%80%E5%BE%92%E6%AD%A5%E6%96%B9%E9%98%9F%E6%89%BE%E4%B8%88%E5%A4%AB%E8%BF%B7%E7%B3%8A%E4%BA%86&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 18, + "title": "普京调侃佩斯科夫:懒虫 不想工作", + "desc": "", + "score": "6180590", + "score_desc": "618.06w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/8e9fae0b3a1b23049cfdb9323d6a1efe", + "type": "0", + "type_desc": null, + "type_icon": null, + "url": "https://www.baidu.com/s?wd=%E6%99%AE%E4%BA%AC%E8%B0%83%E4%BE%83%E4%BD%A9%E6%96%AF%E7%A7%91%E5%A4%AB%EF%BC%9A%E6%87%92%E8%99%AB+%E4%B8%8D%E6%83%B3%E5%B7%A5%E4%BD%9C&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 19, + "title": "原陆军第31集团军军长王昭堃逝世", + "desc": "", + "score": "6089180", + "score_desc": "608.92w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/778f1aa16cdfc4db09926956ae5b5741", + "type": "0", + "type_desc": null, + "type_icon": null, + "url": "https://www.baidu.com/s?wd=%E5%8E%9F%E9%99%86%E5%86%9B%E7%AC%AC31%E9%9B%86%E5%9B%A2%E5%86%9B%E5%86%9B%E9%95%BF%E7%8E%8B%E6%98%AD%E5%A0%83%E9%80%9D%E4%B8%96&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 20, + "title": "“防霸凌”儿童指纹水杯被吐槽费妈", + "desc": "", + "score": "5986581", + "score_desc": "598.66w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/c590f4412c1aa6904b65a94cba7de275", + "type": "0", + "type_desc": null, + "type_icon": null, + "url": "https://www.baidu.com/s?wd=%E2%80%9C%E9%98%B2%E9%9C%B8%E5%87%8C%E2%80%9D%E5%84%BF%E7%AB%A5%E6%8C%87%E7%BA%B9%E6%B0%B4%E6%9D%AF%E8%A2%AB%E5%90%90%E6%A7%BD%E8%B4%B9%E5%A6%88&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 21, + "title": "特朗普下令重振美国军队", + "desc": "", + "score": "5902417", + "score_desc": "590.24w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/de99b4697f6d926890dc31d686c1222c", + "type": "0", + "type_desc": null, + "type_icon": null, + "url": "https://www.baidu.com/s?wd=%E7%89%B9%E6%9C%97%E6%99%AE%E4%B8%8B%E4%BB%A4%E9%87%8D%E6%8C%AF%E7%BE%8E%E5%9B%BD%E5%86%9B%E9%98%9F&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 22, + "title": "间谍张某某死缓:出轨外国女官员生子", + "desc": "", + "score": "5790606", + "score_desc": "579.06w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/f93c1366d41c7cfbb2383dcb17449c28", + "type": "0", + "type_desc": null, + "type_icon": null, + "url": "https://www.baidu.com/s?wd=%E9%97%B4%E8%B0%8D%E5%BC%A0%E6%9F%90%E6%9F%90%E6%AD%BB%E7%BC%93%EF%BC%9A%E5%87%BA%E8%BD%A8%E5%A4%96%E5%9B%BD%E5%A5%B3%E5%AE%98%E5%91%98%E7%94%9F%E5%AD%90&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 23, + "title": "5万余人观礼离场后干干净净", + "desc": "", + "score": "5717616", + "score_desc": "571.76w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/53c6b971cef08daf3104bb5133b4b6ed", + "type": "3", + "type_desc": "热", + "type_icon": "https://search-operate.cdn.bcebos.com/54a1ed72d00cd07334860b0509489d8b.png", + "url": "https://www.baidu.com/s?wd=5%E4%B8%87%E4%BD%99%E4%BA%BA%E8%A7%82%E7%A4%BC%E7%A6%BB%E5%9C%BA%E5%90%8E%E5%B9%B2%E5%B9%B2%E5%87%80%E5%87%80&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 24, + "title": "普京乘机回国 王毅送行", + "desc": "", + "score": "5607811", + "score_desc": "560.78w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/5f7afddd2e0a570573b245b6f31a1338", + "type": "1", + "type_desc": "新", + "type_icon": "https://search-operate.cdn.bcebos.com/42e626c5469cc4cd3b91131bcfe53d44.png", + "url": "https://www.baidu.com/s?wd=%E6%99%AE%E4%BA%AC%E4%B9%98%E6%9C%BA%E5%9B%9E%E5%9B%BD+%E7%8E%8B%E6%AF%85%E9%80%81%E8%A1%8C&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 25, + "title": "刘老庄连战旗为何多了一个点", + "desc": "", + "score": "5513446", + "score_desc": "551.34w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/7084449234aed77c74438ca263fdcd58", + "type": "1", + "type_desc": "新", + "type_icon": "https://search-operate.cdn.bcebos.com/42e626c5469cc4cd3b91131bcfe53d44.png", + "url": "https://www.baidu.com/s?wd=%E5%88%98%E8%80%81%E5%BA%84%E8%BF%9E%E6%88%98%E6%97%97%E4%B8%BA%E4%BD%95%E5%A4%9A%E4%BA%86%E4%B8%80%E4%B8%AA%E7%82%B9&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 26, + "title": "迎面感受东风-61东风-5C的视觉冲击", + "desc": "", + "score": "5426660", + "score_desc": "542.67w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/40210a63cf69ddbbedbe59a19730e374", + "type": "0", + "type_desc": null, + "type_icon": null, + "url": "https://www.baidu.com/s?wd=%E8%BF%8E%E9%9D%A2%E6%84%9F%E5%8F%97%E4%B8%9C%E9%A3%8E-61%E4%B8%9C%E9%A3%8E-5C%E7%9A%84%E8%A7%86%E8%A7%89%E5%86%B2%E5%87%BB&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 27, + "title": "阅兵当天的北京处处都有追飞机的人", + "desc": "", + "score": "5336487", + "score_desc": "533.65w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/1513230ae41ba37f680dccbc526b7145", + "type": "3", + "type_desc": "热", + "type_icon": "https://search-operate.cdn.bcebos.com/54a1ed72d00cd07334860b0509489d8b.png", + "url": "https://www.baidu.com/s?wd=%E9%98%85%E5%85%B5%E5%BD%93%E5%A4%A9%E7%9A%84%E5%8C%97%E4%BA%AC%E5%A4%84%E5%A4%84%E9%83%BD%E6%9C%89%E8%BF%BD%E9%A3%9E%E6%9C%BA%E7%9A%84%E4%BA%BA&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 28, + "title": "歼-35大片来了", + "desc": "", + "score": "5240364", + "score_desc": "524.04w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/017c3b52514fb3ae83405da1da5fc350", + "type": "0", + "type_desc": null, + "type_icon": null, + "url": "https://www.baidu.com/s?wd=%E6%AD%BC-35%E5%A4%A7%E7%89%87%E6%9D%A5%E4%BA%86&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 29, + "title": "普京透露与特朗普“车内密谈”细节", + "desc": "", + "score": "5123571", + "score_desc": "512.36w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/5548e90353e4696a1116ffc0e65e086d", + "type": "0", + "type_desc": null, + "type_icon": null, + "url": "https://www.baidu.com/s?wd=%E6%99%AE%E4%BA%AC%E9%80%8F%E9%9C%B2%E4%B8%8E%E7%89%B9%E6%9C%97%E6%99%AE%E2%80%9C%E8%BD%A6%E5%86%85%E5%AF%86%E8%B0%88%E2%80%9D%E7%BB%86%E8%8A%82&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 30, + "title": "和平鸽从天津到北京出差参加阅兵", + "desc": "", + "score": "5037077", + "score_desc": "503.71w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/f4558c31275119cfab564cadeddf6f50", + "type": "0", + "type_desc": null, + "type_icon": null, + "url": "https://www.baidu.com/s?wd=%E5%92%8C%E5%B9%B3%E9%B8%BD%E4%BB%8E%E5%A4%A9%E6%B4%A5%E5%88%B0%E5%8C%97%E4%BA%AC%E5%87%BA%E5%B7%AE%E5%8F%82%E5%8A%A0%E9%98%85%E5%85%B5&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 31, + "title": "王毅送中国跑鞋 匈牙利外长爱不释手", + "desc": "", + "score": "4950481", + "score_desc": "495.05w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/95df9511f4c0951f823f387f3286c029", + "type": "0", + "type_desc": null, + "type_icon": null, + "url": "https://www.baidu.com/s?wd=%E7%8E%8B%E6%AF%85%E9%80%81%E4%B8%AD%E5%9B%BD%E8%B7%91%E9%9E%8B+%E5%8C%88%E7%89%99%E5%88%A9%E5%A4%96%E9%95%BF%E7%88%B1%E4%B8%8D%E9%87%8A%E6%89%8B&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 32, + "title": "郑钦文晒东风5C帅照", + "desc": "", + "score": "4841678", + "score_desc": "484.17w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/5e2fec1c090ce966a2dd89071342d3e9", + "type": "0", + "type_desc": null, + "type_icon": null, + "url": "https://www.baidu.com/s?wd=%E9%83%91%E9%92%A6%E6%96%87%E6%99%92%E4%B8%9C%E9%A3%8E5C%E5%B8%85%E7%85%A7&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 33, + "title": "阅兵当天 北京街头成为别样观礼台", + "desc": "", + "score": "4760831", + "score_desc": "476.08w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/a6495a07da318dc9644f77de370b8035", + "type": "0", + "type_desc": null, + "type_icon": null, + "url": "https://www.baidu.com/s?wd=%E9%98%85%E5%85%B5%E5%BD%93%E5%A4%A9+%E5%8C%97%E4%BA%AC%E8%A1%97%E5%A4%B4%E6%88%90%E4%B8%BA%E5%88%AB%E6%A0%B7%E8%A7%82%E7%A4%BC%E5%8F%B0&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 34, + "title": "华春莹与记者互动:我的心情和你一样", + "desc": "", + "score": "4651512", + "score_desc": "465.15w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/4377037f24b931479efc20e2a7b87776", + "type": "3", + "type_desc": "热", + "type_icon": "https://search-operate.cdn.bcebos.com/54a1ed72d00cd07334860b0509489d8b.png", + "url": "https://www.baidu.com/s?wd=%E5%8D%8E%E6%98%A5%E8%8E%B9%E4%B8%8E%E8%AE%B0%E8%80%85%E4%BA%92%E5%8A%A8%EF%BC%9A%E6%88%91%E7%9A%84%E5%BF%83%E6%83%85%E5%92%8C%E4%BD%A0%E4%B8%80%E6%A0%B7&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 35, + "title": "父亲称女民兵方队领队是全家的骄傲", + "desc": "", + "score": "4566469", + "score_desc": "456.65w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/79b1620e703b1e73fd5db686d6314ea0", + "type": "0", + "type_desc": null, + "type_icon": null, + "url": "https://www.baidu.com/s?wd=%E7%88%B6%E4%BA%B2%E7%A7%B0%E5%A5%B3%E6%B0%91%E5%85%B5%E6%96%B9%E9%98%9F%E9%A2%86%E9%98%9F%E6%98%AF%E5%85%A8%E5%AE%B6%E7%9A%84%E9%AA%84%E5%82%B2&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 36, + "title": "宝宝出生恰逢阅兵 家人取名袁安阅", + "desc": "", + "score": "4470561", + "score_desc": "447.06w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/a5063fd737daf1da7a969e36ab672ed8", + "type": "0", + "type_desc": null, + "type_icon": null, + "url": "https://www.baidu.com/s?wd=%E5%AE%9D%E5%AE%9D%E5%87%BA%E7%94%9F%E6%81%B0%E9%80%A2%E9%98%85%E5%85%B5+%E5%AE%B6%E4%BA%BA%E5%8F%96%E5%90%8D%E8%A2%81%E5%AE%89%E9%98%85&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 37, + "title": "特朗普承认观看中国阅兵", + "desc": "", + "score": "4353451", + "score_desc": "435.35w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/e7c27a7640bc0f9d25dcd7ad79026ce7", + "type": "3", + "type_desc": "热", + "type_icon": "https://search-operate.cdn.bcebos.com/54a1ed72d00cd07334860b0509489d8b.png", + "url": "https://www.baidu.com/s?wd=%E7%89%B9%E6%9C%97%E6%99%AE%E6%89%BF%E8%AE%A4%E8%A7%82%E7%9C%8B%E4%B8%AD%E5%9B%BD%E9%98%85%E5%85%B5&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 38, + "title": "一地官宣:3孩家庭购房补贴20万元", + "desc": "", + "score": "4290101", + "score_desc": "429.01w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/507444a742944d2ed619b480fdab147e", + "type": "0", + "type_desc": null, + "type_icon": null, + "url": "https://www.baidu.com/s?wd=%E4%B8%80%E5%9C%B0%E5%AE%98%E5%AE%A3%EF%BC%9A3%E5%AD%A9%E5%AE%B6%E5%BA%AD%E8%B4%AD%E6%88%BF%E8%A1%A5%E8%B4%B420%E4%B8%87%E5%85%83&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 39, + "title": "OpenAI启动员工百亿美元售股", + "desc": "", + "score": "4172580", + "score_desc": "417.26w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/fc06e36007c4b957bee693b9abe64693", + "type": "1", + "type_desc": "新", + "type_icon": "https://search-operate.cdn.bcebos.com/42e626c5469cc4cd3b91131bcfe53d44.png", + "url": "https://www.baidu.com/s?wd=OpenAI%E5%90%AF%E5%8A%A8%E5%91%98%E5%B7%A5%E7%99%BE%E4%BA%BF%E7%BE%8E%E5%85%83%E5%94%AE%E8%82%A1&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 40, + "title": "想入军迷圈的 现在正是好时候", + "desc": "", + "score": "4098627", + "score_desc": "409.86w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/d5bde24cc4eed187d500f3e7a9d73f2d", + "type": "0", + "type_desc": null, + "type_icon": null, + "url": "https://www.baidu.com/s?wd=%E6%83%B3%E5%85%A5%E5%86%9B%E8%BF%B7%E5%9C%88%E7%9A%84+%E7%8E%B0%E5%9C%A8%E6%AD%A3%E6%98%AF%E5%A5%BD%E6%97%B6%E5%80%99&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 41, + "title": "九三阅兵台湾线上播放超500万", + "desc": "", + "score": "3999782", + "score_desc": "399.98w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/ebfee25839294c24ca24af788fbd92bd", + "type": "0", + "type_desc": null, + "type_icon": null, + "url": "https://www.baidu.com/s?wd=%E4%B9%9D%E4%B8%89%E9%98%85%E5%85%B5%E5%8F%B0%E6%B9%BE%E7%BA%BF%E4%B8%8A%E6%92%AD%E6%94%BE%E8%B6%85500%E4%B8%87&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 42, + "title": "信鸽协会回应市民救助落水和平鸽", + "desc": "", + "score": "3886482", + "score_desc": "388.65w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/dc5ce78481f36774922add0eb7076ec7", + "type": "0", + "type_desc": null, + "type_icon": null, + "url": "https://www.baidu.com/s?wd=%E4%BF%A1%E9%B8%BD%E5%8D%8F%E4%BC%9A%E5%9B%9E%E5%BA%94%E5%B8%82%E6%B0%91%E6%95%91%E5%8A%A9%E8%90%BD%E6%B0%B4%E5%92%8C%E5%B9%B3%E9%B8%BD&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 43, + "title": "台退将看阅兵新装备直呼自己是军盲", + "desc": "", + "score": "3794294", + "score_desc": "379.43w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/686bb8c544ec3d0bc9f01f7ccd31195c", + "type": "0", + "type_desc": null, + "type_icon": null, + "url": "https://www.baidu.com/s?wd=%E5%8F%B0%E9%80%80%E5%B0%86%E7%9C%8B%E9%98%85%E5%85%B5%E6%96%B0%E8%A3%85%E5%A4%87%E7%9B%B4%E5%91%BC%E8%87%AA%E5%B7%B1%E6%98%AF%E5%86%9B%E7%9B%B2&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 44, + "title": "多国来华领导人接连发声", + "desc": "", + "score": "3679787", + "score_desc": "367.98w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/a7f9ac9aaeb54422c70870ac9ab36d09", + "type": "3", + "type_desc": "热", + "type_icon": "https://search-operate.cdn.bcebos.com/54a1ed72d00cd07334860b0509489d8b.png", + "url": "https://www.baidu.com/s?wd=%E5%A4%9A%E5%9B%BD%E6%9D%A5%E5%8D%8E%E9%A2%86%E5%AF%BC%E4%BA%BA%E6%8E%A5%E8%BF%9E%E5%8F%91%E5%A3%B0&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 45, + "title": "河南佛教协会:释永信枉费僧众信任", + "desc": "", + "score": "3589427", + "score_desc": "358.94w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/279b2b9632b9d7776a62fccefbc058db", + "type": "0", + "type_desc": null, + "type_icon": null, + "url": "https://www.baidu.com/s?wd=%E6%B2%B3%E5%8D%97%E4%BD%9B%E6%95%99%E5%8D%8F%E4%BC%9A%EF%BC%9A%E9%87%8A%E6%B0%B8%E4%BF%A1%E6%9E%89%E8%B4%B9%E5%83%A7%E4%BC%97%E4%BF%A1%E4%BB%BB&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 46, + "title": "揭秘阅兵地铁专列:143趟车接送2万人", + "desc": "", + "score": "3501916", + "score_desc": "350.19w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/711c2769ad7f6071171e7c11908c9f7a", + "type": "1", + "type_desc": "新", + "type_icon": "https://search-operate.cdn.bcebos.com/42e626c5469cc4cd3b91131bcfe53d44.png", + "url": "https://www.baidu.com/s?wd=%E6%8F%AD%E7%A7%98%E9%98%85%E5%85%B5%E5%9C%B0%E9%93%81%E4%B8%93%E5%88%97%EF%BC%9A143%E8%B6%9F%E8%BD%A6%E6%8E%A5%E9%80%812%E4%B8%87%E4%BA%BA&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 47, + "title": "苑举正观礼听到《黄河大合唱》落泪", + "desc": "", + "score": "3431345", + "score_desc": "343.13w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/ea02d87734137d71f4a1529a5cb864c7", + "type": "0", + "type_desc": null, + "type_icon": null, + "url": "https://www.baidu.com/s?wd=%E8%8B%91%E4%B8%BE%E6%AD%A3%E8%A7%82%E7%A4%BC%E5%90%AC%E5%88%B0%E3%80%8A%E9%BB%84%E6%B2%B3%E5%A4%A7%E5%90%88%E5%94%B1%E3%80%8B%E8%90%BD%E6%B3%AA&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 48, + "title": "九三阅兵解锁了这些“首次”", + "desc": "", + "score": "3339123", + "score_desc": "333.91w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/35812fb7bcf6ff0d71f52f60fb9055fa", + "type": "0", + "type_desc": null, + "type_icon": null, + "url": "https://www.baidu.com/s?wd=%E4%B9%9D%E4%B8%89%E9%98%85%E5%85%B5%E8%A7%A3%E9%94%81%E4%BA%86%E8%BF%99%E4%BA%9B%E2%80%9C%E9%A6%96%E6%AC%A1%E2%80%9D&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 49, + "title": "中国首起反规避调查", + "desc": "", + "score": "3210675", + "score_desc": "321.07w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/fa9ce1dd50ddb58eab40b7de920a0d79", + "type": "0", + "type_desc": null, + "type_icon": null, + "url": "https://www.baidu.com/s?wd=%E4%B8%AD%E5%9B%BD%E9%A6%96%E8%B5%B7%E5%8F%8D%E8%A7%84%E9%81%BF%E8%B0%83%E6%9F%A5&sa=fyb_news&rsv_dl=fyb_news" + }, + { + "rank": 50, + "title": "王楚钦:被祖国的强大深深触动", + "desc": "", + "score": "3147784", + "score_desc": "314.78w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/d8ae151e1eefdec0449a52574f58ee51", + "type": "0", + "type_desc": null, + "type_icon": null, + "url": "https://www.baidu.com/s?wd=%E7%8E%8B%E6%A5%9A%E9%92%A6%EF%BC%9A%E8%A2%AB%E7%A5%96%E5%9B%BD%E7%9A%84%E5%BC%BA%E5%A4%A7%E6%B7%B1%E6%B7%B1%E8%A7%A6%E5%8A%A8&sa=fyb_news&rsv_dl=fyb_news" + } + ] +} \ No newline at end of file diff --git a/InfoGenie-frontend/public/60sapi/热搜榜单/百度电视剧榜/background.css b/InfoGenie-frontend/public/60sapi/热搜榜单/百度电视剧榜/background.css new file mode 100644 index 00000000..06eae404 --- /dev/null +++ b/InfoGenie-frontend/public/60sapi/热搜榜单/百度电视剧榜/background.css @@ -0,0 +1,242 @@ +/* 页面主背景 */ +body { + background: linear-gradient(135deg, #f9fbe7 0%, #f1f8e9 25%, #e8f5e8 50%, #dcedc8 75%, #c5e1a5 100%); + background-attachment: fixed; + position: relative; +} + +/* 背景装饰元素 */ +body::before { + content: ''; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-image: + radial-gradient(circle at 20% 80%, rgba(139, 195, 74, 0.06) 0%, transparent 50%), + radial-gradient(circle at 80% 20%, rgba(205, 220, 57, 0.06) 0%, transparent 50%), + radial-gradient(circle at 40% 40%, rgba(212, 225, 87, 0.08) 0%, transparent 50%); + pointer-events: none; + z-index: -1; +} + +/* 容器背景 */ +.container { + background: rgba(255, 255, 255, 0.75); + backdrop-filter: blur(10px); + border-radius: 16px; + box-shadow: 0 8px 32px rgba(139, 195, 74, 0.12); + margin-top: 20px; + margin-bottom: 20px; + border: 1px solid rgba(241, 248, 233, 0.5); +} + +/* 头部背景 */ +.header { + background: linear-gradient(135deg, rgba(139, 195, 74, 0.08) 0%, rgba(205, 220, 57, 0.08) 100%); + border-radius: 16px 16px 0 0; + position: relative; + overflow: hidden; +} + +.header::before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: + radial-gradient(circle at 30% 20%, rgba(139, 195, 74, 0.12) 0%, transparent 40%), + radial-gradient(circle at 70% 80%, rgba(205, 220, 57, 0.1) 0%, transparent 40%); + pointer-events: none; +} + +/* 电视剧项目背景 */ +.tv-item { + background: rgba(255, 255, 255, 0.92); + backdrop-filter: blur(8px); + position: relative; + overflow: hidden; +} + +.tv-item::after { + content: ''; + position: absolute; + top: 0; + right: 0; + width: 60px; + height: 100%; + background: linear-gradient(90deg, transparent 0%, rgba(139, 195, 74, 0.03) 100%); + pointer-events: none; +} + +/* 前三名特殊背景效果 */ +.tv-item:nth-child(1) { + background: linear-gradient(135deg, rgba(244, 67, 54, 0.06) 0%, rgba(255, 255, 255, 0.96) 100%); +} + +.tv-item:nth-child(2) { + background: linear-gradient(135deg, rgba(255, 152, 0, 0.06) 0%, rgba(255, 255, 255, 0.96) 100%); +} + +.tv-item:nth-child(3) { + background: linear-gradient(135deg, rgba(255, 193, 7, 0.06) 0%, rgba(255, 255, 255, 0.96) 100%); +} + +/* 加载状态背景 */ +.loading { + background: rgba(255, 255, 255, 0.85); + backdrop-filter: blur(8px); + border-radius: 12px; + margin: 20px; + border: 1px solid rgba(241, 248, 233, 0.3); +} + +/* 错误信息背景 */ +.error-message { + background: linear-gradient(135deg, rgba(231, 76, 60, 0.06) 0%, rgba(255, 255, 255, 0.92) 100%); + backdrop-filter: blur(8px); + border-radius: 12px; + border: 1px solid rgba(231, 76, 60, 0.1); + margin: 20px; +} + +/* 底部背景 */ +.footer { + background: linear-gradient(135deg, rgba(139, 195, 74, 0.04) 0%, rgba(205, 220, 57, 0.04) 100%); + border-radius: 0 0 16px 16px; + position: relative; +} + +.footer::before { + content: ''; + position: absolute; + top: 0; + left: 50%; + transform: translateX(-50%); + width: 60px; + height: 1px; + background: linear-gradient(90deg, transparent 0%, rgba(139, 195, 74, 0.4) 50%, transparent 100%); +} + +/* 封面图片背景效果 */ +.item-cover { + position: relative; + overflow: hidden; +} + +.item-cover::before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: linear-gradient(45deg, rgba(139, 195, 74, 0.05) 0%, transparent 50%); + pointer-events: none; + opacity: 0; + transition: opacity 0.3s ease; +} + +.tv-item:hover .item-cover::before { + opacity: 1; +} + +/* 响应式背景调整 */ +@media (max-width: 768px) { + .container { + margin-top: 10px; + margin-bottom: 10px; + border-radius: 12px; + } + + .header { + border-radius: 12px 12px 0 0; + } + + .footer { + border-radius: 0 0 12px 12px; + } + + body::before { + background-image: + radial-gradient(circle at 20% 80%, rgba(139, 195, 74, 0.04) 0%, transparent 40%), + radial-gradient(circle at 80% 20%, rgba(205, 220, 57, 0.04) 0%, transparent 40%); + } +} + +@media (min-width: 1025px) { + .container { + margin-top: 40px; + margin-bottom: 40px; + } + + body::before { + background-image: + radial-gradient(circle at 15% 85%, rgba(139, 195, 74, 0.08) 0%, transparent 60%), + radial-gradient(circle at 85% 15%, rgba(205, 220, 57, 0.08) 0%, transparent 60%), + radial-gradient(circle at 50% 50%, rgba(212, 225, 87, 0.06) 0%, transparent 70%); + } +} + +/* 动画效果 */ +@keyframes backgroundShift { + 0% { + background-position: 0% 50%; + } + 50% { + background-position: 100% 50%; + } + 100% { + background-position: 0% 50%; + } +} + +/* 悬浮时的背景变化 */ +.tv-item:hover { + background: rgba(255, 255, 255, 0.98); +} + +.tv-item:hover::after { + background: linear-gradient(90deg, transparent 0%, rgba(139, 195, 74, 0.06) 100%); +} + +/* 排名背景渐变 */ +.rank { + position: relative; + overflow: hidden; +} + +.rank::before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: linear-gradient(45deg, rgba(255, 255, 255, 0.25) 0%, transparent 100%); + pointer-events: none; +} + +/* 按钮背景效果 */ +.retry-btn { + position: relative; + overflow: hidden; +} + +.retry-btn::before { + content: ''; + position: absolute; + top: 0; + left: -100%; + width: 100%; + height: 100%; + background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.3) 50%, transparent 100%); + transition: left 0.5s ease; +} + +.retry-btn:hover::before { + left: 100%; +} \ No newline at end of file diff --git a/InfoGenie-frontend/public/60sapi/热搜榜单/百度电视剧榜/index.html b/InfoGenie-frontend/public/60sapi/热搜榜单/百度电视剧榜/index.html new file mode 100644 index 00000000..7c40d9f2 --- /dev/null +++ b/InfoGenie-frontend/public/60sapi/热搜榜单/百度电视剧榜/index.html @@ -0,0 +1,40 @@ + + + + + + 百度电视剧榜单 + + + + +
+
+

百度电视剧榜单

+

实时热门电视剧,追剧必看榜单

+
+ +
+
+
+

正在加载电视剧榜单...

+
+ + + + +
+ +
+

+
+
+ + + + \ No newline at end of file diff --git a/InfoGenie-frontend/public/60sapi/热搜榜单/百度电视剧榜/script.js b/InfoGenie-frontend/public/60sapi/热搜榜单/百度电视剧榜/script.js new file mode 100644 index 00000000..b1174db4 --- /dev/null +++ b/InfoGenie-frontend/public/60sapi/热搜榜单/百度电视剧榜/script.js @@ -0,0 +1,267 @@ +// DOM元素获取 +const loadingElement = document.getElementById('loading'); +const errorElement = document.getElementById('error'); +const tvListElement = document.getElementById('tvList'); +const updateTimeElement = document.getElementById('updateTime'); + +// 页面加载完成后初始化 +document.addEventListener('DOMContentLoaded', function() { + loadData(); + + // 每5分钟自动刷新数据 + setInterval(loadData, 5 * 60 * 1000); + + // 监听页面可见性变化,页面重新可见时刷新数据 + document.addEventListener('visibilitychange', function() { + if (!document.hidden) { + loadData(); + } + }); + + // 监听网络状态变化 + window.addEventListener('online', loadData); +}); + +// 加载数据函数 +async function loadData() { + try { + showLoading(); + + // 调用百度电视剧榜API + const response = await fetch('https://60s.api.shumengya.top/v2/baidu/teleplay'); + + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + + const data = await response.json(); + + if (data.code === 200 && data.data) { + renderTvList(data.data); + updateTime(); + hideLoading(); + } else { + throw new Error(data.message || '数据格式错误'); + } + + } catch (error) { + console.error('加载数据失败:', error); + showError(); + } +} + +// 渲染电视剧列表 +function renderTvList(tvData) { + if (!tvData || !Array.isArray(tvData)) { + showError(); + return; + } + + const listHTML = tvData.map((item, index) => { + const rank = item.rank || (index + 1); + const rankClass = rank <= 3 ? (rank === 1 ? 'top1' : 'top3') : ''; + + // 处理封面图片 + const coverImg = item.cover ? + `${item.title}` : + ''; + + // 处理描述信息 + const description = item.desc || ''; + + // 处理评分信息 + const score = item.score || ''; + const scoreDesc = item.score_desc || ''; + + // 处理链接 + const linkUrl = item.url || '#'; + + return ` +
+
${rank}
+ ${coverImg} +
+
+

${item.title || '无标题'}

+
+ ${description ? `

${description}

` : ''} + +
+
+ `; + }).join(''); + + tvListElement.innerHTML = listHTML; + tvListElement.style.display = 'block'; +} + +// 格式化评分 +function formatScore(score) { + if (!score) return ''; + + // 如果是数字,进行格式化 + if (typeof score === 'number') { + if (score >= 10000) { + return (score / 10000).toFixed(1) + '万'; + } + return score.toString(); + } + + // 如果是字符串,直接返回 + return score.toString(); +} + +// 打开链接 +function openLink(url) { + if (url && url !== '#') { + window.open(url, '_blank'); + } +} + +// 显示加载状态 +function showLoading() { + loadingElement.style.display = 'block'; + errorElement.style.display = 'none'; + tvListElement.style.display = 'none'; +} + +// 隐藏加载状态 +function hideLoading() { + loadingElement.style.display = 'none'; +} + +// 显示错误信息 +function showError() { + loadingElement.style.display = 'none'; + errorElement.style.display = 'block'; + tvListElement.style.display = 'none'; +} + +// 更新时间显示 +function updateTime() { + const now = new Date(); + const timeString = now.toLocaleString('zh-CN', { + year: 'numeric', + month: '2-digit', + day: '2-digit', + hour: '2-digit', + minute: '2-digit', + second: '2-digit' + }); + updateTimeElement.textContent = `最后更新时间: ${timeString}`; +} + +// 重试加载数据 +function retryLoad() { + loadData(); +} + +// 页面滚动优化 +let ticking = false; + +function updateScrollPosition() { + // 可以在这里添加滚动相关的优化逻辑 + ticking = false; +} + +window.addEventListener('scroll', function() { + if (!ticking) { + requestAnimationFrame(updateScrollPosition); + ticking = true; + } +}); + +// 错误处理和日志记录 +window.addEventListener('error', function(e) { + console.error('页面错误:', e.error); +}); + +window.addEventListener('unhandledrejection', function(e) { + console.error('未处理的Promise拒绝:', e.reason); +}); + +// 性能监控 +if ('performance' in window) { + window.addEventListener('load', function() { + setTimeout(function() { + const perfData = performance.timing; + const loadTime = perfData.loadEventEnd - perfData.navigationStart; + console.log('页面加载时间:', loadTime + 'ms'); + }, 0); + }); +} + +// 图片懒加载优化 +function lazyLoadImages() { + const images = document.querySelectorAll('.item-cover'); + const imageObserver = new IntersectionObserver((entries, observer) => { + entries.forEach(entry => { + if (entry.isIntersecting) { + const img = entry.target; + img.src = img.dataset.src; + img.classList.remove('lazy'); + imageObserver.unobserve(img); + } + }); + }); + + images.forEach(img => imageObserver.observe(img)); +} + +// 添加键盘导航支持 +document.addEventListener('keydown', function(e) { + const items = document.querySelectorAll('.tv-item'); + const currentFocus = document.activeElement; + let currentIndex = Array.from(items).indexOf(currentFocus); + + switch(e.key) { + case 'ArrowDown': + e.preventDefault(); + currentIndex = Math.min(currentIndex + 1, items.length - 1); + items[currentIndex]?.focus(); + break; + case 'ArrowUp': + e.preventDefault(); + currentIndex = Math.max(currentIndex - 1, 0); + items[currentIndex]?.focus(); + break; + case 'Enter': + if (currentFocus && currentFocus.classList.contains('tv-item')) { + currentFocus.click(); + } + break; + } +}); + +// 使电视剧项目可聚焦 +document.addEventListener('DOMContentLoaded', function() { + const style = document.createElement('style'); + style.textContent = ` + .tv-item { + outline: none; + transition: all 0.3s ease; + } + .tv-item:focus { + transform: translateY(-2px); + box-shadow: 0 4px 16px rgba(139, 195, 74, 0.25); + border-color: #8bc34a; + } + `; + document.head.appendChild(style); + + // 为所有电视剧项目添加tabindex + setTimeout(() => { + const items = document.querySelectorAll('.tv-item'); + items.forEach((item, index) => { + item.setAttribute('tabindex', '0'); + }); + }, 100); +}); \ No newline at end of file diff --git a/InfoGenie-frontend/public/60sapi/热搜榜单/百度电视剧榜/styles.css b/InfoGenie-frontend/public/60sapi/热搜榜单/百度电视剧榜/styles.css new file mode 100644 index 00000000..7953479d --- /dev/null +++ b/InfoGenie-frontend/public/60sapi/热搜榜单/百度电视剧榜/styles.css @@ -0,0 +1,378 @@ +/* 基础样式重置 */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif; + line-height: 1.6; + color: #2c3e50; + overflow-x: hidden; +} + +.container { + max-width: 1200px; + margin: 0 auto; + padding: 0 16px; + min-height: 100vh; + display: flex; + flex-direction: column; +} + +/* 头部样式 */ +.header { + text-align: center; + padding: 24px 0; + border-bottom: 2px solid #d4e157; + margin-bottom: 24px; +} + +.title { + font-size: 28px; + font-weight: 700; + background: linear-gradient(135deg, #8bc34a, #cddc39); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; + margin-bottom: 8px; + text-shadow: 0 2px 4px rgba(139, 195, 74, 0.1); +} + +.subtitle { + font-size: 14px; + color: #7f8c8d; + font-weight: 400; +} + +/* 主内容区域 */ +.main-content { + flex: 1; + position: relative; +} + +/* 加载状态 */ +.loading { + text-align: center; + padding: 60px 20px; + color: #8bc34a; +} + +.loading-spinner { + width: 40px; + height: 40px; + border: 3px solid #d4e157; + border-top: 3px solid #8bc34a; + border-radius: 50%; + animation: spin 1s linear infinite; + margin: 0 auto 16px; +} + +@keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} + +/* 错误信息 */ +.error-message { + text-align: center; + padding: 40px 20px; + color: #e74c3c; +} + +.retry-btn { + background: linear-gradient(135deg, #8bc34a, #cddc39); + color: white; + border: none; + padding: 10px 20px; + border-radius: 20px; + cursor: pointer; + font-size: 14px; + margin-top: 16px; + transition: all 0.3s ease; + box-shadow: 0 2px 8px rgba(139, 195, 74, 0.3); +} + +.retry-btn:hover { + transform: translateY(-2px); + box-shadow: 0 4px 12px rgba(139, 195, 74, 0.4); +} + +/* 电视剧列表 */ +.tv-list { + display: grid; + gap: 16px; +} + +.tv-item { + background: #ffffff; + border: 1px solid #f1f8e9; + border-radius: 12px; + padding: 16px; + transition: all 0.3s ease; + box-shadow: 0 2px 8px rgba(139, 195, 74, 0.08); + position: relative; + overflow: hidden; + display: flex; + gap: 12px; + cursor: pointer; +} + +.tv-item:hover { + transform: translateY(-2px); + box-shadow: 0 4px 16px rgba(139, 195, 74, 0.15); + border-color: #d4e157; +} + +.tv-item::before { + content: ''; + position: absolute; + left: 0; + top: 0; + width: 4px; + height: 100%; + background: linear-gradient(to bottom, #8bc34a, #cddc39); +} + +/* 排名样式 */ +.rank { + background: linear-gradient(135deg, #8bc34a, #cddc39); + color: white; + width: 32px; + height: 32px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-weight: 700; + font-size: 14px; + flex-shrink: 0; + margin-top: 4px; + box-shadow: 0 2px 6px rgba(139, 195, 74, 0.3); +} + +.rank.top3 { + background: linear-gradient(135deg, #ff9800, #ffc107); +} + +.rank.top1 { + background: linear-gradient(135deg, #f44336, #e91e63); +} + +/* 封面图片 */ +.item-cover { + width: 80px; + height: 100px; + border-radius: 8px; + object-fit: cover; + flex-shrink: 0; + border: 1px solid #f1f8e9; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); +} + +/* 内容区域 */ +.item-content { + flex: 1; + display: flex; + flex-direction: column; + justify-content: space-between; + min-height: 100px; +} + +.item-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + margin-bottom: 8px; +} + +.item-title { + font-size: 16px; + font-weight: 600; + color: #2c3e50; + line-height: 1.4; + margin-bottom: 4px; + transition: color 0.3s ease; + flex: 1; +} + +.item-title:hover { + background: linear-gradient(135deg, #8bc34a, #cddc39); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.item-desc { + font-size: 13px; + color: #7f8c8d; + line-height: 1.3; + margin-bottom: 8px; + display: -webkit-box; + -webkit-line-clamp: 3; + -webkit-box-orient: vertical; + overflow: hidden; +} + +.item-footer { + display: flex; + align-items: center; + justify-content: space-between; + gap: 8px; +} + +.item-score { + font-size: 14px; + background: linear-gradient(135deg, #8bc34a, #cddc39); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; + font-weight: 600; +} + +.item-score-desc { + font-size: 12px; + color: #95a5a6; + margin-left: 4px; +} + +.item-type { + display: flex; + align-items: center; + gap: 4px; +} + +.type-text { + font-size: 12px; + padding: 2px 8px; + border-radius: 10px; + font-weight: 500; + background: linear-gradient(135deg, #f1f8e9, #e8f5e8); + color: #689f38; + border: 1px solid #d4e157; +} + +/* 底部 */ +.footer { + text-align: center; + padding: 24px 0; + border-top: 1px solid #f1f8e9; + margin-top: 32px; +} + +.update-time { + font-size: 12px; + color: #95a5a6; +} + +/* 手机端优化 (默认) */ +@media (max-width: 768px) { + .container { + padding: 0 12px; + } + + .header { + padding: 20px 0; + } + + .title { + font-size: 24px; + } + + .subtitle { + font-size: 13px; + } + + .tv-item { + padding: 14px; + gap: 10px; + } + + .item-cover { + width: 60px; + height: 80px; + } + + .item-title { + font-size: 15px; + } + + .item-desc { + font-size: 12px; + -webkit-line-clamp: 2; + } + + .rank { + width: 28px; + height: 28px; + font-size: 13px; + } +} + +/* 平板端适配 */ +@media (min-width: 769px) and (max-width: 1024px) { + .container { + padding: 0 24px; + } + + .tv-list { + grid-template-columns: repeat(1, 1fr); + gap: 18px; + } + + .title { + font-size: 32px; + } + + .tv-item { + padding: 18px; + } + + .item-cover { + width: 90px; + height: 110px; + } +} + +/* 电脑端适配 */ +@media (min-width: 1025px) { + .container { + padding: 0 32px; + } + + .tv-list { + grid-template-columns: repeat(1, 1fr); + gap: 20px; + } + + .title { + font-size: 36px; + } + + .tv-item { + padding: 20px; + gap: 16px; + } + + .item-cover { + width: 100px; + height: 130px; + } + + .item-title { + font-size: 17px; + } + + .item-desc { + font-size: 14px; + } +} + +/* 大屏幕优化 */ +@media (min-width: 1400px) { + .tv-list { + grid-template-columns: repeat(2, 1fr); + gap: 24px; + } +} \ No newline at end of file diff --git a/InfoGenie-frontend/public/60sapi/热搜榜单/百度电视剧榜/返回接口.json b/InfoGenie-frontend/public/60sapi/热搜榜单/百度电视剧榜/返回接口.json new file mode 100644 index 00000000..8180a103 --- /dev/null +++ b/InfoGenie-frontend/public/60sapi/热搜榜单/百度电视剧榜/返回接口.json @@ -0,0 +1,276 @@ +{ + "code": 200, + "message": "获取成功。数据来自官方/权威源头,以确保稳定与实时。开源地址 https://github.com/vikiboss/60s,反馈群 595941841", + "data": [ + { + "rank": 1, + "title": "子夜归", + "desc": "改编自扶华的小说《梅夫人宠夫日常》。", + "score": "511898", + "score_desc": "51.19w", + "cover": "https://gips2.baidu.com/it/u=2155452125,2802752464&fm=3028&app=3028&f=JPEG&fmt=auto&q=100&size=f200_266", + "url": "https://www.baidu.com/s?wd=%E5%AD%90%E5%A4%9C%E5%BD%92+%E7%94%B5%E8%A7%86%E5%89%A7&sa=fyb_teleplay_all_all&rsv_dl=fyb_teleplay_all_all" + }, + { + "rank": 2, + "title": "献鱼", + "desc": "该剧改编自扶华的小说《向师祖献上咸鱼》,由浙江东阳奔兔影业有限公司备案。主要讲述了多年前,一位高僧曾在庚辰仙府的大魔头师祖司马焦满是血腥杀戮的未来里窥见过一线生机,给他留下一枚佛珠,希望他对生灵有慈心,能将杀心归藏。后来,被“逼上梁山”的廖停雁接受挑战,两手用力直接扯断了红线木珠,依靠咸鱼的本能降服了司马焦,成为改变他的人,也成为了黎民苍生的生机。从此廖停雁开始了引导大魔头向善的任务。", + "score": "334613", + "score_desc": "33.46w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/74230ae3ec03042a352809630060ed6b", + "url": "https://www.baidu.com/s?wd=%E7%8C%AE%E9%B1%BC+%E7%94%B5%E8%A7%86%E5%89%A7&sa=fyb_teleplay_all_all&rsv_dl=fyb_teleplay_all_all" + }, + { + "rank": 3, + "title": "锦月如歌", + "desc": "该剧改编自千山茶客的小说《女将星》。", + "score": "261451", + "score_desc": "26.15w", + "cover": "https://gips1.baidu.com/it/u=1353858050,567139191&fm=3028&app=3028&f=JPEG&fmt=auto&q=100&size=f200_266", + "url": "https://www.baidu.com/s?wd=%E9%94%A6%E6%9C%88%E5%A6%82%E6%AD%8C+%E7%94%B5%E8%A7%86%E5%89%A7&sa=fyb_teleplay_all_all&rsv_dl=fyb_teleplay_all_all" + }, + { + "rank": 4, + "title": "生万物", + "desc": "天牛庙村首富之女宁绣绣出嫁当天被土匪绑架,父亲宁学祥舍不得卖地赎她,将她的妹妹嫁给她青梅竹马的恋人费文典。绣绣决绝地与父亲断绝了关系,嫁给庄户汉子封大脚,学着干农活并慢慢明白了土地对于农民的意义。受杜春林等人的革命思想的启发,她用所学的知识帮助邻居们,带领村里的妇女一起摆脱封建思想桎梏。她和乡亲们一起除匪患、抗日、拥军,在清苦但又充满传奇的二十年岁月中,绣绣最终和她父亲达成了和解,也实现了自我价值。", + "score": "246220", + "score_desc": "24.62w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/956386852c3948e1539daf2a9e8316c5", + "url": "https://www.baidu.com/s?wd=%E7%94%9F%E4%B8%87%E7%89%A9+%E7%94%B5%E8%A7%86%E5%89%A7&sa=fyb_teleplay_all_all&rsv_dl=fyb_teleplay_all_all" + }, + { + "rank": 5, + "title": "归队", + "desc": "故事遵循东北抗联的真实发展轨迹,由小人物视角切入,以小见大的展现了战士们“勇赴国难、自觉担当、顽强苦斗、舍生取义、团结御侮”的东北抗联精神。", + "score": "174373", + "score_desc": "17.44w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/41092aaebdbee0a4a9382c182b913f99", + "url": "https://www.baidu.com/s?wd=%E5%BD%92%E9%98%9F+%E7%94%B5%E8%A7%86%E5%89%A7&sa=fyb_teleplay_all_all&rsv_dl=fyb_teleplay_all_all" + }, + { + "rank": 6, + "title": "滤镜", + "desc": "一个新科技产品“滤镜手镯”让普通平凡的苏橙橙(李兰迪 饰)拥有了改变容貌的能力。苏橙橙变成大美女“苏渺”、变成女博士“方谨”、变成撕漫男“全胜唐”,让自己咸鱼翻身爽了一把的同时,帮助弱小伸张正义。与此同时,唐奇(檀健次 饰)对见义勇为的苏渺怦然心动,与志同道合的方谨惺惺相惜,对阳光帅气的全胜唐欣赏称赞。为了保住秘密,苏橙橙不得不一次次撒下弥天大谎,让唐奇一次又一次失去了爱人。唐奇在接连的打击下,眼睛的病情逐渐加重,苏橙橙愧疚心虚。终于,唐奇揭开了苏橙橙变换身份的真相,明白自己爱的只有苏橙橙。真诚炙热的心不会被外在迷惑,心意相通的二人要一起面对滤镜手镯带来的严峻挑战。为了将“千鸟集”培育为独具中国特色的高端美妆品牌,苏橙橙和唐奇携手策划了一系列新的国货美妆产品,号召大家享受“自然自信的真实美”。经历重重考验的苏橙橙最终明白,美不应该被单一固化,要用最真实的自己去面对最现实的生活,依靠努力奋斗去追逐梦想,幸福就在眼前。", + "score": "93122", + "score_desc": "9.31w", + "cover": "https://gips2.baidu.com/it/u=3795500355,4042026657&fm=3028&app=3028&f=JPEG&fmt=auto&q=75&size=f200_266", + "url": "https://www.baidu.com/s?wd=%E6%BB%A4%E9%95%9C+%E7%94%B5%E8%A7%86%E5%89%A7&sa=fyb_teleplay_all_all&rsv_dl=fyb_teleplay_all_all" + }, + { + "rank": 7, + "title": "与晋长安", + "desc": "该剧改编自九鹭非香的同名小说。太晋女将军黎霜骁勇善战,她受命在一个月之内找出隐藏的奸细。某日,黎霜偶然间救下身负重伤记忆全失的男子,将其带回军营。男子恳求黎霜收留并跟随她征战。黎霜为其赐名晋安,寓意太晋长治久安。二人合力揪出奸细,却接连遭遇新任监军的蓄意为难和邻国大姚的屡屡犯境,晋安凭借自己过人的智谋与黎霜一起克服困难与险境,二人暗生情愫。晋安逐渐想起自己的真实身份竟是大姚的镇世王,而彼时战事一触即发,二人不得已刀兵相见,本就厌倦战争的二人决定联手化解家国危机,帮助百姓安居乐业。", + "score": "63645", + "score_desc": "6.36w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/f9e7c5bfe847536bca743e3e397b7bff", + "url": "https://www.baidu.com/s?wd=%E4%B8%8E%E6%99%8B%E9%95%BF%E5%AE%89+%E7%94%B5%E8%A7%86%E5%89%A7&sa=fyb_teleplay_all_all&rsv_dl=fyb_teleplay_all_all" + }, + { + "rank": 8, + "title": "暗潮缉凶", + "desc": "", + "score": "56675", + "score_desc": "5.67w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/52c73cc7cd55674511becbabd16aca37", + "url": "https://www.baidu.com/s?wd=%E6%9A%97%E6%BD%AE%E7%BC%89%E5%87%B6+%E7%94%B5%E8%A7%86%E5%89%A7&sa=fyb_teleplay_all_all&rsv_dl=fyb_teleplay_all_all" + }, + { + "rank": 9, + "title": "深情眼", + "desc": "改编自耳东兔子的同名小说。年过三十的叶蒙遭遇职场不顺,辞职后带着积蓄回到家乡开启惬意的小镇生活,机缘巧合之下,她偶遇了长着一双深情眼的李靳屿,并被他的神秘和冷峻吸引。两个陌生的灵魂不断触碰,叶蒙因李靳屿的艰辛生活而心生怜爱,热情主动地给予帮助;李靳屿也在叶蒙的追求下敞开了心扉,变得自信开朗起来。他们相互温暖、相互治愈,努力经营着这段来之不易的爱情。一枚戒指的到来打破了两人之间的平静,叶蒙母亲多年前患病去世的谜团缓缓浮出水面,叶蒙不得不面对残酷的真相--母亲的离去与李靳屿家有着千丝万缕的联系。此时李靳屿内心的天平早已偏向叶漾,叶蒙给他带来了阳光,现在轮到他来帮助叶蒙解开心结。最终,两人携手揭开上一辈的纠葛,放下过往恩怨,迎接美好的明天。", + "score": "56341", + "score_desc": "5.63w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/f09c4b963cd3cc3062d38e9182be750e", + "url": "https://www.baidu.com/s?wd=%E6%B7%B1%E6%83%85%E7%9C%BC+%E7%94%B5%E8%A7%86%E5%89%A7&sa=fyb_teleplay_all_all&rsv_dl=fyb_teleplay_all_all" + }, + { + "rank": 10, + "title": "定风波", + "desc": "《定风波》聚焦宋韵文化传承传播,围绕诗文、书画、美食、旅游、民生等主题,多维度描绘苏东坡的为官之道、志趣审美和精神世界,深入解读苏东坡的当代价值。全片共5集,每集50分钟。第一集“出川记”讲述苏东坡的成长与家风,建构其人生起始动力,探索其后来到杭州的动因;第二集“湖山记”讲述苏东坡首次为官杭州,受到湖山的滋养,实现真正的“胸有丘壑”;第三集“摩羯记”讲述苏东坡应对乌台诗案带来的种种影响,以乐观精神渡过人生的劫难;第四集“悬壶记”讲述苏东坡二度为官杭州,负责防疫,建安乐坊以及重新治理西湖;第五集“筑巢记”讲述苏东坡济苍生、度余生,保持“此心安处是吾乡”的人生态度。", + "score": "51095", + "score_desc": "5.11w", + "cover": "https://gips0.baidu.com/it/u=2177619972,3043234332&fm=3028&app=3028&f=JPEG&fmt=auto&q=100&size=f200_266", + "url": "https://www.baidu.com/s?wd=%E5%AE%9A%E9%A3%8E%E6%B3%A2+%E7%94%B5%E8%A7%86%E5%89%A7&sa=fyb_teleplay_all_all&rsv_dl=fyb_teleplay_all_all" + }, + { + "rank": 11, + "title": "白月梵星", + "desc": "本剧改编自星零小说《白烁上神》,讲述将军府嫡女白烁为报恩而立志修仙,寻仙途中意外搭救妖族大神梵樾,二人不打不相识,从相互利用到互生爱意、双向奔赴,纵然隔着千重困难,但爱足以打破一切限制,拥抱最真的彼此的故事。", + "score": "44201", + "score_desc": "4.42w", + "cover": "https://gips3.baidu.com/it/u=1404661215,4211295377&fm=3028&app=3028&f=JPEG&fmt=auto&q=75&size=f200_266", + "url": "https://www.baidu.com/s?wd=%E7%99%BD%E6%9C%88%E6%A2%B5%E6%98%9F+%E7%94%B5%E8%A7%86%E5%89%A7&sa=fyb_teleplay_all_all&rsv_dl=fyb_teleplay_all_all" + }, + { + "rank": 12, + "title": "我在顶峰等你", + "desc": "上一世,顾雪茭曾因恋爱脑而高考失利,职场打拼多年,归来仍是底层外包人员,还首当其冲地成为了“黑心老板”蔺之华的裁员目标。顾雪茭找蔺之华理论,意外重生回到高三那年。有机会重新开局,顾雪茭吸取前世教训,痛定思痛,将学习作为人生第一要务,由恋爱脑扭转为事业脑,在爆改人生的同时,还共同成就一段双向奔赴、互为变量的甜美爱情。", + "score": "37003", + "score_desc": "3.7w", + "cover": "https://gips2.baidu.com/it/u=3240531593,2885940403&fm=3028&app=3028&f=JPEG&fmt=auto&q=100&size=f200_266", + "url": "https://www.baidu.com/s?wd=%E6%88%91%E5%9C%A8%E9%A1%B6%E5%B3%B0%E7%AD%89%E4%BD%A0+%E7%94%B5%E8%A7%86%E5%89%A7&sa=fyb_teleplay_all_all&rsv_dl=fyb_teleplay_all_all" + }, + { + "rank": 13, + "title": "六姊妹", + "desc": "本剧改编自豆瓣阅读连载小说《六姊妹》,作者伊北。新中国成立后,何常胜为支援社会主义建设,携家带口从扬州江都移居安徽淮南,在淮河边上扎下了根。在接下来的二十年中,何常胜连得六个女儿,却在一场车祸中告别人世。大姐何家丽和奶奶何文氏、妈妈刘美心一起承担起了家庭重担,安顿妹妹们成家立业。时代在变化,何家六姊妹也经历了婚恋、工 作、生活等命运起伏,但她们团结一心,共同面对人生的风雨,在生活的磨砺中,六姊妹们也终于明白父亲生前反复强调的“家”的意义。", + "score": "36574", + "score_desc": "3.66w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/9e517a4f66e7fb7106b6333b85f1a5c1", + "url": "https://www.baidu.com/s?wd=%E5%85%AD%E5%A7%8A%E5%A6%B9+%E7%94%B5%E8%A7%86%E5%89%A7&sa=fyb_teleplay_all_all&rsv_dl=fyb_teleplay_all_all" + }, + { + "rank": 14, + "title": "扫毒风暴", + "desc": "1995年,缉毒警林强峰(段奕宏 饰)为了追查毒品的线索调到了西港缉毒支队工作。走私商刘少华(秦昊 饰)因偶然的机会接触到了冰毒,毒品带来的巨大利润让他产生邪念,成为了一名制毒师。在林强峰等缉毒警的全力追查下,西港市的涉案的毒贩们一一落网,只剩刘少华在别处鼠窜,企图躲避警方追捕。 1996年,林强峰再次查没了企图东山再起的刘少华的毒品,走投无路的刘少华只能蛰伏了起来,之后刘少华企图再次制毒,被林强峰发现踪迹。1999年,刘少华终于落网。", + "score": "32911", + "score_desc": "3.29w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/d9e3d21ca332652ffe75d7176bce397f", + "url": "https://www.baidu.com/s?wd=%E6%89%AB%E6%AF%92%E9%A3%8E%E6%9A%B4+%E7%94%B5%E8%A7%86%E5%89%A7&sa=fyb_teleplay_all_all&rsv_dl=fyb_teleplay_all_all" + }, + { + "rank": 15, + "title": "目之所及", + "desc": "本剧改编自阅读连载小说《盲目》,作者慕遥而寻。 世纪之交,因为水利工程的蓄水要求,一座江边小城即将被淹没,人们如火如荼地进行着新城的规划建设和人口的迁徙。此时,一桩离奇的杀夫案闯入了警方的视野,嫌疑人中,一个是咬定丈夫杀了女儿的可怜女人曲桐,一个是按摩院身份模糊的盲人薛小伟, 他们相互救赎,甘愿为对方牺牲,疑点重重。警 方锲而不舍的追查,揭秘出一段尘封多年,令人唏嘘的往事。真相可能会被淹没,但终有浮出水面的一天。", + "score": "27439", + "score_desc": "2.74w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/3b731c9a9e809e7c694a8cc5c65d5a15", + "url": "https://www.baidu.com/s?wd=%E7%9B%AE%E4%B9%8B%E6%89%80%E5%8F%8A+%E7%94%B5%E8%A7%86%E5%89%A7&sa=fyb_teleplay_all_all&rsv_dl=fyb_teleplay_all_all" + }, + { + "rank": 16, + "title": "书卷一梦", + "desc": "柠萌影业出品,改编自千山茶客的同名小说,尚书府嫡长女蒋阮被当成一枚棋子送入宫中,爱上温文儒雅的八皇子。谁知一朝宫变,爱人登基,府上鸡犬升天,她却成为一枚弃子,被污蔑为祸国妖女。蒋阮不甘,下定决心要报仇,却在回府之时遭遇暗杀,后借助神秘黑衣人之手才逃过一劫。从危机四伏的宅院到步步惊心的朝堂,她面对的敌人越来越多她暗暗布下陷阱,却误打误撞遇到锦英王萧韶。萧韶性情冷清,却屡次出手相助于她,两人暗生情愫,渐渐结盟,萧韶的身世之谜也随之浮出水面。此后,蒋阮千方百计阻挠八皇子的夺嫡大业,却引起了萧韶的怀疑,两人结下误会八皇子开始进行疯狂的反击行动,蒋阮的处境十分危险。复仇途中,蒋阮发现自己的身世竟和萧韶的身世之谜有关,一个大锦朝隐藏多年的秘密浮出水面此时,南疆人蠢蠢欲动,欲与宣离结为同盟。彼时,蒋阮小时候被继母种下的毒发作,萧韶带她四处求医,生死一线的时候,蒋阮得知了一个更大的秘密", + "score": "26702", + "score_desc": "2.67w", + "cover": "https://gips2.baidu.com/it/u=1593831522,852391480&fm=3028&app=3028&f=JPEG&fmt=auto&q=100&size=f200_266", + "url": "https://www.baidu.com/s?wd=%E4%B9%A6%E5%8D%B7%E4%B8%80%E6%A2%A6+%E7%94%B5%E8%A7%86%E5%89%A7&sa=fyb_teleplay_all_all&rsv_dl=fyb_teleplay_all_all" + }, + { + "rank": 17, + "title": "樱桃琥珀", + "desc": "《樱桃琥珀》要被影视化了,温柔女主学霸男主,主人公从小城到大都市,直至婚姻殿堂的女孩成长故事,由国内一线知名影视公司出品。", + "score": "26660", + "score_desc": "2.67w", + "cover": "https://gips3.baidu.com/it/u=2643705168,575328711&fm=3028&app=3028&f=JPEG&fmt=auto&q=100&size=f200_266", + "url": "https://www.baidu.com/s?wd=%E6%A8%B1%E6%A1%83%E7%90%A5%E7%8F%80+%E7%94%B5%E8%A7%86%E5%89%A7&sa=fyb_teleplay_all_all&rsv_dl=fyb_teleplay_all_all" + }, + { + "rank": 18, + "title": "咒术回战第二季", + "desc": "", + "score": "26617", + "score_desc": "2.66w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/7b3cfcaf3b343d45f5c16f3e47a9f946", + "url": "https://www.baidu.com/s?wd=%E5%92%92%E6%9C%AF%E5%9B%9E%E6%88%98%E7%AC%AC%E4%BA%8C%E5%AD%A3+%E7%94%B5%E8%A7%86%E5%89%A7&sa=fyb_teleplay_all_all&rsv_dl=fyb_teleplay_all_all" + }, + { + "rank": 19, + "title": "偷偷藏不住", + "desc": "桑稚高中时期被老师频繁请家长,为了解决麻烦,桑稚决定找哥哥顶包,然而兄妹见面就互怼闹僵,无奈只好求助来家中玩耍的哥哥舍友段嘉许,在桑稚的苦求要挟下,段嘉许帮桑稚去学校见老师,两人因此结缘,段嘉许从此更是把桑稚当成自己的亲妹妹爱护。随着段嘉许大学毕业,两人分隔异地,又因为一些误会,关系疏远。直到成年后的桑稚如愿考到了段嘉许的城市,两人重逢。在日渐亲密的接触下,桑稚渐渐发现了段嘉许一直以来的压力来源,她想要保护这个一直对自己很好的大哥哥,重拾埋藏心底的暗恋。在桑稚的陪伴下,段嘉许慢慢解开心结,他真心喜欢上了长大的桑稚,一段纯真暗恋终于开出美丽的爱情花朵。", + "score": "24655", + "score_desc": "2.47w", + "cover": "https://gips3.baidu.com/it/u=2216037055,3672846777&fm=3028&app=3028&f=JPEG&fmt=auto&q=75&size=f200_266", + "url": "https://www.baidu.com/s?wd=%E5%81%B7%E5%81%B7%E8%97%8F%E4%B8%8D%E4%BD%8F+%E7%94%B5%E8%A7%86%E5%89%A7&sa=fyb_teleplay_all_all&rsv_dl=fyb_teleplay_all_all" + }, + { + "rank": 20, + "title": "一路朝阳", + "desc": "北漂女孩李慕嘉毕业后进入北京最知名的律所,靠着自己的勤奋努力从行政助理一路成为独当一面的律师,在职业巅峰切换跑道加入创业公司,大起大落最终创业成功,收获了一个家;闺蜜田蓉毕业求职未果,误打误撞成为房产中介,与北京男孩李万兵仓促结婚,在婚后职业和感情都遭受了巨大考验;表妹陈青斯坦福毕业与男友回国创业,遭遇种种挫折但找到了心之所向。从2007到2019年,三个女孩对人生的追求和希望在现实中身不由己地改变了模样,庆幸的是十年的磨砺最终还是求得了人生的向阳面,得以一路朝阳。", + "score": "24482", + "score_desc": "2.45w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/356088680f3a962380c8d700cf9a2826", + "url": "https://www.baidu.com/s?wd=%E4%B8%80%E8%B7%AF%E6%9C%9D%E9%98%B3+%E7%94%B5%E8%A7%86%E5%89%A7&sa=fyb_teleplay_all_all&rsv_dl=fyb_teleplay_all_all" + }, + { + "rank": 21, + "title": "她和她的他们", + "desc": "《她和她的他们》是由徐麒丰担任总导演、王兵导演,由肖顺尧、贾青、何杜娟领衔主演,胡军特邀领衔主演,袁家欢、王大奇、蒋方婷、郑家彬、钟林煜、李琦、秦奋等主演的都市犯罪悬疑剧。该剧讲述了刑警队副队长赵熵与搭档崔山河,抽丝剥茧,一层层揭开七人之间错综复杂的情感秘密,一场场关于人性、伦理的纠葛,一出出谎言交织的虐戏逐步上演。随着真相步步逼近,赵熵也拉开了自我救赎的序幕。", + "score": "24375", + "score_desc": "2.44w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/6b5d1065fb78498ab26d77cd0e0c7c27", + "url": "https://www.baidu.com/s?wd=%E5%A5%B9%E5%92%8C%E5%A5%B9%E7%9A%84%E4%BB%96%E4%BB%AC+%E7%94%B5%E8%A7%86%E5%89%A7&sa=fyb_teleplay_all_all&rsv_dl=fyb_teleplay_all_all" + }, + { + "rank": 22, + "title": "卿卿日常", + "desc": "《清穿日常》是多木木多所著网络小说,在晋江文学城、中国移动和阅读等网站连载。吃……吃喝喝那些事。反正清穿已经都穿成筛子了。清穿就是为了遇见阿哥,种种田过过日子!今天,你清穿了吗?", + "score": "22800", + "score_desc": "2.28w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/6caa4eb1bb38d643d7099b060d94acee", + "url": "https://www.baidu.com/s?wd=%E5%8D%BF%E5%8D%BF%E6%97%A5%E5%B8%B8+%E7%94%B5%E8%A7%86%E5%89%A7&sa=fyb_teleplay_all_all&rsv_dl=fyb_teleplay_all_all" + }, + { + "rank": 23, + "title": "初恋,稍显粗糙", + "desc": "《初恋,稍显粗糙》是由小野花梨、风间俊介主演的电视剧,于2023年7月7日在东京电视台深夜播出。该剧改编自作者ざくざくろ的同名漫画,讲述一位轻度智力障碍女性的纯爱故事。", + "score": "21904", + "score_desc": "2.19w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/e4c672a71dfa478102360895a77b4108", + "url": "https://www.baidu.com/s?wd=%E5%88%9D%E6%81%8B%EF%BC%8C%E7%A8%8D%E6%98%BE%E7%B2%97%E7%B3%99+%E7%94%B5%E8%A7%86%E5%89%A7&sa=fyb_teleplay_all_all&rsv_dl=fyb_teleplay_all_all" + }, + { + "rank": 24, + "title": "九重紫", + "desc": "年少失母的窦昭因为家庭变故和坎坷波折的命运对人间情爱与亲情失望透顶,她斗继母、保家产,避居冷僻田庄,求学晓事以图自保自强。大雨之夜,窦昭与扮作商贾投宿的宋墨在田庄相逢,用自己的智慧帮其保下平寇有功的定国公一脉遗孤,二人命运也因此紧紧缠绕。出身官宦之家的宋墨深陷家变谜团,而窦昭也在继母的破坏下遭遇换亲流言,二人选择成亲以结同盟、共度困局。曾经彼此猜忌的他们在相互帮扶中共渡难关,也由此渐渐相知相惜、互为知己。不料风雨欲来、朝堂骤变,窦昭与宋墨携手面对危局,共同挽救家族命运、解开英国公府换子疑云、成功阻止辽王谋逆,平忠臣冤案、保家国安宁,活出了真正属于自己的幸福生活。", + "score": "21717", + "score_desc": "2.17w", + "cover": "https://gips3.baidu.com/it/u=1237661084,451511578&fm=3028&app=3028&f=JPEG&fmt=auto&q=75&size=f200_266", + "url": "https://www.baidu.com/s?wd=%E4%B9%9D%E9%87%8D%E7%B4%AB+%E7%94%B5%E8%A7%86%E5%89%A7&sa=fyb_teleplay_all_all&rsv_dl=fyb_teleplay_all_all" + }, + { + "rank": 25, + "title": "香港人在北京", + "desc": "《香港人在北京》是由陈展鹏、吴若希、戴祖仪主演的TVB电视剧,在拍摄中。", + "score": "21238", + "score_desc": "2.12w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/2e5f4d3fe3b36a7d9f4f782c35979016", + "url": "https://www.baidu.com/s?wd=%E9%A6%99%E6%B8%AF%E4%BA%BA%E5%9C%A8%E5%8C%97%E4%BA%AC+%E7%94%B5%E8%A7%86%E5%89%A7&sa=fyb_teleplay_all_all&rsv_dl=fyb_teleplay_all_all" + }, + { + "rank": 26, + "title": "你好,我们是欢喜天团", + "desc": "《你好,我们是欢喜天团》是由刘浩南执导,由王艺瑾、千喆、高卿尘领衔主演,易恒、伍雅露、阿克朱力、曹左、贵尚奇、庄逸涵、曲梦婷主演,陈名豪、代少冬特别出演的古代网络微短剧。2022年10月15日,《你好,我们是欢喜天团》杀青。该剧于2023年9月22日在腾讯视频播出。", + "score": "20966", + "score_desc": "2.1w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/94e45c218022c97e865f68c3a15c9c22", + "url": "https://www.baidu.com/s?wd=%E4%BD%A0%E5%A5%BD%EF%BC%8C%E6%88%91%E4%BB%AC%E6%98%AF%E6%AC%A2%E5%96%9C%E5%A4%A9%E5%9B%A2+%E7%94%B5%E8%A7%86%E5%89%A7&sa=fyb_teleplay_all_all&rsv_dl=fyb_teleplay_all_all" + }, + { + "rank": 27, + "title": "诛仙", + "desc": "一夜间惨变孤儿的张小凡被青云门收为弟子,经过五年刻苦修炼,他在师门七脉会武上大放异彩,后被派往空桑山打探魔教行迹,旅程中,他与师姐陆雪琪遭遇危难,并结识救护了魔教女子碧瑶,同时,新的危险也在前方等待着他。", + "score": "20659", + "score_desc": "2.07w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/ab55434dff2e8c4432119fc980f5a51d", + "url": "https://www.baidu.com/s?wd=%E8%AF%9B%E4%BB%99+%E7%94%B5%E8%A7%86%E5%89%A7&sa=fyb_teleplay_all_all&rsv_dl=fyb_teleplay_all_all" + }, + { + "rank": 28, + "title": "玫瑰的故事", + "desc": "电视剧改编自亦舒同名小说,由刘亦菲出演该剧女一号。剧中主要讲述了黄玫瑰一生的情感故事。出身于富贵之家的玫瑰经历了几段刻骨铭心的爱情,在浮浮沉沉中明白自己想要的是什么,为爱放手去追寻,成长为更有勇气的自己。", + "score": "20439", + "score_desc": "2.04w", + "cover": "https://gips1.baidu.com/it/u=1227308879,4121027510&fm=3028&app=3028&f=PNG&fmt=auto&q=75&size=f608_864", + "url": "https://www.baidu.com/s?wd=%E7%8E%AB%E7%91%B0%E7%9A%84%E6%95%85%E4%BA%8B+%E7%94%B5%E8%A7%86%E5%89%A7&sa=fyb_teleplay_all_all&rsv_dl=fyb_teleplay_all_all" + }, + { + "rank": 29, + "title": "爱你,是我做过最好的事", + "desc": "《爱你,是我做过最好的事》笙离的小说。讲述了一个关于青春、成长、初恋、选择的故事。", + "score": "20196", + "score_desc": "2.02w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/d680ad814edfef5438f7e6175c0456f6", + "url": "https://www.baidu.com/s?wd=%E7%88%B1%E4%BD%A0%EF%BC%8C%E6%98%AF%E6%88%91%E5%81%9A%E8%BF%87%E6%9C%80%E5%A5%BD%E7%9A%84%E4%BA%8B+%E7%94%B5%E8%A7%86%E5%89%A7&sa=fyb_teleplay_all_all&rsv_dl=fyb_teleplay_all_all" + }, + { + "rank": 30, + "title": "唐朝诡事录", + "desc": "暗夜邪仙从天而降,鬼市地宫露出冰山一角,而风靡长安的诡异红茶究竟是养生之药还是害人之物?长安城里新娘失踪案接连发生,似乎与红茶有着千丝万缕的联系案件扑朔迷离,人心玄妙难鉴!金吾卫中郎将卢凌风奉命查案,遭遇平生最强对手狄仁杰关门弟子苏无名,双强携手共破长安奇案!九个不同风格的诡异案件,《长安红茶》《石桥图》《众生堂》《黄梅杀》《甘棠驿怪谈》《鼍神》《人面花》《参天楼》,一一为您揭晓大唐夜色笼罩之下的奇闻异录! 见证唐诗之外,被湮没千年的奇诡想象。千年前的唐朝,万邦来朝,是当之无愧的世界中心。优越的物质生活,多样的文化融合,催生了唐朝人极致的想象力。 除了李白、杜甫、白居易等一代传奇诗人,用唐诗描绘出的华丽的大唐美卷;市井间的贩夫走卒,更用他们更加不羁的想象力,在唐朝的夜幕中 勾勒出神魔鬼怪的憧憧魅影:仙魔精妖、奇闻怪谈、幻术道法、异域传说、珍禽异兽、宫廷轶事", + "score": "17785", + "score_desc": "1.78w", + "cover": "https://fyb-2.cdn.bcebos.com/hotboard_image/5bb62453122a1d67e077b70321676175", + "url": "https://www.baidu.com/s?wd=%E5%94%90%E6%9C%9D%E8%AF%A1%E4%BA%8B%E5%BD%95+%E7%94%B5%E8%A7%86%E5%89%A7&sa=fyb_teleplay_all_all&rsv_dl=fyb_teleplay_all_all" + } + ] +} \ No newline at end of file diff --git a/InfoGenie-frontend/public/60sapi/热搜榜单/百度贴吧话题榜/api.js b/InfoGenie-frontend/public/60sapi/热搜榜单/百度贴吧话题榜/api.js new file mode 100644 index 00000000..46def0f0 --- /dev/null +++ b/InfoGenie-frontend/public/60sapi/热搜榜单/百度贴吧话题榜/api.js @@ -0,0 +1,146 @@ +// API 配置和数据获取模块 +class HotTopicsAPI { + constructor() { + this.apiUrl = 'https://60s.api.shumengya.top/v2/baidu/tieba'; + this.fallbackData = null; + } + + // 获取热搜数据 + async fetchHotTopics() { + try { + const response = await fetch(this.apiUrl, { + method: 'GET', + headers: { + 'Accept': 'application/json', + 'Content-Type': 'application/json' + }, + // 添加超时控制 + signal: AbortSignal.timeout(10000) // 10秒超时 + }); + + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + + const data = await response.json(); + + // 验证数据格式 + if (!this.validateData(data)) { + throw new Error('Invalid data format'); + } + + // 缓存成功的数据作为备用 + this.fallbackData = data; + + return { + success: true, + data: data, + timestamp: new Date().toISOString() + }; + } catch (error) { + console.error('API请求失败:', error); + + // 如果有缓存数据,返回缓存数据 + if (this.fallbackData) { + return { + success: true, + data: this.fallbackData, + timestamp: new Date().toISOString(), + isCache: true + }; + } + + return { + success: false, + error: error.message, + timestamp: new Date().toISOString() + }; + } + } + + // 验证数据格式 + validateData(data) { + if (!data || typeof data !== 'object') { + return false; + } + + if (data.code !== 200) { + return false; + } + + if (!Array.isArray(data.data)) { + return false; + } + + // 验证数据项格式 + return data.data.every(item => { + return item.rank && + item.title && + item.desc && + item.score_desc; + }); + } + + // 处理图片URL + processImageUrl(url) { + if (!url) return null; + + // 处理百度贴吧图片URL的特殊字符 + try { + return url.replace(/&/g, '&'); + } catch (error) { + console.warn('图片URL处理失败:', error); + return null; + } + } + + // 处理跳转URL + processTopicUrl(url) { + if (!url) return '#'; + + try { + return url.replace(/&/g, '&'); + } catch (error) { + console.warn('链接URL处理失败:', error); + return '#'; + } + } + + // 格式化分数显示 + formatScore(score, scoreDesc) { + if (scoreDesc) { + return scoreDesc; + } + + if (typeof score === 'number') { + if (score >= 10000) { + return (score / 10000).toFixed(1) + 'w'; + } + return score.toString(); + } + + return '0'; + } + + // 截断文本 + truncateText(text, maxLength = 100) { + if (!text) return ''; + + if (text.length <= maxLength) { + return text; + } + + return text.substring(0, maxLength) + '...'; + } + + // 获取排名样式类 + getRankClass(rank) { + if (rank === 1) return 'top-1'; + if (rank === 2) return 'top-2'; + if (rank === 3) return 'top-3'; + return 'normal'; + } +} + +// 导出API实例 +const hotTopicsAPI = new HotTopicsAPI(); \ No newline at end of file diff --git a/InfoGenie-frontend/public/60sapi/热搜榜单/百度贴吧话题榜/app.js b/InfoGenie-frontend/public/60sapi/热搜榜单/百度贴吧话题榜/app.js new file mode 100644 index 00000000..7c31b50e --- /dev/null +++ b/InfoGenie-frontend/public/60sapi/热搜榜单/百度贴吧话题榜/app.js @@ -0,0 +1,201 @@ +// 主应用程序文件 +class HotTopicsApp { + constructor() { + this.isInitialized = false; + this.retryCount = 0; + this.maxRetries = 3; + this.retryDelay = 2000; // 2秒 + } + + // 初始化应用 + async init() { + if (this.isInitialized) return; + + try { + console.log('初始化百度贴吧热搜应用...'); + + // 检查必要的元素是否存在 + this.checkRequiredElements(); + + // 加载初始数据 + await this.loadHotTopics(); + + // 设置自动刷新 + this.setupAutoRefresh(); + + // 设置页面可见性监听 + this.setupVisibilityListener(); + + this.isInitialized = true; + console.log('应用初始化完成'); + + } catch (error) { + console.error('应用初始化失败:', error); + uiManager.showError('应用初始化失败,请刷新页面重试'); + } + } + + // 检查必要元素 + checkRequiredElements() { + const requiredElements = ['loading', 'error', 'hotList', 'refreshBtn', 'updateTime']; + const missingElements = requiredElements.filter(id => !document.getElementById(id)); + + if (missingElements.length > 0) { + throw new Error(`缺少必要元素: ${missingElements.join(', ')}`); + } + } + + // 加载热搜数据 + async loadHotTopics() { + try { + console.log('开始获取热搜数据...'); + uiManager.showLoading(); + + const result = await hotTopicsAPI.fetchHotTopics(); + + if (result.success) { + console.log('数据获取成功:', result.data.data?.length || 0, '条记录'); + uiManager.renderHotTopics(result.data); + this.retryCount = 0; // 重置重试计数 + + // 如果是缓存数据,显示提示 + if (result.isCache) { + uiManager.showToast('当前显示缓存数据', 3000); + } + } else { + throw new Error(result.error || '数据获取失败'); + } + + } catch (error) { + console.error('加载热搜数据失败:', error); + + // 重试逻辑 + if (this.retryCount < this.maxRetries) { + this.retryCount++; + console.log(`第 ${this.retryCount} 次重试...`); + + uiManager.showToast(`加载失败,${this.retryDelay / 1000}秒后重试...`, this.retryDelay); + + setTimeout(() => { + this.loadHotTopics(); + }, this.retryDelay); + + // 增加重试延迟 + this.retryDelay = Math.min(this.retryDelay * 1.5, 10000); + } else { + uiManager.showError('数据加载失败,请检查网络连接后重试'); + this.retryCount = 0; + this.retryDelay = 2000; + } + } + } + + // 设置自动刷新 + setupAutoRefresh() { + // 每5分钟自动刷新一次 + setInterval(() => { + if (document.visibilityState === 'visible' && !uiManager.isLoading) { + console.log('自动刷新数据...'); + this.loadHotTopics(); + } + }, 5 * 60 * 1000); // 5分钟 + } + + // 设置页面可见性监听 + setupVisibilityListener() { + document.addEventListener('visibilitychange', () => { + if (document.visibilityState === 'visible') { + // 页面变为可见时,检查是否需要刷新数据 + const lastUpdate = localStorage.getItem('lastUpdateTime'); + const now = Date.now(); + + if (!lastUpdate || (now - parseInt(lastUpdate)) > 10 * 60 * 1000) { + // 超过10分钟没更新,自动刷新 + console.log('页面重新可见,刷新数据...'); + this.loadHotTopics(); + } + } + }); + } + + // 手动刷新 + async refresh() { + if (uiManager.isLoading) { + console.log('正在加载中,忽略刷新请求'); + return; + } + + console.log('手动刷新数据...'); + this.retryCount = 0; + this.retryDelay = 2000; + await this.loadHotTopics(); + } + + // 获取应用状态 + getStatus() { + return { + isInitialized: this.isInitialized, + isLoading: uiManager.isLoading, + retryCount: this.retryCount, + lastUpdate: localStorage.getItem('lastUpdateTime') + }; + } +} + +// 创建应用实例 +const app = new HotTopicsApp(); + +// 全局函数,供HTML调用 +window.loadHotTopics = () => app.loadHotTopics(); +window.refreshData = () => app.refresh(); +window.getAppStatus = () => app.getStatus(); + +// 页面加载完成后初始化 +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', () => { + app.init(); + }); +} else { + // 如果页面已经加载完成 + app.init(); +} + +// 错误处理 +window.addEventListener('error', (event) => { + console.error('全局错误:', event.error); + + // 如果是网络错误,显示友好提示 + if (event.error?.message?.includes('fetch') || + event.error?.message?.includes('network') || + event.error?.message?.includes('Failed to fetch')) { + uiManager.showToast('网络连接异常,请检查网络设置'); + } +}); + +// 未处理的Promise拒绝 +window.addEventListener('unhandledrejection', (event) => { + console.error('未处理的Promise拒绝:', event.reason); + + // 防止默认的错误处理 + event.preventDefault(); + + // 显示用户友好的错误信息 + if (event.reason?.message?.includes('fetch') || + event.reason?.message?.includes('network')) { + uiManager.showToast('网络请求失败,请稍后重试'); + } +}); + +// 导出应用实例(用于调试) +window.hotTopicsApp = app; + +// 开发模式下的调试信息 +if (window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1') { + console.log('🚀 百度贴吧热搜应用已启动'); + console.log('📱 响应式设计已启用'); + console.log('🔄 自动刷新已设置(5分钟间隔)'); + console.log('💡 可用调试命令:'); + console.log(' - hotTopicsApp.getStatus() // 获取应用状态'); + console.log(' - hotTopicsApp.refresh() // 手动刷新'); + console.log(' - loadHotTopics() // 重新加载数据'); +} \ No newline at end of file diff --git a/InfoGenie-frontend/public/60sapi/热搜榜单/百度贴吧话题榜/index.html b/InfoGenie-frontend/public/60sapi/热搜榜单/百度贴吧话题榜/index.html new file mode 100644 index 00000000..3e06b890 --- /dev/null +++ b/InfoGenie-frontend/public/60sapi/热搜榜单/百度贴吧话题榜/index.html @@ -0,0 +1,57 @@ + + + + + + 百度贴吧热搜榜单 + + + + + +
+ +
+
+ +
+ +
+
+
+ + +
+
+

正在获取最新热搜...

+
+ + + + + +
+
+ +
+
+ + +
+

最后更新:--

+

数据来源:百度贴吧官方

+
+
+ + + + + + \ No newline at end of file diff --git a/InfoGenie-frontend/public/60sapi/热搜榜单/百度贴吧话题榜/styles.css b/InfoGenie-frontend/public/60sapi/热搜榜单/百度贴吧话题榜/styles.css new file mode 100644 index 00000000..4d7622e6 --- /dev/null +++ b/InfoGenie-frontend/public/60sapi/热搜榜单/百度贴吧话题榜/styles.css @@ -0,0 +1,419 @@ +/* 全局样式重置 */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; + background: linear-gradient(135deg, #e8f5e8 0%, #f9f9e8 50%, #f5f5f5 100%); + min-height: 100vh; + color: #333; + line-height: 1.6; +} + +.container { + max-width: 800px; + margin: 0 auto; + padding: 0 16px; + min-height: 100vh; + display: flex; + flex-direction: column; +} + +/* 头部样式 */ +.header { + padding: 20px 0; + position: sticky; + top: 0; + background: rgba(255, 255, 255, 0.95); + backdrop-filter: blur(10px); + border-radius: 0 0 20px 20px; + margin-bottom: 20px; + z-index: 100; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1); +} + +.header-content { + display: flex; + justify-content: space-between; + align-items: center; +} + +.logo { + display: flex; + align-items: center; + gap: 12px; +} + +.logo i { + font-size: 28px; + color: #7fb069; +} + +.logo h1 { + font-size: 24px; + font-weight: 700; + color: #2d3748; + margin: 0; +} + +.refresh-btn { + width: 44px; + height: 44px; + border-radius: 50%; + background: linear-gradient(135deg, #7fb069, #a8cc8c); + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + transition: all 0.3s ease; + box-shadow: 0 4px 15px rgba(127, 176, 105, 0.3); +} + +.refresh-btn:hover { + transform: translateY(-2px); + box-shadow: 0 6px 20px rgba(127, 176, 105, 0.4); +} + +.refresh-btn:active { + transform: translateY(0); +} + +.refresh-btn i { + color: white; + font-size: 18px; +} + +.refresh-btn.loading i { + animation: spin 1s linear infinite; +} + +@keyframes spin { + from { transform: rotate(0deg); } + to { transform: rotate(360deg); } +} + +/* 主内容区域 */ +.main-content { + flex: 1; + margin-bottom: 20px; +} + +/* 加载状态 */ +.loading { + text-align: center; + padding: 60px 20px; + color: white; +} + +.loading-spinner { + width: 40px; + height: 40px; + border: 3px solid rgba(255, 255, 255, 0.3); + border-top: 3px solid white; + border-radius: 50%; + margin: 0 auto 20px; + animation: spin 1s linear infinite; +} + +.loading p { + font-size: 16px; + opacity: 0.9; +} + +/* 错误状态 */ +.error { + text-align: center; + padding: 60px 20px; + color: white; +} + +.error i { + font-size: 48px; + margin-bottom: 20px; + opacity: 0.8; +} + +.error p { + font-size: 16px; + margin-bottom: 20px; + opacity: 0.9; +} + +.retry-btn { + background: rgba(255, 255, 255, 0.2); + border: 2px solid rgba(255, 255, 255, 0.3); + color: white; + padding: 12px 24px; + border-radius: 25px; + cursor: pointer; + font-size: 14px; + transition: all 0.3s ease; +} + +.retry-btn:hover { + background: rgba(255, 255, 255, 0.3); + border-color: rgba(255, 255, 255, 0.5); +} + +/* 热搜列表 */ +.hot-list { + display: grid; + gap: 16px; +} + +.hot-item { + background: rgba(255, 255, 255, 0.95); + border-radius: 16px; + padding: 20px; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1); + transition: all 0.3s ease; + cursor: pointer; + backdrop-filter: blur(10px); + border: 1px solid rgba(255, 255, 255, 0.2); +} + +.hot-item:hover { + transform: translateY(-4px); + box-shadow: 0 8px 30px rgba(0, 0, 0, 0.15); + background: rgba(255, 255, 255, 1); +} + +.hot-item-header { + display: flex; + align-items: flex-start; + gap: 16px; + margin-bottom: 12px; +} + +.rank-badge { + min-width: 32px; + height: 32px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-weight: 700; + font-size: 14px; + color: white; + flex-shrink: 0; +} + +.rank-badge.top-1 { + background: linear-gradient(135deg, #ff6b6b, #ee5a24); + box-shadow: 0 4px 15px rgba(255, 107, 107, 0.3); +} + +.rank-badge.top-2 { + background: linear-gradient(135deg, #ffa726, #ff7043); + box-shadow: 0 4px 15px rgba(255, 167, 38, 0.3); +} + +.rank-badge.top-3 { + background: linear-gradient(135deg, #ffca28, #ffa000); + box-shadow: 0 4px 15px rgba(255, 202, 40, 0.3); +} + +.rank-badge.normal { + background: linear-gradient(135deg, #7fb069, #a8cc8c); + box-shadow: 0 4px 15px rgba(127, 176, 105, 0.3); +} + +.hot-item-content { + flex: 1; + min-width: 0; +} + +.hot-title { + font-size: 16px; + font-weight: 600; + color: #2d3748; + margin-bottom: 8px; + line-height: 1.4; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; +} + +.hot-desc { + font-size: 14px; + color: #718096; + line-height: 1.5; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; + margin-bottom: 12px; +} + +.hot-meta { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; +} + +.hot-score { + display: flex; + align-items: center; + gap: 6px; + color: #7fb069; + font-weight: 600; + font-size: 14px; +} + +.hot-score i { + font-size: 12px; +} + +.hot-avatar { + width: 24px; + height: 24px; + border-radius: 50%; + object-fit: cover; + border: 2px solid rgba(127, 176, 105, 0.2); +} + +/* 底部 */ +.footer { + text-align: center; + padding: 20px 0; + color: rgba(255, 255, 255, 0.8); + font-size: 12px; + line-height: 1.5; +} + +.update-time { + margin-bottom: 4px; + font-weight: 500; +} + +.data-source { + opacity: 0.7; +} + +/* 响应式设计 */ +@media (max-width: 768px) { + .container { + padding: 0 12px; + } + + .header { + padding: 16px 0; + margin-bottom: 16px; + } + + .logo h1 { + font-size: 20px; + } + + .logo i { + font-size: 24px; + } + + .refresh-btn { + width: 40px; + height: 40px; + } + + .refresh-btn i { + font-size: 16px; + } + + .hot-list { + gap: 12px; + } + + .hot-item { + padding: 16px; + } + + .hot-item-header { + gap: 12px; + margin-bottom: 10px; + } + + .rank-badge { + min-width: 28px; + height: 28px; + font-size: 12px; + } + + .hot-title { + font-size: 15px; + } + + .hot-desc { + font-size: 13px; + } + + .hot-score { + font-size: 13px; + } + + .hot-avatar { + width: 20px; + height: 20px; + border: 2px solid rgba(127, 176, 105, 0.2); + } +} + +@media (max-width: 480px) { + .container { + padding: 0 8px; + } + + .hot-item { + padding: 12px; + } + + .hot-title { + font-size: 14px; + } + + .hot-desc { + font-size: 12px; + } +} + +/* 动画效果 */ +.hot-item { + animation: fadeInUp 0.6s ease forwards; + opacity: 0; + transform: translateY(20px); +} + +.hot-item:nth-child(1) { animation-delay: 0.1s; } +.hot-item:nth-child(2) { animation-delay: 0.2s; } +.hot-item:nth-child(3) { animation-delay: 0.3s; } +.hot-item:nth-child(4) { animation-delay: 0.4s; } +.hot-item:nth-child(5) { animation-delay: 0.5s; } +.hot-item:nth-child(n+6) { animation-delay: 0.6s; } + +@keyframes fadeInUp { + to { + opacity: 1; + transform: translateY(0); + } +} + +/* 滚动条样式 */ +::-webkit-scrollbar { + width: 6px; +} + +::-webkit-scrollbar-track { + background: rgba(255, 255, 255, 0.1); +} + +::-webkit-scrollbar-thumb { + background: rgba(255, 255, 255, 0.3); + border-radius: 3px; +} + +::-webkit-scrollbar-thumb:hover { + background: rgba(255, 255, 255, 0.5); +} \ No newline at end of file diff --git a/InfoGenie-frontend/public/60sapi/热搜榜单/百度贴吧话题榜/ui.js b/InfoGenie-frontend/public/60sapi/热搜榜单/百度贴吧话题榜/ui.js new file mode 100644 index 00000000..89f01bb3 --- /dev/null +++ b/InfoGenie-frontend/public/60sapi/热搜榜单/百度贴吧话题榜/ui.js @@ -0,0 +1,354 @@ +// UI 渲染和交互模块 +class UIManager { + constructor() { + this.elements = { + loading: document.getElementById('loading'), + error: document.getElementById('error'), + hotList: document.getElementById('hotList'), + refreshBtn: document.getElementById('refreshBtn'), + updateTime: document.getElementById('updateTime') + }; + + this.isLoading = false; + this.initEventListeners(); + } + + // 初始化事件监听器 + initEventListeners() { + // 刷新按钮点击事件 + this.elements.refreshBtn.addEventListener('click', () => { + if (!this.isLoading) { + this.refreshData(); + } + }); + + // 键盘快捷键 + document.addEventListener('keydown', (e) => { + if (e.key === 'F5' || (e.ctrlKey && e.key === 'r')) { + e.preventDefault(); + if (!this.isLoading) { + this.refreshData(); + } + } + }); + + // 下拉刷新(移动端) + this.initPullToRefresh(); + } + + // 初始化下拉刷新 + initPullToRefresh() { + let startY = 0; + let currentY = 0; + let isPulling = false; + const threshold = 80; + + document.addEventListener('touchstart', (e) => { + if (window.scrollY === 0) { + startY = e.touches[0].clientY; + isPulling = true; + } + }); + + document.addEventListener('touchmove', (e) => { + if (isPulling && window.scrollY === 0) { + currentY = e.touches[0].clientY; + const pullDistance = currentY - startY; + + if (pullDistance > 0) { + e.preventDefault(); + + // 添加视觉反馈 + if (pullDistance > threshold) { + this.elements.refreshBtn.style.transform = 'scale(1.1)'; + } else { + this.elements.refreshBtn.style.transform = 'scale(1)'; + } + } + } + }); + + document.addEventListener('touchend', () => { + if (isPulling) { + const pullDistance = currentY - startY; + + if (pullDistance > threshold && !this.isLoading) { + this.refreshData(); + } + + this.elements.refreshBtn.style.transform = 'scale(1)'; + isPulling = false; + } + }); + } + + // 显示加载状态 + showLoading() { + this.isLoading = true; + this.elements.loading.style.display = 'block'; + this.elements.error.style.display = 'none'; + this.elements.hotList.style.display = 'none'; + this.elements.refreshBtn.classList.add('loading'); + } + + // 隐藏加载状态 + hideLoading() { + this.isLoading = false; + this.elements.loading.style.display = 'none'; + this.elements.refreshBtn.classList.remove('loading'); + } + + // 显示错误状态 + showError(message = '获取数据失败,请稍后重试') { + this.hideLoading(); + this.elements.error.style.display = 'block'; + this.elements.hotList.style.display = 'none'; + + const errorText = this.elements.error.querySelector('p'); + if (errorText) { + errorText.textContent = message; + } + } + + // 显示热搜列表 + showHotList() { + this.hideLoading(); + this.elements.error.style.display = 'none'; + this.elements.hotList.style.display = 'grid'; + } + + // 渲染热搜数据 + renderHotTopics(data) { + if (!data || !data.data || !Array.isArray(data.data)) { + this.showError('数据格式错误'); + return; + } + + const hotTopics = data.data; + this.elements.hotList.innerHTML = ''; + + hotTopics.forEach((topic, index) => { + const hotItem = this.createHotItem(topic, index); + this.elements.hotList.appendChild(hotItem); + }); + + this.showHotList(); + this.updateTimestamp(data.isCache); + } + + // 创建热搜项目元素 + createHotItem(topic, index) { + const item = document.createElement('div'); + item.className = 'hot-item'; + item.style.animationDelay = `${index * 0.1}s`; + + // 处理数据 + const rank = topic.rank || (index + 1); + const title = hotTopicsAPI.truncateText(topic.title, 80); + const desc = hotTopicsAPI.truncateText(topic.desc, 120); + const score = hotTopicsAPI.formatScore(topic.score, topic.score_desc); + const avatarUrl = hotTopicsAPI.processImageUrl(topic.avatar); + const topicUrl = hotTopicsAPI.processTopicUrl(topic.url); + const rankClass = hotTopicsAPI.getRankClass(rank); + + item.innerHTML = ` +
+
+ ${rank} +
+
+

${title}

+

${desc}

+
+
+ + ${score} +
+ ${avatarUrl ? `话题图片` : ''} +
+
+
+ `; + + // 添加点击事件 + item.addEventListener('click', () => { + this.openTopic(topicUrl, title); + }); + + // 添加长按事件(移动端) + let pressTimer; + item.addEventListener('touchstart', (e) => { + pressTimer = setTimeout(() => { + this.showTopicMenu(topic, e.touches[0].clientX, e.touches[0].clientY); + }, 500); + }); + + item.addEventListener('touchend', () => { + clearTimeout(pressTimer); + }); + + item.addEventListener('touchmove', () => { + clearTimeout(pressTimer); + }); + + return item; + } + + // 打开话题链接 + openTopic(url, title) { + if (url && url !== '#') { + // 在新窗口打开 + window.open(url, '_blank', 'noopener,noreferrer'); + } else { + this.showToast('链接暂不可用'); + } + } + + // 显示话题菜单(长按) + showTopicMenu(topic, x, y) { + const menu = document.createElement('div'); + menu.className = 'topic-menu'; + menu.style.cssText = ` + position: fixed; + left: ${x}px; + top: ${y}px; + background: white; + border-radius: 8px; + box-shadow: 0 4px 20px rgba(0,0,0,0.2); + padding: 8px 0; + z-index: 1000; + min-width: 120px; + `; + + const actions = [ + { text: '打开链接', action: () => this.openTopic(hotTopicsAPI.processTopicUrl(topic.url), topic.title) }, + { text: '复制标题', action: () => this.copyText(topic.title) }, + { text: '分享', action: () => this.shareContent(topic) } + ]; + + actions.forEach(action => { + const item = document.createElement('div'); + item.textContent = action.text; + item.style.cssText = ` + padding: 12px 16px; + cursor: pointer; + font-size: 14px; + color: #333; + border-bottom: 1px solid #f0f0f0; + `; + item.addEventListener('click', () => { + action.action(); + document.body.removeChild(menu); + }); + menu.appendChild(item); + }); + + document.body.appendChild(menu); + + // 点击其他地方关闭菜单 + setTimeout(() => { + document.addEventListener('click', function closeMenu() { + if (document.body.contains(menu)) { + document.body.removeChild(menu); + } + document.removeEventListener('click', closeMenu); + }); + }, 100); + } + + // 复制文本 + async copyText(text) { + try { + await navigator.clipboard.writeText(text); + this.showToast('已复制到剪贴板'); + } catch (error) { + console.error('复制失败:', error); + this.showToast('复制失败'); + } + } + + // 分享内容 + async shareContent(topic) { + const shareData = { + title: topic.title, + text: topic.desc, + url: hotTopicsAPI.processTopicUrl(topic.url) + }; + + try { + if (navigator.share) { + await navigator.share(shareData); + } else { + // 降级到复制链接 + await this.copyText(`${topic.title} - ${shareData.url}`); + } + } catch (error) { + console.error('分享失败:', error); + } + } + + // 显示提示消息 + showToast(message, duration = 2000) { + const toast = document.createElement('div'); + toast.textContent = message; + toast.style.cssText = ` + position: fixed; + bottom: 20px; + left: 50%; + transform: translateX(-50%); + background: rgba(0,0,0,0.8); + color: white; + padding: 12px 20px; + border-radius: 20px; + font-size: 14px; + z-index: 1000; + animation: fadeInUp 0.3s ease; + `; + + document.body.appendChild(toast); + + setTimeout(() => { + toast.style.animation = 'fadeOut 0.3s ease'; + setTimeout(() => { + if (document.body.contains(toast)) { + document.body.removeChild(toast); + } + }, 300); + }, duration); + } + + // 更新时间戳 + updateTimestamp(isCache = false) { + const now = new Date(); + const timeString = now.toLocaleString('zh-CN', { + year: 'numeric', + month: '2-digit', + day: '2-digit', + hour: '2-digit', + minute: '2-digit' + }); + + const cacheText = isCache ? ' (缓存数据)' : ''; + this.elements.updateTime.textContent = `最后更新:${timeString}${cacheText}`; + } + + // 刷新数据 + async refreshData() { + if (window.loadHotTopics) { + await window.loadHotTopics(); + } + } +} + +// 导出UI管理器实例 +const uiManager = new UIManager(); + +// 添加CSS动画 +const style = document.createElement('style'); +style.textContent = ` + @keyframes fadeOut { + from { opacity: 1; transform: translateX(-50%) translateY(0); } + to { opacity: 0; transform: translateX(-50%) translateY(10px); } + } +`; +document.head.appendChild(style); \ No newline at end of file diff --git a/InfoGenie-frontend/public/60sapi/热搜榜单/百度贴吧话题榜/返回接口.json b/InfoGenie-frontend/public/60sapi/热搜榜单/百度贴吧话题榜/返回接口.json new file mode 100644 index 00000000..7226ba5d --- /dev/null +++ b/InfoGenie-frontend/public/60sapi/热搜榜单/百度贴吧话题榜/返回接口.json @@ -0,0 +1,306 @@ +{ + "code": 200, + "message": "获取成功。数据来自官方/权威源头,以确保稳定与实时。开源地址 https://github.com/vikiboss/60s,反馈群 595941841", + "data": [ + { + "rank": 1, + "title": "MAGA喉舌被枪杀,川普为其降半旗", + "desc": "美国知名保守派活动人士、特朗普的政治盟友查理·柯克在大学演讲时遭枪击身亡,特朗普下令全美降半旗致哀。", + "abstract": "美国知名保守派活动人士、特朗普的政治盟友查理·柯克在大学演讲时遭枪击身亡,特朗普下令全美降半旗致哀。", + "score": 1594980, + "score_desc": "159.5w", + "avatar": "https://tiebapic.baidu.com/forum/whfpf%3D84%2C88%2C40%3Bq%3D90/sign=7fd9bdea3ad98d1076815f714702803a/a9d3fd1f4134970a614a3b39d3cad1c8a7865dee.jpg?tbpicau=2025-09-22-05_85ec313083b76eb31917067b6948c007", + "url": "https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28344923&topic_name=MAGA%E5%96%89%E8%88%8C%E8%A2%AB%E6%9E%AA%E6%9D%80%2C%E5%B7%9D%E6%99%AE%E4%B8%BA%E5%85%B6%E9%99%8D%E5%8D%8A%E6%97%97" + }, + { + "rank": 2, + "title": "上膛!南理工打响整肃伪拳第一枪", + "desc": "终于有学校开了个好头,南京理工大学打响了武汉大学事件之后高校反对极端女权的第一枪。国防七子就是不一样,支持南理工!", + "abstract": "终于有学校开了个好头,南京理工大学打响了武汉大学事件之后高校反对极端女权的第一枪。国防七子就是不一样,支持南理工!", + "score": 1585575, + "score_desc": "158.56w", + "avatar": "https://tiebapic.baidu.com/forum/whfpf%3D84%2C88%2C40%3Bq%3D90/sign=45147a89e20f4bfb8c85cd14657240c4/8b13632762d0f703569980ca4efa513d2697c5f9.jpg?tbpicau=2025-09-22-05_8d101b01ab9f7032a8943a8ad9ad3591", + "url": "https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28344934&topic_name=%E4%B8%8A%E8%86%9B%21%E5%8D%97%E7%90%86%E5%B7%A5%E6%89%93%E5%93%8D%E6%95%B4%E8%82%83%E4%BC%AA%E6%8B%B3%E7%AC%AC%E4%B8%80%E6%9E%AA" + }, + { + "rank": 3, + "title": "武大暗中篡改?杨某论文再次上架", + "desc": "又反转!武汉大学杨某媛“金牌”论文半夜又偷偷重新上架知网,不会是武大偷改好的版本吧,等热度一过就开始岁月史书?", + "abstract": "又反转!武汉大学杨某媛“金牌”论文半夜又偷偷重新上架知网,不会是武大偷改好的版本吧,等热度一过就开始岁月史书?", + "score": 1265376, + "score_desc": "126.54w", + "avatar": "https://tiebapic.baidu.com/forum/whfpf%3D84%2C88%2C40%3Bq%3D90/sign=e3f59fed7fdbb6fd250eb6666f19932c/8601a18b87d6277f2c00192e6e381f30e924fc92.jpg?tbpicau=2025-09-22-05_8c33e404e8488061ca9169977a762457", + "url": "https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28344925&topic_name=%E6%AD%A6%E5%A4%A7%E6%9A%97%E4%B8%AD%E7%AF%A1%E6%94%B9%3F%E6%9D%A8%E6%9F%90%E8%AE%BA%E6%96%87%E5%86%8D%E6%AC%A1%E4%B8%8A%E6%9E%B6" + }, + { + "rank": 4, + "title": "兽王关键吼,XG大逆风翻盘石头人", + "desc": "落后1W6翻盘,Xxs刷新兽王关键吼,AME巨魔diff水晶。XG1比0石头人,拿下正赛首局,加油!", + "abstract": "落后1W6翻盘,Xxs刷新兽王关键吼,AME巨魔diff水晶。XG1比0石头人,拿下正赛首局,加油!", + "score": 893943, + "score_desc": "89.39w", + "avatar": "https://tiebapic.baidu.com/forum/whfpf%3D84%2C88%2C40%3Bq%3D90/sign=882897db1466d0167e4ccd68f116ec33/86d6277f9e2f070899cb3e16af24b899a801f2de.jpg?tbpicau=2025-09-22-05_625c74153fe7c84accea9ea76d88097b", + "url": "https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28344941&topic_name=%E5%85%BD%E7%8E%8B%E5%85%B3%E9%94%AE%E5%90%BC%2CXG%E5%A4%A7%E9%80%86%E9%A3%8E%E7%BF%BB%E7%9B%98%E7%9F%B3%E5%A4%B4%E4%BA%BA" + }, + { + "rank": 5, + "title": "户圣开炮,安卓旗舰谁敢买?", + "desc": "户晨风再现逆天言论,苹果17发布,安卓中高端机遭遇灭顶之灾,两千五以上没人买,有能力的一定要给父母换iPhone!", + "abstract": "户晨风再现逆天言论,苹果17发布,安卓中高端机遭遇灭顶之灾,两千五以上没人买,有能力的一定要给父母换iPhone!", + "score": 766532, + "score_desc": "76.65w", + "avatar": "https://tiebapic.baidu.com/forum/whfpf%3D84%2C88%2C40%3Bq%3D90/sign=0eb028f7692eb938ec3829b2b35fbd01/c8177f3e6709c93d2a9825e1d93df8dcd10054b9.jpg?tbpicau=2025-09-22-05_a331d216b4e47c0049889f880fe693e3", + "url": "https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28344926&topic_name=%E6%88%B7%E5%9C%A3%E5%BC%80%E7%82%AE%2C%E5%AE%89%E5%8D%93%E6%97%97%E8%88%B0%E8%B0%81%E6%95%A2%E4%B9%B0%3F" + }, + { + "rank": 6, + "title": "成都诬告偷拍败诉!小叶还能怎?", + "desc": "成都地铁诬告偷拍案二审维持原判,追风小叶维权失败,吧友锐评温和派的路走到头了。", + "abstract": "成都地铁诬告偷拍案二审维持原判,追风小叶维权失败,吧友锐评温和派的路走到头了。", + "score": 663175, + "score_desc": "66.32w", + "avatar": "https://tiebapic.baidu.com/forum/whfpf%3D84%2C88%2C40%3Bq%3D90/sign=9b41180f6bf5e0feee4dda413a5d0c9c/8694a4c27d1ed21b65aa39f3eb6eddc451da3f40.jpg?tbpicau=2025-09-22-05_db6b89b7846083172cde82c7146ebddc", + "url": "https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28344942&topic_name=%E6%88%90%E9%83%BD%E8%AF%AC%E5%91%8A%E5%81%B7%E6%8B%8D%E8%B4%A5%E8%AF%89%21%E5%B0%8F%E5%8F%B6%E8%BF%98%E8%83%BD%E6%80%8E%3F" + }, + { + "rank": 7, + "title": "绝密飙至60w,盾奶开始泛滥", + "desc": "三角洲战备猛涨,玩家钱包 “躺平”!那些攥得紧紧、舍不得动的家底,这下不得不掏出来,打工一局倒贴钱,谁顶得住?", + "abstract": "三角洲战备猛涨,玩家钱包 “躺平”!那些攥得紧紧、舍不得动的家底,这下不得不掏出来,打工一局倒贴钱,谁顶得住?", + "score": 590856, + "score_desc": "59.09w", + "avatar": "https://tiebapic.baidu.com/forum/whfpf%3D84%2C88%2C40%3Bq%3D90/sign=61af83ea3ad98d1076815f714702803a/a9d3fd1f4134970a7f3c0539d3cad1c8a7865d5c.jpg?tbpicau=2025-09-22-05_82bc9423e1e1b97f3c071ce96e1cf7e4", + "url": "https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28344936&topic_name=%E7%BB%9D%E5%AF%86%E9%A3%99%E8%87%B360w%2C%E7%9B%BE%E5%A5%B6%E5%BC%80%E5%A7%8B%E6%B3%9B%E6%BB%A5" + }, + { + "rank": 8, + "title": "邓紫棋被扒抢闺蜜男友博上位", + "desc": "邓紫棋被曝实锤撬闺蜜墙角,硬生生抢走正与闺蜜浓情蜜意的男友魏俊杰。事后为掩人耳目,还接连拉华晨宇、林宥嘉的绯闻来挡枪,一波操作引得舆论炸开了锅,粉丝纷纷 “跑路” 。", + "abstract": "邓紫棋被曝实锤撬闺蜜墙角,硬生生抢走正与闺蜜浓情蜜意的男友魏俊杰。事后为掩人耳目,还接连拉华晨宇、林宥嘉的绯闻来挡枪,一波操作引得舆论炸开了锅,粉丝纷纷 “跑路” 。", + "score": 506184, + "score_desc": "50.62w", + "avatar": "https://tiebapic.baidu.com/forum/whfpf%3D84%2C88%2C40%3Bq%3D90/sign=4d464c04094a20a4314b6f87f66fa016/30adcbef76094b36a2ff0ffbe5cc7cd98d109db2.jpg?tbpicau=2025-09-22-05_ed8c8f84187ef131dbb94421e614577b", + "url": "https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28344937&topic_name=%E9%82%93%E7%B4%AB%E6%A3%8B%E8%A2%AB%E6%89%92%E6%8A%A2%E9%97%BA%E8%9C%9C%E7%94%B7%E5%8F%8B%E5%8D%9A%E4%B8%8A%E4%BD%8D" + }, + { + "rank": 9, + "title": "小红书被掘,薯民赛博戒网瘾", + "desc": "今天,网信办对小红书平台采取约谈、责令限期改正、警告、从严处理责任人等处置处罚措施。这下薯民们该何去何从?", + "abstract": "今天,网信办对小红书平台采取约谈、责令限期改正、警告、从严处理责任人等处置处罚措施。这下薯民们该何去何从?", + "score": 471548, + "score_desc": "47.15w", + "avatar": "https://tiebapic.baidu.com/forum/whfpf%3D84%2C88%2C40%3Bq%3D90/sign=51c0d93fc018367aaddc2c9d484eb3e0/bf096b63f6246b60eda2a662adf81a4c510fa27c.jpg?tbpicau=2025-09-22-05_61c56fced5303058de8e34d5f5c2f858", + "url": "https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28344940&topic_name=%E5%B0%8F%E7%BA%A2%E4%B9%A6%E8%A2%AB%E6%8E%98%2C%E8%96%AF%E6%B0%91%E8%B5%9B%E5%8D%9A%E6%88%92%E7%BD%91%E7%98%BE" + }, + { + "rank": 10, + "title": "以军喊话轰全球:导弹是不长眼的", + "desc": "轰炸卡塔尔后以总理喊话全世界,称自己要效仿美国“9·11”事件后的行动,谁敢窝藏恐怖分子,以色列统统揍个遍!", + "abstract": "轰炸卡塔尔后以总理喊话全世界,称自己要效仿美国“9·11”事件后的行动,谁敢窝藏恐怖分子,以色列统统揍个遍!", + "score": 415002, + "score_desc": "41.5w", + "avatar": "https://tiebapic.baidu.com/forum/whfpf%3D84%2C88%2C40%3Bq%3D90/sign=6e77f03535f082022dc7c27f2dc6c3d9/562c11dfa9ec8a13a01b43f6b103918fa0ecc0a7.jpg?tbpicau=2025-09-22-05_492a74721d2be35b494d022729ab3727", + "url": "https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28344938&topic_name=%E4%BB%A5%E5%86%9B%E5%96%8A%E8%AF%9D%E8%BD%B0%E5%85%A8%E7%90%83%3A%E5%AF%BC%E5%BC%B9%E6%98%AF%E4%B8%8D%E9%95%BF%E7%9C%BC%E7%9A%84" + }, + { + "rank": 11, + "title": "照抄还耗时?紫龙延迟补偿抠到爆", + "desc": "《第七史诗》紫龙又拉了,都25年了居然在白天维护服务器长达11个小时。延长这么久不说,打发玩家2000体力就想当无事发生,最起码补个光暗自选吧?", + "abstract": "《第七史诗》紫龙又拉了,都25年了居然在白天维护服务器长达11个小时。延长这么久不说,打发玩家2000体力就想当无事发生,最起码补个光暗自选吧?", + "score": 316800, + "score_desc": "31.68w", + "avatar": "https://tiebapic.baidu.com/forum/whfpf%3D84%2C88%2C40%3Bq%3D90/sign=4c344da7c60a19d8cb56d74555c7babf/7a899e510fb30f24c22cf8158e95d143ad4b0375.jpg?tbpicau=2025-09-22-05_ea3299a237a4be90f638d6f54ddfaee7", + "url": "https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28344939&topic_name=%E7%85%A7%E6%8A%84%E8%BF%98%E8%80%97%E6%97%B6%3F%E7%B4%AB%E9%BE%99%E5%BB%B6%E8%BF%9F%E8%A1%A5%E5%81%BF%E6%8A%A0%E5%88%B0%E7%88%86" + }, + { + "rank": 12, + "title": "苹果是懂得维护韩男自尊心的", + "desc": "苹果市场部很懂韩国国情,还特意把新机海报上的敏感手势去掉了。", + "abstract": "苹果市场部很懂韩国国情,还特意把新机海报上的敏感手势去掉了。", + "score": 296609, + "score_desc": "29.66w", + "avatar": "https://tiebapic.baidu.com/forum/whfpf%3D84%2C88%2C40%3Bq%3D90/sign=16bc6dd6c4025aafd3672d8b9dd09350/10dfa9ec8a136327a57fe925d78fa0ec08fac712.jpg?tbpicau=2025-09-22-05_6d1258c530ad80062d801a0cdf3878c4", + "url": "https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28344930&topic_name=%E8%8B%B9%E6%9E%9C%E6%98%AF%E6%87%82%E5%BE%97%E7%BB%B4%E6%8A%A4%E9%9F%A9%E7%94%B7%E8%87%AA%E5%B0%8A%E5%BF%83%E7%9A%84" + }, + { + "rank": 13, + "title": "米家胜!二游大逃杀,原神未滑档", + "desc": "国内畅销榜上,一众作品竞逐热度之际,《原神》稳居前列,凭独特玩法持续圈粉。网友直言:原神团队定是藏着 “神人”,决策方向始终正确,精准踩中玩家心巴。", + "abstract": "国内畅销榜上,一众作品竞逐热度之际,《原神》稳居前列,凭独特玩法持续圈粉。网友直言:原神团队定是藏着 “神人”,决策方向始终正确,精准踩中玩家心巴。", + "score": 210780, + "score_desc": "21.08w", + "avatar": "https://tiebapic.baidu.com/forum/whfpf%3D84%2C88%2C40%3Bq%3D90/sign=606b285c9cb44aed591beda4d521bf35/f7246b600c3387440d8b046a170fd9f9d72aa05e.jpg?tbpicau=2025-09-22-05_ac66e09b0535bcca38158c54002fa3c7", + "url": "https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28344927&topic_name=%E7%B1%B3%E5%AE%B6%E8%83%9C%21%E4%BA%8C%E6%B8%B8%E5%A4%A7%E9%80%83%E6%9D%80%2C%E5%8E%9F%E7%A5%9E%E6%9C%AA%E6%BB%91%E6%A1%A3" + }, + { + "rank": 14, + "title": "秽土转生失败,动漫之家GG", + "desc": "动漫之家,终究还是停运了。起初反复刷新,还以为是网络出了问题,没想到它已经走了有一会儿了。这个无数漫迷的 “秘密基地”,如今却在激烈竞争与种种困境中再也回不来了。", + "abstract": "动漫之家,终究还是停运了。起初反复刷新,还以为是网络出了问题,没想到它已经走了有一会儿了。这个无数漫迷的 “秘密基地”,如今却在激烈竞争与种种困境中再也回不来了。", + "score": 207264, + "score_desc": "20.73w", + "avatar": "https://tiebapic.baidu.com/forum/whfpf%3D84%2C88%2C40%3Bq%3D90/sign=0db5d97a563853438c9ad461f52e884a/bd315c6034a85edfb52ed4350f540923dd547501.jpg?tbpicau=2025-09-22-05_9adff68227c9f67304fffc1a2731d758", + "url": "https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28344932&topic_name=%E7%A7%BD%E5%9C%9F%E8%BD%AC%E7%94%9F%E5%A4%B1%E8%B4%A5%2C%E5%8A%A8%E6%BC%AB%E4%B9%8B%E5%AE%B6GG" + }, + { + "rank": 15, + "title": "张本两连败大飞,日男全军覆没", + "desc": "WTT澳门冠军赛男单1/16决赛,薛飞把张本智和打静音,横扫日乒一哥晋级,至此日本男队全部出局,这下真爆冷了。", + "abstract": "WTT澳门冠军赛男单1/16决赛,薛飞把张本智和打静音,横扫日乒一哥晋级,至此日本男队全部出局,这下真爆冷了。", + "score": 179152, + "score_desc": "17.92w", + "avatar": "https://tiebapic.baidu.com/forum/whfpf%3D84%2C88%2C40%3Bq%3D90/sign=1be7d7b39743ad4ba67b1580e43f629b/0bd162d9f2d3572cd30bb6cacc13632762d0c33f.jpg?tbpicau=2025-09-22-05_c5e594913af43484029ee1ccf719ee0a", + "url": "https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28344933&topic_name=%E5%BC%A0%E6%9C%AC%E4%B8%A4%E8%BF%9E%E8%B4%A5%E5%A4%A7%E9%A3%9E%2C%E6%97%A5%E7%94%B7%E5%85%A8%E5%86%9B%E8%A6%86%E6%B2%A1" + }, + { + "rank": 16, + "title": "拳愿323:抽象的征西派内战", + "desc": "拳愿奥米迦323话大更:征西派的裂痕与王马的抉择,爱德华回生能力过于劣质,雷庵表现力太逆天,怕不是要成为决赛圈垫脚石?", + "abstract": "拳愿奥米迦323话大更:征西派的裂痕与王马的抉择,爱德华回生能力过于劣质,雷庵表现力太逆天,怕不是要成为决赛圈垫脚石?", + "score": 144915, + "score_desc": "14.49w", + "avatar": "https://tiebapic.baidu.com/forum/whfpf%3D84%2C88%2C40%3Bq%3D90/sign=65d67ff6b103918fd7846e8a37001ea3/b17eca8065380cd797d28afbe744ad34588281d3.jpg?tbpicau=2025-09-22-05_d45822c1109107fa7baacd2b01fefb61", + "url": "https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28344924&topic_name=%E6%8B%B3%E6%84%BF323%3A%E6%8A%BD%E8%B1%A1%E7%9A%84%E5%BE%81%E8%A5%BF%E6%B4%BE%E5%86%85%E6%88%98" + }, + { + "rank": 17, + "title": "TES 3-1踩头WBG,灯皇薇恩送好局", + "desc": "LPL季后赛,TES对阵WBG。Light薇恩0输出葬送优势局,Kanavi潘森天降弑神,最终TES 3-1 WBG挺进胜决。", + "abstract": "LPL季后赛,TES对阵WBG。Light薇恩0输出葬送优势局,Kanavi潘森天降弑神,最终TES 3-1 WBG挺进胜决。", + "score": 108556, + "score_desc": "10.86w", + "avatar": "https://tiebapic.baidu.com/forum/whfpf%3D84%2C88%2C40%3Bq%3D90/sign=75e5576c66a446237e9ff622fe1f4a3a/caef76094b36acaf361abbea3ad98d1001e99c29.jpg?tbpicau=2025-09-22-05_dda77f28de2da58e81fcd3b6ff5aaacc", + "url": "https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28344917&topic_name=TES%203-1%E8%B8%A9%E5%A4%B4WBG%2C%E7%81%AF%E7%9A%87%E8%96%87%E6%81%A9%E9%80%81%E5%A5%BD%E5%B1%80" + }, + { + "rank": 18, + "title": "师出有名,黄岩岛建立保护区", + "desc": "字少事大,国务院批复同意新建黄岩岛国家级自然保护区,隔壁菲猴还敢乱来吗?", + "abstract": "字少事大,国务院批复同意新建黄岩岛国家级自然保护区,隔壁菲猴还敢乱来吗?", + "score": 98280, + "score_desc": "9.83w", + "avatar": "https://tiebapic.baidu.com/forum/whfpf%3D84%2C88%2C40%3Bq%3D90/sign=31dba91375fa828bd176cea39b227900/43a7d933c895d14320aec93535f082025baf07cf.jpg?tbpicau=2025-09-22-05_b0badf07bc38a792ed54b85bb056f5aa", + "url": "https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28344916&topic_name=%E5%B8%88%E5%87%BA%E6%9C%89%E5%90%8D%2C%E9%BB%84%E5%B2%A9%E5%B2%9B%E5%BB%BA%E7%AB%8B%E4%BF%9D%E6%8A%A4%E5%8C%BA" + }, + { + "rank": 19, + "title": "9月10日乐子限定", + "desc": "沪姐大战彩礼女,年轻人为了台苹果机不择手段,来看看昨天都有哪些乐子。", + "abstract": "沪姐大战彩礼女,年轻人为了台苹果机不择手段,来看看昨天都有哪些乐子。", + "score": 75660, + "score_desc": "7.57w", + "avatar": "https://tiebapic.baidu.com/forum/whfpf%3D84%2C88%2C40%3Bq%3D90/sign=f4c1e0dce951f3dec3e7ea24f2d3c82b/c9fcc3cec3fdfc03fb92cbae923f8794a4c22639.jpg?tbpicau=2025-09-22-05_04534fa7edbe9fa62b6c5170f11f6d42", + "url": "https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28344922&topic_name=9%E6%9C%8810%E6%97%A5%E4%B9%90%E5%AD%90%E9%99%90%E5%AE%9A" + }, + { + "rank": 20, + "title": "每天一个宝藏吧——meme图吧", + "desc": "一个用梗图交流、靠表情包续命的赛博快乐老家,进来一个meme图小白,出去就是万人敬仰的meme图大师!", + "abstract": "一个用梗图交流、靠表情包续命的赛博快乐老家,进来一个meme图小白,出去就是万人敬仰的meme图大师!", + "score": 64691, + "score_desc": "6.47w", + "avatar": "https://tiebapic.baidu.com/forum/whfpf%3D84%2C88%2C40%3Bq%3D90/sign=366db542454f78f0805ec9b31f0c3261/908fa0ec08fa513deb1747c87b6d55fbb2fbd963.jpg?tbpicau=2025-09-22-05_0f79439d4fa718dccec3909f1093b1a0", + "url": "https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28344928&topic_name=%E6%AF%8F%E5%A4%A9%E4%B8%80%E4%B8%AA%E5%AE%9D%E8%97%8F%E5%90%A7%E2%80%94%E2%80%94meme%E5%9B%BE%E5%90%A7" + }, + { + "rank": 21, + "title": "向鹏不敌德国选手,无缘十六强", + "desc": "在2025年世界乒乓球职业大联盟澳门冠军赛男子单打首轮比赛中,中国选手向鹏2比3不敌德国选手弗朗西斯卡,无缘16强。", + "abstract": "在2025年世界乒乓球职业大联盟澳门冠军赛男子单打首轮比赛中,中国选手向鹏2比3不敌德国选手弗朗西斯卡,无缘16强。", + "score": 51010, + "score_desc": "5.1w", + "avatar": "https://tiebapic.baidu.com/forum/whfpf%3D84%2C88%2C40%3Bq%3D90/sign=5110a6270c90f60304e5cf075f2f8b2f/91529822720e0cf30c5864ed4c46f21fbe09aa7d.jpg?tbpicau=2025-09-22-05_6494ac6b728dc643d62ecdfec9ffc10f", + "url": "https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28344931&topic_name=%E5%90%91%E9%B9%8F%E4%B8%8D%E6%95%8C%E5%BE%B7%E5%9B%BD%E9%80%89%E6%89%8B%2C%E6%97%A0%E7%BC%98%E5%8D%81%E5%85%AD%E5%BC%BA" + }, + { + "rank": 22, + "title": "Faker虐爆许秀,T1险胜DK", + "desc": "绝境Faker再现!T1 3-2险胜DK,决胜局T1凭借关键团战逆转取胜。", + "abstract": "绝境Faker再现!T1 3-2险胜DK,决胜局T1凭借关键团战逆转取胜。", + "score": 47646, + "score_desc": "4.76w", + "avatar": "https://tiebapic.baidu.com/forum/whfpf%3D84%2C88%2C40%3Bq%3D90/sign=9d867145b0246b607b5be1348dc52278/55e736d12f2eb938b8df55e493628535e5dd6f71.jpg?tbpicau=2025-09-22-05_a1bfae75faab275c23b0f53a0a5b06ef", + "url": "https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28344913&topic_name=Faker%E8%99%90%E7%88%86%E8%AE%B8%E7%A7%80%2CT1%E9%99%A9%E8%83%9CDK" + }, + { + "rank": 23, + "title": "张雪峰愿捐款打台独,媒体狂吠狠批", + "desc": "张雪峰说打台独自己捐五千万,大象新闻直接来了个大长篇,上来就给一个普通中国人的朴素爱国情怀扣上“鼓吹战争”的帽子,搞媒体的就这种素质?", + "abstract": "张雪峰说打台独自己捐五千万,大象新闻直接来了个大长篇,上来就给一个普通中国人的朴素爱国情怀扣上“鼓吹战争”的帽子,搞媒体的就这种素质?", + "score": 40064, + "score_desc": "4.01w", + "avatar": "https://tiebapic.baidu.com/forum/whfpf%3D84%2C88%2C40%3Bq%3D90/sign=2e4fc1ec3dcb0a468577d8790d5ece10/00e93901213fb80e595042c170d12f2eb9389426.jpg?tbpicau=2025-09-22-05_6e078e9f935aa244e26346ab37187ee2", + "url": "https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28344910&topic_name=%E5%BC%A0%E9%9B%AA%E5%B3%B0%E6%84%BF%E6%8D%90%E6%AC%BE%E6%89%93%E5%8F%B0%E7%8B%AC%2C%E5%AA%92%E4%BD%93%E7%8B%82%E5%90%A0%E7%8B%A0%E6%89%B9" + }, + { + "rank": 24, + "title": "美军压境,委内瑞拉急盼歼10C", + "desc": "美军F-35A压境加勒比,委内瑞拉方寸大乱,紧急寻求采购歼10C。", + "abstract": "美军F-35A压境加勒比,委内瑞拉方寸大乱,紧急寻求采购歼10C。", + "score": 38052, + "score_desc": "3.81w", + "avatar": "https://tiebapic.baidu.com/forum/whfpf%3D84%2C88%2C40%3Bq%3D90/sign=90d8a718f73533faf5e3c06eceeec52b/0e2442a7d933c8955843b66d971373f0820200e2.jpg?tbpicau=2025-09-22-05_f8126e747fe76e25cfd9b3d3a75d1d54", + "url": "https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28344921&topic_name=%E7%BE%8E%E5%86%9B%E5%8E%8B%E5%A2%83%2C%E5%A7%94%E5%86%85%E7%91%9E%E6%8B%89%E6%80%A5%E7%9B%BC%E6%AD%BC10C" + }, + { + "rank": 25, + "title": "真男人!海贼王龙哥射杀天龙人", + "desc": "海贼王1160话情报,龙开枪射击天龙人,救下红发双胞胎。昔日流汗王风评反转,龙哥成为海贼最有种的男人。", + "abstract": "海贼王1160话情报,龙开枪射击天龙人,救下红发双胞胎。昔日流汗王风评反转,龙哥成为海贼最有种的男人。", + "score": 26682, + "score_desc": "2.67w", + "avatar": "https://tiebapic.baidu.com/forum/whfpf%3D84%2C88%2C40%3Bq%3D90/sign=f8cb34fbe5cc7cd9fa7867995f3c190b/a71ea8d3fd1f4134c36e2a68631f95cad1c85e4e.jpg?tbpicau=2025-09-22-05_6853585b745b7349ad45ef38cf6df62f", + "url": "https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28344920&topic_name=%E7%9C%9F%E7%94%B7%E4%BA%BA%21%E6%B5%B7%E8%B4%BC%E7%8E%8B%E9%BE%99%E5%93%A5%E5%B0%84%E6%9D%80%E5%A4%A9%E9%BE%99%E4%BA%BA" + }, + { + "rank": 26, + "title": "三角洲免费送点券,玩家争当洲孝子", + "desc": "三角洲行动周年庆福利拉满,免费送3900三角券。玩家火速倒戈,暂停讨伐制作组,怒赞策划太良心。", + "abstract": "三角洲行动周年庆福利拉满,免费送3900三角券。玩家火速倒戈,暂停讨伐制作组,怒赞策划太良心。", + "score": 25255, + "score_desc": "2.53w", + "avatar": "https://tiebapic.baidu.com/forum/whfpf%3D84%2C88%2C40%3Bq%3D90/sign=c4d99672d2eef01f4d414b8586c3a111/9345d688d43f8794d4946738941b0ef41bd53ab8.jpg?tbpicau=2025-09-22-05_a2046d59aca4681d2f9495edce4c3b25", + "url": "https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28344919&topic_name=%E4%B8%89%E8%A7%92%E6%B4%B2%E5%85%8D%E8%B4%B9%E9%80%81%E7%82%B9%E5%88%B8%2C%E7%8E%A9%E5%AE%B6%E4%BA%89%E5%BD%93%E6%B4%B2%E5%AD%9D%E5%AD%90" + }, + { + "rank": 27, + "title": "以空袭卡塔尔,暗杀哈马斯未得逞", + "desc": "以色列对身处卡塔尔首都多哈的哈马斯领导层发动所谓精准打击,并证实哈马斯5名成员死于以军空袭,但以方暗杀哈马斯高层的图谋未能得逞。", + "abstract": "以色列对身处卡塔尔首都多哈的哈马斯领导层发动所谓精准打击,并证实哈马斯5名成员死于以军空袭,但以方暗杀哈马斯高层的图谋未能得逞。", + "score": 20900, + "score_desc": "2.09w", + "avatar": "https://tiebapic.baidu.com/forum/whfpf%3D84%2C88%2C40%3Bq%3D90/sign=5eb82d27673fb80e0c84329750ec171a/314e251f95cad1c8f8d7dd31393e6709c93d51b3.jpg?tbpicau=2025-09-22-05_cf088fe88563cb500e0581d892800736", + "url": "https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28344898&topic_name=%E4%BB%A5%E7%A9%BA%E8%A2%AD%E5%8D%A1%E5%A1%94%E5%B0%94%2C%E6%9A%97%E6%9D%80%E5%93%88%E9%A9%AC%E6%96%AF%E6%9C%AA%E5%BE%97%E9%80%9E" + }, + { + "rank": 28, + "title": "局座出山,战忽局要开工了?", + "desc": "神隐五年之后,被网友戏称“战略忽悠局局长”的军事评论家张召忠重出江湖参加讲座。国际局势风云变幻,战忽局还有市场吗?", + "abstract": "神隐五年之后,被网友戏称“战略忽悠局局长”的军事评论家张召忠重出江湖参加讲座。国际局势风云变幻,战忽局还有市场吗?", + "score": 20166, + "score_desc": "2.02w", + "avatar": "https://tiebapic.baidu.com/forum/whfpf%3D84%2C88%2C40%3Bq%3D90/sign=c4150e6a170fd9f9a04206294310ec1e/d4628535e5dde711bf0262e0e1efce1b9c1661d7.jpg?tbpicau=2025-09-22-05_f7db127146ec115d51ff7ede6261253e", + "url": "https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28344903&topic_name=%E5%B1%80%E5%BA%A7%E5%87%BA%E5%B1%B1%2C%E6%88%98%E5%BF%BD%E5%B1%80%E8%A6%81%E5%BC%80%E5%B7%A5%E4%BA%86%3F" + }, + { + "rank": 29, + "title": "丝之歌光速滑跪,更新补丁降难度", + "desc": "《空洞骑士:丝之歌》游戏难度逆天差评不断,制作组官宣更新补丁,前期BOSS难度降低、奖励增加。", + "abstract": "《空洞骑士:丝之歌》游戏难度逆天差评不断,制作组官宣更新补丁,前期BOSS难度降低、奖励增加。", + "score": 14526, + "score_desc": "1.45w", + "avatar": "https://tiebapic.baidu.com/forum/whfpf%3D84%2C88%2C40%3Bq%3D90/sign=420c2d34f51bb0518f71e0685047e280/7acb0a46f21fbe098018e2022d600c338744ad66.jpg?tbpicau=2025-09-22-05_95664e9657ba0ab59a428fd9a3db30b7", + "url": "https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28344899&topic_name=%E4%B8%9D%E4%B9%8B%E6%AD%8C%E5%85%89%E9%80%9F%E6%BB%91%E8%B7%AA%2C%E6%9B%B4%E6%96%B0%E8%A1%A5%E4%B8%81%E9%99%8D%E9%9A%BE%E5%BA%A6" + }, + { + "rank": 30, + "title": "倭殖入脑,武大再现逆天论文", + "desc": "近日,武汉大学又被挖出一篇关于”传统武士道精神下的女性形象“的逆天论文,武汉大学持续发力,吧友吐槽“武大的文科真是奇迹般的存在 ”", + "abstract": "近日,武汉大学又被挖出一篇关于”传统武士道精神下的女性形象“的逆天论文,武汉大学持续发力,吧友吐槽“武大的文科真是奇迹般的存在 ”", + "score": 13717, + "score_desc": "1.37w", + "avatar": "https://tiebapic.baidu.com/forum/whfpf%3D84%2C88%2C40%3Bq%3D90/sign=71b4b4adc1d6277fe94761784e052704/d8f9d72a6059252d229f3d12729b033b5bb5b918.jpg?tbpicau=2025-09-22-05_71986e04f0934ae41569ea8d11844675", + "url": "https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28344905&topic_name=%E5%80%AD%E6%AE%96%E5%85%A5%E8%84%91%2C%E6%AD%A6%E5%A4%A7%E5%86%8D%E7%8E%B0%E9%80%86%E5%A4%A9%E8%AE%BA%E6%96%87" + } + ] +} \ No newline at end of file diff --git a/frontend/public/60sapi/热搜榜单/知乎热门话题/css/background.css b/InfoGenie-frontend/public/60sapi/热搜榜单/知乎热门话题/css/background.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/知乎热门话题/css/background.css rename to InfoGenie-frontend/public/60sapi/热搜榜单/知乎热门话题/css/background.css diff --git a/frontend/public/60sapi/热搜榜单/知乎热门话题/css/style.css b/InfoGenie-frontend/public/60sapi/热搜榜单/知乎热门话题/css/style.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/知乎热门话题/css/style.css rename to InfoGenie-frontend/public/60sapi/热搜榜单/知乎热门话题/css/style.css diff --git a/frontend/public/60sapi/热搜榜单/知乎热门话题/img/zhihu-logo.svg b/InfoGenie-frontend/public/60sapi/热搜榜单/知乎热门话题/img/zhihu-logo.svg old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/知乎热门话题/img/zhihu-logo.svg rename to InfoGenie-frontend/public/60sapi/热搜榜单/知乎热门话题/img/zhihu-logo.svg diff --git a/frontend/public/60sapi/热搜榜单/知乎热门话题/index.html b/InfoGenie-frontend/public/60sapi/热搜榜单/知乎热门话题/index.html old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/知乎热门话题/index.html rename to InfoGenie-frontend/public/60sapi/热搜榜单/知乎热门话题/index.html diff --git a/frontend/public/60sapi/热搜榜单/知乎热门话题/js/main.js b/InfoGenie-frontend/public/60sapi/热搜榜单/知乎热门话题/js/main.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/知乎热门话题/js/main.js rename to InfoGenie-frontend/public/60sapi/热搜榜单/知乎热门话题/js/main.js diff --git a/frontend/public/60sapi/热搜榜单/知乎热门话题/接口集合.json b/InfoGenie-frontend/public/60sapi/热搜榜单/知乎热门话题/接口集合.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/知乎热门话题/接口集合.json rename to InfoGenie-frontend/public/60sapi/热搜榜单/知乎热门话题/接口集合.json diff --git a/frontend/public/60sapi/热搜榜单/知乎热门话题/返回接口.json b/InfoGenie-frontend/public/60sapi/热搜榜单/知乎热门话题/返回接口.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/知乎热门话题/返回接口.json rename to InfoGenie-frontend/public/60sapi/热搜榜单/知乎热门话题/返回接口.json diff --git a/frontend/public/60sapi/热搜榜单/网易云榜单/css/background.css b/InfoGenie-frontend/public/60sapi/热搜榜单/网易云榜单/css/background.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/网易云榜单/css/background.css rename to InfoGenie-frontend/public/60sapi/热搜榜单/网易云榜单/css/background.css diff --git a/frontend/public/60sapi/热搜榜单/网易云榜单/css/responsive.css b/InfoGenie-frontend/public/60sapi/热搜榜单/网易云榜单/css/responsive.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/网易云榜单/css/responsive.css rename to InfoGenie-frontend/public/60sapi/热搜榜单/网易云榜单/css/responsive.css diff --git a/frontend/public/60sapi/热搜榜单/网易云榜单/css/style.css b/InfoGenie-frontend/public/60sapi/热搜榜单/网易云榜单/css/style.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/网易云榜单/css/style.css rename to InfoGenie-frontend/public/60sapi/热搜榜单/网易云榜单/css/style.css diff --git a/frontend/public/60sapi/热搜榜单/网易云榜单/index.html b/InfoGenie-frontend/public/60sapi/热搜榜单/网易云榜单/index.html old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/网易云榜单/index.html rename to InfoGenie-frontend/public/60sapi/热搜榜单/网易云榜单/index.html diff --git a/frontend/public/60sapi/热搜榜单/网易云榜单/js/app.js b/InfoGenie-frontend/public/60sapi/热搜榜单/网易云榜单/js/app.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/网易云榜单/js/app.js rename to InfoGenie-frontend/public/60sapi/热搜榜单/网易云榜单/js/app.js diff --git a/frontend/public/60sapi/热搜榜单/网易云榜单/接口集合.json b/InfoGenie-frontend/public/60sapi/热搜榜单/网易云榜单/接口集合.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/网易云榜单/接口集合.json rename to InfoGenie-frontend/public/60sapi/热搜榜单/网易云榜单/接口集合.json diff --git a/frontend/public/60sapi/热搜榜单/网易云榜单/返回接口.json b/InfoGenie-frontend/public/60sapi/热搜榜单/网易云榜单/返回接口.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/热搜榜单/网易云榜单/返回接口.json rename to InfoGenie-frontend/public/60sapi/热搜榜单/网易云榜单/返回接口.json diff --git a/frontend/public/60sapi/生成要求模板.txt b/InfoGenie-frontend/public/60sapi/生成要求模板.txt old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/60sapi/生成要求模板.txt rename to InfoGenie-frontend/public/60sapi/生成要求模板.txt diff --git a/frontend/public/_redirects b/InfoGenie-frontend/public/_redirects old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/_redirects rename to InfoGenie-frontend/public/_redirects diff --git a/InfoGenie-frontend/public/aimodelapp/AI写诗小助手/index.html b/InfoGenie-frontend/public/aimodelapp/AI写诗小助手/index.html new file mode 100644 index 00000000..fe5fb5da --- /dev/null +++ b/InfoGenie-frontend/public/aimodelapp/AI写诗小助手/index.html @@ -0,0 +1,246 @@ + + + + + + AI古诗生成器 + + + +
+
+

AI古诗生成器

+

让人工智能为您创作优美的中国古诗

+
+ + + +
+ + +
+ + + +
+

生成的古诗

+
正在创作中,请稍候...
+
点击"生成古诗"按钮,AI将为您创作优美的古诗
+
+
+ + + + + \ No newline at end of file diff --git a/InfoGenie-frontend/public/aimodelapp/AI写诗小助手/script.js b/InfoGenie-frontend/public/aimodelapp/AI写诗小助手/script.js new file mode 100644 index 00000000..090bc8bf --- /dev/null +++ b/InfoGenie-frontend/public/aimodelapp/AI写诗小助手/script.js @@ -0,0 +1,109 @@ +// 从配置文件导入设置 +// 配置在 env.js 文件中定义 + +// DOM 元素 +const generateBtn = document.getElementById('generateBtn'); +const loading = document.getElementById('loading'); +const poemOutput = document.getElementById('poemOutput'); +const themeInput = document.getElementById('theme'); + +// 调用后端API +async function callBackendAPI(theme) { + try { + const response = await fetch('http://127.0.0.1:5002/api/aimodelapp/poetry', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + theme: theme + }) + }); + + if (!response.ok) { + const errorData = await response.json(); + throw new Error(errorData.error || `API请求失败: ${response.status} ${response.statusText}`); + } + + const data = await response.json(); + if (data.success) { + return data.poem; + } else { + throw new Error(data.error || 'API响应格式异常'); + } + } catch (error) { + console.error('API调用错误:', error); + throw error; + } +} + +// 显示错误信息 +function showErrorMessage(message) { + // 清除之前的错误信息 + const existingError = document.querySelector('.error'); + if (existingError) { + existingError.remove(); + } + + const errorDiv = document.createElement('div'); + errorDiv.className = 'error'; + errorDiv.textContent = `生成失败:${message}。请检查网络连接。`; + poemOutput.parentNode.appendChild(errorDiv); +} + +// 显示加载状态 +function showLoading(show) { + loading.style.display = show ? 'block' : 'none'; + generateBtn.disabled = show; + generateBtn.textContent = show ? '创作中...' : '生成古诗'; +} + +// 生成古诗 +async function generatePoem() { + const theme = themeInput.value.trim(); + + if (!theme) { + alert('请输入作诗主题'); + return; + } + + showLoading(true); + poemOutput.textContent = ''; + + // 清除之前的错误信息 + const existingError = document.querySelector('.error'); + if (existingError) { + existingError.remove(); + } + + try { + const poem = await callBackendAPI(theme); + poemOutput.textContent = poem.trim(); + } catch (error) { + console.error('生成古诗失败:', error); + showErrorMessage(error.message); + poemOutput.textContent = '生成失败,请重试'; + } finally { + showLoading(false); + } +} + +// 事件监听器 +generateBtn.addEventListener('click', generatePoem); + +// 回车键生成 +themeInput.addEventListener('keypress', (e) => { + if (e.key === 'Enter' && !e.shiftKey) { + e.preventDefault(); + generatePoem(); + } +}); + +// 页面加载完成后的初始化 +document.addEventListener('DOMContentLoaded', () => { + // 设置默认占位符 + poemOutput.textContent = '点击"生成古诗"按钮,AI将为您创作优美的古诗'; +}); + +// 导出函数供HTML调用 +window.generatePoem = generatePoem; \ No newline at end of file diff --git a/frontend/public/aimodelapp/AI变量命名助手/index.html b/InfoGenie-frontend/public/aimodelapp/AI变量命名助手/index.html old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/aimodelapp/AI变量命名助手/index.html rename to InfoGenie-frontend/public/aimodelapp/AI变量命名助手/index.html diff --git a/frontend/public/aimodelapp/AI变量命名助手/script.js b/InfoGenie-frontend/public/aimodelapp/AI变量命名助手/script.js old mode 100755 new mode 100644 similarity index 89% rename from frontend/public/aimodelapp/AI变量命名助手/script.js rename to InfoGenie-frontend/public/aimodelapp/AI变量命名助手/script.js index 0fc146b2..2dff09f9 --- a/frontend/public/aimodelapp/AI变量命名助手/script.js +++ b/InfoGenie-frontend/public/aimodelapp/AI变量命名助手/script.js @@ -37,34 +37,30 @@ const namingConventions = { -// 调用GitHub Models API -async function callGitHubModelsAPI(prompt) { +// 调用后端API +async function callBackendAPI(description) { try { - const response = await fetch(CONFIG.API_URL, { + const response = await fetch('http://127.0.0.1:5002/api/aimodelapp/variable-naming', { method: 'POST', headers: { - 'Content-Type': 'application/json', - 'Authorization': `Bearer ${CONFIG.GITHUB_TOKEN}` + 'Content-Type': 'application/json' }, body: JSON.stringify({ - messages: [ - { - role: 'user', - content: prompt - } - ], - model: CONFIG.MODEL_NAME, - temperature: 0.7, - max_tokens: 1000 + description: description }) }); if (!response.ok) { - throw new Error(`API请求失败: ${response.status} ${response.statusText}`); + const errorData = await response.json(); + throw new Error(errorData.error || `API请求失败: ${response.status} ${response.statusText}`); } const data = await response.json(); - return data.choices[0].message.content; + if (data.success) { + return data.suggestions; + } else { + throw new Error(data.error || 'API响应格式异常'); + } } catch (error) { console.error('API调用错误:', error); throw error; @@ -216,10 +212,7 @@ async function generateSuggestions() { suggestionsContainer.innerHTML = ''; try { - const prompt = CONFIG.createNamingPrompt(description); - const response = await callGitHubModelsAPI(prompt); - const suggestions = parseAIResponse(response); - + const suggestions = await callBackendAPI(description); displaySuggestions(suggestions); } catch (error) { console.error('生成建议失败:', error); diff --git a/frontend/public/aimodelapp/AI变量命名助手/styles.css b/InfoGenie-frontend/public/aimodelapp/AI变量命名助手/styles.css old mode 100755 new mode 100644 similarity index 51% rename from frontend/public/aimodelapp/AI变量命名助手/styles.css rename to InfoGenie-frontend/public/aimodelapp/AI变量命名助手/styles.css index 3174cc43..c6d4bd14 --- a/frontend/public/aimodelapp/AI变量命名助手/styles.css +++ b/InfoGenie-frontend/public/aimodelapp/AI变量命名助手/styles.css @@ -5,80 +5,85 @@ box-sizing: border-box; } -/* 主体样式 */ +/* 主体样式 - iOS风格 */ body { - font-family: 'Microsoft YaHei', '微软雅黑', 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; - background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Helvetica Neue', Arial, sans-serif; + background: linear-gradient(135deg, #87CEEB 0%, #98FB98 100%); min-height: 100vh; padding: 20px; - color: #333; - line-height: 1.6; + color: #1D1D1F; + line-height: 1.47; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; } -/* 容器样式 */ +/* 容器样式 - iOS毛玻璃效果 */ .container { max-width: 700px; margin: 0 auto; - background: rgba(255, 255, 255, 0.95); - border-radius: 20px; - padding: 30px; - box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1); - backdrop-filter: blur(10px); + background: rgba(255, 255, 255, 0.85); + border-radius: 24px; + padding: 32px; + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.08); + backdrop-filter: blur(20px) saturate(180%); + border: 1px solid rgba(255, 255, 255, 0.2); } -/* 头部样式 */ +/* 头部样式 - iOS风格 */ .header { text-align: center; - margin-bottom: 30px; + margin-bottom: 32px; } .title { - font-size: 2.5rem; - color: #4a5568; - margin-bottom: 10px; - font-weight: 300; - letter-spacing: 2px; + font-size: 2.25rem; + color: #1D1D1F; + margin-bottom: 8px; + font-weight: 600; + letter-spacing: -0.02em; } .subtitle { - color: #718096; - font-size: 1rem; - margin-bottom: 20px; + color: #86868B; + font-size: 1.0625rem; + margin-bottom: 24px; + font-weight: 400; } -/* 表单样式 */ +/* 表单样式 - iOS风格 */ .form-section { - margin-bottom: 30px; + margin-bottom: 32px; } .form-group { - margin-bottom: 25px; + margin-bottom: 24px; } .form-label { display: block; margin-bottom: 8px; - font-weight: 500; - color: #4a5568; + font-weight: 600; + color: #1D1D1F; font-size: 1rem; } .form-input { width: 100%; - padding: 15px; - border: 2px solid #e2e8f0; + padding: 16px; + border: 1px solid rgba(0, 0, 0, 0.1); border-radius: 12px; font-size: 1rem; - transition: all 0.3s ease; - background: #f7fafc; + transition: all 0.2s ease; + background: rgba(255, 255, 255, 0.8); font-family: inherit; + backdrop-filter: blur(10px); } .form-input:focus { outline: none; - border-color: #667eea; - background: #fff; - box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1); + border-color: #007AFF; + background: rgba(255, 255, 255, 0.95); + box-shadow: 0 0 0 4px rgba(0, 122, 255, 0.1); } .textarea { @@ -96,104 +101,113 @@ body { padding-right: 40px; } -/* 按钮样式 */ +/* 按钮样式 - iOS风格 */ .btn { width: 100%; - padding: 15px; - background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + padding: 16px; + background: #007AFF; color: white; border: none; border-radius: 12px; - font-size: 1.1rem; - font-weight: 500; + font-size: 1.0625rem; + font-weight: 600; cursor: pointer; - transition: all 0.3s ease; - margin-bottom: 25px; + transition: all 0.2s ease; + margin-bottom: 24px; + box-shadow: 0 2px 8px rgba(0, 122, 255, 0.25); } .btn:hover { - transform: translateY(-2px); - box-shadow: 0 10px 25px rgba(102, 126, 234, 0.3); + background: #0056CC; + transform: translateY(-1px); + box-shadow: 0 4px 16px rgba(0, 122, 255, 0.35); } .btn:active { transform: translateY(0); + background: #004499; } .btn:disabled { - opacity: 0.6; + opacity: 0.5; cursor: not-allowed; transform: none; + background: #86868B; } -/* 结果区域样式 */ +/* 结果区域样式 - iOS风格 */ .result-section { - margin-top: 30px; + margin-top: 32px; } .result-title { - font-size: 1.3rem; - color: #4a5568; - margin-bottom: 15px; + font-size: 1.25rem; + color: #1D1D1F; + margin-bottom: 16px; text-align: center; - font-weight: 500; + font-weight: 600; } .loading { display: none; text-align: center; - color: #667eea; - font-style: italic; - padding: 20px; + color: #007AFF; + font-style: normal; + padding: 24px; + font-weight: 500; } .suggestions-container { - background: #f7fafc; - border: 2px solid #e2e8f0; - border-radius: 12px; - padding: 20px; + background: rgba(255, 255, 255, 0.6); + border: 1px solid rgba(0, 0, 0, 0.08); + border-radius: 16px; + padding: 24px; min-height: 150px; + backdrop-filter: blur(10px); } .placeholder { text-align: center; - color: #a0aec0; - font-style: italic; + color: #86868B; + font-style: normal; padding: 40px 20px; + font-weight: 400; } -/* 分组标题样式 */ +/* 分组标题样式 - iOS风格 */ .convention-group-title { - font-size: 1.1rem; + font-size: 1.0625rem; font-weight: 600; - color: #4a5568; - margin: 20px 0 10px 0; - padding: 8px 12px; - background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; - border-radius: 8px; + margin: 20px 0 12px 0; + padding: 12px 16px; + background: #007AFF; + border-radius: 12px; text-align: center; + box-shadow: 0 2px 8px rgba(0, 122, 255, 0.25); } .convention-group-title:first-child { margin-top: 0; } -/* 建议项样式 */ +/* 建议项样式 - iOS风格 */ .suggestion-item { - background: #fff; - border: 1px solid #e2e8f0; - border-radius: 8px; - padding: 15px; - margin-bottom: 10px; + background: rgba(255, 255, 255, 0.9); + border: 1px solid rgba(0, 0, 0, 0.06); + border-radius: 12px; + padding: 16px; + margin-bottom: 12px; transition: all 0.2s ease; cursor: pointer; position: relative; + backdrop-filter: blur(10px); } .suggestion-item:hover { - border-color: #667eea; - box-shadow: 0 2px 8px rgba(102, 126, 234, 0.1); + border-color: rgba(0, 122, 255, 0.3); + box-shadow: 0 4px 16px rgba(0, 122, 255, 0.1); + background: rgba(255, 255, 255, 0.95); } .suggestion-item:last-child { @@ -201,32 +215,34 @@ body { } .variable-name { - font-family: 'Consolas', 'Monaco', 'Courier New', monospace; - font-size: 1.1rem; + font-family: 'SF Mono', 'Monaco', 'Consolas', 'Courier New', monospace; + font-size: 1.0625rem; font-weight: 600; - color: #2d3748; - margin-bottom: 5px; + color: #1D1D1F; + margin-bottom: 6px; } .variable-description { - font-size: 0.9rem; - color: #718096; - line-height: 1.4; + font-size: 0.9375rem; + color: #86868B; + line-height: 1.47; } .copy-btn { position: absolute; - top: 10px; - right: 10px; - background: #667eea; + top: 12px; + right: 12px; + background: #007AFF; color: white; border: none; - border-radius: 6px; - padding: 5px 10px; - font-size: 0.8rem; + border-radius: 8px; + padding: 6px 12px; + font-size: 0.8125rem; + font-weight: 600; cursor: pointer; opacity: 0; - transition: opacity 0.2s ease; + transition: all 0.2s ease; + box-shadow: 0 2px 4px rgba(0, 122, 255, 0.25); } .suggestion-item:hover .copy-btn { @@ -234,33 +250,38 @@ body { } .copy-btn:hover { - background: #5a67d8; + background: #0056CC; + transform: translateY(-1px); } -/* 错误样式 */ +/* 错误样式 - iOS风格 */ .error { - color: #e53e3e; - background: #fed7d7; - border: 1px solid #feb2b2; - padding: 15px; - border-radius: 8px; - margin-top: 15px; + color: #FF3B30; + background: rgba(255, 59, 48, 0.1); + border: 1px solid rgba(255, 59, 48, 0.2); + padding: 16px; + border-radius: 12px; + margin-top: 16px; + font-weight: 500; + backdrop-filter: blur(10px); } -/* 成功提示 */ +/* 成功提示 - iOS风格 */ .success-toast { position: fixed; top: 20px; right: 20px; - background: #48bb78; + background: #34C759; color: white; padding: 12px 20px; - border-radius: 8px; - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); + border-radius: 12px; + box-shadow: 0 8px 24px rgba(52, 199, 89, 0.3); z-index: 1000; opacity: 0; transform: translateX(100%); transition: all 0.3s ease; + font-weight: 600; + backdrop-filter: blur(20px); } .success-toast.show { diff --git a/frontend/public/aimodelapp/AI姓名评测/index.html b/InfoGenie-frontend/public/aimodelapp/AI姓名评测/index.html old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/aimodelapp/AI姓名评测/index.html rename to InfoGenie-frontend/public/aimodelapp/AI姓名评测/index.html diff --git a/frontend/public/aimodelapp/AI姓名评测/script.js b/InfoGenie-frontend/public/aimodelapp/AI姓名评测/script.js old mode 100755 new mode 100644 similarity index 91% rename from frontend/public/aimodelapp/AI姓名评测/script.js rename to InfoGenie-frontend/public/aimodelapp/AI姓名评测/script.js index 4c21830a..d38ecbb5 --- a/frontend/public/aimodelapp/AI姓名评测/script.js +++ b/InfoGenie-frontend/public/aimodelapp/AI姓名评测/script.js @@ -188,22 +188,14 @@ async function analyzeName() { } const requestBody = { - model: CONFIG.model, - messages: [{ - role: "user", - content: CONFIG.createNameAnalysisPrompt(name) - }], - temperature: 0.7, - max_tokens: 1000 + name: name }; try { - const response = await fetch(CONFIG.endpoint, { + // 调用后端API + const response = await fetch('http://127.0.0.1:5002/api/aimodelapp/name-analysis', { method: 'POST', headers: { - 'Accept': 'application/vnd.github+json', - 'Authorization': `Bearer ${CONFIG.GITHUB_TOKEN}`, - 'X-GitHub-Api-Version': '2022-11-28', 'Content-Type': 'application/json' }, body: JSON.stringify(requestBody) @@ -215,16 +207,17 @@ async function analyzeName() { } if (!response.ok) { - throw new Error(`请求失败: ${response.status} ${response.statusText}`); + const errorData = await response.json(); + throw new Error(errorData.error || `请求失败: ${response.status} ${response.statusText}`); } const data = await response.json(); - if (data?.choices?.[0]?.message?.content) { - const analysisResult = parseAnalysisResult(data.choices[0].message.content.trim()); + if (data.success && data.analysis) { + const analysisResult = parseAnalysisResult(data.analysis.trim()); updateResults(analysisResult); } else { - throw new Error('AI响应格式异常'); + throw new Error(data.error || 'AI响应格式异常'); } } catch (error) { console.error('分析姓名时出错:', error); diff --git a/InfoGenie-frontend/public/aimodelapp/AI姓名评测/styles.css b/InfoGenie-frontend/public/aimodelapp/AI姓名评测/styles.css new file mode 100644 index 00000000..a833bca8 --- /dev/null +++ b/InfoGenie-frontend/public/aimodelapp/AI姓名评测/styles.css @@ -0,0 +1,265 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Helvetica Neue', Arial, sans-serif; + background: linear-gradient(135deg, #87CEEB 0%, #98FB98 100%); + min-height: 100vh; + padding: 20px; + color: #1D1D1F; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.container { + max-width: 700px; + margin: 0 auto; + background: rgba(255, 255, 255, 0.85); + border-radius: 24px; + padding: 32px; + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.08); + backdrop-filter: blur(20px) saturate(180%); + border: 1px solid rgba(255, 255, 255, 0.2); +} + +.header { + text-align: center; + margin-bottom: 32px; +} + +.title { + font-size: 2.25rem; + color: #1D1D1F; + margin-bottom: 8px; + font-weight: 600; + letter-spacing: -0.02em; +} + +.subtitle { + color: #86868B; + font-size: 1.0625rem; + margin-bottom: 24px; + font-weight: 400; +} + +.form-group { + margin-bottom: 24px; +} + +.form-label { + display: block; + margin-bottom: 8px; + font-weight: 600; + color: #1D1D1F; + font-size: 1rem; +} + +.form-input { + width: 100%; + padding: 16px; + border: 1px solid rgba(0, 0, 0, 0.1); + border-radius: 12px; + font-size: 1rem; + transition: all 0.2s ease; + background: rgba(255, 255, 255, 0.8); + text-align: center; + backdrop-filter: blur(10px); +} + +.form-input:focus { + outline: none; + border-color: #007AFF; + background: rgba(255, 255, 255, 0.95); + box-shadow: 0 0 0 4px rgba(0, 122, 255, 0.1); +} + +.btn { + width: 100%; + padding: 16px; + background: #007AFF; + color: white; + border: none; + border-radius: 12px; + font-size: 1.0625rem; + font-weight: 600; + cursor: pointer; + transition: all 0.2s ease; + margin-bottom: 24px; + box-shadow: 0 2px 8px rgba(0, 122, 255, 0.25); +} + +.btn:hover { + background: #0056CC; + transform: translateY(-1px); + box-shadow: 0 4px 16px rgba(0, 122, 255, 0.35); +} + +.btn:active { + transform: translateY(0); + background: #004499; +} + +.btn:disabled { + opacity: 0.5; + cursor: not-allowed; + transform: none; + background: #86868B; +} + +.result-section { + margin-top: 32px; +} + +.result-title { + font-size: 1.25rem; + color: #1D1D1F; + margin-bottom: 20px; + text-align: center; + font-weight: 600; +} + +.loading { + display: none; + text-align: center; + color: #007AFF; + font-style: normal; + margin-bottom: 20px; + font-weight: 500; +} + +.result-container { + display: grid; + gap: 16px; + grid-template-columns: 1fr; +} + +.result-card { + background: rgba(255, 255, 255, 0.6); + border: 1px solid rgba(0, 0, 0, 0.08); + border-radius: 16px; + padding: 24px; + transition: all 0.2s ease; + backdrop-filter: blur(10px); +} + +.result-card:hover { + border-color: rgba(0, 122, 255, 0.3); + box-shadow: 0 4px 16px rgba(0, 122, 255, 0.1); + background: rgba(255, 255, 255, 0.8); +} + +.card-title { + font-size: 1.0625rem; + color: #1D1D1F; + margin-bottom: 16px; + text-align: center; + font-weight: 600; +} + +.score-display { + font-size: 2.25rem; + font-weight: 700; + text-align: center; + margin-bottom: 12px; + background: linear-gradient(135deg, #007AFF 0%, #5856D6 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.score-desc { + text-align: center; + color: #86868B; + font-size: 0.9375rem; + line-height: 1.47; + font-weight: 400; +} + +.meaning-content { + color: #1D1D1F; + line-height: 1.6; + font-size: 1rem; + text-align: left; + white-space: pre-wrap; + font-weight: 400; +} + +.error { + color: #FF3B30; + background: rgba(255, 59, 48, 0.1); + border: 1px solid rgba(255, 59, 48, 0.2); + padding: 16px; + border-radius: 12px; + margin-top: 16px; + font-weight: 500; + backdrop-filter: blur(10px); +} + +/* 平板和桌面端优化 */ +@media (min-width: 768px) { + .result-container { + grid-template-columns: 1fr 1fr; + } + + .result-card:last-child { + grid-column: 1 / -1; + } +} + +/* 手机端优化 */ +@media (max-width: 768px) { + body { + padding: 10px; + } + + .container { + padding: 20px; + margin: 10px; + } + + .title { + font-size: 2rem; + } + + .form-input { + padding: 12px; + } + + .btn { + padding: 12px; + } + + .result-card { + padding: 15px; + } + + .score-display { + font-size: 2rem; + } +} + +@media (max-width: 480px) { + .title { + font-size: 1.8rem; + letter-spacing: 1px; + } + + .container { + padding: 15px; + } + + .result-card { + padding: 12px; + } + + .score-display { + font-size: 1.8rem; + } + + .meaning-content { + font-size: 0.9rem; + } +} \ No newline at end of file diff --git a/InfoGenie-frontend/public/aimodelapp/AI文章转文言文/index.html b/InfoGenie-frontend/public/aimodelapp/AI文章转文言文/index.html new file mode 100644 index 00000000..7c73e61a --- /dev/null +++ b/InfoGenie-frontend/public/aimodelapp/AI文章转文言文/index.html @@ -0,0 +1,66 @@ + + + + + + AI现代文转文言文助手 + + + +
+
+

AI现代文转文言文助手

+

古韵今声,文白互译

+
+ +
+
+ + +
+ +
+
+ + +
+ +
+ + +
+
+ + +
+ +
+

文言文转换结果

+
正在转换中,请稍候...
+
+
点击"开始转换"按钮,AI将为您提供精准的文言文转换
+
+
+
+ + + + + \ No newline at end of file diff --git a/InfoGenie-frontend/public/aimodelapp/AI文章转文言文/script.js b/InfoGenie-frontend/public/aimodelapp/AI文章转文言文/script.js new file mode 100644 index 00000000..79d427ac --- /dev/null +++ b/InfoGenie-frontend/public/aimodelapp/AI文章转文言文/script.js @@ -0,0 +1,288 @@ +// 从配置文件导入设置 +// 配置在 env.js 文件中定义 + +// DOM 元素 +const modernTextInput = document.getElementById('modernText'); +const styleSelect = document.getElementById('styleSelect'); +const articleTypeSelect = document.getElementById('articleTypeSelect'); +const convertBtn = document.getElementById('convertBtn'); +const loadingDiv = document.getElementById('loading'); +const conversionResultContainer = document.getElementById('conversionResult'); + +// 调用后端API +async function callBackendAPI(modernText, style, articleType) { + try { + const response = await fetch('http://127.0.0.1:5002/api/aimodelapp/classical_conversion', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + modern_text: modernText, + style: style, + article_type: articleType + }) + }); + + if (!response.ok) { + const errorData = await response.json(); + throw new Error(errorData.error || `API请求失败: ${response.status} ${response.statusText}`); + } + + const data = await response.json(); + if (data.success) { + return data.conversion_result; + } else { + throw new Error(data.error || 'API响应格式异常'); + } + } catch (error) { + console.error('API调用错误:', error); + throw error; + } +} + +// 解析AI响应 +function parseAIResponse(response) { + try { + // 尝试直接解析JSON + const parsed = JSON.parse(response); + return parsed; + } catch (error) { + // 如果直接解析失败,尝试提取JSON部分 + const jsonMatch = response.match(/\{[\s\S]*\}/); + if (jsonMatch) { + try { + const parsed = JSON.parse(jsonMatch[0]); + return parsed; + } catch (e) { + console.error('JSON解析失败:', e); + } + } + + // 如果JSON解析失败,返回空对象 + console.error('无法解析AI响应:', response); + return {}; + } +} + +// 显示转换结果 +function displayConversionResult(result) { + conversionResultContainer.innerHTML = ''; + + if (!result || !result.classical_text) { + conversionResultContainer.innerHTML = '
转换失败,请尝试重新转换
'; + return; + } + + // 创建结果容器 + const resultDiv = document.createElement('div'); + resultDiv.className = 'conversion-result'; + + // 转换信息 + const infoDiv = document.createElement('div'); + infoDiv.className = 'conversion-info'; + infoDiv.innerHTML = ` +
+ 转换风格: + ${result.style || '经典文言文'} +
+
+ 文章类型: + ${result.article_type || '记叙文'} +
+ `; + resultDiv.appendChild(infoDiv); + + // 原文显示 + const originalDiv = document.createElement('div'); + originalDiv.className = 'original-text'; + originalDiv.innerHTML = ` +
+ 原现代文: + +
+
${result.original_text || modernTextInput.value}
+ `; + resultDiv.appendChild(originalDiv); + + // 文言文结果 + const classicalDiv = document.createElement('div'); + classicalDiv.className = 'classical-text'; + classicalDiv.innerHTML = ` +
+ 文言文转换: + +
+
${result.classical_text}
+ `; + resultDiv.appendChild(classicalDiv); + + // 关键转换说明 + if (result.key_transformations && result.key_transformations.length > 0) { + const transformationsDiv = document.createElement('div'); + transformationsDiv.className = 'transformations'; + transformationsDiv.innerHTML = '
关键转换说明:
'; + + result.key_transformations.forEach((transformation, index) => { + if (transformation && transformation.trim()) { + const transformDiv = document.createElement('div'); + transformDiv.className = 'transformation-item'; + transformDiv.innerHTML = `${index + 1}.${transformation}`; + transformationsDiv.appendChild(transformDiv); + } + }); + + resultDiv.appendChild(transformationsDiv); + } + + // 文言文特色分析 + if (result.classical_features) { + const featuresDiv = document.createElement('div'); + featuresDiv.className = 'classical-features'; + featuresDiv.innerHTML = '
文言文特色分析:
'; + + if (result.classical_features.sentence_patterns) { + const patternDiv = document.createElement('div'); + patternDiv.className = 'feature-item'; + patternDiv.innerHTML = `句式特点:${result.classical_features.sentence_patterns}`; + featuresDiv.appendChild(patternDiv); + } + + if (result.classical_features.vocabulary) { + const vocabDiv = document.createElement('div'); + vocabDiv.className = 'feature-item'; + vocabDiv.innerHTML = `词汇运用:${result.classical_features.vocabulary}`; + featuresDiv.appendChild(vocabDiv); + } + + if (result.classical_features.grammar) { + const grammarDiv = document.createElement('div'); + grammarDiv.className = 'feature-item'; + grammarDiv.innerHTML = `语法特色:${result.classical_features.grammar}`; + featuresDiv.appendChild(grammarDiv); + } + + resultDiv.appendChild(featuresDiv); + } + + // 转换说明 + if (result.explanation) { + const explanationDiv = document.createElement('div'); + explanationDiv.className = 'explanation'; + explanationDiv.innerHTML = `转换说明:
${result.explanation}
`; + resultDiv.appendChild(explanationDiv); + } + + // 发音指导 + if (result.pronunciation_guide) { + const pronunciationDiv = document.createElement('div'); + pronunciationDiv.className = 'pronunciation'; + pronunciationDiv.innerHTML = `古音指导:${result.pronunciation_guide}`; + resultDiv.appendChild(pronunciationDiv); + } + + conversionResultContainer.appendChild(resultDiv); +} + +// 复制到剪贴板 +function copyToClipboard(text) { + navigator.clipboard.writeText(text).then(() => { + showSuccessToast('已复制到剪贴板'); + }).catch(err => { + console.error('复制失败:', err); + // 备用复制方法 + const textArea = document.createElement('textarea'); + textArea.value = text; + document.body.appendChild(textArea); + textArea.select(); + try { + document.execCommand('copy'); + showSuccessToast('已复制到剪贴板'); + } catch (e) { + showErrorMessage('复制失败,请手动复制'); + } + document.body.removeChild(textArea); + }); +} + +// 显示成功提示 +function showSuccessToast(message) { + const toast = document.createElement('div'); + toast.className = 'success-toast'; + toast.textContent = message; + document.body.appendChild(toast); + + setTimeout(() => { + toast.classList.add('show'); + }, 100); + + setTimeout(() => { + toast.classList.remove('show'); + setTimeout(() => { + document.body.removeChild(toast); + }, 300); + }, 2000); +} + +// 显示错误信息 +function showErrorMessage(message) { + const errorDiv = document.createElement('div'); + errorDiv.className = 'error'; + errorDiv.textContent = message; + conversionResultContainer.innerHTML = ''; + conversionResultContainer.appendChild(errorDiv); +} + +// 显示加载状态 +function showLoading(show) { + loadingDiv.style.display = show ? 'block' : 'none'; + convertBtn.disabled = show; + convertBtn.textContent = show ? '转换中...' : '开始转换'; +} + +// 执行转换 +async function performConversion() { + const modernText = modernTextInput.value.trim(); + const style = styleSelect.value; + const articleType = articleTypeSelect.value; + + if (!modernText) { + showErrorMessage('请输入要转换的现代文内容'); + return; + } + + showLoading(true); + conversionResultContainer.innerHTML = ''; + + try { + const result = await callBackendAPI(modernText, style, articleType); + const parsedResult = parseAIResponse(result); + displayConversionResult(parsedResult); + } catch (error) { + console.error('转换失败:', error); + showErrorMessage(`转换失败: ${error.message}`); + } finally { + showLoading(false); + } +} + +// 事件监听器 +convertBtn.addEventListener('click', performConversion); + +// 回车键转换 +modernTextInput.addEventListener('keypress', (e) => { + if (e.key === 'Enter' && e.ctrlKey) { + e.preventDefault(); + performConversion(); + } +}); + +// 页面加载完成后的初始化 +document.addEventListener('DOMContentLoaded', () => { + // 设置默认占位符 + conversionResultContainer.innerHTML = '
请输入现代文内容,选择转换风格和文章类型,然后点击转换按钮
'; +}); + +// 导出函数供HTML调用 +window.copyToClipboard = copyToClipboard; +window.performConversion = performConversion; \ No newline at end of file diff --git a/InfoGenie-frontend/public/aimodelapp/AI文章转文言文/styles.css b/InfoGenie-frontend/public/aimodelapp/AI文章转文言文/styles.css new file mode 100644 index 00000000..8be6fdfe --- /dev/null +++ b/InfoGenie-frontend/public/aimodelapp/AI文章转文言文/styles.css @@ -0,0 +1,603 @@ +/* 全局样式重置 */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +/* 主体样式 - iOS风格 */ +body { + font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Helvetica Neue', Arial, sans-serif; + background: linear-gradient(135deg, #8B4513 0%, #D2691E 50%, #F4A460 100%); + min-height: 100vh; + padding: 20px; + color: #1D1D1F; + line-height: 1.47; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* 容器样式 - iOS毛玻璃效果 */ +.container { + max-width: 900px; + margin: 0 auto; + background: rgba(255, 255, 255, 0.85); + border-radius: 24px; + padding: 32px; + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.08); + backdrop-filter: blur(20px) saturate(180%); + border: 1px solid rgba(255, 255, 255, 0.2); +} + +/* 头部样式 - iOS风格 */ +.header { + text-align: center; + margin-bottom: 32px; +} + +.title { + font-size: 2.25rem; + color: #8B4513; + margin-bottom: 8px; + font-weight: 600; + letter-spacing: -0.02em; +} + +.subtitle { + color: #D2691E; + font-size: 1.0625rem; + margin-bottom: 24px; + font-weight: 400; +} + +/* 表单样式 - iOS风格 */ +.form-section { + margin-bottom: 32px; +} + +.form-group { + margin-bottom: 24px; +} + +.form-row { + display: flex; + gap: 16px; + margin-bottom: 24px; +} + +.half-width { + flex: 1; +} + +.form-label { + display: block; + margin-bottom: 8px; + font-weight: 600; + color: #1D1D1F; + font-size: 1rem; +} + +.form-input { + width: 100%; + padding: 16px; + border: 1px solid rgba(0, 0, 0, 0.1); + border-radius: 12px; + font-size: 1rem; + transition: all 0.2s ease; + background: rgba(255, 255, 255, 0.8); + font-family: inherit; + backdrop-filter: blur(10px); +} + +.form-input:focus { + outline: none; + border-color: #D2691E; + background: rgba(255, 255, 255, 0.95); + box-shadow: 0 0 0 4px rgba(210, 105, 30, 0.1); +} + +.textarea { + resize: vertical; + min-height: 150px; + font-family: 'SF Mono', 'Monaco', 'Consolas', 'Courier New', monospace; + line-height: 1.6; +} + +.select { + cursor: pointer; + appearance: none; + background-image: url('data:image/svg+xml;charset=US-ASCII,'); + background-repeat: no-repeat; + background-position: right 15px center; + background-size: 12px; + padding-right: 40px; +} + +/* 按钮样式 - iOS风格 */ +.btn { + width: 100%; + padding: 16px; + background: #D2691E; + color: white; + border: none; + border-radius: 12px; + font-size: 1.0625rem; + font-weight: 600; + cursor: pointer; + transition: all 0.2s ease; + margin-bottom: 24px; + box-shadow: 0 2px 8px rgba(210, 105, 30, 0.25); +} + +.btn:hover { + background: #B8860B; + transform: translateY(-1px); + box-shadow: 0 4px 16px rgba(210, 105, 30, 0.35); +} + +.btn:active { + transform: translateY(0); + background: #A0522D; +} + +.btn:disabled { + opacity: 0.5; + cursor: not-allowed; + transform: none; + background: #86868B; +} + +/* 结果区域样式 - iOS风格 */ +.result-section { + margin-top: 32px; +} + +.result-title { + font-size: 1.25rem; + color: #8B4513; + margin-bottom: 16px; + text-align: center; + font-weight: 600; +} + +.loading { + display: none; + text-align: center; + color: #D2691E; + font-style: normal; + padding: 24px; + font-weight: 500; +} + +.conversion-container { + background: rgba(255, 255, 255, 0.6); + border: 1px solid rgba(0, 0, 0, 0.08); + border-radius: 16px; + padding: 24px; + min-height: 200px; + backdrop-filter: blur(10px); +} + +.placeholder { + text-align: center; + color: #86868B; + font-style: normal; + padding: 40px 20px; + font-weight: 400; +} + +/* 转换结果样式 */ +.conversion-result { + animation: fadeIn 0.3s ease; +} + +.conversion-info { + background: rgba(139, 69, 19, 0.1); + border: 1px solid rgba(139, 69, 19, 0.2); + border-radius: 12px; + padding: 16px; + margin-bottom: 20px; + display: flex; + gap: 24px; + flex-wrap: wrap; +} + +.info-item { + display: flex; + align-items: center; + gap: 8px; +} + +.info-item .label { + font-weight: 600; + color: #8B4513; +} + +.info-item .value { + color: #1D1D1F; + background: rgba(255, 255, 255, 0.8); + padding: 4px 12px; + border-radius: 8px; + font-size: 0.9375rem; +} + +/* 文本显示区域 */ +.original-text, +.classical-text { + background: rgba(255, 255, 255, 0.9); + border: 1px solid rgba(0, 0, 0, 0.06); + border-radius: 12px; + padding: 20px; + margin-bottom: 20px; + position: relative; +} + +.classical-text { + background: rgba(244, 164, 96, 0.1); + border: 1px solid rgba(244, 164, 96, 0.3); +} + +.text-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 12px; +} + +.text-header .label { + font-weight: 600; + color: #1D1D1F; + font-size: 1rem; +} + +.text-content { + font-size: 1.125rem; + color: #1D1D1F; + line-height: 1.8; + font-weight: 400; +} + +.text-content.classical { + font-family: 'STKaiti', 'KaiTi', '楷体', serif; + font-size: 1.25rem; + line-height: 2; + color: #8B4513; + font-weight: 500; +} + +/* 转换说明区域 */ +.transformations { + background: rgba(255, 255, 255, 0.8); + border: 1px solid rgba(0, 0, 0, 0.06); + border-radius: 12px; + padding: 20px; + margin-bottom: 20px; +} + +.transformations-title { + font-weight: 600; + color: #1D1D1F; + margin-bottom: 16px; + font-size: 1rem; +} + +.transformation-item { + display: flex; + align-items: flex-start; + gap: 8px; + padding: 8px 0; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); +} + +.transformation-item:last-child { + border-bottom: none; +} + +.transformation-item .number { + color: #D2691E; + font-weight: 600; + min-width: 20px; +} + +.transformation-item .text { + color: #1D1D1F; + line-height: 1.6; +} + +/* 文言文特色分析 */ +.classical-features { + background: rgba(210, 105, 30, 0.1); + border: 1px solid rgba(210, 105, 30, 0.2); + border-radius: 12px; + padding: 20px; + margin-bottom: 20px; +} + +.features-title { + font-weight: 600; + color: #D2691E; + margin-bottom: 16px; + font-size: 1rem; +} + +.feature-item { + display: flex; + align-items: flex-start; + gap: 12px; + margin-bottom: 12px; +} + +.feature-item:last-child { + margin-bottom: 0; +} + +.feature-label { + font-weight: 600; + color: #8B4513; + min-width: 80px; + font-size: 0.9375rem; +} + +.feature-text { + color: #1D1D1F; + line-height: 1.6; + flex: 1; +} + +.explanation { + background: rgba(139, 69, 19, 0.1); + border: 1px solid rgba(139, 69, 19, 0.2); + border-radius: 12px; + padding: 20px; + margin-bottom: 20px; +} + +.explanation .label { + font-weight: 600; + color: #8B4513; + margin-bottom: 12px; + display: block; +} + +.explanation-text { + color: #1D1D1F; + line-height: 1.6; + font-size: 0.9375rem; +} + +.pronunciation { + background: rgba(255, 149, 0, 0.1); + border: 1px solid rgba(255, 149, 0, 0.2); + border-radius: 12px; + padding: 16px; + margin-bottom: 16px; + font-size: 0.9375rem; +} + +.pronunciation .label { + font-weight: 600; + color: #FF9500; + margin-right: 8px; +} + +.pronunciation .value { + color: #1D1D1F; + font-family: 'SF Mono', 'Monaco', 'Consolas', 'Courier New', monospace; +} + +/* 复制按钮样式 */ +.copy-btn { + background: #D2691E; + color: white; + border: none; + border-radius: 8px; + padding: 8px 16px; + font-size: 0.8125rem; + font-weight: 600; + cursor: pointer; + transition: all 0.2s ease; + box-shadow: 0 2px 4px rgba(210, 105, 30, 0.25); +} + +.copy-btn:hover { + background: #B8860B; + transform: translateY(-1px); +} + +.copy-btn-small { + background: #D2691E; + color: white; + border: none; + border-radius: 6px; + padding: 4px 8px; + font-size: 0.75rem; + font-weight: 600; + cursor: pointer; + transition: all 0.2s ease; + box-shadow: 0 1px 2px rgba(210, 105, 30, 0.25); +} + +.copy-btn-small:hover { + background: #B8860B; + transform: translateY(-1px); +} + +/* 错误样式 - iOS风格 */ +.error { + color: #FF3B30; + background: rgba(255, 59, 48, 0.1); + border: 1px solid rgba(255, 59, 48, 0.2); + padding: 16px; + border-radius: 12px; + margin-top: 16px; + font-weight: 500; + backdrop-filter: blur(10px); +} + +/* 成功提示 - iOS风格 */ +.success-toast { + position: fixed; + top: 20px; + right: 20px; + background: #34C759; + color: white; + padding: 12px 20px; + border-radius: 12px; + box-shadow: 0 8px 24px rgba(52, 199, 89, 0.3); + z-index: 1000; + opacity: 0; + transform: translateX(100%); + transition: all 0.3s ease; + font-weight: 600; + backdrop-filter: blur(20px); +} + +.success-toast.show { + opacity: 1; + transform: translateX(0); +} + +/* 响应式设计 */ +@media (max-width: 768px) { + body { + padding: 10px; + } + + .container { + padding: 20px; + margin: 10px; + } + + .title { + font-size: 2rem; + } + + .form-row { + flex-direction: column; + gap: 0; + } + + .form-input { + padding: 12px; + } + + .btn { + padding: 12px; + } + + .conversion-container { + padding: 15px; + } + + .original-text, + .classical-text { + padding: 15px; + } + + .text-header { + flex-direction: column; + align-items: flex-start; + gap: 8px; + } + + .copy-btn { + align-self: flex-end; + } + + .conversion-info { + flex-direction: column; + gap: 12px; + } + + .feature-item { + flex-direction: column; + gap: 4px; + } + + .feature-label { + min-width: auto; + } +} + +@media (max-width: 480px) { + .title { + font-size: 1.8rem; + letter-spacing: 1px; + } + + .container { + padding: 15px; + } + + .form-input { + padding: 10px; + } + + .original-text, + .classical-text { + padding: 12px; + } + + .text-content { + font-size: 1rem; + } + + .text-content.classical { + font-size: 1.125rem; + } +} + +/* 动画效果 */ +@keyframes fadeIn { + from { + opacity: 0; + transform: translateY(10px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.conversion-result { + animation: fadeIn 0.3s ease; +} + +/* 加载动画 */ +@keyframes pulse { + 0%, 100% { + opacity: 1; + } + 50% { + opacity: 0.5; + } +} + +.loading { + animation: pulse 1.5s ease-in-out infinite; +} + +/* 古典风格装饰 */ +.classical-text::before { + content: '「'; + position: absolute; + top: 15px; + left: 15px; + font-size: 1.5rem; + color: #D2691E; + opacity: 0.6; +} + +.classical-text::after { + content: '」'; + position: absolute; + bottom: 15px; + right: 15px; + font-size: 1.5rem; + color: #D2691E; + opacity: 0.6; +} + +.classical-text .text-content { + margin: 0 20px; +} \ No newline at end of file diff --git a/InfoGenie-frontend/public/aimodelapp/AI生成Linux命令/index.html b/InfoGenie-frontend/public/aimodelapp/AI生成Linux命令/index.html new file mode 100644 index 00000000..64b1d030 --- /dev/null +++ b/InfoGenie-frontend/public/aimodelapp/AI生成Linux命令/index.html @@ -0,0 +1,50 @@ + + + + + + AI Linux命令生成器 + + + +
+
+

AI Linux命令生成器

+

让AI为您的Linux操作生成准确的命令

+
+ +
+
+ + +
+ +
+ + +
+ + +
+ +
+

推荐的Linux命令

+
正在生成中,请稍候...
+
+
点击"生成命令"按钮,AI将为您推荐合适的Linux命令
+
+
+
+ + + + + \ No newline at end of file diff --git a/InfoGenie-frontend/public/aimodelapp/AI生成Linux命令/script.js b/InfoGenie-frontend/public/aimodelapp/AI生成Linux命令/script.js new file mode 100644 index 00000000..1a267e4f --- /dev/null +++ b/InfoGenie-frontend/public/aimodelapp/AI生成Linux命令/script.js @@ -0,0 +1,351 @@ +// 从配置文件导入设置 +// 配置在 env.js 文件中定义 + +// DOM 元素 +const taskInput = document.getElementById('task-input'); +const levelSelect = document.getElementById('level-select'); +const generateBtn = document.getElementById('generateBtn'); +const loadingDiv = document.getElementById('loading'); +const commandsContainer = document.getElementById('commands'); + +// 调用后端API +async function callBackendAPI(taskDescription, difficultyLevel) { + try { + const response = await fetch('http://127.0.0.1:5002/api/aimodelapp/linux-command', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + task_description: taskDescription, + difficulty_level: difficultyLevel + }) + }); + + if (!response.ok) { + const errorData = await response.json(); + throw new Error(errorData.error || `API请求失败: ${response.status} ${response.statusText}`); + } + + const data = await response.json(); + if (data.success) { + return data.command_result; + } else { + throw new Error(data.error || 'API响应格式异常'); + } + } catch (error) { + console.error('API调用错误:', error); + throw error; + } +} + +// 解析AI响应 +function parseAIResponse(response) { + try { + // 尝试直接解析JSON + const parsed = JSON.parse(response); + return parsed; + } catch (error) { + // 如果直接解析失败,尝试提取JSON部分 + const jsonMatch = response.match(/\{[\s\S]*\}/); + if (jsonMatch) { + try { + const parsed = JSON.parse(jsonMatch[0]); + return parsed; + } catch (e) { + console.error('JSON解析失败:', e); + } + } + + // 如果JSON解析失败,返回空对象 + console.error('无法解析AI响应:', response); + return {}; + } +} + +// 获取安全等级颜色 +function getSafetyLevelColor(safetyLevel) { + const colors = { + 'safe': '#34C759', + 'caution': '#FF9500', + 'dangerous': '#FF3B30' + }; + return colors[safetyLevel] || '#86868B'; +} + +// 获取安全等级文本 +function getSafetyLevelText(safetyLevel) { + const texts = { + 'safe': '安全', + 'caution': '谨慎', + 'dangerous': '危险' + }; + return texts[safetyLevel] || '未知'; +} + +// 显示命令建议 +function displayCommands(commandData) { + commandsContainer.innerHTML = ''; + + if (!commandData || !commandData.commands || commandData.commands.length === 0) { + commandsContainer.innerHTML = '
暂无命令建议,请尝试重新生成
'; + return; + } + + // 显示命令列表 + if (commandData.commands && commandData.commands.length > 0) { + const commandsTitle = document.createElement('div'); + commandsTitle.className = 'section-title'; + commandsTitle.textContent = '推荐命令'; + commandsContainer.appendChild(commandsTitle); + + commandData.commands.forEach((command, index) => { + const commandElement = document.createElement('div'); + commandElement.className = 'command-item'; + + const safetyColor = getSafetyLevelColor(command.safety_level); + const safetyText = getSafetyLevelText(command.safety_level); + + commandElement.innerHTML = ` +
+
+
${command.command}
+
${safetyText}
+
+
${command.description}
+
+ 详细说明:${command.explanation} +
+ ${command.example_output ? `
预期输出:${command.example_output}
` : ''} + ${command.alternatives && command.alternatives.length > 0 ? ` +
+ 替代命令: + ${command.alternatives.map(alt => `${alt}`).join(' ')} +
+ ` : ''} +
+ + `; + commandsContainer.appendChild(commandElement); + }); + } + + // 显示安全警告 + if (commandData.safety_warnings && commandData.safety_warnings.length > 0) { + const warningsTitle = document.createElement('div'); + warningsTitle.className = 'section-title warning'; + warningsTitle.textContent = '⚠️ 安全提示'; + commandsContainer.appendChild(warningsTitle); + + const warningsContainer = document.createElement('div'); + warningsContainer.className = 'warnings-container'; + commandData.safety_warnings.forEach(warning => { + const warningElement = document.createElement('div'); + warningElement.className = 'warning-item'; + warningElement.textContent = warning; + warningsContainer.appendChild(warningElement); + }); + commandsContainer.appendChild(warningsContainer); + } + + // 显示前置条件 + if (commandData.prerequisites && commandData.prerequisites.length > 0) { + const prereqTitle = document.createElement('div'); + prereqTitle.className = 'section-title info'; + prereqTitle.textContent = '📋 前置条件'; + commandsContainer.appendChild(prereqTitle); + + const prereqContainer = document.createElement('div'); + prereqContainer.className = 'prerequisites-container'; + commandData.prerequisites.forEach(prereq => { + const prereqElement = document.createElement('div'); + prereqElement.className = 'prerequisite-item'; + prereqElement.textContent = prereq; + prereqContainer.appendChild(prereqElement); + }); + commandsContainer.appendChild(prereqContainer); + } + + // 显示相关概念 + if (commandData.related_concepts && commandData.related_concepts.length > 0) { + const conceptsTitle = document.createElement('div'); + conceptsTitle.className = 'section-title info'; + conceptsTitle.textContent = '💡 相关概念'; + commandsContainer.appendChild(conceptsTitle); + + const conceptsContainer = document.createElement('div'); + conceptsContainer.className = 'concepts-container'; + commandData.related_concepts.forEach(concept => { + const conceptElement = document.createElement('div'); + conceptElement.className = 'concept-item'; + conceptElement.textContent = concept; + conceptsContainer.appendChild(conceptElement); + }); + commandsContainer.appendChild(conceptsContainer); + } +} + +// 复制到剪贴板 +function copyToClipboard(text, button) { + navigator.clipboard.writeText(text).then(() => { + showSuccessToast('已复制到剪贴板'); + const originalText = button.textContent; + button.textContent = '已复制'; + button.classList.add('copied'); + setTimeout(() => { + button.textContent = originalText; + button.classList.remove('copied'); + }, 2000); + }).catch(err => { + console.error('复制失败:', err); + // 备用复制方法 + const textArea = document.createElement('textarea'); + textArea.value = text; + document.body.appendChild(textArea); + textArea.select(); + try { + document.execCommand('copy'); + showSuccessToast('已复制到剪贴板'); + const originalText = button.textContent; + button.textContent = '已复制'; + button.classList.add('copied'); + setTimeout(() => { + button.textContent = originalText; + button.classList.remove('copied'); + }, 2000); + } catch (e) { + showErrorMessage('复制失败,请手动复制'); + } + document.body.removeChild(textArea); + }); +} + +// 显示成功提示 +function showSuccessToast(message) { + const toast = document.createElement('div'); + toast.className = 'success-toast'; + toast.textContent = message; + document.body.appendChild(toast); + + setTimeout(() => { + toast.classList.add('show'); + }, 100); + + setTimeout(() => { + toast.classList.remove('show'); + setTimeout(() => { + document.body.removeChild(toast); + }, 300); + }, 2000); +} + +// 显示错误信息 +function showErrorMessage(message) { + const errorDiv = document.createElement('div'); + errorDiv.className = 'error'; + errorDiv.textContent = message; + commandsContainer.innerHTML = ''; + commandsContainer.appendChild(errorDiv); +} + +// 显示加载状态 +function showLoading(show) { + loadingDiv.style.display = show ? 'block' : 'none'; + generateBtn.disabled = show; + generateBtn.textContent = show ? '生成中...' : '生成命令'; +} + +// 生成命令建议 +async function generateCommands() { + const taskDescription = taskInput.value.trim(); + const difficultyLevel = levelSelect.value; + + if (!taskDescription) { + showErrorMessage('请输入任务描述'); + return; + } + + showLoading(true); + commandsContainer.innerHTML = ''; + + try { + const commandResult = await callBackendAPI(taskDescription, difficultyLevel); + const commandData = parseAIResponse(commandResult); + displayCommands(commandData); + } catch (error) { + console.error('生成命令失败:', error); + showErrorMessage(`生成失败: ${error.message}`); + } finally { + showLoading(false); + } +} + +// 事件监听器 +generateBtn.addEventListener('click', generateCommands); + +// 回车键生成 +taskInput.addEventListener('keypress', (e) => { + if (e.key === 'Enter' && !e.shiftKey) { + e.preventDefault(); + generateCommands(); + } +}); + +// 技能水平变化时的提示 +levelSelect.addEventListener('change', (e) => { + const levelDescriptions = { + 'beginner': '将提供基础命令和详细解释', + 'intermediate': '将提供常用命令和选项', + 'advanced': '将提供高效命令和高级用法' + }; + + const description = levelDescriptions[e.target.value]; + if (description) { + console.log(`已选择技能水平: ${e.target.value} - ${description}`); + } +}); + +// 页面加载完成后的初始化 +document.addEventListener('DOMContentLoaded', () => { + // 设置默认占位符 + commandsContainer.innerHTML = '
请输入要执行的Linux操作,然后点击生成按钮获取相应的命令
'; + + // 设置默认任务描述 + if (!taskInput.value.trim()) { + taskInput.value = '切换到根目录'; + } +}); + +// 导出函数供HTML调用 +window.copyToClipboard = copyToClipboard; +window.generateCommands = generateCommands; + +// 添加一些实用的辅助函数 +function getRandomCommand(commands) { + if (commands && commands.length > 0) { + const randomIndex = Math.floor(Math.random() * commands.length); + return commands[randomIndex]; + } + return null; +} + +// 命令使用统计(可选功能) +function trackCommandUsage(command) { + const usage = JSON.parse(localStorage.getItem('commandUsage') || '{}'); + usage[command] = (usage[command] || 0) + 1; + localStorage.setItem('commandUsage', JSON.stringify(usage)); +} + +// 获取常用命令(可选功能) +function getPopularCommands(limit = 5) { + const usage = JSON.parse(localStorage.getItem('commandUsage') || '{}'); + return Object.entries(usage) + .sort(([,a], [,b]) => b - a) + .slice(0, limit) + .map(([command]) => command); +} + +// 导出辅助函数 +window.getRandomCommand = getRandomCommand; +window.trackCommandUsage = trackCommandUsage; +window.getPopularCommands = getPopularCommands; \ No newline at end of file diff --git a/InfoGenie-frontend/public/aimodelapp/AI生成Linux命令/styles.css b/InfoGenie-frontend/public/aimodelapp/AI生成Linux命令/styles.css new file mode 100644 index 00000000..0761c4c5 --- /dev/null +++ b/InfoGenie-frontend/public/aimodelapp/AI生成Linux命令/styles.css @@ -0,0 +1,576 @@ +/* 全局样式重置 */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +/* 主体样式 - iOS风格 */ +body { + font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Helvetica Neue', Arial, sans-serif; + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + min-height: 100vh; + padding: 20px; + color: #1D1D1F; + line-height: 1.47; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* 容器样式 - iOS毛玻璃效果 */ +.container { + max-width: 900px; + margin: 0 auto; + background: rgba(255, 255, 255, 0.85); + border-radius: 24px; + padding: 32px; + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.08); + backdrop-filter: blur(20px) saturate(180%); + border: 1px solid rgba(255, 255, 255, 0.2); +} + +/* 头部样式 - iOS风格 */ +.header { + text-align: center; + margin-bottom: 32px; +} + +.title { + font-size: 2.25rem; + color: #1D1D1F; + margin-bottom: 8px; + font-weight: 600; + letter-spacing: -0.02em; +} + +.subtitle { + color: #86868B; + font-size: 1.0625rem; + margin-bottom: 24px; + font-weight: 400; +} + +/* 表单样式 - iOS风格 */ +.form-section { + margin-bottom: 32px; +} + +.form-group { + margin-bottom: 24px; +} + +.form-label { + display: block; + margin-bottom: 8px; + font-weight: 600; + color: #1D1D1F; + font-size: 1rem; +} + +.form-input { + width: 100%; + padding: 16px; + border: 1px solid rgba(0, 0, 0, 0.1); + border-radius: 12px; + font-size: 1rem; + transition: all 0.2s ease; + background: rgba(255, 255, 255, 0.8); + font-family: inherit; + backdrop-filter: blur(10px); +} + +.form-input:focus { + outline: none; + border-color: #667eea; + background: rgba(255, 255, 255, 0.95); + box-shadow: 0 0 0 4px rgba(102, 126, 234, 0.1); +} + +.textarea { + resize: vertical; + min-height: 120px; +} + +.select { + cursor: pointer; + appearance: none; + background-image: url('data:image/svg+xml;charset=US-ASCII,'); + background-repeat: no-repeat; + background-position: right 15px center; + background-size: 12px; + padding-right: 40px; +} + +/* 按钮样式 - iOS风格 */ +.btn { + width: 100%; + padding: 16px; + background: #667eea; + color: white; + border: none; + border-radius: 12px; + font-size: 1.0625rem; + font-weight: 600; + cursor: pointer; + transition: all 0.2s ease; + margin-bottom: 24px; + box-shadow: 0 2px 8px rgba(102, 126, 234, 0.25); +} + +.btn:hover { + background: #5a67d8; + transform: translateY(-1px); + box-shadow: 0 4px 16px rgba(102, 126, 234, 0.35); +} + +.btn:active { + transform: translateY(0); + background: #4c51bf; +} + +.btn:disabled { + opacity: 0.5; + cursor: not-allowed; + transform: none; + background: #86868B; +} + +/* 结果区域样式 - iOS风格 */ +.result-section { + margin-top: 32px; +} + +.result-title { + font-size: 1.25rem; + color: #1D1D1F; + margin-bottom: 16px; + text-align: center; + font-weight: 600; +} + +.loading { + display: none; + text-align: center; + color: #667eea; + font-style: normal; + padding: 24px; + font-weight: 500; +} + +.commands-container { + background: rgba(255, 255, 255, 0.6); + border: 1px solid rgba(0, 0, 0, 0.08); + border-radius: 16px; + padding: 24px; + min-height: 150px; + backdrop-filter: blur(10px); +} + +.placeholder { + text-align: center; + color: #86868B; + font-style: normal; + padding: 40px 20px; + font-weight: 400; +} + +/* 分组标题样式 - iOS风格 */ +.section-title { + font-size: 1.125rem; + font-weight: 600; + color: white; + margin: 20px 0 12px 0; + padding: 12px 16px; + background: #667eea; + border-radius: 12px; + text-align: center; + box-shadow: 0 2px 8px rgba(102, 126, 234, 0.25); +} + +.section-title:first-child { + margin-top: 0; +} + +.section-title.warning { + background: #FF9500; + box-shadow: 0 2px 8px rgba(255, 149, 0, 0.25); +} + +.section-title.info { + background: #34C759; + box-shadow: 0 2px 8px rgba(52, 199, 89, 0.25); +} + +/* 命令项样式 - iOS风格 */ +.command-item { + background: rgba(255, 255, 255, 0.9); + border: 1px solid rgba(0, 0, 0, 0.06); + border-radius: 12px; + padding: 20px; + margin-bottom: 16px; + transition: all 0.2s ease; + position: relative; + backdrop-filter: blur(10px); +} + +.command-item:hover { + border-color: rgba(102, 126, 234, 0.3); + box-shadow: 0 4px 16px rgba(102, 126, 234, 0.1); + background: rgba(255, 255, 255, 0.95); +} + +.command-item:last-child { + margin-bottom: 0; +} + +.command-content { + margin-bottom: 16px; +} + +.command-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 12px; + flex-wrap: wrap; + gap: 8px; +} + +.command-code { + font-family: 'SF Mono', 'Monaco', 'Consolas', 'Courier New', monospace; + background: #f8f9fa; + padding: 8px 12px; + border-radius: 8px; + font-size: 0.9375rem; + color: #2d3748; + border: 1px solid #e2e8f0; + flex: 1; + min-width: 0; + word-break: break-all; +} + +.safety-badge { + padding: 4px 12px; + border-radius: 20px; + font-size: 0.8125rem; + font-weight: 600; + color: white; + white-space: nowrap; +} + +.command-description { + font-size: 1rem; + color: #2d3748; + margin-bottom: 12px; + line-height: 1.5; +} + +.command-explanation { + font-size: 0.9375rem; + color: #4a5568; + margin-bottom: 12px; + line-height: 1.5; +} + +.command-output { + margin-bottom: 12px; +} + +.command-output code { + font-family: 'SF Mono', 'Monaco', 'Consolas', 'Courier New', monospace; + background: #2d3748; + color: #e2e8f0; + padding: 8px 12px; + border-radius: 6px; + font-size: 0.875rem; + display: block; + margin-top: 4px; + white-space: pre-wrap; + word-break: break-all; +} + +.command-alternatives { + margin-top: 12px; +} + +.alt-command { + font-family: 'SF Mono', 'Monaco', 'Consolas', 'Courier New', monospace; + background: #e2e8f0; + color: #2d3748; + padding: 4px 8px; + border-radius: 4px; + font-size: 0.8125rem; + margin: 2px 4px 2px 0; + display: inline-block; + cursor: pointer; + transition: all 0.2s ease; +} + +.alt-command:hover { + background: #cbd5e0; + transform: translateY(-1px); +} + +.copy-btn { + background: #667eea; + color: white; + border: none; + border-radius: 8px; + padding: 10px 20px; + font-size: 0.875rem; + font-weight: 600; + cursor: pointer; + transition: all 0.2s ease; + box-shadow: 0 2px 4px rgba(102, 126, 234, 0.25); + position: absolute; + top: 20px; + right: 20px; +} + +.copy-btn:hover { + background: #5a67d8; + transform: translateY(-1px); +} + +.copy-btn.copied { + background: #34C759; +} + +/* 警告容器样式 */ +.warnings-container { + margin-bottom: 16px; +} + +.warning-item { + background: rgba(255, 149, 0, 0.1); + border: 1px solid rgba(255, 149, 0, 0.2); + border-radius: 8px; + padding: 12px 16px; + margin-bottom: 8px; + color: #b45309; + font-size: 0.9375rem; + line-height: 1.5; +} + +.warning-item:last-child { + margin-bottom: 0; +} + +/* 前置条件容器样式 */ +.prerequisites-container { + margin-bottom: 16px; +} + +.prerequisite-item { + background: rgba(52, 199, 89, 0.1); + border: 1px solid rgba(52, 199, 89, 0.2); + border-radius: 8px; + padding: 12px 16px; + margin-bottom: 8px; + color: #166534; + font-size: 0.9375rem; + line-height: 1.5; +} + +.prerequisite-item:last-child { + margin-bottom: 0; +} + +/* 相关概念容器样式 */ +.concepts-container { + margin-bottom: 16px; +} + +.concept-item { + background: rgba(59, 130, 246, 0.1); + border: 1px solid rgba(59, 130, 246, 0.2); + border-radius: 8px; + padding: 12px 16px; + margin-bottom: 8px; + color: #1e40af; + font-size: 0.9375rem; + line-height: 1.5; +} + +.concept-item:last-child { + margin-bottom: 0; +} + +/* 错误样式 - iOS风格 */ +.error { + color: #FF3B30; + background: rgba(255, 59, 48, 0.1); + border: 1px solid rgba(255, 59, 48, 0.2); + padding: 16px; + border-radius: 12px; + margin-top: 16px; + font-weight: 500; + backdrop-filter: blur(10px); +} + +/* 成功提示 - iOS风格 */ +.success-toast { + position: fixed; + top: 20px; + right: 20px; + background: #34C759; + color: white; + padding: 12px 20px; + border-radius: 12px; + box-shadow: 0 8px 24px rgba(52, 199, 89, 0.3); + z-index: 1000; + opacity: 0; + transform: translateX(100%); + transition: all 0.3s ease; + font-weight: 600; + backdrop-filter: blur(20px); +} + +.success-toast.show { + opacity: 1; + transform: translateX(0); +} + +/* 响应式设计 - 移动端优化 */ +@media (max-width: 768px) { + body { + padding: 16px; + } + + .container { + padding: 24px; + border-radius: 20px; + } + + .title { + font-size: 1.875rem; + } + + .subtitle { + font-size: 1rem; + } + + .form-input { + padding: 14px; + font-size: 1rem; + } + + .btn { + padding: 16px; + font-size: 1rem; + } + + .commands-container { + padding: 20px; + } + + .command-item { + padding: 16px; + margin-bottom: 16px; + } + + .command-header { + flex-direction: column; + align-items: stretch; + } + + .command-code { + margin-bottom: 8px; + font-size: 0.875rem; + } + + .copy-btn { + position: static; + width: 100%; + margin-top: 12px; + } + + .safety-badge { + align-self: flex-start; + } +} + +@media (max-width: 480px) { + .title { + font-size: 1.75rem; + } + + .container { + padding: 20px; + } + + .form-input { + padding: 12px; + } + + .command-item { + padding: 12px; + } + + .command-code { + font-size: 0.8125rem; + padding: 6px 8px; + } + + .command-description, + .command-explanation { + font-size: 0.875rem; + } +} + +/* 动画效果 */ +@keyframes fadeIn { + from { + opacity: 0; + transform: translateY(10px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.command-item { + animation: fadeIn 0.3s ease; +} + +/* 加载动画 */ +@keyframes pulse { + 0%, 100% { + opacity: 1; + } + 50% { + opacity: 0.5; + } +} + +.loading { + animation: pulse 1.5s ease-in-out infinite; +} + +/* 代码字体优化 */ +.command-code, +.alt-command, +code { + font-family: 'SF Mono', 'Monaco', 'Consolas', 'Courier New', monospace; + font-variant-ligatures: none; +} + +/* 滚动条样式 */ +::-webkit-scrollbar { + width: 8px; +} + +::-webkit-scrollbar-track { + background: rgba(0, 0, 0, 0.1); + border-radius: 4px; +} + +::-webkit-scrollbar-thumb { + background: rgba(102, 126, 234, 0.3); + border-radius: 4px; +} + +::-webkit-scrollbar-thumb:hover { + background: rgba(102, 126, 234, 0.5); +} \ No newline at end of file diff --git a/InfoGenie-frontend/public/aimodelapp/AI生成表情包/index.html b/InfoGenie-frontend/public/aimodelapp/AI生成表情包/index.html new file mode 100644 index 00000000..9ce56643 --- /dev/null +++ b/InfoGenie-frontend/public/aimodelapp/AI生成表情包/index.html @@ -0,0 +1,52 @@ + + + + + + AI表情制作器 + + + +
+
+

AI表情制作器

+

让AI为您的文字生成生动的表情符号

+
+ +
+
+ + +
+ +
+ + +
+ + +
+ +
+

推荐的表情

+
正在生成中,请稍候...
+
+
点击"生成表情"按钮,AI将为您推荐合适的表情符号
+
+
+
+ + + + + \ No newline at end of file diff --git a/InfoGenie-frontend/public/aimodelapp/AI生成表情包/script.js b/InfoGenie-frontend/public/aimodelapp/AI生成表情包/script.js new file mode 100644 index 00000000..8afea55e --- /dev/null +++ b/InfoGenie-frontend/public/aimodelapp/AI生成表情包/script.js @@ -0,0 +1,298 @@ +// 从配置文件导入设置 +// 配置在 env.js 文件中定义 + +// DOM 元素 +const textInput = document.getElementById('text-input'); +const styleSelect = document.getElementById('style-select'); +const generateBtn = document.getElementById('generateBtn'); +const loadingDiv = document.getElementById('loading'); +const expressionsContainer = document.getElementById('expressions'); + +// 调用后端API +async function callBackendAPI(text, style) { + try { + const response = await fetch('http://127.0.0.1:5002/api/aimodelapp/expression-maker', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + text: text, + style: style + }) + }); + + if (!response.ok) { + const errorData = await response.json(); + throw new Error(errorData.error || `API请求失败: ${response.status} ${response.statusText}`); + } + + const data = await response.json(); + if (data.success) { + return data.expressions; + } else { + throw new Error(data.error || 'API响应格式异常'); + } + } catch (error) { + console.error('API调用错误:', error); + throw error; + } +} + +// 解析AI响应 +function parseAIResponse(response) { + try { + // 尝试直接解析JSON + const parsed = JSON.parse(response); + return parsed.expressions || {}; + } catch (error) { + // 如果直接解析失败,尝试提取JSON部分 + const jsonMatch = response.match(/\{[\s\S]*\}/); + if (jsonMatch) { + try { + const parsed = JSON.parse(jsonMatch[0]); + return parsed.expressions || {}; + } catch (e) { + console.error('JSON解析失败:', e); + } + } + + // 如果JSON解析失败,返回空对象 + console.error('无法解析AI响应:', response); + return {}; + } +} + +// 显示表情建议 +function displayExpressions(expressions) { + expressionsContainer.innerHTML = ''; + + if (!expressions || Object.keys(expressions).length === 0) { + expressionsContainer.innerHTML = '
暂无表情建议,请尝试重新生成
'; + return; + } + + // 表情分类的显示名称 + const categoryNames = { + 'emoji': 'Emoji表情', + 'kaomoji': '颜文字', + 'combination': '组合表情' + }; + + // 按分类显示表情 + Object.keys(expressions).forEach(category => { + if (expressions[category] && expressions[category].length > 0) { + // 创建分组标题 + const groupTitle = document.createElement('div'); + groupTitle.className = 'expression-group-title'; + groupTitle.textContent = categoryNames[category] || category; + expressionsContainer.appendChild(groupTitle); + + // 显示该分类下的表情 + expressions[category].forEach(expression => { + const expressionElement = document.createElement('div'); + expressionElement.className = 'expression-item'; + + // 获取情感强度颜色 + const intensityColor = CONFIG.intensityLevels[expression.intensity]?.color || '#86868B'; + + expressionElement.innerHTML = ` +
+
${expression.symbol}
+
+
${expression.symbol}
+
+ ${expression.description}
+ 强度: ${expression.intensity} + ${expression.usage ? ` | ${expression.usage}` : ''} +
+
+
+ + `; + expressionsContainer.appendChild(expressionElement); + }); + } + }); +} + +// 复制到剪贴板 +function copyToClipboard(text, button) { + navigator.clipboard.writeText(text).then(() => { + showSuccessToast('已复制到剪贴板'); + button.textContent = '已复制'; + setTimeout(() => { + button.textContent = '复制'; + }, 2000); + }).catch(err => { + console.error('复制失败:', err); + // 备用复制方法 + const textArea = document.createElement('textarea'); + textArea.value = text; + document.body.appendChild(textArea); + textArea.select(); + try { + document.execCommand('copy'); + showSuccessToast('已复制到剪贴板'); + button.textContent = '已复制'; + setTimeout(() => { + button.textContent = '复制'; + }, 2000); + } catch (e) { + showErrorMessage('复制失败,请手动复制'); + } + document.body.removeChild(textArea); + }); +} + +// 显示成功提示 +function showSuccessToast(message) { + const toast = document.createElement('div'); + toast.className = 'success-toast'; + toast.textContent = message; + document.body.appendChild(toast); + + setTimeout(() => { + toast.classList.add('show'); + }, 100); + + setTimeout(() => { + toast.classList.remove('show'); + setTimeout(() => { + document.body.removeChild(toast); + }, 300); + }, 2000); +} + +// 显示错误信息 +function showErrorMessage(message) { + const errorDiv = document.createElement('div'); + errorDiv.className = 'error'; + errorDiv.textContent = message; + expressionsContainer.innerHTML = ''; + expressionsContainer.appendChild(errorDiv); +} + +// 显示加载状态 +function showLoading(show) { + loadingDiv.style.display = show ? 'block' : 'none'; + generateBtn.disabled = show; + generateBtn.textContent = show ? '生成中...' : '生成表情'; +} + +// 生成表情建议 +async function generateExpressions() { + const text = textInput.value.trim(); + const style = styleSelect.value; + + if (!text) { + showErrorMessage('请输入要表达的文字内容'); + return; + } + + showLoading(true); + expressionsContainer.innerHTML = ''; + + try { + const expressions = await callBackendAPI(text, style); + displayExpressions(expressions); + } catch (error) { + console.error('生成表情失败:', error); + showErrorMessage(`生成失败: ${error.message}`); + } finally { + showLoading(false); + } +} + +// 初始化样式选择器 +function initializeStyleSelector() { + // 清空现有选项 + styleSelect.innerHTML = ''; + + // 添加样式选项 + Object.keys(CONFIG.expressionStyles).forEach(styleKey => { + const option = document.createElement('option'); + option.value = styleKey; + option.textContent = `${CONFIG.expressionStyles[styleKey].name} - ${CONFIG.expressionStyles[styleKey].description}`; + styleSelect.appendChild(option); + }); + + // 设置默认选项 + styleSelect.value = 'mixed'; +} + +// 事件监听器 +generateBtn.addEventListener('click', generateExpressions); + +// 回车键生成 +textInput.addEventListener('keypress', (e) => { + if (e.key === 'Enter' && !e.shiftKey) { + e.preventDefault(); + generateExpressions(); + } +}); + +// 样式选择变化时的提示 +styleSelect.addEventListener('change', (e) => { + const selectedStyle = CONFIG.expressionStyles[e.target.value]; + if (selectedStyle) { + // 可以在这里添加样式变化的提示 + console.log(`已选择样式: ${selectedStyle.name} - ${selectedStyle.description}`); + } +}); + +// 页面加载完成后的初始化 +document.addEventListener('DOMContentLoaded', () => { + // 初始化样式选择器 + initializeStyleSelector(); + + // 设置默认占位符 + expressionsContainer.innerHTML = '
请输入要表达的文字,然后点击生成按钮获取相应的表情符号
'; + + // 设置默认文本 + if (!textInput.value.trim()) { + textInput.value = '开心'; + } +}); + +// 导出函数供HTML调用 +window.copyToClipboard = copyToClipboard; +window.generateExpressions = generateExpressions; + +// 添加一些实用的辅助函数 +function getRandomExpression(expressions) { + const allExpressions = []; + Object.values(expressions).forEach(categoryExpressions => { + if (Array.isArray(categoryExpressions)) { + allExpressions.push(...categoryExpressions); + } + }); + + if (allExpressions.length > 0) { + const randomIndex = Math.floor(Math.random() * allExpressions.length); + return allExpressions[randomIndex]; + } + + return null; +} + +// 表情使用统计(可选功能) +function trackExpressionUsage(expression) { + const usage = JSON.parse(localStorage.getItem('expressionUsage') || '{}'); + usage[expression] = (usage[expression] || 0) + 1; + localStorage.setItem('expressionUsage', JSON.stringify(usage)); +} + +// 获取常用表情(可选功能) +function getPopularExpressions(limit = 5) { + const usage = JSON.parse(localStorage.getItem('expressionUsage') || '{}'); + return Object.entries(usage) + .sort(([,a], [,b]) => b - a) + .slice(0, limit) + .map(([expression]) => expression); +} + +// 导出辅助函数 +window.getRandomExpression = getRandomExpression; +window.trackExpressionUsage = trackExpressionUsage; +window.getPopularExpressions = getPopularExpressions; \ No newline at end of file diff --git a/InfoGenie-frontend/public/aimodelapp/AI生成表情包/styles.css b/InfoGenie-frontend/public/aimodelapp/AI生成表情包/styles.css new file mode 100644 index 00000000..54689967 --- /dev/null +++ b/InfoGenie-frontend/public/aimodelapp/AI生成表情包/styles.css @@ -0,0 +1,436 @@ +/* 全局样式重置 */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +/* 主体样式 - iOS风格 */ +body { + font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Helvetica Neue', Arial, sans-serif; + background: linear-gradient(135deg, #FFB6C1 0%, #FFE4E1 100%); + min-height: 100vh; + padding: 20px; + color: #1D1D1F; + line-height: 1.47; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* 容器样式 - iOS毛玻璃效果 */ +.container { + max-width: 700px; + margin: 0 auto; + background: rgba(255, 255, 255, 0.85); + border-radius: 24px; + padding: 32px; + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.08); + backdrop-filter: blur(20px) saturate(180%); + border: 1px solid rgba(255, 255, 255, 0.2); +} + +/* 头部样式 - iOS风格 */ +.header { + text-align: center; + margin-bottom: 32px; +} + +.title { + font-size: 2.25rem; + color: #1D1D1F; + margin-bottom: 8px; + font-weight: 600; + letter-spacing: -0.02em; +} + +.subtitle { + color: #86868B; + font-size: 1.0625rem; + margin-bottom: 24px; + font-weight: 400; +} + +/* 表单样式 - iOS风格 */ +.form-section { + margin-bottom: 32px; +} + +.form-group { + margin-bottom: 24px; +} + +.form-label { + display: block; + margin-bottom: 8px; + font-weight: 600; + color: #1D1D1F; + font-size: 1rem; +} + +.form-input { + width: 100%; + padding: 16px; + border: 1px solid rgba(0, 0, 0, 0.1); + border-radius: 12px; + font-size: 1rem; + transition: all 0.2s ease; + background: rgba(255, 255, 255, 0.8); + font-family: inherit; + backdrop-filter: blur(10px); +} + +.form-input:focus { + outline: none; + border-color: #FF69B4; + background: rgba(255, 255, 255, 0.95); + box-shadow: 0 0 0 4px rgba(255, 105, 180, 0.1); +} + +.textarea { + resize: vertical; + min-height: 120px; +} + +.select { + cursor: pointer; + appearance: none; + background-image: url('data:image/svg+xml;charset=US-ASCII,'); + background-repeat: no-repeat; + background-position: right 15px center; + background-size: 12px; + padding-right: 40px; +} + +/* 按钮样式 - iOS风格 */ +.btn { + width: 100%; + padding: 16px; + background: #FF69B4; + color: white; + border: none; + border-radius: 12px; + font-size: 1.0625rem; + font-weight: 600; + cursor: pointer; + transition: all 0.2s ease; + margin-bottom: 24px; + box-shadow: 0 2px 8px rgba(255, 105, 180, 0.25); +} + +.btn:hover { + background: #FF1493; + transform: translateY(-1px); + box-shadow: 0 4px 16px rgba(255, 105, 180, 0.35); +} + +.btn:active { + transform: translateY(0); + background: #DC143C; +} + +.btn:disabled { + opacity: 0.5; + cursor: not-allowed; + transform: none; + background: #86868B; +} + +/* 结果区域样式 - iOS风格 */ +.result-section { + margin-top: 32px; +} + +.result-title { + font-size: 1.25rem; + color: #1D1D1F; + margin-bottom: 16px; + text-align: center; + font-weight: 600; +} + +.loading { + display: none; + text-align: center; + color: #FF69B4; + font-style: normal; + padding: 24px; + font-weight: 500; +} + +.expressions-container { + background: rgba(255, 255, 255, 0.6); + border: 1px solid rgba(0, 0, 0, 0.08); + border-radius: 16px; + padding: 24px; + min-height: 150px; + backdrop-filter: blur(10px); +} + +.placeholder { + text-align: center; + color: #86868B; + font-style: normal; + padding: 40px 20px; + font-weight: 400; +} + +/* 表情分组标题样式 - iOS风格 */ +.expression-group-title { + font-size: 1.0625rem; + font-weight: 600; + color: white; + margin: 20px 0 12px 0; + padding: 12px 16px; + background: #FF69B4; + border-radius: 12px; + text-align: center; + box-shadow: 0 2px 8px rgba(255, 105, 180, 0.25); +} + +.expression-group-title:first-child { + margin-top: 0; +} + +/* 表情项样式 - iOS风格 */ +.expression-item { + background: rgba(255, 255, 255, 0.9); + border: 1px solid rgba(0, 0, 0, 0.06); + border-radius: 12px; + padding: 16px; + margin-bottom: 12px; + transition: all 0.2s ease; + cursor: pointer; + position: relative; + backdrop-filter: blur(10px); + display: flex; + flex-direction: column; + align-items: center; +} + +.expression-item:hover { + border-color: rgba(255, 105, 180, 0.3); + box-shadow: 0 4px 16px rgba(255, 105, 180, 0.1); + background: rgba(255, 255, 255, 0.95); +} + +.expression-item:last-child { + margin-bottom: 0; +} + +.expression-content { + display: flex; + flex-direction: column; + align-items: center; + width: 100%; + text-align: center; +} + +.expression-symbol { + font-size: 2.5rem; + margin-bottom: 12px; + line-height: 1; +} + +.expression-info { + width: 100%; + text-align: center; +} + +.expression-text { + display: none; +} + +.expression-description { + font-size: 0.9375rem; + color: #86868B; + line-height: 1.47; + margin-bottom: 12px; +} + +.copy-btn { + background: #FF69B4; + color: white; + border: none; + border-radius: 8px; + padding: 8px 16px; + font-size: 0.8125rem; + font-weight: 600; + cursor: pointer; + transition: all 0.2s ease; + box-shadow: 0 2px 4px rgba(255, 105, 180, 0.25); + margin-top: 8px; + align-self: center; +} + +.copy-btn:hover { + background: #FF1493; + transform: translateY(-1px); +} + +/* 错误样式 - iOS风格 */ +.error { + color: #FF3B30; + background: rgba(255, 59, 48, 0.1); + border: 1px solid rgba(255, 59, 48, 0.2); + padding: 16px; + border-radius: 12px; + margin-top: 16px; + font-weight: 500; + backdrop-filter: blur(10px); +} + +/* 成功提示 - iOS风格 */ +.success-toast { + position: fixed; + top: 20px; + right: 20px; + background: #34C759; + color: white; + padding: 12px 20px; + border-radius: 12px; + box-shadow: 0 8px 24px rgba(52, 199, 89, 0.3); + z-index: 1000; + opacity: 0; + transform: translateX(100%); + transition: all 0.3s ease; + font-weight: 600; + backdrop-filter: blur(20px); +} + +.success-toast.show { + opacity: 1; + transform: translateX(0); +} + +/* 响应式设计 - 移动端优化 */ +@media (max-width: 768px) { + body { + padding: 16px; + } + + .container { + padding: 24px; + border-radius: 20px; + } + + .title { + font-size: 1.875rem; + } + + .subtitle { + font-size: 1rem; + } + + .form-input { + padding: 14px; + font-size: 1rem; + } + + .btn { + padding: 16px; + font-size: 1rem; + } + + .expressions-container { + padding: 20px; + } + + .expression-item { + padding: 16px; + margin-bottom: 16px; + } + + .expression-content { + width: 100%; + margin-bottom: 8px; + } + + .expression-symbol { + font-size: 3rem; + margin-bottom: 16px; + } + + .expression-description { + font-size: 0.875rem; + margin-bottom: 16px; + padding: 0 8px; + } + + .copy-btn { + padding: 10px 20px; + font-size: 0.875rem; + margin-top: 12px; + width: 100%; + } +} + +@media (max-width: 480px) { + .title { + font-size: 1.8rem; + letter-spacing: 1px; + } + + .container { + padding: 15px; + } + + .form-input { + padding: 10px; + } + + .expression-item { + padding: 10px; + } + + .expression-text { + font-size: 1rem; + } + + .expression-description { + font-size: 0.85rem; + } + + .expression-symbol { + font-size: 1.2rem; + } +} + +/* 动画效果 */ +@keyframes fadeIn { + from { + opacity: 0; + transform: translateY(10px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.expression-item { + animation: fadeIn 0.3s ease; +} + +/* 加载动画 */ +@keyframes pulse { + 0%, 100% { + opacity: 1; + } + 50% { + opacity: 0.5; + } +} + +.loading { + animation: pulse 1.5s ease-in-out infinite; +} + +/* 表情符号特殊样式 */ +.emoji { + font-family: 'Apple Color Emoji', 'Segoe UI Emoji', 'Noto Color Emoji', sans-serif; +} + +.kaomoji { + font-family: 'SF Mono', 'Monaco', 'Consolas', 'Courier New', monospace; + font-weight: normal; +} \ No newline at end of file diff --git a/InfoGenie-frontend/public/aimodelapp/AI语言翻译助手/index.html b/InfoGenie-frontend/public/aimodelapp/AI语言翻译助手/index.html new file mode 100644 index 00000000..6e3d53e0 --- /dev/null +++ b/InfoGenie-frontend/public/aimodelapp/AI语言翻译助手/index.html @@ -0,0 +1,62 @@ + + + + + + AI语言翻译助手 + + + +
+
+

AI语言翻译助手

+

智能翻译,信达雅兼备

+
+ +
+
+ + +
+ +
+ + +
+ + +
+ +
+

翻译结果

+
正在翻译中,请稍候...
+
+
点击"开始翻译"按钮,AI将为您提供高质量的翻译结果
+
+
+
+ + + + + \ No newline at end of file diff --git a/InfoGenie-frontend/public/aimodelapp/AI语言翻译助手/script.js b/InfoGenie-frontend/public/aimodelapp/AI语言翻译助手/script.js new file mode 100644 index 00000000..535cc287 --- /dev/null +++ b/InfoGenie-frontend/public/aimodelapp/AI语言翻译助手/script.js @@ -0,0 +1,239 @@ +// 从配置文件导入设置 +// 配置在 env.js 文件中定义 + +// DOM 元素 +const sourceTextInput = document.getElementById('sourceText'); +const targetLanguageSelect = document.getElementById('targetLanguage'); +const translateBtn = document.getElementById('translateBtn'); +const loadingDiv = document.getElementById('loading'); +const translationResultContainer = document.getElementById('translationResult'); + +// 调用后端API +async function callBackendAPI(sourceText, targetLanguage) { + try { + const response = await fetch('http://127.0.0.1:5002/api/aimodelapp/translation', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + source_text: sourceText, + target_language: targetLanguage + }) + }); + + if (!response.ok) { + const errorData = await response.json(); + throw new Error(errorData.error || `API请求失败: ${response.status} ${response.statusText}`); + } + + const data = await response.json(); + if (data.success) { + return data.translation_result; + } else { + throw new Error(data.error || 'API响应格式异常'); + } + } catch (error) { + console.error('API调用错误:', error); + throw error; + } +} + +// 解析AI响应 +function parseAIResponse(response) { + try { + // 尝试直接解析JSON + const parsed = JSON.parse(response); + return parsed; + } catch (error) { + // 如果直接解析失败,尝试提取JSON部分 + const jsonMatch = response.match(/\{[\s\S]*\}/); + if (jsonMatch) { + try { + const parsed = JSON.parse(jsonMatch[0]); + return parsed; + } catch (e) { + console.error('JSON解析失败:', e); + } + } + + // 如果JSON解析失败,返回空对象 + console.error('无法解析AI响应:', response); + return {}; + } +} + +// 显示翻译结果 +function displayTranslationResult(result) { + translationResultContainer.innerHTML = ''; + + if (!result || !result.translation) { + translationResultContainer.innerHTML = '
翻译失败,请尝试重新翻译
'; + return; + } + + // 创建结果容器 + const resultDiv = document.createElement('div'); + resultDiv.className = 'translation-result'; + + // 检测到的源语言 + if (result.detected_language) { + const detectedLangDiv = document.createElement('div'); + detectedLangDiv.className = 'detected-language'; + detectedLangDiv.innerHTML = `检测到的语言:${result.detected_language}`; + resultDiv.appendChild(detectedLangDiv); + } + + // 主要翻译结果 + const mainTranslationDiv = document.createElement('div'); + mainTranslationDiv.className = 'main-translation'; + mainTranslationDiv.innerHTML = ` +
+ 翻译结果: + +
+
${result.translation}
+ `; + resultDiv.appendChild(mainTranslationDiv); + + // 发音指导 + if (result.pronunciation) { + const pronunciationDiv = document.createElement('div'); + pronunciationDiv.className = 'pronunciation'; + pronunciationDiv.innerHTML = `发音:${result.pronunciation}`; + resultDiv.appendChild(pronunciationDiv); + } + + // 备选翻译 + if (result.alternative_translations && result.alternative_translations.length > 0) { + const alternativesDiv = document.createElement('div'); + alternativesDiv.className = 'alternatives'; + alternativesDiv.innerHTML = '
备选翻译:
'; + + result.alternative_translations.forEach((alt, index) => { + if (alt && alt.trim()) { + const altDiv = document.createElement('div'); + altDiv.className = 'alternative-item'; + altDiv.innerHTML = ` + ${alt} + + `; + alternativesDiv.appendChild(altDiv); + } + }); + + resultDiv.appendChild(alternativesDiv); + } + + // 翻译说明 + if (result.explanation) { + const explanationDiv = document.createElement('div'); + explanationDiv.className = 'explanation'; + explanationDiv.innerHTML = `翻译说明:
${result.explanation}
`; + resultDiv.appendChild(explanationDiv); + } + + translationResultContainer.appendChild(resultDiv); +} + +// 复制到剪贴板 +function copyToClipboard(text) { + navigator.clipboard.writeText(text).then(() => { + showSuccessToast('已复制到剪贴板'); + }).catch(err => { + console.error('复制失败:', err); + // 备用复制方法 + const textArea = document.createElement('textarea'); + textArea.value = text; + document.body.appendChild(textArea); + textArea.select(); + try { + document.execCommand('copy'); + showSuccessToast('已复制到剪贴板'); + } catch (e) { + showErrorMessage('复制失败,请手动复制'); + } + document.body.removeChild(textArea); + }); +} + +// 显示成功提示 +function showSuccessToast(message) { + const toast = document.createElement('div'); + toast.className = 'success-toast'; + toast.textContent = message; + document.body.appendChild(toast); + + setTimeout(() => { + toast.classList.add('show'); + }, 100); + + setTimeout(() => { + toast.classList.remove('show'); + setTimeout(() => { + document.body.removeChild(toast); + }, 300); + }, 2000); +} + +// 显示错误信息 +function showErrorMessage(message) { + const errorDiv = document.createElement('div'); + errorDiv.className = 'error'; + errorDiv.textContent = message; + translationResultContainer.innerHTML = ''; + translationResultContainer.appendChild(errorDiv); +} + +// 显示加载状态 +function showLoading(show) { + loadingDiv.style.display = show ? 'block' : 'none'; + translateBtn.disabled = show; + translateBtn.textContent = show ? '翻译中...' : '开始翻译'; +} + +// 执行翻译 +async function performTranslation() { + const sourceText = sourceTextInput.value.trim(); + const targetLanguage = targetLanguageSelect.value; + + if (!sourceText) { + showErrorMessage('请输入要翻译的内容'); + return; + } + + showLoading(true); + translationResultContainer.innerHTML = ''; + + try { + const result = await callBackendAPI(sourceText, targetLanguage); + const parsedResult = parseAIResponse(result); + displayTranslationResult(parsedResult); + } catch (error) { + console.error('翻译失败:', error); + showErrorMessage(`翻译失败: ${error.message}`); + } finally { + showLoading(false); + } +} + +// 事件监听器 +translateBtn.addEventListener('click', performTranslation); + +// 回车键翻译 +sourceTextInput.addEventListener('keypress', (e) => { + if (e.key === 'Enter' && !e.shiftKey) { + e.preventDefault(); + performTranslation(); + } +}); + +// 页面加载完成后的初始化 +document.addEventListener('DOMContentLoaded', () => { + // 设置默认占位符 + translationResultContainer.innerHTML = '
请输入要翻译的内容,然后选择目标语言并点击翻译按钮
'; +}); + +// 导出函数供HTML调用 +window.copyToClipboard = copyToClipboard; +window.performTranslation = performTranslation; \ No newline at end of file diff --git a/InfoGenie-frontend/public/aimodelapp/AI语言翻译助手/styles.css b/InfoGenie-frontend/public/aimodelapp/AI语言翻译助手/styles.css new file mode 100644 index 00000000..5e1806c2 --- /dev/null +++ b/InfoGenie-frontend/public/aimodelapp/AI语言翻译助手/styles.css @@ -0,0 +1,488 @@ +/* 全局样式重置 */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +/* 主体样式 - iOS风格 */ +body { + font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Helvetica Neue', Arial, sans-serif; + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + min-height: 100vh; + padding: 20px; + color: #1D1D1F; + line-height: 1.47; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* 容器样式 - iOS毛玻璃效果 */ +.container { + max-width: 800px; + margin: 0 auto; + background: rgba(255, 255, 255, 0.85); + border-radius: 24px; + padding: 32px; + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.08); + backdrop-filter: blur(20px) saturate(180%); + border: 1px solid rgba(255, 255, 255, 0.2); +} + +/* 头部样式 - iOS风格 */ +.header { + text-align: center; + margin-bottom: 32px; +} + +.title { + font-size: 2.25rem; + color: #1D1D1F; + margin-bottom: 8px; + font-weight: 600; + letter-spacing: -0.02em; +} + +.subtitle { + color: #86868B; + font-size: 1.0625rem; + margin-bottom: 24px; + font-weight: 400; +} + +/* 表单样式 - iOS风格 */ +.form-section { + margin-bottom: 32px; +} + +.form-group { + margin-bottom: 24px; +} + +.form-label { + display: block; + margin-bottom: 8px; + font-weight: 600; + color: #1D1D1F; + font-size: 1rem; +} + +.form-input { + width: 100%; + padding: 16px; + border: 1px solid rgba(0, 0, 0, 0.1); + border-radius: 12px; + font-size: 1rem; + transition: all 0.2s ease; + background: rgba(255, 255, 255, 0.8); + font-family: inherit; + backdrop-filter: blur(10px); +} + +.form-input:focus { + outline: none; + border-color: #007AFF; + background: rgba(255, 255, 255, 0.95); + box-shadow: 0 0 0 4px rgba(0, 122, 255, 0.1); +} + +.textarea { + resize: vertical; + min-height: 120px; +} + +.select { + cursor: pointer; + appearance: none; + background-image: url('data:image/svg+xml;charset=US-ASCII,'); + background-repeat: no-repeat; + background-position: right 15px center; + background-size: 12px; + padding-right: 40px; +} + +/* 按钮样式 - iOS风格 */ +.btn { + width: 100%; + padding: 16px; + background: #007AFF; + color: white; + border: none; + border-radius: 12px; + font-size: 1.0625rem; + font-weight: 600; + cursor: pointer; + transition: all 0.2s ease; + margin-bottom: 24px; + box-shadow: 0 2px 8px rgba(0, 122, 255, 0.25); +} + +.btn:hover { + background: #0056CC; + transform: translateY(-1px); + box-shadow: 0 4px 16px rgba(0, 122, 255, 0.35); +} + +.btn:active { + transform: translateY(0); + background: #004499; +} + +.btn:disabled { + opacity: 0.5; + cursor: not-allowed; + transform: none; + background: #86868B; +} + +/* 结果区域样式 - iOS风格 */ +.result-section { + margin-top: 32px; +} + +.result-title { + font-size: 1.25rem; + color: #1D1D1F; + margin-bottom: 16px; + text-align: center; + font-weight: 600; +} + +.loading { + display: none; + text-align: center; + color: #007AFF; + font-style: normal; + padding: 24px; + font-weight: 500; +} + +.translation-container { + background: rgba(255, 255, 255, 0.6); + border: 1px solid rgba(0, 0, 0, 0.08); + border-radius: 16px; + padding: 24px; + min-height: 150px; + backdrop-filter: blur(10px); +} + +.placeholder { + text-align: center; + color: #86868B; + font-style: normal; + padding: 40px 20px; + font-weight: 400; +} + +/* 翻译结果样式 */ +.translation-result { + animation: fadeIn 0.3s ease; +} + +.detected-language { + background: rgba(52, 199, 89, 0.1); + border: 1px solid rgba(52, 199, 89, 0.2); + border-radius: 12px; + padding: 12px 16px; + margin-bottom: 16px; + font-size: 0.9375rem; +} + +.detected-language .label { + font-weight: 600; + color: #34C759; + margin-right: 8px; +} + +.detected-language .value { + color: #1D1D1F; +} + +.main-translation { + background: rgba(255, 255, 255, 0.9); + border: 1px solid rgba(0, 0, 0, 0.06); + border-radius: 12px; + padding: 20px; + margin-bottom: 16px; + position: relative; +} + +.translation-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 12px; +} + +.translation-header .label { + font-weight: 600; + color: #1D1D1F; + font-size: 1rem; +} + +.translation-text { + font-size: 1.125rem; + color: #1D1D1F; + line-height: 1.6; + font-weight: 500; +} + +.pronunciation { + background: rgba(255, 149, 0, 0.1); + border: 1px solid rgba(255, 149, 0, 0.2); + border-radius: 12px; + padding: 12px 16px; + margin-bottom: 16px; + font-size: 0.9375rem; +} + +.pronunciation .label { + font-weight: 600; + color: #FF9500; + margin-right: 8px; +} + +.pronunciation .value { + color: #1D1D1F; + font-family: 'SF Mono', 'Monaco', 'Consolas', 'Courier New', monospace; +} + +.alternatives { + background: rgba(255, 255, 255, 0.8); + border: 1px solid rgba(0, 0, 0, 0.06); + border-radius: 12px; + padding: 16px; + margin-bottom: 16px; +} + +.alternatives-title { + font-weight: 600; + color: #1D1D1F; + margin-bottom: 12px; + font-size: 1rem; +} + +.alternative-item { + display: flex; + justify-content: space-between; + align-items: center; + padding: 8px 12px; + margin-bottom: 8px; + background: rgba(255, 255, 255, 0.6); + border-radius: 8px; + transition: all 0.2s ease; +} + +.alternative-item:hover { + background: rgba(255, 255, 255, 0.9); +} + +.alternative-item:last-child { + margin-bottom: 0; +} + +.alternative-text { + color: #1D1D1F; + font-size: 1rem; +} + +.explanation { + background: rgba(0, 122, 255, 0.1); + border: 1px solid rgba(0, 122, 255, 0.2); + border-radius: 12px; + padding: 16px; +} + +.explanation .label { + font-weight: 600; + color: #007AFF; + margin-bottom: 8px; + display: block; +} + +.explanation-text { + color: #1D1D1F; + line-height: 1.6; + font-size: 0.9375rem; +} + +/* 复制按钮样式 */ +.copy-btn { + background: #007AFF; + color: white; + border: none; + border-radius: 8px; + padding: 8px 16px; + font-size: 0.8125rem; + font-weight: 600; + cursor: pointer; + transition: all 0.2s ease; + box-shadow: 0 2px 4px rgba(0, 122, 255, 0.25); +} + +.copy-btn:hover { + background: #0056CC; + transform: translateY(-1px); +} + +.copy-btn-small { + background: #007AFF; + color: white; + border: none; + border-radius: 6px; + padding: 4px 8px; + font-size: 0.75rem; + font-weight: 600; + cursor: pointer; + transition: all 0.2s ease; + box-shadow: 0 1px 2px rgba(0, 122, 255, 0.25); +} + +.copy-btn-small:hover { + background: #0056CC; + transform: translateY(-1px); +} + +/* 错误样式 - iOS风格 */ +.error { + color: #FF3B30; + background: rgba(255, 59, 48, 0.1); + border: 1px solid rgba(255, 59, 48, 0.2); + padding: 16px; + border-radius: 12px; + margin-top: 16px; + font-weight: 500; + backdrop-filter: blur(10px); +} + +/* 成功提示 - iOS风格 */ +.success-toast { + position: fixed; + top: 20px; + right: 20px; + background: #34C759; + color: white; + padding: 12px 20px; + border-radius: 12px; + box-shadow: 0 8px 24px rgba(52, 199, 89, 0.3); + z-index: 1000; + opacity: 0; + transform: translateX(100%); + transition: all 0.3s ease; + font-weight: 600; + backdrop-filter: blur(20px); +} + +.success-toast.show { + opacity: 1; + transform: translateX(0); +} + +/* 响应式设计 */ +@media (max-width: 768px) { + body { + padding: 10px; + } + + .container { + padding: 20px; + margin: 10px; + } + + .title { + font-size: 2rem; + } + + .form-input { + padding: 12px; + } + + .btn { + padding: 12px; + } + + .translation-container { + padding: 15px; + } + + .main-translation { + padding: 15px; + } + + .translation-header { + flex-direction: column; + align-items: flex-start; + gap: 8px; + } + + .copy-btn { + align-self: flex-end; + } + + .alternative-item { + flex-direction: column; + align-items: flex-start; + gap: 8px; + } + + .copy-btn-small { + align-self: flex-end; + } +} + +@media (max-width: 480px) { + .title { + font-size: 1.8rem; + letter-spacing: 1px; + } + + .container { + padding: 15px; + } + + .form-input { + padding: 10px; + } + + .main-translation { + padding: 12px; + } + + .translation-text { + font-size: 1rem; + } + + .alternative-text { + font-size: 0.9375rem; + } +} + +/* 动画效果 */ +@keyframes fadeIn { + from { + opacity: 0; + transform: translateY(10px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.translation-result { + animation: fadeIn 0.3s ease; +} + +/* 加载动画 */ +@keyframes pulse { + 0%, 100% { + opacity: 1; + } + 50% { + opacity: 0.5; + } +} + +.loading { + animation: pulse 1.5s ease-in-out infinite; +} \ No newline at end of file diff --git a/InfoGenie-frontend/public/aimodelapp/API测试页面.html b/InfoGenie-frontend/public/aimodelapp/API测试页面.html new file mode 100644 index 00000000..19ff3b18 --- /dev/null +++ b/InfoGenie-frontend/public/aimodelapp/API测试页面.html @@ -0,0 +1,228 @@ + + + + + + API超时修复测试 + + + +
+

🔧 API超时修复测试

+ +
+

🎭 表情制作器API测试

+ + + +
+
+ +
+

📝 变量命名API测试

+ + +
+
+
+ + + + \ No newline at end of file diff --git a/frontend/public/aimodelapp/生成要求.txt b/InfoGenie-frontend/public/aimodelapp/生成要求.txt old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/aimodelapp/生成要求.txt rename to InfoGenie-frontend/public/aimodelapp/生成要求.txt diff --git a/InfoGenie-frontend/public/assets/logo.png b/InfoGenie-frontend/public/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4c81f1ac13dc22e819d97a04b8c6615ca11f4812 GIT binary patch literal 872777 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 _EqIqD+wMj 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

o7nA zp9;4aE6fZ;Na~xyj10_(G+b|YU;gS>f^_%(Jp{0p)`K1Qclo%F0Qpz_|Sm0gGsb>Ej`_-AgNuxlM93 z6Rq2^7dnJJ92O?KMdBFCZp zP6WU?Mlpy)=$-!o2L1tzf>-NAhybj~gw#cRkWtC_TlB<*t&nrqfmS#w!9sx8*}Uy) zci4S73W1bv1?g1LGREw8yVKK?&3g6ukA8UX-d&_{`I66qnQ86I2=hJkrH7-$z6Nb8 z$8vst@zX#0>EHd`-|zQhoREu5T625vv#Ho5rd8^51R4xbX&Te&=G?Dv*>r2d7Rxuy z?skigHkqt1?20+mUi#Z}PtAhKNLGB*?^E6xQ;oWIy`Hb=C&{#EN@D>4B<|^nH3R_T zI2uD=eDTF*yOF1B`n6+VYRxxx_6oc!8_Ht*J-$+IPNQy`8j$6Y{i_837k#F%L_SY(g$R)-!>+PxTLoo4-I`ItnexP9QsTbmM9-2w0HgvWP>Z~au9!~$n{wqES51(a z-Zw+QnFQ^|I$m)%out-M0tcJCK8Aqq62s@DxcpNOf`Su$RUVY{A{2YMC-QF6@ zPG{NyIx-*iHL=M4XgQ_QZ7xKWdtkQgKiN2)(m&R85!0q7IJAWDkWEcju zq*z&N4Sw|D2k*W2?l2gnut=78wmO!>n~LjFoL_dRhoOU6oO6P}PX6Ja{^<|@@Tbq8 zKUcTvF1ZF0puNru-SM=VZ8cCjq+Bg1sEN{&Ai0OB0#0rb)eb!wK269Mn&cH=3+mN7 zoJWDh*0OFmGgDVj(v3Tql{-;DEW#)2oZX3-?)W+93>v+|>EitS```cgt+(GYhJwRk zLeNQwo;yn6l#nCNafQ2Aox?RaG+~3*`b9zfMdwT^JwqS#%&@ToAZ|9BUw!@S-F_Pn zKoxKkrSpht)+5JqA z0LkC(ixf7A2ua;33m}p)`_UO|*PHcfSnamEo0}~n0Rl5aqfHYDaA*K7M1NN610!+` ze>S~`+$Lc0v0EnOla?Sqn=MttuVcMW`KrJk8veT?k~%fZe4R{pQe>Bk2Xcir>e6nO z2(8Kn-}N&`C484On}xHaXU9|k%R`j6Bc7{_WbPW z)#cUIK&{Y}pCJ?~D4C;@r<3-hC zH2}aLBU1nBFLOeEY;3cLg>8L{#7Va9%M#$l(V+&n0}>Ll1Ch;oeRg*GFTVKVz{UCHzyH%e{qz6y=Qq0@J0YU{uAKJpS`?l1 z^t9YunoatWmxn3ZGexu{$)Tzp3`y3E{}(8cy)J3q`{0vkS`Z(O!xGahUiu%AeHK>{ z2}4e6uHF*Ck?1`cQMVr==8D=Bt0%#lJ_+>x?O_<=Iaue$yLZn%`Q+ox=ERMT3=tta zcFqMu+!R|WAkVm1ufH!fVg2V3i&YR2V+;!r!g{m0JimDM{Q2niqDO+eg)S|SqTZ02qd0zu&LdYv&xZ zoSvKjfOGEV=4QLSAtGySIxR0xA{`ol=c+tQiK8au2RZf#R!M2QVCb4JOP`t(^4a1m zI1TINNdl*%e!-zB0=6e@vKZA@fBiLwF5;-o|Q4kX#`yhSb!A51X59(02B=t<;5zp{|?3^>k5TLjbLC6vSIA9?IWZj4W zc6+@&e|B!|aC&-528a;-3Ob-(!sZV?fQSeni2w)*6N z472Jm;G=rc)~8rm5&%RX1TIHM0Dx@6DWluc8Prm09%`?J%(DdeEyA2AsDengh>qd9 zI6oUlHElo^5q2Of3?L4KQA9upL{JPMfDl1o2S5nNV}JmJysbGnapFB589_s2?P_JL z6&9yP<^}=XZoCWKlKmO?5civg8ETZQn5g{_S zsBc}b<&rrKGe%o8Uk>)8g>`YvMQ3Qkr~G^$La88F?kf$kJFMO zmT8V9dq(YBNh3^jj}!rq_x}?XW^ryr5liG)0Ki)7oQwVA zSOiiEM2?*iZ8fURW^LB4-e+i*h5b+$QD+1wCkAQ8UhR5l6j2AOT!Ebo(Q7zGT1eJ2 z)3!*nh`%Gm10=-tdQC)^mzVqfD3X;G=QBj49V)BE5^hOv*v?KPXFo&=XFeNK2n;9N zThv=*vObF;Bqg?o$tEK;OOe(+)d!2u_QqRm6H5y>D*N9=!bn?hA{u@RkZBR>u$=cu zPIH@#EDb0=s$BF;M~a%ly&dUv*Vpg;#>pgLcJe&EM?{Ge9jg1lvohm=Z1MF}ViPuT zu7!W$sX;;2o2z|hm#}O(0LHGh;=Mx}!y#@dj2wt`jK`#jh zL?Ckey|n{7A;I0qj~<^phO@hy)yZJYAi@R>iVzY42#^RM83kzx*g0b`nf@!eRCi)w z@Vn#!EZ|t{EZ#_*Z#bWlF?7c==(uj4Mg}Ih< zNRo?sGPxtDGl>*?QIq8W0Dz}!%>f|W;|X47bvvAe9fN?d6K2q34z$zy=Ua@XL;R%AC>Aurk&f5o8c2dm;p39`__}GuX3};gx%*H`@yq2Y@U{ zgv??H1Q^lVn}LWSLx`*z)zlG`2)eN@Y3Hw7d|?|k)1;!HjxBn0EsE#i_ppj0sH^H@ z`7#5l4Z(-Dg%`4{hCvB?ve|t8#ph?Ir`8&p46rE5pRiDJMCj?~HRei(R1b-h7yNB7EfF@q&G< zfK#(dP5gP3nl>Fhw3}b*?DI=7^~Zu^m(wStpIo&y36i{G`~($)HPJ&vVYb$uoSba8 z+wFF1t-Zd!(p_{-qrBZ&YAFk9RU;GSMd@jcFh8(22Qvp>q@S;EE2PPe(^Q%W&7|*z zdWXDSSD4O7FD`f%WWep%Y*WKEX;4>ig4?F>!G=Cq#1d|aNF;Ei{FH~~mQZyr>?pD` zc+OX0o*U;WFmHX(TQ6>KMnj;bkcARRVUF%oSt1Ytvh3jb<@Rd3J->K`qfsY@aDO3An;Ig_y0k|kf}+YR25hn$%LC5fs{(>Ft&Ks- znOf;$<0+|oL6$lk#piXhgBg$QLAT2|U%UFXIY>g#_?33yfAVW{EX)pcX@yxp5Ji9y zgbZ4OC=IArp~v zPFHd@nRAXogyHh)`X@jB$v^zVKkarSA_CHWzYn0M(M?NlZj~1c;+bC8v0SL>yl}#j zmVRrI6#!*0CkjjUJ$*P>^fV#wb)@nmMu8UfAp~!!m8Fd0su^b1Y0B477Dk{RbenzW zLz5{XCuodmF67TX%Wiu!tcFj%|H=JV?h}&Zaj-^2!s*ToSn*{EOQpz1bmNv|57lGC za^?=JgLPTLtcRvZ7_6c7YW?MxU+rtZRMr3hAOJ~3K~%>PA@pr)ljJ2eiaO3<(2HF{ z0WEf(mu3WI%1%AL>b))jdoZ@<+MJWSxE-WwNaGFRnv9pf>eVcMudez*JpDKwgH-cA zW5?0mzyHd1d-Lqsv(>N~M`x^|pqs`U(MtSVldCFpW=g3!zsNEJC+yy5 zNup$%Z=gD=SWzxY_pjAX_@pr&?krftFJhN}PSI=Ung*IytHz92fmQmY6&v)7?zBhu%`sO5B*_7%Sl@wgBB=Z zog@E)8XN{9aHJD&W)Kwh+#dLb5raj9=$@oE z;t>$>2Jg(G9=BLn00l+AQ_h~4y97W4L_!eqx2$<%<+!nx_K8RYS#bYFv(;wWqL*MM z(+jX)o39S!Y3t~XFM6UNj5T359)V@@*C9Y0d_aA61s#5LgnfFJ}!WXKRW*$a%;;JClB28qP@$v-&U}31i+ikFAD0F&pP3@+rtOpS|ay@s6h)%&G;eI#%KmYKLzx#Xt_Wa_) zIc5elq!zCLAn9@>05&&V>w>b0WTTEgRjZCoYRvI}8WSc1?NG756!`w5oJJgCayHEDWpF`s(WP@#80eG>#)8s%I57S*Moi zZ!Lp*mFmSFCIU9F@Aa1X(wiBZUluk^-Qov$xI=-O{|kg?ckSk3?Biq4I z=U_|D_%e@0vSVuC;-eNs2+?mjm*#D zf@3X?8|7**sEzL3)y2zn<6)0!ei!fu?{pn?z9N!01%fpYP51q4#h7$GhD|8xtKnf=*vXVABs=-uN02yBc26hYRe^QR-G z34?M25f~8*Y>@_I2eKAfH{TibxC6WOVDH{Nd*hAQ&Q90QpI?m5A)0Yy-4yp&3y?9W z%3e}Oe>}tclW#Y{{A=-X$@nz`=U_og!oec)F~NVkeYv?zp0cx8YmC89KKb6e@4SP= z)U`-`ITP~U_huJO;+U<6P12Z#7V!`1d z6_TMI(6iTkmR#WGQ|7zSJ#IOCGPkDRyoQ72haUX-F4l`R?|%2=?BGdw4r_{mI`R3o z3{arh<)pMwpR@3CmR5n~*!KttK#Vc#&B?ER_4W156#yDz#{C%ek@Vb%$3MA+^(b?c z1&U|LTgFa}j!;z~!4R-negBLA02Ge*mOn`zl3!Cxop1NK!QfED ze5e`U*DL;dWpxV78*46Q7kcaSy!CSV>W@ZC?4fzX_3&wQ6U3uW*dGUcCbZZSb>el1 zTO#n(v@b@*WKdE@2ktgI`=9FYfQS^<+$gnPiOI4rG36nB;3!c83vI+&`N9JMU_wzf zA|?^^$IeNJh*>Rv(Xkl2aco8>PoF>AkM7RBJ7k7oy%JG3*I(G!{M1X+eRLZwa#mN{tnfeI>KY(KJ^rny_wR#tcMwnfV>j1m9AuLLE z6#P_%ACp%OCh3HC&KXF0lAj75294?0^}>2@9b&hahl>>U~}B zE63?jx*w7N!2qa(HVZO<5R$QW1;#Ll9)S=dA|nFKdqj8d{@Lbqv%A?|TwEDzg!TS2 z5^*AWm!5Kw0YLGK3`z|(B`M`Vlb%fqA8djpf-ddpi+NxU&VktKz}GDcO?V^yYmGsW z2M=EP?6*F>b9U-Y7W7^PT`!wNvF19i^qS@~ntU(8JpB0)YGJ?Ap@)M%ER}NG-R|qJ zzxkhj=XV}IezM>1(GGw(?i~Pzu7HKpmR=D#mIUz)(g+WCrDaa z1%FymGsYsKbG+W1+}vD$^YEdrM2o;M4BP$A7?W)v`CbVT@{*CD2ulZsjL{a2HwXFl z7TCUEI7-?UeI)%-hd`k2LSs_I99e40_`ks%orn-&9LLvRd;Q6iC(e!PFgf+) zhbcp8ab+jU9@JxMcVgM8T}9On8CzV@MgQnQeFBcz_Xw=N=`p3LVb&?L>(CbAoQbdb zlS(sRLdKG5k6ycYNfYv8L%|M3FQ^mG!0Dx#$damw%Vb*d7b*rwU$dyi_@UMP9X(N2czNQBo)}3@Aw-<$uC%CMJ`v}b9XrR&IG7!mQadc=JCf&PF+;sxC|nlaX{$XZr|dLZFZgprsK?wp;y^X@xmXQz)JJ>D}j z10fO_Ve#+)yze+H=~GO|dwu^PJ?F&Bt)$aYVTrs7FIh~TU}kod1I>WPY7!t3eDcZ1 z@4WLJLu4(2aN?CV-DzuU!Uu}YWnIL1rrXx(UnDG)2~kWD5wpL{f*Jno|M)-u*Z=K* zAIDK7+%KVbTLv4YCM(wcI(2S`FsXde;;+Q#Wzg9}0x0y`ISY{`>SuprFQrCvuI(q} zOZpf@wH3jyH1zT$XrVU=n*3b)SMbjV3k{!o_)Wibf!9p~%>&Q7N#RMId6-MV7SDl#<98!^|RL3>jnAtJT@r+2z&c&CQMa z8qn!FBvL!atx>h)J47$mP>G$G1w*gzO~~__PC=?EVh4@9APty_Qd`G%R%{?uf@^Gh)yZp-#73vW1%0pt*qHf;Ht!(%&lvh+S(_}9G~z7! zX$bdqq4%bEe zCDS;H5DL*Jo#&l{JKp2u0mJ01y&k+z3@Ob(ltT^n2qG zAHNIg7ywv;Ej0KOIdMEsNHNjYPvL^vMbW3WcpV~YIavK|(y*rI!H_3gYRNqFrOwn# z*;%|>HouD02;1NQAgX;SwLvK>QJ*CcK=E9nD=VT6#lkGYUe{AW2#n|u5t#H&G+n6_ zl*u>{bpEZ@6(f)%WMc=%!hk|Xkc?RwvH;-RI1I)Z!=nR2OK|tz*?aH3_w@XF&%ED{ zS|fkE(6_uIo1kcn%@ilxv&`LBw!B zxeE4a>PSQ)fC4w$n}7X3{;SiI4UvhaMBcav5ukhfTCWNR6U?Vy7!LOEDzqo$M3a3B z0E&pU1AtgNT;FV;K7BHdPK3wNku?B-#lVb#{x7CLAEqj0Y*X;<{J`@fqt3C}i=Nn& zJ88-&SZlSWrb&@EkMh@^6*x3;Y(nd?lYV3o=bW{ch{kb03}4w*Vk7n`X$_y z)-18EOI9vU$!cE8ni7+Gg7>Y&2nf*pONc_4nOC(iX%VU~I*+Vf$`Z#wZWPsOdMp#o z!0%7Ui~iE%z+Ub8C}nEdJj`~k|6ZXxaEAY9Yg&ZHE@G+>NZBQ`0%z61W_uMR#SZ0f zZMxM=U$V+m0Z!4RqD7M8aJKqq0KTjJpNz(J!#5P>A@Lx7Sc%%l(y!K6e^D@x?yL%aaa z!vqX6jq)xzv;0vL|4=JPl;=&Dy_PyYs?CsxO*KAKi5rhea0Fl5bJD{)#_#rba93cb7og3s)H`E6}0x))155vld zBc$DKr|#eoVI23C&=`5^t+#n}H`f<>I9C`2^~}0rS$4oUA)gnXheT@`dW_T*)bl`I zJWZAoQ&u^USE}nC6KEM&Ra{AUy&m3w@7?#l`|dCpA{61(Fu0L}HE~LWR9`Al?GdV3 z-}#nGt5a8S9zsKq&I*SJP<(gr20q4^=g*)2Uw`|5|Kuk>-H)R>TOeZ-TPJ`@dX;linTVSX5q$JuB225G8fU z$VZ42X7Rf6%7~=13j}$7{_LXOD}f^ar_#BV zZ`!-6fv0uP&`7SeAX0T1$=K7Av(;+#=;0&va<|S4;R1;E zutbwl6apZ{O;~lXsuvm|#?9IIH^`~Zp>q(?tuVg^2S6Yqgk%s2^atTVqagi%!}gE&DzNbyPclO;;+{D+8sUvW|zQ7f!{Dt-@**!UGxPx&_OzB5y_B+-OPN)U|I z@bj7IVK~+z1WsIXr@u;4{U!p2-Ks*ezDgN;R{A9pKgt6LC}p@oCRien zq92vrD&=_yeOMVOBu*8M=$C;)w^7c`#cRT-ib+nZ5>G$#o-+Fp8MM|OAp$_4z|koF zPBhV-E)hY}@kaoFnE(iA0I`psUtC@9?0S9Y?j36k0$UIwgn`H(#bP6*Qixgfa_LB5 z0Ti&JMXT|%dTnO`5qAE6(CcXuVVN$Z#tvkN{6$*6DbcrPIJ@j=t3~S$FHVf1=Ux2} zk?=ymw&7+#x3~)FnzCsNS48)3;Aew_+C${{E1i|S+of5r_)s>BK zd6=N8m=Ng3EX+mMZH`tYPOk~pAF(UX|j4v2h^Ae>9QW-u4%Ko$V+Q{9ps-OiBt;g5dn?DUM8 zm7#<751M#J=-}*}t?q=q`YthUf5{;!EjDZT3&LWJ6_BsK`ig*}EEg3MHQZlXGLI^V`9Tl4LS4mZfV+j4_AbQQvEVP**e3(Y5MYP2- znf@iD^?EZ5_Uo^|Hin4ExzQLKXNFTq?)+;O9a2$|2C7EEC}yw(6~AYHXR1||rHKu+ zSLmgMGV1iZpka%YNipf>Jd%UmViBI5mOeC4#pb(JDm~_XuO0) z&tmeKH&{?>vO+UyP`oxlK{Bcq-w%gO!c+2GBBP;u3?!W+CGFTmqvkP0#EQ}}Rzwmr zw631zwCjbss7Wvb3euye&#tboht>LIJ*-y4V2vRJ0s*$htcF2Y+&ChlHHQ7tTPz~< zTQzm|E4?TpDB-?qB=Gj`S{*862I+NHVYeLpx`R)mNgLy17zYcYL8V7QtFZvU`|Bpe zuzoYs9EYJDO4DQ4Ub2N;S_{B-_T=CzfZuiw9?OH`?3Yw@y@>@F#F2o20}NZ}D5xGt zMD&!R{5R^}^jnr2xettAAhYV;`*tqP^|9HlCRUyc2|{w*&s~wNJt4PU`w>^JKVi{^Ty4akDoj<-TM6EqBFhFmPp;?urq7F zs{tA>AC2uz+d3U7fH)J)NA?*?PKejOZ8s6aO4`|pOLfr{ncbO6sw7&gGls}7Ft1iC zQu*Kq-+SksxB9+wGe#FbytU2VLVkAWbpI~dPScn({gn3CL^sy@H2qqteJ=tO7ATUL zpgTEe+#Wca?RNWDfAv@Y>UaP3<;B*9n17!U?H|sY)1e$*o$>{T0>^eI4Iv&X}GYuG*8M) z3wdCM3CEX(&ZS*SYG>_Pr6n2#N^=ZZ7IglCT6bOd{Kaz@i9ke*U%p9d ztc^xvb(8(?k-^fJlhxKKS*iqIk|srh_5zSjPGqvcnh&vImYmRyTbQI}8O11u5rriA zwcF&&jFw%-C$;w(jf+2Eis5WUB`2rZC10!l_R}>qx=*`y2;n7KXZT@Sq)PYj9zI5R zc;306kPWyzg;_%bS{JC;SDwusv+Sj;Ci~=N<{f*jl5n9RWp^-Gg-ET~uJ6yzFTei! zi7MT>edp+SZSD4`2V@W>t727Qm>GlJQuOTrDHsr_kP6`aN7M&&6Ct%OcDIs{mEaww zBvIJ?5E_&Qf(aXbF%aU%xsSn7KD2srEtY#Zg_9=l4wmv*5Zoq1AD|K&WpkCgv(&<> zvuq9RG@+74S3R#4-Sg<2ETS&liMS_GB1m-Rfr3ayT=YLChKo=I1V26{2w42tbtdDz z&W(X#(=i)nRw64_Vcp8C%w zefyTH)Xl?pZgG`gF_&_D+R(-cd9{`q1hO<|6?=itC*&^BkE?yV9bUY6@o)dH-~Y@1 z@?QaCRii6=grD(1eD-S@#fUInIQB*xGy7=vwT0K>mDW{$(*O!zvvk-bsofiuS16~& z{=K>X{s&Q;*Dyl;aYBv>DGPM=RNP^7LGEh-sxANTJ1_tvoJl_?f-&W!N%0vs=8%EH z))tG{+qZ82;0M39TJ_U4r@WQ}QmtxD-(M5{byI`koL4ykoiPu-c%UR|h5V&E)v~*F zU%5+@W!MSfnt3vs&kRV_ab-qN@0V(YbaJ6f1-IqZwaTWtwPj#cey{AVkd!q&JZX*33&xnvtm^$$jC{-b zlQI?RhT^vOO^a!BxQiLN_IdB|Vod+kvvDFibUa_0(mm~+q}o@X0QLJ_s~lM3P&&H% z;tjp0jYV6kGkK+H{-Hr~)ZnK$D9A64yPL|PZuTssFr5_=<;%;>^A~4ZyIma}uT~w& zwlmD8V`erCR#ofwPW?UPZi`X@VNwdQwcT2STXt3r({oZ0ozjQnnzAz_+_qBu3c!1l zfk=tj``nY)EU~919XFDz=!Gg}#)sya+rwpTT6QsK?pg1St}hHZ_isEgf!w+u3#zD_ zwz=gM=gRKS1gVfxnCkkOyjvl4_pSlqyk+EDWg=!6pm&EK-N^@6jgYQZX0R8X!Ft`l z{_4FiKL5&DP@*IX6|-8cMTDTn_|+ez6ieDL-603LlMcIpffD1t zMByGBRf6GRuz&Y=fA=r`I=FCbdGxL>kVtaN=WXtPX2tJ1kK1wIul%Qr@F_4yrf8UN%|=mZj@j}MDb`- zF~%o-Q*_fZ9weI9SV9g*PREn=HT9J;Rl&58k|_Ub+viDIBFe7BufX1TNR?*#`Pi~Q z%>KDLyo?jVRa;5*%k+OH+GEG1o=QGzIQKR^T~g_5&8zTRB?WF?QziVLe&rBF9J-@d zeGxcU-EqXPb7E0YgKrLza`aPy5c42J#8#NQwYB>2@srcD%afCnqodV&)q@Q{eaEC~ zWiZC5n{g@mZF2Q7A)J46Kt!XZ>m#j;j}E2YrQN%?_%(fRqU7UCIDDgE4k9$V+5`hO zsACFy_ufD&C2z`K(+n*l&U4q!v{&&=@4YPeRduQ)RH#p9TPpcUGWlt_RS_Z;u^v20GeO>ZhOsbJwb+(Mwrw6~`KyjiS<_>Y zWSk;k{|WiaO3hk|56~ICI!?%wq^jyqI~POn1TrRM3i^JUVOCg5wBo&*MRilVp*Hcz zCh9X=J>j`NA+I7bZ)t%U?NB9hmTk$5dSMsL zh}cZOC;9Rs83K{EB_$Uk*+Oh#k&GwD;-v-v12AlcVdy&3b)AU3{`%_=A3h`^cjIM= zPZKL=kuG*K199c$GRjvmNxOiVBWqJI4l3YEn3zYSRQgSP>zPUbiEf|Pdx(L4FxTx) zUg-bn6y1V!KudSJXpWzX4dRrxds(aGt(r{IcN7>?vQ-j!o)UXEE1Gp$%#$ALXmxBU zo2b0hGTQ`#f2-^##LnCmcj#*X03ZNKL_t)B5*WP*z&&6tH+I#O<3HB*bxD7R>jH3oZP2}RhQS2ta_!f0_)I}NcI<~-X4vg2qsE3wl zk{F=EEpfCh<9Uj;(gEy!Fz|&1cV?>+A-b$1{G65;DHA@q(+5_>l8S+>Zd*A!8=%+-gBO#)6 zr&NZfedc9(x{ER+-gU0!yd#4#ovY3&kjV5c-{7?DbSYu-Dl3)BQuvn&6a9!V|pV=|O17xn`L zaAA>>si-lsR13}+iq#^8*GU{mB+iKfU?C#!v@QdwiVSKc7=_|_+@JS%&g(9mf{8N- zzXHGrjL-hQH5g?BHl69gP+TPy|x!8EYDo#+;=J-;7opv&`99o;4^p3@4oZ)umAcFP3MlL)MpcW zVOtIa;b(K-y8u|pxyYp1FQs$35%@5;hzV@1{gYq*@)v*f$Aic)4CJqxTADBoSCRen zFO$(VE>dRGiAj+(vPn9wl>9$^v)6{`j?@&G;?KQqOeM^F-}{jAm6bG00Y6pcsC+81 zn^Bjw1~e2XRfZ4*qc&Y&o~bCWG@*{~{)TOlrfdS{ksBu=1i%L*v=*S#7pHH%`PTQo z_dRAX8%!&0)iTqHIu5^@sX8YiVi;x?)voWJeEs-pvk|LA;ck{?cEFP6r%%lbPW-uJMi8(uHc{0WHxYDnSb)4 zSuTa|U3N1PmFu|SxjvAz?|0oHbo-_yf_yO8<*5ayI>BCIJ7z`FO92)YYz?QS!JUkx zEzzJFom+G$OO*wQC^aavMvcV_)iE<6ucDVu$lVo~8G1P&bw{{CL;@(_{pCdgVm1K8 z9W5nei7&3UPoBQmZ0*tdWVPx#Hl2YF4~H=PBTTLkcBB&qP(N3KeEhG>~QwwK~Wv3zdUxCW^Pfe(H%>&l||;I>E$9&=Bc(C@DuX% zYw%PLKScsJi>fC^+!Gi~bwTw=Z<=rag^%du^G+!SX+l~S$ zwzb#AgnU-&)lme_AeD1xz4SHn4VJ@bSrwM-LyJpPg;(7EDZ#Vc^aXDZn#$ zE?ghYl+nRlzdj9iq;6h(>$ZkCP~wWtbJZ9b#57t$n!oFy9Nnvx@oaTzge ze6qiB+&%ZJ{?%9RJ$?GrT5GL!^FU@JRvbpL7hEjd7`;D5Y1}*tf9elHB^qyeYN;`< zblF%WZE8tO&?qo_9Hh=)Ot1J&aY)1=IoUW~$vzJMX^%_9EU&G`wEp)Y+ZYF?CCpi& z$YOq8j>FDMMIzT5^$Fc%}+)%ED1u9o~LjW?Oq<>47$Wo_8P{{QOPor;+8ODbc zj%b{qXQj%jBlQ$+oC5Vcu+YBdvg}IwThnv*N zi{Yre+;(gD^R0E0_c-eM9dwL=Y%`Kp-;~cw(vs}gk+_KMLL^IxOFN>CRkA=Ct|0Jc zOybra4kxOLsE~>dA|x*C`k*R87EEl|m14u>4w!qZm4iHL2s5FM7l}v+K*#97tIqUR zWU$s>ac&1=2g7xE{T_o&r z6*7tMGihMU*h;HJ{e89E0a^%q{w+qpk!QL?9#%t=enr+WS1cZ(X>{uNGCS8@ea;&^ zO>q)Fc6PeHf=RYm_o7PEc5$W4QwdI)K1VsNg2BuxN<@ayb^T^@wcT#-zx(cc@4W}G zF>LKXL|xapg||8#UUphU{BNe-pb7!NFpG#4>HA(px0|cmckVp+;=y1o0Dq&WF=5o3 zQ&LNGN~_>rIn!ENmA1f^`f26fDp^zA zUPUt`EeDwvd;F897Cyf^7`k-0;AgDfHmfE-yytALaAuTJOFN}sOU=+~)O;=J>2a^A zv>uFo25bZv;7k?>67(GZj}{7|xuWD;{RyIe6Va_E@GxveiOu@#{OYTRkCpK1EBB6% z*D3=W1_*|j-NoS~DwKB7L2w=Q1apAIoTnvxNlDw(sdz|i?Hq-d)11F$d*(HUnf$V1S7y5kkem#?vU@D7MOMW!JD>aG9iyFGDFiqGR-(UM=sE?Ebh|W8Mct7 zy){CcJWLJB`4MHNBcsB~%=h^-@Ka1YO^h*q@tc%8qiP3hLG;;ge70V#nE`S;d(Nls z+nA8QL`}CamBR0sA}p_vim>Sb9G{$AUS2$X@>HydbNF|De{PL7+}}9^|A2%>%5bih zD)a2MyOpV!7VsH_ryoX4;#z)w2(-{qE`O;Fm$ahH)*@gk9VMN!haAHAD=2XQK;Ic- z%Cu-G46Wp z>=Y1r83Cu>=13J703Qh2rDFd)08k`HM&g@8($fB&-S;i39Bh0 zxvYN|fKsZSBoF)2o*6<=@kKBZ&7*j#G`)kM_zUm%@Lh_}{vmxI*qGgw+XbPj1k4Bv zKxw=qA$;X=?y5dIJ4jev)N8o^X(|YChlp+88&x|92;J3YIJ>+Q!qJVBqN1c?RYmMz z#j0Aj!|sGfRTxAN;&4tK>?G8Q5UWCcAUNm$Kx)8-4Y*@~L{-&?8t6I@kPkl|NgK4 z@Q0oAVx=87oV|?H-1pA#ET`_Nt}8O{PStGiOI_k@54V^@1XbQ_HvivW|Ml#6iLoj%XiXyw(MT-cfy;QkcS*u z{+!B03oXTi%(d{k*jj7^?n}(gofYMbo7k2?W#$E|6LQo8vyCocs%nf8YgM)5uItRj z`NgmO+ONI&<{PTgcRe$#9gH#8V2%IZq?GI;;_i@8Rj}#0?(%AL>(;GDkG?)VJ!QkB z82p|m;)?#vvPeuzoW`%8s%$?~>CVBXDqlNsNPZ-68dOTpAxFcs1uz%*BBj}uU_0N0 zvf)7<)AwU$I}FB{uIp~yx^;ejzS(R5j8}t#GO#EmdLHe@jAe!zt(P-xPqAG>$z6G7 zRo_HIPI_=3U{jb2(lwXN7N&VFoo01t{R-(@6k>R=Ol5tYK`SAbzJ)11RW=58+?f)x z&5gMwVv~AjfKH*cq%0l*NE=5)G;v`aJ$MB!rn&~sQ1bUgf*|UgT0L$clI?KSuhzq0 zl|a0@+-x3w{q*UJ({9z@xN+n7Xl2F9)*55F&iDmpa6;{}iHKLdIy@=e(N^^y?0&1< z&)h&De^74Jkb&}!6Z|!zPUu61(XMaxMfD-gU*MmmrT1AJoc4my%8aS!l>0aHb1qMk z`%lv!fPwloBR@5F=b%&&JV{BER2ifYB4O{h%Wi8n`ek@uP_PmKMhRdJao-FK8)g+1 zD9-M#bik3Tv&KI;3P)Lus+FHUjUWNzM-=FG~Mqh5SCz$6ZG5l#TP1t35PS65fR z`@8@9U;nrNW(Rc<*GrtM!%B+Pj65bkl7G`cu!!eHra327=HuW?PA$mSs4;E3pO9D6 zj77C@;y^@`^8gF~su+h6ifEjkX}q58pf#Zh4>+Hp#Pp|x!?G<<#0fe4@zZoET~)2M z#u&entz>1`Znj;=pM3JkYSkNNA{~b9ujYh26YpyR$rYli^VMIiR)ZB)?F_G1{b22* zM_-SAeBLk$WCta#eRU+i744a)<+MVPc4k|IfMfr#PzZMs3K4vGR}aYBYtwkYX+_IP zm(jfSsr4rN1UL~W4!@+bnXH_#F`~3u_eaM^ckbRfJ$bJtBnzG8TmcCjjO#m$y-b~W=@6WHI>?1;;3*cihGfE5AyE0O0f&K^E~uHg0RxbIgm&X`~@ zI`3s3Yu8MI0OzOd+b2Y-5G4^+B^&Q4C-?yB6R&jy_lF2AHat2%BVIM_!ex*KM<7jv zp5lAN?ccDsUhk}V;$Jhv%PQN-+#1E$T>{_^EVx_5!!6#)iFa`5cM?|8;3}yzgh%gvLgWV{}YTezteec18$5)pd zA%f{J_FgicB1B3_COHg$Ha^@^f=s?pEL9vv`I+J`U7gOt&#%RH>u((!Hu&L(AH4JK zJAKy?5i_i{-~5qMC(C)Hsv1r533V zXNyz4Pt+9GoGq$?m#^Yr%s)lCVmA;?f+sCozfWw<3Oc#HGR0wh4ioYUfRvk=4M;^4 zq|cu}|M8E1{Kgxv15gzXH&j-u`=?4Xg8dTVd!Z!|k-KR6==k{2qlc$wXR1nI5g|gM z4S!Xr^itA7o3bT1F%wNKUnF8OUH#r+P%rQ9YR(zcXVxn6rbm{4x{Z?t8*`gr%FL_P z>c)*5=VxcmcYPQJO5$I5A*Gz3_r)`NU#>c%Naf2q%stt;Nl6`ROars|%#(qwD4yus z7OE*5{px5cmlokOwZ~$?y#z4Jzohs=;N|-R;7`mfRNf=Cu|k-ll3lBqmgp@_rBStC z(d^ZZ(Yf`WC@k|9u>F}^awlJy-~uj_*Q4Ziq{D?_psw#Xo2`l(V?@-72zU^jonJkB ze!3m(@$rq@w{CTvA+fzX`paq)Lp7;n9X)`1&}esuvb?Xec!+F zowxqxZ~t!4UdUgXJqf;$vOvKA^GYDiJVWa0er#D$6-Zg?`U|Xot3R&j#pj0l&TwfDx6l8>#EE8e7y(Ju$V#vM09?B@jJi!um9@*{VOXX z1Q+Q-MBMx`Jp)m&3URtEM!W?2!8p<5AR_%?NGX zGnCVM%4Sv0sI2i!i^NjgI%}O8lx?ciJj|zti{FAT!Pk$wyM^g;wJFXWL?n{1Ge+#N z*<9VcdGiN9`2Kpe0;n@QBK{4hg;jhDm=LilF`Hqq#u)bd3@}|MB99+GvDR9dtQsb` zCE?nM=v#4%&8qn3NQ7zHnK?dDHpC`*Mt7+A{0*R;;)6ya%C&R&!r|X>N8d?JQp&ed zRYk;IRbZ|3{R-f_ckY~@pSz3DR21N;TiRqYpHr{akok_NgKFryYSl^K?Lp^)Za|nS z$AiI+kXcUef9oe0CAisPTND1@V~;e!v%wKdTGvdq=<#*1>E8I*ibW>ol9tZ5Wj;@a zL)wHT=*=a!r{@_nss(4|`)9Wi8qb9Led5Ut%oOglPH>yLye>$d@xm+=lLho@fk1?$ z5hJV^gSyP`0s3v^$tNN=>!#q36O(`}NC+%o1(f}nb0!J_ftd&jLr`K^OKdt2TN(PU zV`dkIx$DTZHQzr9Ww)N=1*|9Op`mM4sXk*)CNO+k9d1VRE0=| zMAiLNw|X!(M3aW51R;Q!opw;a-90^$v%4#2S+RV%kTniu>}I8VNb#=b`;8V%r%B;@ zcVP6@AR>Y?!0J3D{oUhAAvRDvfU9aj*58mu0K1sd@OR@e2&`VhqM`;nCwKNR0ERL% z8)gQ!!-eQ()f-V!k&dbFS6@H75?YChcQr=vj_~az!1GH+fmDcQWV1zQYACv@DvQs> zxzt>ZUx!b!+7YRd<4gdKkJcZ3^wFDdywUf)ij8-?95zVLj0;&a3#+Yyd`R9ZPJx#c ztCn3(MpbuQbnF^Y8iwI-{^oCg{xAN;>5J3B+QEvo()B$Xw{uo+as#Uc!i(hJ>ihUt zrq=sb&X&jAayTh&l_aHCR2=|74VQJ_6S=>>D^{D0FA#$qCh*9Lr} zX^DJZQ}->##4q3WeLsfC21s%1_N}kJ{OW3RHEafA0Bo(TVKrg48Qr%$Pn!9F4BEbi zvCNsmsWRAdOd=mV!Bb1s3kSg9}5z%n|~z z93LOMIeFLs^pW0FHRBdvO*=wwixjPP`LA5OnNqdh(bpEZVAj_$N7OPQaha#4&*Kv0 zlu&c@d0A-@{0hq~$m#Rv+&O zL@zu{5Kg~lL(&!3-OU0$vF^=j3x)@x(@d0`@uJA+?=I7>kfti^xgz_fmZB?PW@K4ZDy}(A zCl5MN9O-cHLV{{|Ok~H;&6VKy%teHl-EhIKOWdY7lVAMt;Rao#LFd;FAIQy(-o}^X z-jG_=VKZ#Hjv)da?%cWe;Nf$nez1eHK^^MxVA9kUs0iIolD3GslgRU0cV}lEkg8P& zO2$gn5SaDNH{bm6M<1=$D<)MLx~^lU?RLxi+vm$!4nW|g{NQb-u^sLd?B~#yVmq)+ z)p;37vN6D_ehQ;JPE20LiiuZi55n%w_C!vsZIL@tc~mJnVt zpUh0i_e#zDdu)UOF!$g8fO1lfpQ+p)EFgzT^5lNG7|~Nl{T3A*LZodJpWI05LB+*; z5VXL=7YqY7W3sMOuD$uaSu^R>!Q{!cOAu<6O5eRSz7d3cpAr)TF*{u z58WF6t;ay|e8Mq5kq@Wbh-p%*w8>XV5kCMig6c?U)fPcj^#@;_8&^@CQr@ogFmg%? zpE(Yc96r&=|4U9^xEr%$6DAdnc_yS&zrzS8DDHysvJ~ssOO8%{k~9%Dw+R{4BPjvI ztRm#Jg?BzyRb>~)NJqT{74^L4fU3W0kwIj{-J=WGLDUYX=NFHjo{CxDx%X<%0$4D^ z04{#Y)`9?LAr%q=xh+&yV%O3bUXDmrSwU_GR>|F_MF!oq{UZY`3T z8DM9%1f`?O@VCl^Sta24*pq@1r98?;njlm++AqVxv$cvGz)aEh{?kE3dur_y6PXg>*AmHbyM5I`>ki%LoVto?8jxL@n&{ ze?iUFe|}onlJtatzE9JC!{=a32gXXY`Xo<_kxKQVAU1}Cz<{`Jl^Z9=|LmXr=B*ni zonep|W4u4YvO6hurmBB#;8_1FwXUnLL) z*v}t4_^qG*_W8x-`Q=6(b1GEDBs=68e77qZJ|J)$R7STak3-VS;jcmSbRyD9A>u>u zY1#G1_3^zuG`IMnmOE&Ipf~3F*Cjt8&mkuy$cN7cK5@>RN#l$Tt;4B(nz8=t)=%<2 zL7s`I>iM2=b5?b}6_3jMh~y;5Tmp%i2P+^Q?Dj`L`t^JF?%H9yUa#EE+r_M^n)X<0 zNfFLcHA7L$Bm<2ks%V5V^E^J|zeLdu!g9%gal5ML7`}V<=f=V`gU+sZP(`U{W2tZCaO?B4^`GQOAFFz z#(h^MB4uLlr4EVKw>t=|KE|7K{qc(%-dn})|+p=_uc!ZW6=@BP8?{@73B%$jZd|&bw!!n-8zAswtazQQjDrivcu+|zt5<}4A2O`94YSLct>&gpN&yrN~*g}S>*N(}{1k{X2w@)pl z+`@37$Yd~)$YT{$S!!XPR*`C+nOdkmssX^!(b3V-y6d{r(^L0VMBK3vN|!KD%ul8R zKT*8RyH138Y!jg2Z_1D3m&xvKL764uu1hi%m`%E4QT|4&50|WkMNu7%co+`9A1 z(b1~!jA1b#(-~_mfx*UU2X|Orl)}k!I8(yy^C(0~Ma6~fR#i(X;ofpm4H4-A+8}tB z_=r55;&dBn7~QfE`c=bd>P(j8GGF9fQ#r=i8Xudovz+VZ>S|?JB50XGpL2!twnN@j z6qlvxoDijVM=24BIyVM4p$S!ih>VLf!2XN@D~P-YgX=H9_yQPGFuAa%#7v}Hu>({f zmK5l^{^;n%+12wG7ou#HI@7s0TnZ(Bv34ALCTEzUr`|kycfOy2kO_DuXnEN-m;|5~ znX=#WK6POs2lc(d6)`10Xz|Mt%xef>m4nT?x`1K`9raFVXIHDq_`h-w`K&`g{mdaHi>z4% zExh+&k=d`Yk=c}{tkk~;W%=i;$Of30VvxBR72xx0R2hzTBG!KN(MNY~--%=IE{1*y zDN}{n%OuTh@hnukrC(E$*$Jnl6mx@wF=n&b-nen&^z`)d^6K*PVzA=Q*jGC=LQ62J zBXxc9W(_F;E^?WhC|^`RR7b3Rg=J@&Vf7|6PxH(JFSG4ca4rwmIl+ycecv4)A75Tx zZZ;bip1^saL>jui@glXP_;4am8j=}%$z!$N>}9JX4#sc-a27yjwie6M*I>ezr0}vu z!tp8V;8yYQwJN`=Iw95Uh!%d2y|x60)}F=;!dZqL{t@Mu>uQd+0bN7&fZ8*nWpa_h z2gY;eS*4jXN`_DPnJjcpYpKhfzaPqR%eX7;JTIL)x#@alwj`UaoL_98y*Tf?{^qS? z!^BKV)OVedb2KHR3JT|Bk_NgbRdo*S@tgA~Q+LW!0TKeSce{@#<)^w-{k$cTmWbl7 z)b)X;JRd!YCbUWzHpRBmN3&wr`Zk|h1$RpNJe;y1P??aIHPW=n1szJT8fMoTIEP&) zunWM)05Pe1_QxWETQD;jc1JYS5(w^#Y*jWSmQ)0St~dSB=bwKCv$jHFovkH+4fmy+ z5S?zE5XLs_+ckAD*-L}9tjacw;<46!dDpmqSxLY!1`It~t=@nC{qKMOd+hBB&3f}N zYP4ulW3%*`v&?B)Qg2pvVgAW`A`$CAi0aw-<)8kCKl|k`|8%e-0u{2>ss_LHdaRiW z)YMMPaog3h9iR6a`>vI9f8FB$A0@rcrRnn+)GeWD!$c5Fc_u?PS4lf?jg>WKGF3R` zJ|SoaLu3>6Rz#CDPvt#Vx}&wYFt*64fTS}RGz`P##l?Hyz5m8{zGF{5k$q(y5A1wQ5bCE4aP%;7M-K{q_WABiNa z`t|YAi5={AvmLh9IfWWy2qY?z$gLqEe-AoL2B%Fx@<&7jjwW(mB-7Cq-t)I6FS_M% zPuxH>J%2S_fu>4afq6EAZiYCK$x&)5%_(0j7XNgJN$J3imd^|Z ziN2-S7)3LB1Y)!RA|hgt!V}Il-l_t|ushE#LJ$HGZw9{F*oTiFb*uHAJGa5yF`(Lk zn25*G%*Ebj7jZis+tf=PYn+V}sRC9>HSiTwlM>{5Dh~Riu((sPNcxGCINZk`{!;EL zH2j1tdDl#ObB_MApWA6CZyc7Y#asL2v4|&aq;mySN>z0+{Rl!Lq~sP=$RB#}@$iWV zWC$StF9BhdPYr_a7P03)W`IQOR_&H(OBet-KDqt$>Di03OYmxIEq6?0$)6iHp7q@R zcxYV%{{yKvKjNo9XLlM}dY_6sb9MQSa^nfe7~`Byj@RqEcklehPkz$(9fQ~fzn_jr zbIq>TnD%%}t&JA`bhw{{!8#ySb!pm`-R%Mq#2CK3yt=%)di><+Pk;Ke2M@j+EDeM8 zn~NN$JdzscP1}`r)i~Rx`r9QPw7mBg#ZHSt|!%}PoHczTNTopim9N98kSk9 z>!pl2TZ+3`(JtA^VD3bC$!YTzV%4wJrp;rrJli~mC7ch?$KsCnqPX)vE9N z^Yin;4pF+j43>Uqs6eiNJ~ZX6D?r93&p>!t_$(KM8gEa2T?2{zkSQ6mM#Gd zVmDP15*IO+NoAa0JNI~JeL3gnSh@3B53cOwV$Y4pR+h{CgM-HD`V>*^=qxgGB#gWv zPyJ*p`Mv!)(OxL{3rigaZ5d>uigVD8!L$Kih(h3X6;e_XHwiPW0I@L)ChiCfGQ>;} zxOG2*4;V=xQW&FTy`P1OwS(GA)h$DWl)3NvrHF7?%o#W(U3R*86X#z zh9B-2UpD)=S9NKcS=XqxqBUNqS{Ku95D~>MfB9#>_{ASzUS25~Rb@5~e^mw47^C50 z)Rv|NK$LUHB<*PQ+?YOJ@|&2D@7yrUi#Ro1n~+!GOkLK|h`ADPpv46BRLnA$^_^2( zG*T;nR*Gi3q#SoMb+E^_JTwiYJicxa7jAToj$Rthqbd=RRRKd}cyapT!w)`ug%kYmyuEocXdt4a25A})@*!+u%Q=_)`GC2=(Ipwp&|-BGte;^;}4P}8X6&py*C*k zZv6F%E7^B*(=<017e6HzH(mE>bUqgfH=6|9y*>fhhqp=NZ3kZm4P*7#lj_2CQ#vhA z{+&=O(!ZR|dP?svj>~0XZ_uq$&X)ug!=}t%%321?dm^}F3eGWt1P~Cx5E#tN=!gx$ zXgpozI!j{=Bz0%PU3_XLu!_o+*h`{;Nkw^mbmRHi=K1M`B_rb9$H)f`WFi>2#w9j? z?OvND6icOPo-%2XO#Dlgc>NUgp~jKIMS1PIu3vTUy#4k^AN>eK#;{>lwJz){g%fal zArmsEuClFcEeFz|f@-TjE#k~C#b!m8Y&{Z@RT0rIzx?WFKl}NEFTb*b5?HJfk%(A3 zxSSa6`Fg#fqFFK~gH-;0)IkeUiOW8{N6kIfXoC^8&EPq}5pE)1!TTo9Zod2dAG$T6 zY6Ajiq_R|54v96-q_LLSJTq-uxD%c(ag`}8wMdU7E`0MjQ`AyR(X%Fjh`P>LE4}Gd z#SZqvAAWH2#tFeIUdq>_=~^c56sP#?PI0tXdMfYS|7JY2cXmzkW>i}#i9{q8?7E(T zlN&d_`s%Bzt1S_vP;)`m=B=CQl@z_hw11kvT#_tVt0>2cYl!^?E%F!*;tJh9O=Jl7V%=7VtxZhRE~8T8b9A z1A+UJZmES-;=hE$=iSLF5Q_F5n5y!T&=bqj6v-L2^DU+J&cmW*kCd?~;iU}De3$Kf zIV1b!g!}+Sp{mmWQ3)3%{Tm-Ry4e}$x+)^#Zb)^KI6oO_)fJ;7QLMOSxMSduuH~Yx1;VdYZ4B( zi9jOn)4ooK?B#WWZGykcSyixeB#F(L%TyZ<=apW7z9)mB`C|sF@_pKIlrjeL;!CWt zot`GK?7sS822>S|nI<;?RdQyUBtDn#_o{2jqJY2MtA;=Zc7~Gii#H{<)pb>1yh<(m=il`M8RUgYc zdW>t>-X$;_XH5B~c^i!UTA`9Vt?V|0z^V64!VjQOY}6j`mcxX|weXph{-r{2=I267 z`0!u>Z_016keXs%mTJHO7^hK&Jaa54CCa_jCte*Wdg(&kDTJrR=&zYiC3Aa;KQJtAK!pR}>1KvkVhs&ts| znkM}l{8Pvk)9kKzxC#uAN=5h&WT=#n@A)<91doolyzHeX`-LC zWk*d11trOrdea9HyR`!V5qcXE%$UXrIi|+tguau3 zv{7?0fMsP%DNR`+<&2bL()QQ+Z+cUDD`gs_icI<`(Jzhuo8mIszFyOg>dCzir!UC4 zEHU%uYCG8NXP1MESV3JZE zthhTt003RrbzR47oCbP;*8g>>u6*-jpA0!XW zx8NR@;0Zw2b%2uElau3<Cx7y%fAq)y{_1iIm|++s5$13zX0iyL_19D==0}{yv#)G{ z8PI}VwZRu+k{6mYM`u!X9G>}V-h2N;Qc@QaG(!RKtGx*Z>8j_nk_O>w9hTOTEpW~} z%)oD|iFh0e3S>B4Q!0%@9+CV_^ZTz0)ASyJ3?=`N>bFp1 zS!AY?oxM;LsQ;*T1Qk6se&tqK`1APj&pX2;KPP{Qd(JZLxObCx!O2?sQYzBqFmRQC z2_6-cVyS(H3qPr&Nl&36iB){Y_n5xXFz;KymL<#-R0g30j|OYMqF}kf>uY zdksIFqdLK;bMtYo^G+oR`9fj&fV{C3un#k{PzMmarrlP#t1M1aMmsIl^9g;@-WWx> z)`_ijuJ$?lcTq0r+eh?w~IoUr~_2&yH5fI;rB%b=l5O*+a*f1L= zcH7|U?hJQ9+DQS361XD*i5dn}RfI(Bb^r~`#*!SJ-28`se6-z=l@4HmlE2-2+!(3O zLDA^Dh3|KgbUy#`POS2bqq+F|#tk?|jnP%#t^59i4}Ng}{{6n|R0Y0|QoGcN@ZOh@ zhq4iq7SWomskZK#UR^D*D)piBt2sNrc=qi1Pk;KqJ$UdXv)NcHO4FHC#I~;g^D4Cd zbp$g`@{0`fF6(s^CXiE1QhK()P43|eHdw3R0-ct?soZ3qud{?5^5(c*h+omjEN9L= z%M5~Y#7*Dt%Zp?FviI9VvU|uUsQZ`=#p4Ldm=1uOkh_&{V|Y7QyWM>J@kdANBR2_m zF6-pY(yag75P0~6oR;aq@?To!9&?=}VpCp<6Y}HZlk@ZQXHTD5v2GK{{#fLk1+s@; zU5H++;rh^)r&dd^UtP8fH;criRPnLd9d%$WkFYVrp>`qV{oVq#54LVhtbeNR(C))d zHORqz7>IYKB_OBKC`RPMX&QhCVABhAK>zjAv&YY#uh;97o5#k*cw+;izVD3jvD{RJ z!v2-2`Ym%mlY)=D?T`?qIH34l^58f+PB7fd+%$||gLIA|@c>A|jheE(j(JiIO%2;= zA#3f+Vs_q{q z5E)V#JDCL5l5DJO2m(OVT$~S&pPUI9ONQ7TgAi3=V!sO)`FXzWwNHDA>cWD1^<5RF z20v+csfu&1cG7p$_piKq?~_kIVI~l<@&2miIDXiKJf0y(V!apa(QM63>&l-?QduPJ z2!wei+fyXVapImP;P$HPURq&ufXD6Y^zW7n06d zgC&S+@ntZbPIj;=ZO?$1_rCvujv`&wv6OrZw^hpn40(4p&X8B3%>ZvkjBfypteL-T z0GZ@e>5zkt&?7;4Og?UbZ4aW_@|_G4L5^ruqNY=Qi;V@yhJ6?=D?S;c9|g@UDnI$mIEx| zS2N~+*P@y0*MwQ8(3Ur$im)H?8%0V-tbHr>{^;p(yi_#e4G0J_>Df2xA9C&^jCny9oA>|wu+BL06%g8VD4PFb;HcOA{ge5V1(i# z38@m?jp9mhSEGrl3fZf{UJly}Fm*82D)Y(b4;~HD3$a_mfxFb6n38U)s)O=fYee3c zm@@^(?koMjit)EBn9Ty*{+64W8^bq_*B^iU(QB`~+IJnPx_F8rLuz{jRdX2sAetZT z#v;T8z*I}+e2a<)Yu?_2Q#np4>Bafg^B2#5>!-i{#e)aK)>m642n}}f4L`uM_Ux~<<0YOQwFOq9W-AU0G8gb{4xi1^vw7w_u_@-?Oe(9mevOOJE-jWl8ar?9>XgiyS3n-J@!HdK_;0J-Hx<$lor`Zra9PJEL_bFEX3!31&77G94S!vFQP$+!2fthp5(IWp-T+e+pdzK%m?0 z_T1V_W`!!imio^hJiZuU!31|4JuDl+XtIZ2wz(o}vnnVvq320aCGvDS9T01ezpWIC zI7dqZKtxu?eD}TkAO7$|hC5{L!Y51PlCx`BR`YF7KF!sbwY^Hi!&n{3<*yNlsBSmI zpZ?i@{DVLEBeDJ>0P#z~wuCW*SSx4sW4bS$gL)Y|ie*3M?7!k|tT(Tvp9@Brmsg%m+UPbn(BK$j!^WlWg7IgGH{+S*;OzRa8n%|ccPZ7I5 zN>sG5_1u!36s0AYR3Xev6w9hHo6a8iqktkJjt&eCIn)pFVYQ*8zz0 zNiiYp;_S%hz$2U|_q<$ao5rHDs!UZPP4AoVyC?~`6!NUsk59D;`Ajk~hGe_#)25|$ z?S|h3)_A|)86n>nvB(};Ylfe*pH&e^c`PeZEx5c<)s$T_(t;UwH>dnFGU;wzS7IKR zeUWcYQZ47<3q4|5&A(U5Nzvd#MczR(O~~G7`P?f2AO(a(K~RP&2yq7#1Xh9q&Ik}d z)g8qON9e&yqy|<2!wiTF%q)s0FD{-weR}h#yK%hkJJWStXINDjq^iuseoLFl&!U(} z-AT7`s_n1Lc2=~A`!CKs{69W!D+T`<8d+CEa~(MLyQr?^PMk|AAfjSgpOy_jSkVPi-^E5aNg>MVT|ckL&Lr8r`dPzQk86Y{EB*hQI1 z&Q@<$&*OMep2lxN-9lK51_R*^v##r2edXSdKmO6}Tep~Dt##Yus$z^Gh&!b*B8j%f zoUgRew1%pg{F?WH+NsJ~@2irMWl&XX_1Uu*Kl|Cwzj*NA>T)B1wQ9v0V}jCZY-%zovOVpW!7zxFx#(-4k>Ld=dZsaRTVE0Z7Zrmj~Gv3)&lcPpa#33-ZPy6-(* z_i9;TbDDRFCiM?IwjtO1MZ+}QcUpPhX5A9QD&}FCya6VVqyZ$th{&_GR%Ebt%0#(wE=9hy0t)f=5-tuoZQO1XhlCUQRiLOOC9Q61h3(<8u6^lQDf|E z{hSe>k|o?;bSrZ!m6=;DN1nXxKfDhhs-qZt_qh4bPWvz28V+?eKA4 zpFMkebipisX_9+w7O3Adu4 zRPcij?&p-Mw^E6K7$$DaOmJ>JI_3P*+|1})<-@5ypJU6JF56e=TH-KUgov6G^0XE4 zlad%`-~k|VSD?j}w(t*(VP@uzyRI|cTG4|$VxwRv12E)wbcIw^;K;AaAh8>@8?qac zZD$~ZvRR*93|~Gz+mf;B+%FYGP!m|mqm5caX5P$b=~Q`^ns8pJru;*7lX6k#y5TJp z*IT!4zW@IH?|t{XUB~X$9wMhsNkl>%zQn|Gm!B=EsnPK4L{TiI*|FuS>lb5`}LAgsSRFv}<8&8fi*1SLa2bH$ZP zty}%N6StX^EgmgbEQ@khCgksb7$Pl#2r3%(azF~5Mx62s@J>00JmGlKBtWY>EFIB` z`^K(MmDK%9L~es-%$#0h=5E?#fFXW0QNutIN4yp->VJx`XO+BmgPN;1)1<~--8n9q z#IrycW22;?3{4M@gtH!6wL~lhTf(n4s@lMXMM`RvRB9oa zW-jTUxv@kDQ&5`!x$~E#YzzUS0*2{K-}iU#-5ZAC{QP{_4h$X!OG?HV5%GaubfVLe zB&y=iZt{eai%|y?B|w0N=iIEN$R;VB!mhaHf}fEmA{qDFXS+3~2)EkT8MQGrl9r5k ztORwZ6(^^=wCE_WU>EJWk3G)GkfgOUhyEn*t~QpCJ$wU-zPjmnQH~(x-zYr^dgCfE==)ZmdJB}_^&A>l+%XJ$XA zc2eictCBkfEX0I&-XEJQ+8fL@Bbm-QmTN&;^FzA>&s1J7{AR+}TDU-tOxf=+{R)8IE{mDQ4!`DJ9QA6lKVqgGL>$et>Oa6o!95(SYebwrSjGpO|VpeK?(D5Ut*9=oN z7m{0Ch>og`A_RnU0ZK$YnAj(A-U_>BKnrALsG3Hcw&q1C1c}?WiX&B{$`9v{)$|1hNjb^8~WrGAw zdLUvu?W{}!GML$$xOf|YB%=ZtL=%Z{&*r`NKb!z5w&1eSD|`5#+`Va+Bsp>zXl8(W zL}pgj)kk&rPG8kC)6+9O2Sxs1?H7^VvzjNZ_?E{kKP>qua;YcoicjJ>k9;Egs_LrB ztjfyFh;RpNKj3iO?va^AafKHzGr}D(7z_q817I)|-`3d3R_vVK5!3w~OqO%pn`CFe z(_~*40!x$tnTULKaU5agau(ZeTL)>w^G!%&9RMN$ZMRzu`X`@$x>~ITp%CN+J~(?2 znB02At4hToJzJ#M`!|S_)*6vm>$~^vJ%03fv$)n^HZjyzvL24c|^Lo8LIy%x?pP!$bpzA^i zrIhhuQA(kUyKa2m0#bXTvAzDcPUK9^gs)miyRQp8FG5no-rY2tA~;ULm{B&*dm+tZ znB`QTG9^y}bX=+i1ic19jOfi2=N^SCRVSPjy;?k?_Z`laDx#h#eyszt(25XiwNa4wPMF$Gd~KL6(*yy% zsolaqB!&4Z?3s>9luk_}AxMZ$NR%DQ70HfBA_~L~K$^<5opfk$!P$@zKr@W2cC0Ru zN6n*@l2J0sFTZ|%x#bZAk_0^hB5E+c548#TM2d|9r{J=cn1u}Fd#mJR8xSI!kh{hiAysB>yLI1W=$dJg z+sW_e{*4?3B_%2tu)1uO2;mtdu$Z3xiTQX9Iv;PitC~iK>`QCjS*o-leK#F12f^ z0c>Pm(v~amLs;)}BJ7o+O_R7-3c>s}nnp@__uf4z<=NR801U&x&byw7q?E>$D_c!N zXQj}zSX?n2Q+%SGJMjDDwhG2@mTTlvpEpcVZ&_hH40k0sM;a%LNFX7N^US*b&J_kNn zcjGu9iqjV_PoAG093CAV9!d!vA%bG1h>!#hN{vb*xrKWKbk~wIBYYZl?Em_-;6ozsGO%4YuOJX>&*i3wGsz938l=7Ld~?qtN`ae`K~ z$5L38XhC_8v=GDjisD)#Y9OLrNAXrJMhGAglGz>?B-bQ5A$pK*6}=$#sOM2H|2%V(#Xle5baBp@M=h{ma+Iw6mU6VklV)QZ{c$s2y3CEY@C zZQWIE5i$fNM6Hz&0-1X$1>wiv|K5A=zT5X5Ium^{`|X=*YE-o4PdkM?pOdix4egK% zvC;r+j)DS!Qi_?zQ9XZg_OJi-|N6xjUn^!r)LNTeE|aHte9Gx*P1nqWPBJs%&K3=a5y1wJ!%$cWBs@`rc zU0E>ISmmaYlyVpbBR;g|^=kF<<;#~ZUn->$aTudDyljCcWsikQGz3-j8EKbI^0c*1 zfx)tejjFMfmbCFkdaYJ9#H6mZE-%t1?-h#FWQYmpCZ$wL-MxGF)~#Ec%ggO{o8)14 zKY89Rh{t=4)6!H>2BA*M`ZrtsZR|_eIH!@8xJV?`2c@O~QmfI2ddlD~L~tgdnT=ai zgXhsGxJG4IAkkvata*d!$_c%63R|6xurPn2_5$}-^Mr7w{G|q!R^jW3%MHkj*BLu+ z?~L_Qe27&lmFXFxgjosqWqRn336z=uhzJDZZUCg6(j>ae%iZbeb40jv`*z=pUI-yc z2oORVGn*OE-8_N_NG2?$001);XESwk6n3unV2+eeo8fGH-JN*`-c{V6tT8Xl6Li!9 zw!7TrD{mc%g6DB;=US%}C{zDg%RCFY*qe)L!BpZkGKccVk`K`l#okG7UU?@_vO(Ph ziH^FJ6dlQqs7KKQ3P1tiLIoHw%mB#9h#Eiv44^MT?Z$C~gbX-nI=|qrpFAI#KoDqU z&Ki)3vOYHcU_s#dDlW`0ArQED$bCmXs+LuLm;_*}gA!S{3Iisk*owhb3^ zVF|5Ny0!#gKEfx>P-zx(E!Z~7xH9*pD3S2gub+Pl|2aJwU}nV1!#S+kIaxJO4vj~{=#-R=N@fFubU zo}IIExo*=SN4Q>Hc?CUrk~4Xc?Q3(DBGHx)u_8+CSHsTwH9oJ2fh!3$$iILds4l9hsFeR&I|P03bQ}Qo$%{ zwJq+pNfHWN|M0~%Qwr9pD}y=Ac2FLX1t+n2{S=8;iaXoZ-!g^@0Mj-5!olh6Ok?ng zjs#+Y%qv;DT-LaW;65q=7Be)#w75#YBds(kWzLMSRtASJA{D9 z!~m@A@nryHGf`t3bPcriR$%cOx2%(24zTt~B*CWk zlDDd{I3$~j%>J)sD|RlHW)Wc@)ilm5KC=_@l1G)R-D(Ix^yghI`OykScLli+B&Co& z$xet4Nt)Zpv#2K8+;0Y8+#p8a9gLS+Z}qs5M2MtV?gsqg(G$fT5Sc&?==9-DO~`ZQ z)yR_&s?n`8$z+LcI|2acrPSlN>bt&^zxK1A-Mf2NO6fxezY1OHU@~N^2=NYTE+}BZ ztSWi3Sd~mzO|x;-z@W7PA^_NKcBe1SKKtzRZyr4wN38*Td}VW#?@HuaRHP-14Ox&i zcwy$W>cUDYZ==1=YEhhrAN4{-8U%Jo^f>E%!xG~C4?kWqArD{G-j=jcrbHna|A@J{ z83Bpi%O^aqW7Skw$kGv#r1Gl28{X4~YKUBXhn$BKQ3;4OOCbb_&E-WW-9n3ueRIG^V8Gqc85qrG+M{?l%a~g z56e@cD%xzH^zzj}B`~jsc2a4h#+$9;`Y9J6`OjKfk|)W@%qE1J5W*aqdgF~ZwARBg zY`0r<8{^EZlpBppALedBYPZ z$*X7!zlL57wbGf=1~Q5PNw5Ya8V1csMDpqB>651?_wL=lb^F$C*mYgMUiF|^pbZoU z44}>OvzgWfjuZB^p)Ii1h-l~G-g%uFtbLWvs9izdYWIW8;uD)_^WY-7*PMww*QInz z#&Ju5PE!k9;KEs>_QK4~QBbfU8_;|tc0}~I=b*D#9Itvp10f+22|*;g)k?@-$`y$Y zu?G_1!mBZ$U+pvj!w@xsMjlvS^0-ywMhav=rDtAqLj-vvia|g{PW^B9)A`AGO-ghg8t~EhaZ0U0V1#0D|WXp&4b-PdC8LlukE1b zUvik&6Ri-A8rQ)Z!0r;ut{Vrv8`Yox=l|#TfB%=mI1XC-O-t{xZrlk&Oco$^6$&Q= zF?^m?RI^3^5+zRHQ*gzJ*`>z8xZp_dbkv$lLyhOHiM627p+;BSxCm z_k_<8;c$m1$3cQf!rMB_p+|CNKYt+VGu+BJPf)_zKFXt0+P_0 z1tPF!4I1fkP@+3Hd2#;5H;<)Uz4P`vLI^dCtG?4}lmZ12G7(4wB6EEW0HAW79n9cj z$Afm!*o@Yu=`6XQnVSO6wHMs|IJPM!(!3XB1jaE17ziN<_BIg*vV#@16!v(2xHRw2 zqOn@x>T)fOoGt#Dn~_t9^m>yg; zvrR=Xg1Xe>X4qX2A^?sWHLSk)`pIS>r3C<>1`yIrP>t)tH2yRC*d6=@OuSrSBn|I<%@xL&R7>2ZiI*1f?Lz)XE}+7BMn*Eb;-)&kSFsmvLA_BbZphV!VWQKgMmgiF zC{hYf!v~g$7c)T9mG25J`VBL~G%%WwheEKHTF7VAOgeyJy8O)65>Lf3UM=vYCO90S zaTSpotmsEVzZ71sq!ln+M+~7^#IiO19Ee{H3NW@9U*p7K6&zV90#pgpg=*atut5=?b^;{F*RJx zlRV2)n^*TLz9iKR?lQE-kWWTjLdIFd^5L+sE&KM@UfIk%9OB68W{2m_ojYCEU0ht4 zYsnjHlvvRU%_c1Elq(OS*@A9q()?L!LRsM9#5>@cy~~yo5qasFv!DMP)#(4neG#K{ zU2(L>IyF{*BoKSfWed)qxoFkC@c3I5MAnuXKAr;$#QfYr=SSN4F0T54F~vBmiyf z1O&Tf&7kcC)o86xW@gX;8puSXCIELA+O&Pg+UQp>RtF%GaZLvoT+e%)`QeBrW;GDH zbLS>gVLK$JdFhIf8P+Y0p#0$yfbCN4g4ddm2Ldi`LLl@=pg>7N2r0Xj=vGqpBswIC zB!MKjpl<2f4+8UuJeUdjI9v*QE?o}XfAQ6`iybH?V!;eZ9b2QfYAO`T-bi_O)KX{z zFYKdo20{qNzuCP*uMYHi3&jP2{O3m6r$=mXLB+D7A zOMhLR*~zqvZo@Fht_Q%2&E`-466D-kF@`N$$E=5dNy{wn)RSWgi?K&^NYy=yum3eh3b@$v1$!=ugSaVti88((_ybQ{IJ1+Z7&lAXP zbWEPwA>c4$bL{Lfrb2!wc|#=G_L7{5ORxvk;D@|jMvm4@4ezqPkPbPOO6c+%eYHMh_&ctGWg?5X(6W1LJ4#%0_*}-^7CWK&( zCaNv~AZZ3bVgzQPKn|K7Jv!NJcen4}TX%v8r6A)w2B<*~okZ3nB9jp0Z#A3lXF)MV zdq>09q@py|nNQW*FG-;yV0kB3m#(&Ga7u!W*2U?nH>}AIHpT5cM+ggP(bxy;8B4 za~^Jj*l$7}Z6i6CbpSvR!2S&Rr1i{o@I-=y?E00Et4?+#dXha+2Oxl?&FEG^3_l?- zAcNi^Z^rF~Rs$h}2B3aW;>pRy)907W5$bcZ*47 zaL8l@y+EXt5=26XQ4K-}0VoJpy?p<@cR&2#gQLSk*2*mf+W>^=PT>`su_!j7 z0ikGf7Orx!j8Op z`wu@3U)1mm+P%jjN18LAkjMK)<*LI6(Jj7~ti_G}D!*o7*c_Z%o61v;$iR)7kQNL> zA0?m+b1*a8yI+_Y#$o8B{PfcwuU2bxdQS*}*6^xErMvOecB*MH$^I!NtbZQ;^FNpw zZXF#xe*AbG#$ntM3M669y3}ge3ytE>#=}~knbEX=S~^az=xtjz001BWNklQc6TTJUqO6_s%d3FJ8PbPmGtlfvJ=-w}yBPu!M8W zn>0^F9yZoQW+_u`azVI8(kblLq%QljG9hm-gQh^ds?4UW?RL$iTImH7@_m;St4=hL zA}_ZtA}=6joYNp<;nhA7@&a91%TmzDSlZ0AdF+X!M*s+C0k6foGQEwd4+&A~u2Y5rb zNp2WiPs( zL{Fke>VZ0A5<&pejVWdrkp~CI0Hi@!%z$rjLSE~~ znsO{JdQYnSMg4q#@0V2At}vg7^T4{Rr|x;i?ZJYSy-T zLL?f7-SZbO9zJ~d&UfDFI|%?T;yOYT$yb`H{E%h1ni#4TVc=}BiV@A>7P&rLfAPf^ zfT+~i38}^bsIUSGF!9ntO!gX|vn|TWQWL5BR#X&ZSYME8^iDW_YiRGAlEtz{rF*@a zP5J1X^r=5sWm?pAoz_|@g_U4$^|}I-@~e>@mp0a( zXL}^+K37+nPa1IY+FhCGGldN<4z6qgG-~M0rW(Wr6Y?uonD@>y4+2EYwOG_&%euH( zNx7ht57ytvg>1IH=h!azv;n&IHU@Z6E(Q7L+mcJ9s5*}FU<4qgm^G}|hv(-P%(zqhk6(TxR|m(pju}v{5OD+? zWrtcbG64tx!It-vJI<^z#enAeGqWRL&yRcGpTK+3Z38$ePHhaEV6u7N1Gfbq(h9&^ zU_rw%-zN_>cx^1S$4D{HbwCBV3&ObxVd6bw%Q2IijeAZ2PeUR>WTUKiawWUI>((eb z>Q+P@padc_yE0v2L+YbO&;W|{7SyHQU8-SgmdhCB$la5Z%Wt1uF!Zd22{){n31P{E zyxq*ar;-6%%U=Rj1s*;L$BPtVRD+aK0J2i6zF)8UkH7!Dcfa!;LAv(SV?&`w{1)3+PDsVux+agi8ztD^u6$r(>=`^^eqNb3T)g|i_q>&vJ1P{) zFLOmGR~%@=XstTh)^Dlje4-V)SSQ(X9a)6w9#`2Se~#X;!07GN#<)nz-0)2Tn2oh{QM!$G46*+s(<- zXF|%|ZXlvCdQ54kFA@_sD6(_T@$}qRS6!j%T0btVW#9a>5b`F^iQ{XfywX`_HY@1n z43!Z~>-GAgftN7nnI4?h8Tfl_Dgws3m#MSu`5ln1hOj)%Dt!f+(5evm&Bk^pvm) z@|0`L3z;HC_E{)V{rZ0<3GMU3ejV64U0@pmKqLZYbey(AW(Qqb-3&9E3sQf7Ask;!VRV*u2-MO`3f zkwm4+qEdS>UxSPG1yzjRJS+1ZuiDL(fP9e~g0W|bgb;$HlycSeE7`9|u7v23q`8V5 z*-RZgbj{2N8el}VCA}Sob3G0Sj3_jSofaoAw%DF+K+zt34kWTuIn6aS!?aiRHyhCk=Zxlo=1@O z1-@5Kw-c^C=My0_YpsbS1DwCS{KYT+-Cz9I|27Vqh<4)`dYBd)vX71~!)XlUGVoIN z1+_Oba=@I}%vk|iVxcS_RzWA4G)&^X55J#**t_px;f`Mc!=}uwG;-F$2s_xLXUmp$ ziU1-lQFInf;1^xiAyX|T4@c#Q!3L^5+-5RaF zk(6WTsj+-hw;^!b1xtziy1NTt17?X|NCJl2ckY}#JK0=b4r(A2T;h;G`N6_{@*=jg zj8`m`JgK>&w1F=qX%0WBrGZ#p%fe19rX)iRx0=kURlQdicyTccHh6`7-!rRm9Hf+H ztGw^~*Is+=^73-G+Y!-bvoWu?5H?oJNNGOtCf^;90w@``wEa5 zG$9cZ0g?*_7UIKpGRGP;Xk-S~42)*uT(j2Jd%&0Sf6<#Yo_?Mm(Xx(XMxMyzw_^Ko~n#t{hs2v80zPM+_+dVI#vYmJD61e%q%OBWIfD`$Q8 zB4#5)Xg?Qqee%StAFaAhDX*D3C5JIU@2oXt}#n|qZ zYKG81TZ${yMCiPsNNaQRo7ir5zxvhRfByN;FE^WE7)NuoL1`DQ$)@7>WsRy_Oh|z) zZmLu(N)m^gOh~sT{53Sgm=3v@Vy%z`xzxT2rDEk(Aw?7NJa>EFvOcIPV>Q6gk!1Q? z0+ga*#bSU|9yqaa1j6=roSb}#?$1nM7SRg@)5NUxxO@|0B^(fuh?oJH5oxoz1mI78 z@Pj*d?g~P!HId2iYNzE(h`A(xgE#gPRjywq8^b?GKoYW(QcC&c=~Fc-#fo7`AkF!z z8*71>r6&GM>DdOggj|iOco9zcY8oJWR@w%h!wtf6Qam&Sny4?zjyns21>>kQqjPPQ+g_ zy$nKFwb^^QOsImYgI@wR!DI;^7JkNWpvmg9m=qpT%GGn7ZVrn^j^bs=ZVHz?pEgTf zsYu9|43Xs{0&&v*#d3>8(Cn-_ejUlB@Y=jenbMAKO8FX|6f;zixi)yLrgQ841b{%G zSrae`VAhNXNLmw;R9ZbhJ3o2;;>|bSM27WhB}pJ_*$EQJz-YIuZD-YLwVvc|+RUsW zxTQSYND7gUDPTxB%`p9J+RKVrO14IpdsKWo@7j5Vv0Tf1oe8=722kG5ci(;YT`2`K zQ)Y_2inN!0s^!0eUaTc{>+ay9kC>~U8Q4S?0K~5A0pa=c7o$=P3%vT#ut9`RoAa0H z-B!UyhQwA2(_VEgM4(tB1bw$}V`o)wQ6^wB<(L#}$@3SHPqO8;2O#Z0Gl#~_dY`$O z{P6Jb;NalRH{X2x__37IG0c7}QOc~{0(Rn7Y6@_9Q8^4ni{aJ4R#Z+E;S{R+ItiWp zoSs0DfN`nP8T;~#dcpL5(IS0`P3A$@fYp^kx$QOW#*;2z-WPf8NmI;|mQxIvX;OMB zuFAKi7%Nfj2!%7-d8*I+T8}dK`&up0a}GxROss?qGEP6u#&lSp&Wf)j4Yo$zx?{!m&RqC2o;QEgUS_0N|_qP_Rf}q z1%^#H9&5%}{zM`QBCU1bcT&(hZ@>NV_rHIzUP~ze!0d`6qSjgnsrAk5W?ctJPS3rd z?Vlesk46hH0}*M4&1UzPfB9Gc;kSSL{QO)gtr>`DJ8YBfai40Alg&kTgd(@N|HWCD zf3lBne5vlqi7aYG{JWq}gO?S^kRt3~Kv~*M6bN;0ST>}R4eI7~Nth$umkuk*=$OAP z&=f-qA^8#I$JF-9$Fq?mei1jxS;dW}3=!?>=3vs;@HABk)HKzOn!pn@o7r_C8v%(p z4(6srU}i!X#&Nsd{`k{RkB$!et^;7D6cHsT-E2yzowu}@KY6kQy~Ry%s@@$-a|R(u z*^Q$jA|bnj_4?%W^z!18wdMtonK=;|ZNv(arHE@bAZMF73$R^$NvZ)UjH#fRdo^Ss zo-O~P5^j*OQ;t{;Dl8jYjfIxxV9j{+iri!{GjJ(o-}i64@y6NN*)R-5q_kSz{7O#4 z(d3NQ`BMX7qrz;VoSDjE@V$;z&J4vov7n69L=AHBVWHGqxSgU7i{S=;3omTJ+0IHT zYLlg2RT&jn#x3DUgpj3k53C|3OmQnL%T`vU;s{8w;o+Wk$ga!j6D#*{Y{vMP#%bYs zekQP8ebm4dc$lLde4r@J5($G-MUgUff1`nnKx7u$7`2_+`suR<00!u~6$z;Z1PQjGGNd#vFx!21ivt7ad(^LW4VfZ6YF^P&h@K%tui|5ZP6}Ga?fV!axIRYYT&-wlzkw79L zq>yGpzLMQah+fDQP)FDS3IJkD3`S&TjljSo>8;iqP}_0Xmn@-<~tB zv}O{hv@%h?+MDF_)TkR#?L5UIIfJx;^j)X5Uah)e+}^!&=Z8Q1!QH!e`d%ufx?Uhm z*0mX}VHhUg>V4f#8|nbFRBKKy5EfRwPkxPvniY{TW|)D7L7knw{KYSR@wb2bcNdpi zA;hRPxHz>*`PvG2gYE5HEOS|RXR6~aC*N!Y?QS6{$cUOWNqi;p46}l!osv;! zN!VZ~OFo~$-tNc@Bs#4%5^1dvVZB~Ie)4!22R$m#S`x8lfuzms1;}~qdAC~#cSIUO zHcU1Di}siHq$LNqFnMth!Z+c7klckg%OKa5)$*}lgRqcv3!zn41I?~N#?}Q0hWms5 z&0*%n6aFNZ{2W*av0AO}-Mfc~&!0aRLTaV8(u4#Ihyk0qA@9YV5e|j@ZbW-Wk=^i^ zQWo2JsX|ds3Fe=SDL!u-!Y2=8#!O$|4 z10pyIrQMAPZnr!xi-;(uK)h35nd_hl&~9&Q#`rM1fvlY})4+hp2n31e0-LC4=4h~G z2hfNJjD!SiwYobD&kT%28c3tO9Qlh!PcAOEhlj^qx0XVpVoB(Ib=fEd0a}lMEQquQ zW)wmKk_o!bpxNQdn$5W!b4xh`YSyf5znHxV#A%HvGEdplk^q>%(%o5Vj3x?!J#y&B zT0E?5?uoVC@J&CVz>J=g8#wXDv0_zxAtFWC!=e_T9lnGU>jw6Kun5?#Yl|?0 z@sR{TL?OudSBp-{t`~hTBKtr!LMud>xX6tIB(WpI3 zZ1(p6(1dLx5&-z0|NPJY{lEX;FE=}-l!9qfGgOGarO6kxJY$DtqC%OyhN|Ij&%}hy z0jRHiVrjG|`UO+RC|}r08m}pwzL=&->~{h@XkW4{87|#I1p9$vEPl%f4|5k@Y z9pz#XVK~EC1|}n#yC?+#^Ya%kKKa2XckkV04N?l%B8YHItM_(21gb8`RFR~`t}HHe z)#h)rDeL;H3Mmu-ptbf+#b&wp(W6Hs2>_K+HhvG0iLM!x4Qs!md@SOe6Epw599lb7 zy?U_tb*7et$!i>vznz7gSCNdSM&>Y&ed5IBJOV+^q+N~LYbb>xf{0eD)zQ(>{rmS% zPfx+^pEI+$GHn=!5bY$+MX8EZKtYktS7Ox}@2}e9SO;IF;sDOoa$aHYy_R!oNaPe< z<@pMrt01sYQ?zBp^tQ#sI=vUg$!EeIu5DS^|!OK@}F8RmMk z)+6D9U9}l(uB~dRzocq(8j~@7h-ndnf7mi#NHF8H?BW}XpaEDTkU-Jx27UJO^69hZ z0QlPddwt)V)e^J))%6{soyi#c+u`Q%U}IdEWdTGohsnLwVQo%(R~iR`%kfvxxzie+ zImpga+W@R3nV$%7J?OJI;+TaeYbjOxC+&AKbD`;h{aLXLLpXKi6lP27#V}LW;~{_A zp^5fpaxaKT2qGdWMc4KHO7<%=Ax9f!U4osH8~QV|M%JK5<{j!wt+wNEsdhV7+IYY- z(17&p#qi~$OU>r6gSP$?&cZJ?w@j9bOenJb5}1&d!~6$H6GC;e?GcfPBnd2tFH-bqsS*yfE#_75PrPSBoJo@aj z&%XHb>tPrMJ=q4iogZ!Ugl{>_23elAhN=y^MfOQi@XpdC$>3)Km`Ip9B1?QIrVJSW zT!xkTIo(4(<%rItWoibkl7!OW47cp2=&zIE6A3~8JU2}O{WOyb&|upBGSA6P#(Z5N z&N+nW$({pvx@&zwIbTyeA-7E!$AJ)byWOo@N8kJ2cRSeyhvhh=I)GP=fzYo{$iv14 z^;VgCmK~Rii9}BATYM@@z^ns<0EH0i^}&l5XS?lgR0AStrHRl{sy5`VD(aF6G9G2KqdGrgg={Ryl+xFr=I*k%vzN5c`^`+$ zhlhs`9z59Xb|)t%ecv0f<2d$x@4dflr_8!rH_;1Q)K0}t!R(Cdl>bWileg<#0w-tP zec|tmp#v1wwWkOwnAfdTbP1V|uR+5!bJTI!PQuLEXeR5zxAQwK{^)ySifSR(Ri)jb z_vUI5w?aZJ?P%FKVP%Kv8j)6TfgGb?0uy#k4k~BVSj)R7=qF|-b7mF?AaiugW-2h7 zQ{IHcnl{_<>B;HHeEat8e%%X+fUxdYS}6cRIlnLu&f$7^W-kIJfL8>tYbJ2gYR`{)0a~C{#se|0q4N0uvSM-LVr?GRzfoC zzF)Cch;VU!@$lip*I#>G2nv-JMx|^)PXX)k;}#=46L5Bx2C~jw(%yw{uamh62mpXk zfNL5v_x=wbwl_VSc_Y?T*}w7C4G+P9jaXtG8|&tCOLzY=ImtcN-H z(F`L@lPLrC`~yRLD?zhbH{2Ek>5TA6X9csZ%k$^or_80|#qW8_w7gAWBzCvd9>GK` zEX0_k6cd`YLShC)fh0B4W;;ARdH!;9@!I|SUAH8yBmhg zJ!QxM$f(^+k*vos0|RTV*}CN#UtFH%+JTEDPE+W}VnHIenGO(~cL>OCsRizbdo{gn z&^diY(GUpNMUzqmm^Jwj^-fwT#*PpP@W^IkN0W&t$WthQ_qkPo0)APGbbVg&i<>G`)OgJyRxHnfeJBgts$b6QUDwtt{*;p_~5~thldBu3PB4Y@&#xsdG?X{dkIFDIj`V< zpoT@QMno7#)pe_3R9}7b=(Ep0fAr|FiEpRfJlyQ0CzAr7Lazh>2BgPBL=n-2~JS^2n#p!*haqNUVa@NWeP*}h{jWUJi=2Vi<|8@Bw zG-}Ju2q#WlUQ3usk;}SkJT5iAisHa7$ofzABnj&`IsYRh)AEFv;bFrtkNG1>YStI$ z7k%G<^2sMeLW(IeX0-H>O~?US22Go!i4T8LFi8txF3(m3o?-|L0D@!)Q_60AaBz8f z`QrHtLQ+Z#A;#TEh&nuZ7T0z)Bpb-@mA^siB-_I3+5&Q4^k$`4v6~wDxKSh*QUzvn z!*K!X=FcJnVjh?a@D?ItrsZAN9UdMYA0Iz|{@gs-Zns{ynVgAAyJEUg&3;{E{<+c( zQIW;^kAAb@E$(ImvKKz%oUBh&;9uOHp14ri*-T8Ay0E!%ztT})|>i_^CEFK&@ zjz0GAGz2G*-FIzOgCHhgR6wKBAbJJ(^x4_h-#)p0e0#k69{bXp+;>S*M&c) z9jO?14LTyC2G*cWEN^3#nV{Y#_Bz;!E;560PPf~VK0X3YAsf&fdqx}I#&SFxYbM;a zVoYvLw=1mRw;J3hB~@gY8P?&bVTnha4br-Nc?k6lbOZK=Y1?BscB+49Wg;uyX)F?rKbY1JqgcXSj&5K-5OPT+$FZ+`lt zAFWp_fi#Z8(b3^%vmqO7U<&63$;@U!niU9%gh4EFOu67ckN#!WM1mQ|aU7NY{a^m_ zkN)tFHoM(8DgaQ-$q|5M$9976krtazE*^>-N9cY6rbDa(vZ1P4^t8gaiJZM4B52nF z_}&M6`E0xh$~>7|)~BARoAi@m!HJZKbhB5b8FTJny#N3p07*naRF@uS;O534YLiD?7jD|( zlYQL6Dxe80(E)laeN#4jm^?L?B zIZ2*iMNs2Lh7w1iL;%fhh6(^kM6y%NO2ba6%ZuHYUw$oRw_YDeL7jA0ks0rCvhk+0 zR(9TM7aR;Uzt3Q{u#lO-ZjifuaudeMdy>2UMFi*0>H}O^+YIfz3n%w=1mGwPqT`To z>`XiplPHy|@%L)~B$*d7Sek#XgQF_r2|Py6&4irH1s`UITy|3Seb@KWMs({@2t;9y zg#$C7B38g7@Tk>}^-hl)R$Ddfv>I(>eL&4}fYle@oSmGFnmbdwX7KZmHWAt?vPR4r zJqynR+brtq45oQ3rMWSiCF1Sd$G`p?zjkzZNMt6Tq|_*-1Zx{tCGf&DTdL7gliGTJ zws;|kB+4@+XT}m{ zDREg(q)9kF+rX2|Z8VBy!^RcY9IPlV$vZ@pQVye1T6I!hTy9>TU;OyfPgi}1gd|M7 z-QdK&<#bE#pyISfhz*e<&$UPC5&=|8iOAkVY9|@&+L}fJX3e09Y!Lgt@4HSudGZ7S zwwud-wbEMo<#;V3{BxHG-R(LHB-L!(4gc3Ks#s%ufYF0of(A?69nzj9C1|-5xYoRqge)9C}<>vOCJG}te z0ZD-XfXv8RnP4nv+|U658IeIS(sTe1jA(Xy^o&eySKM5ugy2q_o2!tn9gYXYmYK5QFnaQD-fXCkgYo>%gaI`MG$G zIIub)M-_1dC+RhYRlth95-s*X&#A4 z5D`lSVyjmF^v&t%IcsnArL|kfe>OGM{+AfLA$2V+WV#u#hcZnHOV%M$-*L|)|x?U+-|qO^Si(I zAOGW@D6Lr|2pP`C{i)9y8^qON_`=HkWgo;c%zY>1)A7@N=^v`6{AKhIli8VjR}al^T|;Sa>0xFmZxv zZ3QcVjQd4XNFju9AY%P;5z|;HB{Lvn*U2xx{PMjI-h21m??^%REREYCuT03RXf)oo zJGY2u{x9 zB}PdCE#*B7zFz}}5JKT#+=8-8h+N2nSta$m`q`13O{eS=Z^u>kJAi-+hMHBM2 zo?58IYBUVxUNKjcnOx)}W&nM3boBOH55E7s?+JlY3Nsrw3RehWf(ynQvbe9zX{3Da zx@0H3Ew8R9b>|AGkpbXWfBz4^`EP#f^u-I-hTq5=CuZBA4LN>`#jnfIDRbKXJLH9& zjbre&g2`ks>yfmIyvvrTp4sRAr+EM2$4aTFOVC<%h-fA;wcXt!W(Gp=#J=}A6JsT9 z5l_*K!|Al$@hdgY&(-a=6$O-CJo*~&^RzGZA?xp{%^3d#t7eIW)+~i&&44&4B}qPc z^5myK`E-4-l2Q#u+P_1C-IR;iJZfq|S|U}jKCDI$XKY&k->M332sUC16uV`o#_TVb|r znl0cc2->nQ^6g5C=;a(zEFL|-5>mB75hY_?Uu4uWN^_7s50i`f8sUa`baeF2JMWyI zpYL`%A{xh$?A?1)S+l7QW+AD*-j^_8vGK_;%*SRvPWMfD@tcJ|TlLMs3yHk1HL*P7 zf~53p@oH zGvOl6#U+xYfo&fjbaqHsdw!!~Qi~7R24JrNui>2Z3mWesGSSr7n}!j>2mr!;WdP0A z6^AHgkGyot35kny8$87t`e>FL$K6Pso#%Eo2vhO?D_g%l1-Ky)>Bs(O@ zC`|M|bBdo?X}u#o0FQdysbR}%Hw+s+DguyFFr$#Y(%nw4|K?X;4X_@81Q7rz&5fXL zxn#(HE+l52C(Bl`f5;LB0FZ#0J98B<>x0A9@zK$*|N5^Ttk;A^P%w$_B#Y_Nnc7Fcz&wu`3{>xtgqEcD` zo1kt*Op0j7BKL~+n`8M@&G}(n$X^GQ6Lyw*QOBWGxOq!`&TvK*VjgMOW~HoCmdmRP zC75{s;m4^Sil`mkS`G{OCM0^KVgdmaqsZ<+QVeEh*e5XEa}EsLc?%K|jk#RRlhoU2 zMUqmgW}+abPuR=|XEVU0kZK&Z+s*Ni1skf)05;r9JZWiWB5)kUWS(Fb6_$ud2jI5lhK*(}NX`w1<44E397!Ul!yqPUqBUf#-dW!@A^y2-2 zP`YA3s}wOXV$Mul%$6XS_8=kv18C=Xh>Vg^jB5Pm+b0_E?!9}xAYkqYNqE{JGmPVa z2tpD7D6n^n#;rqkH<^PwLk@siYe2A@lK^1Wz%3I_tjp|s!GmRUj~DwmzLUjNclWDI zbgTJGX}NgGyWS8v2>&;Pe6z2MI={J256u=0q zKo6`3HEh(lRl`<~BP)eA@|k2UcDg&ez<>DS*+!EF0z?ATCgfS#oGMvz_THD&)ogWd zHcML@wng=wWKjL8>-+v^KmFOgyLSaK5!t)kqZxq*FhOoOF4d$*0C1^=;R&*a>;Om{AKorMdmWleLF9-Tv)!GBY{YRfS?) zx0$0D%cb5-I?Fz^Ck5Gm%-!ntV*)xvTP#y?G(c$LJG(tDJ0Ya(`%ZS<>Ojb@>v|-K zD1c0Z7*T^(s0Y?N)B~%X+HKXa<6+BMvt|+`NRV8OBWPTG^KAU;(enX2K!Hqz$UuZ5 zbf~NemLd@va$v9BW&p^Sm^nNcf&c(S)OAvg<7(A+LO%TP!;c<5WY$tdvvHVuA3djq zSY26SK+`dB7VN85l*Y6$(Ev?d<2Wj%N2SltFFyP1^I!e_-w!+0$$n5;2&ol=W&9Rd zeAD6#d(#lnMO&yAtr?RoeV2c~LTYtQAa%Xs@s$?fl$HtF(mr_@O~^gu7>T$%6@X4F zPZe?IYu$6KhJtKrQogFqQAm%l(pFcMC2Wjpt@sktypg7ygvrB%^^F~GYxnroOl*$K1xh;#+jZl7>aQ^>i!s?Gb%U(M* zEu1Q~>juGm*;t>>;a5$GUYG!4lqaZlrY(?3n5*fU_6}I>`BYbJkt?iXUzUj*vZP&! zB(c-Bl3|Jf$lAn7XGBDSE^4~pxkk2AbVde5AgMGm(8f+?7%YNx%GxCPHnGlv9aWC;wHl=e(G;smff%W^8b~!9E=~$lGXUT$V8Q8XKUCxVJdpU7pWblS+L6!f|gQft+i$;J7&If_s;3* z^Ye>KW)>*So#bXx)EtcytrE;zweQoG_L|PV&;k%sSy~Kjq2S2-E1!zjM)xfIB`MS+ zHB3TTgry7(d=fsNUD!4O49vJ@m_j%(00}XSgX|;{9ULCK`QX8Bx7%zsW*{^3dc7XU zaU934vsclCLf~pc<3{LwvqSPJC!J|>(v(jy@uky0ZN2_YbG9!K(= z8ZxfQ;iWPwws)1AIPVP1Ch8lI+sZagaGhp0!4a)1fSJeJS2lp0;b4No%BAUhbV#|i zgTOfCD05i0U_-iVXl=hZ+68fDFsKW|ehE7z+n_RS@+?LZG|*y`Oz4Wk}+Cd7W%bw~n1Di#_Ke)W$hr{`J`DWuT0 z$EYnW#hv8I$0;nc>k1Z5kkRmQ?uQ}(K=bj@(Vg43fBKUj-#$JPgwh`M@*(ciU6$pt zu94bGIRox5`SYIwWv-*&Yj67Tq%T1~Vnu&j10Z3>l8Z|T>_d03SpvNOGMCG3n7tc zyp@uIoC{t%Q&y1d_Wy#e{Rynt5O~upacd)5C5UwyZ`qjI0p> z`_%za$3y_#W)Oe#4^J+3G?D-$6Ij4GBczlpH#rw9O=8wEOtg)LZ7^6YO;easkdWAS z@&})M{GI>hZOx+~Vz#k?Jn0i@5VFLT_q5wZ!nf>#FD6-v1+QlJwvqA9cP5(b%a`ZB z_j|wmlRy2_VHgo{HySSkdp}WF&i{Qi6Y?deBT>5j#tH$$%B#K685CmaKSyyP0>qM^k ziXyU6d!BP1xzx^ypoKu(0_(LDaL%8(^b1`j!)(R{Ln*ahueaN6*L8^a+Wq@?@7`tR z?RINMx7i`zOQ7GNi~GOK)D|fTkA+|6AyZIxUyJBwNqaSDu>oDq5|hP0jE&bSd@Ddg zweCI>>HOBT9cElS%NA~?A|%LEaf$jju-22-6^rC_m~HO_0m|&;p`df6p2a7EA5+gf zjDqcj!M#l00(Hu+#ca36HKIn)1m^BDLJ+{dAq;?QwpT|bh?tqA)Ituxn^ArJ&9^UK zzPxpK>-g|MjXMG+L|{$!a%=zqcaM~vb%a5o!tE+^=v%SYtnJxy4XlCL?2~KX7PCK0 zz-X$|Qwt4zL?jZ3=H$7Xz5<}xyXI*h)xPC|>5umI>3L?rz`k`b%Xy+Ph}krc)0|-j z?~-l%8qrS3$xOzD*&FY=&g_#*xiXR70Flui3}8JlE2TzIBdb9T+i~2g-Bt~QQd$Um zXBtSs42<2=lkGozak}GPqXZ;mA`}7yI%_#$<^oyjCig5!+ppZPbI%Qx(Dv^%ELg8r z{Tr{p{=*;rPzvgL8J=+npb|`1!h68euJy7BXBFE-*GD6f-HKA0rhW2;18Hf<7tqL; z70eUw?`d4t&8*?C{`zlz{=fa()924kO!ZM|Gn3NpzGNqttmO=F(-U&!d=f zd7z1dH#WtLawGvuXmE_C11{cX>1 zjT+!L-tASr2#fSPOg(M;Mb4>h|@hu(}`0PR7L|KzIgHclTUtde0-~u-8c>| zg4HBA4BEvBc20!0MBq5Molm|~uCP9o&-&UpEKc?+R1!3fs_!H-5Yh4R@wZRE9fm<` zWscR&ZGcyKzFwrNy=tY3e7LZ#Mke#0-3_v{{d}Uv}-KBn#a)Tk<{%ozqZgD zYB!qF{vr&YoA05FHu2Ss7g^u;z9L;Bb*h<5KfDjp5iGS6f9 zcZpnu2uPzjH8dh|Nz%CT^`70m#4v&U0znVP$KB%StW-5p*3L9ISuiH-7#2_(<5B{vkd;{F&WA`YW|{Oyxp{NmsJx4-&pt=ue~turx+4w_b$gCsHWju&~n3BaBXilfr;)X!b0JBc`t=>fk`c+f1xaUz|R8^T9jsyt7{Q zLP!#%vC0&&et%Y%rYI*Xd*(3#7?I*M&_eu%<_buLl8K$-i zSx&l8B!qn8$3@CKY(+q0Svr5dcf-Q7n+(8UokX38G6sfw$S6oN_pAQS-MhE%+)+wh zZZ42OX=SzNV3g*UQL>M#0%KyxKVZ6 zmi@k(?S>g~5reof_6{3TUZlSg4WoOEO#|870p0$9iye*5r+BJ3Cs86jiUKjvz{RCZ zdu40VLk@?DCiY@$yVO46W=|4x*tMp?5jG3^E5WcROeShTdEtKgVN4*L?kx)?SeQSg zE%}LZ2)0z0g^XyXB9*o{LRo%yzUTlHoirB!42YVQHJ?6JfVg zI4Zgr^vjFgoxA@Zd2jz@$!#16W+s4oue+zGXNEJw;n$G!MT)XyuPyoRkKM4Xy|q?x z5gU#RuWavW!`?fe?H}$g!h80f*Osi+wmpab!u>AoL3D?L&h0YF$;1v61BI)f)Bnw&8yv3B3NiR5}s z5E20b5NCQOpr#92BzIQaV4f9uvOH?h;r zjIrI&km#Aw9f__4?LNYHr)Fk`84ar|>n%i6g1=ZxkGIeR07hS0K!gx{)3}ZIK6nv& zad!S+{>$I~&;S143u6EbBHZah*gLtTdOP%neKAT9fPV4>=we+&b+Z?$Sst9GNhasB zS_UIDM@L5JSz$R*$xu%y?Aa{|dvg&xfueQgf@1Vr2333O%!p{M z1z~3S_~Vb>eec~HH(nva5ZF087~VSk7R#V{(No|#GOJynmQlW1f>oWm%>vN*yn81s z;;bcO9)I*PSqh%p5Qu{NG*Ts>a$-kA_qZ8*=1V)bxEOA-iHBA}Vb?ICKRi6VdF$3{)tsH3g%EUkTQ^GpK$T|ieZTt@ z7eHwy9^sz-bvd1Up@hQ;cqgjvQxO2{paxwy?MLB?8cWOVLX%y``^?<5Q`us+f>9#v z$IjK*pUO!Zd2FardDokgClDlB019-5P@LG7()QM=12mfYPKSv%ibE0 zOGJIEQFmN4Fq;UA25s-R(C`@P4HA2S%eW)+5Vetd&xo3tHBA*f4?bV2d6 zTV-9G7Hi=1S!(u(&lB^1NteEV2U^PZB;!3h)!pXqy+^siSLZJHtQfla^PF;{t;nv= zNIcc8^QMK z^rh8$1ptWTeT#@h#LR?9ix14~DoXYid|SCQ(Lep%O=(slNi}4UthEP+N51t>o<7ys zuSA30n*nc7@BiOJo=_TL%;3C8+E2dMQ)ZnmXo1Y5R1hI|pV?ZrsAV7yXR|GYR=lYz z+NtVYYfs5oBWZ_<$QW~QaCrOnt3;;VwC9`i|w*-)x1jQ}%ftNVTg%GO=T`wTk^@R8dhs?n-Gpm=No#cdBA0KSLi< zq$mhb%Hf6LC<;BCyCW@!lf$367o#YmNhp3O=-C}qll*8kA`+p92m}E}0*y=qfUap? zdF95PJFnfi{>tI{kkAD-*0_c|f+qx{yWS`P0;6c_5ZJ{1BV_5Kj&ZL{i3Wj>0p3JS z%IJC-ml6bkGr~rv3P{b0m_t0!-Zezjwu~x%@9v114%y3-N-ZAzoHfV?rD##MvQ*9( zD1dr9dOV7VgvJ;0znt%vSt z=W2amtrN6h8ZYag|Ki2Ze(`B5j?sxQMyjNRoDm}mDs~#B-q!hX;sXGr`_#+Kx@KgM z5P<|%&KbgY-hTU?x8FHBJOmITvWDuDm`hOFHO)XUTX1MAl^KQ>P$!hrfEv;OvW^%hNL^@4g9kq* z@Lvci%h~&LO=KR(hpb%ZlYxM;*bbZ;U&S*bnz!yf8g)M&^7pvFngTk8QEbjc{_J^J zdYq33vUG~3BeU0B=Z$@t*onGKyK5BKD4zNcH=h(2dl>)KfZhS?#-Jw57sLY z4c1}w4&pcnv=Cp@U<2mtu z3t>}{U9HejAp4blc@*9{}&7 z-3DPdqk8yp&QN*TDcNm1&db{YSBt{Q>{sTKtn`GYLGi?8)u!f&XKi5geJBbL>O2=Ab94$A&74| zbk?{J90DR5BInjC*O0MH7VzNI+aLV+@srP5FAc~21YPGq>O#{`wIY8%I#Tu=GI76g zJf|@hQH&t~wuY>uldD(1@|9mZJUp;A#=S#~tI`@}X%yj$ryA7W*5J&nl#lUcSVe<8 zr=h5+f@Dqe;_Uo;-~HYzq=2&BxssxVev0`KN0iV7P1V zFV0`KapZBCLRjy47b7bgVw8$@S)2`TTP0jeNm5Cm51wYB!y=g&6nCbWU;P(ykUX+l{{2bkw@ z7(J;`<(c_35C0+whiTWcTOrpkM-BCbFt?^cy{^+ddJEGi%z1#5pG1$*0*DZzHC9-B z>sL*4ba?p6jhoIk&p&?=JR7o`^VS$bL=Y72IcjRT?Q%HhC34@g`uA!@%~vmV94$)o zs?HWgXe@s!mHkN<#vuJ6;^<_R!-@2f{&}8aFJix;2rG_?~og6XK~u7{<&7&yr%4-gro4i}&e)??VY=U#TK9MchL0BoA3Wd;^w z2?&g_w{G8h=l=aGS5KPNTF{`e42Id9p7V>-jSvDFvIY$iu|e$6K_Zh~A1nqCF^VbO zf5H^;Mi{yU0@lUF7zsy`vIT&`=?rjAJEx^P7jbb&Dy%gcBZH96URD) zfmv8sd}w`WTlPM*KKR!AmV?(o?M<^bWB>_i&2aGa8GrvLPd+~rK__4$9T5P#!@m>E zT(kYur_nU^2@@ku

3REwUKGRnr_D9=!YRySHxLwALCENtdlOl~`StjM@rk;r#Lv zblrg`h;+z^Ad3XgFHTRt^{sFH{dd3n;`td7r4cqdKXy&Xcb+SIsvF{&)s@c|t9ohZwt!jT=b-}{}gS@cJM+ag46SrCXWh+Lz6uX{=I7b%H z3N%LF)D>2Xrp4E4ob1=9gPC+6iLh&aV~lS-B3kQ0>)pyddGhqmojY&6`Ia%!eNA`B znFA3mZ`eF0MMqBz$VK(+nE%oe0+6u?a&UO)+xG1A?DXsuSRmW5|h;x)conoOAlq z7<2vl^&2;CF!Sl@sSb8P&_KLXt%hkaxKH{O4bZ(=Vw@(GsdqBY82HP)OLZB2eur-jO{|wYq1DH zfKRTSJa};b%{Sj%tq<+0G1h4S$`C|=7!29fnfD$Di437Jguo8w}D(1)ZZriKn0-V*|#KT?j#_cTAIhW!O~18P87K}qc~!j^PS zxFGgc%FH^>SU(CPk}(=z-CAp1V;g6h#yV?_MMG%Rp*<2%AaD?2AADf1vE16ww!!-l zf`}Mnowd!XA!7|SXxHa_@Y4@J|Jg4-+XO3Qqzj`>gn*qd#>D6-Xf^X`f@ssW(@?!C z>4``LC}JI1V;((v@b=qx0l^w2U%a?W4}6XG%M?nZ$c&1P8RYBym%G8RJmFCHZbN9? z`o-D#|Mh?V-~Y=W{^9xgc?e8ITX)D8_|lKJs1qrJLSw}*mdc(PNwAA0T!7mHhtaR2 zj#r42r<+Fy5h9wq_uuWoNd%qqTt0CY3hqo_mY=A+@G#G;uywsRU6cYdb9VM(a^=3- zTkgtAC(xnaQXmA32b{9yAeHuul$%k3wIt1F9z@v%fX++DHST5`k?m=iv-90qm0w z%)(Py7DwJJJh;DQs#-#jB7diw_xNME+rJYsmpg20Q9RnlBsy|2Qa{g+*;-nT%FlTs z(=bmh(-4Ws0OIk<$=$c#e*5jWPp+L9WA%KtZn(vJ$A|)eAhgf~FpNgf5TGU7#FNcn z5HUqp*FE~qPKY7nI;^|@4^_K(x|LZ3frLc_x-;|=SH`EWA(=I#yV?VWArqE zdO~V5goT-d=MX{&>^B@*ZbR@sc+bHL3n8wWrdc&suSqj5K=av|`^O)C^z`#Kpo5Nz z+93%08|3xZI?W7EjR2Ux)b}Jnh|Ul|aMrAv)tx(c-h1!egY^L+TGL&G*DYp+&`P}d zY!c6zv{jnz1ZQ-NzZ@-&J6BWaY;6QUW11H)Ui{+2U;fVT{O*Up{N>r{hFs$V&!f?O zs`|aVs$(=J*#O{>FX}4hD7l0@+u)~KCK(_f(UpC_0E4YKU~X|hF**j`-y?HDfx{rE zTVcdzS+{7bc^yS%aRrgKG(Md#$`8uts?5-dXa-VWd5*@GtOd?_{t1H|JJGhViX~NV zO}Y-s%*?@BE6jn#ka_<6bLZTH2M-R{haq?oCL(K%UN^EIVoUJU*>?)niKdNVt(_x-6^UB$;Fip+t zqm$Ols5Gx}Cd1Uri(@iX7j_o7GMGAW>Prz(e-<^)opVP=M>lWYLWB@P+qTg8e5yfy z$!6XNx-SLlcvX25E?jSs0-zza`w7$DHv$N7)PE(d_-70?N!xnJPkc^yk|E1AREX(bZHk-PPmPI_Io&#yP$B%ve2Ej@?C>EWjL?C2$a6&!J`S+56yq z@NEb|Sd1~N)k?R=!5EsXkY>?U7g z`6f~Z5rBg zzgf_G|KjZYKm6gh|KhLy%C~WEdko}1Okx5?%=e@Ia5zGrswE`!oHnl^JBiq-gXQ;L={AAbiEg#H@$cXU* zy|`*C64?LZ7r(gw;Qp;!x7O>G-rwkh*Ot$4!%UiCpkXI!73EEX+Apb_vJ8XfB!Ii3 zH;pz_YXs^cjLbp#BuF5G2I=~Z8;>79dGX>oi-<7kvVL^)uN6er1;fNtU0s)hd@&vF zI>G!COoc82i~YM6`cUMoIHmqB0kuS>*g72Mv*q}VdN&b8-6Cy(6H(JNH*Q=%K0XG3 z&1RF#_%Lx}U;c9^tZFzf+aRAB^~=Mo>l!XrsSqrCkD#46aN_eI&k{DP-1Z7D#F4#4sE#YOG{0R8x?Yux&B z>T6xFMrjm?9#4xv1eryIb=40MA)4qGkyfkq$+eSv_wL=gef#+M*jj4<(HLW_nzRUj zpf1gTUFdW~wVo|=;{$G5CZvOd6-sLiT5IC$uP(&hjoHwd3RxfN|EYheJNhCbpbO#> z?`Ohn+f&)2Uuft8umi+xW@R2qMg&GLOX!2YRb9~k9G?AF-|+GN>XbHwfvQstPK;NY zjTz+nS`Biw#`WrPYprVl_*bwqbD|4!-+?#~**%2515!A_|HgegYH#BqqHVuQ)a^^*r-+WKeH2$T9N~(*XTM zvEv)()~n{LU-`9LH*Z>F4U)u5(+k4Jg_{{PmZw5Q6g@Ztd}i0=f+&rq$oWLfjA)o8 zFaW^W+2;G-|L?#5``>*2;)VACjMdX{H4dZFvj0iFDOB{=P{D`vDF-(GxR(M3u~Ww3 zD|(BzB{0vhs5{E3Coi;MdhD&y3E!MDf0hOYd9l4-6d8Lz$eg-x(7{8)W{%4%(-$+1 zv;LWaf9RI<5ymJ<>27Jdw+g@&dk=@q=@Gh zH~=I=JwaQ@NM(6tH>|D3Y5wpP6r@=Wnb3NHXq2Nl~=d-ZyT4@)2y?$d(2 zOEj%K+f@Fj?F}*9PY5ibL#_Z7*$RY5Ld|T`E9MoX-5N8CTY9hlH6a8-bj~3HGpii1 zMvvao$;ruEZ@u-_TXzqyTv@GF8mgL*3>pSt76bx}aknAupv2!KXaTH<(L1|Xf?HVx zU;!eu));HzVZRuAQsrccsy<}vL@2<*9a}MU#(Z9`SX3%m1W{MTg%I^7B23s%3fu7q zfI@xGu^4|pvVe#q{_6TK5fSOF<5r#3)fBglLv>Zx?Qy;NMX4!4L_nBB;NU|Wg5QMJ zhtP%)g4a;^#;w+?Rby=90ns$)-aI>_AO7s~&t5Q?#tTw(t0&Y&69EGR05WlrTRo1Z zX1ZNRff9_FopYdGpQH%^dDS$ovG?!YyMO;a5s3t26jT{dz0k+@n?9D}to4oA-WRWT zr=*dg6ccM58WM&e@X05i{=pyo!GHa`|K?jp>(tL~bjNre+eG6c^UOS(m+qhXiyihS zPCqYH@ORkHs~~LEh-T-_OPH5usxx=*J?aa?K-V0tZOI%w_Kcv$<5+$K%Gbw>vLpRk zP20u%T6JWWU%Ca(eB~Qr89hp##|7^Vv*K@z8n~B1Uc>2=^v?Wc=5)>gQBXkO>8GE( z@x~i>UcYm2u=eb&G0Y>&`4>z}K#lrrEG+vH62_j1tM7<$aUBrp=;#O#e)-E^iZBZx zf@cO5O!eeD%2o08WljeFBCT;vQ{1>ve9s8AJWbU&I>9Uvl*P;C(sn*&xC!(DEGTaZ zA~sEPa&q#@E3aI?ejNZl|NL`fObGF8xo(KD=&4Vf+JuKaj)#0v<8=?}&CB^Im{_H) zWefhfT8-HtxWf&W{?@qXbUmfsmtavqd>R542$n~oe?9uA&Jnht!H!) zo;-|IqmhkONJ}gVu;!eFEHuS(MK7ov5Rs;7jI$fx1|N*E-Un+PkvTX#x_kHT-Me>B zu3bAgIB-qVDfCEco(X^efdN3$^QhA8V004@xbPnnudasvmnF9{4B}*aXQHqU_-gA;-HoXxl_LJ!Hr2Y+@bSEs0 zIPpituT=QzjvFo(ur37@eV3BncczASIz4Wkv(9ROH{Bmk4g(^BAi_aH;1D>35WM$3 z_z;3;A7VtI)oQg`HO-o=3kYo18*YC7;ptC5dVboHpyjRw@q!-hYv|?YNV{HwK@LN4 zr+i362&`@$#*#JWox6AM-Me@7>J<>~E(_qX8V5pcH_1Fish0Nh(r;JMw;y7oNl(&? zAdv|SXJ_ZD)xl@aKKq;h=WqYRAN}#^i*rO|0Pnr7+K*yewJvXd_oDk74g8rwm~wre zAlE%2A)`mH_>drs49H4nN}0=ndZ`BaXfG6*QKt~*5csoCKYjG*;nk}r&N>jF zctP4_N`$?oUjFloH#jkd4jP`n1p$DQlWU(p`~1b}ix9jqmII^N8DVz_S|G%Y~ z8L=LZyK-O+ynZ=THqXCY!d@&5TC55;09b3UT)A@X+O_M~ufKTlA_Z!O&biANli!ZE zRr)VLrw+ply%)Z#pptNLH zWKeu6`|_caiH@3vOD5$JJ)}~mB?~H{=9x9d7_(lliRi|S8+Y&CRsWi%SpiWJCJI7C zK#0fy5a}|tAn1YeXqjpxFeCv66qEqSg6FLlL}SuzR1E4@9BDVuC)M=IaqgZ|L!z22 z98cxsq|vi_X}f5QOsaZeG}v`#ABMM~K@9U&6fGYzt$K+785-o}04%00M9g={)nVN> z&KMITu4h}CA_5SAS(v>B_S6WUt>+M()d7HvZJKq{99Zj^2+Zm{xEJl}AAk7qXD=XN z;~4?sQE@#vh)CHLd9?Yg{s*W{T7UP1BUzn96x+^V(z*L}V63+_ZkZUcWdy`{d~--~86Me)z*5B9Mr* zJ|Lnl)g|7WMFtD_(_csM8O@0kCyBN;uT0yF;W?PoHsA&3@!5hGp7G6F?>v<5aB|vO z$+@#Ot(T0(;%kJK&v$iDfzB+?6^rrlkgbx&Guz!(cHB=E&`UYe`swfp`Y5gwZ6JYo zTpZ^2LSt0Wy$o{5DLD&)g!NE<4ozt*03Uz+%T=@b(tGc%Rt*4vdMfQV5=L=brk0J? zSaj|eoVr8o<${ql*8BG6&6`i3e$uw>+2+hy2h7#lTD&M=I_Uo82;9pP-2Xh%e$2VN zNTEZN5@{KfGvs>YQ$etZv`FO++tVyzt&5MNe84Qd80!_NDgA zFv~AZaT#WxpPQEJTbG%p8k9T1j?GI`bKhh=GyHt99xV80i2|?#VTUF`HVTBu0DwBs z6&`KS*^9-`3yROw9n&s$)2*0S)h3LYDQQp_9~BpnMV*M>4B5u54-W1ZykmAFX0f?ehu3}Jkd*f9{N2ezMAVMNA&g%Af+#9zxu4x$5brnQG z5d;BYVG)k|;+;M2ed|LAdfr~6^fjxsZ5lLI(0XZFIQZFzr$7GS*(R)oR>8BOxT?~% zNLO-2D)0K5T}Pj1GS9!q&I(XlqcJ2Q5RqQ|d3=23t6%-KS8iN0MAjIQpz(=IIMll@ zUy{( zB^RL#*MbH2WP0u9bTMT)TTc%D@k(>AFc~SB*HxrRJ)sj5B_<i*Y zZ;$KDSqvBeB142A{EH8N@#xXJw{PEGtr}*=sbF=B)4cHADu7ZdPJLWlHeDp8+C{)x z3xLPRS3daQ0}yy|dgh$tiuPKdFvzop40wC*))jL9;^~6;%z(WVm{UNO_=ZfSDetl+ z&r4v!OW@%dP`YE(i)sJ>AOJ~3K~!@hBHsHH2&ZWp^G?wE(l6T}hiQFu3V)nPV_7TYJ5h=V>5%JUHXew( zJ-RqnB;^?Io<~k&EgWA3sF_lAhN*_61Ene@oO9Q%U3=}d*B(83ba;5!xTa|uW)2~c z9$E%M1kNS}=`5ItUW?WoL!+et^p3ZXxthfXt25k zZk;v8be`&JkSoEc2iG;9wdX?69dhqI`?xpG9FWjj=bCl1S{vI4A%h9fY{KgAzyI;G zQ)<}(I3{Ro=pZi~hNFmW-3hOy!DzwdIP90O^Ymn9YgebIr~mKY{oTL$H~-V~ z7cY!40vJNjbxan9Y3p!gLo|CF?KrHgn~LOFztDJhT%ybR49AXTU-V&D9CoaCB7c_5 zTbV(QfQ9C;3^?Lod zpFuuds_c=Dh}av42nfFQP2)g#vpH`!?Y;Z=t{z`;&UFDQ_ZL;$`F=6v0+V^f_T@e9 zUFHBFu~@uTDqHdtKmZmthFHW}=Nk9q$x{)~>*7+qlx>%f?vVEr|Be&GD5%lr3#JS9 z+QnfmF_K3!OBMcfNp)K}XGXVJ0({pZnnVQAWFlkA=o;Ldse2=;!E`sih@KliJUY1j z>h0^-uZu|AwnQ;zZtdt)ps`O|UaqDw$rXhFtfl%M0xF+bmSip_MA&1P=XtB$!amPd zkjv^E%)ATHT#$1s@$;PH3Ypp+SxxG>#DlSrAK;!lJv5~Zjm~04n#$0D8K0*ROHecD zZAJLv5?(~qdLg2dlan{!eDm(zyRW|bsx@xCK0spy&{zkE!3!ekz1$2806>D#`5*|2 zV7l*Hv{wkl2wPx?K6xla06}Bc7-|HYwuLqzAOR7eIAm+USgSXR_k#sUuiKi~j6ne5 zST`^*2r~x}j<=O3zhwjwJrj+BJq7iR))b?xqy7^ugEVOK>M7o~m38r?ftm+b&!-Rl z-@uJDf6zqPt>ZDYx^vy$xFs@i4M80PqB$Oz1N*>%gYRw~XXX$@L;#I3tJT43y>?Bb z*UJYnt*k%(Wb?zHd>Zh`ixn_&q9MS}wSdw-9!ajZq=!*1os!SHzR6chgkubp!^6Y- z_wPS?_<#_sAw*%0e%Ic64O`d)8H&st?d8IMNw#8`*Aysb(jvoXMN_peM4nlUv4|K# zXgz=S*=N7=yTA97pZvs!5WE1Q_a3@ckHz98XV*FU;K129QXtE}T~FK9ARij`3pzLR zo|ycDEYHsN+IXK1+lxCjG%wq`ti#-N+cVz`KjoN}9Gn$O_l{z<;*z5=GyZ!|CMgAq zin5v&w|8nckyj(Ix;HfjB*EHNUu2C>qcDI!HsAsDbXNo+*pty(69OBgrg4v-JidB- z^{u;i8`o?dVpTpN|nGsrKmYaWOBH!~xKk9cvqbN8!xTbP0tZqrRDFkNn7lUFa z*Mm%-$PJ84junPkDk9M(RdsGXH>f)X)>;*KSFT*SefzeCVfQ{D4kAY+kyv0-(_u?n zE;_7tNHr$4JnTM<=U)haCsx_D;1J4o;Fk#J;zGDcqXTn~T1JW}WXkzaFPS!-TC+v$ z=1Ag@A7(I|n&Z-xI^MwfA+ozYkk>MgZJwyxP_@<~;(EQlbLYe$ zxlbx05dt%*I5C(c7{oj0;*=P%==RAis0TF(ki;vIL<9`lAP8d7G$MG``he(MV~DLK zOIA(Q&e>h-p!_ac#Vy2p&p`k*{)LEO@37vjFfw$OHmY5qXA%>jIM;X66{LpggSx{* z{3hvc(_t4NW@oDxa89pT4Gr?_U+DS^t+kZJa*NhDk)9rx?g%|ZiOn2>1m+N!x%I90 zJ_KggtGE%7nr79kT(epk=Y&Ya1X;cCs~`O6)2Gj+WrO4Z2qX{@WON~=S~RK#yf-Cy zw~Ch{p!X>C2AvZ-TAXv%(Hn2R{-yWdbJh@Iduo6f)RmS%VB~qOycO@H5 zb-__W)j5|-$b~tLF`LZ>007OiXP^JYU;fpf{n?+Lo}VL_5P}cET1#YDPc%#zZljB0 z9VaiuH)S0+$cv^e@13F`KyGK1O{ifGeol|z0>T#DaPmi9X$hgz;zpTa>b<%9&bul% z`a_F@{pW$rEZsKad>WVm>L4Qw(%*46Ksx<(!XY(phUrDROK7tdlz5_ua8OY{qj$ZV z$1qlCBasa9_6*m{lM`M1l(k?q;n?43o+$tWQlMZLmOg%kq=f_#Bx-&5v57s`cJAD?L9ZA_gg;eGw&lM&?$D`$;hi;5WaIHw|qoUeq&545%LW6$daoYn-eR z0ljzQ)~mPw`}hAl5pvMWKZ7MJgg&sbuHCd$#e3_xy&F7z(n)_epUGLdxpS&%yO&Iy zguJlca(=gw=#$H#5k>YR;Ts3+%~mer{2x-w-fso!HK3nWT9tj_FxkqNU!Zhf%?87YaH zguKG+?SQP;wlWf8rwycn9grTwCE|Uer79kZwe;~thickdLKej7BUDqRhYgW#^?P}x zGgK`GzNU0gR~cTqPK@&`7Ts6=LAskjVRm-LJSGJW0F~MrBlM1QQBIkPejN_oO7H-G zDhD+HAa|vtUn5psD|vN6ywOlZ7(hB7XL8QndG)mi_aD6Z=37UHN8Lr=oqX$&)u3w{ z-7DyOLJ~neiLGa?2`C=AR-;#hMXzzuaO`^a*b-Vbc6IBV0X(?#V9qw|ELua>I0Qt{ z9e80tFb4Eov@mr&!vsKj*LK{dp%`YL0U#bM=NKml)sa2LX3u9^#DP2oNm^ly{T_9^ zWS9$O+9qcZl61|OgodlA1H%##0Xb(U^`|phh7dbz+%~!^PR1GM8nT9rAw%(yk!sq^ ziXMl+K8SeT7!RQh!W=jR7C~fcoO6v^9j=>IBZQj(&K{j@RzLd~fBezu#uJhiW*~{H zRQ-%ckXkAub8*R>)uYs(grpnb*3fG04pytLf9%AONht^IX^%D@WWsJ z-tT?m@#81V5JC_#I{eiXFOZx=po=gtH*-xn^Fi-95}ObuI_j89SLt(Ie2Qam9P=W^raAGN)(fZ3w^i{+FATZJcY{766PP5eeR_zw5$Q)Ll@bv_0ia zvcuJgyHqh*s*rbOBJ|!98dZP{(d|30{`4n56_K{xSnHTW8^U_EK0V(wD^~|07!oJ1 zTA%kf$S*PFe6nA`%PlpI39x?VQX(vj+>=ij<) z-j#Ft7pfNB>^X;CmKLt5&Ac4W>sz{O;M~_O9B8=_n6sEq5UuK+d?!CwUZ%j-_wiP9 zH)U`F$0ajm;1B`;q_Zl?j~4(|tJRGgue|%{z1z2MU%h(OS_{>hUH;s?8EyvlV}FpD zx>vcr3j?=p6o__{ATbbwWdQ&md?3W8vCa~K0HSRyVrQEJ$9_Ws5K`ZGAdHu;0g4E6 zJU=c3h`^{W^C5XeiYlwnE%BE<*fk_+-l~F9AM00j_o$Z+*n6}$3%wB$b#D+!ih|nV zam9psXLY^X%owuHlChoN6JmefJ_rj-VCE274de!%gZExH%2_~w$Qm-vHV20X#-VX$ z6Tmiy=jUc4$KU(O=TDvmjj6{1hGN|Lj+484$U9SEYG~KQoFP%pW00!qQrhbdA#Uyq z@M^UZ3G0<3!vFDq`0bmwZraFm{SiwX!Y?qKLtr}912+G;1VWv5*lXQ}m_8;<)Ey!Y z>dwU@gkW8BdV2ovzV)qt_})LZEw^pUL%mu=NHh@Q5*2?Bd`AjnCVOLZve{sFvJ6d~ zqC(7n^eJ;iEEl@#{D?RcrFp#GUo}~t|Oe0o| z!HKf6sAy)JtCS#PBq-QorzVss_ZQf;d*V2BtPP^@twgoE|rwQDCI zef)6<99R%Bu&{9B90#5X7TAO9rxF>FCbO9D&zZ}rfW1h%Fk3yHZ(m*7tFB8)#q_y1 z%l)cSu6aX;zlIAk#;93-e0(e-o6SbEdG7(Bzqg!)$fRw)T;~5OiI9}KO#bf&VLa^$ zY%)0LEFhdjLnZM1c<(<~p>gU_RzJfM(YMq5HOyR$os<@N91PRa&aJSW8m$AGz{qOC zLV6YzX9I1~w9@Nax`WgysWrB!2d5GAPmjxb@1?t2LG5$B!AP$bx7OXh{p!PqkKTU! z?JGxDR;yK7VW%uM*eFX(;a!*N-XLo1?+ix7Iyt*T+=3Rs)hAffg>=428|&! zq%9TQ^#P%16GjICb*t`n!$nwww=jr+2(v1a@f5nwFS_qdQmNIsRL9tBifM9ZgU%rc zI@$|@03i&0AG)cmkC(1xBcVEHbwo7XiPw%v0QGhZgVtGVjWOihipW}Hy4@<&Eo2Z8 zW)O(?jmNO+>C*A!txm=`Yn^rW@aPbYkTGCZJ~)P}KmOpepM3ai6UdNd5dkEkAkpul zL%R!6l67~%8nwz@50klJHSCNuRS}`FCi)l#wnUA!zwzr|edF~v5WpA$fEa!*GstH! znZjo#jbzzl*n>RiT`9J-W08PUk`6`2O)lqQ6IE%+F%oii){ol%Zhj?aXdr+xJy;Z&-O$wcb zg{IytS2_oBFzZO^t|3+1+gf{me*WnvPv3w4y;p8rk5MbT)pur|;^(QlE|O=tLB5rp z_P}H-ZAAp5(!;CODg-_}JPaW`dGaI#k7R&>tP$ZPA4g|}ObqWPly?_Zd!{`q+6n*E zRWS zOnI~RLt&ybV*__J$ah(gS~^&!<$npGGUST+YyUKX=_J^E|9S5^7w}b)Ay*9wQ29fW zx?{CYmW8nyX9%RSI<^s@!hfKdjN+M37HYldo~q8&8qiS}+Ke$bZ{B?Gz4zXH^Ub59 zqt$Aa4wz{16!bB@EYPEhZgsYrJ`x`W@h^%QP8-Hx7)@aIz9j&+a)t;v5Mg(BT1OC3 zSM6wxBY;3WAq@zuF6s;d@pwQ~&(&1#3~~@qOJ1_?quqg+u3k&6(@pY0+ZiMo{56$w z`PseCToQ&vBSO+XvnED!GsYOJhsLopmO95q7SI#po;i3Qn7xKrXD=bdy;35h(b*3U z*47y$U^GChb6Gz>YyR8!K76r3Fe@Ys!T^Y9SPu#29KL`7Y91J6kNT(5HL->z@vu`zx1W|3{lf`{vDK|G$wQE>ZVw|z`q*WBiXio%JbAF%sl*sNk>@+ z5Hiv+05z+F=g*%%dGhpkfA1SV{rS%~n@!Ll#87hP*7jyqUI^dO7u|?hMEQLxoHAf? z|D#2w$%0I~;yy4F$IaNBClUI~Wz3szKP+=&_6KFF#zazl$i2{Ej5|9~93!U0AAL5| zK{zENM%z9({ynK=q=)>zu((RvANLwf*ySn-F z8PcE*r_Y~*$o+>8oVCUn?Ii#SAs|6^)MvXS+I6>cn8pqAQQ0~p`sb^gpHyZ_i3kD; z3nB?~)3~h@(xBT|)+c$390D!Zzv$kzD1L%GlAY%Wo$N>1SfEpL6a6)E6 zrrzxga)JUlO!fOcV8*X`oY>1vvolM=Z8RxXs%tm{^0(Dd-v{Ny?U~0R;$$-0jIXa zC)slN*U=C2e~X8#=XIBu3I<2$&2=UNXgtHFB^D&pSZBz9B{oL%u)3D;z#u|s)S^a2 z0b$fL=!mhV)`Hjje8si80j&TAX%x5cc{ILg3(i>jQJ!a$pt~Kqj=- znWkB}#vL527?>;taOa`%aOHbH{N$IPv@JUUBLd7oWQ7nkoUPWCo#Qnf(W&{{X3mwc_cF+fwhSfABGn@0 znLq3{Tmaf{%~TKvp2gilh5+FCrajxVfAS~)@z4MK&wU8(CXjV0lIsYpB`4%BH0SoS zm9DPoA4Yo^%VBfzG!V=cGvxaABGY6x)2=wDsFgkZB{=kt=I*_BduXx4CigREm@Mb% z!8%Q5l;qQ4Q6#Txbd7U{nfg!DS+aWTTa+e8V}{_)6Z2fo3-IMol=sg`!xj;Bvoyv8 z4j+E-^J~{m9zJ-42;JH_l!U(kLR$qH0L*jLuE1wHtN6J@ASx4f!K>Z*`8gu4R*eW; zJGu7c$x{yD^z?6-O@c*MAV&gNREv;+7rw(O5UlSDt>0EH^?y>PBC$`;Vps{ zu%59M5Ck%44H6j*Ag7xsdTANOJ!%mY?tl>yfS%5dOBx#VtT(73S}C2oW%of4AZ^2T zgw9;tv!=x!DQJ?1v|Kj!^F7H3jVRuVVT>^*{f~$U$!LALBmnVNaj(JVL-1asxcQ)0 zX0)C~0Ff<{v3AuotM%GBgD7MOjSH~yaP@;+fB=w{+oKtrtfRPeq6n+6 zgp6t9qrE@%sisJN%tyyva@%yyAb_!W-~GlnzOnH>cmV+4IlkpM%zGABuP%ahVN5~Z zgBJunSK*XhHjY|MBXiTAw%tewFHWC7 zeDv`6>QxgX`$_Jq8UfAjlg}Zzqd{H=bsH7&qpL7e5;^5W#C*t2I)V<9`tBNIn8Rw- zAmC=RQE#)`w{Cs#iw_Xd`<7xT#O=2X6sS$LbO~;Aa2L!&u=~-Bp>{Gi-gmocY6b~WBc`KBx>sBi>$T_-%|=v% zTo6eF1%L%W)U91u7(ipSvj}u|d4u{H=uUdK$0!`H7URyMm&}Hb3-0+!M=CyiDbNqP z;SENH0MQsSM&qxMF8HgQ{-bIl}zzR7FWE&dH7q~ z*2}<|R5i2Kqb9#zPQu9_GdYWn>oJ@%$akGF^R2qY1-n7l2bGCu$cNbmYq!NrUyRSG zH&C%x8mMW>r^uN*8|Z^_WDRE^I|ki9a2LthVtxr(vir=7R!pYlz16ik$9ac}#Pd1KS-jYP@N8?soIyTQypVJ=wIr4( z6y>D4%@oYf-EB4-M6%Wbl5>s-*X#AuPd*V5?}O@8J8qJ1*L!w>Hd1iO{IR^2J-G3U zOc$?rQZx^r_aNP9Etf^8DH)rpQ$E*Kx%_21#kX3m0Kgb?_3BlP%*@Q2&8E1?a_f@B z%kBD$z+NhZW?>XlLse{^VYbd1TZI^83gRB5zO3Gv+PANjxrL4`Tf$*hmFn|g&8P#g zgoXv!tz=3131ow-E42ejXQms>7GH+XeGy|U5v^9MTeoiAzjy!bx8J^g{kmQ@ZmmV6 zJW>pRhTJK2n|x}>+mfoyn^`xxPGdCbOA#jH0TBR&1W6DX4TJGwLJNo%5uLGQ&=^Dn z20#>N5D9gMT-yTxYK^Pj6g_yg7rI-N;wkbjK2dKT3kawk-r3t-hLqyXVnfe@%-9A! zFHo~$QKa}3NkK7We!62^cgHbqk7H^S0E=*p5fE6n#M{<;@459MNC+%J2+0r{i_{qB z8s{3(@`-fB#EwzVSK|T0_>_&E^adsk`;BFAm$&D9&4R)~%S)3N%g0!{Td_S2=`P z`J?a441+ZSL_}=c_UwG~o&WTw-}%mWK*)Pfu2DT7awm}tMuK0@O@rz%``UlRW6s+zvTnJkecq@F?hhm9a~x77XeT1w9ra z-Qq2#b!+_@uixu+ptv*%A|T0$3vwl?Kx&e!;WI3Idd8glsv&cVo6%U zul~}q<_tS#!#-J|f*>sX@kbxsx%294ckWng$Y6>}iUXIJUH5*=c1@?j5>J8iJn&*( zlx%M#uX<`O+1`LIr)DLf~OTu;LdScs(*uu`b#IjWe}9=hEd|bUA565YGNxN{w5yj9Dh5 zZ|b=KJHv9u+?`@htS0Zi9_^QCwUo;7!c-`2^T;SB(jAY2X@c}%r!kqTw63r&Qe#zT z81J%LZBhb{bj?U{oNrQ>)EH71;yk)OvkdS5MPqE!tPa)(Z@lrwqlfRl_14{!lar=t zy2EHz>r7)=@9C9Fm4~b=Q^Si!=buKi6`+cgc1q&Eh}=bIBXEd>7!X7NfsC+inc9tb zAs{lA$Qnd2C>9YR7>ZW6L5)3*z(Ph{)Z;Fn0Dzz%=9}KpZWai_m>JShlM)a>=6JVv zdVtPE>GJmaYBIOu#yRx6>*?DdAH+qLjtoddWDQX?$W08=fid=s2%#PwWR0fI>^XS$ zo_z@Fp&ldz4xUBS@!b&Ndfm8{bGETfLqyg(LF=XY{MEJ&HOoeJI<%>&tXF2=ju`V>Mi5F37c<>>x9_Z~fbK!}716WtO6Bvkt|0$;YM zJuaQLWllx%Nv)PVQ=_BKQ;eyCXgS!Sq>UPT22Buw2myov0y7AK;Mw`+M?d<>zy8T6 zT#Wz#AOJ~3K~&ejvpM(YK5#m5#y}XOF!Ug?W6gLAU$iQc2T%^PAsL<7%Hl;9)SVj@?wdQw;#cfV}(-)xNSFS17jTnaO~e{(TWRmssRi zn_fn5?m8Y*{(NXtmyVB*Z{50e zFKK4fY(*EOpEEiVhhVKGWAqkjop3`4dZHwaL~E`3t-SxG_ix|6edWrrb1uJ-TqA)E zJDQ;L)+#77`fvOyJq6~AjOM9uD0@F@%fJkPXhcxJ0$^ZlSy)66jUi_(2@tSr$Pnns zY7vki2w<%dW&lKbX_sAc=@DvM>i>7X4n> z;mOjkEpx?3sS>-(=mq0Ob*mImy&IUiF|OB&2k{}a-ghU*Ly!;x2W2QjM9$i#acJXh z=IiwV855Wo*B%a@ov!}tKYY;2;h9GUB5Q;PJyLg8&(o3Tx9EEXoF(Hu>7R(m%uQp3 z*;rh!S9k8b`WwIgRY0(2P+Q_K83uKmsi!l5cAd-_&C&{pvEN ziB$lgZCgYXKx2$Bw84M;@sof1```TWkA8N3ejWyQS7p$~aL2K2jKl?1?#0cH+2*c=NR{zhk_BfmnOSZA-avyQqrnp?{7+-G&`DaQ3dn_tXFwF8ss?GTl_yF~A@W zUXC0>QGB$PxdDTHo_t_z(MswF>Pu2x0;L;GTXPn*Z_BT*N7Nb|JZ4i>pP$Hwz(F>C z6TE--OYg2%4NEY?z#9ONhcmgXlqR9<&E$ehE$ioX&`~L~l}i_*Z47zeTI&eWT65#Z z_0K;2^wVdb=?1y5h%k`>0QSKd8^gTLR+vpckPpI?VRU-9NT=*E*^DAk_fekmfuAG1 zwYpuKR`>4(JNl)jovFe#mR zd^o*?Ngd>(VDDU(rqI|b$+xFmyuIwc#_{UPU}oD*b^zG61U!_|bM5NjZ0+mO47iIy zzC88VCJ+2sSNtXZ3yb=4B+-heAwx>o3L8?KVC2LG-k9_2*o(Y1_cw zSfgi2(!!SdFdJj8T)Fbb8*jYx&i%LEx_fwV*tlkhozaOVZxJT5N8&XxS)JG+g$d1c zzC9Js+n&EHe^P8-L8~HjdP67x%s>DJgaDC*L70dF!?}lzCp9%!jcFVj0wf?nqXuk8 zPTg@AgaDuylCx0qu#7jKcmDc%5gLPlpax>sOS|=EZ($M64RZae<~J}4GjIs%G#~W6 z+RIty_}4+}cG~+D$&)$&x4!^ zdTr2f$)>h!k#5HN7)>JurYw{t38fUFTkNCBuUO69i*XqK+R9zSK+g-gaadt??b+RX z@8-NBGF)?=Am~i3<%q=&Y$^w3*))trBpGZuoSXyZG}kFQ$lQ3IVVb#8^_QrM%`;H- z=CTa(vDZoV0)rv*Uvl<#hB-yy#U8Z~R}4Gj@> zL0utSyLRp4$B#GXo7Q_mlZ26o7-KruujMjeL{?5=J315W*P@GLn=k&-nCA^fo|jvQ|DyCo z_I53X75@ph^DXpW(mCBcyEWsIzMkxY1vK2%J*SwOx0hW2H5ISt_r3~RK>2CN3o)6V zR6CU@M=4WFMk(NZ(3_|+J2RpMiRkLpt9S3-efQmWUwiGfqoXU%x!?l;=u%lfeM4Dk z*1A$h%JbBHR8J*^T2&0^cqC!g@v_g4g1`X6U?agm5Q0G zr!r4<@f6q|ps2?*odb6qY}bV+XpBjkG{(egjK;QYyRmKCwrx9U(wL3e#3VZ?{mt|_hyxam%YMje@^l%jH}>g z{B^6k5sLU(6y%gCQRozbZdtmFOD+7XMB;=egolCl_ev*jl(eiqxmC#VS>l=Qla@iQ zh9=~H&XfL`c(1?XwqbQIhB|&1cLZnLD1z%b_9#hF>_0_7^+Cs((?@nqg3bmp(L~0S z$6(!No|qU8s9Ns^9vJv|evl-e3l=9|f}`n)g?M(L1xyx&xh;|In|t&t4Wq?0>r9tK zX?l{2Wh`n8QA`wqYg|Uu>wNF#MzUO?;QR}*3ea#QVe^QiF1l=D!$0xnvrDf!474Ox za*q0{*!>djl&acATKh0e=&^7ME6CAE&@+G<(Aie33L#DpdwY9ewJX3lQ(kXU^Jz*g{3y;6n6KcwFN0<6g*f(x-CRFa4MVia+n`Vbl50Ez61fJ5qgk ztMtJ;c?=HDuT^&69FOKq_;f}c%`HN0LbkV#0@k0vIqco+E|1#-uq6}R|2-~EX`e0% z?&1o4^|r`NVNxS4hsw8wJcMiMUn`mlBLs~4(#tp0i#e(6dipx~m^uE|}>6-XbB$Bt?8CP=+PCcrHY z>g^C*%pGB&Ob)Pw{S&?#XnQ%l7koz`9ye)T`T<5^OnHh9uapXs7^|D(!FcUmkB8-5 z{rz~K;U#ph4}buK<2RK@35Ct~TNQCQHoYEN{WeyyT^{sy{wE$E%sUcUjq7&*bYk~@ z(AVkkKJ3|ojsnOY3C6`JBP`iSE1BjjcW`U+pwzYa8Cx|s>a(D{iUX&sQs909+MoN2 zzjyZbcAQiOzKZdGWc58~$>ODh?EP&uySagLf>okN3xNdDca6U37F#A==K3l!%pexg z9;jAqY0|61gG^oXX-+45)=vrV!_9BR7&5K!1VNq1%i_1I4)u53GxI?ogt&W~GtY)# zNw1)CmCkE0E$zQamp6a-0~`y%55wui>84d~^-2iGUpv)op@FC~xjts$y>I)EF`&b2 z`i)qmEK}S+_&ZR|ly0M55Gpp&lh!HLHEt33dGeEBn<_X-{AWwzXuPw#vw#Q~hxT8- zGMdmmSu~wqLF1SCVEb!(%?iSfiK-Q-4C#?i#M&Lie!t!a>FxCl+{lwZPQ4D|BDk^T zmYKBbwHv)YuZ!yXygWP$#<8ApV4BTDJm_aU>oK#BC6%~8LzDtT&Fvvu@H2&uJq`*M z_MR7Ax$H4i(F`EUf_pJb8IMnyhtZ|d9^=D3sjT69z+~q_DF>HHwi8#W9ymoL43&t_ z^X@-0#Ob1zG3(LWPWGww#1Hr@!e z7p+HElO&h>&bh))t6^wG_V6ubr3IWGgl#cS*XdbUw{q4k``P^T10Cb&OgIST*M-L3 zvEknyGVh&Qv$kO(mLr(_Yr|5MrFpm*Fe6`oYQZN#bTAk?IaK!Y3X-N~v*seV=E)F# zhXHEWC}wus|KR1;XM&k>Dt$cYTJ%@!^*$eD5&7KBfm?_?9uG%f-`-VgXFL4D zzua*M&C(91quLE*qCP$&nQaJ>yh=St)pk;vNq<^%`7`FaTg0AOtzX*Q$K*g@>r61u1Ut^etCQl+0 zRWy7?a}>DlSaZwOvgk=tg9qt6VDoM!IfEBEfAEu(X(fjxEmD$%|I`nFvm|yBfd8(2ZE7I;gVH=hKe9QW7YeO-aG7`0`tK^3Wa%w+-~BESN0iAEw^)5a;L^Sw{8nwPN#?Wt9ss7iaFV1Aj&<$WDM^}Qjek z6q7V*%dW&K*ZzrUAq^-(0?yaP{@;2`%dpqywm6tss_s{0iQD!QDFb6%wG%H`!PH`IFt^ZfPmm-32Z2HBGN+Z$v2Yu z{2OW+d%I*9{ngUz_94aLrQSYttE({Qk7>g`l}Y;og*U{4Mk4dI1Y@Y`MIZ{3igraE zwlVmi3ii96uY+lv9Zt^9#d&w`&(hY%zW%fc9p$t8@I4?BQtC8J7YN$rgB zrW(of^Yz~9`&*T9Lr4IUxBMZMj^8-9>DUL<#p3%aK$YvM2b|N0E zQ3ibe3C~4QmtEhFnTy<9*sz(5xlrLed_#}@6?r_o(>guTGcM~-vN}_%_YmnG$?>J2 zMpQpPZqnnq!AsACi?TL!-e>jI%Xr1ynq3kPoN@#ZCI-Zhg=#~Q1dsuOVIcgq zgiWK(fPu+CG6@NE`d>UGB-jFN!nqK007w@R9Ck$1$;teT)!H~KvB4NdE8AI{piZ`# zGg}cBJ{WG6ddt2}0f)&8BoAZ7BDP|*0dYZFvNBoAXtOE${7!Acx|UY+(U{s*?6y?7 zU{@CrYE=v+Or_Ki8mS6|0y0L(LK-tl>6fbrFhNwFkkBc_D+-es9u#aU3}Cmm-VMe} z8SL9WSkW-rO9vgqnBY#V&_}ZPEB(~MnBo6ClYYENH5G)OETuwlZFm?gAkcsfpunuf z7lL`QCYa0fVsRX!%s^zZW%#6MPC5_zJ4loU_?M22_lXXM``i2*2zumye4YVs=s%Tp z@e+U4rarT=oWhEW^zG);B5)-#0*MEeg$`WC6{FI*T7y=Jg5s6^!_F&uN5?Pu#Pp@o zO?fi#FZg03q>$t1W)EzT9nJg?Q0-sz)^|Wo3=;d*VJTrfyV)DN zaCSm0LdF_CSq@=s?P?(4b*uSxZz`A3?i0ssGjnI@p!J|_8E^glO4j-QAEEKTgOXb) zK+xPU_LL2Pqo{>REQmd&wuLEk6Ba^qu^W~p-yCk=(agrP(utq!PF4;HL53i--r3o7Y1-FDfSMETxvh4*+XyB4E&p!4& z_Q?A^u!OyaRmKMw7ys#u{c?xTxE8Q7QX4~xwX0w)4Y z(4b%>>7!;c6GV#+z*u{@nW(8QwL=YBPS{K;xv$1et3^u@cfV zDWF}4{Ea&xN}O9Q}F*0G5?ZEo&OuwVc%qsgRbas;@kh)|bT^5~Y&g)}~fgsZP7NPh?>P z#0*FVhmf>{Ycg<35}Pa|!oy+G6R_a};AXex_E8dpqD*XO?w&*Jp{(Nyp!@*<=3H#I z_#C`2fv10dFs|(^?NI!r!AhewrtEJADh_T)nW{_(%R2Zd3(JL=I{1yJD(xmNz2_B=O5pH^8`@v+tOTK zn`aZlju|G3@F8^^|Cq!pJNErz9Gx7P(NY@`9uT7N-+%@7WZn6FwDnmdF{sf37Fxau zxwq7bM$P&qEhnv`l(c?nWV0Ezy%2uQwyPAdHDOBv4k|Qp7~2R8*)-!3IowXY1|9R# zz91`~EnWTDAUw1|zF{+YqOkC!Y+EKzo2%&;FYZd%M7cqMMP(q;e4bBSbouN4)?Y(* z+#EDuXoa8I;qlKZuO6BEhqFEF76$%|`YC2|a<=KgZ4(QO)8TKd2}!0L8TBf15{U}- zYi6^Nm6vR*U|oGot6YxM?k?fFs2VvjA)1m}ot~F}1FxM+uDhMJRyJ6-HS_7vW%7>5 z6~zEJfq*8`-|$m~zVZ#ymG#_0u-aGHH)HgIU&T|_eK>gtz5JT`w~)?uu}cl}kC==p zXU*wDVn*_1W2&7SHKH2bsJ+rZXZAvnVqHS?!6IbF*a^vOWq_zc9-bfG*VCKJ`kzC$GkuI% zQzHt*|+S@3#HWvZrqsQBOn zfM?+tGHg@R@+E)_WQjohs0glN5+D&EFw8K|r2Q4UK(oNqKmZDks-GBJ0H)E*wP_pw z?fcGD%+7h%L75rj8GZ1B71TBgv0XE`m^XBN*{FpH8(BGBh-SBLURu+&okj}%QXqgX z;A-5fK!sTzSlUF5kSSwUnGKW@P*Ex`tVW{m&^S4M^nKd)B0Abt{`RvJ2OFm!rl74x zYKdDQTy2B>rr{Nz-$YDmWBFS(F2OKkzkiJ&9(hRO&DFnu;8(hrLL2r=6#g6|*+Ih4 z-z6x*dhbVMRns%JjB(TeC3XS2z2>*7#mMkt6_=V4C9qF+WJI3tv18_Qkl(wl*5zC- zu4swNeANXJw{ZfO8pvZ_b^bXhMy2fehhRB!6_pfej4W_CXLDw{;(Zejy+!jS8K+(MsaXfFlEmz z8o4NnzU`IS>_#KM&L)6DkY}7dQV_iPcW^p2>=h zpJjBaW5D=GW=L#0Y$%Q(I;L>77kmEqoE3G68}_QHy-1^C^|`#?M87v*A2`+hJx#wC zydWRpdtmAcDW;RAE{hBW*&Sg|CS_396jNHlme9=Xqf~G>&Ng zlJ9xsRgvp5hbF^7uPq#lhbGk_n9o{y6$3;5< z6T3S2hpvkO2BI}D#pPv#Jx}ig>K{jO8Qb0sBn5yQJf$$U$=VG#PZC)fN*~H8gKOgy zlr;Lb>CRFJ<&ZE|;}5=PAQz%~)`JH9JH>gnSQr4X(}8tK8INjRAq3Ypq(N_DL4Y31 z(2$1?c=JuWB8SbgGY%l^#i>?`i^Ik1=B!(n=QFa|5ImU_cyV^S_`Ajj-rWfvGRC=H zs@UlkY=K!*v1i$l!em39-@^f8>0b z2t5tt(oyM1575~mfa^cN{>iPwfVsnY3{JT$16IG|e%y1g2+qnrAfw4rBn5#3&5BOJ zC_gVRFTUV7M1JFxHj3zMHunwcjnu?RPxrtdZhG|YEL`eT!$BW@<4RxNkKi9Lkj!y1 zGo3`=CP8EcL>6V3q}zfI=VQ~8S)|S32l`GZ3RY7v)~wJ`%Z`qU7@~?Y6iNRbsKD61 z4_b!4tDPutm(naOOl?ZkUr!u(ap7jxr^sc*tyif>A7Wx*M ztWcsPS}-n@T0(=cUz<-!Z0H{YO1%}I*a_q3d>x3(RWWnzL=PPw$HoXhB6)%%HtEXy zJ5e8ev2c3Vp0>Ls=~`mE8E*pz=+BkQlr5`_xAT68IbDuJP|erpwZs1#q!WOA(J<&& zM9q-lzL%+XGamvV!7GZ0m#|=WF>Pk|yH4|augd#u`TgwJpaG}4(Bk@P^@obNPHeIe z-fR?iFTr(aNgYcZ+)#xkkmPGQXpe}P)Rin$_X6dFJe~>_2 zOJT2t^yP;%-rk_mf>1fmUUM*+Q`kp@;k&VWU+2ir`BMFn^TWiri!em&Ank%ts&9nV zupCJpn0_5+A&D*}t4Cl-$u^h{#+D(IOcTzC^x}xasF35I<)q{|h5v~GIOmNgTfrt% zl1de=kh*`GyRNJ}`5Cgs7FWYHJDA{YP241uzI!;KIZA+S*yZar(#&5knw%w8)C^yrLJVQNeQT@hA#cVJQy+((2zCz z`rp5P;AR4Rv`k6U^E?J`x#w4_=_V>Gy$dcTJ7V52qA~s|+YAjY$n{6lETT51OU*M8 z8dV$}E@}9aIqi?%gyZrh=Qf9Zj7=BOMkdT&80$kNJf_$7aIMuWv7NAs+sy#Bv~jxVJ&|^5;;ly@UDj_=WUm}EGnhC-5|62Cp|^d z!2<eIl@Hn z@Dc93GAWRvvZ=!0*x`vBpnVJ~VTNfr$OFfk^}VKizK`&~A3Jua>@N%-wo(30=M)r` z(yC@?rKMb7Gey2Zid19L*H+WVZ~1#0TX5k$H)MBOgj%dN6BU2bK0P7p#g@c3rVgcL zvBL{Vran4I7@1Q17M#F1$FwHYKS`i3p%SH2UHRrdT2pS&dF_6;)-K+JBhoNJ0KySD z!lro!p*$z?(Egc`%=wTiofAvK2)BQGYS*gayFZrK^m8%)LM_Y0>NUlz3ucySRC%1; z%G|;iali+s(Fi2KL$p-H%!MRYd5Vg_hN(-;9v_3hNirE53nLtLwbr-YBfdvmt~OJS z!5R8J8@n5(eZj%|20IsV>cCWiO2_7tIWr+gfS*5CBXiV|2@Ym~jt zb_VN7+o|+zDL(8Sj{9IFIY(Trex6*ZYse^emq&5Wz;B^X^p@E2Q^Fk!QBhALX#LGT`Im$77`OOw1610$AqKU(s6M`VISZ)=QS6(2gFdLnXXx^+b)V zdy+ezxl$TSDCKbcPI~MV(fs3Xkg!Q$0nn{t1f;k|FoSR~>6$8`m6<cHC{w+II3(R^UDI{wgDZ^9F zPF7N)HjKGyR7sLllq;c0rYZ&w$tdLmQz%Febnv@h%RjO%yB|M{9cs;ClFbYUU)q}R zz8Xp>N!!)wd*&>9eRXqSmSx~2f!W?LER1YasoU^-o{nOW0EOI&I_!GkHeKWS{53_t zqmHJv0xhA6@5rP!>JBHQ_Mv)eskShAdwM?nX7D|h|JbVv#YtCdVGj+#@XvRtNxlmJ zK{V2AV?$AH)F2tMkxHh2E|Ucy;eaw*A{^hhT-uGti7yRe4<1qSOlT6Q*v*YZF5kw$ zRp7N3KF^<5;-5GGfMXV$w>~rlz3Wo3wY=vZl{M45`b)M&(Q`$I`ZK)$YJ98ooZTJ} ziUV|Lsg6?m2>ZOce|^;d2+@D4YX&C5T{&Wnd0~`pHCyowY9<;Jzj@+Rjfj}Y&(Wt% zNNUonw+Q$iU+~tjSvkG!MTnHc_cNji8jU~<7sIfcS3e=KLe2BOI%G=cnbgM}V2?#6 z!wjEYZYKCMi6{OF6pPH+O0HR1n>?It! z_m98*&}^&*M-K5A^bF(F9NqmTwx7bq4gkWhFcyM9&EH0EsuLGas_CUSXe)l0^Qo63 zig?kc0;?9s7lvG7%GnAHk*WGusB8uPrCK$@l;t63RU}2s{ov)(z(W92c}p`p83Bbo zg)s_ng3v;6)Fl>##mPUFB84g%6)J&B=n2hbb>z75wBLVbes_MJcO&{dDw8MtKAu9) zRz7^%50{BE0OZv7??U@F$3-`Gqt1iRzUDVH*^o$N8~tkux2^V@*bcXwUbold??SrK z^FOdCwYfJcntPnIyNxBwPc=>*?A;pmHzHOr;4st0zuvEQV9GN;Mq~MDX1GS3wfK|M zL7K=PF>VCE(AlCU2P>nSs<7N2YqixTf%V~A!r;ELVN0`r@}26mK_;$co2<-pzAr8& zs5^#(96LUNsLJcRxXw1yEM{ZZz(K9QOerC8qAgcuZ-h>1C@ZS3qw zoH^?8@d@d_9fEbgD*z~FJWzP}i6?nUV=}gJ|0)_mogU(GEFpk z5+#>_1C2L!g9{?~m=YHo3trgvjQ>u5R13?=&5h1;DTXTCdatOxshfJ3Z5U_5e zhWiok46A+6&yGJ$54Fu*oy8m(df6dY*Lc~AuW4XQOLpJHTP00P<1r)866~~aq%kr! z`Ltec(u>=Q2+jwK6enlOP=H$lFaq&xf}zhF%!mBX8{gqrLN^hQPV`Dl)~~p-IkeO? ztn1qL4VyY`^BVI_X2xfGM!|qWyww}6dtG@2>AsP3O*t*bHZ7G7)ZRDw7+EX4;g8gM>774fw#toE2qnSEjZ_nkO5f(k zOw`JSQba3?6UoR5;-evvBXPl5A4!#O*ItXLe|34dk}zf1umHdEAxy}OX@&j4uyq{d zm8|}Nv%cIHj3)8K0TK$!8r!zV;tqX6K*Xqil~8b`h~g+#p5Jy-p1TiwP6Lya1mJrK z(pjKf1kOjZ6Kr&tB4oiUGmlovM6U23yKE$0&SqC`4LdCCHSH0!w28&RFrv5dy0U`a z3UA82poQ9v_HR&UJ*8R|CMzjsye~efD98@RtiV`EGY-lKtc%`1MZ{#}wF0oBm1~^7 zHtReqD*p(BDl;Z=4wz!xsp}mYv~l;W%8%r&eX?_Gf5i^O?|nb*N(*dex9+d!s7br6dk(L?xyuJ@B2=7lp0RD|y)*O>XPVhwhH7FU{gFo+ynP$YbFX5ai_L<>h7r zpdg_Fme>G{+z!@{cg&ApXia>hL8I?P9pAN1n1x;39#8h!T$B!UR2(ela8ec%+Nepr z5j}Tww4KgEn#JUF>;m}50th}8uBd|R16J)e+8vyCU$(Y#b`EjjB6S3QAy{{@ zUPQ>LXKP+%2m>=0|8Nyl=c&809=JVfG`;}HAp0NOy9OvmiI_-$3xJe(OuPUIXtER) zA<5)GGWY_rdbX%6i(TuW9<+G|xpE?xQZQ1CcwIaBs zbl6syL{nrEbo3GoDfp6NnqacT#K>R6>59Lbvs04_Rg@6Si<78|sfvxzQ-*QPY14VN zMu~d6o<`he2=f$wC#^{Uz+ugn?U4yK$$~J960HqqW-hC&enyJl=NL{+_}Fp1ICyc5 z0UA=&&!m8S6Aa|D*Xm1TRiVEKa0J-UuAzOkR3?bZr$ zc4vocI8TP39dKDgb;mL7o;s0Eu<48c2X!!QmjluS`BhfiiqXfe9aJcj*qC~>Z6l`{ zJCZu4gZ6-I?xtN6a*&$c?71o5t=MD1-9y)zx{cNdiPBu6Jh`!Jwq@y~wM?$hdK{FlS_!~K>#r$3mE>KK zMKCtbxu6;6U}zTacg21)l4D*?PdTi|;UFiK>mw+#-F)hKwsZ@IT7@ztN%+&KpopP9 zu>-yiteWT5RG!QgiKBx3{XwXF8Z~O2OD?)r%Id0^Tgl&O!nZTHs!sE{@0ql?M2i^4 z4AvcVqdPcYIJ?~$$V{9$2g!8Lh+`Ub6VuNz)9A>Tnt{NIrT`*bUhJ&&K)$q1(aC;M z#k2Es-9Cq1@RW7?+#N5)s!r(y)w6YpZ;docECB~C0zFg0ZqLz{D&FmT;Y1#0{>Drl z32TA@6U9Qxq1-%3({#@}y|QCY1Gf$Q(Sc6I;u}pRaHBeQYyYUngRd;F@naxenwLC)p|@rQsM$t zGrHS$tD(#qb7%nELOW(K0B}c7(8ZAjjUXr#uSAxD@k?|TT&)qPLsUZO7DS|kj7ow@ zjFzn9C7I;}QZVIxZ?4`(E^~Oit7ohRRG6h<1ZD?(b|q@bV;t;|3ISpwb3@5Qj!cIy z9CJY{C-IOG^-ol)==#97TNl@# z+OXT$*YpSWM@&vO&MsyrogXLaeJ}TQe!FL9lh}g`1X;qg4n51Kn28!GC%%M@48#9) z(yB?bjhnoy2k>)C?07IIBi;+(k9kWkJ!L16X%Z+cZz~vUFUzS;2X&7|JVqpUClGtE zdbnVamZyo5`=Kg4$~{~^DJ}8JRgkXNetj7Ti3Cl4__tyOjMggh{o@TGl&l^zIfa>;s`EG04@)^8 z+j~;JWuf(RtX}-83A$*%+os1Rjr4hNPsO2%O$P$-_K8+A`uzpMVVVWS1Vf>V81vO= zi;!_B02pM+iDbdxHOU%ri-fH@XChFEc2M77N5OYJb#m)SO|j*sK{DL zRR9cz6Nw&W@3Q~)LyG)d)J+r=sYFd4DMU?9kz~oKm?Wu*QAuS}?oLjI8A2jmqCiE- zmKx>hsU`1wHUE44l5WdOrADTrVIdmH0P4lvC3a2P8z%w~-SavnB_cBSgw{AQ*TGSd zmQ%(02J;nAugDqFUkJQ?KFfRC&<3x?SFr(92$CZGYnOI6cyr>TTv^1QJ!zi89m%8y z>4$Apzl3MZ1ig$JEM;i*is{r^KBoVE4l;b!eXfI@UcXlpRTP(94tWr@tRDc>&m2&} z)s&9f1k5=mKMWaX4gy`h)(UZulj0&+IWxM0roT#y;%^^bO0N$%GTA#6Ztnka0tIsl z=UJdnJVowH2zHrMl`tJfh9BS2oN?A$Msn@CD zZPJw4Q$j&o=^+9*sfwOD4c*ueyVDq&3DdMLDL*HaQ%f3kF|DSHLh@~Cg)cL{3dMDK zbpsEazB&jGiY!c*E90p9t3jVe8Ak;E^nqixCiWd0xY`8&SxeQlU^KQJ81O3&r%aVz zR!3LJ+CPa3Y*0*EzrRH6IPTlA>hbU7lD3Uwsf|hYiLBLz#(%ZFK)LESYWwzsg|_4j zbLaN??da$Ttj`CB^+o3=L;82tqRqWTq-(|p3%ED)r2d=>2qCaOFG_s|8Nhr3rz`km z+%UWZi676Vq@Y4=Ak>otYnjh8!hE z6d`Wg%n7gN7|y(tSc(c)LZB{*|C5WUE=5%mEJBS4QlJ)9f&&G>!3UU3m8%R;so`3& zR2jTn6upRF@_M@KFf>^*5Q;ldVMMd&kDtZ3`&1_ zO?Os=-_%T`K}T&QF4pgs!}s**>3Ve)N6L^v0s6!$V#oxhMqjQ5RiDH_P3NfdnjUmQ{ZQ&zL;gM;nJS@9p!|S5h(7I|8&OZY4CcVm<t6Tw)Kd|;4|r! z+nv7f&@!CSdF%IBVO&uU-!~W>+jc1WFZ4*fp%6(n-ppdYj&B7RH(&`Q?L-7qX84MR zAd%y5(?y3Ig{>8H&e9?LpnXY;)3|W@(psR_Y3I_PVHZ%R!|m|vWnZ68E!a5Ae&&-n zdB!_J?HOp~xQC3sPK9$mGp(^+-srRASzNmvhDd~{4T@fP6r|VE4z}yh{n_;;n%atc zGA+h_a}T3KDyU8GAYcFJ0fxB=RXreFDZG*H@!%GWB|XgZ`v7|~=AWyn5YXA<(FL1a zrcjgqwc8n~Ny(XzE_MZ2+RAKMi=E9kQ6I4ByIow(2IA^FV~M_qdsmoeQ?#=0rWKep z(eAD2;MtNkgG(^j1I_!m;q-X<*Y9~hP2cN%NGfryYfC6%G*YQ(jyKXpDy_*Ln`(mZ0~3YW<%KGynl$951;vRb z#%+?IVgZmUr*>ntgVNl`pz_;mTb}nPWm(*`g=J*s7k>j7Ay5g1f6EdXwEw)2&(RMN zH_q>c_FQn-WH4TYe2X{NGaJ&@&iD0AYxRizt{n3p18?(rFGDeS9Kp>PKdt3L;I<#k z)@#y0aeLS^jz8}1pIN`6TwIiF zbeIup*qU6F9xECPVTlWDL{+g3>jc-L(uR^k6_n2@WH_i%3uHQ_g*;$|t4@nVmO}bR zF>n5jWHuYpH=B=rM&B}U=S_XvW3AusxF%D@f=D~K zZd`wEUXr3dok&&!Z@x4OdLLTqHvNuE!1!KcJG)_abm{~q7e)()Q>5p550+97FJ?EM zf3a4%Fz~^2@flT}nU}IScUgA5&uM=5Q;%DpfUHd^*I|-EHeT-W*B=Xr4-e{ne{!ul zuUm%2I#7TA{>}2H?0+$JewqXuNT2;H2~okyu$ZQvz z?Fpw-sMR?U1aF4Cw1>f zLlv91=ispMojRcyA-@~PV+aA^(F2QBloEkLG@y{g@yvI!l;#J1bToLN2$g@l1oJpc zjEtB3^f4u>+~4PVUq|}Xd+Q2_0PJY!F^mB0hv+$;M?EB?ORlKbe<_oRo*BYpKiqZ-)12 zupsebtA`Y9<4ZpWZo0(1V1GzPUZ#VbJZJn#96@{g%p{4ZxMU^Ol~U9$`v#w2nc$wj z&#iV@oP5iY6ug-;hm2n1?*-P0m8|9wL#G+}k*zM^sH}l;X@g#km;UY{(^S{D!zISj zIQpS5=Fqj45{sG!T`vdd_4seoxTtr8+$KB+ye%AgGhpMhX|(3||Ip+kafJL_A6H|$ zNw@ojT8pZxY%r?&&-IsH#SfEDvUn!*os@s{huk~Q0x|~u8ur;KM*O9qXLZ!k97B|( z;F$7e!2b{M;tmA`g(4{;`A=Dc$eNDta`_xxaJ|(oa+SqI_T(9L!vP!#c&1Kz85@O2 zWU+!(8dhHS56mqbA~XL}oG~{)q~xg{_{;u^Vhm0szNH5ZU_HwXF*-@1K`px5%x%UP z9_U}pI&3j0k~mb&yyNcDsiQU#QE_l{B7>m{&mSIIM{W04U7!5IAl(My+zNFwNHR#Ot;bby8`p9HW=32yct_I|Z&{*3dPpOL{C zhM=Bi$V6$Y&+Tz|u4UC422NFVwFhPx+w2nTcvVHed)}t*7l?2L(Nr&BuX)O~)#u}* zpLq)GxPLo5tO8poyg!zG&);E*7;jCOHIF+hX(}QsD|N(d6SOUp@j~&~n4L&gPG-J2 zo|R?%HZb>K&_ijR_h<}#Y1ipMhkb*LHT3=Hdo%x7)KbNSWZLu^O~Z;0w`q)Zh70U; zfl5aK{vm_c>gAKZ4X@mVQGPm~yZ&Hg0??MOM2b?99 zLx`k8ue~*S`8c18J`dxNu8bN06v(d01z4-ws{yj&j%DM|T`=sTSrdHuXtqoSbDXnMpqMb$Vq(KFN zQ8BdQQk)qw508)k#mU^CEIxbd$wd*@>o@;6^ZlX@A#Tn#=wU-j&^B^HUw2GO^whz= z&&WGAkT@ECcK>ZgU5}5k>2SDMA`Z=U!e-`IT@t3A3k&bK@y`JSqGt6pJm>%b9MuZk zEHv#v%ieF9j4H32wchj;F(dMJ3S~44gCdub7?_$ELo3cDBvS~^+S&Z70pj1LeR(Gc`iGNofehdc}Y%6y}vgWGg_;SHvf7tOy3{G*e zh3VjW7i`_1_?!T59*~2ITOQP}1X$ynI-ws&4zQ1!1ttu>mx`2ldiol$wG+@QmO}HU zm#(h+qmi>?jTk|ry|b>EIoQ4%_#&O<7yl3)s%2ZAvrDR!c3N&@%KwO`GMLX>843E1Fno}HL!}}`E!Ti zV~62C3cpl-PyblT1#+lZ#71=V4<9*z%~UyWFjT9iJhP6{UtPF0GLPLFhta6m;_|71 zbYGkbVI;f&EFno0kHqw-^Y>X4Bz^QXmP5MW#76M=2F|@~UaDIB*`R?>M8xm=_H?(m zcXxO9_SRiVBj`$A_WPfW3&{=TX*M6O4&DUv3bbuVp7t;A%y^zpJ`Voa0DRa7#*wx4 z5Me0{MyDNnefiD@t+990eu~&k)Xp!m7)Hx$vs&V=NgYa3QeX|);;OZ)yZev4nW#dx zUo}C*+3(yc_aA?U$U@8aolwW<8VFl|!$q$5jo3-r)D4mucwTlWh6JtEq(SkLg8uc~ z`6eYh-^2x52&rriZRd7a~nO{SQR?1 z8`-|JKWeE9VTu?;D@x%gU&OCO$^Cr*qas^@;^@ZW(KNj&GCw3XC! zQo6DTUZ6&nT zwSV16S7bN`Jt3imCeltS8yAIia23@t5DzIc6GVWGFTxBHIIV5K)!)bAup`RVED%Adz>?@yUZB0{OMu&m8LI z$1d|kjrFmyl^;GFcKpA7tw|1*$s5Hg++#Mm$Vl7fM6cow@SA(AMuE04AqL&=`%ir^n6J(`kwM+0$U})FODs_2v3rV}N9uGpawb&uMtx zyi#Q*e?)%XmT*tNXhN@+?TSp`wa*IxbX*-n15{PP+L_O&zn?w)8g$dh#&)Fga*#U2 z3E$aY{lr7XEAU`tttx6ny+F-ueZ0uq$BA-@1h%4r`EpjxQ?s6Fzf#T-n<2bd*Yj!w zdvkIRVb|T?9TBVY(|9Gt&hBx7Yy|T3s^)x)>H5C|vM_VECOT`+S8skBU7z-S;C;UL zJuic4EkANnC!<#`KqC|itHU9s#AQlkCHC|UezBMd+jpc9MDP${cmTRcqZTc&kEKjY z^)J{Nn9IWnLA>kYVb&+Mhr0A&;E%~c;+qeC%c*@i9efna>Fkn5N605SVABE8;OL1R zrMatJ9zIUmI3?6po=(TdN=M1m#e0x|=L(g+sphm9i}7R=k=Jl-9{64U-T~Ldy{D(A zvoo-XySw&OwdID}zq@Ay!oQ6X4~hXpSP*- zB#iz2Z>(!962SFO0=OYpDKKkV{rK3nX6If3v$oeF3+u(&b>Z83@MBR<1rnwlXres3 zN>{ih>hmuu)~uw7*qf3rca=OT-2Mmx(b!q-hErXa737m}m1A`|Jo6>Z7HrK7y127| zx*~W%{-a1kBB3|}%n|_2COuVqH3oSs7wRg@ibwMu1NPM{8A@^}3)al|FX#b=OT!id zFpPoO{G;f`8z{)9UP2-!LKstHj?KOPzv@jCXutm-075~%zE?G!tzcQ>JMTSud{&>H zamA&^X{ANYf`kO9pxgUBOEuQYdS>eGuvRo7fiZ>%h+wrkx5wsRdg-M*FTCJy!SLHy z>{`M|OJzWkkC8A49iABj1EzTRW`I$52aAiOV1wt&)%Sn!gWvqk-+FR-ieNWO_9vGf zc~4(AOG40ek*Rf=1jfqz100MATttOM=$?3^=zyH18{k`A)SHJYH>;Wng z2mp1xD$7zy(z=GseZOlc-xe-!NL=`Mvj_zNfFXjSkgvS@3NwG_AHKU-EEJP5Y)DuW zf`|~vF1saAWiFuw=(}XcxWhJjA1c#+&WPJ;Ap7{Tc89f?FRF_#d}0_btEaZERZ4bY z=BHUT4_g-}tSg%tm=VBTp#%T`Hja~hW@bWEO4{w2Qp(wEc6hk2wYEXptExIbKYwz1 za`NQK+1Z&j(W|QRrnt8)t>Nd%4!g!~8iJ<%!!FoV4b8!TzL?ZC$LmTCGiH3Ob~234 zkek}&wfl$x00n|OkdL7S-uO7&nR#q(CbM7{!2K3sm@;$623Y!thI4}b`6B+;j4M5{KLzE;Lq+wH|JTdy*;OVmdaH-XCJyB+F zqV~$-V5$mYC0J4|QKP5`8KFjGdyO{R?drB%8_EC$AR$>EMq|hzX~tU9Vufc5I613M z&dlR8vpDC<6tymDU`7E1nhgkKs%;gm$!+ae44NC!t<|?$^qM1?*_Ivorl+1GqPsgy z8zq%7Mo28Ay8qHk_wKwXr4)^)5`tYGLDnS9_v^fR?fQ~!SSLpPPPk& zw0T1u8{umvwT8In|4p`?_8?ZDa#KJO`Ud%MkpuSg7%4p9ABB7?jE8VG%1w9|2%%qa zcj7M)Hln20I7GBuF8B85TI*`1tE&3?*Z=hH-FyG^zy1X&WmV~-kcdKSZKK?d-U+xF z^z^L(;{3A3)EaLZEr*~ zrgNbSHV2rMQq$>le}Dhl^&^|Cs;cF3xmvBBJb7|{etvp#vREuutChW6%^1UmIk>ah zf;Ymw8NarI<0lR`)2~g?W9-qR&1D%@$Rakd0Y1Y|-gyz$%iG>XF;PlQCdIsg*=%M5 zq}w!YMsg~+Z)aDb)Z!rk*u4oPLt|hwqdIAA4q%9Nj9&TyeW{0MAWi%=EG2eKjFGxw z;?S0c?m+7)RJrPOQ?@M+8NoH&p5cgy)c{69wiY-505KRF_m2q??44U+h}jrM1BgN` zZ3s1@Ldu2V$4f(cS;|!@d8TMKp{b&>EK3PW0)i$4fudO)7gobD42%RU7*I1TtGcf1 zmDZ={t5uEXOITL4T*;LdtD0(7hFPi-ktiF+@~!dB{1{t?;KP{ zN+JP8}%g*Chp{OWyu`c-%e)>b&3jn6ecag3Rn*Q}5y z1Y*R>W0;;zINIBx#xHl|#w~{7(`45%4HBpEm3lg}?8v4_CbLGb_ZE5iAL>Ta(h7 zd;)A;)%Tg&dpU-6jMD3w{>o@6?YnYj#+qs?+ zd(Dz<=OC;)2YVvGPVJb8oYKYsAH#kF0x*}p*ULRq7NZL_V%t86Axsb(T0JwnhcK>D zLzQV}oJKPUfdn(VQ>M+|5JEo=v!Ahs&X6}R(`tQ}a(}HI*z;djheXf-mK;L>HdLJi zwDGZ!4FXv9GPWtCGGG>3FEtYhMU#`Nk~PS4ElyBiEzk%;!g_C}gkT~@1Vmsk27wI# ziCXKr(yOZ0HEU*Fvj$*L#&D%UgJ2*)0>cK6vmgV2y<^Q@4S2A(e{^*1wO3y)ivj^8343vzAGU}Htl1b4A}%iW zt?V-C$8{ONwy8e39aUq%G`HF>m&@;b=R05c!WSMNpMa1C>r#va3swV=54O%M#3)=`am4j|Y;XT!Y5Gfq5q%ld!@VDZKQqI<;$!W#UWk)_AE z)@sr@tWL>{T5D!qmZj1B{`(LAkKg$}uUxtE+%wO@c_j$! z%F-4MxM`MH#BW;S040~&eZGBMtY%|`QUdj)C|`N?Wo9+vOi0a}mH9iq=H08?Zs$?O$)G`!x2!8(Lj5(!uId(3&wl^DNfg z+d(>N#Um^O0U3b+nGLv0r;rf{3D7P{G9rN>DTJ^w&x@iciegeurqk(kI`xLP{fgMx zcJ9KVBZeE2ef&HKgh^9E6J}0II zG`}RlJ<~ni4v|-AK+Qu$*g)G(3$eUdLjX2V1AqZ0wmvUmGYCXrbo|;3ZC%$w6aWU; z5GfFnnKiRv1QZnju>r#b1tBA%K>gvPN>XUAvSwy`PnnuE2Cu(fa2BJ52K>CwmQk;_ns#~OBAq!*h0 zjn^|eWv2yedYb9J%~rdY%dYWu1R1wSZa8x|Y>PN#9|ahY8oT>%LOd>B4l)BHimIxJ zhz$Jcpa0pFYghi;fB7$O-n=e_)NDj|Mjzm_SU*TsDkfbfRX*!V`+#LTlQY#8WeZM)@cl{o!cqcrX{ z3w{kSSL;n-Yc`I>*BJguCfigBL)2UYDdR$6#8?QEg`Lu~RR#+6%2TYXCHW+WYRB;s zPBbGYytU&uo(PA0S(eJau>sHRo^vmO5s?4^fJlZEdeto#W4!mA94xW!kw9hI?#}Vq$f4JRkwa#! z2wFRuLh?oy8e@nDML6{GN`=>{+MY@>Pl(^?57@emhUpxsE%ej7>$Qw=R|u2!Apw(V zO16924FG~*CIQ53KpQZOz(6*BvH=_1#oh&AF*A{oP}`#I>2&6nBw*Jv_Gmc*fgNBB zz+QUT|BTJn=p;>VlS73L1AvXE5YA$`xy=6@wtsvB#w---@bwsKMT) zEQ;v9aTos_t#fMw=S9f&USuW1Go^dh3W=0~nw-267*h6iFa7#0>*KYtO*OWFzU__4 zVI|}800W-~9ncL6&;(zl`1 zw{IdMV%_m6^jc%AiGV~0#-pJ~i>&Y1*DGD58 z1Wqeo_jnZNKILd`-#BIyP5MUt2*@!A-g||})@Zgr0BqPaHqFiy4zeJT(FBCfLI>l` za@SU_IGa}h0HgCm02l~oc_%iUHI9hx+&iZ&oOni#wfy++Kz9s4*!4t&?xt}eiB{FB zkV;B%{rb^o-}uaYIy*l?|d*zOq zRfQ1CjZMfBWyg_@&=5hS^|49W!%Sp|xV|vVoal!z;utim+Uv zYuW^%*Fgh(n6{WW%_<2Dqg$n0(AZoSItKYjGcOjMV$0hFgZyzHy>~igy>wCrb@b1^xqRS8JGy-=w8^B6 z%8OlxMVQ^n5N5X9yg7g%K?1n3Vj!@h8>>8FtNR<0LrQ$&UQL-SoE511el@NFriL7eUKoty>Df8K2G1 zfHuoNt<;J+r};EQYV+QX3zvkM0i>Vn46`$@!C(;O+Zn(vQw4s^w^lonRdd)G=z^P# z0K#p3Z))u8+93}S0StlwCPWNU7~5#RMh2P49@Ix$F~r8;M_)?6apD$BLee;obM?k= z7X>o|8ZLxfEtg8lgM)+p{k^x|e6x_MuItI9uxJaV>Z&60u7(7K+YO=(rv6QE=ZM*Y z!cDYFEhPbAtu>)so>#|D9>4wekALk~fBod-l!$5u09vh9WjV11@OC7Pq`A|!;|m$? zkgV;no}NBQV`vGC=Lji4VCxNFPO5xkDM7FYw?-x24YDib@gTR5od_>zJ{!QZg`(X2 z*paCJpTIWuCnF#<$N%a5_aFZDZ-3!``XB!XrPQ>X7~{Ocp@ugG^X{y2A$oi$BgPXy zjLIWy-aF;PO9Vs&(AM0ZOeVK(-u%=jKk=7;_1Dv~tc|HFV~nvUByHd#2pp=r2!)Y; zkR1~|P3Tz;17=eEa-brYs+w;Hu`Yg56lV0`^(nV2YpoHIo3@jshn+sYBD+9Ng!=cC zx)x|KqqWRi>nQ0?vZgWsbS~8C+RV_MwZWxM$fdB9$kEgBDFkvXE#KVkdTd2#m>A>5 zv_P4=5Rcd}jKS7xw2S4O&_+ty*Jg?_$20`&okkeb z6PxQXg??PLS-QjnFxWT=E+82gcMFpx-P+s6ZuD!s*@Wyzk+H$k?cg$Y_dEHa0RRNt z*-{=})6lKB19EiRjkPEM41qhFDTH4vR)i)rFGUR8rF3 z-h4ivefEvd?Chtr}=l=cY|MBg&rIf4M2qCIU+qlRh>A4IK!p};{iTg1r9*0KlI0{wL{*>AjBhLn%*mqx;j2D|9M1e4K+ua-*l|0iOIZVB z{6j4jt>4ZHyDoXVL3B%D2Q9Mm;r9M@I%$}mmf(ir8q{sMZW1v@v(X=X@Nl(UzVgb; zMOhFEY$oh@X1x#%KKE%@^e3mK;ZkB9^g;lU5Iaj!wg@Rm>sm@Fq$tZ`?_mGk_ukdU zAPGcZw&&UyfQj1pdCl4bx4n!(eb-5+Tu-gdGA8BIgkI++bvqdB%H*eAy8be>`6TkK zxiqP=kCeB&w@mVVtaSE9%GSuY1nm3=0J%Zso3Tf&0XEF+m(0-F1nvYnGzZbhPPy2` zhG1xnc^~u4K0w=Xu4G^F0m0QiV+SnRJx>7!%jUvLt7etZ{}a>*GH_Nq0+YAH0}K!f ze`E#&Zf9m-kXxkOCj+`%F+6^IDK}!9L__7@43s;j=;7+Dt#4f1FnPJWISnd>urm;Q zU9+y)+ZQ4J6oy2jA!2i;n?qJ_696DE0s|PU{}3B$UZSd3bQ3wN^?LN*S#Yk%(%og_IEKdpU+& zn_x^`?2qHMGw{5{2pZOq{PXy=${3QP z`{KI^JO2S>4f0&+Bt)+b?cNq|T4UFCB^QC*rHl`Ux0uPL^kXO7eBOhoMlHeqZ;$?F z4~~1zRWOuAxtXX(35HX0m$V+in~uTQEgQGMFrMVsF-6A>I3UpC3Wj}=tinKX!=0Ys zflcaSIV(Vt-mwBvXEk6og7n^p?$1sY0l>(J0B9WLuGNTIF90>SwK)YV+56#}UV>yp#a$5p z4O%tG5*XxyP-_in_V)IUu3dZUtv3%359+#>l9;)wDjToS7-JW81*It*=8J#jL8Tlhd<5`_n)F&ENj*x-ut=#bh$GF+Qb~_U|ssSl= z*01R>iR+rv{y}t_Co#KiVXZVL05-;`Le{z_L95mBz4zX`ee2fI(KRX7+;}lm_Bg#~ z?fc~HwP`^;&c|`E9xYJQ|75w8kO7#`P4!yWD6lBhd^Vj<=Z}sbpDoTkJw&8+?bO=- zL=|`LsP^1w6?d1JECkN)F5UvxcJZb~TvRnL17c2F+lgznrICgDq6dcIa48qt5hDlk zMkRI&a5$h*-g5?dmXdfjkD9SFSNhP*h}c}W)(v>>v)Jd3fwW#Cb;I7oq7r+CJ*2U9 zZXS*+9U$;2+ag+Bj2raqCLDBT`Pk-dV2zeCdUDCB93%NQ+wAKI8zaF+VoqYnyDID+ zh|r+rW^U=}R1VX~61#-=B}0$>EI$VsoR!7?Nk{4{{*(kAiE#vtKpwbBfW^Tl_+`@PS7 z?%%)n;DOPMLN3nE0Z<5O*a#umXl65T?d8Bk){wNBd`KZ`+thUyH8w#;_%Ju_s)YWT zOdOQuiH?!?e)Ya`^c5q9NjUP>#{y(9P80?ItSo})J>dF9ub^s{`BR1FH!C@Ve83Wp z&!2=SdKlM0Cdv4dC*jv%i*@%90>;(ZkZaeB`{0=a)hePe{It8UNC>RFFibuUr?gVq zfN8tgePjTTQZCLHlX7Z|VPjUS>L)+>$^HBPA9rv5X31?F2u1*z@2IZ6*xjUfbT^yq zrY=g>Va-3fV_Umx%a$$4_O~tnsMw#VyZY{_F;Yf>6nmMI?HB>SkYdhcZ- z<_BaV13&oHI0Rj_jEag8G7b%OXN>|6_p%Qo823? z^yA%G%I~3O0xn;B-2R=#!p!n#dhJHw0`%%B|H!*xHcJ> z%N2z0--rlM1?jaBQvP35ew=DCWE4_rp@M4#3rXdXgOH383W?{74-Va6K1O2^_`o_h zC&3tk5dV`fL(Wsj(!vLBgfXKa;oduS`@B&hf+n;}RmpbV$hE2+eNz4S&rnSw8UXAU zxgx4w34V!3RQ5I*MC>NI(QaV{==%C-cc5U$)y~Pd+sy5w>KD$&86Aei>dNR}%=$oY z9tG8Pt(8(00xCK_I(q*3PkjFKpIfa~wiTz8S}qrx&8DgSv`E0Hhg zjYDiXlcA3~5GiY1xTo?4Nms5Qko#Vz(9%l|A!OSyGJP;D{r}G(<;x z(uPIpMuv)({aWVTBntY4-+EoPuxEl_;CsTm8!iF+6-FJ38a60_K_Il-jjgTpn-l@S zwj}}iWIA(Al&uw1RLUA+cC_wT=l2ta1H-PDU^+qT^TJffYzSr(RbX=1<)xq;IE)9`ihz6AYFaL#MgTDr=l_t0*%9qgvNej<%kiJi;NJ33&P z6Dkx42m0f2e}&i!<}Q&IV1y$Hl;dh25xWh*-DEi_><-y*^&K#$mh#U~Fhibs<{_do zW4`%;b@Im)QUzyTX(}*`Q21=p?2k!EfZz=n^*CLfC92v5Mqe#qg{Zn_60-&WmB&R9 z%{qhOJO)(VK@5GDxIgTGu-mB3ewHrT<_>gQ(-m}0Wu*}91UpA3_udybD`B^-y%*7L zCRd0`+ZF{N_Qyh41IKQOJh=vswer62uF%hlIPctR#%6?9v@Ld4StvxM3=t}&6c}SF zR2l(+maBTTtUvYIYoC1WwZ&p#8$|X@c+>B)F>Z$3nafyZ3-y@Clr_tg|Q#hVw}1n5-Pu|{CWfE zOM%;ji#TkZa1f63La%xMw5;Agn|`f|8&va^hTvEyD<|xS$uj1}dQ7Z154P=`f7Fr@ zX2OG_5j=QH)|rmILK4Ie7^KsYg>=;~ho;K5$``r3c=3XYxyf;4(oQP#)t4crh5-)q zjbTm=5iy9F78r-;Om6}EJA3MSp_D#7J$v-{al6~S_Q}_@uBxhTnr5-6m9o8YE|L`` zoEr&TFwf$QD;L94fjpf0Ltps>2udK5&E(+hQV__XP@z)KJoC(AvAqA@dkRr$-7TXd zK*WBFDPVUAu<`T>o(*(iA1(TH42Fs7f;EG`i>Rk}r9g$Xau(AlLxj1$#6(YKRHu=>h+L7_-o;HlS4W69r;P*aY=sZRb=o<8bv<1#EP`g+HLXj1sy|-*p zwM|>sy3(p`+vTdRwSMjH-RGZw?&8H`>rt@xB<^TQo@}Q{QMOb$l|P{*I5s z>@dQeI@`o?0!$(rI^<0C!cdBPE?GKT1{hhFr7Y~J268_l3B|N6toc;S!YGwVAVivs3x!={e4^(D=#4t*&DemG|ldV2M>;pj_%xfnSd&- zK>-RaKWRUR5O6^C^l|J;`ar5zk3EdDiDd?W0T!vThOtMSJgIai7cN zPbvI7wLC(qi<_!1VrnI^VqT+?LuAasU;YrF#qvPZVTkcFL?F^6h9FnmeRC*mRq`zu zDJ8^d&udspH4nEF<6*bF$CQWlW9}KW6ascFET0r00&1<=wq587j8RG{4XefS-o3lG zZ{50h@z}0Q=StxBJD`_@q-?QDGYD~7#80D)IJ-ErM9O(%h)DwoLxgr}1QDC2vC~l} zCr^zrXJ^|t-gxutU;p}t4?i@<5O#<1BJay#x7q^Szh2a#rLqS{|M3_x5g?89-(U;;>`}n+co45HGvs{^}5)`{E(TPnWo04`CPM%{d^Jv5# zb7XO`D5uCML1$PL8j$7sX3r&yokI!Z42ta`P!xZ_zRf1(erO4zO{Od)kC4hcRDg(D zBN(GA1fcbL{pu^P-o5+ka=BE>+r$@$1Q2$}14;5a9Q~TI)k0EndNW%*QZ|#59Nixe zlv1`yQ`dFVG~4ZVu~?jKc0c)-pZ?0P{L0VXd3(2Ob}cETnx=Itv0Ves{xR8P$pN$6 zaIAzN)q~Ow<$4*N(UwEpN*wGh+ZmSTtFuDIx1IMC+(fS+C!-l0l?ALtohhyHE4Mu! zu5aGH7uK~Yy-_?$k>p(r82tdE=DWYa$@8~Um%b+$j>XES!E;{R5|e!-SzU1%?9ftD zrPIhD9Ch;r81;7+tOK(6N~yMO5wU3+(=;u$Z~g48Pk-h!%hj@~D`N~H0f9T4l=+fe zaS7aXs!j^zPlcloknO_*E33(&mb6GXz1JF4NKVd0z1VEdR;#5kbm8Lh(b4+-_up@t zomL7736O}o16u9SPgI+v*x4<1=iJ{M*u~GOsyAR2C(v=B(pgZS(jZ3Pir*Xx9vaL1Mk*M__o~C*@xDNsaqp1>Bw> zdWor)ImwsizKf5n<9XnAGSSDa1(s|m50Z_IF|qOJdz9yJ-{4Q zg+t5d6vs)pbnj9(_8<=^1YGhm1U5DT_S`u`8nLP>U8$qh`p(O@Uw!qJ<#K7yX+uPJ zxr4W?ENb=)Wj9-8=f83;c|GJA#foAp2jwbtYJu{*2qv&nrSx{Y1yD-q?XG$E-TUA8 z=C{88gCA@*+h%7#p)sa4235DRn3HpJS%l8E)f|x zdGhqbhaZ0C)1N*%x`3dXrqN2Q6mIBJxML5Ol^Kmg;5oiBcz_= zD#uH86gb*kIIJp4_~zw-^O?7g%UTRU87$Py3Cytw!B<~+YF;cl)lKUdBI3hQGQIeAAnOLzH zDS{%1iV~p^Ef6EtK#a`)O34rF;vONXgjkIkMTt>@xB$@g#*q{Pps8xTS}k9`ef!?M zyUXPgRe!{sQm$Z%DP^zY4F*y3qMRu@V!B3oWt!-tbVS)A80Zs`Qfjl=)^%;q^m+K` z$#4DkZ~w(#{N>ZrQ>|(M0EKPaE?2AVcI%)1&FH7~G*x(+im#j$oxsM*A?e)2{!Q93 zrgEIGI3AlJPnwg+-Gv0xT0IcO!U0O7>am9ZCvkWP(Y^e?*yPs$?2t>=>%M0HbYN002}547KL{_a9Vs zee>4MdQq>|%eHNyyMq($$RhSjEG89x96Ja-fc&;$UdLqUh!P&Q@0uAX(OMzUX17@^ z7E0sg%U6!p>&H)?Y&KhJ34yxHe4%p?Or9uF{ppnKaLe#`k^?4cDjo7qrxZzv1&ucp zVx0Ijc9)~A|qgLI&tnnS@g-hyy~tmUk`MNwUpYITf%#A9x@{WixhkF>�%q8}& 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 z�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

Hjt) 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 - + - + @@ -41,7 +41,7 @@ left: 0; width: 100%; height: 100%; - background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + background: linear-gradient(135deg, #90EE90 0%, #F0E68C 100%); display: flex; flex-direction: column; align-items: center; @@ -52,9 +52,11 @@ } #loading .loading-logo { - font-size: 64px; + width: 64px; + height: 64px; margin-bottom: 24px; animation: pulse 2s infinite; + border-radius: 8px; } #loading .loading-text { @@ -89,7 +91,7 @@ } @media (max-width: 768px) { - #loading .loading-logo { font-size: 48px; } + #loading .loading-logo { width: 48px; height: 48px; } #loading .loading-text { font-size: 20px; } } @@ -99,7 +101,7 @@

- +
神奇万事通
🎨 多功能聚合应用 💬
diff --git a/frontend/public/manifest.json b/InfoGenie-frontend/public/manifest.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/manifest.json rename to InfoGenie-frontend/public/manifest.json diff --git a/frontend/public/smallgame/2048/controls.js b/InfoGenie-frontend/public/smallgame/2048/controls.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/smallgame/2048/controls.js rename to InfoGenie-frontend/public/smallgame/2048/controls.js diff --git a/frontend/public/smallgame/2048/game-logic.js b/InfoGenie-frontend/public/smallgame/2048/game-logic.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/smallgame/2048/game-logic.js rename to InfoGenie-frontend/public/smallgame/2048/game-logic.js diff --git a/frontend/public/smallgame/2048/index.html b/InfoGenie-frontend/public/smallgame/2048/index.html old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/smallgame/2048/index.html rename to InfoGenie-frontend/public/smallgame/2048/index.html diff --git a/frontend/public/smallgame/2048/statistics.js b/InfoGenie-frontend/public/smallgame/2048/statistics.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/smallgame/2048/statistics.js rename to InfoGenie-frontend/public/smallgame/2048/statistics.js diff --git a/frontend/public/smallgame/2048/styles.css b/InfoGenie-frontend/public/smallgame/2048/styles.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/smallgame/2048/styles.css rename to InfoGenie-frontend/public/smallgame/2048/styles.css diff --git a/frontend/public/smallgame/俄罗斯方块/game-controls.js b/InfoGenie-frontend/public/smallgame/俄罗斯方块/game-controls.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/smallgame/俄罗斯方块/game-controls.js rename to InfoGenie-frontend/public/smallgame/俄罗斯方块/game-controls.js diff --git a/frontend/public/smallgame/俄罗斯方块/game-stats.js b/InfoGenie-frontend/public/smallgame/俄罗斯方块/game-stats.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/smallgame/俄罗斯方块/game-stats.js rename to InfoGenie-frontend/public/smallgame/俄罗斯方块/game-stats.js diff --git a/frontend/public/smallgame/俄罗斯方块/index.html b/InfoGenie-frontend/public/smallgame/俄罗斯方块/index.html old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/smallgame/俄罗斯方块/index.html rename to InfoGenie-frontend/public/smallgame/俄罗斯方块/index.html diff --git a/frontend/public/smallgame/俄罗斯方块/styles.css b/InfoGenie-frontend/public/smallgame/俄罗斯方块/styles.css old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/smallgame/俄罗斯方块/styles.css rename to InfoGenie-frontend/public/smallgame/俄罗斯方块/styles.css diff --git a/frontend/public/smallgame/俄罗斯方块/tetris.js b/InfoGenie-frontend/public/smallgame/俄罗斯方块/tetris.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/smallgame/俄罗斯方块/tetris.js rename to InfoGenie-frontend/public/smallgame/俄罗斯方块/tetris.js diff --git a/frontend/public/smallgame/别踩白方块/MUSIC.mp3 b/InfoGenie-frontend/public/smallgame/别踩白方块/MUSIC.mp3 old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/smallgame/别踩白方块/MUSIC.mp3 rename to InfoGenie-frontend/public/smallgame/别踩白方块/MUSIC.mp3 diff --git a/frontend/public/smallgame/别踩白方块/game.js b/InfoGenie-frontend/public/smallgame/别踩白方块/game.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/smallgame/别踩白方块/game.js rename to InfoGenie-frontend/public/smallgame/别踩白方块/game.js diff --git a/frontend/public/smallgame/别踩白方块/index.html b/InfoGenie-frontend/public/smallgame/别踩白方块/index.html old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/smallgame/别踩白方块/index.html rename to InfoGenie-frontend/public/smallgame/别踩白方块/index.html diff --git a/InfoGenie-frontend/public/smallgame/扫雷/css/style.css b/InfoGenie-frontend/public/smallgame/扫雷/css/style.css new file mode 100644 index 00000000..28b2da6a --- /dev/null +++ b/InfoGenie-frontend/public/smallgame/扫雷/css/style.css @@ -0,0 +1,79 @@ +/* 经典扫雷 - 手机竖屏优先 + 电脑端适配 */ +:root{ + --bg:#0f172a; + --panel:#111827; + --accent:#22d3ee; + --accent-2:#60a5fa; + --text:#e5e7eb; + --muted:#94a3b8; + --danger:#ef4444; + --success:#22c55e; + --warn:#f59e0b; + --cell:#1f2937; + --cell-hover:#273244; + --flag:#fb7185; +} +*{box-sizing:border-box} +html,body{height:100%;} +body{margin:0;background:linear-gradient(180deg,#0b1220,#0f172a);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"PingFang SC","Microsoft Yahei",sans-serif;-webkit-tap-highlight-color:transparent} + +.app{min-height:100dvh;display:flex;flex-direction:column;gap:12px;padding:12px;} +.header{display:flex;flex-direction:column;gap:10px;background:rgba(255,255,255,0.02);border:1px solid rgba(255,255,255,0.06);border-radius:14px;padding:12px 12px 10px;backdrop-filter:blur(6px)} +.title{margin:0;font-size:20px;letter-spacing:1px} +.hud{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;align-items:center} +.hud-item{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--panel);border:1px solid rgba(255,255,255,0.06);border-radius:10px;padding:8px 6px} +.hud-item .label{font-size:12px;color:var(--muted)} +.hud-item .value{font-size:18px;font-weight:700;color:#fff} +.btn{appearance:none;border:none;background:#1e293b;color:#fff;padding:10px 12px;border-radius:10px;cursor:pointer;outline:none;transition:.15s transform,.15s background;display:inline-flex;align-items:center;justify-content:center} +.btn:active{transform:scale(.98)} +.btn.primary{background:linear-gradient(90deg,var(--accent),var(--accent-2))} +.btn.primary:active{filter:brightness(.95)} + +.main{display:flex;flex-direction:column;gap:12px} +.board-wrapper{display:flex;justify-content:center;align-items:center} +.board{display:grid;gap:4px;touch-action:manipulation;user-select:none;background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.06);border-radius:12px;padding:6px;width:100%;max-width:92vw} +.cell{display:grid;place-items:center;background:var(--cell);border-radius:8px;border:1px solid rgba(255,255,255,0.06);font-weight:700;color:#9ca3af;box-shadow:inset 0 -1px 0 rgba(255,255,255,0.04);aspect-ratio:1/1;font-size:clamp(12px, 2.2vw, 18px)} +.cell.revealed{background:#0b1220;color:#e5e7eb} +.cell:hover{background:var(--cell-hover)} +.cell.flag::after{content:"🚩"} +.cell.mine.revealed{background:#3b0d0d;color:#fff} +.cell.mine.revealed::after{content:"💣"} +.cell[data-n="1"].revealed{color:#60a5fa} +.cell[data-n="2"].revealed{color:#34d399} +.cell[data-n="3"].revealed{color:#f87171} +.cell[data-n="4"].revealed{color:#a78bfa} +.cell[data-n="5"].revealed{color:#fbbf24} +.cell[data-n="6"].revealed{color:#22d3ee} +.cell[data-n="7"].revealed{color:#e879f9} +.cell[data-n="8"].revealed{color:#cbd5e1} + +.tips{font-size:12px;color:var(--muted);text-align:center} +.toast{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);background:rgba(17,24,39,.95);border:1px solid rgba(255,255,255,.08);padding:10px 14px;border-radius:10px} + +.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);display:grid;place-items:center;padding:14px} +.modal{width:min(520px,92vw);background:linear-gradient(180deg,#0f172a,#0b1320);border:1px solid rgba(255,255,255,0.08);border-radius:14px;padding:16px 14px} +.modal h2{margin:4px 0 8px;font-size:20px} +.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:8px 0 14px} +.stats .card{background:var(--panel);border:1px solid rgba(255,255,255,0.06);border-radius:10px;padding:10px} +.stats .card .k{font-size:12px;color:var(--muted)} +.stats .card .v{font-size:18px;font-weight:700} +.modal-actions{display:flex;gap:10px;justify-content:flex-end} + +/* 响应式:手机竖屏优先 */ +@media (min-width: 480px){ + .title{font-size:22px} +} +@media (min-width: 640px){ + .app{padding:18px} + .hud{grid-template-columns:repeat(5,minmax(0,1fr))} +} +@media (min-width: 1024px){ + .board{ max-width: 420px; } + .header{ padding:10px 10px 8px; } + .hud-item{ padding:6px 4px; } + .hud-item .value{ font-size:16px; } + .title{ font-size:18px; } +} +@media (orientation: landscape) and (max-width: 900px){ + .board{transform:scale(.9)} +} \ No newline at end of file diff --git a/InfoGenie-frontend/public/smallgame/扫雷/index.html b/InfoGenie-frontend/public/smallgame/扫雷/index.html new file mode 100644 index 00000000..57865d5f --- /dev/null +++ b/InfoGenie-frontend/public/smallgame/扫雷/index.html @@ -0,0 +1,56 @@ + + + + + + + + 经典扫雷(手机竖屏适配) + + + + + + +
+
+

经典扫雷

+
+
关卡1
+
雷数0
+
计时00:00
+ +
+
+ +
+
+
+
+ +
+

+ 手机:点开格子,长按插旗;电脑:左键开格,右键插旗;键盘:方向键移动,空格/回车开格,F 插旗。 +

+
+
+ + + + + + +
+ + + + \ No newline at end of file diff --git a/InfoGenie-frontend/public/smallgame/扫雷/js/main.js b/InfoGenie-frontend/public/smallgame/扫雷/js/main.js new file mode 100644 index 00000000..6c78e3c6 --- /dev/null +++ b/InfoGenie-frontend/public/smallgame/扫雷/js/main.js @@ -0,0 +1,273 @@ +// 经典扫雷(手机竖屏适配 + 无尽模式 + 键盘操作) +// 模块:状态、生成、交互、键盘、统计 + +class RNG { + constructor(seed = Date.now()) { this.seed = seed >>> 0; } + next() { // xorshift32 + let x = this.seed; + x ^= x << 13; x ^= x >>> 17; x ^= x << 5; + this.seed = x >>> 0; return this.seed / 0xffffffff; + } + range(min, max){ return Math.floor(this.next() * (max - min + 1)) + min; } +} + +const GameConfig = { + start: { rows: 10, cols: 8, mineRatio: 0.12 }, // 竖屏优先:更多行 + levelStep(cfg){ + // 难度递增:逐步增加行列与雷密度,控制在移动端也能点击 + const next = { ...cfg }; + if (next.rows < 16) next.rows++; + if (next.cols < 12) next.cols += (next.rows % 2 === 0 ? 1 : 0); + next.mineRatio = Math.min(0.24, +(next.mineRatio + 0.02).toFixed(2)); + return next; + } +} + +const State = { + level: 1, + rows: 0, + cols: 0, + mineCount: 0, + revealed: 0, + flags: 0, + grid: [], // { mine, r, c, around, revealed, flag } + timer: 0, + timerId: null, + startTs: 0, + rng: new RNG(), + stats: { opened:0, flagged:0, mistakes:0, time:0 } +}; + +function el(sel){ return document.querySelector(sel); } +function make(tag, cls){ const e = document.createElement(tag); if(cls) e.className = cls; return e; } +function updateMinesHud(){ el('#mines').textContent = String(Math.max(0, State.mineCount - State.flags)); } + +function startTimer(){ + State.startTs = Date.now(); + const timerEl = el('#timer'); + clearInterval(State.timerId); + State.timerId = setInterval(() => { + State.timer = Math.floor((Date.now() - State.startTs)/1000); + const m = String(Math.floor(State.timer/60)).padStart(2,'0'); + const s = String(State.timer%60).padStart(2,'0'); + timerEl.textContent = `${m}:${s}`; + }, 250); +} +function stopTimer(){ clearInterval(State.timerId); State.timerId = null; } + +function setupBoard(cfg){ + State.rows = cfg.rows; State.cols = cfg.cols; + const total = cfg.rows * cfg.cols; + State.mineCount = Math.max(1, Math.floor(total * cfg.mineRatio)); + State.revealed = 0; State.flags = 0; State.grid = []; + State.stats = { opened:0, flagged:0, mistakes:0, time:0 }; + + // 更新HUD + el('#level').textContent = String(State.level); + updateMinesHud(); + + const board = el('#board'); + board.innerHTML = ''; + board.style.gridTemplateColumns = `repeat(${State.cols}, 1fr)`; + + // 生成空格子 + for(let r=0;r e.preventDefault()); + // 触摸长按 + let pressTimer = null; let longPressed=false; + div.addEventListener('touchstart', e => { + longPressed=false; + pressTimer = setTimeout(()=>{ longPressed=true; toggleFlag(cell); }, 420); + }, {passive:true}); + div.addEventListener('touchend', e => { if(pressTimer){ clearTimeout(pressTimer); if(!longPressed) openCell(cell); } }); + // 鼠标 + div.addEventListener('mousedown', e => { + if(e.button===2){ toggleFlag(cell); } + else if(e.button===0){ if(cell.revealed && cell.around>0) chord(cell); else openCell(cell); } + }); + cell.el = div; + State.grid[r][c] = cell; + board.appendChild(div); + } + } + + // 随机埋雷 + let placed=0; + const setMine = (r,c)=>{ if(!State.grid[r][c].mine){ State.grid[r][c].mine=true; placed++; } }; + while(placed < State.mineCount){ setMine(State.rng.range(0,State.rows-1), State.rng.range(0,State.cols-1)); } + recomputeArounds(); + // 启动计时 + startTimer(); +} + +function visitNeighbors(r,c, cb){ + for(let dr=-1; dr<=1; dr++){ + for(let dc=-1; dc<=1; dc++){ + if(dr===0 && dc===0) continue; + const nr=r+dr, nc=c+dc; + if(nr>=0 && nr=0 && nc{ if(State.grid[nr][nc].flag) n++; }); return n; } +function chord(cell){ + if(!cell.revealed || cell.around<=0) return; + const flagged = countFlagsAround(cell.r, cell.c); + if(flagged === cell.around){ + visitNeighbors(cell.r, cell.c, (nr,nc)=>{ + const ncell = State.grid[nr][nc]; + if(!ncell.revealed && !ncell.flag){ openCell(ncell); } + }); + } +} +function recomputeArounds(){ + for(let r=0;r{ if(State.grid[nr][nc].mine) n++; }); + State.grid[r][c].around = n; + } + } +} +function safeFirstClick(badCell){ + // 移除当前雷并将其放到其他非雷位置 + badCell.mine = false; + while(true){ + const r = State.rng.range(0, State.rows-1); + const c = State.rng.range(0, State.cols-1); + const target = State.grid[r][c]; + if(target!==badCell && !target.mine){ target.mine = true; break; } + } + recomputeArounds(); +} + +function openCell(cell){ + if(cell.revealed || cell.flag) return; + // 首次点击必定安全:若第一次就点到雷,则移动该雷并重算数字 + if(State.revealed===0 && cell.mine){ + safeFirstClick(cell); + } + cell.revealed = true; State.revealed++; State.stats.opened++; + cell.el.classList.add('revealed'); + if(cell.mine){ + cell.el.classList.add('mine'); + endGame(false); + return; + } + if(cell.around>0){ cell.el.dataset.n = cell.around; cell.el.textContent = cell.around; } + else{ + // flood fill + visitNeighbors(cell.r, cell.c, (nr,nc)=>{ + const ncell = State.grid[nr][nc]; + if(!ncell.revealed && !ncell.mine) openCell(ncell); + }); + } + checkWin(); +} + +function toggleFlag(cell){ + if(cell.revealed) return; + cell.flag = !cell.flag; + State.flags += cell.flag ? 1 : -1; + State.stats.flagged += cell.flag ? 1 : 0; + cell.el.classList.toggle('flag', cell.flag); + updateMinesHud(); +} + +function checkWin(){ + const totalSafe = State.rows*State.cols - State.mineCount; + if(State.revealed >= totalSafe){ + // 通关 -> 进入下一关 + showToast(`第 ${State.level} 关完成!`); + stopTimer(); + setTimeout(()=>{ + State.level++; + const nextCfg = GameConfig.levelStep({ rows: State.rows, cols: State.cols, mineRatio: State.mineCount/(State.rows*State.cols) }); + setupBoard(nextCfg); + }, 600); + } +} + +function showToast(msg){ + const t = el('#toast-level'); + t.textContent = msg; t.style.display='block'; + t.animate([ + { transform:'translate(-50%, 20px)', opacity:0 }, + { transform:'translate(-50%, 0)', opacity:1, offset:.2 }, + { transform:'translate(-50%, 0)', opacity:1, offset:.8 }, + { transform:'translate(-50%, 10px)', opacity:0 } + ], { duration:1200, easing:'ease' }).onfinish = ()=> t.style.display='none'; +} + +function endGame(win){ + stopTimer(); + // 展示所有雷 + for(let r=0;r +
关卡
${State.level}
+
总用时
${formatTime(State.timer)}
+
开格
${State.stats.opened}
+
插旗
${State.stats.flagged}
+
+

再接再厉,挑战更高难度!

+ `; + el('#stats').innerHTML = statsHtml; + el('#modal-overlay').style.display = 'grid'; +} + +function formatTime(sec){ const m=Math.floor(sec/60), s=sec%60; return `${String(m).padStart(2,'0')}:${String(s).padStart(2,'0')}`; } + +function bindUI(){ + el('#btn-restart').addEventListener('click', ()=> restart()); + el('#btn-retry').addEventListener('click', ()=> restart()); + el('#btn-close').addEventListener('click', ()=>{ el('#modal-overlay').style.display='none'; }); +} + +function restart(){ + el('#modal-overlay').style.display='none'; + State.level = 1; setupBoard(GameConfig.start); +} + +// 键盘操作(电脑端) +let kb = { r:0, c:0 }; +function bindKeyboard(){ + document.addEventListener('keydown', (e)=>{ + const key = e.key.toLowerCase(); + if(['arrowup','w'].includes(key)) move(-1,0); + else if(['arrowdown','s'].includes(key)) move(1,0); + else if(['arrowleft','a'].includes(key)) move(0,-1); + else if(['arrowright','d'].includes(key)) move(0,1); + else if(key==='f'){ toggleFlag(State.grid[kb.r][kb.c]); highlightFocus(); } + else if(key===' ' || key==='enter'){ openCell(State.grid[kb.r][kb.c]); highlightFocus(); } + }); +} +function move(dr,dc){ kb.r = clamp(kb.r+dr,0,State.rows-1); kb.c = clamp(kb.c+dc,0,State.cols-1); highlightFocus(); } +function clamp(v,min,max){ return Math.max(min, Math.min(max, v)); } +function highlightFocus(){ + // 简单高亮当前聚焦格 + for(let r=0;r { + this.game.changeDirection(0, -1); + }); + + document.getElementById('downBtn').addEventListener('click', () => { + this.game.changeDirection(0, 1); + }); + + document.getElementById('leftBtn').addEventListener('click', () => { + this.game.changeDirection(-1, 0); + }); + + document.getElementById('rightBtn').addEventListener('click', () => { + this.game.changeDirection(1, 0); + }); + + // 暂停/继续按钮 + document.getElementById('pauseBtn').addEventListener('click', () => { + this.game.togglePause(); + }); + + // 重新开始按钮 + document.getElementById('restartBtn').addEventListener('click', () => { + this.game.restart(); + }); + + // 键盘快捷键 + this.initKeyboardShortcuts(); + } + + initKeyboardShortcuts() { + document.addEventListener('keydown', (e) => { + switch(e.key) { + case 'r': + case 'R': + if (this.game.gameOver) { + this.game.restart(); + } + break; + case 'p': + case 'P': + this.game.togglePause(); + break; + case 'Escape': + if (this.game.gameOver) { + document.getElementById('gameOverModal').style.display = 'none'; + } + break; + } + }); + } + + initTouchControls() { + const canvas = document.getElementById('gameCanvas'); + let touchStartX = 0; + let touchStartY = 0; + + canvas.addEventListener('touchstart', (e) => { + touchStartX = e.touches[0].clientX; + touchStartY = e.touches[0].clientY; + e.preventDefault(); + }, { passive: false }); + + canvas.addEventListener('touchmove', (e) => { + e.preventDefault(); + }, { passive: false }); + + canvas.addEventListener('touchend', (e) => { + const touchEndX = e.changedTouches[0].clientX; + const touchEndY = e.changedTouches[0].clientY; + + const deltaX = touchEndX - touchStartX; + const deltaY = touchEndY - touchStartY; + const minSwipeDistance = 30; + + if (Math.abs(deltaX) > Math.abs(deltaY)) { + // 水平滑动 + if (Math.abs(deltaX) > minSwipeDistance) { + if (deltaX > 0) { + this.game.changeDirection(1, 0); // 右滑 + } else { + this.game.changeDirection(-1, 0); // 左滑 + } + } + } else { + // 垂直滑动 + if (Math.abs(deltaY) > minSwipeDistance) { + if (deltaY > 0) { + this.game.changeDirection(0, 1); // 下滑 + } else { + this.game.changeDirection(0, -1); // 上滑 + } + } + } + + e.preventDefault(); + }, { passive: false }); + + // 防止移动端页面滚动 + document.addEventListener('touchmove', (e) => { + if (e.target.closest('.game-container')) { + e.preventDefault(); + } + }, { passive: false }); + } + + // 震动反馈(移动端) + vibrate(duration = 50) { + if ('vibrate' in navigator) { + navigator.vibrate(duration); + } + } +} + +// 初始化控制模块 +document.addEventListener('DOMContentLoaded', () => { + // 等待游戏实例创建后初始化控制 + setTimeout(() => { + new GameControls(game); + }, 100); +}); \ No newline at end of file diff --git a/InfoGenie-frontend/public/smallgame/贪吃蛇/game-core.js b/InfoGenie-frontend/public/smallgame/贪吃蛇/game-core.js new file mode 100644 index 00000000..46b5c8c1 --- /dev/null +++ b/InfoGenie-frontend/public/smallgame/贪吃蛇/game-core.js @@ -0,0 +1,366 @@ +class SnakeGame { + constructor() { + this.canvas = document.getElementById('gameCanvas'); + this.ctx = this.canvas.getContext('2d'); + + // 游戏配置 + this.gridSize = 20; + this.tileCount = this.canvas.width / this.gridSize; + this.tileCountY = this.canvas.height / this.gridSize; + + // 蛇的初始状态 + this.snake = [ + {x: 10, y: 10}, + {x: 9, y: 10}, + {x: 8, y: 10} + ]; + + // 食物位置 + this.food = {x: 15, y: 15}; + + // 游戏状态 + this.dx = 1; // 初始向右移动 + this.dy = 0; + this.score = 0; + this.level = 1; + this.gameSpeed = 10; // 初始速度 + this.isPaused = false; + this.gameOver = false; + this.startTime = Date.now(); + this.foodEaten = 0; + + // 特殊食物 + this.specialFood = null; + this.specialFoodTimer = 0; + this.specialFoodDuration = 5000; // 5秒 + + this.init(); + } + + init() { + this.generateFood(); + this.gameLoop(); + + // 监听键盘事件 + document.addEventListener('keydown', (e) => { + if (this.isPaused || this.gameOver) return; + + switch(e.key) { + case 'ArrowUp': + case 'w': + case 'W': + if (this.dy === 0) { + this.dx = 0; + this.dy = -1; + } + break; + case 'ArrowDown': + case 's': + case 'S': + if (this.dy === 0) { + this.dx = 0; + this.dy = 1; + } + break; + case 'ArrowLeft': + case 'a': + case 'A': + if (this.dx === 0) { + this.dx = -1; + this.dy = 0; + } + break; + case 'ArrowRight': + case 'd': + case 'D': + if (this.dx === 0) { + this.dx = 1; + this.dy = 0; + } + break; + case ' ': + this.togglePause(); + break; + } + }); + } + + generateFood() { + // 生成普通食物 + let newFood; + do { + newFood = { + x: Math.floor(Math.random() * this.tileCount), + y: Math.floor(Math.random() * this.tileCountY) + }; + } while (this.isPositionOccupied(newFood)); + + this.food = newFood; + + // 有10%几率生成特殊食物 + if (Math.random() < 0.1 && !this.specialFood) { + this.generateSpecialFood(); + } + } + + generateSpecialFood() { + let newFood; + do { + newFood = { + x: Math.floor(Math.random() * this.tileCount), + y: Math.floor(Math.random() * this.tileCountY), + type: 'special', + value: 5 // 特殊食物价值5分 + }; + } while (this.isPositionOccupied(newFood)); + + this.specialFood = newFood; + this.specialFoodTimer = Date.now(); + } + + isPositionOccupied(position) { + // 检查是否与蛇身重叠 + for (let segment of this.snake) { + if (segment.x === position.x && segment.y === position.y) { + return true; + } + } + + // 检查是否与普通食物重叠 + if (this.food && this.food.x === position.x && this.food.y === position.y) { + return true; + } + + // 检查是否与特殊食物重叠 + if (this.specialFood && this.specialFood.x === position.x && this.specialFood.y === position.y) { + return true; + } + + return false; + } + + update() { + if (this.isPaused || this.gameOver) return; + + // 更新蛇头位置 + const head = {x: this.snake[0].x + this.dx, y: this.snake[0].y + this.dy}; + + // 检查游戏结束条件 + if (this.checkCollision(head)) { + this.gameOver = true; + this.showGameOver(); + return; + } + + // 移动蛇 + this.snake.unshift(head); + + // 检查是否吃到食物 + if (head.x === this.food.x && head.y === this.food.y) { + this.score += 1; + this.foodEaten++; + this.generateFood(); + this.updateLevel(); + } else if (this.specialFood && head.x === this.specialFood.x && head.y === this.specialFood.y) { + this.score += this.specialFood.value; + this.foodEaten++; + this.specialFood = null; + this.generateFood(); + this.updateLevel(); + } else { + this.snake.pop(); // 如果没有吃到食物,移除尾部 + } + + // 检查特殊食物超时 + if (this.specialFood && Date.now() - this.specialFoodTimer > this.specialFoodDuration) { + this.specialFood = null; + } + + // 更新UI + this.updateUI(); + } + + checkCollision(head) { + // 检查撞墙 + if (head.x < 0 || head.x >= this.tileCount || head.y < 0 || head.y >= this.tileCountY) { + return true; + } + + // 检查撞到自己(从第4节开始检查,避免误判) + for (let i = 4; i < this.snake.length; i++) { + if (this.snake[i].x === head.x && this.snake[i].y === head.y) { + return true; + } + } + + return false; + } + + updateLevel() { + // 每吃5个食物升一级 + const newLevel = Math.floor(this.foodEaten / 5) + 1; + if (newLevel > this.level) { + this.level = newLevel; + this.gameSpeed = Math.min(20, 10 + this.level); // 速度上限20 + } + } + + updateUI() { + document.getElementById('score').textContent = this.score; + document.getElementById('length').textContent = this.snake.length; + document.getElementById('level').textContent = this.level; + } + + draw() { + // 清空画布 + this.ctx.fillStyle = '#222'; + this.ctx.fillRect(0, 0, this.canvas.width, this.canvas.height); + + // 绘制网格(背景) + this.ctx.strokeStyle = '#333'; + this.ctx.lineWidth = 0.5; + for (let x = 0; x < this.tileCount; x++) { + for (let y = 0; y < this.tileCountY; y++) { + this.ctx.strokeRect(x * this.gridSize, y * this.gridSize, this.gridSize, this.gridSize); + } + } + + // 绘制蛇 + this.snake.forEach((segment, index) => { + if (index === 0) { + // 蛇头 + this.ctx.fillStyle = '#4CAF50'; + } else { + // 蛇身,渐变颜色 + const gradient = (index / this.snake.length) * 100; + this.ctx.fillStyle = `hsl(120, 80%, ${60 - gradient}%)`; + } + this.ctx.fillRect(segment.x * this.gridSize, segment.y * this.gridSize, this.gridSize, this.gridSize); + + // 边框 + this.ctx.strokeStyle = '#2E7D32'; + this.ctx.strokeRect(segment.x * this.gridSize, segment.y * this.gridSize, this.gridSize, this.gridSize); + }); + + // 绘制普通食物 + this.ctx.fillStyle = '#FF5252'; + this.ctx.beginPath(); + this.ctx.arc( + this.food.x * this.gridSize + this.gridSize / 2, + this.food.y * this.gridSize + this.gridSize / 2, + this.gridSize / 2 - 2, + 0, + Math.PI * 2 + ); + this.ctx.fill(); + + // 绘制特殊食物(如果存在) + if (this.specialFood) { + this.ctx.fillStyle = '#FFD700'; + this.ctx.beginPath(); + this.ctx.arc( + this.specialFood.x * this.gridSize + this.gridSize / 2, + this.specialFood.y * this.gridSize + this.gridSize / 2, + this.gridSize / 2 - 1, + 0, + Math.PI * 2 + ); + this.ctx.fill(); + + // 闪烁效果 + const time = Date.now() - this.specialFoodTimer; + const alpha = 0.5 + 0.5 * Math.sin(time / 200); + this.ctx.globalAlpha = alpha; + this.ctx.fillStyle = '#FF6B00'; + this.ctx.fill(); + this.ctx.globalAlpha = 1; + } + + // 绘制暂停状态 + if (this.isPaused) { + this.ctx.fillStyle = 'rgba(0, 0, 0, 0.7)'; + this.ctx.fillRect(0, 0, this.canvas.width, this.canvas.height); + + this.ctx.fillStyle = 'white'; + this.ctx.font = '24px Arial'; + this.ctx.textAlign = 'center'; + this.ctx.fillText('游戏暂停', this.canvas.width / 2, this.canvas.height / 2); + } + } + + gameLoop() { + this.update(); + this.draw(); + + if (!this.gameOver) { + setTimeout(() => this.gameLoop(), 1000 / this.gameSpeed); + } + } + + togglePause() { + this.isPaused = !this.isPaused; + document.getElementById('pauseBtn').textContent = this.isPaused ? '继续' : '暂停'; + + if (!this.isPaused && !this.gameOver) { + this.gameLoop(); + } + } + + changeDirection(dx, dy) { + if (this.isPaused || this.gameOver) return; + + // 防止180度转弯 + if ((this.dx !== 0 && dx !== 0) || (this.dy !== 0 && dy !== 0)) { + return; + } + + this.dx = dx; + this.dy = dy; + } + + showGameOver() { + const modal = document.getElementById('gameOverModal'); + const gameTime = Math.floor((Date.now() - this.startTime) / 1000); + + document.getElementById('finalScore').textContent = this.score; + document.getElementById('finalLength').textContent = this.snake.length; + document.getElementById('finalLevel').textContent = this.level; + document.getElementById('gameTime').textContent = gameTime; + document.getElementById('foodEaten').textContent = this.foodEaten; + + modal.style.display = 'flex'; + } + + restart() { + this.snake = [ + {x: 10, y: 10}, + {x: 9, y: 10}, + {x: 8, y: 10} + ]; + this.dx = 1; + this.dy = 0; + this.score = 0; + this.level = 1; + this.gameSpeed = 10; + this.isPaused = false; + this.gameOver = false; + this.startTime = Date.now(); + this.foodEaten = 0; + this.specialFood = null; + + this.generateFood(); + this.updateUI(); + + document.getElementById('gameOverModal').style.display = 'none'; + document.getElementById('pauseBtn').textContent = '暂停'; + + this.gameLoop(); + } +} + +// 全局游戏实例 +let game; + +document.addEventListener('DOMContentLoaded', () => { + game = new SnakeGame(); +}); \ No newline at end of file diff --git a/InfoGenie-frontend/public/smallgame/贪吃蛇/game-stats.js b/InfoGenie-frontend/public/smallgame/贪吃蛇/game-stats.js new file mode 100644 index 00000000..2df9484d --- /dev/null +++ b/InfoGenie-frontend/public/smallgame/贪吃蛇/game-stats.js @@ -0,0 +1,295 @@ +class GameStatistics { + constructor() { + this.highScores = JSON.parse(localStorage.getItem('snakeHighScores')) || []; + this.sessionStats = { + gamesPlayed: 0, + totalScore: 0, + maxLength: 0, + maxLevel: 0, + totalTime: 0 + }; + + this.init(); + } + + init() { + // 恢复会话统计(如果存在) + const savedSession = localStorage.getItem('snakeSessionStats'); + if (savedSession) { + this.sessionStats = JSON.parse(savedSession); + } + + // 监听游戏事件 + this.setupEventListeners(); + } + + setupEventListeners() { + // 监听自定义游戏事件 + document.addEventListener('gameOver', (e) => { + this.handleGameOver(e.detail); + }); + + document.addEventListener('foodEaten', (e) => { + this.handleFoodEaten(e.detail); + }); + + document.addEventListener('levelUp', (e) => { + this.handleLevelUp(e.detail); + }); + } + + handleGameOver(gameData) { + this.sessionStats.gamesPlayed++; + this.sessionStats.totalScore += gameData.score; + this.sessionStats.maxLength = Math.max(this.sessionStats.maxLength, gameData.length); + this.sessionStats.maxLevel = Math.max(this.sessionStats.maxLevel, gameData.level); + this.sessionStats.totalTime += gameData.gameTime; + + // 保存会话统计 + localStorage.setItem('snakeSessionStats', JSON.stringify(this.sessionStats)); + + // 检查是否进入高分榜 + this.checkHighScore(gameData); + + // 显示统计信息 + this.displaySessionStats(); + } + + handleFoodEaten(foodData) { + // 可以记录特殊食物统计等 + console.log('食物被吃掉:', foodData); + } + + handleLevelUp(levelData) { + // 等级提升统计 + console.log('等级提升到:', levelData.level); + } + + checkHighScore(gameData) { + const highScoreEntry = { + score: gameData.score, + length: gameData.length, + level: gameData.level, + time: gameData.gameTime, + date: new Date().toLocaleDateString(), + timestamp: Date.now() + }; + + // 添加到高分榜 + this.highScores.push(highScoreEntry); + + // 按分数排序(降序) + this.highScores.sort((a, b) => b.score - a.score); + + // 只保留前10名 + this.highScores = this.highScores.slice(0, 10); + + // 保存到本地存储 + localStorage.setItem('snakeHighScores', JSON.stringify(this.highScores)); + + // 显示高分榜 + this.displayHighScores(); + } + + displaySessionStats() { + const statsElement = document.createElement('div'); + statsElement.className = 'session-stats'; + statsElement.innerHTML = ` +

本次会话统计

+

游戏次数: ${this.sessionStats.gamesPlayed}

+

总得分: ${this.sessionStats.totalScore}

+

最高长度: ${this.sessionStats.maxLength}

+

最高等级: ${this.sessionStats.maxLevel}

+

总游戏时间: ${Math.floor(this.sessionStats.totalTime / 60)}分钟

+

平均得分: ${Math.round(this.sessionStats.totalScore / this.sessionStats.gamesPlayed)}

+ `; + + // 添加到游戏结束模态框 + const statsContainer = document.querySelector('.stats'); + if (statsContainer && !document.querySelector('.session-stats')) { + statsContainer.appendChild(statsElement); + } + } + + displayHighScores() { + const highScoresElement = document.createElement('div'); + highScoresElement.className = 'high-scores'; + + if (this.highScores.length > 0) { + highScoresElement.innerHTML = ` +

🏆 高分榜

+ ${this.highScores.map((score, index) => ` +
+ ${index + 1}. + ${score.score}分 + 长度:${score.length} + ${score.date} +
+ `).join('')} + `; + } else { + highScoresElement.innerHTML = '

暂无高分记录

'; + } + + // 添加到游戏结束模态框 + const modalContent = document.querySelector('.modal-content'); + if (modalContent && !document.querySelector('.high-scores')) { + modalContent.appendChild(highScoresElement); + } + } + + getAchievements(gameData) { + const achievements = []; + + if (gameData.score >= 100) achievements.push('百分达人'); + if (gameData.length >= 20) achievements.push('长蛇之王'); + if (gameData.level >= 5) achievements.push('等级大师'); + if (gameData.gameTime >= 300) achievements.push('持久战将'); + if (gameData.score >= 50 && gameData.gameTime <= 60) achievements.push('速通高手'); + + return achievements; + } + + // 工具方法:格式化时间 + formatTime(seconds) { + const mins = Math.floor(seconds / 60); + const secs = seconds % 60; + return `${mins}分${secs}秒`; + } + + // 清除统计 + clearStatistics() { + this.highScores = []; + this.sessionStats = { + gamesPlayed: 0, + totalScore: 0, + maxLength: 0, + maxLevel: 0, + totalTime: 0 + }; + + localStorage.removeItem('snakeHighScores'); + localStorage.removeItem('snakeSessionStats'); + + console.log('统计信息已清除'); + } +} + +// 扩展游戏核心类,添加统计事件触发 +SnakeGame.prototype.showGameOver = function() { + const modal = document.getElementById('gameOverModal'); + const gameTime = Math.floor((Date.now() - this.startTime) / 1000); + + document.getElementById('finalScore').textContent = this.score; + document.getElementById('finalLength').textContent = this.snake.length; + document.getElementById('finalLevel').textContent = this.level; + document.getElementById('gameTime').textContent = gameTime; + document.getElementById('foodEaten').textContent = this.foodEaten; + + // 触发游戏结束事件 + const gameOverEvent = new CustomEvent('gameOver', { + detail: { + score: this.score, + length: this.snake.length, + level: this.level, + gameTime: gameTime, + foodEaten: this.foodEaten + } + }); + document.dispatchEvent(gameOverEvent); + + modal.style.display = 'flex'; +}; + +// 初始化统计模块 +let gameStats; + +document.addEventListener('DOMContentLoaded', () => { + gameStats = new GameStatistics(); +}); + +// 添加CSS样式 +const statsStyles = ` +.session-stats { + margin-top: 20px; + padding: 15px; + background: linear-gradient(135deg, #fdfcfb 0%, #e2d1c3 100%); + border-radius: 10px; + border: 2px solid #d4a76a; +} + +.session-stats h3 { + color: #8b4513; + margin-bottom: 10px; + text-align: center; +} + +.session-stats p { + margin: 5px 0; + color: #654321; + font-size: 0.9rem; +} + +.high-scores { + margin-top: 20px; + padding: 15px; + background: linear-gradient(135deg, #fff1eb 0%, #ace0f9 100%); + border-radius: 10px; + border: 2px solid #4682b4; +} + +.high-scores h3 { + color: #2c5282; + margin-bottom: 10px; + text-align: center; +} + +.score-item { + display: flex; + justify-content: space-between; + align-items: center; + padding: 8px 0; + border-bottom: 1px solid #cbd5e0; +} + +.score-item:last-child { + border-bottom: none; +} + +.score-item.first-place { + background: linear-gradient(135deg, #fceabb 0%, #f8b500 100%); + border-radius: 5px; + padding: 8px; + margin: -8px -8px 8px -8px; +} + +.rank { + font-weight: bold; + color: #2d3748; + min-width: 30px; +} + +.score { + font-weight: bold; + color: #e53e3e; + min-width: 60px; +} + +.length { + color: #4a5568; + font-size: 0.8rem; + min-width: 60px; +} + +.date { + color: #718096; + font-size: 0.7rem; + min-width: 60px; + text-align: right; +} +`; + +// 注入样式 +const styleSheet = document.createElement('style'); +styleSheet.textContent = statsStyles; +document.head.appendChild(styleSheet); \ No newline at end of file diff --git a/InfoGenie-frontend/public/smallgame/贪吃蛇/index.html b/InfoGenie-frontend/public/smallgame/贪吃蛇/index.html new file mode 100644 index 00000000..2302c8a5 --- /dev/null +++ b/InfoGenie-frontend/public/smallgame/贪吃蛇/index.html @@ -0,0 +1,61 @@ + + + + + + 贪吃蛇游戏 + + + +
+
+

贪吃蛇

+
+ 分数: 0 + 长度: 3 + 等级: 1 +
+
+ +
+ +
+ +
+
+ +
+
+ + + +
+
+ +
+
+ +
+

使用方向键或触摸按钮控制蛇的方向

+
+
+ + + + + + + + \ No newline at end of file diff --git a/InfoGenie-frontend/public/smallgame/贪吃蛇/styles.css b/InfoGenie-frontend/public/smallgame/贪吃蛇/styles.css new file mode 100644 index 00000000..edc0d223 --- /dev/null +++ b/InfoGenie-frontend/public/smallgame/贪吃蛇/styles.css @@ -0,0 +1,258 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: 'Arial', sans-serif; + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + min-height: 100vh; + display: flex; + justify-content: center; + align-items: center; + touch-action: manipulation; + -webkit-tap-highlight-color: transparent; +} + +.game-container { + background: rgba(255, 255, 255, 0.95); + border-radius: 20px; + padding: 20px; + box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3); + max-width: 400px; + width: 95%; + margin: 20px auto; +} + +.game-header { + text-align: center; + margin-bottom: 20px; +} + +.game-header h1 { + color: #333; + font-size: 2.5rem; + margin-bottom: 15px; + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1); +} + +.score-board { + display: flex; + justify-content: space-around; + background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%); + padding: 12px; + border-radius: 15px; + color: white; + font-weight: bold; + font-size: 1.1rem; +} + +.score-board span { + display: flex; + flex-direction: column; + align-items: center; +} + +.game-canvas-container { + display: flex; + justify-content: center; + margin: 20px 0; +} + +#gameCanvas { + border: 3px solid #333; + border-radius: 10px; + background: #222; + box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2); +} + +.game-controls { + margin: 20px 0; +} + +.control-row { + display: flex; + justify-content: center; + margin: 8px 0; +} + +.control-btn { + width: 70px; + height: 70px; + margin: 0 10px; + border: none; + border-radius: 50%; + background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%); + color: white; + font-size: 1.5rem; + font-weight: bold; + cursor: pointer; + transition: all 0.3s ease; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); +} + +.control-btn:hover { + transform: scale(1.1); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3); +} + +.control-btn:active { + transform: scale(0.95); +} + +#pauseBtn { + background: linear-gradient(135deg, #ff9a9e 0%, #fad0c4 100%); + color: #333; + font-size: 1.2rem; +} + +.game-instructions { + text-align: center; + color: #666; + font-size: 0.9rem; + margin-top: 15px; +} + +.modal { + display: none; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.8); + z-index: 1000; + justify-content: center; + align-items: center; +} + +.modal-content { + background: white; + padding: 30px; + border-radius: 20px; + text-align: center; + max-width: 400px; + width: 90%; + box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4); +} + +.modal-content h2 { + color: #e74c3c; + margin-bottom: 20px; + font-size: 2rem; +} + +.stats p { + margin: 10px 0; + font-size: 1.1rem; + color: #333; +} + +.stats span { + font-weight: bold; + color: #e74c3c; +} + +.restart-btn { + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + border: none; + padding: 15px 30px; + border-radius: 25px; + font-size: 1.2rem; + font-weight: bold; + cursor: pointer; + margin-top: 20px; + transition: all 0.3s ease; +} + +.restart-btn:hover { + transform: scale(1.05); + box-shadow: 0 8px 16px rgba(0, 0, 0, 0.3); +} + +/* 手机端优化 */ +@media (max-width: 768px) { + .game-container { + padding: 15px; + margin: 10px; + border-radius: 15px; + } + + .game-header h1 { + font-size: 2rem; + } + + .score-board { + font-size: 0.9rem; + padding: 8px; + } + + .control-btn { + width: 60px; + height: 60px; + font-size: 1.3rem; + margin: 0 8px; + } + + #pauseBtn { + font-size: 1rem; + } + + #gameCanvas { + width: 280px; + height: 400px; + } +} + +/* 超小屏幕优化 */ +@media (max-width: 480px) { + .game-header h1 { + font-size: 1.8rem; + } + + .score-board { + flex-direction: column; + gap: 5px; + } + + .control-btn { + width: 50px; + height: 50px; + font-size: 1.1rem; + margin: 0 5px; + } + + #gameCanvas { + width: 250px; + height: 350px; + } + + .modal-content { + padding: 20px; + } + + .modal-content h2 { + font-size: 1.5rem; + } +} + +/* 防止文本选择 */ +.control-btn, .restart-btn { + user-select: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; +} + +/* 动画效果 */ +@keyframes pulse { + 0% { transform: scale(1); } + 50% { transform: scale(1.05); } + 100% { transform: scale(1); } +} + +.score-board { + animation: pulse 2s infinite; +} \ No newline at end of file diff --git a/frontend/public/sw.js b/InfoGenie-frontend/public/sw.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/public/sw.js rename to InfoGenie-frontend/public/sw.js diff --git a/frontend/setting.json b/InfoGenie-frontend/setting.json old mode 100755 new mode 100644 similarity index 100% rename from frontend/setting.json rename to InfoGenie-frontend/setting.json diff --git a/frontend/src/App.js b/InfoGenie-frontend/src/App.js old mode 100755 new mode 100644 similarity index 95% rename from frontend/src/App.js rename to InfoGenie-frontend/src/App.js index ff160603..ae2d7115 --- a/frontend/src/App.js +++ b/InfoGenie-frontend/src/App.js @@ -9,6 +9,7 @@ import LoginPage from './pages/LoginPage'; import Api60sPage from './pages/Api60sPage'; import SmallGamePage from './pages/SmallGamePage'; import AiModelPage from './pages/AiModelPage'; +import UserProfilePage from './pages/UserProfilePage'; // 公共组件 import Header from './components/Header'; @@ -48,6 +49,7 @@ function App() { } /> } /> } /> + } /> {/* 通配符路由 - 所有未匹配的路径都重定向到首页 */} } /> diff --git a/frontend/src/components/Footer.js b/InfoGenie-frontend/src/components/Footer.js old mode 100755 new mode 100644 similarity index 99% rename from frontend/src/components/Footer.js rename to InfoGenie-frontend/src/components/Footer.js index a567f4f0..ae2af128 --- a/frontend/src/components/Footer.js +++ b/InfoGenie-frontend/src/components/Footer.js @@ -56,7 +56,7 @@ const FooterLink = styled.a` transition: color 0.2s ease; &:hover { - color: #667eea; + color: #4ade80; } `; diff --git a/frontend/src/components/Header.js b/InfoGenie-frontend/src/components/Header.js old mode 100755 new mode 100644 similarity index 97% rename from frontend/src/components/Header.js rename to InfoGenie-frontend/src/components/Header.js index 3f1bebdf..ac71e8cc --- a/frontend/src/components/Header.js +++ b/InfoGenie-frontend/src/components/Header.js @@ -199,7 +199,7 @@ const MobileNavLink = styled(Link)` transition: color 0.2s ease; &:hover { - color: #667eea; + color: #4ade80; } &:last-child { @@ -236,9 +236,9 @@ const Header = () => { diff --git a/frontend/src/components/Navigation.js b/InfoGenie-frontend/src/components/Navigation.js old mode 100755 new mode 100644 similarity index 94% rename from frontend/src/components/Navigation.js rename to InfoGenie-frontend/src/components/Navigation.js index 4a6484f7..b5babd14 --- a/frontend/src/components/Navigation.js +++ b/InfoGenie-frontend/src/components/Navigation.js @@ -1,7 +1,7 @@ import React from 'react'; import { Link, useLocation } from 'react-router-dom'; import styled from 'styled-components'; -import { FiHome, FiActivity, FiGrid, FiCpu } from 'react-icons/fi'; +import { FiHome, FiActivity, FiGrid, FiCpu, FiUser } from 'react-icons/fi'; const NavigationContainer = styled.nav` position: fixed; @@ -90,6 +90,11 @@ const Navigation = () => { path: '/aimodel', icon: FiCpu, text: 'AI工具' + }, + { + path: '/profile', + icon: FiUser, + text: '个人中心' } ]; diff --git a/frontend/src/config/StaticPageConfig.js b/InfoGenie-frontend/src/config/StaticPageConfig.js similarity index 72% rename from frontend/src/config/StaticPageConfig.js rename to InfoGenie-frontend/src/config/StaticPageConfig.js index 299d0c82..ebac76ed 100644 --- a/frontend/src/config/StaticPageConfig.js +++ b/InfoGenie-frontend/src/config/StaticPageConfig.js @@ -1,12 +1,13 @@ // 静态页面配置文件 // 统一管理所有静态网页的链接和配置信息 +//AI模型工具 export const AI_MODEL_APPS = [ { title: 'AI变量命名助手', description: '智能变量命名工具,帮助开发者快速生成规范的变量名', link: '/aimodelapp/AI变量命名助手/index.html', - gradient: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)', + gradient: 'linear-gradient(135deg, #4ade80 0%, #22c55e 100%)', icon: '🤖' }, { @@ -22,7 +23,35 @@ export const AI_MODEL_APPS = [ link: '/aimodelapp/AI姓名评测/index.html', gradient: 'linear-gradient(135deg, #4facfe 0%, #00f2fe 100%)', icon: '👤' - } + }, + { + title: 'AI翻译助手', + description: '基于AI的翻译工具', + link: '/aimodelapp/AI语言翻译助手/index.html', + gradient: 'linear-gradient(135deg,rgb(80, 77, 243) 0%,rgb(30, 211, 111) 100%)', + icon: '🌍' + }, + { + title: 'AI文章转文言文', + description: '基于AI的文章转文言文工具', + link: '/aimodelapp/AI文章转文言文/index.html', + gradient: 'linear-gradient(135deg,rgb(186, 248, 70) 0%,rgb(255, 208, 0) 100%)', + icon: '📝' + }, + { + title: 'AI生成表情包', + description: '基于AI的生成表情包工具', + link: '/aimodelapp/AI生成表情包/index.html', + gradient: 'linear-gradient(135deg,rgb(186, 248, 70) 0%,rgb(34, 157, 238) 100%)', + icon: '📸' + }, + { + title: 'AI生成Linux命令', + description: '基于AI的生成Linux命令工具', + link: '/aimodelapp/AI生成Linux命令/index.html', + gradient: 'linear-gradient(135deg,rgb(128, 180, 32) 0%,rgb(29, 199, 162) 100%)', + icon: '🐧' + }, ]; export const SMALL_GAMES = [ @@ -44,9 +73,23 @@ export const SMALL_GAMES = [ title: '俄罗斯方块', description: '经典落块消除游戏,永恒的经典之作', link: '/smallgame/俄罗斯方块/index.html', - gradient: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)', + gradient: 'linear-gradient(135deg, #4ade80 0%, #22c55e 100%)', icon: '🧩' - } + }, + { + title: '贪吃蛇', + description: '经典贪吃蛇游戏,考验你的反应速度和手指协调', + link: '/smallgame/贪吃蛇/index.html', + gradient: 'linear-gradient(135deg,rgb(37, 132, 240) 0%, #f5576c 100%)', + icon: '🐍' + }, + { + title: '扫雷', + description: '经典扫雷游戏,考验你的反应速度和手指协调', + link: '/smallgame/扫雷/index.html', + gradient: 'linear-gradient(135deg,rgb(37, 132, 240) 0%, #f5576c 100%)', + icon: '💣' + }, ]; export const API_60S_CATEGORIES = [ @@ -62,7 +105,12 @@ export const API_60S_CATEGORIES = [ { title: '网易云榜单', link: '/60sapi/热搜榜单/网易云榜单/index.html' }, { title: '微博热搜榜', link: '/60sapi/热搜榜单/微博热搜榜/index.html' }, { title: '知乎热门话题', link: '/60sapi/热搜榜单/知乎热门话题/index.html' }, - { title: 'Hacker News 榜单', link: '/60sapi/热搜榜单/Hacker News 榜单/index.html' } + { title: 'Hacker News 榜单', link: '/60sapi/热搜榜单/Hacker News 榜单/index.html' }, + { title: '小红书热点', link: '/60sapi/热搜榜单/小红书热点/index.html' }, + { title: '百度实时热搜', link: '/60sapi/热搜榜单/百度实时热搜/index.html' }, + { title: '百度电视剧榜', link: '/60sapi/热搜榜单/百度电视剧榜/index.html' }, + { title: '百度贴吧话题榜', link: '/60sapi/热搜榜单/百度贴吧话题榜/index.html' }, + { title: '懂车帝热搜', link: '/60sapi/热搜榜单/懂车帝热搜/index.html' }, ] }, { @@ -93,7 +141,8 @@ export const API_60S_CATEGORIES = [ { title: '随机密码生成器', link: '/60sapi/实用功能/随机密码生成器/index.html' }, { title: '随机颜色', link: '/60sapi/实用功能/随机颜色/index.html' }, { title: '天气预报', link: '/60sapi/实用功能/天气预报/index.html' }, - { title: 'EpicGames免费游戏', link: '/60sapi/实用功能/EpicGames免费游戏/index.html' } + { title: 'EpicGames免费游戏', link: '/60sapi/实用功能/EpicGames免费游戏/index.html' }, + { title: '在线机器翻译', link: '/60sapi/实用功能/在线翻译/index.html' }, ] }, { diff --git a/frontend/src/contexts/UserContext.js b/InfoGenie-frontend/src/contexts/UserContext.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/src/contexts/UserContext.js rename to InfoGenie-frontend/src/contexts/UserContext.js diff --git a/frontend/src/index.js b/InfoGenie-frontend/src/index.js old mode 100755 new mode 100644 similarity index 100% rename from frontend/src/index.js rename to InfoGenie-frontend/src/index.js diff --git a/frontend/src/md/前端邮件功能测试指南.md b/InfoGenie-frontend/src/md/前端邮件功能测试指南.md old mode 100755 new mode 100644 similarity index 100% rename from frontend/src/md/前端邮件功能测试指南.md rename to InfoGenie-frontend/src/md/前端邮件功能测试指南.md diff --git a/frontend/src/pages/AiModelPage.js b/InfoGenie-frontend/src/pages/AiModelPage.js old mode 100755 new mode 100644 similarity index 93% rename from frontend/src/pages/AiModelPage.js rename to InfoGenie-frontend/src/pages/AiModelPage.js index b7d43c48..e89157bb --- a/frontend/src/pages/AiModelPage.js +++ b/InfoGenie-frontend/src/pages/AiModelPage.js @@ -22,7 +22,7 @@ const PageHeader = styled.div` text-align: center; margin-bottom: 40px; padding: 40px 20px; - background: linear-gradient(135deg, rgba(102, 126, 234, 0.1) 0%, rgba(118, 75, 162, 0.1) 100%); + background: linear-gradient(135deg, rgba(74, 222, 128, 0.1) 0%, rgba(34, 197, 94, 0.1) 100%); border-radius: 16px; `; @@ -76,7 +76,7 @@ const AppCard = styled.div` &:hover { transform: translateY(-4px); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15); - border-color: #667eea; + border-color: #4ade80; } `; @@ -96,7 +96,7 @@ const AppTitle = styled.h3` const AppIcon = styled.div` font-size: 24px; - color: #667eea; + color: #4ade80; `; const AppDescription = styled.p` @@ -116,11 +116,11 @@ const AppTheme = styled.div` width: 40px; height: 40px; border-radius: 8px; - background: ${props => props.gradient}; + background: ${props => props.$gradient}; `; const LaunchButton = styled.button` - background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + background: linear-gradient(135deg, #4ade80 0%, #22c55e 100%); color: white; border: none; padding: 8px 16px; @@ -135,7 +135,7 @@ const LaunchButton = styled.button` &:hover { transform: translateY(-1px); - box-shadow: 0 4px 12px rgba(102, 126, 234, 0.3); + box-shadow: 0 4px 12px rgba(74, 222, 128, 0.3); } `; @@ -159,7 +159,7 @@ const LoginText = styled.p` `; const LoginButton = styled.button` - background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + background: linear-gradient(135deg, #4ade80 0%, #22c55e 100%); color: white; border: none; padding: 14px 32px; @@ -174,7 +174,7 @@ const LoginButton = styled.button` &:hover { transform: translateY(-1px); - box-shadow: 0 4px 12px rgba(102, 126, 234, 0.3); + box-shadow: 0 4px 12px rgba(74, 222, 128, 0.3); } `; @@ -203,7 +203,7 @@ const EmbeddedContent = styled.div` `; const EmbeddedHeader = styled.div` - background: linear-gradient(135deg, #667eea, #764ba2); + background: linear-gradient(135deg, #4ade80, #22c55e); color: white; padding: 15px 20px; padding-top: max(15px, env(safe-area-inset-top)); @@ -346,7 +346,7 @@ const AiModelPage = () => {
- -
-

生成的古诗

-
正在创作中,请稍候...
-
点击"生成古诗"按钮,AI将为您创作优美的古诗
-
- - - - - - \ No newline at end of file diff --git a/frontend/public/aimodelapp/AI变量命名助手/env.js b/frontend/public/aimodelapp/AI变量命名助手/env.js deleted file mode 100755 index 4b00731e..00000000 --- a/frontend/public/aimodelapp/AI变量命名助手/env.js +++ /dev/null @@ -1,68 +0,0 @@ -// AI变量命名助手配置文件 -const CONFIG = { - // GitHub Models API 配置 - GITHUB_TOKEN: '', - API_URL: 'https://models.github.ai/inference/chat/completions', - MODEL_NAME: 'openai/gpt-4o-mini', - - // AI提示词模板 - createNamingPrompt: (description) => { - return `你是一个专业的变量命名助手。请根据以下描述为变量生成合适的名称: - -描述:${description} - -请为每种命名规范生成3个变量名建议: -1. camelCase (驼峰命名法) -2. PascalCase (帕斯卡命名法) -3. snake_case (下划线命名法) -4. kebab-case (短横线命名法) -5. CONSTANT_CASE (常量命名法) - -要求: -- 变量名要准确反映功能和用途 -- 严格遵循各自的命名规范 -- 避免使用缩写,除非是广泛认知的缩写 -- 名称要简洁但具有描述性 -- 考虑代码的可读性和维护性 - -请按以下JSON格式返回: -{ - "suggestions": { - "camelCase": [ - {"name": "变量名1", "description": "解释说明1"}, - {"name": "变量名2", "description": "解释说明2"}, - {"name": "变量名3", "description": "解释说明3"} - ], - "PascalCase": [ - {"name": "变量名1", "description": "解释说明1"}, - {"name": "变量名2", "description": "解释说明2"}, - {"name": "变量名3", "description": "解释说明3"} - ], - "snake_case": [ - {"name": "变量名1", "description": "解释说明1"}, - {"name": "变量名2", "description": "解释说明2"}, - {"name": "变量名3", "description": "解释说明3"} - ], - "kebab-case": [ - {"name": "变量名1", "description": "解释说明1"}, - {"name": "变量名2", "description": "解释说明2"}, - {"name": "变量名3", "description": "解释说明3"} - ], - "CONSTANT_CASE": [ - {"name": "变量名1", "description": "解释说明1"}, - {"name": "变量名2", "description": "解释说明2"}, - {"name": "变量名3", "description": "解释说明3"} - ] - } -} - -只返回JSON格式的结果,不要包含其他文字。`; - } -}; - -// 导出配置 -if (typeof module !== 'undefined' && module.exports) { - module.exports = CONFIG; -} else { - window.CONFIG = CONFIG; -} \ No newline at end of file diff --git a/frontend/public/aimodelapp/AI姓名评测/env.js b/frontend/public/aimodelapp/AI姓名评测/env.js deleted file mode 100755 index 8b6efdf1..00000000 --- a/frontend/public/aimodelapp/AI姓名评测/env.js +++ /dev/null @@ -1,47 +0,0 @@ -// AI姓名评测配置文件 -const CONFIG = { - // GitHub API 配置 - GITHUB_TOKEN: '', - endpoint: 'https://models.github.ai/inference/chat/completions', - model: 'deepseek/DeepSeek-V3-0324', - - // 专业的姓名分析提示词 - createNameAnalysisPrompt: (name) => { - return `你是一位专业的姓名学专家和语言学家,请对输入的姓名进行全面分析。请直接输出分析结果,不要包含任何思考过程或标签。 - -姓名:${name} - -请按照以下格式严格输出分析结果: - -【稀有度评分】 -评分:X% -评价:[对稀有度的详细说明,包括姓氏和名字的常见程度分析] - -【音韵评价】 -评分:X% -评价:[对音韵美感的分析,包括声调搭配、读音流畅度、音律和谐度等] - -【含义解读】 -[详细分析姓名的寓意内涵,包括: -1. 姓氏的历史渊源和文化背景 -2. 名字各字的含义和象征 -3. 整体姓名的寓意组合 -4. 可能体现的父母期望或文化内涵 -5. 与传统文化、诗词典故的关联等] - -要求: -1. 评分必须是1-100的整数百分比,要有明显区分度,避免雷同 -2. 分析要专业、客观、有依据,评分要根据实际情况有所差异 -3. 含义解读要详细深入,至少150字 -4. 严格按照上述格式输出,不要添加思考过程、标签或其他内容 -5. 如果是生僻字或罕见姓名,要特别说明 -6. 直接输出最终结果,不要显示推理过程`; - } -}; - -// 导出配置 -if (typeof module !== 'undefined' && module.exports) { - module.exports = CONFIG; -} else { - window.CONFIG = CONFIG; -} \ No newline at end of file diff --git a/frontend/public/aimodelapp/AI姓名评测/styles.css b/frontend/public/aimodelapp/AI姓名评测/styles.css deleted file mode 100755 index dc1325ec..00000000 --- a/frontend/public/aimodelapp/AI姓名评测/styles.css +++ /dev/null @@ -1,249 +0,0 @@ -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - font-family: 'Microsoft YaHei', '微软雅黑', Arial, sans-serif; - background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); - min-height: 100vh; - padding: 20px; - color: #333; -} - -.container { - max-width: 700px; - margin: 0 auto; - background: rgba(255, 255, 255, 0.95); - border-radius: 20px; - padding: 30px; - box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1); - backdrop-filter: blur(10px); -} - -.header { - text-align: center; - margin-bottom: 30px; -} - -.title { - font-size: 2.5rem; - color: #4a5568; - margin-bottom: 10px; - font-weight: 300; - letter-spacing: 2px; -} - -.subtitle { - color: #718096; - font-size: 1rem; - margin-bottom: 20px; -} - -.form-group { - margin-bottom: 25px; -} - -.form-label { - display: block; - margin-bottom: 8px; - font-weight: 500; - color: #4a5568; - font-size: 1rem; -} - -.form-input { - width: 100%; - padding: 15px; - border: 2px solid #e2e8f0; - border-radius: 12px; - font-size: 1rem; - transition: all 0.3s ease; - background: #f7fafc; - text-align: center; -} - -.form-input:focus { - outline: none; - border-color: #667eea; - background: #fff; - box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1); -} - -.btn { - width: 100%; - padding: 15px; - background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); - color: white; - border: none; - border-radius: 12px; - font-size: 1.1rem; - font-weight: 500; - cursor: pointer; - transition: all 0.3s ease; - margin-bottom: 25px; -} - -.btn:hover { - transform: translateY(-2px); - box-shadow: 0 10px 25px rgba(102, 126, 234, 0.3); -} - -.btn:active { - transform: translateY(0); -} - -.btn:disabled { - opacity: 0.6; - cursor: not-allowed; - transform: none; -} - -.result-section { - margin-top: 30px; -} - -.result-title { - font-size: 1.3rem; - color: #4a5568; - margin-bottom: 20px; - text-align: center; - font-weight: 500; -} - -.loading { - display: none; - text-align: center; - color: #667eea; - font-style: italic; - margin-bottom: 20px; -} - -.result-container { - display: grid; - gap: 20px; - grid-template-columns: 1fr; -} - -.result-card { - background: #f7fafc; - border: 2px solid #e2e8f0; - border-radius: 12px; - padding: 20px; - transition: all 0.3s ease; -} - -.result-card:hover { - border-color: #667eea; - box-shadow: 0 5px 15px rgba(102, 126, 234, 0.1); -} - -.card-title { - font-size: 1.1rem; - color: #4a5568; - margin-bottom: 15px; - text-align: center; - font-weight: 600; -} - -.score-display { - font-size: 2.5rem; - font-weight: bold; - text-align: center; - margin-bottom: 10px; - background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - background-clip: text; -} - -.score-desc { - text-align: center; - color: #718096; - font-size: 0.9rem; - line-height: 1.5; -} - -.meaning-content { - color: #2d3748; - line-height: 1.8; - font-size: 1rem; - text-align: left; - white-space: pre-wrap; -} - -.error { - color: #e53e3e; - background: #fed7d7; - border: 1px solid #feb2b2; - padding: 15px; - border-radius: 8px; - margin-top: 15px; -} - -/* 平板和桌面端优化 */ -@media (min-width: 768px) { - .result-container { - grid-template-columns: 1fr 1fr; - } - - .result-card:last-child { - grid-column: 1 / -1; - } -} - -/* 手机端优化 */ -@media (max-width: 768px) { - body { - padding: 10px; - } - - .container { - padding: 20px; - margin: 10px; - } - - .title { - font-size: 2rem; - } - - .form-input { - padding: 12px; - } - - .btn { - padding: 12px; - } - - .result-card { - padding: 15px; - } - - .score-display { - font-size: 2rem; - } -} - -@media (max-width: 480px) { - .title { - font-size: 1.8rem; - letter-spacing: 1px; - } - - .container { - padding: 15px; - } - - .result-card { - padding: 12px; - } - - .score-display { - font-size: 1.8rem; - } - - .meaning-content { - font-size: 0.9rem; - } -} \ No newline at end of file diff --git a/frontend/src/utils/helpers.js b/frontend/src/utils/helpers.js deleted file mode 100755 index 3cf1dd76..00000000 --- a/frontend/src/utils/helpers.js +++ /dev/null @@ -1,310 +0,0 @@ -// 工具函数集合 - -/** - * 格式化时间 - * @param {string|Date} date - 日期 - * @param {string} format - 格式 ('datetime', 'date', 'time') - * @returns {string} 格式化后的时间字符串 - */ -export const formatTime = (date, format = 'datetime') => { - if (!date) return ''; - - const d = new Date(date); - const year = d.getFullYear(); - const month = String(d.getMonth() + 1).padStart(2, '0'); - const day = String(d.getDate()).padStart(2, '0'); - const hours = String(d.getHours()).padStart(2, '0'); - const minutes = String(d.getMinutes()).padStart(2, '0'); - const seconds = String(d.getSeconds()).padStart(2, '0'); - - switch (format) { - case 'date': - return `${year}-${month}-${day}`; - case 'time': - return `${hours}:${minutes}:${seconds}`; - case 'datetime': - default: - return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; - } -}; - -/** - * 获取相对时间 - * @param {string|Date} date - 日期 - * @returns {string} 相对时间字符串 - */ -export const getRelativeTime = (date) => { - if (!date) return ''; - - const now = new Date(); - const target = new Date(date); - const diff = now - target; - - const minute = 60 * 1000; - const hour = 60 * minute; - const day = 24 * hour; - - if (diff < minute) { - return '刚刚'; - } else if (diff < hour) { - return `${Math.floor(diff / minute)}分钟前`; - } else if (diff < day) { - return `${Math.floor(diff / hour)}小时前`; - } else if (diff < 7 * day) { - return `${Math.floor(diff / day)}天前`; - } else { - return formatTime(date, 'date'); - } -}; - -/** - * 防抖函数 - * @param {Function} func - 要防抖的函数 - * @param {number} wait - 等待时间(毫秒) - * @returns {Function} 防抖后的函数 - */ -export const debounce = (func, wait) => { - let timeout; - return function executedFunction(...args) { - const later = () => { - clearTimeout(timeout); - func(...args); - }; - clearTimeout(timeout); - timeout = setTimeout(later, wait); - }; -}; - -/** - * 节流函数 - * @param {Function} func - 要节流的函数 - * @param {number} limit - 限制时间(毫秒) - * @returns {Function} 节流后的函数 - */ -export const throttle = (func, limit) => { - let inThrottle; - return function executedFunction(...args) { - if (!inThrottle) { - func.apply(this, args); - inThrottle = true; - setTimeout(() => inThrottle = false, limit); - } - }; -}; - -/** - * 深拷贝对象 - * @param {any} obj - 要拷贝的对象 - * @returns {any} 深拷贝后的对象 - */ -export const deepClone = (obj) => { - if (obj === null || typeof obj !== 'object') return obj; - if (obj instanceof Date) return new Date(obj.getTime()); - if (obj instanceof Array) return obj.map(item => deepClone(item)); - if (typeof obj === 'object') { - const clonedObj = {}; - for (const key in obj) { - if (obj.hasOwnProperty(key)) { - clonedObj[key] = deepClone(obj[key]); - } - } - return clonedObj; - } -}; - -/** - * 生成唯一ID - * @returns {string} 唯一ID - */ -export const generateId = () => { - return Date.now().toString(36) + Math.random().toString(36).substr(2); -}; - -/** - * 检查是否为移动设备 - * @returns {boolean} 是否为移动设备 - */ -export const isMobile = () => { - return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); -}; - -/** - * 获取屏幕尺寸类型 - * @returns {string} 屏幕尺寸类型 ('mobile', 'tablet', 'desktop') - */ -export const getScreenSize = () => { - const width = window.innerWidth; - if (width < 768) return 'mobile'; - if (width < 1024) return 'tablet'; - return 'desktop'; -}; - -/** - * 滚动到顶部 - * @param {number} duration - 动画持续时间(毫秒) - */ -export const scrollToTop = (duration = 300) => { - const start = window.pageYOffset; - const startTime = 'now' in window.performance ? performance.now() : new Date().getTime(); - - const animateScroll = (currentTime) => { - const timeElapsed = currentTime - startTime; - const progress = Math.min(timeElapsed / duration, 1); - - window.scroll(0, start * (1 - progress)); - - if (progress < 1) { - requestAnimationFrame(animateScroll); - } - }; - - requestAnimationFrame(animateScroll); -}; - -/** - * 格式化数字 - * @param {number} num - 数字 - * @returns {string} 格式化后的数字字符串 - */ -export const formatNumber = (num) => { - if (num >= 100000000) { - return (num / 100000000).toFixed(1) + '亿'; - } else if (num >= 10000) { - return (num / 10000).toFixed(1) + '万'; - } else if (num >= 1000) { - return (num / 1000).toFixed(1) + 'K'; - } - return num.toString(); -}; - -/** - * 验证手机号 - * @param {string} phone - 手机号 - * @returns {boolean} 是否有效 - */ -export const validatePhone = (phone) => { - const phoneRegex = /^1[3-9]\d{9}$/; - return phoneRegex.test(phone); -}; - -/** - * 验证用户名 - * @param {string} username - 用户名 - * @returns {boolean} 是否有效 - */ -export const validateUsername = (username) => { - const usernameRegex = /^[a-zA-Z0-9_]{6,20}$/; - return usernameRegex.test(username); -}; - -/** - * 验证密码强度 - * @param {string} password - 密码 - * @returns {object} 验证结果 - */ -export const validatePassword = (password) => { - const result = { - valid: false, - strength: 'weak', - message: '' - }; - - if (password.length < 6) { - result.message = '密码长度至少6位'; - return result; - } - - if (password.length > 20) { - result.message = '密码长度不能超过20位'; - return result; - } - - let strength = 0; - - // 检查是否包含小写字母 - if (/[a-z]/.test(password)) strength++; - - // 检查是否包含大写字母 - if (/[A-Z]/.test(password)) strength++; - - // 检查是否包含数字 - if (/\d/.test(password)) strength++; - - // 检查是否包含特殊字符 - if (/[!@#$%^&*(),.?":{}|<>]/.test(password)) strength++; - - if (strength >= 3) { - result.strength = 'strong'; - result.message = '密码强度:强'; - } else if (strength >= 2) { - result.strength = 'medium'; - result.message = '密码强度:中等'; - } else { - result.strength = 'weak'; - result.message = '密码强度:弱'; - } - - result.valid = true; - return result; -}; - -/** - * 本地存储工具 - */ -export const storage = { - set: (key, value) => { - try { - localStorage.setItem(key, JSON.stringify(value)); - } catch (error) { - console.error('存储数据失败:', error); - } - }, - - get: (key, defaultValue = null) => { - try { - const item = localStorage.getItem(key); - return item ? JSON.parse(item) : defaultValue; - } catch (error) { - console.error('读取数据失败:', error); - return defaultValue; - } - }, - - remove: (key) => { - try { - localStorage.removeItem(key); - } catch (error) { - console.error('删除数据失败:', error); - } - }, - - clear: () => { - try { - localStorage.clear(); - } catch (error) { - console.error('清空数据失败:', error); - } - } -}; - -/** - * URL参数工具 - */ -export const urlParams = { - get: (param) => { - const urlParams = new URLSearchParams(window.location.search); - return urlParams.get(param); - }, - - set: (param, value) => { - const url = new URL(window.location); - url.searchParams.set(param, value); - window.history.pushState({}, '', url); - }, - - remove: (param) => { - const url = new URL(window.location); - url.searchParams.delete(param); - window.history.pushState({}, '', url); - } -}; diff --git a/start_backend.bat b/start_backend.bat deleted file mode 100755 index f98ddefd..00000000 --- a/start_backend.bat +++ /dev/null @@ -1,3 +0,0 @@ -@echo off -cd /d "E:\Python\InfoGenie\backend" -python app.py \ No newline at end of file diff --git a/start_backend.sh b/start_backend.sh deleted file mode 100755 index 29056eff..00000000 --- a/start_backend.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -cd /home/shumengya/桌面/Python/InfoGenie/backend -python3 app.py diff --git a/start_frontend.bat b/start_frontend.bat deleted file mode 100755 index 556d2016..00000000 --- a/start_frontend.bat +++ /dev/null @@ -1,3 +0,0 @@ -@echo off -cd /d "e:\Python\InfoGenie\frontend" -npm start diff --git a/start_frontend.sh b/start_frontend.sh deleted file mode 100755 index 99ac201d..00000000 --- a/start_frontend.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -cd /home/shumengya/桌面/Python/InfoGenie/frontend -npm start diff --git a/用户数据模板.json b/用户数据模板.json deleted file mode 100755 index 764b3c75..00000000 --- a/用户数据模板.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "账号":"3205788256", - "邮箱":"3205788256@qq.com", - "密码":"0123456789" -} \ No newline at end of file

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 z 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%0D?P6Z$ZD=u}E;-l3cgT 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%0DeQWd64PLA&keV+V5Y)BPw5;QO|TXS;l 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≺Sy4koRFB-FhuKqifd> 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