+++ /dev/null
-package net.pterodactylus.rhynodge.filters.webpages.savoy;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-import java.time.LocalDateTime;
-import java.util.Objects;
-
-/**
- * Information about a performance and a link to buy a ticket.
- */
-public class Performance {
-
- @JsonProperty
- private final LocalDateTime time;
-
- @JsonProperty
- private final String type;
-
- @JsonProperty
- private final String link;
-
- public Performance() {
- this(null, null, null);
- }
-
- public Performance(LocalDateTime time, String type, String link) {
- this.time = time;
- this.type = type;
- this.link = link;
- }
-
- public LocalDateTime getTime() {
- return time;
- }
-
- public String getType() {
- return type;
- }
-
- public String getLink() {
- return link;
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(time, type, link);
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
- Performance that = (Performance) o;
- return Objects.equals(time, that.time) && Objects.equals(type, that.type) && Objects.equals(link, that.link);
- }
-
-}
section("daily-programmes") {
ol("days") {
- movies.flatMap { it.performances.map(Performance::getTime).map(LocalDateTime::toLocalDate) }.distinct().sorted().forEach { date ->
+ movies.flatMap { it.performances.map(Performance::time).map(LocalDateTime::toLocalDate) }.distinct().sorted().forEach { date ->
li("day") {
attributes += "data-date" to "%tY-%<tm-%<td".format(date)
div("label") {
override fun triggered() = newMovies.isNotEmpty() || triggered
private val earliestMovie = movies.minByOrNull { it.earliestPerformance ?: LocalDateTime.MAX }
- private val Movie.earliestPerformance: LocalDateTime? get() = performances.minOfOrNull(Performance::getTime)
+ private val Movie.earliestPerformance: LocalDateTime? get() = performances.minOfOrNull(Performance::time)
}
--- /dev/null
+package net.pterodactylus.rhynodge.filters.webpages.savoy
+
+import com.fasterxml.jackson.annotation.JsonProperty
+import java.time.LocalDateTime
+import java.util.Objects
+
+/**
+ * Information about a performance and a link to buy a ticket.
+ */
+data class Performance @JvmOverloads constructor(
+ @field:JsonProperty val time: LocalDateTime = LocalDateTime.now(),
+ @field:JsonProperty val type: String = "",
+ @field:JsonProperty val link: String = ""
+)