plexflow 0.0.134__py3-none-any.whl → 0.0.136__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.
@@ -30,14 +30,14 @@ class Ranked:
30
30
  def append_nosub(self, candidate: DownloadCandidate, rank: float):
31
31
  self.ranked['nosub'].append(RankedCandidate(rank, candidate))
32
32
 
33
- def native_candidates(self, language: str):
34
- return sorted(self.ranked['native'][language], key=lambda rc: rc.rank, reverse=True)
33
+ def native_candidates(self, language: str, tv_mode: bool = False):
34
+ return sorted(self.ranked['native'][language], key=lambda rc: rc.rank if not tv_mode else rc.candidate.max_seeds, reverse=True)
35
35
 
36
- def encoder_candidates(self, language: str):
37
- return sorted(self.ranked['encoder'][language], key=lambda rc: rc.rank, reverse=True)
36
+ def encoder_candidates(self, language: str, tv_mode: bool = False):
37
+ return sorted(self.ranked['encoder'][language], key=lambda rc: rc.rank if not tv_mode else rc.candidate.max_seeds, reverse=True)
38
38
 
39
- def nosub_candidates(self):
40
- return sorted(self.ranked['nosub'], key=lambda rc: rc.rank, reverse=True)
39
+ def nosub_candidates(self, tv_mode: bool = False):
40
+ return sorted(self.ranked['nosub'], key=lambda rc: rc.rank if not tv_mode else rc.candidate.max_seeds, reverse=True)
41
41
 
42
42
 
43
43
  def rank_candidates(candidates: List[DownloadCandidate]):
@@ -6,4 +6,29 @@ def remove_punctuation(text):
6
6
  return "" # Handle non-string input gracefully
7
7
 
8
8
  translator = str.maketrans('', '', string.punctuation)
9
- return text.translate(translator)
9
+ return text.translate(translator)
10
+
11
+ def clean_string(input_string, remove_spaces: bool = False):
12
+ """
13
+ Strips all punctuation and spaces from a string and converts it to lowercase.
14
+
15
+ Args:
16
+ input_string (str): The string to clean.
17
+
18
+ Returns:
19
+ str: The cleaned string.
20
+ """
21
+ # Create a translation table to remove punctuation
22
+ # string.punctuation contains all standard punctuation characters
23
+ translator = str.maketrans('', '', string.punctuation)
24
+
25
+ # Remove punctuation using the translation table
26
+ no_punctuation = input_string.translate(translator)
27
+
28
+ # Remove all spaces
29
+ no_spaces = no_punctuation.replace(" ", "") if remove_spaces else no_punctuation
30
+
31
+ # Convert to lowercase
32
+ cleaned_string = no_spaces.lower()
33
+
34
+ return cleaned_string
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: plexflow
3
- Version: 0.0.134
3
+ Version: 0.0.136
4
4
  Summary: A short description of the package.
5
5
  License: MIT
6
6
  Keywords: keyword1,keyword2,keyword3
@@ -74,7 +74,7 @@ plexflow/core/downloads/candidates/download_candidate.py,sha256=6lQbtNw8uGr5B8qr
74
74
  plexflow/core/downloads/candidates/filtered.py,sha256=HgUY0S3aWAeHASHTjND9hyjCtGNLhUzLOL90G2CDxKg,1842
75
75
  plexflow/core/downloads/candidates/rank/__pycache__/ranking.cpython-312.pyc,sha256=PyFgF-AfVisFErJ9PHeHb8RYLc4WIeRXQL3WSU83MnU,4298
76
76
  plexflow/core/downloads/candidates/rank/__pycache__/utils.cpython-312.pyc,sha256=YS3mCbqz2dnIvZuODAW8hAi9iDOp3HQDde0WVl4CBo0,426
77
- plexflow/core/downloads/candidates/rank/ranking.py,sha256=p86f3DQmXJNE53gPk9E5RcKA7dgXI4wPQsIh9ae1uxY,2490
77
+ plexflow/core/downloads/candidates/rank/ranking.py,sha256=vWsxtoDTX0sYWs-y_TxxhPhpaacZ07EtIEK9u4YP7S0,2688
78
78
  plexflow/core/downloads/candidates/rank/utils.py,sha256=R4Ai4KmZRONo9vd2rf32DdGxVkANHYFwSjrO5WVjX9U,100
79
79
  plexflow/core/downloads/candidates/utils.py,sha256=BnuDSRjU9mVYSh9ejKgfvlLi0bWEqc07uLyskC-bYhw,1874
80
80
  plexflow/core/downloads/qbit/__pycache__/interface.cpython-312.pyc,sha256=szUoTWpZNpHwJ0OnXer8ZLeAYIvHND-rX1lB2Juv-J4,3335
@@ -665,7 +665,7 @@ plexflow/utils/strings/__pycache__/sanitize.cpython-312.pyc,sha256=al-VD4Gphby-b
665
665
  plexflow/utils/strings/filesize.py,sha256=mLVd0xqIEzAif5Tn_PyCddFmUPXPNnEbLhBNJTsgOvs,1547
666
666
  plexflow/utils/strings/json_extract.py,sha256=590oY1LMnbe9COm3fD6z74OtOzxeXd3Hrf06afhHOvc,14884
667
667
  plexflow/utils/strings/language.py,sha256=J9-wqmCdxf9Ws5_X1tV4vX4d7AGkKci0eaBE4Lit0j0,269
668
- plexflow/utils/strings/sanitize.py,sha256=V-58iC4-0xIb-dgK595JbPNyyB9jZbY1xHMazXnQyuI,274
668
+ plexflow/utils/strings/sanitize.py,sha256=_ReRBSoOC5S_cGlIJ4VagmMAVmMHPmxtZGNSD0oADs4,1039
669
669
  plexflow/utils/subtitle/__pycache__/search.cpython-312.pyc,sha256=RiMTyALG74DJn67xhCvZ2ofXBOTyetMOU3Tq_bVdbts,3554
670
670
  plexflow/utils/subtitle/search.py,sha256=HW_JOrj-cpRrVnxWh56XjRWhb98E73V1V5QHCq2y7CM,2441
671
671
  plexflow/utils/tasks/__pycache__/decorators.cpython-311.pyc,sha256=8zuAsEfYLEBQQ4DGKqkx-JFCjd73kGhAiPblBNFa2cQ,1675
@@ -715,7 +715,7 @@ plexflow/utils/video/__pycache__/audio.cpython-312.pyc,sha256=kmzGDCHSC1hWyHwRut
715
715
  plexflow/utils/video/__pycache__/subtitle.cpython-312.pyc,sha256=PCjpCLydGXaRsQy6cikhgsEs8WlComfOoYPiLFqfVMA,2515
716
716
  plexflow/utils/video/audio.py,sha256=Pd8OuQHX2QN-lc5iYkB0Vo1OEHmTcvDYH-uKud1f1q4,5262
717
717
  plexflow/utils/video/subtitle.py,sha256=qPvvBjlPj0fynJJvGJgGeKt9ey26R-cF6EoLaYt9iXU,1333
718
- plexflow-0.0.134.dist-info/METADATA,sha256=PUvShVXNLti45nOS3bguAWblat__DoJvewSH6IGHH3M,2971
719
- plexflow-0.0.134.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
720
- plexflow-0.0.134.dist-info/entry_points.txt,sha256=9RJC3ikOQORHNOn573EdwJOBUnFU_4EGHbtNUM5pjjY,1557
721
- plexflow-0.0.134.dist-info/RECORD,,
718
+ plexflow-0.0.136.dist-info/METADATA,sha256=7DONM4sZjw5q2OGH5RmaHHg6ZPJdR7FoN2TaQHmIBWo,2971
719
+ plexflow-0.0.136.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
720
+ plexflow-0.0.136.dist-info/entry_points.txt,sha256=9RJC3ikOQORHNOn573EdwJOBUnFU_4EGHbtNUM5pjjY,1557
721
+ plexflow-0.0.136.dist-info/RECORD,,