| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | # SPDX-License-Identifier: AGPL-3.0-or-later"""FindThatMeme (Images)"""from json import dumpsfrom datetime import datetimefrom searx.utils import humanize_bytesabout = {    "website": 'https://findthatmeme.com',    "official_api_documentation": None,    "use_official_api": False,    "require_api_key": False,    "results": "JSON",}base_url = "https://findthatmeme.com/api/v1/search"categories = ['images']paging = Truedef request(query, params):    start_index = (params["pageno"] - 1) * 50    data = {"search": query, "offset": start_index}    params["url"] = base_url    params["method"] = 'POST'    params['headers']['content-type'] = "application/json"    params['data'] = dumps(data)    return paramsdef response(resp):    search_res = resp.json()    results = []    for item in search_res:        img = 'https://findthatmeme.us-southeast-1.linodeobjects.com/' + item['image_path']        thumb = 'https://findthatmeme.us-southeast-1.linodeobjects.com/thumb/' + item.get('thumbnail', '')        date = datetime.strptime(item["updated_at"].split("T")[0], "%Y-%m-%d")        formatted_date = datetime.utcfromtimestamp(date.timestamp())        results.append(            {                'url': item['source_page_url'],                'title': item['source_site'],                'img_src': img if item['type'] == 'IMAGE' else thumb,                'filesize': humanize_bytes(item['meme_file_size']),                'publishedDate': formatted_date,                'template': 'images.html',            }        )    return results
 |