Skip to content

Commit 2ad908b

Browse files
committed
πŸ› Fixed bug with related | similar parse πŸ›
1 parent b04247a commit 2ad908b

File tree

10 files changed

+34
-226
lines changed

10 files changed

+34
-226
lines changed

β€Žsrc/main/kotlin/club/anifox/backend/controller/anime/AnimeController.ktβ€Ž

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
package club.anifox.backend.controller.anime
22

3-
import club.anifox.backend.domain.enums.anime.AnimeRelationFranchise
43
import club.anifox.backend.domain.enums.anime.AnimeSeason
54
import club.anifox.backend.domain.enums.anime.AnimeStatus
65
import club.anifox.backend.domain.enums.anime.AnimeType
76
import club.anifox.backend.domain.enums.anime.AnimeVideoType
87
import club.anifox.backend.domain.enums.anime.filter.AnimeDefaultFilter
98
import club.anifox.backend.domain.enums.anime.filter.AnimeSearchFilter
10-
import club.anifox.backend.domain.model.anime.AnimeFranchise
119
import club.anifox.backend.domain.model.anime.AnimeGenre
1210
import club.anifox.backend.domain.model.anime.AnimeStudio
1311
import club.anifox.backend.domain.model.anime.AnimeVideo
@@ -208,15 +206,6 @@ class AnimeController {
208206
return animeService.getAnimeCharacters(page, limit, url, role, search)
209207
}
210208

211-
@GetMapping("/{url}/franchise")
212-
@Operation(summary = "anime franchise")
213-
fun getAnimeFranchise(
214-
@PathVariable url: String,
215-
type: AnimeRelationFranchise?,
216-
): List<AnimeFranchise> {
217-
return animeService.getAnimeFranchises(url, type)
218-
}
219-
220209
@GetMapping("/{url}/episodes")
221210
@Operation(summary = "anime episodes")
222211
fun getAnimeEpisodes(

β€Žsrc/main/kotlin/club/anifox/backend/domain/repository/anime/AnimeRepository.ktβ€Ž

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
package club.anifox.backend.domain.repository.anime
22

3-
import club.anifox.backend.domain.enums.anime.AnimeRelationFranchise
43
import club.anifox.backend.domain.enums.anime.AnimeSeason
54
import club.anifox.backend.domain.enums.anime.AnimeStatus
65
import club.anifox.backend.domain.enums.anime.AnimeType
76
import club.anifox.backend.domain.enums.anime.AnimeVideoType
87
import club.anifox.backend.domain.enums.anime.filter.AnimeDefaultFilter
98
import club.anifox.backend.domain.enums.anime.filter.AnimeSearchFilter
10-
import club.anifox.backend.domain.model.anime.AnimeFranchise
119
import club.anifox.backend.domain.model.anime.AnimeGenre
1210
import club.anifox.backend.domain.model.anime.AnimeStudio
1311
import club.anifox.backend.domain.model.anime.AnimeVideo
@@ -90,11 +88,6 @@ interface AnimeRepository {
9088
episodeCount: Int?,
9189
): List<AnimeLight>
9290

93-
fun getAnimeFranchises(
94-
url: String,
95-
type: AnimeRelationFranchise?,
96-
): List<AnimeFranchise>
97-
9891
fun parseAnimeIntegrations()
9992
fun getAnimeCharacters(
10093
page: Int,

β€Žsrc/main/kotlin/club/anifox/backend/jpa/entity/anime/AnimeTable.ktβ€Ž

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package club.anifox.backend.jpa.entity.anime
33
import club.anifox.backend.domain.enums.anime.AnimeSeason
44
import club.anifox.backend.domain.enums.anime.AnimeStatus
55
import club.anifox.backend.domain.enums.anime.AnimeType
6-
import club.anifox.backend.jpa.entity.anime.common.AnimeFranchiseTable
76
import club.anifox.backend.jpa.entity.anime.common.AnimeGenreTable
87
import club.anifox.backend.jpa.entity.anime.common.AnimeIdsTable
98
import club.anifox.backend.jpa.entity.anime.common.AnimeImagesTable
@@ -192,14 +191,6 @@ data class AnimeTable(
192191
schema = "anime",
193192
)
194193
var studios: MutableSet<AnimeStudioTable> = mutableSetOf(),
195-
@OneToMany(
196-
mappedBy = "anime",
197-
fetch = FetchType.LAZY,
198-
cascade = [CascadeType.ALL],
199-
orphanRemoval = true,
200-
)
201-
@BatchSize(size = 10)
202-
val franchiseMultiple: MutableSet<AnimeFranchiseTable> = mutableSetOf(),
203194
var shikimoriRating: Double = 0.0,
204195
var shikimoriVotes: Int = 0,
205196
val ratingMpa: String = "",
@@ -295,11 +286,6 @@ data class AnimeTable(
295286
return this
296287
}
297288

298-
fun addFranchiseMultiple(franchises: List<AnimeFranchiseTable>): AnimeTable {
299-
this.franchiseMultiple.addAll(franchises)
300-
return this
301-
}
302-
303289
fun addEpisodesAll(episodesAll: List<AnimeEpisodeTable>): AnimeTable {
304290
episodesAll.forEach { newEpisode ->
305291
val existingEpisode = episodes.find { it.number == newEpisode.number }

β€Žsrc/main/kotlin/club/anifox/backend/jpa/entity/anime/common/AnimeFranchiseTable.ktβ€Ž

Lines changed: 0 additions & 37 deletions
This file was deleted.

β€Žsrc/main/kotlin/club/anifox/backend/jpa/repository/anime/AnimeFranchiseRepository.ktβ€Ž

Lines changed: 0 additions & 8 deletions
This file was deleted.

β€Žsrc/main/kotlin/club/anifox/backend/service/anime/AnimeService.ktβ€Ž

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
package club.anifox.backend.service.anime
22

3-
import club.anifox.backend.domain.enums.anime.AnimeRelationFranchise
43
import club.anifox.backend.domain.enums.anime.AnimeSeason
54
import club.anifox.backend.domain.enums.anime.AnimeStatus
65
import club.anifox.backend.domain.enums.anime.AnimeType
76
import club.anifox.backend.domain.enums.anime.AnimeVideoType
87
import club.anifox.backend.domain.enums.anime.filter.AnimeDefaultFilter
98
import club.anifox.backend.domain.enums.anime.filter.AnimeSearchFilter
10-
import club.anifox.backend.domain.model.anime.AnimeFranchise
119
import club.anifox.backend.domain.model.anime.AnimeGenre
1210
import club.anifox.backend.domain.model.anime.AnimeStudio
1311
import club.anifox.backend.domain.model.anime.AnimeVideo
@@ -144,13 +142,6 @@ class AnimeService : AnimeRepository {
144142
return animeCommonComponent.getWeeklySchedule(page, limit, date)
145143
}
146144

147-
override fun getAnimeFranchises(
148-
url: String,
149-
type: AnimeRelationFranchise?,
150-
): List<AnimeFranchise> {
151-
return animeCommonComponent.getAnimeFranchise(url, type)
152-
}
153-
154145
override fun getAnimeYears(): List<String> {
155146
return animeCommonComponent.getAnimeYears()
156147
}

β€Žsrc/main/kotlin/club/anifox/backend/service/anime/components/block/AnimeBlockComponent.ktβ€Ž

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,6 @@ class AnimeBlockComponent {
103103
titleOther.clear()
104104
episodes.clear()
105105
screenshots.clear()
106-
franchiseMultiple.clear()
107106
similar.clear()
108107
related.clear()
109108
ids = AnimeIdsTable()

β€Žsrc/main/kotlin/club/anifox/backend/service/anime/components/common/AnimeCommonComponent.ktβ€Ž

Lines changed: 0 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package club.anifox.backend.service.anime.components.common
22

3-
import club.anifox.backend.domain.enums.anime.AnimeRelationFranchise
43
import club.anifox.backend.domain.enums.anime.AnimeVideoType
54
import club.anifox.backend.domain.enums.anime.filter.AnimeDefaultFilter
65
import club.anifox.backend.domain.exception.common.NoContentException
@@ -12,7 +11,6 @@ import club.anifox.backend.domain.mappers.anime.toAnimeEpisodeUser
1211
import club.anifox.backend.domain.mappers.anime.toAnimeVideo
1312
import club.anifox.backend.domain.mappers.anime.toGenre
1413
import club.anifox.backend.domain.mappers.anime.toStudio
15-
import club.anifox.backend.domain.model.anime.AnimeFranchise
1614
import club.anifox.backend.domain.model.anime.AnimeGenre
1715
import club.anifox.backend.domain.model.anime.AnimeRelation
1816
import club.anifox.backend.domain.model.anime.AnimeStudio
@@ -28,7 +26,6 @@ import club.anifox.backend.jpa.entity.anime.AnimeCharacterRoleTable
2826
import club.anifox.backend.jpa.entity.anime.AnimeCharacterTable
2927
import club.anifox.backend.jpa.entity.anime.AnimeExternalLinksTable
3028
import club.anifox.backend.jpa.entity.anime.AnimeTable
31-
import club.anifox.backend.jpa.entity.anime.common.AnimeFranchiseTable
3229
import club.anifox.backend.jpa.entity.anime.common.AnimeGenreTable
3330
import club.anifox.backend.jpa.entity.anime.common.AnimeImagesTable
3431
import club.anifox.backend.jpa.entity.anime.common.AnimeStudioTable
@@ -401,52 +398,6 @@ class AnimeCommonComponent {
401398
}
402399
}
403400

404-
fun getAnimeFranchise(
405-
url: String,
406-
type: AnimeRelationFranchise?,
407-
): List<AnimeFranchise> {
408-
val anime: AnimeTable = animeUtils.checkAnime(url)
409-
410-
val criteriaBuilder: CriteriaBuilder = entityManager.criteriaBuilder
411-
val criteriaQuery: CriteriaQuery<AnimeFranchiseTable> = criteriaBuilder.createQuery(AnimeFranchiseTable::class.java)
412-
413-
val animeRoot: Root<AnimeTable> = criteriaQuery.from(AnimeTable::class.java)
414-
415-
val franchiseJoin = animeRoot.join<AnimeTable, AnimeFranchiseTable>("franchiseMultiple", JoinType.LEFT)
416-
franchiseJoin.join<AnimeFranchiseTable, AnimeTable>("target", JoinType.INNER)
417-
val targetAnime = franchiseJoin.join<AnimeFranchiseTable, AnimeTable>("target", JoinType.INNER)
418-
419-
targetAnime.join<AnimeTable, AnimeGenreTable>("genres", JoinType.LEFT)
420-
targetAnime.join<AnimeTable, AnimeImagesTable>("images", JoinType.LEFT)
421-
targetAnime.join<AnimeTable, AnimeStudioTable>("studios", JoinType.LEFT)
422-
423-
val predicates =
424-
mutableListOf(
425-
criteriaBuilder.equal(animeRoot.get<String>("url"), anime.url),
426-
)
427-
428-
if (type != null) {
429-
predicates.add(criteriaBuilder.equal(franchiseJoin.get<AnimeRelationFranchise>("relationType"), type))
430-
}
431-
432-
criteriaQuery.select(franchiseJoin)
433-
criteriaQuery.where(*predicates.toTypedArray())
434-
435-
val results = entityManager.createQuery(criteriaQuery).resultList
436-
437-
if (results.isEmpty()) {
438-
throw NoContentException("Franchise relations for this anime not found")
439-
}
440-
441-
return results.map { franchise ->
442-
AnimeFranchise(
443-
anime = franchise.target.toAnimeLight(),
444-
relation = franchise.relationTypeRus,
445-
targetUrl = franchise.target.url,
446-
)
447-
}
448-
}
449-
450401
fun getWeeklySchedule(
451402
page: Int,
452403
limit: Int,

β€Žsrc/main/kotlin/club/anifox/backend/service/anime/components/kodik/KodikComponent.ktβ€Ž

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import io.ktor.http.*
1010
import org.springframework.beans.factory.annotation.Autowired
1111
import org.springframework.beans.factory.annotation.Value
1212
import org.springframework.stereotype.Component
13-
import java.time.LocalDate
1413

1514
@Component
1615
class KodikComponent {
@@ -48,7 +47,6 @@ class KodikComponent {
4847
parameter("limit", 100)
4948
parameter("sort", "shikimori_rating")
5049
parameter("order", "desc")
51-
// parameter("year", "${LocalDate.now().year}, ${LocalDate.now().year - 1}")
5250
parameter("types", "anime-serial, anime")
5351
parameter("camrip", false)
5452
parameter("with_episodes_data", true)

0 commit comments

Comments
Β (0)