Skip to content

Commit

Permalink
Merge pull request #440 from Shikkanime/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
Ziedelth committed May 5, 2024
2 parents a1ecfb1 + c892f2d commit b099dec
Show file tree
Hide file tree
Showing 6 changed files with 53 additions and 12 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
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,11 @@ class EpisodeMappingService : AbstractService<EpisodeMapping, EpisodeMappingRepo
entity.variants.forEach { variantDto ->
val variant = episodeVariantService.find(variantDto.uuid) ?: return@forEach
variant.mapping = update

if (variantDto.releaseDateTime.isNotBlank() && variantDto.releaseDateTime != variant.releaseDateTime.toString()) {
variant.releaseDateTime = ZonedDateTime.parse(variantDto.releaseDateTime)
}

oldList.removeIf { it.uuid == variantDto.uuid }
episodeVariantService.update(variant)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ class EpisodeVariantService : AbstractService<EpisodeVariant, EpisodeVariantRepo
)
)

MapCache.invalidate(EpisodeVariant::class.java)
MapCache.invalidate(EpisodeMapping::class.java, EpisodeVariant::class.java)
return savedEntity
}

Expand Down
20 changes: 15 additions & 5 deletions src/main/resources/templates/admin/episodes/edit.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@
aria-describedby="basic-addon">

<a class="input-group-text" id="basic-addon"
@click="" style="cursor: pointer" target="_blank" x-bind:href="episode.image">
style="cursor: pointer" target="_blank" :href="episode.image">
<i class="bi bi-box-arrow-up-right"></i>
</a>
</div>
Expand All @@ -170,7 +170,8 @@
<label for="variantReleaseDateTime" class="form-label">Release date time</label>
<input type="datetime-local" class="form-control" id="variantReleaseDateTime"
name="variantReleaseDateTime"
x-model="variant.releaseDateTime.substring(0, 16)" disabled>
:value="variant.releaseDateTime.substring(0, 16)"
@input="variant.releaseDateTime = $event.target.value + ':00Z'">
</div>
<div class="col-md-auto">
<label for="variantPlatform" class="form-label">Platform</label>
Expand All @@ -192,8 +193,17 @@
</div>
<div class="col-md-auto">
<label for="variantUrl" class="form-label">URL</label>
<input type="text" class="form-control" id="variantUrl" name="variantUrl"
x-model="variant.url" disabled>

<div class="input-group">
<input type="text" class="form-control" id="variantUrl" name="variantUrl"
x-model="variant.url" aria-label="Image"
aria-describedby="basic-addon" disabled>

<a class="input-group-text" id="basic-addon" style="cursor: pointer"
target="_blank" :href="variant.url">
<i class="bi bi-box-arrow-up-right"></i>
</a>
</div>
</div>
<div class="col-md-auto">
<input type="checkbox" class="form-check-input" id="variantUncensored"
Expand All @@ -202,7 +212,7 @@
<label for="variantUncensored" class="form-label">Uncensored</label>
</div>
<div class="col-md-auto">
<img x-bind:src="'/api/v1/episode-mappings/' + variant.uuid + '/media-image'"
<img :src="'/api/v1/episode-mappings/' + variant.uuid + '/media-image'"
class="rounded-4 w-25" alt="Variant image">
</div>
</div>
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 b099dec

Please sign in to comment.