Skip to content

Commit c4c3139

Browse files
committed
fix adapter network issue
custom Tvh server ip setting fix
1 parent fbf877d commit c4c3139

File tree

2 files changed

+44
-26
lines changed

2 files changed

+44
-26
lines changed

addon.xml

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
22
<addon id="script.module.tvh2kodi"
33
name="Tvheadend Setup for Kodi"
4-
version="1.3"
4+
version="1.4"
55
provider-name="edit4ever">
66
<requires>
77
<import addon="xbmc.python" version="2.6.0"/>
@@ -16,8 +16,12 @@
1616
<summary>Kodi interface for Tvheadend setup (Tvh2Kodi)</summary>
1717
<description>Tvh2Kodi gives access to the basic Tvheadend settings directly from the Kodi interface. This can be used in place of the Tvheadend web interface to get your Tvheadend backend server configured and running. It is also provides an easy way to scan for new services and channels and to configure your channel EPG sources.
1818

19-
v1.3
20-
- add support for DVB-S mux editing
19+
* minimum version of Tvheadend is 4.2
20+
21+
v1.4
22+
- fix adapter network issue
23+
- add multiple network support to adapter
24+
- allow custom Tvh server ip to be recalled
2125

2226
</description>
2327
<disclaimer>Copyright (C) 2017 edit4ever - edit4ever@gmail.com</disclaimer>
@@ -31,6 +35,9 @@ v1.3
3135
<screenshot>resources/screenshot-03.jpg</screenshot>
3236
</assets>
3337
<news>
38+
v1.3
39+
- add support for DVB-S mux editing
40+
3441
v1.2
3542
- fix error in network parameters load
3643
- fix wrong epg parameter selection

default.py

Lines changed: 34 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,18 @@
2121
if tvh_url_get:
2222
tvh_url_set = xbmcaddon.Addon().setSetting(id='tvhurl', value=tvh_url_get)
2323
else:
24-
tvh_url_set = xbmcaddon.Addon().setSetting(id='tvhurl', value="127.0.0.1")
24+
try:
25+
tvh_url = xbmcaddon.Addon().getSetting('tvhurl')
26+
except:
27+
tvh_url_set = xbmcaddon.Addon().setSetting(id='tvhurl', value="127.0.0.1")
2528
tvh_port_get = xbmcaddon.Addon('pvr.hts').getSetting("http_port")
2629
if tvh_port_get:
2730
tvh_port_set = xbmcaddon.Addon().setSetting(id='tvhport', value=tvh_port_get)
2831
else:
29-
tvh_port_set = xbmcaddon.Addon().setSetting(id='tvhport', value="9981")
32+
try:
33+
tvh_port = xbmcaddon.Addon().getSetting('tvhport')
34+
except:
35+
tvh_port_set = xbmcaddon.Addon().setSetting(id='tvhport', value="9981")
3036
except:
3137
pass
3238

@@ -915,14 +921,17 @@ def adapt_param_load(adapter_uuid_sel):
915921
if adapt_network == []:
916922
adapt_network = ""
917923
else:
918-
adapt_network_uuid = adapt_load['entries'][0]['params'][10]['value'][0]
919-
adapt_network_url = 'http://' + tvh_url + ':' + tvh_port + '/api/idnode/load?uuid=' + str(adapt_network_uuid)
920-
adapt_network_load = requests.get(adapt_network_url).json()
921-
adapt_network = adapt_network_load['entries'][0]['text']
924+
adapt_network_uuid_list = find_list(adapt_load, 'networks', 'value')
925+
adapt_network_name = []
926+
for net_u in adapt_network_uuid_list:
927+
adapt_network_url = 'http://' + tvh_url + ':' + tvh_port + '/api/idnode/load?uuid=' + str(net_u)
928+
adapt_network_load = requests.get(adapt_network_url).json()
929+
adapt_network_name.append(adapt_network_load['entries'][0]['text'])
930+
adapt_network = ' & '.join(str(s) for s in adapt_network_name)
922931
adapt_info_list = ["Name: " + str(adapt_name), "Enabled: " + str(adapt_enabled), "Networks: " + str(adapt_network), "Priority: " + str(adapt_priority), "Enable OTA EPG scanning: " + str(adapt_otaepg), "Allow initial scanning on startup: " + str(adapt_init), "Allow idle scanning: " + str(adapt_idle)]
923-
adapt_param_edit(adapter_uuid_sel, adapt_info_list, adapt_enabled, adapt_name, adapt_network, adapt_priority, adapt_otaepg, adapt_init, adapt_idle)
932+
adapt_param_edit(adapter_uuid_sel, adapt_info_list, adapt_enabled, adapt_name, adapt_network, adapt_network_uuid_list, adapt_priority, adapt_otaepg, adapt_init, adapt_idle)
924933

925-
def adapt_param_edit(adapter_uuid_sel, adapt_info_list, adapt_enabled, adapt_name, adapt_network, adapt_priority, adapt_otaepg, adapt_init, adapt_idle):
934+
def adapt_param_edit(adapter_uuid_sel, adapt_info_list, adapt_enabled, adapt_name, adapt_network, adapt_network_uuid_list, adapt_priority, adapt_otaepg, adapt_init, adapt_idle):
926935
sel_param = dialog.select('Adapters Configuration - Select parameter to edit', list=adapt_info_list)
927936
if sel_param < 0:
928937
adapters()
@@ -941,27 +950,29 @@ def adapt_param_edit(adapter_uuid_sel, adapt_info_list, adapt_enabled, adapt_nam
941950
adapt_enabled = truefalse[sel_adapt_enabled]
942951
param_update = '"enabled":' + adapt_enabled
943952
if sel_param == 2:
944-
networks_url = 'http://' + tvh_url + ':' + tvh_port + '/api/mpegts/network/grid'
953+
networks_url = 'http://' + tvh_url + ':' + tvh_port + '/api/mpegts/input/network_list?uuid=' + adapter_uuid_sel
945954
networks = requests.get(networks_url).json()
946-
net_name = ["Setup New Network"]
947-
net_uuid = [0]
955+
net_uuid = []
948956
if networks['entries'] == []:
949957
if dialog.yesno("No Networks found!", "", "Would you like to setup a new Network?"):
950958
net_uuid_sel = network_new()
951959
param_update = '"networks":["' + net_uuid_sel + '"]'
952960
else:
953-
net_name = ["Setup New Network"]
954-
net_uuid = [0]
955-
for net_n in networks['entries']:
956-
net_name.append(net_n['networkname'])
957-
for net_u in networks['entries']:
958-
net_uuid.append(net_u['uuid'])
959-
sel_network = dialog.select('Select a network to assign to this adapter', list=net_name)
960-
if sel_network == 0:
961-
network_new()
962-
param_update = '"networks":["' + net_uuid_sel + '"]'
963-
if sel_network > 0:
964-
net_uuid_sel = net_uuid[sel_network]
961+
net_key = []
962+
net_val = []
963+
net_dict = networks['entries']
964+
for net_k in net_dict:
965+
net_key.append(net_k['key'])
966+
for net_v in net_dict:
967+
net_val.append(net_v['val'])
968+
net_preselect = [i for i, item in enumerate(net_key) if item in set(adapt_network_uuid_list)]
969+
sel_network = dialog.multiselect('Select which networks to assign to this adapter', options=net_val, preselect=net_preselect)
970+
if sel_network == [] or sel_network == None:
971+
adapt_param_load(adapter_uuid_sel)
972+
else:
973+
for sel in sel_network:
974+
net_uuid.append(net_key[sel])
975+
net_uuid_sel = '", "'.join(str(s) for s in net_uuid)
965976
param_update = '"networks":["' + net_uuid_sel + '"]'
966977
if sel_param == 3:
967978
sel_adapt_priority = dialog.input('Edit the adapter priority (higher used first)', defaultt=str(adapt_priority),type=xbmcgui.INPUT_NUMERIC)

0 commit comments

Comments
 (0)