.oO SearXNG Developer Documentation Oo.
Loading...
Searching...
No Matches
vimeo.py
Go to the documentation of this file.
1# SPDX-License-Identifier: AGPL-3.0-or-later
2"""
3 Wikipedia (Web
4"""
5
6from urllib.parse import urlencode
7from json import loads
8from dateutil import parser
9
10# about
11about = {
12 "website": 'https://vimeo.com/',
13 "wikidata_id": 'Q156376',
14 "official_api_documentation": 'http://developer.vimeo.com/api',
15 "use_official_api": False,
16 "require_api_key": False,
17 "results": 'HTML',
18}
19
20# engine dependent config
21categories = ['videos']
22paging = True
23
24# search-url
25base_url = 'https://vimeo.com/'
26search_url = base_url + '/search/page:{pageno}?{query}'
27
28
29# do search-request
30def request(query, params):
31 params['url'] = search_url.format(pageno=params['pageno'], query=urlencode({'q': query}))
32
33 return params
34
35
36# get response from search-request
37def response(resp):
38 results = []
39 data_start_pos = resp.text.find('{"filtered"')
40 data_end_pos = resp.text.find(';\n', data_start_pos + 1)
41 data = loads(resp.text[data_start_pos:data_end_pos])
42
43 # parse results
44 for result in data['filtered']['data']:
45 result = result[result['type']]
46 videoid = result['uri'].split('/')[-1]
47 url = base_url + videoid
48 title = result['name']
49 thumbnail = result['pictures']['sizes'][-1]['link']
50 publishedDate = parser.parse(result['created_time'])
51
52 # append result
53 results.append(
54 {
55 'url': url,
56 'title': title,
57 'content': '',
58 'template': 'videos.html',
59 'publishedDate': publishedDate,
60 'iframe_src': "https://player.vimeo.com/video/" + videoid,
61 'thumbnail': thumbnail,
62 }
63 )
64
65 # return results
66 return results
request(query, params)
Definition vimeo.py:30