Unit3Dup 0.9.17__tar.gz → 0.9.18__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {unit3dup-0.9.17 → unit3dup-0.9.18}/PKG-INFO +1 -1
- {unit3dup-0.9.17 → unit3dup-0.9.18}/Unit3Dup.egg-info/PKG-INFO +1 -1
- {unit3dup-0.9.17 → unit3dup-0.9.18}/Unit3Dup.egg-info/SOURCES.txt +2 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/settings.py +8 -261
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/tags.py +35 -19
- unit3dup-0.9.18/common/trackers/releasers.py +252 -0
- unit3dup-0.9.18/common/trackers/tags_list.py +106 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/utility.py +37 -19
- {unit3dup-0.9.17 → unit3dup-0.9.18}/pyproject.toml +1 -1
- {unit3dup-0.9.17 → unit3dup-0.9.18}/LICENSE +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/README.rst +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/Unit3Dup.egg-info/dependency_links.txt +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/Unit3Dup.egg-info/entry_points.txt +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/Unit3Dup.egg-info/requires.txt +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/Unit3Dup.egg-info/top_level.txt +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/__init__.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/bdinfo_string.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/bittorrent.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/command.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/constants.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/database.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/__init__.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/ftpx/__init__.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/ftpx/client.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/ftpx/core/__init__.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/ftpx/core/ftpx_service.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/ftpx/core/ftpx_session.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/ftpx/core/menu.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/ftpx/core/models/__init__.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/ftpx/core/models/list.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/igdb/__init__.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/igdb/client.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/igdb/core/__init__.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/igdb/core/api.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/igdb/core/models/__init__.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/igdb/core/models/search.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/igdb/core/platformid.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/igdb/core/tags.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/imageHost.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/mediaresult.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/sessions/__init__.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/sessions/agents.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/sessions/exceptions.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/sessions/session.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/theMovieDB/__init__.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/__init__.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/api.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/keywords.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/models/__init__.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/models/movie/__init__.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/models/movie/alternative_titles.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/models/movie/details.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/models/movie/movie.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/models/movie/nowplaying.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/models/movie/release_info.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/models/tvshow/__init__.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/models/tvshow/alternative.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/models/tvshow/details.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/models/tvshow/on_the_air.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/models/tvshow/translations.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/models/tvshow/tvshow.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/videos.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/trailers/__init__.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/trailers/api.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/trailers/response.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/tvdb.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/extractor.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/frames.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/mediainfo.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/mediainfo_string.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/title.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/torrent_clients.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/trackers/__init__.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/trackers/data.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/trackers/itt.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/trackers/sis.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/common/trackers/trackers.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/requirements.txt +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/setup.cfg +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/unit3dup/__init__.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/unit3dup/__main__.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/unit3dup/automode.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/unit3dup/bot.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/unit3dup/duplicate.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/unit3dup/exceptions.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/unit3dup/media.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/unit3dup/media_manager/ContentManager.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/unit3dup/media_manager/DocuManager.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/unit3dup/media_manager/GameManager.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/unit3dup/media_manager/MediaInfoManager.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/unit3dup/media_manager/SeedManager.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/unit3dup/media_manager/TorrentManager.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/unit3dup/media_manager/VideoManager.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/unit3dup/media_manager/__init__.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/unit3dup/media_manager/common.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/unit3dup/pvtDocu.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/unit3dup/pvtTorrent.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/unit3dup/pvtTracker.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/unit3dup/pvtVideo.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/unit3dup/torrent.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/unit3dup/upload.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/view/__init__.py +0 -0
- {unit3dup-0.9.17 → unit3dup-0.9.18}/view/custom_console.py +0 -0
|
@@ -71,7 +71,9 @@ common/external_services/trailers/response.py
|
|
|
71
71
|
common/trackers/__init__.py
|
|
72
72
|
common/trackers/data.py
|
|
73
73
|
common/trackers/itt.py
|
|
74
|
+
common/trackers/releasers.py
|
|
74
75
|
common/trackers/sis.py
|
|
76
|
+
common/trackers/tags_list.py
|
|
75
77
|
common/trackers/trackers.py
|
|
76
78
|
unit3dup/__init__.py
|
|
77
79
|
unit3dup/__main__.py
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
|
-
|
|
3
2
|
import ipaddress
|
|
4
3
|
import json
|
|
5
4
|
import os
|
|
@@ -8,9 +7,13 @@ import re
|
|
|
8
7
|
import unicodedata
|
|
9
8
|
|
|
10
9
|
from pydantic import BaseModel, model_validator
|
|
10
|
+
from pathvalidate import sanitize_filepath
|
|
11
11
|
from urllib.parse import urlparse
|
|
12
12
|
from pathlib import Path
|
|
13
|
-
|
|
13
|
+
|
|
14
|
+
from common.trackers.releasers import SIGNS_LIST
|
|
15
|
+
from common.trackers.tags_list import TAGS_LIST
|
|
16
|
+
|
|
14
17
|
from common.utility import ManageTitles
|
|
15
18
|
from common import trackers
|
|
16
19
|
|
|
@@ -18,7 +21,7 @@ config_file = "Unit3Dbot.json"
|
|
|
18
21
|
user_tags_file = "tags_list.json"
|
|
19
22
|
user_sign_file = "sign_list.json"
|
|
20
23
|
|
|
21
|
-
version = "0.9.
|
|
24
|
+
version = "0.9.18"
|
|
22
25
|
|
|
23
26
|
if os.name == "nt":
|
|
24
27
|
WATCHER_DESTINATION_PATH: Path = Path(
|
|
@@ -526,274 +529,18 @@ class Load:
|
|
|
526
529
|
"""
|
|
527
530
|
Creates a tags list file
|
|
528
531
|
"""
|
|
529
|
-
TAG_TYPES = {
|
|
530
|
-
"REMUX": "remux",
|
|
531
|
-
"WEB-DL": "source",
|
|
532
|
-
"WEBDL": "source",
|
|
533
|
-
"WEB-DLRIP": "source",
|
|
534
|
-
"WEBDLRIP": "source",
|
|
535
|
-
"WEB-DLMUX": "source",
|
|
536
|
-
"WEBDLMUX": "source",
|
|
537
|
-
"WEBMUX": "source",
|
|
538
|
-
"WEBRIP": "source",
|
|
539
|
-
"BD-UNTOUCHED": "source",
|
|
540
|
-
"UNTOUCHED": "source",
|
|
541
|
-
|
|
542
|
-
"TS": "source",
|
|
543
|
-
"CAM": "source",
|
|
544
|
-
"HDTS": "source",
|
|
545
|
-
"MD": "source",
|
|
546
|
-
"UHDRIP": "source",
|
|
547
|
-
"BLURAY": "source",
|
|
548
|
-
"BRRIP": "source",
|
|
549
|
-
"BDRIP": "source",
|
|
550
|
-
"FHDRIP": "source",
|
|
551
|
-
"PDTV": "source",
|
|
552
|
-
"SATRIP": "source",
|
|
553
|
-
"DVBRIP": "source",
|
|
554
|
-
"DVB-S": "source",
|
|
555
|
-
"DTTRIP": "source",
|
|
556
|
-
"WP": "source",
|
|
557
|
-
"DVDSCR": "source",
|
|
558
|
-
"TVRIP": "source",
|
|
559
|
-
"VHSRIP": "source",
|
|
560
|
-
"DVDRIP": "source",
|
|
561
|
-
"HDTV": "source",
|
|
562
|
-
"DVD5": "source",
|
|
563
|
-
"DVD9": "source",
|
|
564
|
-
"VU": "source",
|
|
565
|
-
|
|
566
|
-
"ATVP": "platform",
|
|
567
|
-
"AMZN": "platform",
|
|
568
|
-
"AMC": "platform",
|
|
569
|
-
"CN": "platform",
|
|
570
|
-
"CR": "platform",
|
|
571
|
-
"DCU": "platform",
|
|
572
|
-
"DISC": "platform",
|
|
573
|
-
"DSCP": "platform",
|
|
574
|
-
"DSNY": "platform",
|
|
575
|
-
"DSNP": "platform",
|
|
576
|
-
"DPLY": "platform",
|
|
577
|
-
"ESPN": "platform",
|
|
578
|
-
"FOOD": "platform",
|
|
579
|
-
"FOX": "platform",
|
|
580
|
-
"PLAY": "platform",
|
|
581
|
-
"HBO": "platform",
|
|
582
|
-
"HMAX": "platform",
|
|
583
|
-
"HGTV": "platform",
|
|
584
|
-
"HIST": "platform",
|
|
585
|
-
"HULU": "platform",
|
|
586
|
-
"MTOD": "platform",
|
|
587
|
-
"NATG": "platform",
|
|
588
|
-
"NF": "platform",
|
|
589
|
-
"NICK": "platform",
|
|
590
|
-
"NOW": "platform",
|
|
591
|
-
"PMNT": "platform",
|
|
592
|
-
"PMTP": "platform",
|
|
593
|
-
"PCOK": "platform",
|
|
594
|
-
"RKTN": "platform",
|
|
595
|
-
"SHO": "platform",
|
|
596
|
-
"SKST": "platform",
|
|
597
|
-
"STAN": "platform",
|
|
598
|
-
"STRP": "platform",
|
|
599
|
-
"STZ": "platform",
|
|
600
|
-
"TIMV": "platform",
|
|
601
|
-
|
|
602
|
-
"SPECIAL": "version",
|
|
603
|
-
"REPACK": "version",
|
|
604
|
-
"EXTENDED": "version",
|
|
605
|
-
"EDITION": "version",
|
|
606
|
-
"DIRECTOR'S": "version",
|
|
607
|
-
"CUT": "version",
|
|
608
|
-
|
|
609
|
-
"SUBBED": "version",
|
|
610
|
-
"MUX": "version",
|
|
611
|
-
"REMASTERED": "version",
|
|
612
|
-
"READNFO": "version",
|
|
613
|
-
"UNRATED": "version",
|
|
614
|
-
"UNCUT": "version",
|
|
615
|
-
"LIMITED": "version",
|
|
616
|
-
"ANNIVERSARY": "version",
|
|
617
|
-
"4k RESTORATION": "version",
|
|
618
|
-
"IMAX": "version",
|
|
619
|
-
"OPEN MATTE": "version",
|
|
620
|
-
"2IN1": "version",
|
|
621
|
-
|
|
622
|
-
"STV": "version",
|
|
623
|
-
"RECODE": "version",
|
|
624
|
-
"INTERNAL": "version",
|
|
625
|
-
"PROPER": "version",
|
|
626
|
-
"DUAL": "version",
|
|
627
|
-
"COMPLETE": "version",
|
|
628
|
-
"COMPLETA": "version",
|
|
629
|
-
|
|
630
|
-
"X264": "video_encoder",
|
|
631
|
-
"X265": "video_encoder",
|
|
632
|
-
}
|
|
633
|
-
|
|
634
532
|
path.parent.mkdir(parents=True, exist_ok=True)
|
|
635
533
|
with open(path, "w", encoding="utf-8") as tags_list_file:
|
|
636
|
-
json.dump(
|
|
534
|
+
json.dump(TAGS_LIST, tags_list_file, ensure_ascii=False, indent=4)
|
|
637
535
|
|
|
638
536
|
@staticmethod
|
|
639
537
|
def create_sign_list_file(path: Path):
|
|
640
538
|
"""
|
|
641
539
|
Creates a tags list file
|
|
642
540
|
"""
|
|
643
|
-
TAG_TYPES = {
|
|
644
|
-
"21APRILE": "releaser",
|
|
645
|
-
"ALE88SERMETE": "releaser",
|
|
646
|
-
"ARRANCAR": "releaser",
|
|
647
|
-
"ASTOR": "releaser",
|
|
648
|
-
"AV1MERR": "releaser",
|
|
649
|
-
"BADGUY": "releaser",
|
|
650
|
-
"BITSHIFT": "releaser",
|
|
651
|
-
"BLACKBIT": "releaser",
|
|
652
|
-
"BUMBLEBEE1982": "releaser",
|
|
653
|
-
"CAPPYO": "releaser",
|
|
654
|
-
"CAVALLONZI": "releaser",
|
|
655
|
-
"CB01HD": "releaser",
|
|
656
|
-
"CHD": "releaser",
|
|
657
|
-
"CHDWEB": "releaser",
|
|
658
|
-
"CIAME": "releaser",
|
|
659
|
-
"CLOCLONE": "releaser",
|
|
660
|
-
"COMIX21": "releaser",
|
|
661
|
-
"CREW": "releaser",
|
|
662
|
-
"CSS": "releaser",
|
|
663
|
-
"CSS2": "releaser",
|
|
664
|
-
"CSS7896": "releaser",
|
|
665
|
-
"CYBER": "releaser",
|
|
666
|
-
"D3VELOPER": "releaser",
|
|
667
|
-
"DAICHISO": "releaser",
|
|
668
|
-
"DANGUARD": "releaser",
|
|
669
|
-
"DARKCOMPANY": "releaser",
|
|
670
|
-
"DARKPARANOR": "releaser",
|
|
671
|
-
"DAYMON64": "releaser",
|
|
672
|
-
"DDN": "releaser",
|
|
673
|
-
"DEDO1911": "releaser",
|
|
674
|
-
"DEMN": "releaser",
|
|
675
|
-
"DMAN": "releaser",
|
|
676
|
-
"DOCH74": "releaser",
|
|
677
|
-
"DRIIP": "releaser",
|
|
678
|
-
"DYNUX": "releaser",
|
|
679
|
-
"ELGHOTO": "releaser",
|
|
680
|
-
"ENCRYPTED": "releaser",
|
|
681
|
-
"EVN": "releaser",
|
|
682
|
-
"EZTV": "releaser",
|
|
683
|
-
"FAINO1310": "releaser",
|
|
684
|
-
"FEDECAS89": "releaser",
|
|
685
|
-
"FGT": "releaser",
|
|
686
|
-
"FHC": "releaser",
|
|
687
|
-
"FLORIN993": "releaser",
|
|
688
|
-
"FLUX": "releaser",
|
|
689
|
-
"FREZEEN": "releaser",
|
|
690
|
-
"FUSION": "releaser",
|
|
691
|
-
"G66": "releaser",
|
|
692
|
-
"GABIACAS": "releaser",
|
|
693
|
-
"GIUSEPPETNT": "releaser",
|
|
694
|
-
"GOLDENTORRENT": "releaser",
|
|
695
|
-
"GRYM": "releaser",
|
|
696
|
-
"HAPPITEAM-YNK": "releaser",
|
|
697
|
-
"HASHDEV": "releaser",
|
|
698
|
-
"HDCHINA": "releaser",
|
|
699
|
-
"HENRYDIRTY": "releaser",
|
|
700
|
-
"HONE": "releaser",
|
|
701
|
-
"HHNN": "releaser",
|
|
702
|
-
"HYRULE": "releaser",
|
|
703
|
-
"I3AM": "releaser",
|
|
704
|
-
"IBANEZ89": "releaser",
|
|
705
|
-
"IDIB": "releaser",
|
|
706
|
-
"IDN": "releaser",
|
|
707
|
-
"ILGANZO": "releaser",
|
|
708
|
-
"ILPADRINO": "releaser",
|
|
709
|
-
"ILSAGGIO": "releaser",
|
|
710
|
-
"ILSOMMO": "releaser",
|
|
711
|
-
"IPDR01": "releaser",
|
|
712
|
-
"ITT": "releaser",
|
|
713
|
-
"JOHNSEED": "releaser",
|
|
714
|
-
"KINGOFROME": "releaser",
|
|
715
|
-
"KRIKK": "releaser",
|
|
716
|
-
"LAZY-SUBS": "releaser",
|
|
717
|
-
"LEPORE": "releaser",
|
|
718
|
-
"LFI": "releaser",
|
|
719
|
-
"LULLOZZO": "releaser",
|
|
720
|
-
"MATT3O": "releaser",
|
|
721
|
-
"MATT_BROWN4": "releaser",
|
|
722
|
-
"MAX2014": "releaser",
|
|
723
|
-
"MIRCREW": "releaser",
|
|
724
|
-
"MISTERNED": "releaser",
|
|
725
|
-
"MRBLONDE": "releaser",
|
|
726
|
-
"MRROBOT": "releaser",
|
|
727
|
-
"MUETTO": "releaser",
|
|
728
|
-
"MUWATTALI": "releaser",
|
|
729
|
-
"NAHOM": "releaser",
|
|
730
|
-
"NARSETE": "releaser",
|
|
731
|
-
"NEOSTARK": "releaser",
|
|
732
|
-
"NEUROSIS": "releaser",
|
|
733
|
-
"NIMOUEH": "releaser",
|
|
734
|
-
"NOGROUP": "releaser",
|
|
735
|
-
"NOVARIP": "releaser",
|
|
736
|
-
"NTROPIC": "releaser",
|
|
737
|
-
"ODS": "releaser",
|
|
738
|
-
"ONGOIA": "releaser",
|
|
739
|
-
"PEPPE": "releaser",
|
|
740
|
-
"PENNYWISE": "releaser",
|
|
741
|
-
"PETE321": "releaser",
|
|
742
|
-
"PICOPOCO": "releaser",
|
|
743
|
-
"PING": "releaser",
|
|
744
|
-
"PINKER": "releaser",
|
|
745
|
-
"PIR8": "releaser",
|
|
746
|
-
"PLAYWEB": "releaser",
|
|
747
|
-
"PRIME": "releaser",
|
|
748
|
-
"PROMETHEUS": "releaser",
|
|
749
|
-
"PROSCIUTTO": "releaser",
|
|
750
|
-
"RADESE": "releaser",
|
|
751
|
-
"RAWR": "releaser",
|
|
752
|
-
"RARBG": "releaser",
|
|
753
|
-
"RIDDICKK": "releaser",
|
|
754
|
-
"ROGELIOBYNIGHT": "releaser",
|
|
755
|
-
"ROMEO": "releaser",
|
|
756
|
-
"RYUKXX": "releaser",
|
|
757
|
-
"S-K": "releaser",
|
|
758
|
-
"SANDWORM": "releaser",
|
|
759
|
-
"SEEDBOX": "releaser",
|
|
760
|
-
"SEEDBOX2": "releaser",
|
|
761
|
-
"SERCIUS": "releaser",
|
|
762
|
-
"SIMO01": "releaser",
|
|
763
|
-
"SIXTEEN8664": "releaser",
|
|
764
|
-
"SK4TTO": "releaser",
|
|
765
|
-
"SMURFADMIN": "releaser",
|
|
766
|
-
"SPYRO1989": "releaser",
|
|
767
|
-
"STEVEJOHNNEE": "releaser",
|
|
768
|
-
"STINGUAJT": "releaser",
|
|
769
|
-
"TAHTAKALECI": "releaser",
|
|
770
|
-
"TELESTO": "releaser",
|
|
771
|
-
"TERMINAL": "releaser",
|
|
772
|
-
"THEBLACKKING": "releaser",
|
|
773
|
-
"THEEMOJICREW": "releaser",
|
|
774
|
-
"THUDARA": "releaser",
|
|
775
|
-
"TIGRE67": "releaser",
|
|
776
|
-
"TORRENT10": "releaser",
|
|
777
|
-
"TOTAL_SHARE88": "releaser",
|
|
778
|
-
"TREE7458": "releaser",
|
|
779
|
-
"TRIVIAL99": "releaser",
|
|
780
|
-
"UBI": "releaser",
|
|
781
|
-
"V3SP4EV3R": "releaser",
|
|
782
|
-
"VIOLENT96": "releaser",
|
|
783
|
-
"VOLVIC": "releaser",
|
|
784
|
-
"WHEELIE": "releaser",
|
|
785
|
-
"WHITERHINO": "releaser",
|
|
786
|
-
"WIZARDS2K": "releaser",
|
|
787
|
-
"WRS": "releaser",
|
|
788
|
-
"XVID": "releaser",
|
|
789
|
-
"YIFY": "releaser",
|
|
790
|
-
"YTS": "releaser",
|
|
791
|
-
"ZIORIP": "releaser"
|
|
792
|
-
}
|
|
793
|
-
|
|
794
541
|
path.parent.mkdir(parents=True, exist_ok=True)
|
|
795
542
|
with open(path, "w", encoding="utf-8") as tags_sign_file:
|
|
796
|
-
json.dump(
|
|
543
|
+
json.dump(SIGNS_LIST, tags_sign_file, ensure_ascii=False, indent=4)
|
|
797
544
|
|
|
798
545
|
@staticmethod
|
|
799
546
|
def create_default_json_file(path: Path):
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
|
-
import os
|
|
3
2
|
import re
|
|
4
3
|
from common.mediainfo import MediaFile
|
|
5
4
|
from common.utility import ManageTitles
|
|
@@ -10,12 +9,13 @@ hdr_map = {
|
|
|
10
9
|
"DOLBY VISION": "DV",
|
|
11
10
|
"DOLBY VISION HDR": "DV HDR",
|
|
12
11
|
"DOLBY VISION HDR10": "DV HDR10",
|
|
13
|
-
"DOLBY VISION HDR10+": "DV
|
|
12
|
+
"DOLBY VISION HDR10+": "DV HDR10+",
|
|
14
13
|
"HDR10PLUS": "HDR10+",
|
|
15
14
|
"HDRPLUS+": "HDR10+",
|
|
16
15
|
"HDR10+": "HDR10+",
|
|
17
16
|
"HDR10": "HDR10",
|
|
18
17
|
"HDR10 / HDR10": "HDR10",
|
|
18
|
+
"HDR10 / HDR10+": "HDR10+",
|
|
19
19
|
"HDR10 / HDR10 / HDR10+": "HDR10+",
|
|
20
20
|
"SMPTE ST 2086": "HDR10",
|
|
21
21
|
"SMPTE ST 2094": "HDR10+",
|
|
@@ -86,7 +86,6 @@ class SearchTags(object):
|
|
|
86
86
|
tag_esc = re.escape(tag)
|
|
87
87
|
return tag_esc
|
|
88
88
|
|
|
89
|
-
|
|
90
89
|
@staticmethod
|
|
91
90
|
def normalize_video_encoder(tag: str) -> str:
|
|
92
91
|
tag_esc = re.escape(tag)
|
|
@@ -101,6 +100,7 @@ class SearchTags(object):
|
|
|
101
100
|
build.append(' '.join(v))
|
|
102
101
|
else:
|
|
103
102
|
build.append(str(v))
|
|
103
|
+
|
|
104
104
|
refactored = ' '.join(build) + self.releaser_sign
|
|
105
105
|
return refactored
|
|
106
106
|
|
|
@@ -175,22 +175,7 @@ class SearchTags(object):
|
|
|
175
175
|
if not self.releaser_sign:
|
|
176
176
|
# If releaser_sign is not defined in the configuration file,
|
|
177
177
|
# try to detect a known sign from SIGN_LIST
|
|
178
|
-
|
|
179
|
-
sorted((re.escape(k) for k in self.SIGNS_LIST.keys()), key=len, reverse=True)
|
|
180
|
-
)
|
|
181
|
-
self.filename = os.path.splitext(self.filename)[0]
|
|
182
|
-
regex = re.compile(
|
|
183
|
-
r'(?:^|[\s._-])(' + pattern + r')(?=$|[\s._-]*$)',
|
|
184
|
-
re.IGNORECASE
|
|
185
|
-
)
|
|
186
|
-
matches = regex.findall(self.filename)
|
|
187
|
-
if matches:
|
|
188
|
-
self.releaser_sign = f"-{matches[0]}" if matches[0].upper() in self.SIGNS_LIST else ""
|
|
189
|
-
else:
|
|
190
|
-
self.releaser_sign = ""
|
|
191
|
-
else:
|
|
192
|
-
# Add releaser_sign from the configuration file
|
|
193
|
-
self.releaser_sign = f"-{self.releaser_sign}"
|
|
178
|
+
self.releaser_sign = self.detect_releaser(self.filename, self.SIGNS_LIST)
|
|
194
179
|
|
|
195
180
|
# /// Order according to tag position
|
|
196
181
|
tags_dict = {
|
|
@@ -314,3 +299,34 @@ class SearchTags(object):
|
|
|
314
299
|
result['resolution'] = f'{video_width}x{video_height}'
|
|
315
300
|
|
|
316
301
|
return result
|
|
302
|
+
|
|
303
|
+
@staticmethod
|
|
304
|
+
def detect_releaser(name: str, signs_list: dict) -> str:
|
|
305
|
+
"""
|
|
306
|
+
normalize both signs_list and base_name
|
|
307
|
+
find the start/end position of the matched sign
|
|
308
|
+
extract the substring from the original base_name
|
|
309
|
+
"""
|
|
310
|
+
# Strip the title
|
|
311
|
+
base_name = str(name).strip()
|
|
312
|
+
|
|
313
|
+
# Remove '.'; '_'; '-' chars from the filename and dictionary signs_list
|
|
314
|
+
tokens = re.split(r"[._-]+", base_name)
|
|
315
|
+
|
|
316
|
+
base_name_normalized = ' '.join(tokens)
|
|
317
|
+
|
|
318
|
+
# normalize list of signs ( because it is user editable)
|
|
319
|
+
tokens_signs_list = [re.sub(r"[._-]+", " ", str(sign)) for sign in signs_list]
|
|
320
|
+
|
|
321
|
+
# sort dictionary from the longest to shortest to avoid partial result (es. 'crew' instead di 'mircrew')
|
|
322
|
+
tokens_signs_list_sorted = sorted(tokens_signs_list, key=len, reverse=True)
|
|
323
|
+
|
|
324
|
+
# Search for signs in the base_name_normalized
|
|
325
|
+
for token in tokens_signs_list_sorted:
|
|
326
|
+
pattern = r"\b" + re.escape(token) + r"\b"
|
|
327
|
+
match = re.search(pattern, base_name_normalized, re.IGNORECASE)
|
|
328
|
+
if match:
|
|
329
|
+
# Capture any characters from the start to the end of base_name
|
|
330
|
+
# normalized_base_name loses chars like '-','.' or '-'
|
|
331
|
+
return f"-{base_name[match.start(): match.end()]}"
|
|
332
|
+
return ""
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
SIGNS_LIST = {
|
|
4
|
+
"21APRILE": "releaser",
|
|
5
|
+
"ACCID": "releaser",
|
|
6
|
+
"ADWEB": "releaser",
|
|
7
|
+
"ALE88SERMETE": "releaser",
|
|
8
|
+
"APEX": "releaser",
|
|
9
|
+
"ARMOR": "releaser",
|
|
10
|
+
"ARRANCAR": "releaser",
|
|
11
|
+
"ARTEMIX MIRCREW": "releaser",
|
|
12
|
+
"ASPIDE MIRCREW": "releaser",
|
|
13
|
+
"ASTOR": "releaser",
|
|
14
|
+
"AV1MERR": "releaser",
|
|
15
|
+
"BADGUY": "releaser",
|
|
16
|
+
"BALTHA": "releaser",
|
|
17
|
+
"BAMAX71": "releaser",
|
|
18
|
+
"BD": "releaser",
|
|
19
|
+
"BEN THE MEN": "releaser",
|
|
20
|
+
"BITSHIFT": "releaser",
|
|
21
|
+
"BLACKBIT": "releaser",
|
|
22
|
+
"BL4CK-B4RT-MIRCREW": "releaser",
|
|
23
|
+
"BLUWORLD": "releaser",
|
|
24
|
+
"BOBDOBBS": "releaser",
|
|
25
|
+
"BULLITT": "releaser",
|
|
26
|
+
"BUMBLEBEE1982": "releaser",
|
|
27
|
+
"BUREK": "releaser",
|
|
28
|
+
"C0P": "releaser",
|
|
29
|
+
"CAPPYO": "releaser",
|
|
30
|
+
"CAVALLONZI": "releaser",
|
|
31
|
+
"CB01HD": "releaser",
|
|
32
|
+
"CHD": "releaser",
|
|
33
|
+
"CHDWEB": "releaser",
|
|
34
|
+
"CIAME": "releaser",
|
|
35
|
+
"CLOCLONE": "releaser",
|
|
36
|
+
"CODEX": "releaser",
|
|
37
|
+
"COMIX21": "releaser",
|
|
38
|
+
"CREW": "releaser",
|
|
39
|
+
"CSS": "releaser",
|
|
40
|
+
"CSS2": "releaser",
|
|
41
|
+
"CSS7896": "releaser",
|
|
42
|
+
"CYBER": "releaser",
|
|
43
|
+
"D3VELOPER": "releaser",
|
|
44
|
+
"DAICHISO": "releaser",
|
|
45
|
+
"DANGUARD": "releaser",
|
|
46
|
+
"DARKCOMPANY": "releaser",
|
|
47
|
+
"DARKPARANOR": "releaser",
|
|
48
|
+
"DAYMON64": "releaser",
|
|
49
|
+
"DB": "releaser",
|
|
50
|
+
"DDN": "releaser",
|
|
51
|
+
"DDNCREW": "releaser",
|
|
52
|
+
"DEDO1911": "releaser",
|
|
53
|
+
"DEMN": "releaser",
|
|
54
|
+
"DMAN": "releaser",
|
|
55
|
+
"DOCH74": "releaser",
|
|
56
|
+
"DR4GON": "releaser",
|
|
57
|
+
"DRIIP": "releaser",
|
|
58
|
+
"DST": "releaser",
|
|
59
|
+
"DYNUX": "releaser",
|
|
60
|
+
"EA": "releaser",
|
|
61
|
+
"EGL": "releaser",
|
|
62
|
+
"ELGHOTO": "releaser",
|
|
63
|
+
"ELISA": "releaser",
|
|
64
|
+
"EMPRESS": "releaser",
|
|
65
|
+
"ENCRYPTED": "releaser",
|
|
66
|
+
"EPSILON": "releaser",
|
|
67
|
+
"EVN": "releaser",
|
|
68
|
+
"EZTV": "releaser",
|
|
69
|
+
"FAINO1310": "releaser",
|
|
70
|
+
"FEDECAS89": "releaser",
|
|
71
|
+
"FGT": "releaser",
|
|
72
|
+
"FHC": "releaser",
|
|
73
|
+
"FLT": "releaser",
|
|
74
|
+
"FLORIN993": "releaser",
|
|
75
|
+
"FLUX": "releaser",
|
|
76
|
+
"FOOD": "releaser",
|
|
77
|
+
"FRAMESTOR": "releaser",
|
|
78
|
+
"FREZEEN": "releaser",
|
|
79
|
+
"FW": "releaser",
|
|
80
|
+
"FUSION": "releaser",
|
|
81
|
+
"FXE": "releaser",
|
|
82
|
+
"G66": "releaser",
|
|
83
|
+
"GABIACAS": "releaser",
|
|
84
|
+
"GATTOPOLLO": "releaser",
|
|
85
|
+
"GFM": "releaser",
|
|
86
|
+
"GIUSEPPETNT": "releaser",
|
|
87
|
+
"GOLDENTORRENT": "releaser",
|
|
88
|
+
"GRYM": "releaser",
|
|
89
|
+
"HAPPITEAM-YNK": "releaser",
|
|
90
|
+
"HASHDEV": "releaser",
|
|
91
|
+
"HDCHINA": "releaser",
|
|
92
|
+
"HDI": "releaser",
|
|
93
|
+
"HHNN": "releaser",
|
|
94
|
+
"HHWEB": "releaser",
|
|
95
|
+
"HENRYDIRTY": "releaser",
|
|
96
|
+
"HMR": "releaser",
|
|
97
|
+
"HONE": "releaser",
|
|
98
|
+
"HYRULE": "releaser",
|
|
99
|
+
"I3AM": "releaser",
|
|
100
|
+
"IBANEZ89": "releaser",
|
|
101
|
+
"IDIB": "releaser",
|
|
102
|
+
"IDN": "releaser",
|
|
103
|
+
"IDN-CREW": "releaser",
|
|
104
|
+
"IGS": "releaser",
|
|
105
|
+
"ILGANZO": "releaser",
|
|
106
|
+
"ILPADRINO": "releaser",
|
|
107
|
+
"ILSAGGIO": "releaser",
|
|
108
|
+
"ILSOMMO": "releaser",
|
|
109
|
+
"IPDR01": "releaser",
|
|
110
|
+
"ITT": "releaser",
|
|
111
|
+
"JEDDAK-MIRCREW": "releaser",
|
|
112
|
+
"JOHNSEED": "releaser",
|
|
113
|
+
"KINGOFROME": "releaser",
|
|
114
|
+
"KIN": "releaser",
|
|
115
|
+
"KISSY": "releaser",
|
|
116
|
+
"KITSUNE": "releaser",
|
|
117
|
+
"KJM": "releaser",
|
|
118
|
+
"KOGI": "releaser",
|
|
119
|
+
"KONTRAST": "releaser",
|
|
120
|
+
"KOVALSKI": "releaser",
|
|
121
|
+
"KRALIMARKO": "releaser",
|
|
122
|
+
"KRIKK": "releaser",
|
|
123
|
+
"KUCHU": "releaser",
|
|
124
|
+
"LAZY-SUBS": "releaser",
|
|
125
|
+
"LATENEVER": "releaser",
|
|
126
|
+
"LDI": "releaser",
|
|
127
|
+
"LEAGUENF": "releaser",
|
|
128
|
+
"LELE753": "releaser",
|
|
129
|
+
"LEPORE": "releaser",
|
|
130
|
+
"LFI": "releaser",
|
|
131
|
+
"LICDOM": "releaser",
|
|
132
|
+
"LOZIO-MIRCREW": "releaser",
|
|
133
|
+
"LULLOZZO": "releaser",
|
|
134
|
+
"LZ": "releaser",
|
|
135
|
+
"LZ59": "releaser",
|
|
136
|
+
"MADHEX": "releaser",
|
|
137
|
+
"MADSKY": "releaser",
|
|
138
|
+
"MADTIA": "releaser",
|
|
139
|
+
"MAX": "releaser",
|
|
140
|
+
"MAX2014": "releaser",
|
|
141
|
+
"ME7ALH": "releaser",
|
|
142
|
+
"MIK0YAN": "releaser",
|
|
143
|
+
"MIRCREW": "releaser",
|
|
144
|
+
"MISTERNED": "releaser",
|
|
145
|
+
"MORPHEUS": "releaser",
|
|
146
|
+
"MRBLONDE": "releaser",
|
|
147
|
+
"MRROBOT": "releaser",
|
|
148
|
+
"MUETTO": "releaser",
|
|
149
|
+
"MUWATTALI": "releaser",
|
|
150
|
+
"NAHOM": "releaser",
|
|
151
|
+
"NARSETE": "releaser",
|
|
152
|
+
"NEOSTARK": "releaser",
|
|
153
|
+
"NEUROSIS": "releaser",
|
|
154
|
+
"NIMOUEH": "releaser",
|
|
155
|
+
"NOGROUP": "releaser",
|
|
156
|
+
"NOMADS": "releaser",
|
|
157
|
+
"NOVARIP": "releaser",
|
|
158
|
+
"NTB": "releaser",
|
|
159
|
+
"NTROPIC": "releaser",
|
|
160
|
+
"ODS": "releaser",
|
|
161
|
+
"ODINO": "releaser",
|
|
162
|
+
"ONGOIA": "releaser",
|
|
163
|
+
"PASO77": "releaser",
|
|
164
|
+
"PEPPE": "releaser",
|
|
165
|
+
"PENNYWISE": "releaser",
|
|
166
|
+
"PETE321": "releaser",
|
|
167
|
+
"PICOPOCO": "releaser",
|
|
168
|
+
"PING": "releaser",
|
|
169
|
+
"PINKER": "releaser",
|
|
170
|
+
"PIR8": "releaser",
|
|
171
|
+
"PLAYWEB": "releaser",
|
|
172
|
+
"PLUSAM": "releaser",
|
|
173
|
+
"POKE": "releaser",
|
|
174
|
+
"PRIME": "releaser",
|
|
175
|
+
"PROMETHEUS": "releaser",
|
|
176
|
+
"PROSCIUTTO": "releaser",
|
|
177
|
+
"RADESE": "releaser",
|
|
178
|
+
"RAPTA": "releaser",
|
|
179
|
+
"RARBG": "releaser",
|
|
180
|
+
"RAWR": "releaser",
|
|
181
|
+
"REALDMDJ": "releaser",
|
|
182
|
+
"RIDDICKK": "releaser",
|
|
183
|
+
"RMTEAM": "releaser",
|
|
184
|
+
"ROMEO": "releaser",
|
|
185
|
+
"RUNE": "releaser",
|
|
186
|
+
"RYUKXX": "releaser",
|
|
187
|
+
"S-K": "releaser",
|
|
188
|
+
"SAW": "releaser",
|
|
189
|
+
"SANDWORM": "releaser",
|
|
190
|
+
"SBR": "releaser",
|
|
191
|
+
"SEEDBOX": "releaser",
|
|
192
|
+
"SEEDBOX2": "releaser",
|
|
193
|
+
"SERCIUS": "releaser",
|
|
194
|
+
"SID": "releaser",
|
|
195
|
+
"SIMO01": "releaser",
|
|
196
|
+
"SIXTEEN8664": "releaser",
|
|
197
|
+
"SK4TTO": "releaser",
|
|
198
|
+
"SMURF": "releaser",
|
|
199
|
+
"SMURFADMIN": "releaser",
|
|
200
|
+
"SP33DY94-MIRCREW": "releaser",
|
|
201
|
+
"SPWEB": "releaser",
|
|
202
|
+
"SPYRO": "releaser",
|
|
203
|
+
"SPYRO1989": "releaser",
|
|
204
|
+
"STEFRA": "releaser",
|
|
205
|
+
"STEVEJOHNNEE": "releaser",
|
|
206
|
+
"STINGUAJT": "releaser",
|
|
207
|
+
"TAHTAKALECI": "releaser",
|
|
208
|
+
"TASKO": "releaser",
|
|
209
|
+
"TELESTO": "releaser",
|
|
210
|
+
"TEPES": "releaser",
|
|
211
|
+
"TERMINAL": "releaser",
|
|
212
|
+
"THEBLACKKING": "releaser",
|
|
213
|
+
"THEEMOJICREW": "releaser",
|
|
214
|
+
"THUDARA": "releaser",
|
|
215
|
+
"TIGER": "releaser",
|
|
216
|
+
"TIGRE67": "releaser",
|
|
217
|
+
"TBR": "releaser",
|
|
218
|
+
"T4P3": "releaser",
|
|
219
|
+
"TORRENTER10": "releaser",
|
|
220
|
+
"TOTAL_SHARE88": "releaser",
|
|
221
|
+
"TREE7458": "releaser",
|
|
222
|
+
"TRITON": "releaser",
|
|
223
|
+
"TRL": "releaser",
|
|
224
|
+
"UBI": "releaser",
|
|
225
|
+
"UH": "releaser",
|
|
226
|
+
"V3SP4EV3R": "releaser",
|
|
227
|
+
"VARYG": "releaser",
|
|
228
|
+
"VIOLENT96": "releaser",
|
|
229
|
+
"VITELLO": "releaser",
|
|
230
|
+
"VOLVIC": "releaser",
|
|
231
|
+
"WAR": "releaser",
|
|
232
|
+
"WATCHABLE": "releaser",
|
|
233
|
+
"WELP": "releaser",
|
|
234
|
+
"WGZ": "releaser",
|
|
235
|
+
"WHEELIE": "releaser",
|
|
236
|
+
"WHITERHINO": "releaser",
|
|
237
|
+
"WIGGAZ": "releaser",
|
|
238
|
+
"WIZARDS2K": "releaser",
|
|
239
|
+
"WRM": "releaser",
|
|
240
|
+
"WRS": "releaser",
|
|
241
|
+
"XFM": "releaser",
|
|
242
|
+
"XVID": "releaser",
|
|
243
|
+
"YIFY": "releaser",
|
|
244
|
+
"YTS": "releaser",
|
|
245
|
+
"YTS.BZ": "releaser",
|
|
246
|
+
"ZIORIP": "releaser",
|
|
247
|
+
"ZK": "releaser",
|
|
248
|
+
"ZODD": "releaser",
|
|
249
|
+
"ZOOEYDES": "releaser",
|
|
250
|
+
"ZTR": "releaser",
|
|
251
|
+
"£ƐGƐND63": "releaser"
|
|
252
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
TAGS_LIST = {
|
|
4
|
+
"REMUX": "remux",
|
|
5
|
+
"WEB-DL": "source",
|
|
6
|
+
"WEBDL": "source",
|
|
7
|
+
"WEB-DLRIP": "source",
|
|
8
|
+
"WEBDLRIP": "source",
|
|
9
|
+
"WEB-DLMUX": "source",
|
|
10
|
+
"WEBDLMUX": "source",
|
|
11
|
+
"WEBMUX": "source",
|
|
12
|
+
"WEBRIP": "source",
|
|
13
|
+
"BD-UNTOUCHED": "source",
|
|
14
|
+
"UNTOUCHED": "source",
|
|
15
|
+
|
|
16
|
+
"TS": "source",
|
|
17
|
+
"CAM": "source",
|
|
18
|
+
"HDTS": "source",
|
|
19
|
+
"MD": "source",
|
|
20
|
+
"UHDRIP": "source",
|
|
21
|
+
"BLURAY": "source",
|
|
22
|
+
"BRRIP": "source",
|
|
23
|
+
"BDRIP": "source",
|
|
24
|
+
"FHDRIP": "source",
|
|
25
|
+
"PDTV": "source",
|
|
26
|
+
"SATRIP": "source",
|
|
27
|
+
"DVBRIP": "source",
|
|
28
|
+
"DVB-S": "source",
|
|
29
|
+
"DTTRIP": "source",
|
|
30
|
+
"WP": "source",
|
|
31
|
+
"DVDSCR": "source",
|
|
32
|
+
"TVRIP": "source",
|
|
33
|
+
"VHSRIP": "source",
|
|
34
|
+
"DVDRIP": "source",
|
|
35
|
+
"HDTV": "source",
|
|
36
|
+
"DVD5": "source",
|
|
37
|
+
"DVD9": "source",
|
|
38
|
+
"VU": "source",
|
|
39
|
+
|
|
40
|
+
"ATVP": "platform",
|
|
41
|
+
"AMZN": "platform",
|
|
42
|
+
"AMC": "platform",
|
|
43
|
+
"CN": "platform",
|
|
44
|
+
"CR": "platform",
|
|
45
|
+
"DCU": "platform",
|
|
46
|
+
"DISC": "platform",
|
|
47
|
+
"DSCP": "platform",
|
|
48
|
+
"DSNY": "platform",
|
|
49
|
+
"DSNP": "platform",
|
|
50
|
+
"DPLY": "platform",
|
|
51
|
+
"ESPN": "platform",
|
|
52
|
+
"FOOD": "platform",
|
|
53
|
+
"FOX": "platform",
|
|
54
|
+
"PLAY": "platform",
|
|
55
|
+
"HBO": "platform",
|
|
56
|
+
"HMAX": "platform",
|
|
57
|
+
"HGTV": "platform",
|
|
58
|
+
"HIST": "platform",
|
|
59
|
+
"HULU": "platform",
|
|
60
|
+
"MTOD": "platform",
|
|
61
|
+
"NATG": "platform",
|
|
62
|
+
"NF": "platform",
|
|
63
|
+
"NICK": "platform",
|
|
64
|
+
"NOW": "platform",
|
|
65
|
+
"PMNT": "platform",
|
|
66
|
+
"PMTP": "platform",
|
|
67
|
+
"PCOK": "platform",
|
|
68
|
+
"RKTN": "platform",
|
|
69
|
+
"SHO": "platform",
|
|
70
|
+
"SKST": "platform",
|
|
71
|
+
"STAN": "platform",
|
|
72
|
+
"STRP": "platform",
|
|
73
|
+
"STZ": "platform",
|
|
74
|
+
"TIMV": "platform",
|
|
75
|
+
|
|
76
|
+
"SPECIAL": "version",
|
|
77
|
+
"REPACK": "version",
|
|
78
|
+
"EXTENDED": "version",
|
|
79
|
+
"EDITION": "version",
|
|
80
|
+
"DIRECTOR'S": "version",
|
|
81
|
+
"CUT": "version",
|
|
82
|
+
|
|
83
|
+
"SUBBED": "version",
|
|
84
|
+
"MUX": "version",
|
|
85
|
+
"REMASTERED": "version",
|
|
86
|
+
"READNFO": "version",
|
|
87
|
+
"UNRATED": "version",
|
|
88
|
+
"UNCUT": "version",
|
|
89
|
+
"LIMITED": "version",
|
|
90
|
+
"ANNIVERSARY": "version",
|
|
91
|
+
"4k RESTORATION": "version",
|
|
92
|
+
"IMAX": "version",
|
|
93
|
+
"OPEN MATTE": "version",
|
|
94
|
+
"2IN1": "version",
|
|
95
|
+
|
|
96
|
+
"STV": "version",
|
|
97
|
+
"RECODE": "version",
|
|
98
|
+
"INTERNAL": "version",
|
|
99
|
+
"PROPER": "version",
|
|
100
|
+
"DUAL": "version",
|
|
101
|
+
"COMPLETE": "version",
|
|
102
|
+
"COMPLETA": "version",
|
|
103
|
+
|
|
104
|
+
"X264": "video_encoder",
|
|
105
|
+
"X265": "video_encoder",
|
|
106
|
+
}
|
|
@@ -20,43 +20,61 @@ class ManageTitles:
|
|
|
20
20
|
"\\", "&", "*", "$", "%", "#", "@", "_", "+", "|"
|
|
21
21
|
]
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
iso_3166_alpha3 = [
|
|
24
|
+
"ENG", "USA", "GBR", "ITA", "DEU", "FRA", "ESP",
|
|
25
|
+
"BRA", "JPN", "CHN", "RUS", "PER", "NOR",
|
|
26
|
+
"SWE", "DAN", "POL", "HIN", "TUR", "ARA", "KOR", "VIE", "IND"
|
|
27
|
+
]
|
|
25
28
|
|
|
26
|
-
# TAG Audio in title
|
|
27
29
|
iso_3166_alpha2_to_alpha3 = {
|
|
28
|
-
"EN": "ENG",
|
|
29
|
-
"US": "USA",
|
|
30
|
+
"EN": "ENG", "US": "USA", "GB": "GBR", "EN-US": "ENG", "EN-GB": "ENG", "EN-AU": "ENG",
|
|
30
31
|
"IT": "ITA",
|
|
31
32
|
"DE": "DEU",
|
|
32
33
|
"FR": "FRA",
|
|
33
|
-
"
|
|
34
|
-
"ES": "ESP",
|
|
35
|
-
"JP": "JPN",
|
|
34
|
+
"ES": "ESP", "ES-ES": "ESP", "ES-MX": "ESP",
|
|
36
35
|
"BR": "BRA",
|
|
37
|
-
"
|
|
36
|
+
"JP": "JPN",
|
|
38
37
|
"CN": "CHN",
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
38
|
+
"RU": "RUS",
|
|
39
|
+
"FA": "PER", "IR": "PER",
|
|
40
|
+
"NO": "NOR",
|
|
41
|
+
"SE": "SWE",
|
|
42
|
+
"DK": "DAN",
|
|
43
|
+
"PL": "POL",
|
|
44
|
+
"HI": "HIN",
|
|
45
|
+
"TR": "TUR",
|
|
46
|
+
"AR": "ARA",
|
|
47
|
+
"KO": "KOR",
|
|
48
|
+
"VI": "VIE",
|
|
49
|
+
"ID": "IND"
|
|
44
50
|
}
|
|
45
51
|
|
|
46
|
-
# From mediainfo
|
|
47
52
|
long_name = {
|
|
48
53
|
"ENGLISH": "ENG",
|
|
54
|
+
"AMERICAN": "USA",
|
|
55
|
+
"BRITISH": "GBR",
|
|
49
56
|
"ITALIAN": "ITA",
|
|
50
57
|
"GERMAN": "DEU",
|
|
51
58
|
"FRENCH": "FRA",
|
|
52
59
|
"SPANISH": "ESP",
|
|
53
|
-
"JAPANESE": "JPN",
|
|
54
60
|
"BRAZILIAN": "BRA",
|
|
55
|
-
"
|
|
61
|
+
"JAPANESE": "JPN",
|
|
56
62
|
"CHINESE": "CHN",
|
|
57
|
-
"
|
|
58
|
-
"
|
|
63
|
+
"RUSSIAN": "RUS",
|
|
64
|
+
"PERSIAN": "PER",
|
|
65
|
+
"FARSI": "PER",
|
|
66
|
+
"NORWEGIAN": "NOR",
|
|
67
|
+
"SWEDISH": "SWE",
|
|
68
|
+
"DANISH": "DAN",
|
|
69
|
+
"POLISH": "POL",
|
|
70
|
+
"HINDI": "HIN",
|
|
71
|
+
"TURKISH": "TUR",
|
|
72
|
+
"ARABIC": "ARA",
|
|
73
|
+
"KOREAN": "KOR",
|
|
74
|
+
"VIETNAMESE": "VIE",
|
|
75
|
+
"INDONESIAN": "IND"
|
|
59
76
|
}
|
|
77
|
+
|
|
60
78
|
@staticmethod
|
|
61
79
|
def convert_iso(code) -> list | str | None:
|
|
62
80
|
""" Convert iso 2 to 3 """
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/models/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/models/movie/details.py
RENAMED
|
File without changes
|
{unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/models/movie/movie.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unit3dup-0.9.17 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/models/tvshow/tvshow.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|