Unit3Dup 0.9.16__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.16 → unit3dup-0.9.18}/PKG-INFO +1 -1
- {unit3dup-0.9.16 → unit3dup-0.9.18}/Unit3Dup.egg-info/PKG-INFO +1 -1
- {unit3dup-0.9.16 → unit3dup-0.9.18}/Unit3Dup.egg-info/SOURCES.txt +2 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/settings.py +8 -255
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/tags.py +37 -23
- unit3dup-0.9.18/common/trackers/releasers.py +252 -0
- unit3dup-0.9.18/common/trackers/tags_list.py +106 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/utility.py +37 -19
- {unit3dup-0.9.16 → unit3dup-0.9.18}/pyproject.toml +1 -1
- {unit3dup-0.9.16 → unit3dup-0.9.18}/LICENSE +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/README.rst +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/Unit3Dup.egg-info/dependency_links.txt +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/Unit3Dup.egg-info/entry_points.txt +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/Unit3Dup.egg-info/requires.txt +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/Unit3Dup.egg-info/top_level.txt +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/__init__.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/bdinfo_string.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/bittorrent.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/command.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/constants.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/database.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/__init__.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/ftpx/__init__.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/ftpx/client.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/ftpx/core/__init__.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/ftpx/core/ftpx_service.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/ftpx/core/ftpx_session.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/ftpx/core/menu.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/ftpx/core/models/__init__.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/ftpx/core/models/list.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/igdb/__init__.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/igdb/client.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/igdb/core/__init__.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/igdb/core/api.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/igdb/core/models/__init__.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/igdb/core/models/search.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/igdb/core/platformid.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/igdb/core/tags.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/imageHost.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/mediaresult.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/sessions/__init__.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/sessions/agents.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/sessions/exceptions.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/sessions/session.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/theMovieDB/__init__.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/__init__.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/api.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/keywords.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/models/__init__.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/models/movie/__init__.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/models/movie/alternative_titles.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/models/movie/details.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/models/movie/movie.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/models/movie/nowplaying.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/models/movie/release_info.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/models/tvshow/__init__.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/models/tvshow/alternative.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/models/tvshow/details.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/models/tvshow/on_the_air.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/models/tvshow/translations.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/models/tvshow/tvshow.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/videos.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/trailers/__init__.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/trailers/api.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/trailers/response.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/external_services/tvdb.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/extractor.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/frames.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/mediainfo.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/mediainfo_string.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/title.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/torrent_clients.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/trackers/__init__.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/trackers/data.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/trackers/itt.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/trackers/sis.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/common/trackers/trackers.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/requirements.txt +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/setup.cfg +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/unit3dup/__init__.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/unit3dup/__main__.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/unit3dup/automode.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/unit3dup/bot.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/unit3dup/duplicate.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/unit3dup/exceptions.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/unit3dup/media.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/unit3dup/media_manager/ContentManager.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/unit3dup/media_manager/DocuManager.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/unit3dup/media_manager/GameManager.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/unit3dup/media_manager/MediaInfoManager.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/unit3dup/media_manager/SeedManager.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/unit3dup/media_manager/TorrentManager.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/unit3dup/media_manager/VideoManager.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/unit3dup/media_manager/__init__.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/unit3dup/media_manager/common.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/unit3dup/pvtDocu.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/unit3dup/pvtTorrent.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/unit3dup/pvtTracker.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/unit3dup/pvtVideo.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/unit3dup/torrent.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/unit3dup/upload.py +0 -0
- {unit3dup-0.9.16 → unit3dup-0.9.18}/view/__init__.py +0 -0
- {unit3dup-0.9.16 → 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,268 +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
|
-
"WEB-DLMUX": "source",
|
|
533
|
-
"WEBMUX": "source",
|
|
534
|
-
"WEBRIP": "source",
|
|
535
|
-
"BD-UNTOUCHED": "source",
|
|
536
|
-
"TS": "source",
|
|
537
|
-
"CAM": "source",
|
|
538
|
-
"HDTS": "source",
|
|
539
|
-
"MD": "source",
|
|
540
|
-
"UHDRIP": "source",
|
|
541
|
-
"BLURAY": "source",
|
|
542
|
-
"BRRIP": "source",
|
|
543
|
-
"BDRIP": "source",
|
|
544
|
-
"FHDRIP": "source",
|
|
545
|
-
"PDTV": "source",
|
|
546
|
-
"SATRIP": "source",
|
|
547
|
-
"DVBRIP": "source",
|
|
548
|
-
"DVB-S": "source",
|
|
549
|
-
"DTTRIP": "source",
|
|
550
|
-
"WP": "source",
|
|
551
|
-
"DVDSCR": "source",
|
|
552
|
-
"TVRIP": "source",
|
|
553
|
-
"VHSRIP": "source",
|
|
554
|
-
"DVDRIP": "source",
|
|
555
|
-
"HDTV": "source",
|
|
556
|
-
"DVD5": "source",
|
|
557
|
-
"DVD9": "source",
|
|
558
|
-
"VU": "source",
|
|
559
|
-
|
|
560
|
-
"ATVP": "platform",
|
|
561
|
-
"AMZN": "platform",
|
|
562
|
-
"AMC": "platform",
|
|
563
|
-
"CN": "platform",
|
|
564
|
-
"CR": "platform",
|
|
565
|
-
"DCU": "platform",
|
|
566
|
-
"DISC": "platform",
|
|
567
|
-
"DSCP": "platform",
|
|
568
|
-
"DSNY": "platform",
|
|
569
|
-
"DSNP": "platform",
|
|
570
|
-
"DPLY": "platform",
|
|
571
|
-
"ESPN": "platform",
|
|
572
|
-
"FOOD": "platform",
|
|
573
|
-
"FOX": "platform",
|
|
574
|
-
"PLAY": "platform",
|
|
575
|
-
"HBO": "platform",
|
|
576
|
-
"HMAX": "platform",
|
|
577
|
-
"HGTV": "platform",
|
|
578
|
-
"HIST": "platform",
|
|
579
|
-
"HULU": "platform",
|
|
580
|
-
"MTOD": "platform",
|
|
581
|
-
"NATG": "platform",
|
|
582
|
-
"NF": "platform",
|
|
583
|
-
"NICK": "platform",
|
|
584
|
-
"NOW": "platform",
|
|
585
|
-
"PMNT": "platform",
|
|
586
|
-
"PMTP": "platform",
|
|
587
|
-
"PCOK": "platform",
|
|
588
|
-
"RKTN": "platform",
|
|
589
|
-
"SHO": "platform",
|
|
590
|
-
"SKST": "platform",
|
|
591
|
-
"STAN": "platform",
|
|
592
|
-
"STRP": "platform",
|
|
593
|
-
"STZ": "platform",
|
|
594
|
-
"TIMV": "platform",
|
|
595
|
-
|
|
596
|
-
"REPACK": "version",
|
|
597
|
-
"EXTENDED": "version",
|
|
598
|
-
"EXTENDED EDITION": "version",
|
|
599
|
-
"EXTENDED CUT": "version",
|
|
600
|
-
"DIRECTOR'S CUT": "version",
|
|
601
|
-
"SUBBED": "version",
|
|
602
|
-
"MUX": "version",
|
|
603
|
-
"REMASTERED": "version",
|
|
604
|
-
"READNFO": "version",
|
|
605
|
-
"UNRATED": "version",
|
|
606
|
-
"UNCUT": "version",
|
|
607
|
-
"LIMITED": "version",
|
|
608
|
-
"ANNIVERSARY": "version",
|
|
609
|
-
"SPECIAL EDITION": "version",
|
|
610
|
-
"4k RESTORATION": "version",
|
|
611
|
-
"IMAX": "version",
|
|
612
|
-
"OPEN MATTE": "version",
|
|
613
|
-
"2IN1": "version",
|
|
614
|
-
|
|
615
|
-
"STV": "version",
|
|
616
|
-
"RECODE": "version",
|
|
617
|
-
"INTERNAL": "version",
|
|
618
|
-
"PROPER": "version",
|
|
619
|
-
"DUAL": "version",
|
|
620
|
-
"UNTOUCHED": "version",
|
|
621
|
-
"COMPLETE": "version",
|
|
622
|
-
"COMPLETA": "version",
|
|
623
|
-
|
|
624
|
-
"X264": "video_encoder",
|
|
625
|
-
"X265": "video_encoder",
|
|
626
|
-
}
|
|
627
|
-
|
|
628
532
|
path.parent.mkdir(parents=True, exist_ok=True)
|
|
629
533
|
with open(path, "w", encoding="utf-8") as tags_list_file:
|
|
630
|
-
json.dump(
|
|
534
|
+
json.dump(TAGS_LIST, tags_list_file, ensure_ascii=False, indent=4)
|
|
631
535
|
|
|
632
536
|
@staticmethod
|
|
633
537
|
def create_sign_list_file(path: Path):
|
|
634
538
|
"""
|
|
635
539
|
Creates a tags list file
|
|
636
540
|
"""
|
|
637
|
-
TAG_TYPES = {
|
|
638
|
-
"21APRILE": "releaser",
|
|
639
|
-
"ALE88SERMETE": "releaser",
|
|
640
|
-
"ARRANCAR": "releaser",
|
|
641
|
-
"ASTOR": "releaser",
|
|
642
|
-
"AV1MERR": "releaser",
|
|
643
|
-
"BADGUY": "releaser",
|
|
644
|
-
"BITSHIFT": "releaser",
|
|
645
|
-
"BLACKBIT": "releaser",
|
|
646
|
-
"BUMBLEBEE1982": "releaser",
|
|
647
|
-
"CAPPYO": "releaser",
|
|
648
|
-
"CAVALLONZI": "releaser",
|
|
649
|
-
"CB01HD": "releaser",
|
|
650
|
-
"CHD": "releaser",
|
|
651
|
-
"CHDWEB": "releaser",
|
|
652
|
-
"CIAME": "releaser",
|
|
653
|
-
"CLOCLONE": "releaser",
|
|
654
|
-
"COMIX21": "releaser",
|
|
655
|
-
"CREW": "releaser",
|
|
656
|
-
"CSS": "releaser",
|
|
657
|
-
"CSS2": "releaser",
|
|
658
|
-
"CSS7896": "releaser",
|
|
659
|
-
"CYBER": "releaser",
|
|
660
|
-
"D3VELOPER": "releaser",
|
|
661
|
-
"DAICHISO": "releaser",
|
|
662
|
-
"DANGUARD": "releaser",
|
|
663
|
-
"DARKCOMPANY": "releaser",
|
|
664
|
-
"DARKPARANOR": "releaser",
|
|
665
|
-
"DAYMON64": "releaser",
|
|
666
|
-
"DDN": "releaser",
|
|
667
|
-
"DEDO1911": "releaser",
|
|
668
|
-
"DEMN": "releaser",
|
|
669
|
-
"DMAN": "releaser",
|
|
670
|
-
"DOCH74": "releaser",
|
|
671
|
-
"DRIIP": "releaser",
|
|
672
|
-
"DYNUX": "releaser",
|
|
673
|
-
"ELGHOTO": "releaser",
|
|
674
|
-
"ENCRYPTED": "releaser",
|
|
675
|
-
"EVN": "releaser",
|
|
676
|
-
"EZTV": "releaser",
|
|
677
|
-
"FAINO1310": "releaser",
|
|
678
|
-
"FEDECAS89": "releaser",
|
|
679
|
-
"FGT": "releaser",
|
|
680
|
-
"FHC": "releaser",
|
|
681
|
-
"FLORIN993": "releaser",
|
|
682
|
-
"FLUX": "releaser",
|
|
683
|
-
"FREZEEN": "releaser",
|
|
684
|
-
"FUSION": "releaser",
|
|
685
|
-
"G66": "releaser",
|
|
686
|
-
"GABIACAS": "releaser",
|
|
687
|
-
"GIUSEPPETNT": "releaser",
|
|
688
|
-
"GOLDENTORRENT": "releaser",
|
|
689
|
-
"GRYM": "releaser",
|
|
690
|
-
"HAPPITEAM-YNK": "releaser",
|
|
691
|
-
"HASHDEV": "releaser",
|
|
692
|
-
"HDCHINA": "releaser",
|
|
693
|
-
"HENRYDIRTY": "releaser",
|
|
694
|
-
"HONE": "releaser",
|
|
695
|
-
"HHNN": "releaser",
|
|
696
|
-
"HYRULE": "releaser",
|
|
697
|
-
"I3AM": "releaser",
|
|
698
|
-
"IBANEZ89": "releaser",
|
|
699
|
-
"IDIB": "releaser",
|
|
700
|
-
"IDN": "releaser",
|
|
701
|
-
"ILGANZO": "releaser",
|
|
702
|
-
"ILPADRINO": "releaser",
|
|
703
|
-
"ILSAGGIO": "releaser",
|
|
704
|
-
"ILSOMMO": "releaser",
|
|
705
|
-
"IPDR01": "releaser",
|
|
706
|
-
"ITT": "releaser",
|
|
707
|
-
"JOHNSEED": "releaser",
|
|
708
|
-
"KINGOFROME": "releaser",
|
|
709
|
-
"KRIKK": "releaser",
|
|
710
|
-
"LAZY-SUBS": "releaser",
|
|
711
|
-
"LEPORE": "releaser",
|
|
712
|
-
"LFI": "releaser",
|
|
713
|
-
"LULLOZZO": "releaser",
|
|
714
|
-
"MATT3O": "releaser",
|
|
715
|
-
"MATT_BROWN4": "releaser",
|
|
716
|
-
"MAX2014": "releaser",
|
|
717
|
-
"MIRCREW": "releaser",
|
|
718
|
-
"MISTERNED": "releaser",
|
|
719
|
-
"MRBLONDE": "releaser",
|
|
720
|
-
"MRROBOT": "releaser",
|
|
721
|
-
"MUETTO": "releaser",
|
|
722
|
-
"MUWATTALI": "releaser",
|
|
723
|
-
"NAHOM": "releaser",
|
|
724
|
-
"NARSETE": "releaser",
|
|
725
|
-
"NEOSTARK": "releaser",
|
|
726
|
-
"NEUROSIS": "releaser",
|
|
727
|
-
"NIMOUEH": "releaser",
|
|
728
|
-
"NOGROUP": "releaser",
|
|
729
|
-
"NOVARIP": "releaser",
|
|
730
|
-
"NTROPIC": "releaser",
|
|
731
|
-
"ODS": "releaser",
|
|
732
|
-
"ONGOIA": "releaser",
|
|
733
|
-
"PEPPE": "releaser",
|
|
734
|
-
"PENNYWISE": "releaser",
|
|
735
|
-
"PETE321": "releaser",
|
|
736
|
-
"PICOPOCO": "releaser",
|
|
737
|
-
"PING": "releaser",
|
|
738
|
-
"PINKER": "releaser",
|
|
739
|
-
"PIR8": "releaser",
|
|
740
|
-
"PLAYWEB": "releaser",
|
|
741
|
-
"PRIME": "releaser",
|
|
742
|
-
"PROMETHEUS": "releaser",
|
|
743
|
-
"PROSCIUTTO": "releaser",
|
|
744
|
-
"RADESE": "releaser",
|
|
745
|
-
"RAWR": "releaser",
|
|
746
|
-
"RARBG": "releaser",
|
|
747
|
-
"RIDDICKK": "releaser",
|
|
748
|
-
"ROGELIOBYNIGHT": "releaser",
|
|
749
|
-
"ROMEO": "releaser",
|
|
750
|
-
"RYUKXX": "releaser",
|
|
751
|
-
"S-K": "releaser",
|
|
752
|
-
"SANDWORM": "releaser",
|
|
753
|
-
"SEEDBOX": "releaser",
|
|
754
|
-
"SEEDBOX2": "releaser",
|
|
755
|
-
"SERCIUS": "releaser",
|
|
756
|
-
"SIMO01": "releaser",
|
|
757
|
-
"SIXTEEN8664": "releaser",
|
|
758
|
-
"SK4TTO": "releaser",
|
|
759
|
-
"SMURFADMIN": "releaser",
|
|
760
|
-
"SPYRO1989": "releaser",
|
|
761
|
-
"STEVEJOHNNEE": "releaser",
|
|
762
|
-
"STINGUAJT": "releaser",
|
|
763
|
-
"TAHTAKALECI": "releaser",
|
|
764
|
-
"TELESTO": "releaser",
|
|
765
|
-
"TERMINAL": "releaser",
|
|
766
|
-
"THEBLACKKING": "releaser",
|
|
767
|
-
"THEEMOJICREW": "releaser",
|
|
768
|
-
"THUDARA": "releaser",
|
|
769
|
-
"TIGRE67": "releaser",
|
|
770
|
-
"TORRENT10": "releaser",
|
|
771
|
-
"TOTAL_SHARE88": "releaser",
|
|
772
|
-
"TREE7458": "releaser",
|
|
773
|
-
"TRIVIAL99": "releaser",
|
|
774
|
-
"UBI": "releaser",
|
|
775
|
-
"V3SP4EV3R": "releaser",
|
|
776
|
-
"VIOLENT96": "releaser",
|
|
777
|
-
"VOLVIC": "releaser",
|
|
778
|
-
"WHEELIE": "releaser",
|
|
779
|
-
"WHITERHINO": "releaser",
|
|
780
|
-
"WIZARDS2K": "releaser",
|
|
781
|
-
"WRS": "releaser",
|
|
782
|
-
"XVID": "releaser",
|
|
783
|
-
"YIFY": "releaser",
|
|
784
|
-
"YTS": "releaser",
|
|
785
|
-
"ZIORIP": "releaser"
|
|
786
|
-
}
|
|
787
|
-
|
|
788
541
|
path.parent.mkdir(parents=True, exist_ok=True)
|
|
789
542
|
with open(path, "w", encoding="utf-8") as tags_sign_file:
|
|
790
|
-
json.dump(
|
|
543
|
+
json.dump(SIGNS_LIST, tags_sign_file, ensure_ascii=False, indent=4)
|
|
791
544
|
|
|
792
545
|
@staticmethod
|
|
793
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,13 +9,16 @@ 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
|
+
"SMPTE ST 2086": "HDR10",
|
|
21
|
+
"SMPTE ST 2094": "HDR10+",
|
|
20
22
|
|
|
21
23
|
"DOVI": "DV",
|
|
22
24
|
"HDR": "HDR",
|
|
@@ -72,21 +74,16 @@ class SearchTags(object):
|
|
|
72
74
|
@staticmethod
|
|
73
75
|
def normalize_version_tag(tag: str) -> str:
|
|
74
76
|
tag_esc = re.escape(tag)
|
|
75
|
-
# Filter hyphenated,space compounds
|
|
76
|
-
tag_esc = tag_esc.replace(r'\ ', r'[.\s_-]*')
|
|
77
77
|
return tag_esc
|
|
78
78
|
|
|
79
79
|
@staticmethod
|
|
80
80
|
def normalize_platform_tag(tag: str) -> str:
|
|
81
|
-
# escape
|
|
82
81
|
tag_esc = re.escape(tag)
|
|
83
82
|
return tag_esc
|
|
84
83
|
|
|
85
84
|
@staticmethod
|
|
86
85
|
def normalize_sources(tag: str) -> str:
|
|
87
86
|
tag_esc = re.escape(tag)
|
|
88
|
-
# Filter hyphenated,space compounds
|
|
89
|
-
tag_esc = tag_esc.replace(r'\ ', r'[.\s_-]*')
|
|
90
87
|
return tag_esc
|
|
91
88
|
|
|
92
89
|
@staticmethod
|
|
@@ -103,6 +100,7 @@ class SearchTags(object):
|
|
|
103
100
|
build.append(' '.join(v))
|
|
104
101
|
else:
|
|
105
102
|
build.append(str(v))
|
|
103
|
+
|
|
106
104
|
refactored = ' '.join(build) + self.releaser_sign
|
|
107
105
|
return refactored
|
|
108
106
|
|
|
@@ -177,22 +175,7 @@ class SearchTags(object):
|
|
|
177
175
|
if not self.releaser_sign:
|
|
178
176
|
# If releaser_sign is not defined in the configuration file,
|
|
179
177
|
# try to detect a known sign from SIGN_LIST
|
|
180
|
-
|
|
181
|
-
sorted((re.escape(k) for k in self.SIGNS_LIST.keys()), key=len, reverse=True)
|
|
182
|
-
)
|
|
183
|
-
self.filename = os.path.splitext(self.filename)[0]
|
|
184
|
-
regex = re.compile(
|
|
185
|
-
r'(?:^|[\s._-])(' + pattern + r')(?=$|[\s._-]*$)',
|
|
186
|
-
re.IGNORECASE
|
|
187
|
-
)
|
|
188
|
-
matches = regex.findall(self.filename)
|
|
189
|
-
if matches:
|
|
190
|
-
self.releaser_sign = f"-{matches[0]}" if matches[0].upper() in self.SIGNS_LIST else ""
|
|
191
|
-
else:
|
|
192
|
-
self.releaser_sign = ""
|
|
193
|
-
else:
|
|
194
|
-
# Add releaser_sign from the configuration file
|
|
195
|
-
self.releaser_sign = f"-{self.releaser_sign}"
|
|
178
|
+
self.releaser_sign = self.detect_releaser(self.filename, self.SIGNS_LIST)
|
|
196
179
|
|
|
197
180
|
# /// Order according to tag position
|
|
198
181
|
tags_dict = {
|
|
@@ -316,3 +299,34 @@ class SearchTags(object):
|
|
|
316
299
|
result['resolution'] = f'{video_width}x{video_height}'
|
|
317
300
|
|
|
318
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.16 → 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.16 → unit3dup-0.9.18}/common/external_services/theMovieDB/core/models/movie/details.py
RENAMED
|
File without changes
|
{unit3dup-0.9.16 → 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.16 → 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
|