Skip to content

Commit

Permalink
Add current week variant on weekly
Browse files Browse the repository at this point in the history
  • Loading branch information
Ziedelth committed May 5, 2024
1 parent 7342b3a commit c892f2d
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 6 deletions.
4 changes: 3 additions & 1 deletion src/main/kotlin/fr/shikkanime/dtos/WeeklyAnimeDto.kt
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
package fr.shikkanime.dtos

import fr.shikkanime.dtos.variants.EpisodeVariantWithoutMappingDto
import fr.shikkanime.entities.enums.LangType

data class WeeklyAnimeDto(
val anime: AnimeDto,
val releaseDateTime: String,
val langType: LangType,
val platforms: List<PlatformDto>
val platforms: List<PlatformDto>,
val variant: EpisodeVariantWithoutMappingDto?
)
15 changes: 11 additions & 4 deletions src/main/kotlin/fr/shikkanime/services/AnimeService.kt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import fr.shikkanime.dtos.PlatformDto
import fr.shikkanime.dtos.WeeklyAnimeDto
import fr.shikkanime.dtos.WeeklyAnimesDto
import fr.shikkanime.dtos.enums.Status
import fr.shikkanime.dtos.variants.EpisodeVariantWithoutMappingDto
import fr.shikkanime.entities.*
import fr.shikkanime.entities.enums.CountryCode
import fr.shikkanime.entities.enums.LangType
Expand All @@ -19,6 +20,7 @@ import java.time.LocalDate
import java.time.ZoneId
import java.time.ZonedDateTime
import java.time.format.DateTimeFormatter
import java.time.temporal.ChronoField
import java.util.*

class AnimeService : AbstractService<Anime, AnimeRepository>() {
Expand Down Expand Up @@ -70,9 +72,8 @@ class AnimeService : AbstractService<Anime, AnimeRepository>() {
return startOfWeekDay.datesUntil(startOfWeekDay.plusDays(7)).toList().map { date ->
val zonedDate = date.atStartOfDay(zoneId)

val episodeVariants = list.filter {
it.releaseDateTime.withZoneSameInstant(zoneId).dayOfWeek == zonedDate.dayOfWeek
}
val episodeVariants = list.sortedByDescending { it.releaseDateTime }
.filter { it.releaseDateTime.withZoneSameInstant(zoneId).dayOfWeek == zonedDate.dayOfWeek }

WeeklyAnimesDto(
date.format(DateTimeFormatter.ofPattern("EEEE", Locale.forLanguageTag(countryCode.locale)))
Expand All @@ -92,7 +93,13 @@ class AnimeService : AbstractService<Anime, AnimeRepository>() {
.sorted()
.distinct(),
PlatformDto::class.java
)!!
)!!,
// If variant is same week as startOfWeekDay, return it
if (distinctVariant.releaseDateTime.withZoneSameInstant(zoneId)[ChronoField.ALIGNED_WEEK_OF_YEAR] == startOfWeekDay[ChronoField.ALIGNED_WEEK_OF_YEAR]) {
AbstractConverter.convert(distinctVariant, EpisodeVariantWithoutMappingDto::class.java)
} else {
null
}
)
}.sortedWith(compareBy({
ZonedDateTime.parse(it.releaseDateTime).withZoneSameInstant(zoneId).toLocalTime()
Expand Down
19 changes: 18 additions & 1 deletion src/main/resources/templates/site/calendar.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -57,10 +57,27 @@
<div class="bg-black bg-opacity-75 bg-blur position-absolute top-0 start-0 w-100 h-100 mh-100 p-3 rounded-4"
style="display: none;" x-show="hover">
<#if release.anime.description??>
<div class="text-truncate-6">
<div class="text-truncate-4">
${release.anime.description}
</div>
</#if>

<#if release.variant??>
<div class="mt-3 text-warning fw-bold">
<i class="me-2">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"
fill="currentColor"
class="bi bi-box-arrow-up-right" viewBox="0 0 16 16">
<path fill-rule="evenodd"
d="M8.636 3.5a.5.5 0 0 0-.5-.5H1.5A1.5 1.5 0 0 0 0 4.5v10A1.5 1.5 0 0 0 1.5 16h10a1.5 1.5 0 0 0 1.5-1.5V7.864a.5.5 0 0 0-1 0V14.5a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h6.636a.5.5 0 0 0 .5-.5"/>
<path fill-rule="evenodd"
d="M16 .5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0 0 1h3.793L6.146 9.146a.5.5 0 1 0 .708.708L15 1.707V5.5a.5.5 0 0 0 1 0z"/>
</svg>
</i>

Regarder maintenant
</div>
</#if>
</div>
</div>
</a>
Expand Down

0 comments on commit c892f2d

Please sign in to comment.