easyrip 4.11.3__py3-none-any.whl → 4.12.0__py3-none-any.whl

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.
easyrip/__init__.py CHANGED
@@ -7,13 +7,7 @@ from .easyrip_main import (
7
7
  init,
8
8
  run_command,
9
9
  )
10
- from .easyrip_mlang import (
11
- Global_lang_val,
12
- Lang_tag,
13
- Lang_tag_language,
14
- Lang_tag_region,
15
- Lang_tag_script,
16
- )
10
+ from .easyrip_mlang import Global_lang_val, Lang_tag
17
11
  from .ripper.media_info import Media_info
18
12
  from .ripper.ripper import Ripper
19
13
  from .ripper.sub_and_font import Ass, Font, load_fonts
@@ -23,9 +17,6 @@ __all__ = [
23
17
  "Font",
24
18
  "Global_lang_val",
25
19
  "Lang_tag",
26
- "Lang_tag_language",
27
- "Lang_tag_region",
28
- "Lang_tag_script",
29
20
  "Media_info",
30
21
  "Ripper",
31
22
  "check_env",
@@ -18,7 +18,7 @@ from prompt_toolkit.document import Document
18
18
 
19
19
  from . import global_val
20
20
  from .easyrip_config.config_key import Config_key
21
- from .ripper.param import PRESET_OPT_NAME, Audio_codec, Preset_name
21
+ from .ripper.param import Audio_codec, Muxer, Preset_name
22
22
 
23
23
 
24
24
  @final
@@ -353,7 +353,8 @@ class Opt_type(enum.Enum):
353
353
  param="<string>",
354
354
  description=(
355
355
  "Setting preset\n"
356
- "Preset name:\n" # .
356
+ "\n" # .
357
+ "Preset name:\n"
357
358
  f"{Preset_name.to_help_string(' ')}"
358
359
  ),
359
360
  childs=(Cmd_type_val(tuple(Preset_name._value2member_map_)),),
@@ -486,7 +487,8 @@ class Opt_type(enum.Enum):
486
487
  param="<string>",
487
488
  description=(
488
489
  "Setting audio encoder\n"
489
- "Audio encoder:\n" # .
490
+ "\n" # .
491
+ "Audio encoder:\n"
490
492
  f"{Audio_codec.to_help_string(' ')}"
491
493
  ),
492
494
  childs=(Cmd_type_val(tuple(Audio_codec._value2member_map_)),),
@@ -501,11 +503,11 @@ class Opt_type(enum.Enum):
501
503
  param="<string>",
502
504
  description=(
503
505
  "Setting muxer\n"
504
- " \n" # .
506
+ "\n" # .
505
507
  "Muxer:\n"
506
- " mp4\n"
507
- " mkv\n"
508
+ f"{Audio_codec.to_help_string(' ')}"
508
509
  ),
510
+ childs=(Cmd_type_val(tuple(Muxer._value2member_map_)),),
509
511
  )
510
512
  _r = _fps = Cmd_type_val(
511
513
  ("-r", "-fps"),
@@ -789,8 +791,10 @@ class OptCompleter(Completer):
789
791
  _preset_name = None
790
792
  if _preset in Preset_name._member_map_:
791
793
  _preset_name = Preset_name[_preset]
792
- if _preset_name is not None and _preset_name in PRESET_OPT_NAME:
793
- add_set: set[str] = {f"-{n}" for n in PRESET_OPT_NAME[_preset_name]}
794
+ if _preset_name is not None:
795
+ add_set: set[str] = {
796
+ f"-{n}" for n in _preset_name.get_param_name_set(set())
797
+ }
794
798
  add_comp_words |= add_set
795
799
  add_comp_meta_dict |= dict.fromkeys(add_set, f"{_preset} param")
796
800
 
@@ -859,7 +863,13 @@ class OptCompleter(Completer):
859
863
 
860
864
  yield from merge_completers(
861
865
  (
862
- _nested_dict_to_nc(new_nd),
866
+ merge_completers(
867
+ (
868
+ _nested_dict_to_nc(new_nd),
869
+ FuzzyCompleter(_nested_dict_to_nc(new_nd), WORD=True),
870
+ ),
871
+ deduplicate=True,
872
+ ),
863
873
  FuzzyCompleter(
864
874
  WordCompleter(
865
875
  words=tuple(opt_tree_pos_list[-1]),
easyrip/easyrip_main.py CHANGED
@@ -30,14 +30,12 @@ from .easyrip_log import log
30
30
  from .easyrip_mlang import (
31
31
  Global_lang_val,
32
32
  Lang_tag,
33
- Lang_tag_language,
34
33
  get_system_language,
35
34
  gettext,
36
35
  translate_subtitles,
37
36
  )
38
37
  from .easyrip_prompt import easyrip_prompt
39
38
  from .ripper.media_info import Media_info
40
- from .ripper.param import DEFAULT_PRESET_PARAMS, PRESET_OPT_NAME
41
39
  from .ripper.ripper import Ripper
42
40
  from .ripper.sub_and_font import load_fonts
43
41
  from .utils import change_title, check_ver, read_text
@@ -419,40 +417,41 @@ def run_command(command: Iterable[str] | str) -> bool:
419
417
  log.send(_want_doc_cmd_type.value.to_doc(), is_format=False)
420
418
  elif cmd_list[2] in Ripper.Preset_name._value2member_map_:
421
419
  _preset = Ripper.Preset_name(cmd_list[2])
422
- if (
423
- _preset in DEFAULT_PRESET_PARAMS
424
- or _preset in PRESET_OPT_NAME
425
- ):
426
- if _preset in PRESET_OPT_NAME:
427
- log.send(
428
- "Params that can be directly used:\n{}",
429
- textwrap.indent(
430
- "\n".join(
431
- f"-{n}"
432
- for n in PRESET_OPT_NAME[_preset]
433
- ),
434
- prefix=" ",
435
- ),
436
- )
437
- if _preset in DEFAULT_PRESET_PARAMS:
438
- _default_params = DEFAULT_PRESET_PARAMS[_preset]
439
- max_name_len = (
440
- max(len(str(n)) for n in _default_params) + 1
441
- )
442
- log.send(
443
- "Default val:\n{}",
444
- textwrap.indent(
445
- "\n".join(
446
- f"{f'-{n}':>{max_name_len}} {v}"
447
- for n, v in _default_params.items()
448
- ),
449
- prefix=" ",
450
- ),
451
- )
452
- else:
420
+ _param_default_dict = _preset.get_param_default_dict()
421
+ _param_name_set = _preset.get_param_name_set()
422
+ if not any((_param_default_dict, _param_name_set)):
453
423
  log.send(
454
424
  "The preset '{}' has no separate help", cmd_list[2]
455
425
  )
426
+ if _param_name_set:
427
+ log.send(
428
+ "Params that can be directly used:\n{}",
429
+ textwrap.indent(
430
+ "\n".join(f"-{n}" for n in _param_name_set),
431
+ prefix=" ",
432
+ ),
433
+ )
434
+ if _param_default_dict:
435
+ max_name_len = (
436
+ max(len(str(n)) for n in _param_default_dict) + 1
437
+ )
438
+ log.send(
439
+ "Default val:\n{}",
440
+ textwrap.indent(
441
+ "\n".join(
442
+ f"{f'-{n}':>{max_name_len}} {v}"
443
+ for n, v in _param_default_dict.items()
444
+ ),
445
+ prefix=" ",
446
+ ),
447
+ )
448
+ log.send(
449
+ " FFmpeg format:\n {}",
450
+ ":".join(
451
+ f"{n}={v}"
452
+ for n, v in _param_default_dict.items()
453
+ ),
454
+ )
456
455
  else:
457
456
  log.error("'{}' is not a member of preset", cmd_list[2])
458
457
 
@@ -1156,7 +1155,7 @@ def init(is_first_run: bool = False) -> None:
1156
1155
 
1157
1156
  if (
1158
1157
  lang_tag := Lang_tag.from_str(file.stem[5:])
1159
- ).language is not Lang_tag_language.Unknown:
1158
+ ).language is not Lang_tag.Language.Unknown:
1160
1159
  easyrip_mlang.all_supported_lang_map[lang_tag] = lang_map
1161
1160
 
1162
1161
  log.debug("Loading \"{}\" as '{}' language successfully", file, lang_tag)
@@ -1,22 +1,13 @@
1
1
  import locale
2
2
 
3
3
  from . import lang_en, lang_zh_Hans_CN
4
- from .global_lang_val import (
5
- Global_lang_val,
6
- Lang_tag,
7
- Lang_tag_language,
8
- Lang_tag_region,
9
- Lang_tag_script,
10
- Lang_tag_val,
11
- )
4
+ from .global_lang_val import Global_lang_val, Lang_tag
5
+ from .lang_tag_val import Lang_tag_val
12
6
  from .translator import translate_subtitles
13
7
 
14
8
  __all__ = [
15
9
  "Global_lang_val",
16
10
  "Lang_tag",
17
- "Lang_tag_language",
18
- "Lang_tag_region",
19
- "Lang_tag_script",
20
11
  "Lang_tag_val",
21
12
  "Mlang_exception",
22
13
  "get_system_language",
@@ -4,154 +4,16 @@ from dataclasses import dataclass
4
4
  from typing import Self, final
5
5
 
6
6
 
7
- @final
8
- @dataclass(slots=True, init=False, eq=False)
9
- class Lang_tag_val:
10
- en_name: str
11
- _local_name: str | None
12
-
13
- @property
14
- def local_name(self) -> str:
15
- return self.en_name if self._local_name is None else self._local_name
16
-
17
- @local_name.setter
18
- def local_name(self, val: str | None) -> None:
19
- if val is not None and len(val) == 0:
20
- raise ValueError("The length of the name cannot be 0")
21
-
22
- self._local_name = val
23
-
24
- def __init__(self, *, en_name: str, local_name: str | None = None) -> None:
25
- if len(en_name) == 0:
26
- raise ValueError("The length of the name cannot be 0")
27
-
28
- self.en_name = en_name
29
- self.local_name = local_name
30
-
31
- def __str__(self) -> str:
32
- return f"{self.__class__.__name__}(en_name={self.en_name}, local_name={self._local_name})"
33
-
34
- def __eq__(self, other: object) -> bool:
35
- if isinstance(other, Lang_tag_val):
36
- return self.en_name == other.en_name
37
- return False
38
-
39
- def __hash__(self) -> int:
40
- return hash(self.en_name)
41
-
42
-
43
- class Lang_tag_language(enum.Enum):
44
- Unknown = Lang_tag_val(en_name="Unknown")
45
-
46
- # ISO 639-1
47
- en = Lang_tag_val(en_name="English", local_name="English")
48
- zh = Lang_tag_val(en_name="Chinese", local_name="中文")
49
- fr = Lang_tag_val(en_name="French", local_name="Français")
50
- de = Lang_tag_val(en_name="German", local_name="Deutsch")
51
- es = Lang_tag_val(en_name="Spanish", local_name="Español")
52
- it = Lang_tag_val(en_name="Italian", local_name="Italiano")
53
- ja = Lang_tag_val(en_name="Japanese", local_name="日本語")
54
- ko = Lang_tag_val(en_name="Korean", local_name="한국어")
55
- ru = Lang_tag_val(en_name="Russian", local_name="Русский")
56
- ar = Lang_tag_val(en_name="Arabic", local_name="العربية")
57
-
58
- # ISO 639-2
59
- eng = en
60
- zho = chi = zh
61
- fra = fre = fr
62
- deu = ger = de
63
- spa = es
64
- ita = it
65
- jpn = ja
66
- kor = ko
67
- rus = ru
68
- ara = ar
69
-
70
- # ISO 639-3
71
- # 与 p2 重叠的放在 p2
72
- cdo = Lang_tag_val(en_name="Min Dong Chinese", local_name="闽东语")
73
- cjy = Lang_tag_val(en_name="Jinyu Chinese", local_name="晋语")
74
- cmn = Lang_tag_val(en_name="Mandarin Chinese", local_name="普通话")
75
- cnp = Lang_tag_val(en_name="Northern Ping Chinese", local_name="北平语")
76
- wuu = Lang_tag_val(en_name="Wu Chinese", local_name="吴语")
77
- yue = Lang_tag_val(en_name="Yue Chinese", local_name="粤语")
78
- hak = Lang_tag_val(en_name="Hakka Chinese", local_name="客家话")
79
- nan = Lang_tag_val(en_name="Min Nan Chinese", local_name="闽南语")
80
- och = Lang_tag_val(en_name="Old Chinese", local_name="古汉语")
81
-
82
- @classmethod
83
- def _missing_(cls, value: object):
84
- return cls.Unknown
85
-
86
- @classmethod
87
- def from_name(cls, name: str):
88
- try:
89
- return cls[name]
90
- except KeyError:
91
- return cls.Unknown
92
-
93
-
94
- class Lang_tag_script(enum.Enum):
95
- Unknown = Lang_tag_val(en_name="Unknown")
96
-
97
- Hans = Lang_tag_val(en_name="Simplified Chinese", local_name="简体")
98
- Hant = Lang_tag_val(en_name="Traditional Chinese", local_name="繁體")
99
- Latn = Lang_tag_val(en_name="Latin", local_name="Latina")
100
- Cyrl = Lang_tag_val(en_name="Cyrillic", local_name="Кириллица")
101
- Arab = Lang_tag_val(en_name="Arabic", local_name="العربية")
102
-
103
- @classmethod
104
- def _missing_(cls, value: object):
105
- return cls.Unknown
106
-
107
- @classmethod
108
- def from_name(cls, name: str):
109
- try:
110
- return cls[name]
111
- except KeyError:
112
- return cls.Unknown
113
-
114
-
115
- class Lang_tag_region(enum.Enum):
116
- Unknown = Lang_tag_val(en_name="Unknown")
117
-
118
- US = Lang_tag_val(en_name="United States", local_name="United States")
119
- GB = Lang_tag_val(en_name="United Kingdom", local_name="United Kingdom")
120
- AU = Lang_tag_val(en_name="Australia", local_name="Australia")
121
- CA = Lang_tag_val(en_name="Canada", local_name="Canada")
122
- NZ = Lang_tag_val(en_name="New Zealand", local_name="New Zealand")
123
- IE = Lang_tag_val(en_name="Ireland", local_name="Éire")
124
- ZA = Lang_tag_val(en_name="South Africa", local_name="South Africa")
125
- JM = Lang_tag_val(en_name="Jamaica", local_name="Jamaica")
126
- TT = Lang_tag_val(en_name="Caribbean", local_name="Caribbean")
127
- BZ = Lang_tag_val(en_name="Belize", local_name="Belize")
128
- PH = Lang_tag_val(en_name="Philippines", local_name="Pilipinas")
129
- IN = Lang_tag_val(en_name="India", local_name="भारत")
130
- MY = Lang_tag_val(en_name="Malaysia", local_name="Malaysia")
131
- SG = Lang_tag_val(en_name="Singapore", local_name="Singapura")
132
- MO = Lang_tag_val(en_name="Macau SAR", local_name="澳門")
133
- HK = Lang_tag_val(en_name="Hong Kong SAR", local_name="香港")
134
- TW = Lang_tag_val(en_name="Taiwan", local_name="台灣")
135
- CN = Lang_tag_val(en_name="China", local_name="中国大陆")
136
-
137
- @classmethod
138
- def _missing_(cls, value: object):
139
- return cls.Unknown
140
-
141
- @classmethod
142
- def from_name(cls, name: str):
143
- try:
144
- return cls[name]
145
- except KeyError:
146
- return cls.Unknown
147
-
148
-
149
7
  @final
150
8
  @dataclass(slots=True, kw_only=True)
151
9
  class Lang_tag:
152
- language: Lang_tag_language = Lang_tag_language.Unknown
153
- script: Lang_tag_script = Lang_tag_script.Unknown
154
- region: Lang_tag_region = Lang_tag_region.Unknown
10
+ from .lang_tag_val import Lang_tag_language as Language
11
+ from .lang_tag_val import Lang_tag_region as Region
12
+ from .lang_tag_val import Lang_tag_script as Script
13
+
14
+ language: Language = Language.Unknown
15
+ script: Script = Script.Unknown
16
+ region: Region = Region.Unknown
155
17
 
156
18
  class Match_priority(enum.Enum):
157
19
  script = enum.auto()
@@ -193,7 +55,7 @@ class Lang_tag:
193
55
 
194
56
  if priority_same_tuple := (
195
57
  same_script_tuple + same_region_tuple
196
- if priority is Lang_tag.Match_priority.script
58
+ if priority is self.__class__.Match_priority.script
197
59
  else same_region_tuple + same_script_tuple
198
60
  ):
199
61
  return priority_same_tuple[0]
@@ -214,19 +76,19 @@ class Lang_tag:
214
76
 
215
77
  str_tag_list = str_tag.split("-")
216
78
 
217
- language = Lang_tag_language.from_name(str_tag_list[0])
218
- script: Lang_tag_script = Lang_tag_script.Unknown
219
- region: Lang_tag_region = Lang_tag_region.Unknown
79
+ language: Lang_tag.Language = cls.Language.from_name(str_tag_list[0])
80
+ script: Lang_tag.Script = cls.Script.Unknown
81
+ region: Lang_tag.Region = cls.Region.Unknown
220
82
 
221
83
  for i, s in enumerate(str_tag_list[1:]):
222
- if s in Lang_tag_script._member_map_:
84
+ if s in cls.Script._member_map_:
223
85
  if i != 0:
224
86
  raise ValueError(
225
87
  gettext("The input language tag string format is illegal")
226
88
  )
227
- script = Lang_tag_script[s]
228
- elif s in Lang_tag_region._member_map_:
229
- region = Lang_tag_region[s]
89
+ script = cls.Script[s]
90
+ elif s in cls.Region._member_map_:
91
+ region = cls.Region[s]
230
92
 
231
93
  return cls(
232
94
  language=language,
@@ -236,13 +98,13 @@ class Lang_tag:
236
98
 
237
99
  def __str__(self) -> str:
238
100
  """返回语言标签字符串"""
239
- if self.language == Lang_tag_language.Unknown:
101
+ if self.language == self.__class__.Language.Unknown:
240
102
  raise Exception("The Language is Unknown")
241
103
 
242
104
  res_str: str = self.language.name
243
- if self.script != Lang_tag_script.Unknown:
105
+ if self.script != self.__class__.Script.Unknown:
244
106
  res_str += f"-{self.script.name}"
245
- if self.region != Lang_tag_region.Unknown:
107
+ if self.region != self.__class__.Region.Unknown:
246
108
  res_str += f"-{self.region.name}"
247
109
 
248
110
  return res_str
@@ -266,18 +128,18 @@ class Global_lang_val:
266
128
 
267
129
  res_str_list: list[str] = [
268
130
  _local_name
269
- if (_org_name := tag_list[0]) in Lang_tag_language._member_map_
270
- and (_local_name := Lang_tag_language[_org_name].value.local_name)
131
+ if (_org_name := tag_list[0]) in Lang_tag.Language._member_map_
132
+ and (_local_name := Lang_tag.Language[_org_name].value.local_name)
271
133
  else _org_name
272
134
  ]
273
135
 
274
136
  if tag_list_len >= 2:
275
137
  _org_name = tag_list[1]
276
138
 
277
- if _org_name in Lang_tag_script.__members__:
278
- _local_name = Lang_tag_script[_org_name].value.local_name
279
- elif _org_name in Lang_tag_region._member_map_:
280
- _local_name = Lang_tag_region[_org_name].value.local_name
139
+ if _org_name in Lang_tag.Script.__members__:
140
+ _local_name = Lang_tag.Script[_org_name].value.local_name
141
+ elif _org_name in Lang_tag.Region._member_map_:
142
+ _local_name = Lang_tag.Region[_org_name].value.local_name
281
143
  else:
282
144
  _local_name = _org_name
283
145
 
@@ -286,8 +148,8 @@ class Global_lang_val:
286
148
  if tag_list_len >= 3:
287
149
  _org_name = tag_list[2]
288
150
 
289
- if _org_name in Lang_tag_region._member_map_:
290
- _local_name = Lang_tag_region[_org_name].value.local_name
151
+ if _org_name in Lang_tag.Region._member_map_:
152
+ _local_name = Lang_tag.Region[_org_name].value.local_name
291
153
  else:
292
154
  _local_name = _org_name
293
155
 
@@ -1,5 +1,5 @@
1
- from .global_lang_val import Lang_tag, Lang_tag_language
1
+ from .global_lang_val import Lang_tag
2
2
 
3
- LANG_TAG = Lang_tag(language=Lang_tag_language.en)
3
+ LANG_TAG = Lang_tag(language=Lang_tag.Language.en)
4
4
 
5
5
  LANG_MAP: dict[str, str] = {}
@@ -0,0 +1,145 @@
1
+ import enum
2
+ from dataclasses import dataclass
3
+ from typing import final
4
+
5
+
6
+ @final
7
+ @dataclass(slots=True, init=False, eq=False)
8
+ class Lang_tag_val:
9
+ en_name: str
10
+ _local_name: str | None
11
+
12
+ @property
13
+ def local_name(self) -> str:
14
+ return self.en_name if self._local_name is None else self._local_name
15
+
16
+ @local_name.setter
17
+ def local_name(self, val: str | None) -> None:
18
+ if val is not None and len(val) == 0:
19
+ raise ValueError("The length of the name cannot be 0")
20
+
21
+ self._local_name = val
22
+
23
+ def __init__(self, *, en_name: str, local_name: str | None = None) -> None:
24
+ if len(en_name) == 0:
25
+ raise ValueError("The length of the name cannot be 0")
26
+
27
+ self.en_name = en_name
28
+ self.local_name = local_name
29
+
30
+ def __str__(self) -> str:
31
+ return f"{self.__class__.__name__}(en_name={self.en_name}, local_name={self._local_name})"
32
+
33
+ def __eq__(self, other: object) -> bool:
34
+ if isinstance(other, Lang_tag_val):
35
+ return self.en_name == other.en_name
36
+ return False
37
+
38
+ def __hash__(self) -> int:
39
+ return hash(self.en_name)
40
+
41
+
42
+ class Lang_tag_language(enum.Enum):
43
+ Unknown = Lang_tag_val(en_name="Unknown")
44
+
45
+ # ISO 639-1
46
+ en = Lang_tag_val(en_name="English", local_name="English")
47
+ zh = Lang_tag_val(en_name="Chinese", local_name="中文")
48
+ fr = Lang_tag_val(en_name="French", local_name="Français")
49
+ de = Lang_tag_val(en_name="German", local_name="Deutsch")
50
+ es = Lang_tag_val(en_name="Spanish", local_name="Español")
51
+ it = Lang_tag_val(en_name="Italian", local_name="Italiano")
52
+ ja = Lang_tag_val(en_name="Japanese", local_name="日本語")
53
+ ko = Lang_tag_val(en_name="Korean", local_name="한국어")
54
+ ru = Lang_tag_val(en_name="Russian", local_name="Русский")
55
+ ar = Lang_tag_val(en_name="Arabic", local_name="العربية")
56
+
57
+ # ISO 639-2
58
+ eng = en
59
+ zho = chi = zh
60
+ fra = fre = fr
61
+ deu = ger = de
62
+ spa = es
63
+ ita = it
64
+ jpn = ja
65
+ kor = ko
66
+ rus = ru
67
+ ara = ar
68
+
69
+ # ISO 639-3
70
+ # 与 p2 重叠的放在 p2
71
+ cdo = Lang_tag_val(en_name="Min Dong Chinese", local_name="闽东语")
72
+ cjy = Lang_tag_val(en_name="Jinyu Chinese", local_name="晋语")
73
+ cmn = Lang_tag_val(en_name="Mandarin Chinese", local_name="普通话")
74
+ cnp = Lang_tag_val(en_name="Northern Ping Chinese", local_name="北平语")
75
+ wuu = Lang_tag_val(en_name="Wu Chinese", local_name="吴语")
76
+ yue = Lang_tag_val(en_name="Yue Chinese", local_name="粤语")
77
+ hak = Lang_tag_val(en_name="Hakka Chinese", local_name="客家话")
78
+ nan = Lang_tag_val(en_name="Min Nan Chinese", local_name="闽南语")
79
+ och = Lang_tag_val(en_name="Old Chinese", local_name="古汉语")
80
+
81
+ @classmethod
82
+ def _missing_(cls, value: object):
83
+ return cls.Unknown
84
+
85
+ @classmethod
86
+ def from_name(cls, name: str):
87
+ try:
88
+ return cls[name]
89
+ except KeyError:
90
+ return cls.Unknown
91
+
92
+
93
+ class Lang_tag_script(enum.Enum):
94
+ Unknown = Lang_tag_val(en_name="Unknown")
95
+
96
+ Hans = Lang_tag_val(en_name="Simplified Chinese", local_name="简体")
97
+ Hant = Lang_tag_val(en_name="Traditional Chinese", local_name="繁體")
98
+ Latn = Lang_tag_val(en_name="Latin", local_name="Latina")
99
+ Cyrl = Lang_tag_val(en_name="Cyrillic", local_name="Кириллица")
100
+ Arab = Lang_tag_val(en_name="Arabic", local_name="العربية")
101
+
102
+ @classmethod
103
+ def _missing_(cls, value: object):
104
+ return cls.Unknown
105
+
106
+ @classmethod
107
+ def from_name(cls, name: str):
108
+ try:
109
+ return cls[name]
110
+ except KeyError:
111
+ return cls.Unknown
112
+
113
+
114
+ class Lang_tag_region(enum.Enum):
115
+ Unknown = Lang_tag_val(en_name="Unknown")
116
+
117
+ US = Lang_tag_val(en_name="United States", local_name="United States")
118
+ GB = Lang_tag_val(en_name="United Kingdom", local_name="United Kingdom")
119
+ AU = Lang_tag_val(en_name="Australia", local_name="Australia")
120
+ CA = Lang_tag_val(en_name="Canada", local_name="Canada")
121
+ NZ = Lang_tag_val(en_name="New Zealand", local_name="New Zealand")
122
+ IE = Lang_tag_val(en_name="Ireland", local_name="Éire")
123
+ ZA = Lang_tag_val(en_name="South Africa", local_name="South Africa")
124
+ JM = Lang_tag_val(en_name="Jamaica", local_name="Jamaica")
125
+ TT = Lang_tag_val(en_name="Caribbean", local_name="Caribbean")
126
+ BZ = Lang_tag_val(en_name="Belize", local_name="Belize")
127
+ PH = Lang_tag_val(en_name="Philippines", local_name="Pilipinas")
128
+ IN = Lang_tag_val(en_name="India", local_name="भारत")
129
+ MY = Lang_tag_val(en_name="Malaysia", local_name="Malaysia")
130
+ SG = Lang_tag_val(en_name="Singapore", local_name="Singapura")
131
+ MO = Lang_tag_val(en_name="Macau SAR", local_name="澳門")
132
+ HK = Lang_tag_val(en_name="Hong Kong SAR", local_name="香港")
133
+ TW = Lang_tag_val(en_name="Taiwan", local_name="台灣")
134
+ CN = Lang_tag_val(en_name="China", local_name="中国大陆")
135
+
136
+ @classmethod
137
+ def _missing_(cls, value: object):
138
+ return cls.Unknown
139
+
140
+ @classmethod
141
+ def from_name(cls, name: str):
142
+ try:
143
+ return cls[name]
144
+ except KeyError:
145
+ return cls.Unknown
@@ -1,15 +1,10 @@
1
1
  from ..easyrip_command import Audio_codec, Cmd_type, Opt_type, Preset_name
2
- from .global_lang_val import (
3
- Lang_tag,
4
- Lang_tag_language,
5
- Lang_tag_region,
6
- Lang_tag_script,
7
- )
2
+ from .global_lang_val import Lang_tag
8
3
 
9
4
  LANG_TAG = Lang_tag(
10
- language=Lang_tag_language.zh,
11
- script=Lang_tag_script.Hans,
12
- region=Lang_tag_region.CN,
5
+ language=Lang_tag.Language.zh,
6
+ script=Lang_tag.Script.Hans,
7
+ region=Lang_tag.Region.CN,
13
8
  )
14
9
 
15
10
  LANG_MAP: dict[str, str] = {
@@ -135,7 +130,8 @@ LANG_MAP: dict[str, str] = {
135
130
  ),
136
131
  Opt_type._preset.value.description: (
137
132
  "设置预设\n"
138
- "预设名:\n" # .
133
+ "\n" # .
134
+ "预设名:\n"
139
135
  f"{Preset_name.to_help_string(' ')}"
140
136
  ),
141
137
  Opt_type._pipe.value.description: (
@@ -199,13 +195,14 @@ LANG_MAP: dict[str, str] = {
199
195
  ),
200
196
  Opt_type._c_a.value.description: (
201
197
  "设置音频编码器\n"
202
- "音频编码器:\n" # .
198
+ "\n" # .
199
+ "音频编码器:\n"
203
200
  f"{Audio_codec.to_help_string(' ')}"
204
201
  ),
205
202
  Opt_type._b_a.value.description: "设置音频码率。默认值 '160k'",
206
203
  Opt_type._muxer.value.description: (
207
204
  "设置复用器\n"
208
- " \n" # .
205
+ "\n" # .
209
206
  "可用的复用器:\n"
210
207
  " mp4\n"
211
208
  " mkv"
@@ -323,6 +320,9 @@ LANG_MAP: dict[str, str] = {
323
320
  "Failed to add Ripper: {}": "添加 Ripper 失败: {}",
324
321
  "'{}' is not a valid '{}', set to default value '{}'. Valid options are: {}": "'{}' 不存在于 '{}', 已设为默认值 '{}'。有以下值可用: {}",
325
322
  "The preset custom must have custom:format or custom:template": "custom 预设必须要有 custom:format 或 custom:template",
323
+ "Run the following commands in order:\n{}": "按顺序执行以下命令:\n{}",
324
+ "Run the command {}": "执行命令 {}",
325
+ "Command run failed: status code {}\n Failed command: {}": "命令执行失败: 状态码 {}\n 失败的命令: {}",
326
326
  "There have error in running": "执行时出错",
327
327
  "{} param illegal": "{} 参数非法",
328
328
  'The file "{}" already exists, skip translating it': '文件 "{}" 已存在, 跳过翻译',