From 7463c4eab13c03053e73dd5b3cb355a5f1e212e3 Mon Sep 17 00:00:00 2001 From: Cip Date: Tue, 23 Mar 2021 12:31:34 +0200 Subject: [PATCH] manual channel add --- changelog.txt | 3 +++ default.py | 25 +++++++++++++++++++++---- resources/acestreamsearch/channels.py | 21 ++++++++++++++++++++- resources/language/English/strings.po | 13 +++++++++++++ 4 files changed, 57 insertions(+), 5 deletions(-) diff --git a/changelog.txt b/changelog.txt index 9b63002..4049063 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,6 @@ +v 0.1.0 + 1. migrate to python 3 for kodi 19 + v 0.0.3 1. skip ad links from response diff --git a/default.py b/default.py index c5a9f39..ee7d1c2 100644 --- a/default.py +++ b/default.py @@ -15,6 +15,9 @@ settings = xbmcaddon.Addon(id=addon_id) fileslist = xbmc.translatePath(settings.getAddonInfo('profile')) +MODE_SEARCH = 1 +MODE_MANUAL_ADD = 7 + def get_params(): param=[] @@ -68,9 +71,17 @@ def CHANNEL_LIST(): liz.setArt({'icon': "DefaultFolder.png"}) liz.setInfo( type="Video", infoLabels={ "Title": None } ) liz.setProperty('IsPlayable', 'false') - url = sys.argv[0] + "?mode=1" + url = sys.argv[0] + "?mode=" + str(MODE_SEARCH) xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=url, listitem=liz, isFolder=True) + # Manual add channel + liz=xbmcgui.ListItem('[B][COLOR green]'+addon.getLocalizedString(30413)+'[/COLOR][/B]') + liz.setArt({'icon': "DefaultFolder.png"}) + liz.setInfo( type="Video", infoLabels={ "Title": None } ) + liz.setProperty('IsPlayable', 'false') + url = sys.argv[0] + "?mode=" + str(MODE_MANUAL_ADD) + xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=url, listitem=liz, isFolder=False) + channels = Channels() arrChannels = channels.loadChannels() for ch in arrChannels: @@ -96,7 +107,7 @@ def STREAM(name, url, ch_id): if(SETTINGS.ACE_ENGINE_TYPE == 1): #use plexus try: addon_log('plexus') - xbmc.executebuiltin('XBMC.RunPlugin(plugin://program.plexus/?mode=1&url='+url+'&name='+name+'&iconimage='+iconimage+')') + xbmc.executebuiltin('RunPlugin(plugin://program.plexus/?mode=1&url='+url+'&name='+name+'&iconimage='+iconimage+')') except Exception as inst: addon_log(inst) xbmc.executebuiltin("Notification(%s,%s,%i)" % (addon.getLocalizedString(30303), "", 10000)) @@ -122,7 +133,7 @@ def STREAM(name, url, ch_id): channels = Channels() channels.migrateDb() CHANNEL_LIST() -elif mode==1: #search +elif mode == MODE_SEARCH: #search channels = Channels() arrChannels = channels.search() LIST_SEARCH(arrChannels = arrChannels) @@ -138,7 +149,8 @@ def STREAM(name, url, ch_id): pass elif (mode==4): #delete stream channels = Channels() - channels.deleteStream(params["id"]) + if(channels.deleteStream(params["id"])): + xbmc.executebuiltin("Container.Refresh") elif (mode==5): #update stream channels = Channels() if(channels.updateStream(params["id"])): @@ -149,6 +161,11 @@ def STREAM(name, url, ch_id): if(channels.updateAllStreams()): xbmc.executebuiltin("Notification(%s,%s,%i)" % (addon.getLocalizedString(30409), "", 1)) xbmc.executebuiltin("Container.Refresh") +elif(mode == MODE_MANUAL_ADD): + channels = Channels() + if(channels.manualAdd()): + xbmc.executebuiltin("Notification(%s,%s,%i)" % (addon.getLocalizedString(30405), "", 1)) + xbmc.executebuiltin("Container.Refresh") addon_log('------------- END ---------------') xbmcplugin.endOfDirectory(int(sys.argv[1])) \ No newline at end of file diff --git a/resources/acestreamsearch/channels.py b/resources/acestreamsearch/channels.py index cf77f59..77e23a9 100644 --- a/resources/acestreamsearch/channels.py +++ b/resources/acestreamsearch/channels.py @@ -57,6 +57,7 @@ def search(self): return scrapper.execute(name=name) def add(self, name, url): + url = url.lower() ch = Channel(name = name, address = url) if(ch.checkAddrExist()): @@ -75,7 +76,7 @@ def deleteStream(self, chId): ch = Channel() ch.findOne(chId) ch.delete() - xbmc.executebuiltin("Container.Refresh") + return True def loadChannels(self): db_connection=sqlite3.connect(SETTINGS.CHANNELS_DB) @@ -129,5 +130,23 @@ def updateAllStreams(self): percent = round(i * 100 / len(arrChannels)) pDialog.update(percent, ch.name) i = i + 1 + + def manualAdd(self): + kb = xbmc.Keyboard('', addon.getLocalizedString(30403)) + #url + kb.doModal() + if (kb.isConfirmed()): + name = kb.getText() + name = name.title() + if name == '' : sys.exit(0) + else: + kb = xbmc.Keyboard('', addon.getLocalizedString(30404)) + kb.doModal() + if (kb.isConfirmed()): + address = kb.getText() + address = address.title() + if address == '' : sys.exit(0) + else: + return self.add(name, address) diff --git a/resources/language/English/strings.po b/resources/language/English/strings.po index aa5ced5..42133f4 100644 --- a/resources/language/English/strings.po +++ b/resources/language/English/strings.po @@ -89,6 +89,14 @@ msgctxt "#30402" msgid "Search" msgstr "" +msgctxt "#30403" +msgid "Name" +msgstr "" + +msgctxt "#30404" +msgid "Address" +msgstr "" + msgctxt "#30405" msgid "Successfully added!" msgstr "" @@ -116,3 +124,8 @@ msgstr "" msgctxt "#30412" msgid "Updating channels addresses..." msgstr "" + +msgctxt "#30413" +msgid "Manually add channel" +msgstr "" +