Skip to content

Commit 1ae48ee

Browse files
committed
Merge branch 'develop'
2 parents 8652cad + 7010380 commit 1ae48ee

File tree

7 files changed

+35
-5
lines changed

7 files changed

+35
-5
lines changed

cmd/movies.go

+1
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ func init() {
111111
_ = moviesCmd.MarkFlagRequired("search-type")
112112

113113
// optional flags
114+
moviesCmd.Flags().BoolVar(&flagNoFilter, "no-filter", false, "No filter expression checking.")
114115
moviesCmd.Flags().IntVar(&flagLimit, "limit", 0, "Max accepted items to add.")
115116

116117
moviesCmd.Flags().StringVar(&flagQueryStr, "query", "", "Query for search.")

cmd/root.go

+5
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ var (
2626
flagLogFile = "activity.log"
2727

2828
flagSearchType string
29+
flagNoFilter bool
2930
flagLimit int
3031

3132
flagQueryStr string
@@ -158,6 +159,10 @@ func parseValidateInputs(args []string) error {
158159
}
159160

160161
func shouldAcceptMediaItem(mediaItem *config.MediaItem) bool {
162+
if flagNoFilter {
163+
// when no-filter is enabled, dont check ignore filters
164+
return true
165+
}
161166

162167
if ignore, err := pvr.ShouldIgnore(mediaItem); err != nil {
163168
log.WithError(err).Error("Failed evaluating ignore expressions against: %+v", mediaItem)

cmd/shows.go

+1
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ func init() {
113113
_ = showsCmd.MarkFlagRequired("search-type")
114114

115115
// optional flags
116+
showsCmd.Flags().BoolVar(&flagNoFilter, "no-filter", false, "No filter expression checking.")
116117
showsCmd.Flags().IntVar(&flagLimit, "limit", 0, "Max accepted items to add.")
117118

118119
showsCmd.Flags().StringVar(&flagQueryStr, "query", "", "Query for search.")

config/mediaitem.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99

1010
type MediaItem struct {
1111
Provider string
12+
Endpoint string
1213
TvdbId string
1314
TmdbId string
1415
ImdbId string
@@ -23,6 +24,7 @@ type MediaItem struct {
2324
Status string
2425
Genres []string
2526
Languages []string
27+
Character string
2628
}
2729

2830
type ExprEnv struct {
@@ -39,7 +41,7 @@ func GetExprEnv(media *MediaItem) *ExprEnv {
3941
}
4042

4143
func (m *MediaItem) String() string {
42-
if strings.Contains(m.Title, "(" + strconv.Itoa(m.Year) + ")") {
44+
if strings.Contains(m.Title, "("+strconv.Itoa(m.Year)+")") {
4345
return m.Title
4446
}
4547

provider/tmdb.go

+1
Original file line numberDiff line numberDiff line change
@@ -403,6 +403,7 @@ func (p *Tmdb) getMovies(endpoint string, logic map[string]interface{}, params m
403403
// init media item
404404
mediaItem := config.MediaItem{
405405
Provider: "tmdb",
406+
Endpoint: endpoint,
406407
TvdbId: "",
407408
TmdbId: itemId,
408409
ImdbId: "",

provider/trakt.go

+23-4
Original file line numberDiff line numberDiff line change
@@ -68,11 +68,13 @@ type TraktMovie struct {
6868
AvailableTranslations []string `json:"available_translations"`
6969
Genres []string `json:"genres"`
7070
Certification string `json:"certification"`
71+
Character string `json:"character"`
7172
}
7273

7374
type TraktMoviesResponse struct {
7475
TraktMovie
75-
Movie *TraktMovie `json:"movie"`
76+
Character *string `json:"character"`
77+
Movie *TraktMovie `json:"movie"`
7678
}
7779

7880
type TraktPersonMovieCastResponse struct {
@@ -111,11 +113,13 @@ type TraktShow struct {
111113
AvailableTranslations []string `json:"available_translations"`
112114
Genres []string `json:"genres"`
113115
AiredEpisodes int `json:"aired_episodes"`
116+
Character string `json:"character"`
114117
}
115118

116119
type TraktShowsResponse struct {
117120
TraktShow
118-
Show *TraktShow `json:"show"`
121+
Character *string `json:"character"`
122+
Show *TraktShow `json:"show"`
119123
}
120124

121125
/* Initializer */
@@ -328,7 +332,12 @@ func (p *Trakt) getRequestParams(params map[string]string) req.Param {
328332

329333
func (p *Trakt) translateMovie(response TraktMoviesResponse) *TraktMovie {
330334
if response.Movie != nil {
331-
return response.Movie
335+
m := response.Movie
336+
if response.Character != nil && *response.Character != "" {
337+
m.Character = *response.Character
338+
}
339+
340+
return m
332341
}
333342

334343
return &TraktMovie{
@@ -355,12 +364,18 @@ func (p *Trakt) translateMovie(response TraktMoviesResponse) *TraktMovie {
355364
AvailableTranslations: response.AvailableTranslations,
356365
Genres: response.Genres,
357366
Certification: response.Certification,
367+
Character: "",
358368
}
359369
}
360370

361371
func (p *Trakt) translateShow(response TraktShowsResponse) *TraktShow {
362372
if response.Show != nil {
363-
return response.Show
373+
s := response.Show
374+
if response.Character != nil && *response.Character != "" {
375+
s.Character = *response.Character
376+
}
377+
378+
return s
364379
}
365380

366381
return &TraktShow{
@@ -505,6 +520,7 @@ func (p *Trakt) getMovies(endpoint string, logic map[string]interface{}, params
505520
// init media item
506521
mediaItem := config.MediaItem{
507522
Provider: "trakt",
523+
Endpoint: endpoint,
508524
TvdbId: "",
509525
TmdbId: itemId,
510526
ImdbId: movieItem.Ids.Imdb,
@@ -519,6 +535,7 @@ func (p *Trakt) getMovies(endpoint string, logic map[string]interface{}, params
519535
Status: movieItem.Status,
520536
Genres: movieItem.Genres,
521537
Languages: []string{movieItem.Language},
538+
Character: movieItem.Character,
522539
}
523540

524541
// does the pvr already have this item?
@@ -683,6 +700,7 @@ func (p *Trakt) getShows(endpoint string, logic map[string]interface{}, params m
683700
// init media item
684701
mediaItem := config.MediaItem{
685702
Provider: "trakt",
703+
Endpoint: endpoint,
686704
TvdbId: itemId,
687705
TmdbId: strconv.Itoa(showItem.Ids.Tmdb),
688706
ImdbId: showItem.Ids.Imdb,
@@ -697,6 +715,7 @@ func (p *Trakt) getShows(endpoint string, logic map[string]interface{}, params m
697715
Status: showItem.Status,
698716
Genres: showItem.Genres,
699717
Languages: []string{showItem.Language},
718+
Character: showItem.Character,
700719
}
701720

702721
// does the pvr already have this item?

provider/tvmaze.go

+1
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,7 @@ func (p *TvMaze) getScheduleShows(logic map[string]interface{}, params map[strin
252252
// init media item
253253
mediaItem := config.MediaItem{
254254
Provider: "tvmaze",
255+
Endpoint: "/schedule/full",
255256
TvdbId: itemId,
256257
ImdbId: item.Embedded.Show.Externals.Imdb,
257258
Title: item.Embedded.Show.Name,

0 commit comments

Comments
 (0)