[28] Pr updates (#2188)
1
.github/.wordlist.txt
vendored
|
@ -67,6 +67,7 @@ diiivoycolor
|
||||||
DIR
|
DIR
|
||||||
dir
|
dir
|
||||||
DiskStation
|
DiskStation
|
||||||
|
DisneyToon
|
||||||
dockerfile
|
dockerfile
|
||||||
dockerfiles
|
dockerfiles
|
||||||
DockerHub
|
DockerHub
|
||||||
|
|
2
.github/workflows/validate-pull.yml
vendored
|
@ -56,7 +56,7 @@ jobs:
|
||||||
done
|
done
|
||||||
|
|
||||||
- name: Run Spellcheck
|
- name: Run Spellcheck
|
||||||
uses: rojopolis/spellcheck-github-actions@0.38.0
|
uses: rojopolis/spellcheck-github-actions@0.40.0
|
||||||
|
|
||||||
docker-build-pull:
|
docker-build-pull:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
13
CHANGELOG
|
@ -1,9 +1,10 @@
|
||||||
# Requirements Update (requirements will need to be reinstalled)
|
# Requirements Update (requirements will need to be reinstalled)
|
||||||
Added tenacity requirement at 8.4.2
|
Added tenacity requirement at 9.0.0
|
||||||
|
Update lxml requirement to 5.3.0
|
||||||
Update pillow requirement to 10.4.0
|
Update pillow requirement to 10.4.0
|
||||||
Update PlexAPI requirement to 4.15.14
|
Update PlexAPI requirement to 4.15.15
|
||||||
Update psutil requirement to 6.0.0
|
Update psutil requirement to 6.0.0
|
||||||
Update setuptools requirement to 70.2.0
|
Update setuptools requirement to 72.1.0
|
||||||
|
|
||||||
# Removed Features
|
# Removed Features
|
||||||
|
|
||||||
|
@ -12,6 +13,7 @@ Added [`letterboxd_user_lists`](https://kometa.wiki/en/latest/files/dynamic_type
|
||||||
|
|
||||||
# Updates
|
# Updates
|
||||||
F1 session naming improvements
|
F1 session naming improvements
|
||||||
|
Added new studios : Disney Television Animation, DisneyToon Studios, Dynamic Planning, Film4 Productions, Golden Harvest, Hungry Man, Screen Gems, Shaw Brothers, Studio Live, The Stone Quarry
|
||||||
|
|
||||||
# Defaults
|
# Defaults
|
||||||
|
|
||||||
|
@ -20,6 +22,9 @@ Fixed multiple anime `int()` Errors
|
||||||
Fixed #2100 `verify_ssl` wasn't working when downloading images
|
Fixed #2100 `verify_ssl` wasn't working when downloading images
|
||||||
Fixed an issue with `delete_collections` where items were being deleted if they only matched one criteria vs all criteria
|
Fixed an issue with `delete_collections` where items were being deleted if they only matched one criteria vs all criteria
|
||||||
Fixed `imdb_watchlist`
|
Fixed `imdb_watchlist`
|
||||||
Fix #2150; change xmen list to a new one
|
Fixes #2135 AniDB Builder type conversion error
|
||||||
|
Fixed #2150; change xmen list to a new one
|
||||||
|
Fixed #2169 Add handling for blank secrets
|
||||||
|
Fixed #2176 `clean_bundles`, `optimize`, and `empty_trash` not working as global attributes
|
||||||
|
|
||||||
Various other Minor Fixes
|
Various other Minor Fixes
|
||||||
|
|
2
VERSION
|
@ -1 +1 @@
|
||||||
2.0.2-build27
|
2.0.2-build28
|
||||||
|
|
|
@ -301,11 +301,14 @@ dynamic_collections:
|
||||||
- DC Comics
|
- DC Comics
|
||||||
- Dimension Films
|
- Dimension Films
|
||||||
- Dino De Laurentiis Company
|
- Dino De Laurentiis Company
|
||||||
|
- Disney Television Animation
|
||||||
|
- DisneyToon Studios
|
||||||
- Don Simpson Jerry Bruckheimer Films
|
- Don Simpson Jerry Bruckheimer Films
|
||||||
- Doozer
|
- Doozer
|
||||||
- Dreams Salon Entertainment Culture
|
- Dreams Salon Entertainment Culture
|
||||||
- DreamWorks Studios
|
- DreamWorks Studios
|
||||||
- DreamWorks Pictures
|
- DreamWorks Pictures
|
||||||
|
- Dynamic Planning
|
||||||
- Eleventh Hour Films
|
- Eleventh Hour Films
|
||||||
- EMJAG Productions
|
- EMJAG Productions
|
||||||
- Endeavor Content
|
- Endeavor Content
|
||||||
|
@ -317,6 +320,7 @@ dynamic_collections:
|
||||||
- Exposure Labs
|
- Exposure Labs
|
||||||
- Fandango
|
- Fandango
|
||||||
- Fields Entertainment
|
- Fields Entertainment
|
||||||
|
- Film4 Productions
|
||||||
- FilmDistrict
|
- FilmDistrict
|
||||||
- FilmNation Entertainment
|
- FilmNation Entertainment
|
||||||
- Flynn Picture Company
|
- Flynn Picture Company
|
||||||
|
@ -332,6 +336,7 @@ dynamic_collections:
|
||||||
- Gary Sanchez Productions
|
- Gary Sanchez Productions
|
||||||
- Gaumont
|
- Gaumont
|
||||||
- Generator Entertainment
|
- Generator Entertainment
|
||||||
|
- Golden Harvest
|
||||||
- Gracie Films
|
- Gracie Films
|
||||||
- Green Hat Films
|
- Green Hat Films
|
||||||
- Grindstone Entertainment Group
|
- Grindstone Entertainment Group
|
||||||
|
@ -344,6 +349,7 @@ dynamic_collections:
|
||||||
- HBO
|
- HBO
|
||||||
- Heyday Films
|
- Heyday Films
|
||||||
- Hughes Entertainment
|
- Hughes Entertainment
|
||||||
|
- Hungry Man
|
||||||
- Hurwitz & Schlossberg Productions
|
- Hurwitz & Schlossberg Productions
|
||||||
- Hyperobject Industries
|
- Hyperobject Industries
|
||||||
- Icon Entertainment International
|
- Icon Entertainment International
|
||||||
|
@ -435,11 +441,13 @@ dynamic_collections:
|
||||||
- Scion Films
|
- Scion Films
|
||||||
- Scott Free Productions
|
- Scott Free Productions
|
||||||
- Sculptor Media
|
- Sculptor Media
|
||||||
|
- Screen Gems
|
||||||
- Sean Daniel Company
|
- Sean Daniel Company
|
||||||
- Searchlight Pictures
|
- Searchlight Pictures
|
||||||
- Secret Hideout
|
- Secret Hideout
|
||||||
- See-Saw Films
|
- See-Saw Films
|
||||||
- Serendipity Pictures
|
- Serendipity Pictures
|
||||||
|
- Shaw Brothers
|
||||||
- Show East
|
- Show East
|
||||||
- Showtime Networks
|
- Showtime Networks
|
||||||
- Sil-Metropole Organisation
|
- Sil-Metropole Organisation
|
||||||
|
@ -461,6 +469,7 @@ dynamic_collections:
|
||||||
- Studio 8
|
- Studio 8
|
||||||
- Studio Babelsberg
|
- Studio Babelsberg
|
||||||
- Studio Dragon
|
- Studio Dragon
|
||||||
|
- Studio Live
|
||||||
- STX Entertainment
|
- STX Entertainment
|
||||||
- Summit Entertainment
|
- Summit Entertainment
|
||||||
- Syfy
|
- Syfy
|
||||||
|
@ -477,6 +486,7 @@ dynamic_collections:
|
||||||
- The Littlefield Company
|
- The Littlefield Company
|
||||||
- The Mark Gordon Company
|
- The Mark Gordon Company
|
||||||
- The Sea Change Project
|
- The Sea Change Project
|
||||||
|
- The Stone Quarry
|
||||||
- The Weinstein Company
|
- The Weinstein Company
|
||||||
- Tim Burton Productions
|
- Tim Burton Productions
|
||||||
- TOHO
|
- TOHO
|
||||||
|
|
After Width: | Height: | Size: 33 KiB |
BIN
defaults/overlays/images/studio/bigger/DisneyToon Studios.png
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
defaults/overlays/images/studio/bigger/Dynamic Planning.png
Normal file
After Width: | Height: | Size: 41 KiB |
BIN
defaults/overlays/images/studio/bigger/Film4 Productions.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
defaults/overlays/images/studio/bigger/Golden Harvest.png
Normal file
After Width: | Height: | Size: 7.9 KiB |
BIN
defaults/overlays/images/studio/bigger/Hungry Man.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
defaults/overlays/images/studio/bigger/Screen Gems.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
defaults/overlays/images/studio/bigger/Shaw Brothers.png
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
defaults/overlays/images/studio/bigger/Studio Live.png
Normal file
After Width: | Height: | Size: 51 KiB |
BIN
defaults/overlays/images/studio/bigger/The Stone Quarry.png
Normal file
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 30 KiB |
BIN
defaults/overlays/images/studio/standard/DisneyToon Studios.png
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
defaults/overlays/images/studio/standard/Dynamic Planning.png
Normal file
After Width: | Height: | Size: 37 KiB |
BIN
defaults/overlays/images/studio/standard/Film4 Productions.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
defaults/overlays/images/studio/standard/Golden Harvest.png
Normal file
After Width: | Height: | Size: 7 KiB |
BIN
defaults/overlays/images/studio/standard/Hungry Man.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
defaults/overlays/images/studio/standard/Screen Gems.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
defaults/overlays/images/studio/standard/Shaw Brothers.png
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
defaults/overlays/images/studio/standard/Studio Live.png
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
defaults/overlays/images/studio/standard/The Stone Quarry.png
Normal file
After Width: | Height: | Size: 23 KiB |
|
@ -847,6 +847,12 @@ overlays:
|
||||||
Dino De Laurentiis Company:
|
Dino De Laurentiis Company:
|
||||||
template: [name: standard, name: studios]
|
template: [name: standard, name: studios]
|
||||||
|
|
||||||
|
Disney Television Animation:
|
||||||
|
template: [name: standard, name: studios]
|
||||||
|
|
||||||
|
DisneyToon Studios:
|
||||||
|
template: [name: standard, name: studios]
|
||||||
|
|
||||||
Don Simpson Jerry Bruckheimer Films:
|
Don Simpson Jerry Bruckheimer Films:
|
||||||
template: [name: standard, name: studios]
|
template: [name: standard, name: studios]
|
||||||
|
|
||||||
|
@ -862,6 +868,9 @@ overlays:
|
||||||
DreamWorks Pictures:
|
DreamWorks Pictures:
|
||||||
template: [name: standard, name: studios]
|
template: [name: standard, name: studios]
|
||||||
|
|
||||||
|
Dynamic Planning:
|
||||||
|
template: [name: standard, name: studios]
|
||||||
|
|
||||||
Eleventh Hour Films:
|
Eleventh Hour Films:
|
||||||
template: [name: standard, name: studios]
|
template: [name: standard, name: studios]
|
||||||
|
|
||||||
|
@ -895,6 +904,9 @@ overlays:
|
||||||
Fields Entertainment:
|
Fields Entertainment:
|
||||||
template: [name: standard, name: studios]
|
template: [name: standard, name: studios]
|
||||||
|
|
||||||
|
Film4 Productions:
|
||||||
|
template: [name: standard, name: studios]
|
||||||
|
|
||||||
FilmDistrict:
|
FilmDistrict:
|
||||||
template: [name: standard, name: studios]
|
template: [name: standard, name: studios]
|
||||||
|
|
||||||
|
@ -940,6 +952,9 @@ overlays:
|
||||||
Generator Entertainment:
|
Generator Entertainment:
|
||||||
template: [name: standard, name: studios]
|
template: [name: standard, name: studios]
|
||||||
|
|
||||||
|
Golden Harvest:
|
||||||
|
template: [name: standard, name: studios]
|
||||||
|
|
||||||
Gracie Films:
|
Gracie Films:
|
||||||
template: [name: standard, name: studios]
|
template: [name: standard, name: studios]
|
||||||
|
|
||||||
|
@ -976,6 +991,9 @@ overlays:
|
||||||
Hughes Entertainment:
|
Hughes Entertainment:
|
||||||
template: [name: standard, name: studios]
|
template: [name: standard, name: studios]
|
||||||
|
|
||||||
|
Hungry Man:
|
||||||
|
template: [name: standard, name: studios]
|
||||||
|
|
||||||
Hurwitz & Schlossberg Productions:
|
Hurwitz & Schlossberg Productions:
|
||||||
template: [name: standard, name: studios]
|
template: [name: standard, name: studios]
|
||||||
|
|
||||||
|
@ -1249,6 +1267,9 @@ overlays:
|
||||||
Sculptor Media:
|
Sculptor Media:
|
||||||
template: [name: standard, name: studios]
|
template: [name: standard, name: studios]
|
||||||
|
|
||||||
|
Screen Gems:
|
||||||
|
template: [name: standard, name: studios]
|
||||||
|
|
||||||
Sean Daniel Company:
|
Sean Daniel Company:
|
||||||
template: [name: standard, name: studios]
|
template: [name: standard, name: studios]
|
||||||
|
|
||||||
|
@ -1264,6 +1285,9 @@ overlays:
|
||||||
Serendipity Pictures:
|
Serendipity Pictures:
|
||||||
template: [name: standard, name: studios]
|
template: [name: standard, name: studios]
|
||||||
|
|
||||||
|
Shaw Brothers:
|
||||||
|
template: [name: standard, name: studios]
|
||||||
|
|
||||||
Show East:
|
Show East:
|
||||||
template: [name: standard, name: studios]
|
template: [name: standard, name: studios]
|
||||||
|
|
||||||
|
@ -1327,6 +1351,9 @@ overlays:
|
||||||
Studio Dragon:
|
Studio Dragon:
|
||||||
template: [name: standard, name: studios]
|
template: [name: standard, name: studios]
|
||||||
|
|
||||||
|
Studio Live:
|
||||||
|
template: [name: standard, name: studios]
|
||||||
|
|
||||||
STX Entertainment:
|
STX Entertainment:
|
||||||
template: [name: standard, {name: studios, search: [STX Entertainment, STX Films]}]
|
template: [name: standard, {name: studios, search: [STX Entertainment, STX Films]}]
|
||||||
|
|
||||||
|
@ -1375,6 +1402,9 @@ overlays:
|
||||||
The Sea Change Project:
|
The Sea Change Project:
|
||||||
template: [name: standard, name: studios]
|
template: [name: standard, name: studios]
|
||||||
|
|
||||||
|
The Stone Quarry:
|
||||||
|
template: [name: standard, name: studios]
|
||||||
|
|
||||||
The Weinstein Company:
|
The Weinstein Company:
|
||||||
template: [name: standard, name: studios]
|
template: [name: standard, name: studios]
|
||||||
|
|
||||||
|
|
|
@ -2290,16 +2290,19 @@ class CollectionBuilder:
|
||||||
logger.warning(e)
|
logger.warning(e)
|
||||||
continue
|
continue
|
||||||
elif id_type == "tmdb" and not self.parts_collection:
|
elif id_type == "tmdb" and not self.parts_collection:
|
||||||
input_id = int(input_id)
|
if not isinstance(input_id, list):
|
||||||
if input_id not in self.ignore_ids:
|
input_id = [input_id]
|
||||||
found = False
|
for in_id in input_id:
|
||||||
for pl_library in self.libraries:
|
in_id = int(in_id)
|
||||||
if input_id in pl_library.movie_map:
|
if in_id not in self.ignore_ids:
|
||||||
found = True
|
found = False
|
||||||
rating_keys = pl_library.movie_map[input_id]
|
for pl_library in self.libraries:
|
||||||
break
|
if in_id in pl_library.movie_map:
|
||||||
if not found and input_id not in self.missing_movies:
|
found = True
|
||||||
self.missing_movies.append(input_id)
|
rating_keys = pl_library.movie_map[in_id]
|
||||||
|
break
|
||||||
|
if not found and in_id not in self.missing_movies:
|
||||||
|
self.missing_movies.append(in_id)
|
||||||
elif id_type == "tvdb_season" and (self.builder_level == "season" or self.playlist):
|
elif id_type == "tvdb_season" and (self.builder_level == "season" or self.playlist):
|
||||||
tvdb_id, season_num = input_id.split("_")
|
tvdb_id, season_num = input_id.split("_")
|
||||||
tvdb_id = int(tvdb_id)
|
tvdb_id = int(tvdb_id)
|
||||||
|
|
|
@ -327,21 +327,18 @@ class ConfigFile:
|
||||||
|
|
||||||
def check_next(next_data):
|
def check_next(next_data):
|
||||||
if isinstance(next_data, dict):
|
if isinstance(next_data, dict):
|
||||||
for d in next_data:
|
return {k: check_next(v) for k, v in next_data.items()}
|
||||||
out = check_next(next_data[d])
|
|
||||||
if out:
|
|
||||||
next_data[d] = out
|
|
||||||
elif isinstance(next_data, list):
|
elif isinstance(next_data, list):
|
||||||
for d in next_data:
|
return [check_next(d) for d in next_data]
|
||||||
check_next(d)
|
|
||||||
else:
|
else:
|
||||||
for secret, secret_value in self.secrets.items():
|
for secret, secret_value in secrets.items():
|
||||||
for test in [secret, secret.upper().replace("-", "_")]:
|
for test in [secret, secret.upper().replace("-", "_")]:
|
||||||
if f"<<{test}>>" in str(next_data):
|
if f"<<{test}>>" in str(next_data):
|
||||||
return str(next_data).replace(f"<<{test}>>", secret_value)
|
return str(next_data).replace(f"<<{test}>>", secret_value)
|
||||||
|
if str(next_data).startswith("<<") and str(next_data).endswith(">>"):
|
||||||
|
return None
|
||||||
return next_data
|
return next_data
|
||||||
if self.secrets:
|
check_next(self.data)
|
||||||
check_next(self.data)
|
|
||||||
|
|
||||||
def check_for_attribute(data, attribute, parent=None, test_list=None, translations=None, default=None, do_print=True, default_is_none=False, req_default=False, var_type="str", throw=False, save=True, int_min=0, int_max=None):
|
def check_for_attribute(data, attribute, parent=None, test_list=None, translations=None, default=None, do_print=True, default_is_none=False, req_default=False, var_type="str", throw=False, save=True, int_min=0, int_max=None):
|
||||||
endline = ""
|
endline = ""
|
||||||
|
@ -1165,13 +1162,15 @@ class ConfigFile:
|
||||||
params["plex"][attr] = check_for_attribute(lib, attr, parent="plex", var_type="bool", save=False, throw=True)
|
params["plex"][attr] = check_for_attribute(lib, attr, parent="plex", var_type="bool", save=False, throw=True)
|
||||||
except Failed:
|
except Failed:
|
||||||
test_attr = lib["plex"][attr] if "plex" in lib and attr in lib["plex"] and lib["plex"][attr] else self.general["plex"][attr]
|
test_attr = lib["plex"][attr] if "plex" in lib and attr in lib["plex"] and lib["plex"][attr] else self.general["plex"][attr]
|
||||||
params["plex"][attr] = False
|
|
||||||
if test_attr is not True and test_attr is not False:
|
if test_attr is not True and test_attr is not False:
|
||||||
|
params["plex"][attr] = False
|
||||||
try:
|
try:
|
||||||
util.schedule_check(attr, test_attr, current_time, self.run_hour)
|
util.schedule_check(attr, test_attr, current_time, self.run_hour)
|
||||||
params["plex"][attr] = True
|
params["plex"][attr] = True
|
||||||
except NotScheduled:
|
except NotScheduled:
|
||||||
logger.info(f"Skipping Operation Not Scheduled for {test_attr}")
|
logger.info(f"Skipping Operation Not Scheduled for {test_attr}")
|
||||||
|
else:
|
||||||
|
params["plex"][attr] = test_attr
|
||||||
|
|
||||||
if params["plex"]["url"].lower() == "env":
|
if params["plex"]["url"].lower() == "env":
|
||||||
params["plex"]["url"] = self.env_plex_url
|
params["plex"]["url"] = self.env_plex_url
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
arrapi==1.4.13
|
arrapi==1.4.13
|
||||||
GitPython==3.1.43
|
GitPython==3.1.43
|
||||||
lxml==5.2.2
|
lxml==5.3.0
|
||||||
num2words==0.5.13
|
num2words==0.5.13
|
||||||
pathvalidate==3.2.0
|
pathvalidate==3.2.0
|
||||||
pillow==10.4.0
|
pillow==10.4.0
|
||||||
PlexAPI==4.15.14
|
PlexAPI==4.15.15
|
||||||
psutil==6.0.0
|
psutil==6.0.0
|
||||||
python-dotenv==1.0.1
|
python-dotenv==1.0.1
|
||||||
python-dateutil==2.9.0.post0
|
python-dateutil==2.9.0.post0
|
||||||
requests==2.32.3
|
requests==2.32.3
|
||||||
tenacity==8.4.2
|
tenacity==9.0.0
|
||||||
ruamel.yaml==0.18.6
|
ruamel.yaml==0.18.6
|
||||||
schedule==1.2.2
|
schedule==1.2.2
|
||||||
setuptools==70.2.0
|
setuptools==72.1.0
|
||||||
tmdbapis==1.2.16
|
tmdbapis==1.2.16
|