Merge pull request #794 from croneter/fix-nfs-masterlock

Fix Kodi Masterlock for nfs paths (requires restart)
This commit is contained in:
croneter 2019-03-26 18:49:50 +01:00 committed by GitHub
commit de19813a85
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -466,6 +466,31 @@ class InitialSetup(object):
server['machineIdentifier'], server['ip'], server['port'], server['machineIdentifier'], server['ip'], server['port'],
server['scheme']) server['scheme'])
@staticmethod
def _add_sources(root, extension):
changed = False
count = 2
for source in root.findall('.//path'):
if source.text == extension:
count -= 1
if count == 0:
# sources already set
break
else:
# Missing smb:// occurences, re-add.
changed = True
for _ in range(0, count):
source = etree.SubElement(root, 'source')
etree.SubElement(
source,
'name').text = "PlexKodiConnect Masterlock Hack"
etree.SubElement(
source,
'path',
{'pathversion': "1"}).text = extension
etree.SubElement(source, 'allowsharing').text = "true"
return changed
def setup(self): def setup(self):
""" """
Initial setup. Run once upon startup. Initial setup. Run once upon startup.
@ -507,28 +532,13 @@ class InitialSetup(object):
with utils.XmlKodiSetting('sources.xml', with utils.XmlKodiSetting('sources.xml',
force_create=True, force_create=True,
top_element='sources') as xml: top_element='sources') as xml:
root = xml.set_setting(['video']) changed = False
count = 2 for extension in ('smb://', 'nfs://'):
for source in root.findall('.//path'): root = xml.set_setting(['video'])
if source.text == "smb://": changed = self._add_sources(root, extension) or changed
count -= 1 if changed:
if count == 0: xml.write_xml = True
# sources already set reboot = True
break
else:
# Missing smb:// occurences, re-add.
for _ in range(0, count):
source = etree.SubElement(root, 'source')
etree.SubElement(
source,
'name').text = "PlexKodiConnect Masterlock Hack"
etree.SubElement(
source,
'path',
{'pathversion': "1"}).text = "smb://"
etree.SubElement(source, 'allowsharing').text = "true"
if reboot is False:
reboot = xml.write_xml
except utils.ParseError: except utils.ParseError:
pass pass