From b060f3a10f1ed0bbbf71516a5c139e2ee47bcf73 Mon Sep 17 00:00:00 2001 From: gch3n Date: Sun, 24 May 2026 14:02:48 +0800 Subject: [PATCH] fix: include user relation in scheme create, use raw UUID as id --- origet/ test_output_202605240119.json | 1252 +++++++++++++++++++ origet/__pycache__/api_spec.cpython-313.pyc | Bin 0 -> 8694 bytes origet/__pycache__/client.cpython-313.pyc | Bin 0 -> 12244 bytes origet/__pycache__/decrypt.cpython-313.pyc | Bin 0 -> 3311 bytes src/routes/favorites.ts | 2 +- src/routes/schemes.ts | 5 +- src/routes/schemesAob.ts | 5 +- 7 files changed, 1261 insertions(+), 3 deletions(-) create mode 100644 origet/ test_output_202605240119.json create mode 100644 origet/__pycache__/api_spec.cpython-313.pyc create mode 100644 origet/__pycache__/client.cpython-313.pyc create mode 100644 origet/__pycache__/decrypt.cpython-313.pyc 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 0000000000000000000000000000000000000000..9bd3befa2983c5ac5dcb15ce931c928ec6955164 GIT binary patch literal 8694 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 literal 0 HcmV?d00001 diff --git a/origet/__pycache__/decrypt.cpython-313.pyc b/origet/__pycache__/decrypt.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b233c57608644a0e0149fb30ff618b02cf7706b5 GIT binary patch literal 3311 zcma)8|8o<^72ngHbkfPPWc&@gm|he@5wUDyAOW?Iacl^-83Y2H?c3e=R`1K_-HOA(AsDuY75zVE5&8#N7{gj*R%R%Kt|9?pBv68>i^7ynP1ppK z?xH&x%M@dqyODck!1gGyUghUyUx4XJ3JF9RN zkAhWhRMK4?toD1?S}pKGg|KNqg=>SG-AJem*7|pEaHh(5eL31~GI-GcjMF=cs>J6I z3Od0@wZ>gsPwWLv{+IvT8p!K~YN1A`-A^0md34G|{ydwLH{k}ilsUI}^Ow2I`+Vym z!P~O;WpCSSZTzDzKFv*in4A7A_mgRk%Z+8oYU;z~k3aMA1LE7NHzLJU(R(tE!;-gU zSIZu+B89P}dQVHk-rX(S;&0C_O@8F#yAJ(;_a5YhBdtU=VRyH9PYkOPvBtw;A|i%~ z(Fmv*PN+MggN=MdR7DTBOny_hhtlX)c~~ch1R&<5oDd@;&;K7U`L{W#p7ie19FnXn zmm;C~iGIxjZ%tx3Tudq5brzUu_+RPPQ@d9elF3h`>qY?5!wfRRtupn@^QNcHn|c{T zrJq<{H{7V#C^fX^q+Xa$9}Pgc?WbkB*I~#5wBKp)t29tbw>A1)tNRAG*HqwSrgxJe z+qh5z%!Y-^7(OxRHsmoU&x0pX8o-)l$GE>pmlQ=#AW-y76M$6JW8VflZf@IdLZyaqu6oPEU zB$^sq%vp^)5sQaUhm`1uq%r+UT-MC7xEN713!I2YB##*bl%j$;JGp8JM-zP#)@(%; zQbZvtc`~$Z?Y`jgI6kc;#IO_`cw51P!8nedlGI@FcvE5+llbUU1u%*NQwlvPN1SuK z;X*_DOr~e9c4yZ1V(PU8yKDTwg#!}}nZdcbrmVd=)xO|xjUOL7e&zU$@U7VO*d(5F zw4@F%xT@19ugRC?Oi#9E=a+3$-FLdPuJ5Kg7VOS(-@k!Hn`l8DQI0&7c(6pmg}?Z8|`0pwr1OD@6?C?in>)Ax}G&gm@`T%c57+u$}N z5}hQdn*03y#hW(@DU_T3O%b0)uNOl8c;=_M^yj(J>$yv}7Bka@Y|w0_jOy{2G#Xr~ zyUs)5Z-GXIJdDSrrD%2)4~L3w#@_}B`B$EYDTN-g&hzh`doSIUW%*3|pV=J?&YJX4 z*2&LW`FVR~>L{)!D%gZLOyd8PH%b80qXUfIFHt8YQ~cTz-w+G{ZfJoK%=>A-4fL-Y zg2nKlYzk1&eM-F&V4(yV{<3w~UxR*F1D5}_E7+T8$d0n42-l1KYVqpb#f!gwJTtm< zW%8S^FXeu5F*o{$#TyrMW4D)nHT8JrLJ=pPg*NM8#(jpv1R|jixgd!`Sd=62fshUz zhat15Mvd|TEt6y=iKURJgriZ7Q>285MKz8U9c`A0i!q4^X=~8UdOS34ATk}02ts(u zHAfq1i18-BZUei?KKW+S%#q|k0>A}w8o)&dDoijR>uL!cXqCmg0W}(HdQ*%<05LK7 zj?ma*CE!Z3q5m9pAIw&~n(CadYsmP&IClHkr*GXInLhi~+3YK? z&)JX6GDiwkXbpu1;HQK_;A8F$_-tv5MI~8XCbbSCCLx}ZMpiq}0X+bRm-XnH@C$HC zvqa?xT=8tt*ia}E4~Ie;+b1f0vFM3HBrNK1f_RodRw-U>IZ(DKjH!4hEbbuPCk2GFes3TiNyemu_;uJK?ojeDsu$;Y~8Lb_tHIX-yF9u%lT4l z-eRX-n%I*^Kr-!52+40@sH%x=c?2Z0=LsSCatGBxrF-&-(22+so#uJOl#PyL>AD>A z+~2L6J}OJK&fClMwk3`pn6>k%_WO)&v@@+<8@fD{v1e-=XKTE(T+?5e=6TkBe(2m# z+J2ASGRJPYU$J?j>XU|1%YCb3G&0^l)<01*DgCZ>uKeI%t*_?I$l8#1BBoyV$bSHu CtP7t2 literal 0 HcmV?d00001 diff --git a/src/routes/favorites.ts b/src/routes/favorites.ts index 1a6c9b1..5b356e8 100644 --- a/src/routes/favorites.ts +++ b/src/routes/favorites.ts @@ -16,7 +16,7 @@ function sourceToType(source?: string): string { // 格式化方案卡片(对齐顶层 API) function formatScheme(s: any) { return { - id: parseInt(s.id, 36) || String(s.id).split('-')[0] || s.id, + id: s.id, user_id: s.userId, description: s.description || '', scheme_content: s.schemeContent || '', diff --git a/src/routes/schemes.ts b/src/routes/schemes.ts index 916eaac..9250189 100644 --- a/src/routes/schemes.ts +++ b/src/routes/schemes.ts @@ -10,7 +10,7 @@ const router = Router(); function formatScheme(s: any) { return { - id: parseInt(s.id, 36) || String(s.id).split('-')[0] || s.id, + id: s.id, user_id: s.userId, description: s.description || '', scheme_content: s.schemeContent || '', @@ -190,6 +190,9 @@ router.post('/', authMiddleware, async (req: Request, res: Response) => { price: priceNum, status: 'PUBLISHED', }, + include: { + user: { select: { id: true, username: true, avatar: true } }, + }, }); await prisma.user.update({ diff --git a/src/routes/schemesAob.ts b/src/routes/schemesAob.ts index 7098ecd..93fd345 100644 --- a/src/routes/schemesAob.ts +++ b/src/routes/schemesAob.ts @@ -8,7 +8,7 @@ const router = Router(); function formatScheme(s: any) { return { - id: parseInt(s.id, 36) || String(s.id).split('-')[0] || s.id, + id: s.id, user_id: s.userId, description: s.description || '', scheme_content: s.schemeContent || '', @@ -151,6 +151,9 @@ router.post('/', authMiddleware, async (req: Request, res: Response) => { schemeContent: body.scheme, status: 'PUBLISHED', }, + include: { + user: { select: { id: true, username: true, avatar: true } }, + }, }); await prisma.user.update({