diff --git a/searx/engines/livespace.py b/searx/engines/livespace.py deleted file mode 100755 index 6a9056779..000000000 --- a/searx/engines/livespace.py +++ /dev/null @@ -1,100 +0,0 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later -"""LiveSpace (Videos) - -.. hint:: - - This engine only search for **live streams**! - -""" - -from urllib.parse import urlencode -from datetime import datetime -from babel import dates - -about = { - "website": 'https://live.space', - "wikidata_id": None, - "official_api_documentation": None, - "use_official_api": True, - "require_api_key": False, - "results": 'JSON', -} - -categories = ['videos'] - -base_url = 'https://backend.live.space' - -# engine dependent config -paging = True -results_per_page = 10 - - -def request(query, params): - - args = {'page': params['pageno'] - 1, 'searchKey': query, 'size': results_per_page} - params['url'] = f"{base_url}/search/public/stream?{urlencode(args)}" - params['headers'] = {'Accept': 'application/json', 'Content-Type': 'application/json'} - - return params - - -def response(resp): - - results = [] - json = resp.json() - now = datetime.now() - - # for live videos - - for result in json.get('result', []): - - title = result.get("title") - thumbnailUrl = result.get("thumbnailUrl") - category = result.get("category/name") - username = result.get("user", {}).get("userName", "") - url = f'https://live.space/watch/{username}' - - # stream tags - # currently the api seems to always return null before the first tag, - # so strip that unless it's not already there - tags = '' - if result.get("tags"): - tags = [x for x in result.get("tags").split(';') if x and x != 'null'] - tags = ', '.join(tags) - - content = [] - if category: - content.append(f'category - {category}') - - if tags and len(tags) > 0: - content.append(f'tags - {tags}') - - # time & duration - start_time = None - if result.get("startTimeStamp"): - start_time = datetime.fromtimestamp(result.get("startTimeStamp") / 1000) - - # for VODs (videos on demand) - end_time = None - if result.get("endTimeStamp"): - end_time = datetime.fromtimestamp(result.get("endTimeStamp") / 1000) - - timestring = "" - if start_time: - delta = (now if end_time is None else end_time) - start_time - timestring = dates.format_timedelta(delta, granularity='second') - - results.append( - { - 'url': url, - 'title': title, - 'content': "No category or tags." if len(content) == 0 else ' '.join(content), - 'author': username, - 'length': (">= " if end_time is None else "") + timestring, - 'publishedDate': start_time, - 'thumbnail': thumbnailUrl, - 'template': 'videos.html', - } - ) - - return results diff --git a/searx/settings.yml b/searx/settings.yml index 3b15edfab..d37b3b43b 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -2474,13 +2474,6 @@ engines: disabled: true inactive: true - - name: livespace - engine: livespace - shortcut: ls - categories: videos - disabled: true - timeout: 5.0 - - name: wordnik engine: wordnik shortcut: wnik