-
Notifications
You must be signed in to change notification settings - Fork 37
Expand file tree
/
Copy pathaddon_params.py
More file actions
56 lines (40 loc) · 1.72 KB
/
Copy pathaddon_params.py
File metadata and controls
56 lines (40 loc) · 1.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import json
DEFAULT_MEDIA_DOWNLOAD_PATH = 'special://profile/addon_data/plugin.video.sendtokodi/downloads'
def parse_cli_paramstring(paramstring):
additional_params_index = paramstring.find(' ')
if additional_params_index == -1:
return {'url': paramstring[1:], 'ydlOpts': {}}
additional_params = json.loads(paramstring[additional_params_index:])
return {
'url': paramstring[1:additional_params_index],
'ydlOpts': additional_params['ydlOpts'],
}
def build_flat_playlist_item_url(plugin_url, video_url, paramstring):
list_item_url = plugin_url + "?" + video_url
additional_params_index = paramstring.find(' ')
if additional_params_index != -1:
list_item_url = list_item_url + " " + paramstring[additional_params_index:]
return list_item_url
def resolve_playlist_item_title(video):
if 'title' in video:
return video['title']
return video['url']
def build_ydl_opts(parsed_params, deno_opts=None):
ydl_opts = {'extract_flat': 'in_playlist'}
ydl_opts.update(parsed_params.get('ydlOpts', {}))
if deno_opts:
ydl_opts.update(deno_opts)
return ydl_opts
def resolve_deno_opts(handle, get_setting, get_deno_ydl_opts):
deno_enabled = get_setting(handle, "deno_enabled") == 'true'
if not deno_enabled:
return {}
auto_download = get_setting(handle, "deno_autodownload") == 'true'
return get_deno_ydl_opts(auto_download=auto_download)
def resolve_media_download_settings(handle, get_setting):
enabled = get_setting(handle, "media_autodownload") == 'true'
custom_path = get_setting(handle, "media_download_path")
return {
'enabled': enabled,
'path': custom_path or DEFAULT_MEDIA_DOWNLOAD_PATH,
}