@@ -7,7 +7,6 @@ import club.anifox.backend.domain.dto.anime.shikimori.ShikimoriAnimeIdDto
77import club.anifox.backend.domain.dto.anime.shikimori.ShikimoriDto
88import club.anifox.backend.domain.dto.anime.shikimori.ShikimoriMangaIdDto
99import club.anifox.backend.domain.enums.anime.AnimeExternalLinksType
10- import club.anifox.backend.domain.enums.anime.AnimeRelationFranchise
1110import club.anifox.backend.domain.enums.anime.AnimeSeason
1211import club.anifox.backend.domain.enums.anime.AnimeStatus
1312import club.anifox.backend.domain.enums.anime.AnimeType
@@ -124,6 +123,7 @@ class AnimeParseComponent(
124123
125124 do {
126125 val batchToProcess = ar.result
126+ .shuffled()
127127 .distinctBy { it.shikimoriId }
128128 .filter { ! shikimoriIds.contains(it.shikimoriId) }
129129
@@ -170,8 +170,8 @@ class AnimeParseComponent(
170170 fun integrations () {
171171 runBlocking {
172172 val integrationJobs = listOf (
173- // async { integrateSimilarRelatedFranchise() },
174- async { integrateCharacters() },
173+ async { integrateSimilarRelatedFranchise() },
174+ // async { integrateCharacters() },
175175 )
176176 integrationJobs.awaitAll()
177177 }
@@ -203,72 +203,72 @@ class AnimeParseComponent(
203203 .resultList
204204 .first()
205205
206- val similarShikimoriIds = shikimoriComponent.fetchSimilar(shikimoriId)
206+ // val similarShikimoriIds = shikimoriComponent.fetchSimilar(shikimoriId)
207207 val relatedShikimori = shikimoriComponent.fetchRelated(shikimoriId)
208- val franchiseShikimori = shikimoriComponent.fetchFranchise(shikimoriId)
209-
210- val similar = animeSimilarRepository.saveAll(
211- similarShikimoriIds.mapNotNull { id ->
212- val animeToSimilar = animeRepository.findByShikimoriId(id)
213- if (animeToSimilar.isPresent) {
214- val existingSimilar = anime.similar.any { it.similarAnime.id == animeToSimilar.get().id }
215- if (! existingSimilar) {
216- AnimeSimilarTable (
217- anime = anime,
218- similarAnime = animeToSimilar.get(),
219- )
220- } else {
221- null
222- }
223- } else {
224- null
225- }
226- },
227- )
228-
229- val franchise = if (anime.franchise != null ) {
230- animeFranchiseRepository.saveAll(
231- franchiseShikimori.links.mapNotNull { fran ->
232- val animeToTarget = animeRepository.findByShikimoriId(fran.targetId)
233- val animeToSource = animeRepository.findByShikimoriId(fran.sourceId)
234- if (animeToTarget.isPresent && animeToSource.isPresent) {
235- val existingFranchise = anime.franchiseMultiple.any {
236- it.target.shikimoriId == animeToTarget.get().shikimoriId &&
237- it.source.shikimoriId == animeToSource.get().shikimoriId
238- }
239- if (! existingFranchise) {
240- val relationType = when (fran.relation) {
241- " sequel" -> AnimeRelationFranchise .Sequel
242- " prequel" -> AnimeRelationFranchise .Prequel
243- " side_story" -> AnimeRelationFranchise .SideStory
244- " parent_story" , " full_story" -> AnimeRelationFranchise .SideStory
245- " summary" -> AnimeRelationFranchise .Summary
246- " alternative_version" -> AnimeRelationFranchise .AlternativeVersion
247- " adaptation" -> AnimeRelationFranchise .Adaptation
248- " alternative_setting" -> AnimeRelationFranchise .AlternativeSetting
249- " spin_off" -> AnimeRelationFranchise .SpinOff
250- " character" -> AnimeRelationFranchise .Character
251- else -> AnimeRelationFranchise .Other
252- }
253- AnimeFranchiseTable (
254- anime = anime,
255- source = animeToSource.get(),
256- target = animeToTarget.get(),
257- relationType = relationType,
258- relationTypeRus = relationType.russian,
259- urlPath = anime.franchise!! ,
260- )
261- } else {
262- null
263- }
264- } else {
265- null
266- }
267- },
268- )
269- } else {
270- null
271- }
208+ // val franchiseShikimori = shikimoriComponent.fetchFranchise(shikimoriId)
209+
210+ // val similar = animeSimilarRepository.saveAll(
211+ // similarShikimoriIds.mapNotNull { id ->
212+ // val animeToSimilar = animeRepository.findByShikimoriId(id)
213+ // if (animeToSimilar.isPresent) {
214+ // val existingSimilar = anime.similar.any { it.similarAnime.id == animeToSimilar.get().id }
215+ // if (!existingSimilar) {
216+ // AnimeSimilarTable(
217+ // anime = anime,
218+ // similarAnime = animeToSimilar.get(),
219+ // )
220+ // } else {
221+ // null
222+ // }
223+ // } else {
224+ // null
225+ // }
226+ // },
227+ // )
228+ //
229+ // val franchise = if (anime.franchise != null) {
230+ // animeFranchiseRepository.saveAll(
231+ // franchiseShikimori.links.mapNotNull { fran ->
232+ // val animeToTarget = animeRepository.findByShikimoriId(fran.targetId)
233+ // val animeToSource = animeRepository.findByShikimoriId(fran.sourceId)
234+ // if (animeToTarget.isPresent && animeToSource.isPresent) {
235+ // val existingFranchise = anime.franchiseMultiple.any {
236+ // it.target.shikimoriId == animeToTarget.get().shikimoriId &&
237+ // it.source.shikimoriId == animeToSource.get().shikimoriId
238+ // }
239+ // if (!existingFranchise) {
240+ // val relationType = when (fran.relation) {
241+ // "sequel" -> AnimeRelationFranchise.Sequel
242+ // "prequel" -> AnimeRelationFranchise.Prequel
243+ // "side_story" -> AnimeRelationFranchise.SideStory
244+ // "parent_story", "full_story" -> AnimeRelationFranchise.SideStory
245+ // "summary" -> AnimeRelationFranchise.Summary
246+ // "alternative_version" -> AnimeRelationFranchise.AlternativeVersion
247+ // "adaptation" -> AnimeRelationFranchise.Adaptation
248+ // "alternative_setting" -> AnimeRelationFranchise.AlternativeSetting
249+ // "spin_off" -> AnimeRelationFranchise.SpinOff
250+ // "character" -> AnimeRelationFranchise.Character
251+ // else -> AnimeRelationFranchise.Other
252+ // }
253+ // AnimeFranchiseTable(
254+ // anime = anime,
255+ // source = animeToSource.get(),
256+ // target = animeToTarget.get(),
257+ // relationType = relationType,
258+ // relationTypeRus = relationType.russian,
259+ // urlPath = anime.franchise!!,
260+ // )
261+ // } else {
262+ // null
263+ // }
264+ // } else {
265+ // null
266+ // }
267+ // },
268+ // )
269+ // } else {
270+ // null
271+ // }
272272
273273 val related = animeRelatedRepository.saveAll(
274274 relatedShikimori.mapNotNull { relation ->
@@ -295,10 +295,14 @@ class AnimeParseComponent(
295295 },
296296 )
297297
298- if (similar.isNotEmpty() || related.isNotEmpty() || ! franchise.isNullOrEmpty()) {
299- anime.addSimilar(similar)
298+ // if (similar.isNotEmpty() || related.isNotEmpty() || !franchise.isNullOrEmpty()) {
299+ // anime.addSimilar(similar)
300+ // anime.addRelation(related)
301+ // franchise?.let { anime.addFranchiseMultiple(it) }
302+ // animeRepository.saveAndFlush(anime)
303+ // }
304+ if (related.isNotEmpty()) {
300305 anime.addRelation(related)
301- franchise?.let { anime.addFranchiseMultiple(it) }
302306 animeRepository.saveAndFlush(anime)
303307 }
304308 } catch (e: Exception ) {
0 commit comments