summaryrefslogtreecommitdiff
path: root/searx/engines/bilibili.py
diff options
context:
space:
mode:
authorBnyro <bnyro@tutanota.com>2025-03-20 21:16:37 +0100
committerMarkus Heiser <markus.heiser@darmarIT.de>2025-03-25 16:48:44 +0100
commit4dfc47584d7c946b9682dc1e4858fae003b16d1f (patch)
tree5dae9c70c914a7462ef302044fd5fc72a783bf0a /searx/engines/bilibili.py
parentc28d35c7fc34da4e27700610f58c57135fea6310 (diff)
[refactor] duration strings: move parsing logic to utils.py
Diffstat (limited to 'searx/engines/bilibili.py')
-rw-r--r--searx/engines/bilibili.py21
1 files changed, 7 insertions, 14 deletions
diff --git a/searx/engines/bilibili.py b/searx/engines/bilibili.py
index 06e1cddb2..c6aa70dfd 100644
--- a/searx/engines/bilibili.py
+++ b/searx/engines/bilibili.py
@@ -56,18 +56,6 @@ def request(query, params):
return params
-# Format the video duration
-def format_duration(duration):
- if not ":" in duration:
- return None
- minutes, seconds = map(int, duration.split(":"))
- total_seconds = minutes * 60 + seconds
-
- formatted_duration = str(timedelta(seconds=total_seconds))[2:] if 0 <= total_seconds < 3600 else ""
-
- return formatted_duration
-
-
def response(resp):
search_res = resp.json()
@@ -83,7 +71,12 @@ def response(resp):
unix_date = item["pubdate"]
formatted_date = datetime.fromtimestamp(unix_date)
- formatted_duration = format_duration(item["duration"])
+
+ # the duration only seems to be valid if the video is less than 60 mins
+ duration = utils.parse_duration_string(item["duration"])
+ if duration and duration > timedelta(minutes=60):
+ duration = None
+
iframe_url = f"https://player.bilibili.com/player.html?aid={video_id}&high_quality=1&autoplay=false&danmaku=0"
results.append(
@@ -93,7 +86,7 @@ def response(resp):
"content": description,
"author": author,
"publishedDate": formatted_date,
- "length": formatted_duration,
+ "length": duration,
"thumbnail": thumbnail,
"iframe_src": iframe_url,
"template": "videos.html",