diff --git a/origet/ test_output_202605240119.json b/origet/ test_output_202605240119.json new file mode 100644 index 0000000..a14ced4 --- /dev/null +++ b/origet/ test_output_202605240119.json @@ -0,0 +1,1252 @@ +{ + "weapon-categories": { + "ok": true, + "data": { + "success": true, + "data": [ + { + "category": "突击步枪", + "scheme_count": 887 + }, + { + "category": "冲锋枪", + "scheme_count": 353 + }, + { + "category": "射手步枪", + "scheme_count": 260 + }, + { + "category": "轻机枪", + "scheme_count": 179 + }, + { + "category": "狙击步枪", + "scheme_count": 65 + }, + { + "category": "霰弹枪", + "scheme_count": 54 + }, + { + "category": "手枪", + "scheme_count": 25 + }, + { + "category": "特殊武器", + "scheme_count": 5 + } + ] + }, + "error": null + }, + "weapons?category=AR": { + "ok": true, + "data": { + "success": true, + "data": [] + }, + "error": null + }, + "weapons (all)": { + "ok": true, + "data": { + "success": true, + "data": [ + { + "id": 57, + "weapon_name": "m14", + "display_name": "M14射手步枪", + "category": "射手步枪", + "use_count": 144 + }, + { + "id": 1, + "weapon_name": "M7", + "display_name": "M7战斗步枪", + "category": "突击步枪", + "use_count": 143 + }, + { + "id": 4, + "weapon_name": "K416", + "display_name": "K416突击步枪", + "category": "突击步枪", + "use_count": 91 + }, + { + "id": 6, + "weapon_name": "ASVal", + "display_name": "AS Val突击步枪", + "category": "突击步枪", + "use_count": 78 + }, + { + "id": 51, + "weapon_name": "pkm", + "display_name": "PKM通用机枪", + "category": "轻机枪", + "use_count": 63 + }, + { + "id": 7, + "weapon_name": "M4A1", + "display_name": "M4A1突击步枪", + "category": "突击步枪", + "use_count": 58 + }, + { + "id": 42, + "weapon_name": "mp7", + "display_name": "MP7冲锋枪", + "category": "冲锋枪", + "use_count": 56 + }, + { + "id": 46, + "weapon_name": "sr3m", + "display_name": "SR-3M紧凑突击步枪", + "category": "冲锋枪", + "use_count": 56 + }, + { + "id": 52, + "weapon_name": "qjb201", + "display_name": "QJB201轻机枪", + "category": "轻机枪", + "use_count": 51 + }, + { + "id": 5, + "weapon_name": "KC17", + "display_name": "KC17突击步枪", + "category": "突击步枪", + "use_count": 50 + }, + { + "id": 78, + "weapon_name": "mk17", + "display_name": "MK47突击步枪", + "category": "突击步枪", + "use_count": 49 + }, + { + "id": 2, + "weapon_name": "K437", + "display_name": "K437突击步枪", + "category": "突击步枪", + "use_count": 48 + }, + { + "id": 45, + "weapon_name": "smg", + "display_name": "SMG-45冲锋枪", + "category": "冲锋枪", + "use_count": 48 + }, + { + "id": 12, + "weapon_name": "TL", + "display_name": "腾龙突击步枪", + "category": "突击步枪", + "use_count": 48 + }, + { + "id": 10, + "weapon_name": "SCAR-H", + "display_name": "SCAR-H战斗步枪", + "category": "突击步枪", + "use_count": 46 + }, + { + "id": 43, + "weapon_name": "p90", + "display_name": "P90冲锋枪", + "category": "冲锋枪", + "use_count": 37 + }, + { + "id": 14, + "weapon_name": "G3", + "display_name": "G3战斗步枪", + "category": "突击步枪", + "use_count": 36 + }, + { + "id": 8, + "weapon_name": "AUG", + "display_name": "AUG突击步枪", + "category": "突击步枪", + "use_count": 34 + }, + { + "id": 49, + "weapon_name": "m249", + "display_name": "M249轻机枪", + "category": "轻机枪", + "use_count": 34 + }, + { + "id": 11, + "weapon_name": "AKM", + "display_name": "AKM突击步枪", + "category": "突击步枪", + "use_count": 33 + }, + { + "id": 50, + "weapon_name": "m250", + "display_name": "M250通用机枪", + "category": "轻机枪", + "use_count": 31 + }, + { + "id": 44, + "weapon_name": "qcq171", + "display_name": "QCQ171冲锋枪", + "category": "冲锋枪", + "use_count": 31 + }, + { + "id": 3, + "weapon_name": "ASH-12", + "display_name": "ASh-12战斗步枪", + "category": "突击步枪", + "use_count": 30 + }, + { + "id": 41, + "weapon_name": "mp5", + "display_name": "MP5冲锋枪", + "category": "冲锋枪", + "use_count": 27 + }, + { + "id": 21, + "weapon_name": "ys", + "display_name": "勇士冲锋枪", + "category": "冲锋枪", + "use_count": 27 + }, + { + "id": 9, + "weapon_name": "AK-12", + "display_name": "AK-12突击步枪", + "category": "突击步枪", + "use_count": 26 + }, + { + "id": 53, + "weapon_name": "awm", + "display_name": "AWM狙击步枪", + "category": "狙击步枪", + "use_count": 25 + }, + { + "id": 16, + "weapon_name": "PTR-32", + "display_name": "PTR-32突击步枪", + "category": "突击步枪", + "use_count": 23 + }, + { + "id": 54, + "weapon_name": "m700", + "display_name": "M700狙击步枪", + "category": "狙击步枪", + "use_count": 22 + }, + { + "id": 79, + "weapon_name": "mk4", + "display_name": "MK4冲锋枪", + "category": "冲锋枪", + "use_count": 21 + }, + { + "id": 68, + "weapon_name": "s12k", + "display_name": "S12K霰弹枪", + "category": "霰弹枪", + "use_count": 21 + }, + { + "id": 62, + "weapon_name": "sr25", + "display_name": "SR-25射手步枪", + "category": "射手步枪", + "use_count": 21 + }, + { + "id": 48, + "weapon_name": "vkt", + "display_name": "Vector冲锋枪", + "category": "冲锋枪", + "use_count": 20 + }, + { + "id": 63, + "weapon_name": "svd", + "display_name": "SVD狙击步枪", + "category": "射手步枪", + "use_count": 19 + }, + { + "id": 82, + "weapon_name": "ar57", + "display_name": "AR57突击步枪", + "category": "突击步枪", + "use_count": 18 + }, + { + "id": 15, + "weapon_name": "QBZ95-1", + "display_name": "QBZ95-1突击步枪", + "category": "突击步枪", + "use_count": 18 + }, + { + "id": 13, + "weapon_name": "SG552", + "display_name": "SG552突击步枪", + "category": "突击步枪", + "use_count": 17 + }, + { + "id": 64, + "weapon_name": "vss", + "display_name": "VSS射手步枪", + "category": "射手步枪", + "use_count": 16 + }, + { + "id": 20, + "weapon_name": "yn", + "display_name": "野牛冲锋枪", + "category": "冲锋枪", + "use_count": 16 + }, + { + "id": 17, + "weapon_name": "CAR-15", + "display_name": "CAR-15突击步枪", + "category": "突击步枪", + "use_count": 15 + }, + { + "id": 59, + "weapon_name": "psg1", + "display_name": "PSG-1射手步枪", + "category": "射手步枪", + "use_count": 15 + }, + { + "id": 60, + "weapon_name": "sks", + "display_name": "SKS射手步枪", + "category": "射手步枪", + "use_count": 15 + }, + { + "id": 18, + "weapon_name": "M16A4", + "display_name": "M16A4突击步枪", + "category": "突击步枪", + "use_count": 14 + }, + { + "id": 47, + "weapon_name": "uzi", + "display_name": "UZI冲锋枪", + "category": "冲锋枪", + "use_count": 14 + }, + { + "id": 72, + "weapon_name": "g18", + "display_name": "G18", + "category": "手枪", + "use_count": 13 + }, + { + "id": 67, + "weapon_name": "m1014", + "display_name": "M1014霰弹枪", + "category": "霰弹枪", + "use_count": 13 + }, + { + "id": 77, + "weapon_name": "marlin", + "display_name": "Marlin杠杆步枪", + "category": "射手步枪", + "use_count": 13 + }, + { + "id": 58, + "weapon_name": "mini", + "display_name": "Mini-14射手步枪", + "category": "射手步枪", + "use_count": 11 + }, + { + "id": 65, + "weapon_name": "725", + "display_name": "725双管霰弹枪", + "category": "霰弹枪", + "use_count": 10 + }, + { + "id": 69, + "weapon_name": "93r", + "display_name": "93R", + "category": "手枪", + "use_count": 9 + }, + { + "id": 55, + "weapon_name": "r93", + "display_name": "R93狙击步枪", + "category": "狙击步枪", + "use_count": 9 + }, + { + "id": 56, + "weapon_name": "sv98", + "display_name": "SV-98狙击步枪", + "category": "狙击步枪", + "use_count": 9 + }, + { + "id": 80, + "weapon_name": "mcxlt", + "display_name": "MCX LT突击步枪", + "category": "突击步枪", + "use_count": 8 + }, + { + "id": 81, + "weapon_name": "fs12", + "display_name": "FS-12霰弹枪", + "category": "霰弹枪", + "use_count": 6 + }, + { + "id": 61, + "weapon_name": "sr9", + "display_name": "SR9射手步枪", + "category": "射手步枪", + "use_count": 6 + }, + { + "id": 76, + "weapon_name": "fhg", + "display_name": "复合弓", + "category": "特殊武器", + "use_count": 5 + }, + { + "id": 19, + "weapon_name": "AKS-7U", + "display_name": "AKS-7U突击步枪", + "category": "突击步枪", + "use_count": 4 + }, + { + "id": 66, + "weapon_name": "m870", + "display_name": "M870霰弹枪", + "category": "霰弹枪", + "use_count": 4 + }, + { + "id": 70, + "weapon_name": "357zl", + "display_name": ".357左轮", + "category": "手枪", + "use_count": 1 + }, + { + "id": 74, + "weapon_name": "qsz92g", + "display_name": "QSZ92G", + "category": "手枪", + "use_count": 1 + }, + { + "id": 75, + "weapon_name": "smzy", + "display_name": "沙漠之鹰", + "category": "手枪", + "use_count": 1 + }, + { + "id": 71, + "weapon_name": "g17", + "display_name": "G17", + "category": "手枪", + "use_count": 0 + }, + { + "id": 73, + "weapon_name": "m1911", + "display_name": "M1911", + "category": "手枪", + "use_count": 0 + }, + { + "id": 83, + "weapon_name": "M80", + "display_name": "M82狙击步枪", + "category": "狙击步枪", + "use_count": 0 + } + ] + }, + "error": null + }, + "schemes?sort=hot&page=1&limit=12": { + "ok": true, + "data": { + "success": true, + "data": [ + { + "id": 1237, + "user_id": 1006, + "description": "M7满改方案", + "scheme_content": "M7战斗步枪-烽火地带-6I17GK0059L1ICRB4NQP4", + "category": "突击步枪", + "weapon_name": "M7战斗步枪", + "price": "97W", + "tags": [], + "likes": null, + "uses": 10299, + "status": "normal", + "comments": null, + "shares": null, + "created_at": "2025-11-20T16:00:00.000Z", + "updated_at": "2026-05-23T17:09:11.000Z", + "source": 1, + "total_historical_uses": 10298, + "username": "揽贝电竞-迟到了", + "avatar": "https://q6.itc.cn/q_70/images03/20240624/e21208063d4347fb87f4af311043bc61.jpeg", + "partner_type": "club", + "partner_level": "bronze", + "partner_badge": "揽贝电竞", + "partner_logo": "https://tuku.maqt.top/i/2026/03/22/sxih6d.png", + "social_link": null + }, + { + "id": 1087, + "user_id": 34, + "description": "59W满改AS Val", + "scheme_content": "AS Val突击步枪-烽火地带-6GCI31407ODLT6ETQT3GS", + "category": "突击步枪", + "weapon_name": "AS Val突击步枪", + "price": "57W", + "tags": [], + "likes": null, + "uses": 6768, + "status": "normal", + "comments": null, + "shares": null, + "created_at": "2025-11-13T16:00:00.000Z", + "updated_at": "2026-05-23T16:49:30.000Z", + "source": 2, + "total_historical_uses": 6768, + "username": "捡破烂的鼠鼠", + "avatar": "https://tuku.maqt.top/i/2026/03/22/su35cy.png", + "partner_type": "none", + "partner_level": "none", + "partner_badge": null, + "partner_logo": null, + "social_link": null + }, + { + "id": 1234, + "user_id": 999, + "description": "老鼠最爱", + "scheme_content": "AUG突击步枪-烽火地带-6HM4TOS0FSNK3AL67MM2Q", + "category": "突击步枪", + "weapon_name": "AUG突击步枪", + "price": "30W", + "tags": [], + "likes": null, + "uses": 6647, + "status": "normal", + "comments": null, + "shares": null, + "created_at": "2025-11-20T16:00:00.000Z", + "updated_at": "2026-05-23T15:44:11.000Z", + "source": 1, + "total_historical_uses": 6647, + "username": "揽贝电竞-汉", + "avatar": "https://q6.itc.cn/q_70/images03/20240624/e21208063d4347fb87f4af311043bc61.jpeg", + "partner_type": "club", + "partner_level": "gold", + "partner_badge": "揽贝电竞", + "partner_logo": "https://tuku.maqt.top/i/2026/03/22/sxih6d.png", + "social_link": null + }, + { + "id": 1150, + "user_id": 36, + "description": "27W性价比M14", + "scheme_content": "M14射手步枪-烽火地带-6GQ0VK00FIAS4OUQQ081T", + "category": "射手步枪", + "weapon_name": "M14射手步枪", + "price": "36W", + "tags": [], + "likes": null, + "uses": 5928, + "status": "normal", + "comments": null, + "shares": null, + "created_at": "2025-11-13T16:00:00.000Z", + "updated_at": "2026-05-23T16:08:40.000Z", + "source": 2, + "total_historical_uses": 5927, + "username": "威风的虫", + "avatar": "https://tuku.maqt.top/i/2026/03/22/sv3fg9.png", + "partner_type": "none", + "partner_level": "none", + "partner_badge": null, + "partner_logo": null, + "social_link": null + }, + { + "id": 1133, + "user_id": 36, + "description": "28W性价比KC17", + "scheme_content": "KC17突击步枪-烽火地带-6GUF9TC0FIAS4OUQQ081T", + "category": "突击步枪", + "weapon_name": "KC17突击步枪", + "price": "39W", + "tags": [], + "likes": null, + "uses": 5539, + "status": "normal", + "comments": null, + "shares": null, + "created_at": "2025-11-13T16:00:00.000Z", + "updated_at": "2026-05-23T17:01:09.000Z", + "source": 2, + "total_historical_uses": 5539, + "username": "威风的虫", + "avatar": "https://tuku.maqt.top/i/2026/03/22/sv3fg9.png", + "partner_type": "none", + "partner_level": "none", + "partner_badge": null, + "partner_logo": null, + "social_link": null + }, + { + "id": 3375, + "user_id": 2661, + "description": "37w半改巨好用以小博大", + "scheme_content": "MK47突击步枪-烽火地带-6J435M000S7DJO512U7FE", + "category": "突击步枪", + "weapon_name": "MK47突击步枪", + "price": "37W", + "tags": [], + "likes": null, + "uses": 4192, + "status": null, + "comments": null, + "shares": null, + "created_at": "2026-03-08T04:32:18.000Z", + "updated_at": "2026-05-23T17:16:02.000Z", + "source": null, + "total_historical_uses": 4192, + "username": "3272602682", + "avatar": "https://tuku.maqt.top/i/2026/03/22/sv3fg9.png", + "partner_type": null, + "partner_level": null, + "partner_badge": null, + "partner_logo": null, + "social_link": null + }, + { + "id": 893, + "user_id": 865, + "description": "M7性价比", + "scheme_content": "M7战斗步枪-烽火地带-6HTPDTG0A6PIA75LU5T70", + "category": "突击步枪", + "weapon_name": "M7战斗步枪", + "price": "30W", + "tags": [], + "likes": null, + "uses": 3825, + "status": "normal", + "comments": null, + "shares": null, + "created_at": "2025-11-13T16:00:00.000Z", + "updated_at": "2026-05-23T16:56:03.000Z", + "source": 1, + "total_historical_uses": 3825, + "username": "柏辰惜", + "avatar": "https://tuku.maqt.top/i/2026/03/22/sv0h1u.png", + "partner_type": "none", + "partner_level": "none", + "partner_badge": null, + "partner_logo": null, + "social_link": null + }, + { + "id": 1067, + "user_id": 18, + "description": "43W性价比K416", + "scheme_content": "K416突击步枪-烽火地带-6FNMH1S07FGCB0BL90FLR", + "category": "突击步枪", + "weapon_name": "K416突击步枪", + "price": "54W", + "tags": [], + "likes": null, + "uses": 3607, + "status": "normal", + "comments": null, + "shares": null, + "created_at": "2025-11-13T16:00:00.000Z", + "updated_at": "2026-05-23T16:17:23.000Z", + "source": 2, + "total_historical_uses": 3607, + "username": "猛攻鼠鼠", + "avatar": "https://tuku.maqt.top/i/2026/03/22/suikyd.png", + "partner_type": "none", + "partner_level": "none", + "partner_badge": null, + "partner_logo": null, + "social_link": null + }, + { + "id": 1110, + "user_id": 19, + "description": "18W性价比腾龙", + "scheme_content": "腾龙突击步枪-烽火地带-6H5C4SC0FUH1E5MQ63E4O", + "category": "突击步枪", + "weapon_name": "腾龙突击步枪", + "price": "21W", + "tags": [], + "likes": null, + "uses": 3603, + "status": "normal", + "comments": null, + "shares": null, + "created_at": "2025-11-13T16:00:00.000Z", + "updated_at": "2026-05-23T15:37:42.000Z", + "source": 2, + "total_historical_uses": 3603, + "username": "大坝皇帝", + "avatar": "https://tuku.maqt.top/i/2026/03/22/sufdeq.png", + "partner_type": "none", + "partner_level": "none", + "partner_badge": null, + "partner_logo": null, + "social_link": null + }, + { + "id": 909, + "user_id": 51, + "description": "半改41640内稳压", + "scheme_content": "K416突击步枪-烽火地带-6HR7CTS09ON8JGRV06LJB", + "category": "突击步枪", + "weapon_name": "K416突击步枪", + "price": "32W", + "tags": [], + "likes": null, + "uses": 3599, + "status": "normal", + "comments": null, + "shares": null, + "created_at": "2025-11-13T16:00:00.000Z", + "updated_at": "2026-05-23T15:59:07.000Z", + "source": 1, + "total_historical_uses": 3599, + "username": "Li", + "avatar": "https://tuku.maqt.top/i/2026/03/22/sunvy9.png", + "partner_type": "none", + "partner_level": "none", + "partner_badge": null, + "partner_logo": null, + "social_link": null + }, + { + "id": 2145, + "user_id": 1179, + "description": "28w机密得吃巨浪!", + "scheme_content": "AS Val突击步枪-烽火地带-6HHKBJS08C6MCDLP0IF72", + "category": "突击步枪", + "weapon_name": "AS Val突击步枪", + "price": "28W", + "tags": [], + "likes": null, + "uses": 3486, + "status": "normal", + "comments": null, + "shares": null, + "created_at": "2025-12-02T16:00:00.000Z", + "updated_at": "2026-05-23T15:23:04.000Z", + "source": 3, + "total_historical_uses": 3486, + "username": "何必在忆", + "avatar": "https://q6.itc.cn/q_70/images03/20240624/e21208063d4347fb87f4af311043bc61.jpeg", + "partner_type": "none", + "partner_level": "none", + "partner_badge": null, + "partner_logo": null, + "social_link": null + }, + { + "id": 933, + "user_id": 17, + "description": "48W满改ASh-12", + "scheme_content": "ASh-12战斗步枪-烽火地带-6HR3IAG01PILQNO8CBO2G", + "category": "突击步枪", + "weapon_name": "ASh-12战斗步枪", + "price": "43W", + "tags": [], + "likes": null, + "uses": 3388, + "status": "normal", + "comments": null, + "shares": null, + "created_at": "2025-11-13T16:00:00.000Z", + "updated_at": "2026-05-23T16:12:54.000Z", + "source": 2, + "total_historical_uses": 3388, + "username": "不知名用户", + "avatar": "https://tuku.maqt.top/i/2026/03/22/sufdeq.png", + "partner_type": null, + "partner_level": null, + "partner_badge": null, + "partner_logo": null, + "social_link": null + } + ], + "pagination": { + "page": 1, + "limit": 12, + "hasMore": true + } + }, + "error": null + }, + "schemes_aob": { + "ok": true, + "data": { + "success": true, + "data": [ + { + "id": 171, + "user_id": 19, + "description": "战场AS Val-突击兵用", + "scheme_content": "AS Val突击步枪-全面战场-6H8BMQG00HC1FJHVLCQK3", + "category": "突击步枪", + "weapon_name": "AS Val突击步枪", + "tags": [], + "likes": null, + "uses": 2909, + "status": "normal", + "comments": null, + "shares": null, + "created_at": "2025-11-13T16:00:00.000Z", + "updated_at": "2026-05-23T16:07:05.000Z", + "source": 2, + "total_historical_uses": 2909, + "username": "大坝皇帝", + "avatar": "https://tuku.maqt.top/i/2026/03/22/sufdeq.png", + "partner_type": "none", + "partner_level": "none", + "partner_badge": null, + "partner_logo": null, + "social_link": null + }, + { + "id": 163, + "user_id": 18, + "description": "战场M7-突击兵用", + "scheme_content": "M7战斗步枪-全面战场-6H8BMGG00HC1FJHVLCQK3", + "category": "突击步枪", + "weapon_name": "M7战斗步枪", + "tags": [], + "likes": null, + "uses": 1941, + "status": "normal", + "comments": null, + "shares": null, + "created_at": "2025-11-13T16:00:00.000Z", + "updated_at": "2026-05-23T16:10:45.000Z", + "source": 2, + "total_historical_uses": 1941, + "username": "猛攻鼠鼠", + "avatar": "https://tuku.maqt.top/i/2026/03/22/suikyd.png", + "partner_type": "none", + "partner_level": "none", + "partner_badge": null, + "partner_logo": null, + "social_link": null + }, + { + "id": 221, + "user_id": 604, + "description": "大战场SR-25开镜快", + "scheme_content": "SR-25射手步枪-全面战场-6I30VK805D4ELBTTOKUN8", + "category": "射手步枪", + "weapon_name": "SR-25射手步枪", + "tags": [], + "likes": null, + "uses": 1198, + "status": "normal", + "comments": null, + "shares": null, + "created_at": "2025-11-13T16:00:00.000Z", + "updated_at": "2026-05-23T16:12:56.000Z", + "source": 1, + "total_historical_uses": 1198, + "username": "浅梦qqq", + "avatar": "https://tuku.maqt.top/i/2026/03/22/sufdeq.png", + "partner_type": "none", + "partner_level": "none", + "partner_badge": null, + "partner_logo": null, + "social_link": null + }, + { + "id": 220, + "user_id": 19, + "description": "蜂医K416无后座", + "scheme_content": "K416突击步枪-全面战场-6G6E3VK00ES0HEAQBTB8O", + "category": "突击步枪", + "weapon_name": "K416突击步枪", + "tags": [], + "likes": null, + "uses": 1064, + "status": "normal", + "comments": null, + "shares": null, + "created_at": "2025-11-13T16:00:00.000Z", + "updated_at": "2026-05-23T16:55:50.000Z", + "source": 2, + "total_historical_uses": 1064, + "username": "大坝皇帝", + "avatar": "https://tuku.maqt.top/i/2026/03/22/sufdeq.png", + "partner_type": "none", + "partner_level": "none", + "partner_badge": null, + "partner_logo": null, + "social_link": null + }, + { + "id": 218, + "user_id": 18, + "description": "版本强势武器SR-3M", + "scheme_content": "SR-3M紧凑突击步枪-全面战场-6F39EN80A7UO62K4HI8TR", + "category": "冲锋枪", + "weapon_name": "SR-3M紧凑突击步枪", + "tags": [], + "likes": null, + "uses": 885, + "status": "normal", + "comments": null, + "shares": null, + "created_at": "2025-11-13T16:00:00.000Z", + "updated_at": "2026-05-23T16:27:18.000Z", + "source": 2, + "total_historical_uses": 885, + "username": "猛攻鼠鼠", + "avatar": "https://tuku.maqt.top/i/2026/03/22/suikyd.png", + "partner_type": "none", + "partner_level": "none", + "partner_badge": null, + "partner_logo": null, + "social_link": null + }, + { + "id": 196, + "user_id": 38, + "description": "战场射速腾龙", + "scheme_content": "腾龙突击步枪-全面战场-6GV7PF002N6I0QIIIAFK2", + "category": "突击步枪", + "weapon_name": "腾龙突击步枪", + "tags": [], + "likes": null, + "uses": 879, + "status": "normal", + "comments": null, + "shares": null, + "created_at": "2025-11-13T16:00:00.000Z", + "updated_at": "2026-05-23T11:53:29.000Z", + "source": 2, + "total_historical_uses": 879, + "username": "麦小雯", + "avatar": "https://tuku.maqt.top/i/2026/03/22/suikyd.png", + "partner_type": "none", + "partner_level": "none", + "partner_badge": null, + "partner_logo": null, + "social_link": null + }, + { + "id": 158, + "user_id": 34, + "description": "战场腰射型MP7", + "scheme_content": "MP7冲锋枪-全面战场-6HF2FJC0BNVH9DOH2R78E", + "category": "冲锋枪", + "weapon_name": "MP7冲锋枪", + "tags": [], + "likes": null, + "uses": 847, + "status": "normal", + "comments": null, + "shares": null, + "created_at": "2025-11-13T16:00:00.000Z", + "updated_at": "2026-05-23T09:00:30.000Z", + "source": 2, + "total_historical_uses": 847, + "username": "捡破烂的鼠鼠", + "avatar": "https://tuku.maqt.top/i/2026/03/22/su35cy.png", + "partner_type": "none", + "partner_level": "none", + "partner_badge": null, + "partner_logo": null, + "social_link": null + }, + { + "id": 183, + "user_id": 36, + "description": "战场KC17", + "scheme_content": "KC17突击步枪-全面战场-6H37AA002N6I0QIIIAFK2", + "category": "突击步枪", + "weapon_name": "KC17突击步枪", + "tags": [], + "likes": null, + "uses": 564, + "status": "normal", + "comments": null, + "shares": null, + "created_at": "2025-11-13T16:00:00.000Z", + "updated_at": "2026-05-23T04:55:52.000Z", + "source": 2, + "total_historical_uses": 564, + "username": "威风的虫", + "avatar": "https://tuku.maqt.top/i/2026/03/22/sv3fg9.png", + "partner_type": "none", + "partner_level": "none", + "partner_badge": null, + "partner_logo": null, + "social_link": null + }, + { + "id": 120, + "user_id": 17, + "description": "战场M4A1-突击兵用", + "scheme_content": "M4A1突击步枪-全面战场-6HGK47G0E3GG6TI3ID6B6", + "category": "突击步枪", + "weapon_name": "M4A1突击步枪", + "tags": [], + "likes": null, + "uses": 545, + "status": "normal", + "comments": null, + "shares": null, + "created_at": "2025-11-13T16:00:00.000Z", + "updated_at": "2026-05-23T02:09:35.000Z", + "source": 2, + "total_historical_uses": 545, + "username": "不知名用户", + "avatar": "https://tuku.maqt.top/i/2026/03/22/sufdeq.png", + "partner_type": null, + "partner_level": null, + "partner_badge": null, + "partner_logo": null, + "social_link": null + }, + { + "id": 139, + "user_id": 19, + "description": "战场大弹匣AUG", + "scheme_content": "AUG突击步枪-全面战场-6HCDMN80CQ1R6AUL0MHND", + "category": "突击步枪", + "weapon_name": "AUG突击步枪", + "tags": [], + "likes": null, + "uses": 520, + "status": "normal", + "comments": null, + "shares": null, + "created_at": "2025-11-13T16:00:00.000Z", + "updated_at": "2026-05-23T14:32:35.000Z", + "source": 2, + "total_historical_uses": 520, + "username": "大坝皇帝", + "avatar": "https://tuku.maqt.top/i/2026/03/22/sufdeq.png", + "partner_type": "none", + "partner_level": "none", + "partner_badge": null, + "partner_logo": null, + "social_link": null + }, + { + "id": 172, + "user_id": 17, + "description": "战场M7-突击和工程兵可用", + "scheme_content": "M7战斗步枪-全面战场-6HE333O0CQ1R6AUL0MHND", + "category": "突击步枪", + "weapon_name": "M7战斗步枪", + "tags": [], + "likes": null, + "uses": 502, + "status": "normal", + "comments": null, + "shares": null, + "created_at": "2025-11-13T16:00:00.000Z", + "updated_at": "2026-05-23T12:32:14.000Z", + "source": 2, + "total_historical_uses": 502, + "username": "不知名用户", + "avatar": "https://tuku.maqt.top/i/2026/03/22/sufdeq.png", + "partner_type": null, + "partner_level": null, + "partner_badge": null, + "partner_logo": null, + "social_link": null + }, + { + "id": 144, + "user_id": 38, + "description": "战场R93-侦察兵用", + "scheme_content": "R93狙击步枪-全面战场-6GQ6JM40EKCRG16BBHEI9", + "category": "狙击步枪", + "weapon_name": "R93狙击步枪", + "tags": [], + "likes": null, + "uses": 501, + "status": "normal", + "comments": null, + "shares": null, + "created_at": "2025-11-13T16:00:00.000Z", + "updated_at": "2026-05-23T05:10:48.000Z", + "source": 2, + "total_historical_uses": 501, + "username": "麦小雯", + "avatar": "https://tuku.maqt.top/i/2026/03/22/suikyd.png", + "partner_type": "none", + "partner_level": "none", + "partner_badge": null, + "partner_logo": null, + "social_link": null + } + ], + "pagination": { + "page": 1, + "limit": 12, + "hasMore": true + } + }, + "error": null + }, + "adverts": { + "ok": true, + "data": { + "success": true, + "data": [ + { + "id": "ad_9", + "title": "为您的猛攻之路保驾护航", + "author": "Stevenma", + "avatar": "https://tuku.maqt.top/i/2026/03/22/sw9b3o.jpg", + "category": "advert", + "shareTime": "2025-09-29T16:00:00.000Z", + "likes": 61, + "views": 211, + "description": "码枪堂软件版", + "link_url": "https://pro.maqt.top/", + "price": 0, + "isAdvert": true, + "image_url": "https://tuku.maqt.top/i/2026/03/22/svtsmd.png", + "click_count": 17969, + "isVip": true + } + ] + }, + "error": null + }, + "login": { + "ok": true, + "data": { + "success": true, + "message": "登录成功", + "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6NDc5MTcsInVzZXJuYW1lIjoic2l4dGVlbnRoIiwidG9rZW5WZXJzaW9uIjoxMiwiaWF0IjoxNzc5NTU2NzU3LCJleHAiOjIwOTUxMzI3NTd9.pMVjKHxHMg7E-NQo8NbovMQcmEURJ-ooAvkekxPqvOc", + "user": { + "id": 47917, + "username": "sixteenth", + "avatar": "https://tuku.maqt.top/i/2026/03/22/sv3fg9.png", + "email": "sixteenth@126.com", + "status": "active", + "isVip": 1, + "vipExpireAt": "2036-05-04T14:47:24.000Z", + "freezeUntil": null + } + }, + "error": null + }, + "session-status": { + "ok": true, + "data": { + "success": true, + "loggedIn": true, + "user": { + "id": 47917, + "username": "sixteenth", + "status": "active", + "isVip": true, + "vipExpireAt": "2036-05-04T14:47:24.000Z", + "freezeUntil": null + } + }, + "error": null + }, + "vip-status": { + "ok": true, + "data": { + "success": true, + "isVip": 1, + "vipExpireAt": "2036-05-04T14:47:24.000Z", + "daysRemaining": 3634 + }, + "error": null + }, + "favorites": { + "ok": false, + "data": null, + "error": "401 Client Error: Unauthorized for url: https://maqt.top/api/favorites?sort=hot&page=1&limit=12" + }, + "favorites/count": { + "ok": true, + "data": { + "success": true, + "count": 0 + }, + "error": null + }, + "user/stats/47917": { + "ok": true, + "data": { + "success": true, + "data": { + "sharedCount": 0, + "totalUsage": "0", + "filterShareCount": 0, + "filterShareCopyCount": 0, + "filterShareLikeCount": 0, + "coins": 0 + } + }, + "error": null + }, + "activity/ping": { + "ok": false, + "data": null, + "error": "404 Client Error: Not Found for url: https://maqt.top/api/activity/ping" + } +} \ No newline at end of file diff --git a/origet/__pycache__/api_spec.cpython-313.pyc b/origet/__pycache__/api_spec.cpython-313.pyc new file mode 100644 index 0000000..9bd3bef Binary files /dev/null and b/origet/__pycache__/api_spec.cpython-313.pyc differ diff --git a/origet/__pycache__/client.cpython-312.pyc b/origet/__pycache__/client.cpython-312.pyc new file mode 100644 index 0000000..8677a78 Binary files /dev/null and b/origet/__pycache__/client.cpython-312.pyc differ diff --git a/origet/__pycache__/client.cpython-313.pyc b/origet/__pycache__/client.cpython-313.pyc new file mode 100644 index 0000000..0834f22 Binary files /dev/null and b/origet/__pycache__/client.cpython-313.pyc differ diff --git a/origet/__pycache__/decrypt.cpython-313.pyc b/origet/__pycache__/decrypt.cpython-313.pyc new file mode 100644 index 0000000..b233c57 Binary files /dev/null and b/origet/__pycache__/decrypt.cpython-313.pyc differ diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 8990871..efbf89d 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -280,3 +280,31 @@ model DeviceBinding { @@unique([userId, installId]) @@map("device_bindings") } + +// ============================================ +// 地图密码批次表 +// ============================================ +model MapPassword { + id String @id @default(uuid()) + createdAt DateTime @default(now()) @map("created_at") + + maps MapPasswordItem[] + + @@map("map_passwords") +} + +// ============================================ +// 地图密码明细表 +// ============================================ +model MapPasswordItem { + id String @id @default(uuid()) + batchId String @map("batch_id") + mapName String @map("map_name") @db.VarChar(50) + password String @db.VarChar(20) + location String @db.Text + image String @db.VarChar(500) + + batch MapPassword @relation(fields: [batchId], references: [id], onDelete: Cascade) + + @@map("map_password_items") +} diff --git a/src/index.ts b/src/index.ts index 974b5a6..f8dbd60 100644 --- a/src/index.ts +++ b/src/index.ts @@ -158,9 +158,30 @@ app.get('/api/software-version-ad', (req, res) => { res.json({ success: true, data: { items: [] } }); }); -// 游戏地图密码缓存 -app.get('/api/game/map-password/cached', (req, res) => { - res.json({ success: true, data: [] }); +// 游戏地图密码缓存(对齐 maqt.top 格式) +app.get('/api/game/map-password/cached', async (_req, res) => { + try { + // 从 DB 取最新一批地图密码 + const latest = await prisma.mapPassword.findFirst({ + orderBy: { createdAt: 'desc' }, + include: { maps: { select: { mapName: true, password: true, location: true, image: true } } }, + }); + if (latest) { + const d = new Date(latest.createdAt); + res.json({ + success: true, + data: { + maps: latest.maps, + updateTime: `${String(d.getDate()).padStart(2,'0')}月${String(d.getMonth()+1).padStart(2,'0')}日`, + }, + }); + } else { + // 默认空数据 + res.json({ success: true, data: { maps: [], updateTime: '' } }); + } + } catch { + res.json({ success: true, data: { maps: [], updateTime: '' } }); + } }); // 筛选分类 @@ -360,6 +381,37 @@ app.post('/api/admin/set-vip', async (req, res) => { } }); +// 管理员更新地图密码 +app.post('/api/admin/map-passwords', async (req, res) => { + const secret = process.env.ADMIN_SECRET; + if (!secret || req.headers['x-admin-secret'] !== secret) { + return res.status(403).json({ success: false, message: '禁止访问' }); + } + try { + const { maps } = req.body; + if (!Array.isArray(maps) || maps.length === 0) { + return res.status(400).json({ success: false, message: '缺少 maps 数组' }); + } + const batch = await prisma.mapPassword.create({ + data: { + maps: { + create: maps.map((m: any) => ({ + mapName: m.mapName, + password: m.password, + location: m.location || '', + image: m.image || '', + })), + }, + }, + include: { maps: true }, + }); + res.json({ success: true, data: batch }); + } catch (e: any) { + console.error('Admin map-password error:', e); + res.status(500).json({ success: false, message: '更新失败: ' + e.message }); + } +}); + // ============================================ // 错误处理 // ============================================