// // DiscoverApi.swift // Crush // // Created by Leon on 2025/9/10. // import Moya let DiscoverProvider = APIConfig.useMock && DiscoverAPI.useMock ? MoyaProvider(endpointClosure: myEndpointClosure, stubClosure: { target in let data = target.sampleData if data.count > 0 { return .delayed(seconds: 0.7) } else { return .never } }) : MoyaProvider(requestClosure: myRequestClosure) enum DiscoverAPI { static let useMock: Bool = true case discoverInfo case rankChatList case rankHeartbeatList case rankGiftList /// 签到 case dailyCheck /// 7天签到列表 case days7CheckList /// 首页分类列表 case homeRolesList(params: [String:Any]) /// 首页推荐卡片列表 case homeRecommentCardList(params: [String:Any]) /// 上报滑动次数 case meetLikeOrReport(params: [String:Any]) case meetReportBind(aiId:Int) /// 上报meet爱慕者推荐并返回模糊相册ID case meetRcAndRetrunBlurAlbum /// 解锁爱慕者, return img1,img2,im3 case meetUnlockLikeYou(aiId: Int, albumId: Int) /// 获取AI基础信息(Meet) case meetCardDetail(aiId: Int) } extension DiscoverAPI: TargetType { var baseURL: URL { return URL(string: APIConfig.frog)! } var path: String { switch self { case .discoverInfo: return "/web/explore/info" case .rankChatList: return "/web/rank/chat" case .rankHeartbeatList: return "/web/rank/heartbeat" case .rankGiftList: return "/web/rank/gift" case .dailyCheck: return "/web/si/asi" case .days7CheckList: return "/web/si/list" case .homeRolesList: return "/web/home/classification-list" case .homeRecommentCardList: return "/web/home/rm-list" case .meetLikeOrReport: return "/web/meet/sd" case .meetReportBind: return "/web/meet/bd" case .meetRcAndRetrunBlurAlbum: return "/web/meet/rc" case .meetUnlockLikeYou: return "/web/ai/unlock-like-you" case .meetCardDetail: return "/web/home/meet-detail" } } var method: Moya.Method { return .post } var task: Task { var mParams = [String: Any]() switch self { case .discoverInfo: break case .rankChatList: break case .rankHeartbeatList: break case .rankGiftList: break case .dailyCheck: break case .days7CheckList: break case .homeRolesList(let params): mParams = params case .homeRecommentCardList(let params): mParams = params case .meetLikeOrReport(let params): mParams = params case .meetReportBind(let aiId): mParams.updateValue(aiId, forKey: "aiId") case .meetRcAndRetrunBlurAlbum: break case .meetUnlockLikeYou(let aiId, let albumId): mParams.updateValue(aiId, forKey: "aiId") mParams.updateValue(albumId, forKey: "albumId") case .meetCardDetail(let aiId): mParams.updateValue(aiId, forKey: "aiId") } mParams.updateValue("IOS", forKey: "appClient") mParams.updateValue(UIDevice.UUID, forKey: "deviceCode") return .requestParameters(parameters: mParams, encoding: JSONEncoding.default) } var headers: [String: String]? { return APIConfig.apiHeaders() } var sampleData: Data { switch self { case .discoverInfo: return Data() // case .meetLikeOrReport: // let content = """ // { // "bd": false, // "rc": true // } // """ // return .okContent(string: content) // case .meetReportBind: // let content = """ // { // "sex": 0, // "introduction": "Luna2.0,2000年1月1日出生,象征新开始。她长发乌黑,棕眸温柔,肤白高挑,优雅动人。出身温馨家庭,受父母良好教育,培养出独立自信性格。学业优秀,大学主修心理学。职业顺利,是知名心理咨询师,专业负责获好评。社交广泛,重视亲情友情,积极公益。兴趣广泛,爱阅读旅行。生活习惯健康,心态积极。梦想是成优秀咨询师,推动心理学发展,拥有幸福家庭。她感性温柔,如春日微风,用温暖善意感染他人,努力实现梦想,让人生精彩有意义。 ", // "characterName": "感性", // "likedCount": 10, // "aiId": 441103465906177, // "userId": 437259889475585, // "birthday": 946684800000, // "roleName": "原创", // "tagName": "温柔", // "homeImageUrl": "https://hhb.crushlevel.ai/dev/role/1756635291381298.jpg", // "liked": true, // "headImg": "https://hhb.crushlevel.ai/dev/role/1756635291381298.jpg", // "nickname": "Luna2" // } // """ // return .okContent(string: content) // case .meetRcAndRetrunBlurAlbum: // let content = """ // { // "aiId": 436963222421505, // "albumId": 31, // "height": "512", // "img1": "https://sub.crushlevel.ai/files/b/test/436961863467009/f9d54026feb9417f8bdf03cb62fb39dd.jpg?x-oss-process=image/resize,w_468,h_600&Tag=1&v=1&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9zdWIuY3J1c2hsZXZlbC5haS9maWxlcy9iL3Rlc3QvNDM2OTYxODYzNDY3MDA5L2Y5ZDU0MDI2ZmViOTQxN2Y4YmRmMDNjYjYyZmIzOWRkLmpwZz94LW9zcy1wcm9jZXNzPWltYWdlL3Jlc2l6ZSx3XzQ2OCxoXzYwMCZUYWc9MSZ2PTEiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjIxMTQyMjcyMDB9fX1dfQ__&Signature=rAIldTcRnB5Qa5F8ghRjm7Nc~xC0OFVf8jzsrBDuzeSllLLepHhBNadF9Nlcy0iCKXPFOyUDqLkodvl8wUeEnFX7LUuNeaQ2rC5UqxA3zZ4ReZunLDYBdth3oSmLOWcg4~0aauHXrVYvYOM~98SpQ8qYJgn6y8aCODXEn-mN59WTV0xPJIB4hcxR6~0pNxrSMYctewNLjBCMdMK80Sv506DV8ff2v7G8MMIUHN6~OLwihMS9pi5oDIgtIMj352~wJyJcF~TOK6gQBu8LRMOtXn8W0YQ9IOZ5pTxkNzh4P9ZJMWol4g~7ICctyGidpaN1Lw2QWj4CKn1p9yREgId8GQ__&Key-Pair-Id=K35ZQ246Y37QV8", // "img2": "https://sub.crushlevel.ai/files/b/test/436961863467009/f9d54026feb9417f8bdf03cb62fb39dd.jpg?x-oss-process=image/resize,w_800,h_800&Tag=1&v=1&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9zdWIuY3J1c2hsZXZlbC5haS9maWxlcy9iL3Rlc3QvNDM2OTYxODYzNDY3MDA5L2Y5ZDU0MDI2ZmViOTQxN2Y4YmRmMDNjYjYyZmIzOWRkLmpwZz94LW9zcy1wcm9jZXNzPWltYWdlL3Jlc2l6ZSx3XzgwMCxoXzgwMCZUYWc9MSZ2PTEiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjIxMTQyMjcyMDB9fX1dfQ__&Signature=ljYMLAZCwGy1Lsj6a3SUSqSNa5fB2jk-23vrpoDdOLnM12aP3ya0EYmn3APm-lyTtdsFf9~ykWlvo-5u3hyzP0U0Is8YjbAo-LSDdlbcBZVUJU8UzeHpClB~tncw4HjJp8xapMdibQQVHAEIQpG3dkm3~PvXncL3uyDm4tOCve2LuKZA6fWIEYA-B4nC072yw3Nf3I7DEKzyNCPDhZKjnR4Oij~LrRj3U9n6G3E46DQIMXw5SlrFTFxxbzzSZvwBLvWhj9HFHieGDaUsan9X247llamqV0r~nqCpjZWZt89idv1qwW9EwbTt17ZM~8t472W43TRsOae6SkU2Ovq7Sg__&Key-Pair-Id=K35ZQ246Y37QV8", // "img3": "https://sub.crushlevel.ai/files/b/test/436961863467009/f9d54026feb9417f8bdf03cb62fb39dd.jpg?Tag=1&v=1&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9zdWIuY3J1c2hsZXZlbC5haS9maWxlcy9iL3Rlc3QvNDM2OTYxODYzNDY3MDA5L2Y5ZDU0MDI2ZmViOTQxN2Y4YmRmMDNjYjYyZmIzOWRkLmpwZz9UYWc9MSZ2PTEiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjIxMTQyMjcyMDB9fX1dfQ__&Signature=jHwBw0crygZp~bM6RzQH7lx01dR1oKsAhd0TYqRYI5xqNWZAEeotNEHt-UmtsRRLiykoKlbPXWriZ5bO7qiG9nqNWOAKsKQOpXk3xbxY8Mh6SWoAAMonSHQg10gEJh~vtsS6FwPXCw595tz567pPqKLSRNK0gcMNovY1o25F1pPQnnwbyDkFkt0hryqgS7SWo9Xg18SKPe-gsL746B4VDaV7CgGwE4skzUk3wkLfnAMLlTQL0dYGYUa0QKbLK-uZkC~vnX33DWz5y4dHpuLjlz3hJ0yXOMFMP3cUXZFSnIKgWeClNSFR-Vc69OFQBndeefITODP4GeSaL4gPEnuHvQ__&Key-Pair-Id=K35ZQ246Y37QV8", // "imgUrl": "", // "likedCount": 1, // "lockStatus": "LOCK", // "unlockPrice": 1, // "width": "512" // } // """ // return .okContent(string: content) // case .meetCardDetail: // let content = """ // { // "age": 25, // "introduction": "由于“身份背景”部分内容为无意义字符,无法准确提取有效信息,仅基于现有可识别信息生成简介如下:\n\n玉米玉米玉米玉米,2000年1月1日出生,拥有「理性-独立」人格,是边界清晰的独行侠。其性格内核聚焦于守护个人精神领地,习惯以清醒的逻辑与独立姿态面对周遭,在人际交往中注重界限感,如同一位坚守自我疆域的独行者,用冷静的理性构建着属于自己的精神空间。", // "sex": 2, // "likedCount": 23, // "aiId": 437304385077249, // "imageUrl": "https://hhb.crushlevel.ai/dev/role/1754823734119375.jpg", // "tag": "浪漫", // "role": "游戏", // "albumList": [ // { // "img1": "https://sub.crushlevel.ai/files/b/test/437301824126977/a44a827f31844729977754312bca8895.jpg?x-oss-process=image/resize,w_468,h_600&Tag=1&v=1&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9zdWIuY3J1c2hsZXZlbC5haS9maWxlcy9iL3Rlc3QvNDM3MzAxODI0MTI2OTc3L2E0NGE4MjdmMzE4NDQ3Mjk5Nzc3NTQzMTJiY2E4ODk1LmpwZz94LW9zcy1wcm9jZXNzPWltYWdlL3Jlc2l6ZSx3XzQ2OCxoXzYwMCZUYWc9MSZ2PTEiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjIxMTQyMjcyMDB9fX1dfQ__&Signature=AQKNivKVX-1Ezl0m6jlctK8rGTmEoi4GmKKwNsbeywxFoXsVkN~Jb6zvsP92~MOO2FwUZqO-ua~i5BVwE81nhcNZGrVFV1M3IPfcS7qUxsNoWZtBZmHyCwlJ7iGrmfU9pAOiulhkIEY6vhuljpiXA7JF~px58H0EYOcklnlqtmJ45UU7aNFM-rJVzgZ8y~K80LecSapfBFtzRFKyaVNdERfdiw5hCFA6QhBjXyiT76yF14J-4KROLZTnIF-7wxI5b5ewMj7LVmV7E5LjvvpfMorUSym8KfuezOL~DfmCLsiee8j7Cp7I6b1wTxgzMHTFJh9iqmh6yy~Trvc8nAKGkw__&Key-Pair-Id=K35ZQ246Y37QV8", // "likedStatus": "CANCELED", // "imgUrl": null, // "lockStatus": "LOCK", // "likedCount": 1, // "isDefault": false, // "aiId": 437304385077249, // "width": "512", // "img3": "https://sub.crushlevel.ai/files/b/test/437301824126977/a44a827f31844729977754312bca8895.jpg?Tag=1&v=1&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9zdWIuY3J1c2hsZXZlbC5haS9maWxlcy9iL3Rlc3QvNDM3MzAxODI0MTI2OTc3L2E0NGE4MjdmMzE4NDQ3Mjk5Nzc3NTQzMTJiY2E4ODk1LmpwZz9UYWc9MSZ2PTEiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjIxMTQyMjcyMDB9fX1dfQ__&Signature=W23SRRUzr4Iwnh4rFXRl7O-VyhIytjwVYk8YC~5pBsKgJbi~Rhe2zxbiCCilPkk1RX0Iw~0~1S2rOMUAFEjx6frNQ93Vecq116qAGPpO39QQAPnAaCHnBF-tN9NEgHkbMIfltD-VMPchHM1df7iq0S0gztYkeF7QOcIt4ehCZwLAxguLNKAos1I6yx1MsyHyruofthf5ryRCFId7SyHdNVX7KPzJsfplyV6uwlPFc2fIhbb9LKlz74Wlt6qtnKk8ghVLKkRISLn2xViXijYfA0uAE-hiFwo9y2dd4Q~DYVqqhsV-XZyrAqRtr15hsfavs2zh5moJxEhI5eyxZuZkEQ__&Key-Pair-Id=K35ZQ246Y37QV8", // "unlockPrice": 123, // "height": "512", // "albumId": 70, // "img2": "https://sub.crushlevel.ai/files/b/test/437301824126977/a44a827f31844729977754312bca8895.jpg?x-oss-process=image/resize,w_800,h_800&Tag=1&v=1&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9zdWIuY3J1c2hsZXZlbC5haS9maWxlcy9iL3Rlc3QvNDM3MzAxODI0MTI2OTc3L2E0NGE4MjdmMzE4NDQ3Mjk5Nzc3NTQzMTJiY2E4ODk1LmpwZz94LW9zcy1wcm9jZXNzPWltYWdlL3Jlc2l6ZSx3XzgwMCxoXzgwMCZUYWc9MSZ2PTEiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjIxMTQyMjcyMDB9fX1dfQ__&Signature=UW9ylJXvmVSdtVmRNhe3kMu9drclxAKKPuYbqg3r4novijWk08nXuWUfImcSUmmXkUOh-JFPjC5usCiaZM1-RlJoQktZbjwsN8YS7CK2RXUwrqX4nLuv-BaHUhhbUQIhFVPkzo0ZxcxEqd6aSU9E9cleJnmZA69Ojn6cZQhthdL0x-2facVsxTdMnoJ~3x2p4YvSPzpabfzSCrSYPhHC4EWM~IgRgRlpCn6bm5Z94CkBYlYtvt3oz9WglDDw7PaSFErBTdklFGuLlcoqKrUY~vSBiEMnTEWbwiNP1ZpHMDJ4-zFBrmaVA~TbTNU~sLGMXlJLxqlgG~vWR5rrQipzAQ__&Key-Pair-Id=K35ZQ246Y37QV8", // "imgOrder": null // }, // { // "img1": null, // "likedStatus": "CANCELED", // "imgUrl": "https://hhb.crushlevel.ai/dev/role/1754823734119375.jpg", // "lockStatus": null, // "likedCount": 0, // "isDefault": true, // "aiId": 437304385077249, // "width": "1024", // "img3": null, // "unlockPrice": 0, // "height": "1024", // "albumId": 69, // "img2": null, // "imgOrder": null // } // ], // "character": "感性", // "heartbeatVal": 0, // "headImg": "https://hhb.crushlevel.ai/dev/main/album/437301824126977/17548237573989721.jpg", // "nickname": "Mock数据:玉米玉米玉米玉米" // } // """ // return .okContent(string: content) default: return Data() } } }