TSDiscoverViewModel+Data.swift 33 KB

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