aboutsummaryrefslogtreecommitdiff
path: root/yt_dlp/utils/traversal.py
diff options
context:
space:
mode:
Diffstat (limited to 'yt_dlp/utils/traversal.py')
-rw-r--r--yt_dlp/utils/traversal.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/yt_dlp/utils/traversal.py b/yt_dlp/utils/traversal.py
index 0eef817ea..dd9b4690b 100644
--- a/yt_dlp/utils/traversal.py
+++ b/yt_dlp/utils/traversal.py
@@ -435,6 +435,20 @@ def find_elements(*, tag=None, cls=None, attr=None, value=None, html=False):
return functools.partial(func, cls)
+def trim_str(*, start=None, end=None):
+ def trim(s):
+ if s is None:
+ return None
+ start_idx = 0
+ if start and s.startswith(start):
+ start_idx = len(start)
+ if end and s.endswith(end):
+ return s[start_idx:-len(end)]
+ return s[start_idx:]
+
+ return trim
+
+
def get_first(obj, *paths, **kwargs):
return traverse_obj(obj, *((..., *variadic(keys)) for keys in paths), **kwargs, get_all=False)