Commit graph

116 commits

Author SHA1 Message Date
JackDandy
26e5de33c7 Fix for recent datetime refactor 2023-09-19 13:28:31 +01:00
JackDandy
6bda4d7c8f Merge branch 'main' into dev 2023-09-19 12:58:46 +01:00
JackDandy
6a84f28d69 Fix Metacritic cards and Linux CI tests
Fix updated source
2023-09-19 12:56:14 +01:00
JackDandy
674a2bd755 Merge branch 'main' into dev 2023-09-18 12:56:23 +01:00
JackDandy
879136d00b Fix Emby notifier library update.
Change add server type check (Emby/Jellyfin).
Change add use of media location for update.
Change accept any 2xx code as success.
Change code cleanup
2023-09-17 23:25:50 +01:00
Prinz23
2a73990c82 Add thefuzz 0.19.0 (c2cd4f4) as a replacement with fallback to fuzzywuzzy 0.18.0 (2188520)
Removes Levenshtein requirement with direct use of rapidfuzz instead
Fallback to old fuzzywuzzy for pure python implementation
2023-09-12 14:53:50 +01:00
JackDandy
af37db4aad Merge branch 'main' into dev 2023-09-12 08:12:07 +01:00
JackDandy
45f2ca848f Change omgwtfnzbs domain 2023-09-12 08:10:09 +01:00
Prinz23
a3e351f282 fix datetime refactor issues 2023-09-08 15:09:52 +02:00
JackDandy
b861ccd088 Change migrate use of .utcnow() to .now(timezone.utc). 2023-09-06 15:27:34 +01:00
Prinz23
96fc7d1c9d Change sort episodes when set to wanted on display show page 2023-09-05 23:30:19 +01:00
Prinz23
6d8a209f2a sort backlog and manual segment search results episode number 2023-09-05 23:28:57 +01:00
Prinz23
206c5b7893 Add ignore subfolders that contain a file called '.sickgearignore' 2023-07-13 20:28:19 +01:00
Prinz23
ca6e399ae9 Add config.ini backup
try to validate saved config.ini
try to use backed up config.ini file if saving fails
check config.ini copy before compressing it to backup
2023-07-13 20:24:08 +01:00
Prinz23
e4ca609f72 Change recreate metadata files when renaming episodes.
Add TBC (to be confirmed) as a possible unnamed episode name pattern.
Don't save episode object to DB in rename during meta data creation (redundant, since it's saved after in rename).
2023-06-07 14:37:29 +01:00
Prinz23
6df46175f2 Fix setting airtime timezone for "Wanted" episodes during auto search. 2023-06-07 14:11:26 +01:00
JackDandy
b9bcf6df6b Update UnRar x64 for Windows 6.21 → 6.22
Change allow Python 3.11.4
Change minimum required Python to version 3.8.2
Change remove Python 2 references from init scripts.
Remove provider Rarbg.
2023-05-31 13:31:35 +01:00
JackDandy
59f83064b9 Fix find show results returned as newest/oldest that are then sorted z to a. 2023-05-28 08:22:26 +01:00
Prinz23
d797d30704 Fix add show "TheTVDB via Trakt" 2023-05-28 07:52:05 +01:00
JackDandy
c75ef36cfe Fix tv test to init recently added ReleaseMap.
Fix double use of var `result` overwrites the return value and causes an error in _parse_custom_exceptions.
Change remove Python 3.7 from CI
2023-05-04 22:57:16 +01:00
JackDandy
9009cc7a7b Add langcodes 3.3.0 and language-data 1.1 (vendor'd from pip install langcodes[data])
Add a Select2 drop-down to `add-shows` and `edit-show`.
The Select2 enables displaying inline language flag images, this feature deprecated by the native `select` drop-down element on some browsers.
Change run existing TVInfo source language lists through validation (removes ~4 bad items), de-dupe list, get the native names, English names, and three letter abbr.
Change remove marisa-trie requirement from language_data/names.py because nothing in SG calls a function that requires it.
Change update some flags.
2023-05-03 00:44:00 +01:00
JackDandy
fce8878fa9 Add menu Shows/"TMDB Cards".
Add top rated, popular, trending today, trending this week, to TMDB cards.
Change Shows/Add show... Trakt and IMDb card descriptions to be dynamic.
Add network data to trakt cards.
Add fallback for show cast when no suitable items are found in tvdb_api.
Change refactor for trakt lib update.
Change sanitise api response dates for cards (an invalid trakt date caused a UI glitch).
Fix issue where trakt can return no tvdb id causing a card to not display.
Change view-show TVDb genre links to use anon link setting.
Change remove displayShow.tmpl code for '|' sep as it is a fixed list string at data source.
Change add TVINFO_FANSITE placeholder icon.
Change refactor api sg.`CMD_SickGearShowsBrowseTrakt`.
---
Refactor date handling to make it's usage consistent from indexerapi
Split when_past out to to started_past and return_past for UI.
Fix trakt returning dates.
Change bring properly into use, the proper new season returning date.
Change remove PY2 unused import statements.
---
Fix issue with Trakt cards where an incorrect cache image obscures the default card placeholder image.
Simplify airtime for cards.
Remove nonsense TMDB api overview text.
Rearrange cards order on top menu.
---
Remove unused vars and simplify regex use cases.
Fix tv cards issue with Trakt and Tvmaze where show_info does not carry a first episode_info.
Instantiate with TVInfoEpisode() instead of None, so that expected properties exist without a need for Nonetype tests.
Change simplify `overview` and `airtime` use after lib output type is made trustable.
Change cards view to not allow items with no seriesname.
2023-05-03 00:43:59 +01:00
Prinz23
7a6936823e Change improve tmdb_api, trakt_api, and TVInfoShow object.
Add `spoken_languages` to tmdb API and TVInfoShow object.
Add `trailers`, `homepage` to trakt API and TVInfoShow object.
Add trakt episode data if returned from api.
Add trakt API methods.
- get_most_played
- get_most_watched
- get_most_collected
- get_anticipated
- get_recommended
- get_trending
- get_popular
- get_recommended_for_account
- get_new_shows
- get_new_seasons
- get_watchlisted_for_account
- get_similar
- hide_recommended_for_account (to hide/remove recommended shows for account)
- unhide_recommended_for_account
- list_hidden_recommended_for_account

Fix caching tmdb language list over different runtime instances.
Add episode_count and fix ti_show in tmdb_api person object.
Change set additional properties in get_person trakt_api.

Add tmdb API methods and tvinfo_base.
- get_recommended_for_show
- get_similar
---
fix supported language caching
improve print output (source name) of tvinfo_api_tests
fix tvinfo_api_tests data creation
---
Add code so that it runs with all_test

use mock today() and now() dates
add option to only get new urls mock data
try also to make object creation only when needed
fix person parser in tmdb_api
add search_person test in tvinfo_api_tests
restore mocked methods at the end of the tvinfo_api_tests to prevent other tests to fail when called via all_tests
switch gzip with better lzma compression for mock files (default lib in py3)
move mock files in test unit sub folder
---
Fix trakt method `get_recommended`.
Fix browse trakt tests in tvinfo_api_tests.
Change set episode id in trakt api.
---
Add test_browse_endpoints to tvinfo_api_tests.
---
Add enforce_type to sg_helpers.
Change use enforce str for overviews.
Change remove `if PY2` code sections
Add support for  datetime.time in _make_airtime in tv.py
Refactor tvmaze_api show data setter.
Change test to not allow None for seriesname.
Add additional missing showdata with caller load_data().
Add load_data() to TVInfoShow.
Add guestcast, guestcrew to episodes in pytvmaze lib.
---
Change make seriesid of TVInfoShow a alias property of id.

Add tvinfo tests.
Add search tests.
Add show, person tests.
Change add trakt tests.
Change add tmdb search tests.
tvmaze_api exclude rating from mapping.
Allow None for seriesname.
Fix origin_countries in trakt_api search.
Fix show_type in tvmaze_api.
Fix airtime for episodes in tvmaze_api.
---
Change switch to property instead of legacy dict-like use for trakt search results.
Change optimize speed of get() function.
Fix make BaseTVinfoSeasonnotfound and BaseTVinfoAttributenotfound also a subclass of AttributeError and KeyError.
Change mock get() to work with and without default args just like dict get().
Change add language to tmdb_api search results.
Change improve person search by remote id, by getting the complete persons data when there is only 1 result.
Change trakt API search results to tvinfoshow.
Change search results to TVInfoShow objs in tvmaze_api.
Change simplify poster URL generation for search results.
Change search results to TVInfoShow objs.

Change add tvdb genre links to displayShow.

Change workaround for missing data in person data (series set to None).

Fix add show to characters of person if there is no name on IMDb (set to 'unknown name').

Change add config and icons for linkedin, reddit, wikidata, youtube.

Add TVInfoIDs, TVInfoSocialIDs to Trakt.
Add TVInfoIDs to tmdb_api.
Add TVInfoIDs to tvmaze_api.
add TVInfoIDs to imdb_api.

Change make character name '' if None.

Fix for 'unknown name' persons and characters.

Add contentrating.

Change fill in new fields to get_person results.

----

Change set new in/active dates to network.

Change add active_date, inactive_date to TVInfoNetwork class.

Change add default kwargs to tmdb discover method if no kwargs are set.
Change default: English language shows with first air date greater then today.

Change add slug field to returned data from discover.

Change add 'score' mapped to rating to discover returned results.

Fix valid_data for discover method.

Change add result_count to discover.

Change add _sanitise_image_uri to discover method.

Fix convert_person.

Change add missing  _sanitise_image_uri for images in some places.

Fix crew.

Change return type of tvinfo base: discover to list tvinfoshow.

Fix people remote id search.
Change add tmdb person id search.

Change fix people endpoint fieldname changes.

Change add biography to person object.

Change move 401 expired token handling into TvdbAuth class.

Change get new token if old token is expired.

Change add raise error if episodes fallback fails to load data.
Change add break if no valid_data to absolute and alternative numberings.
Change add filter only networks.
Change add new required parameter meta=translations to get translated (includes the original language) show overviews.
Change add check if show is set for person compare.
Fix person update properties with no show set.
Change add person image.

Change add alternative episode orders.
Change add alt_ep_numbering to TVINFO_Show.
Change add old interface for dvd order.

Change add trakt slug tvinfo search test cases.

Change add mock for old tvdb get new token.

Change old lib to newer tvinfo data.

Fix person id (not available on old api).

Change more places to new TVInfoAPI interface.
2023-05-03 00:43:59 +01:00
JackDandy
5ff18a8652 Add try_date for use in attempting conversion of unspecified date format types birthdate, deathdate, aired.
Change tweaks, remove one warn, order imports.
Change tidy up of other warnings, mismatched types, typos, a strange arg issue with deepcopy, and PEP8.
Bug fix, bad key in get_item for TVInfoSocialIDs.

Fix ambiguities of `show` used in sg versus external uses.

Change add cast, crew type mappings
Change only take Main Actors, Hosts, Interviewers, Presenters.
2023-05-03 00:43:58 +01:00
Prinz23
0fbf88651d Add language support.
Add new get_languages TVInfo Interface method that returns a list of dicts by the indexer supported languages and the sg_lang map code [{'id': 'lang code', 'name': 'english name', 'nativeName': 'native name', 'sg_lang': 'sg lang code'}].
Add all returned languages to webserve method.
Use new interface parameter language for get_show.
2023-05-03 00:41:08 +01:00
JackDandy
d649d49990 Change improve tba regex and logic readability. 2023-05-02 23:46:03 +01:00
Prinz23
2ef0f92d84 Change conditional logic simplification.
Change no need to rename if there is no file.
Change don't rename if basename is unchanged.
Change check if episode filename has changed.
2023-05-02 22:49:39 +01:00
JackDandy
1eec1e7492 Add to config/media-process/File Handling, "Rename TBA" and "Rename any".
Change exclude Trakt notifier from redundant library updates when renaming files.
Change filename checker regex to be less strict.
Change remove naming pattern code duplication.
2023-05-02 22:47:52 +01:00
Prinz23
a323eed822 Add rename "TBA" files to actual episode name from TV info source changes.
Add setting vars to rename episodes when tba type default or on any change.
2023-05-02 09:39:09 +01:00
JackDandy
fb6ef08f01 Change remove redundant py2 import futures. 2023-04-27 12:53:49 +01:00
Prinz23
1f7e467e07 Change minimum required Python to version 3.8 2023-04-27 12:52:02 +01:00
JackDandy
8223edb2cf Add config to change media process log message if there is no media to process. 2023-04-27 12:50:24 +01:00
JackDandy
8e8568adb3 Change add jobs to centralise scheduler activities.
Change refactor scene_exceptions.
2023-04-27 12:47:00 +01:00
JackDandy
01045f22de Merge branch 'main' into dev 2023-04-12 10:20:48 +01:00
Prinz23
49f6c99e0a Change handle exceptions thrown from pkg_resources parsing newly extended working set modules not even used by SG.
Fix parsing shows where multiple same names are in SG and show_obj is set for parser.
Change update fallback zoneinfo to 2023c.
Change update gitignore.
2023-04-12 10:17:48 +01:00
JackDandy
41a72bdb4d Change allow Python 3.11.3, 3.10.11
Change fix show id log output.
Remove deprecated var.
2023-04-12 10:16:32 +01:00
JackDandy
ffff95fe34 Change add Rarbg UHD search category. 2023-04-02 23:37:15 +01:00
JackDandy
1e161f376d Fix UI by marking resource as unavailable if cannot determine its free space.
Change replace copyFile placeholder code with copy_file override.
Change replace moveFile placeholder code with move_file override.
Change replace tryInt placeholder code with try_int override.
Change refactor disk free space logic.
Change restore min_output logic.
2023-03-14 01:22:09 +00:00
Prinz23
344fb19575 Fix unavailable paths.
Change catch potential exception because of unmounting of path during finding mount point.
Change add disabled message to webapi for freespace
2023-03-13 11:44:25 +00:00
Prinz23
e239b81a18 Change optionally add disk free space in response to three Web API endpoints.
Change increase API version number to 15.
Add actually use mount points to get disk free space.
Add optional "freespace" parameter to endpoints: sg.getrootdirs, sg.addrootdir, sg.deleterootdir
Change update help of affected endpoints.
Fix explicitly save rootdirs after adding or deleting via Web API.
2023-03-12 02:20:08 +00:00
JackDandy
68b8cbcdde Change deprecate processEpisode used by nzbToMedia to advise how to configure API instead. 2023-03-10 01:52:51 +00:00
JackDandy
48d4b505a3 Change re-add deprecated endpoint used by external scripts. 2023-03-09 13:51:48 +00:00
JackDandy
bd610ca2eb Merge branch 'main' into dev 2023-03-08 23:37:48 +00:00
Prinz23
1955313edc Change meta providers to new TVInfoAPI get_show to make sure language is used. 2023-03-08 23:33:58 +00:00
JackDandy
19f0a951e5 Refactor timestamp_near to SGDatetime.timestamp_near. 2023-03-08 17:36:24 +00:00
JackDandy
ae4173e8c0 Change py2 unicode into f-strings or simple strings where appropriate.
Change use specific logger functions for debug, warning, error.
2023-03-08 14:22:40 +00:00
JackDandy
9d8462f4ef Update Tornado Web Server 6.2.0 (a4f08a3) → 6.3.dev1 (7186b86). 2023-03-08 14:12:37 +00:00
JackDandy
9fe62aa486 Change improve perf by using generators with any. 2023-03-06 23:54:52 +00:00
JackDandy
99aa339bbf Add logging around the restart/shutdown event. 2023-03-06 23:52:43 +00:00
JackDandy
c076c495ee Merge branch 'main' into dev 2023-03-06 23:46:21 +00:00
Prinz23
89cd650b35 Fix "Change File Date" not using timestamp of episode if available. 2023-03-06 23:43:46 +00:00
JackDandy
f91e579f37 Merge branch 'main' into dev 2023-03-05 00:27:01 +00:00
Prinz23
3a5f0537c0 Add UHD Bluray. 2023-03-05 00:22:27 +00:00
JackDandy
ec874504de Change rename db variables/functions. 2023-02-24 15:19:46 +00:00
JackDandy
32987134ba Change codebase cleanups.
Cleanup most init warnings.
Cleanup some vars, pythonic instead of js.
Some typos and python var/func names for Scheduler.
Remove legacy handlers deprecated in 2020.
Remove some legacy tagged stuff.
Cleanup ConfigParser and 23.py
Change cleanup vendored scandir.
Remove redundant pkg_resources.py in favour of the vendor folder.
Remove backports.
Remove trakt checker.
Change remove redundant WindowsSelectorEventLoopPolicy from webserveInit.
Cleanup varnames and providers
Various minor tidy ups to remove ide warnings.
2023-02-24 15:17:56 +00:00
Prinz23
8ddffb7882 Change py2 deprecation cleanups.
Remove py2 part from _23.py
Remove more mapped stuff.
Replace filter_iter with native filter.
Replace map_iter with native map.
Remove unidecode from _23 (empty wrapper on py3).
Remove map_list and replace with native list(map( for performance reasons.
Replace filter_list with list(filter.
Replace list_keys with list(.
Replace list_values with list(...values()).
Replace list_items with list(....items()).
Replace ordered_dict with dict.
Fix tvinfo base type docs.
Remove py2 parts from sg_futures.
Remove scandir lib ...  it's a sub module of os in py3.
Remove PY2 stuff.
Ignore unknown ids for characters/persons.
Fix tvdb image parsing.
Ignore unknown id sources on person page.
2023-02-21 01:01:04 +00:00
JackDandy
7f03b8dd02 Merge branch 'main' into dev 2023-02-18 22:45:39 +00:00
JackDandy
63e998dfc2 Fix using recently updated torrent parser for py3 bytes. 2023-02-18 22:41:52 +00:00
JackDandy
8656c087cd Merge branch 'main' into dev 2023-02-18 20:34:12 +00:00
Prinz23
a0099da56b Fix show view edit language.
Fix reload show data if requested language changes.
Fix broken lang in tvdb api.
Change use language in all get_show tvinfo data calls.
Fix TMDB show language fallback check.
Fix add requested_language to tvinfo show cache.
Fix reset loaded statuses of cached show.
Fix TVDb image parsing.
2023-02-18 20:13:46 +00:00
JackDandy
dac9f2cdff Merge branch 'main' into dev 2023-02-15 14:03:29 +00:00
JackDandy
39f0539439 Fix updating with running virtualenv. 2023-02-15 13:37:20 +00:00
JackDandy
2779c60f42 Change remove calls to legacy py2 fix encoding function.
Change various code cleanups, e.g. replace CamelCase with pythonic casing.
2023-02-10 21:40:19 +00:00
Prinz23
ef4e10d917 Fix revert update. 2023-02-10 19:24:56 +00:00
Prinz23
f85d15651c Change re-enable fetching metadata banners and posters. 2023-02-09 14:46:03 +00:00
SickGear
e56303798c Change bump to major version 3.xx to signal that this branch supports Python3+ only.
Initial SickGear for Python 3.
2023-02-09 13:41:15 +00:00