Skip to content

Commit 79a23c5

Browse files
authored
Merge pull request #146 from shift72/add-support-for-series-title-on-film-info
add support for series title / episode descriptor in film meta
2 parents c25413c + 2305603 commit 79a23c5

3 files changed

Lines changed: 66 additions & 58 deletions

File tree

changelog.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
## [Unreleased]
44

5+
- Add support for `series_title` and `episode_descriptor` in film meta
6+
57
## [0.17.10] - 2026-01-08
68

79
- Convert CRLF line endings to LF because blackfriday (markdown lib) doesn't

kibble/api/films.go

Lines changed: 29 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -171,8 +171,10 @@ func (f filmV2) mapToModel(serviceConfig models.ServiceConfig, itemIndex models.
171171
Refs: models.FilmRefs{
172172
LetterboxdID: f.Refs.LetterboxdID,
173173
},
174-
Subtitles: f.Subtitles,
175-
CarouselFocus: f.CarouselFocus,
174+
Subtitles: f.Subtitles,
175+
CarouselFocus: f.CarouselFocus,
176+
SeriesTitle: f.SeriesTitle,
177+
EpisodeDescriptor: f.EpisodeDescriptor,
176178
}
177179

178180
film.Images = models.ImageMapToImageSet(film.ImageMap)
@@ -266,29 +268,31 @@ type filmV2 struct {
266268
Studio []struct {
267269
Name string `json:"name"`
268270
} `json:"studio"`
269-
Overview string `json:"overview"`
270-
Tagline string `json:"tagline"`
271-
ReleaseDate string `json:"release_date,omitempty"`
272-
Runtime float64 `json:"runtime"`
273-
Countries []string `json:"countries"`
274-
Languages []string `json:"languages"`
275-
Genres []string `json:"genres"`
276-
Tags []string `json:"tags"`
277-
Title string `json:"title"`
278-
CarouselFocus string `json:"carousel_focus"`
279-
Slug string `json:"slug"`
280-
FilmID int `json:"film_id"`
281-
ID int `json:"id"`
282-
ImageUrls map[string]string `json:"image_urls"`
283-
Recommendations []string `json:"recommendations"`
284-
Subtitles []string `json:"subtitles"`
285-
SubtitleTracks []subtitleTrackV1 `json:"subtitle_tracks"`
286-
Classifications map[string]classificationV1 `json:"classifications"`
287-
SeoTitle string `json:"seo_title"`
288-
SeoKeywords string `json:"seo_keywords"`
289-
SeoDescription string `json:"seo_description"`
290-
CustomFields map[string]interface{} `json:"custom"`
291-
Refs struct {
271+
Overview string `json:"overview"`
272+
Tagline string `json:"tagline"`
273+
ReleaseDate string `json:"release_date,omitempty"`
274+
Runtime float64 `json:"runtime"`
275+
Countries []string `json:"countries"`
276+
Languages []string `json:"languages"`
277+
Genres []string `json:"genres"`
278+
Tags []string `json:"tags"`
279+
Title string `json:"title"`
280+
CarouselFocus string `json:"carousel_focus"`
281+
Slug string `json:"slug"`
282+
FilmID int `json:"film_id"`
283+
ID int `json:"id"`
284+
ImageUrls map[string]string `json:"image_urls"`
285+
Recommendations []string `json:"recommendations"`
286+
Subtitles []string `json:"subtitles"`
287+
SubtitleTracks []subtitleTrackV1 `json:"subtitle_tracks"`
288+
Classifications map[string]classificationV1 `json:"classifications"`
289+
SeoTitle string `json:"seo_title"`
290+
SeoKeywords string `json:"seo_keywords"`
291+
SeoDescription string `json:"seo_description"`
292+
SeriesTitle string `json:"series_title"`
293+
EpisodeDescriptor string `json:"episode_descriptor"`
294+
CustomFields map[string]interface{} `json:"custom"`
295+
Refs struct {
292296
LetterboxdID string `json:"letterboxd_id"`
293297
} `json:"refs"`
294298
AwardCategories []struct {

kibble/models/film.go

Lines changed: 35 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -17,44 +17,46 @@ package models
1717
import (
1818
"fmt"
1919
"sort"
20-
"time"
2120
"strconv"
21+
"time"
2222

2323
"kibble/utils"
2424
)
2525

2626
// Film - all of the film bits
2727
type Film struct {
28-
ID int
29-
Slug string
30-
Title string
31-
TitleSlug string
32-
Trailers []Trailer
33-
Bonuses BonusContentCollection
34-
Cast []CastMember
35-
Crew CrewMembers
36-
Studio []string
37-
Overview string
38-
Tagline string
39-
ReleaseDate time.Time
40-
Runtime Runtime
41-
Countries StringCollection
42-
Languages StringCollection
43-
Genres StringCollection
44-
AwardCategories []AwardCategory
45-
Tags StringCollection
46-
Seo Seo
47-
Images ImageSet
48-
ImageMap ImageMap
49-
Prices PriceInfo
50-
Available Period
51-
Recommendations []GenericItem
52-
Subtitles []string
53-
SubtitleTracks []SubtitleTrack
54-
CustomFields CustomFields
55-
Refs FilmRefs
56-
Classifications []Classification
57-
CarouselFocus string
28+
ID int
29+
Slug string
30+
Title string
31+
TitleSlug string
32+
Trailers []Trailer
33+
Bonuses BonusContentCollection
34+
Cast []CastMember
35+
Crew CrewMembers
36+
Studio []string
37+
Overview string
38+
Tagline string
39+
ReleaseDate time.Time
40+
Runtime Runtime
41+
Countries StringCollection
42+
Languages StringCollection
43+
Genres StringCollection
44+
AwardCategories []AwardCategory
45+
Tags StringCollection
46+
Seo Seo
47+
Images ImageSet
48+
ImageMap ImageMap
49+
Prices PriceInfo
50+
Available Period
51+
Recommendations []GenericItem
52+
Subtitles []string
53+
SubtitleTracks []SubtitleTrack
54+
CustomFields CustomFields
55+
Refs FilmRefs
56+
Classifications []Classification
57+
CarouselFocus string
58+
SeriesTitle string
59+
EpisodeDescriptor string
5860
}
5961

6062
// FilmCollection - all films
@@ -63,7 +65,7 @@ type FilmCollection map[string]*Film
6365
// FindFilmByID - find film by id
6466
func (films *FilmCollection) FindFilmByID(filmID int) (*Film, bool) {
6567
coll := *films
66-
if val, ok := coll["/film/" + strconv.Itoa(filmID)]; ok {
68+
if val, ok := coll["/film/"+strconv.Itoa(filmID)]; ok {
6769
return val, true
6870
}
6971
return nil, false
@@ -133,7 +135,7 @@ func (films *FilmCollection) MakeTitleSlugsUnique() {
133135
}
134136

135137
// find the correct value to update, without making a copy
136-
if val, ok := (*films)["/film/" + strconv.Itoa(group[j])]; ok {
138+
if val, ok := (*films)["/film/"+strconv.Itoa(group[j])]; ok {
137139
val.TitleSlug = fmt.Sprintf("%s-%d", val.TitleSlug, j+1)
138140
}
139141
}

0 commit comments

Comments
 (0)