TSDiscoverViewModel+Data.swift 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558
  1. //
  2. // TSDiscoverViewModel+Data.swift
  3. // AIEmoji
  4. //
  5. // Created by 100Years on 2025/7/17.
  6. //
  7. //MARK: 组装数据
  8. let kTSDiscoverVM = TSDiscoverViewModel.shared
  9. class TSDiscoverViewModel {
  10. static let shared:TSDiscoverViewModel = TSDiscoverViewModel()
  11. lazy var bannerSection: TSDiscoverSectionModel = {
  12. let section = TSDiscoverSectionModel()
  13. section.style = .banner
  14. section.setTitle(title: "")
  15. section.items = [[
  16. TSDiscoverItemModel(style: .photoLive,
  17. viewModel: TSDiscoverAnimationItemVM(title: "",style: .video, imageNameds: ["Photo Animater.mp4"]),
  18. generateModel: TSGenerateModel(json: video_PhotoAnimater)),
  19. TSDiscoverItemModel(style: .videoV2,
  20. viewModel: TSDiscoverAnimationItemVM(title: "",style: .video, imageNameds: ["Animal Diving Show.mp4"]),
  21. generateModel: TSGenerateModel(json: video_AnimalDivingShow)),
  22. TSDiscoverItemModel(style: .videoV2,
  23. viewModel: TSDiscoverAnimationItemVM(title: "",style: .video, imageNameds: ["Oscar Gala.mp4"]),
  24. generateModel: TSGenerateModel(json: video_OscarGala)),
  25. ]]
  26. return section
  27. }()
  28. lazy var videoEffectSection: TSDiscoverSectionModel = {
  29. let section = TSDiscoverSectionModel()
  30. section.style = .styleMore
  31. section.setTitle(title:"Video Effect".localized,imageNamed: "🎞️",colors: ["#E7D1AB","#FFFFFF"])
  32. section.items = [[
  33. TSDiscoverItemModel(style: .videoV2,
  34. viewModel: TSDiscoverAnimationItemVM(title: "",style: .video, imageNameds: ["Mermaid.mp4"]),
  35. generateModel: TSGenerateModel(json: video_Mermaid)),
  36. TSDiscoverItemModel(style: .videoV2,
  37. viewModel: TSDiscoverAnimationItemVM(title: "",style: .video, imageNameds: ["Fairy.mp4"]),
  38. generateModel: TSGenerateModel(json: video_Fairy)),
  39. TSDiscoverItemModel(style: .videoV2,
  40. viewModel: TSDiscoverAnimationItemVM(title: "",style: .video, imageNameds: ["Happy Birthday.mp4"]),
  41. generateModel: TSGenerateModel(json: video_HappyBirthday)),
  42. TSDiscoverItemModel(style: .videoV2,
  43. viewModel: TSDiscoverAnimationItemVM(title: "",style: .video, imageNameds: ["Surprise Flower.mp4"]),
  44. generateModel: TSGenerateModel(json: video_SurpriseFlower)),
  45. TSDiscoverItemModel(style: .videoV2,
  46. viewModel: TSDiscoverAnimationItemVM(title: "",style: .video, imageNameds: ["Lafufu.mp4"]),
  47. generateModel: TSGenerateModel(json: video_Lafufu)),
  48. TSDiscoverItemModel(style: .videoV2,
  49. viewModel: TSDiscoverAnimationItemVM(title: "",style: .video, imageNameds: ["Anime Me.mp4"]),
  50. generateModel: TSGenerateModel(json: video_AnimeMe)),
  51. TSDiscoverItemModel(style: .videoV2,
  52. viewModel: TSDiscoverAnimationItemVM(title: "",style: .video, imageNameds: ["Pet to Human.mp4"]),
  53. generateModel: TSGenerateModel(json: video_PettoHuman)),
  54. TSDiscoverItemModel(style: .videoV2,
  55. viewModel: TSDiscoverAnimationItemVM(title: "",style: .video, imageNameds: ["Making Face.mp4"]),
  56. generateModel: TSGenerateModel(json: video_MakingFace)),
  57. TSDiscoverItemModel(style: .videoV2,
  58. viewModel: TSDiscoverAnimationItemVM(title: "",style: .video, imageNameds: ["Robot.mp4"]),
  59. generateModel: TSGenerateModel(json: video_Robot)),
  60. TSDiscoverItemModel(style: .videoV2,
  61. viewModel: TSDiscoverAnimationItemVM(title: "",style: .video, imageNameds: ["Walking with Beasts.mp4"]),
  62. generateModel: TSGenerateModel(json: video_WalkingwithBeasts)),
  63. TSDiscoverItemModel(style: .videoV2,
  64. viewModel: TSDiscoverAnimationItemVM(title: "",style: .video, imageNameds: ["Funny Pet.mp4"]),
  65. generateModel: TSGenerateModel(json: video_FunnyPet)),
  66. TSDiscoverItemModel(style: .videoV2,
  67. viewModel: TSDiscoverAnimationItemVM(title: "",style: .video, imageNameds: ["Fly.mp4"]),
  68. generateModel: TSGenerateModel(json: video_Fly)),
  69. TSDiscoverItemModel(style: .videoV2,
  70. viewModel: TSDiscoverAnimationItemVM(title: "",style: .video, imageNameds: ["Pinch.mp4"]),
  71. generateModel: TSGenerateModel(json: video_Pinch)),
  72. TSDiscoverItemModel(style: .videoV2,
  73. viewModel: TSDiscoverAnimationItemVM(title: "",style: .video, imageNameds: ["Grab doll.mp4"]),
  74. generateModel: TSGenerateModel(json: video_Grabdoll)),
  75. TSDiscoverItemModel(style: .videoV2,
  76. viewModel: TSDiscoverAnimationItemVM(title: "",style: .video, imageNameds: ["Toy Me.mp4"]),
  77. generateModel: TSGenerateModel(json: video_ToyMe)),
  78. TSDiscoverItemModel(style: .videoV2,
  79. viewModel: TSDiscoverAnimationItemVM(title: "",style: .video, imageNameds: ["Hulk.mp4"]),
  80. generateModel: TSGenerateModel(json: video_Hulk)),
  81. TSDiscoverItemModel(style: .videoV2,
  82. viewModel: TSDiscoverAnimationItemVM(title: "",style: .video, imageNameds: ["MuscleUp.mp4"]),
  83. generateModel: TSGenerateModel(json: video_MuscleUp)),
  84. // TSDiscoverItemModel(style: .videoV2,
  85. // viewModel: TSDiscoverAnimationItemVM(title: "",style: .video, imageNameds: ["French Kiss.mp4"]),
  86. // generateModel: TSGenerateModel(json: video_FrenchKiss))
  87. TSDiscoverItemModel(style: .videoV2,
  88. viewModel: TSDiscoverAnimationItemVM(title: "",style: .video, imageNameds: ["Pixel World.mp4"]),
  89. generateModel: TSGenerateModel(json: video_PixelWorld))
  90. ]]
  91. return section
  92. }()
  93. // //顶部按钮功能(金刚区)
  94. // lazy var topFuncSection:TSDiscoverSectionModel = {
  95. // let section = TSDiscoverSectionModel()
  96. // section.style = .funcItems
  97. // section.items = [[
  98. //// TSDiscoverItemModel(style: .futureBaby,
  99. //// viewModel: TSDiscoverBaseItemVM(title: "AI Baby", imageNamed: "discover_AIBaby"),
  100. //// generateModel: TSFuncStyle.futureBaby.generateModel),
  101. // TSDiscoverItemModel(style: .ttp,
  102. // viewModel: TSDiscoverBaseItemVM(title: "Text to Image", imageNamed: "discover_TextImage")),
  103. // TSDiscoverItemModel(style: .chat,
  104. // viewModel: TSDiscoverBaseItemVM(title: "AI Assistant", imageNamed: "discover_AIAssistant")),
  105. // TSDiscoverItemModel(style: .photoQuality,
  106. // viewModel: TSDiscoverBaseItemVM(title: "Enhance Photo", imageNamed: "discover_HD"),
  107. // generateModel: TSFuncStyle.oldPhoto.generateModel),
  108. // TSDiscoverItemModel(style: .photoLive,
  109. // viewModel: TSDiscoverBaseItemVM(title: "Old Photo Animation", imageNamed: "discover_PredictOld"),
  110. // generateModel: TSFuncStyle.photoLive.generateModel),
  111. // ]]
  112. // return section
  113. // }()
  114. lazy var popularStylesSection: TSDiscoverSectionModel = {
  115. let section = TSDiscoverSectionModel()
  116. section.style = .styleMore
  117. section.setTitle(title:"Popular".localized,imageNamed: "🔥",colors: ["#EF2C00","#FEFEE7"])
  118. section.items = [[
  119. TSDiscoverItemModel(style: .ptp,
  120. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_ToonMe","discover_1_ToonMe"]),
  121. generateModel: TSGenerateModel(json: ptp_ToonMe)),
  122. TSDiscoverItemModel(style: .ptp,
  123. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_ChibiSticker","discover_1_ChibiSticker"]),
  124. generateModel: TSGenerateModel(json: ptp_ChibiSticker)),
  125. TSDiscoverItemModel(style: .ptp,
  126. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_Irasutoya","discover_1_Irasutoya"]),
  127. generateModel: TSGenerateModel(json: ptp_Irasutoya)),
  128. TSDiscoverItemModel(style: .ptp,
  129. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_BlytheDoll","discover_1_BlytheDoll"]),
  130. generateModel: TSGenerateModel(json: ptp_BlytheDoll)),
  131. TSDiscoverItemModel(style: .ptp,
  132. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_Caricature","discover_1_Caricature"]),
  133. generateModel: TSGenerateModel(json: ptp_Caricature)),
  134. TSDiscoverItemModel(style: .ptp,
  135. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_Illustration","discover_1_Illustration"]),
  136. generateModel: TSGenerateModel(json: ptp_Illustration)),
  137. TSDiscoverItemModel(style: .ptp,
  138. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_90sAnime","discover_1_90sAnime"]),
  139. generateModel: TSGenerateModel(json: ptp_90sAnime)),
  140. TSDiscoverItemModel(style: .ptp,
  141. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_FreshWatercolor","discover_1_FreshWatercolor"]),
  142. generateModel: TSGenerateModel(json: ptp_FreshWatercolor)),
  143. // TSDiscoverItemModel(style: .ptp,
  144. // viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_FairyTail","discover_1_FairyTail"]),
  145. // generateModel: TSGenerateModel(json: ptp_FairyTail)),
  146. // TSDiscoverItemModel(style: .ptp,
  147. // viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_TouhouSeries","discover_1_TouhouSeries"]),
  148. // generateModel: TSGenerateModel(json: ptp_TouhouSeries)),
  149. // TSDiscoverItemModel(style: .ptp,
  150. // viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_Anime","discover_1_Anime"]),
  151. // generateModel: TSGenerateModel(json: ptp_Anime)),
  152. ]]
  153. return section
  154. }()
  155. lazy var petToHumanSection: TSDiscoverSectionModel = {
  156. let section = TSDiscoverSectionModel()
  157. section.style = .fullCard
  158. section.items = [
  159. TSDiscoverItemModel(style: .catTohuman,
  160. viewModel: TSDiscoverBaseItemVM(
  161. title: "Pet Humanization".localized,
  162. imageNamed: "aiList_catTohuman",
  163. info: "Curious about what your pet is like?".localized
  164. ),
  165. generateModel: TSGenerateModel(json: catTohuman)),
  166. ]
  167. return section
  168. }()
  169. lazy var figuresToysSection: TSDiscoverSectionModel = {
  170. let section = TSDiscoverSectionModel()
  171. section.style = .styleMore
  172. section.setTitle(title:"Figures&Toys".localized,imageNamed: "🧸",colors: ["#D7A863","#FFFFFF"])
  173. section.items = [[
  174. TSDiscoverItemModel(style: .ptp,
  175. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_AnimeFigure","discover_1_AnimeFigure"]),
  176. generateModel: TSGenerateModel(json: ptp_ActionFigure)),
  177. TSDiscoverItemModel(style: .ptp,
  178. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_Lafufu","discover_1_Lafufu"]),
  179. generateModel: TSGenerateModel(json: ptp_Lafufu)),
  180. TSDiscoverItemModel(style: .ptp,
  181. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_WhimsicalDoll","discover_1_WhimsicalDoll"]),
  182. generateModel: TSGenerateModel(json: ptp_WhimsicalDoll)),
  183. TSDiscoverItemModel(style: .ptp,
  184. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_PushToy","discover_1_PushToy"]),
  185. generateModel: TSGenerateModel(json: ptp_PlushToy)),
  186. TSDiscoverItemModel(style: .ptp,
  187. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_Polaroid","discover_1_Polaroid"]),
  188. generateModel: TSGenerateModel(json: ptp_Polaroid)),
  189. TSDiscoverItemModel(style: .ptp,
  190. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_MusicBox","discover_1_MusicBox"]),
  191. generateModel: TSGenerateModel(json: ptp_MusicBox)),
  192. TSDiscoverItemModel(style: .ptp,
  193. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_Earphone","discover_1_Earphone"]),
  194. generateModel: TSGenerateModel(json: ptp_Earphone)),
  195. TSDiscoverItemModel(style: .ptp,
  196. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_Kulomi","discover_1_Kulomi"]),
  197. generateModel: TSGenerateModel(json: ptp_Kulomi))
  198. ]]
  199. return section
  200. }()
  201. // lazy var babyCardSection: TSDiscoverSectionModel = {
  202. // let section = TSDiscoverSectionModel()
  203. // section.style = .fullCard
  204. // section.items = [
  205. // TSDiscoverItemModel(style: .futureBaby,
  206. // viewModel: TSDiscoverAnimationItemVM(
  207. // title: "Future Baby".localized,
  208. // info: "To see what will your future baby look like".localized,
  209. // style: .apng,
  210. // imageNameds: ["animated_aiBaby.apng"]
  211. // ),
  212. // generateModel: TSGenerateModel(json: futureBaby)),
  213. // ]
  214. //
  215. // return section
  216. // }()
  217. lazy var babyCardSection: TSDiscoverSectionModel = {
  218. let section = TSDiscoverSectionModel()
  219. section.style = .fullCard
  220. section.items = [
  221. TSDiscoverItemModel(style: .futureBaby,
  222. viewModel: TSDiscoverBaseItemVM(
  223. title: "Future Baby".localized,
  224. imageNamed: "discover_aiBaby",
  225. info: "To see what will your future baby look like".localized
  226. ),
  227. generateModel: TSGenerateModel(json: futureBaby)),
  228. ]
  229. return section
  230. }()
  231. lazy var coolPersonalitySection: TSDiscoverSectionModel = {
  232. let section = TSDiscoverSectionModel()
  233. section.style = .styleMore
  234. section.setTitle(title:"Cool Personality".localized,imageNamed: "🔮",colors: ["#DB6BE6","#FFFFFF"])
  235. section.items = [[
  236. TSDiscoverItemModel(style: .ptp,
  237. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_Cyberpunk","discover_1_Cyberpunk"]),
  238. generateModel: TSGenerateModel(json: ptp_Cyberpunk)),
  239. TSDiscoverItemModel(style: .ptp,
  240. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_Gothic","discover_1_Gothic"]),
  241. generateModel: TSGenerateModel(json: ptp_Gothic)),
  242. TSDiscoverItemModel(style: .ptp,
  243. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_Y2K","discover_1_Y2K"]),
  244. generateModel: TSGenerateModel(json: ptp_Y2KMillennium)),
  245. TSDiscoverItemModel(style: .ptp,
  246. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_Dopamine","discover_1_Dopamine"]),
  247. generateModel: TSGenerateModel(json: ptp_Dopamine)),
  248. TSDiscoverItemModel(style: .ptp,
  249. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_Neon","discover_1_Neon"]),
  250. generateModel: TSGenerateModel(json: ptp_Neon)),
  251. TSDiscoverItemModel(style: .ptp,
  252. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_DarkAcademia","discover_1_DarkAcademia"]),
  253. generateModel: TSGenerateModel(json: ptp_DarkAcademia)),
  254. ]]
  255. return section
  256. }()
  257. lazy var animeCartoonSection: TSDiscoverSectionModel = {
  258. let section = TSDiscoverSectionModel()
  259. section.style = .styleMore
  260. section.setTitle(title:"Anime&Cartoon".localized,imageNamed: "🧚🏻‍♀️",colors: ["#A4EAD4","#FFFFFF"])
  261. section.items = [[
  262. TSDiscoverItemModel(style: .ptp,
  263. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_AnimalCrossing","discover_1_AnimalCrossing"]),
  264. generateModel: TSGenerateModel(json: ptp_AnimalCrossing)),
  265. TSDiscoverItemModel(style: .ptp,
  266. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_YellowBunch","discover_1_YellowBunch"]),
  267. generateModel: TSGenerateModel(json: ptp_YellowBunch)),
  268. TSDiscoverItemModel(style: .ptp,
  269. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_SweetieCat","discover_1_SweetieCat"]),
  270. generateModel: TSGenerateModel(json: ptp_SweetieCat)),
  271. TSDiscoverItemModel(style: .ptp,
  272. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_Puppy","discover_1_Puppy"]),
  273. generateModel: TSGenerateModel(json: ptp_Puppy)),
  274. TSDiscoverItemModel(style: .ptp,
  275. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_Cibi","discover_1_Cibi"]),
  276. generateModel: TSGenerateModel(json: ptp_Cibi)),
  277. TSDiscoverItemModel(style: .ptp,
  278. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_MarinerKing","discover_1_MarinerKing"]),
  279. generateModel: TSGenerateModel(json: ptp_MarinerKing)),
  280. TSDiscoverItemModel(style: .ptp,
  281. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_SonOfDragon","discover_1_SonOfDragon"]),
  282. generateModel: TSGenerateModel(json: ptp_SonOfDragon)),
  283. TSDiscoverItemModel(style: .ptp,
  284. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_Barbie","discover_1_Barbie"]),
  285. generateModel: TSGenerateModel(json: ptp_Barbie)),
  286. TSDiscoverItemModel(style: .ptp,
  287. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_Chiikawa","discover_1_Chiikawa"]),
  288. generateModel: TSGenerateModel(json: ptp_Chiikawa)),
  289. TSDiscoverItemModel(style: .ptp,
  290. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_3DBox","discover_1_3DBox"]),
  291. generateModel: TSGenerateModel(json: ptp_3DBox)),
  292. TSDiscoverItemModel(style: .ptp,
  293. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_BattleBlitz","discover_1_BattleBlitz"]),
  294. generateModel: TSGenerateModel(json: ptp_BattleBlitz)),
  295. TSDiscoverItemModel(style: .ptp,
  296. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_Mythos","discover_1_Mythos"]),
  297. generateModel: TSGenerateModel(json: ptp_Mythos)),
  298. TSDiscoverItemModel(style: .ptp,
  299. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_EmpireDash","discover_1_EmpireDash"]),
  300. generateModel: TSGenerateModel(json: ptp_EmpireDash)),
  301. TSDiscoverItemModel(style: .ptp,
  302. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_PocketBeasts","discover_1_PocketBeasts"]),
  303. generateModel: TSGenerateModel(json: ptp_PocketBeasts)),
  304. ]]
  305. return section
  306. }()
  307. lazy var ttpCardSection: TSDiscoverSectionModel = {
  308. let section = TSDiscoverSectionModel()
  309. section.style = .fullCard
  310. section.items = [
  311. TSDiscoverItemModel(style: .ttp,
  312. viewModel: TSDiscoverBaseItemVM(
  313. title: "Text to Image".localized,
  314. imageNamed: "discover_ttp",
  315. info: "Turn words into visually stunning artwork".localized
  316. ),
  317. generateModel: nil),
  318. ]
  319. return section
  320. }()
  321. lazy var trendingSection: TSDiscoverSectionModel = {
  322. let section = TSDiscoverSectionModel()
  323. section.style = .styleMore
  324. section.setTitle(title:"Trending".localized,imageNamed:"🚀",colors: ["#4887BB","#FFFFFF"])
  325. section.items = [[
  326. TSDiscoverItemModel(style: .ptp,
  327. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_Fairy","discover_1_Fairy"]),
  328. generateModel: TSGenerateModel(json: ptp_Fairy)),
  329. TSDiscoverItemModel(style: .ptp,
  330. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_CyberFairy","discover_1_CyberFairy"]),
  331. generateModel: TSGenerateModel(json: ptp_CyberFairy)),
  332. TSDiscoverItemModel(style: .ptp,
  333. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_Mermaid","discover_1_Mermaid"]),
  334. generateModel: TSGenerateModel(json: ptp_Mermaid)),
  335. TSDiscoverItemModel(style: .ptp,
  336. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_Mermaid","discover_1_CyberMermaid"]),
  337. generateModel: TSGenerateModel(json: ptp_CyberpunkMermaid)),
  338. TSDiscoverItemModel(style: .ptp,
  339. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_Mermaid","discover_1_CuteMermaid"]),
  340. generateModel: TSGenerateModel(json: ptp_CuteMermaid)),
  341. TSDiscoverItemModel(style: .ptp,
  342. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_Mermaid","discover_1_DarckMermaid"]),
  343. generateModel: TSGenerateModel(json: ptp_DarkMermaid)),
  344. ]]
  345. return section
  346. }()
  347. lazy var processPhotoSection: TSDiscoverSectionModel = {
  348. let section = TSDiscoverSectionModel()
  349. section.style = .styleMore
  350. section.setTitle(title:"Process Photo".localized,imageNamed:"🚀",colors: ["#DEA94E","#FFFFFF"])
  351. section.items = [[
  352. TSDiscoverItemModel(style: .photoLive,
  353. viewModel: TSDiscoverAnimationItemVM(title: "",style: .gif, imageNameds: ["discover_0_AnimatePhoto1"]),
  354. generateModel: TSGenerateModel(json: photoLive)),
  355. TSDiscoverItemModel(style: .photoQuality,
  356. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_EnhancerPhoto","discover_1_EnhancerPhoto"]),
  357. generateModel: TSGenerateModel(json: photoQuality)),
  358. TSDiscoverItemModel(style: .process,
  359. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_RecreatePhoto","discover_1_RecreatePhoto"]),
  360. generateModel: TSGenerateModel(json: recreatePhoto)),
  361. TSDiscoverItemModel(style: .oldPhoto,
  362. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_RestorPhoto","discover_1_RestorPhoto"]),
  363. generateModel: TSGenerateModel(json: oldPhoto)),
  364. TSDiscoverItemModel(style: .process,
  365. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_Colorize","discover_1_Colorize"]),
  366. generateModel: TSGenerateModel(json: colorize)),
  367. TSDiscoverItemModel(style: .photoExpand,
  368. viewModel: TSDiscoverBaseItemVM(title: "", imageNamed: "discover_0_ExpandPhoto"),
  369. generateModel: TSGenerateModel(json: photoExpand)),
  370. ]]
  371. return section
  372. }()
  373. lazy var chatCardSection: TSDiscoverSectionModel = {
  374. let section = TSDiscoverSectionModel()
  375. section.style = .fullCard
  376. section.items = [
  377. TSDiscoverItemModel(style: .chat,
  378. viewModel: TSDiscoverBaseItemVM(
  379. title: "AI Assistant".localized,
  380. imageNamed: "aiList_aiChat",
  381. info: "Get smart and instant answers".localized
  382. ),
  383. generateModel: nil),
  384. ]
  385. return section
  386. }()
  387. lazy var artFilterSection: TSDiscoverSectionModel = {
  388. let section = TSDiscoverSectionModel()
  389. section.style = .styleMore
  390. section.setTitle(title:"Art Filter".localized,imageNamed:"🖼️",colors: ["#6CCC2B","#FFFFFF"])
  391. section.items = [[
  392. TSDiscoverItemModel(style: .ptp,
  393. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_OilPainting","discover_1_OilPainting"]),
  394. generateModel: TSGenerateModel(json: ptp_OilPainting)),
  395. TSDiscoverItemModel(style: .ptp,
  396. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_MonaLisa","discover_1_MonaLisa"]),
  397. generateModel: TSGenerateModel(json: ptp_MonaLisa)),
  398. TSDiscoverItemModel(style: .ptp,
  399. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_Pixel","discover_1_Pixel"]),
  400. generateModel: TSGenerateModel(json: ptp_Pixel)),
  401. TSDiscoverItemModel(style: .ptp,
  402. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_Sketch","discover_1_Sketch"]),
  403. generateModel: TSGenerateModel(json: ptp_Sketch)),
  404. TSDiscoverItemModel(style: .ptp,
  405. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_Watercolor","discover_1_Watercolor"]),
  406. generateModel: TSGenerateModel(json: ptp_Watercolor)),
  407. TSDiscoverItemModel(style: .ptp,
  408. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_VanGogh","discover_1_VanGogh"]),
  409. generateModel: TSGenerateModel(json: ptp_VanGogh)),
  410. TSDiscoverItemModel(style: .ptp,
  411. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_Dreamcore","discover_1_Dreamcore"]),
  412. generateModel: TSGenerateModel(json: ptp_Dreamcore)),
  413. TSDiscoverItemModel(style: .ptp,
  414. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_Doodle","discover_1_Doodle"]),
  415. generateModel: TSGenerateModel(json: ptp_Doodle)),
  416. ]]
  417. return section
  418. }()
  419. lazy var bePrettySection: TSDiscoverSectionModel = {
  420. let section = TSDiscoverSectionModel()
  421. section.style = .styleMore
  422. section.setTitle(title:"Be Pretty".localized,imageNamed:"🥰",colors: ["#FFA537","#FFFFFF"])
  423. section.items = [[
  424. TSDiscoverItemModel(style: .changehair,
  425. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_HairSalon","discover_1_HairSalon","discover_2_HairSalon"]),
  426. generateModel: TSGenerateModel(json: hairSalon)),
  427. TSDiscoverItemModel(style: .changehairColor,
  428. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_HairColor","discover_1_HairColor","discover_2_HairColor"]),
  429. generateModel: TSGenerateModel(json: hairColor)),
  430. TSDiscoverItemModel(style: .pretty,
  431. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_Pretty","discover_1_Pretty"]),
  432. generateModel: TSGenerateModel(json: pretty)),
  433. TSDiscoverItemModel(style: .eyeOpen,
  434. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_FaceFix","discover_1_FaceFix"]),
  435. generateModel: TSGenerateModel(json: eyeOpen)),
  436. TSDiscoverItemModel(style: .changeEmote,
  437. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_FacialExpression","discover_1_FacialExpression"]),
  438. generateModel: TSGenerateModel(json: changeEmotion)),
  439. TSDiscoverItemModel(style: .ageChild,
  440. viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_BackToBaby","discover_1_BackToBaby"]),
  441. generateModel: TSGenerateModel(json: ageChild)),
  442. ]]
  443. return section
  444. }()
  445. lazy var oldAgeCardSection: TSDiscoverSectionModel = {
  446. let section = TSDiscoverSectionModel()
  447. section.style = .fullCard
  448. section.setTitle(title:"More AI Tools".localized,imageNamed:"🪄",colors: ["#FFFF73","#FFFFFF"])
  449. section.items = [
  450. TSDiscoverItemModel(style: .ageOld,
  451. viewModel: TSDiscoverBaseItemVM(
  452. title: "Predicting Old Age".localized,
  453. imageNamed: "aiList_oldPeople",
  454. info: "AI predicts what you look like in your old age".localized
  455. ),
  456. generateModel: TSGenerateModel(json: ageOld)),
  457. ]
  458. return section
  459. }()
  460. lazy var discoverDatas: [TSDiscoverSectionModel] = {
  461. return [
  462. bannerSection,
  463. videoEffectSection,
  464. popularStylesSection,
  465. processPhotoSection,
  466. figuresToysSection,
  467. babyCardSection,
  468. animeCartoonSection,
  469. coolPersonalitySection,
  470. ttpCardSection,
  471. trendingSection,
  472. artFilterSection,
  473. bePrettySection,
  474. oldAgeCardSection,
  475. petToHumanSection,
  476. chatCardSection,
  477. ]
  478. }()
  479. }