From: Nicolas Boisselier Date: Thu, 18 Apr 2019 00:10:51 +0000 (+0100) Subject: addon.py X-Git-Url: https://git.nbdom.net/?a=commitdiff_plain;h=891102eb6075d43bc6c5f1c3e25a6b1b7ff22c9b;p=plugin.video.news.nbdom.net.git addon.py --- diff --git a/addon.py b/addon.py new file mode 100755 index 0000000..a3de011 --- /dev/null +++ b/addon.py @@ -0,0 +1,121 @@ +#!/usr/bin/env python +# +# See: https://kodi.wiki/view/Audio-video_add-on_tutorial +# + +import sys +import urllib,urllib2 +import re,json + +def getUrl(url,exp=''): + req = urllib2.Request(url) + req.add_header('User-Agent', 'Kodi') + response = urllib2.urlopen(req) + content = response.read() + response.close() + if exp != '': + match = re.compile(exp,re.DOTALL).findall(content) + return match + return content + +def getParams(): + param=[] + paramstring=sys.argv[2] + + if len(paramstring)>=2: + params=sys.argv[2] + cleanedparams=params.replace('?','') + + if (params[len(params)-1]=='/'): + params=params[0:len(params)-2] + + pairsofparams=cleanedparams.split('&') + param={} + + for i in range(len(pairsofparams)): + splitparams={} + splitparams=pairsofparams[i].split('=') + if (len(splitparams))==2: + param[splitparams[0]]=splitparams[1] + + return param + +def addLink(name,url,iconimage): + ok=True + li = xbmcgui.ListItem(name, iconImage="DefaultVideo.png", thumbnailImage=iconimage) + li.setInfo( type="Video", infoLabels={ "Title": name } ) + ok = xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=url,listitem=li) + return ok + +def addDir(name,url,mode,iconimage,description): + u=sys.argv[0]+"?url="+urllib.quote_plus(url)+"&mode="+str(mode)+"&name="+urllib.quote_plus(name) + ok=True + li = xbmcgui.ListItem(name, iconImage="DefaultFolder.png", thumbnailImage=iconimage) + li.setInfo( type="Video", infoLabels={ "Title": name , "Plot": description} ) + ok = xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=li,isFolder=True) + return ok + +def getVideos(url): + content = getUrl(url) + return content + #from BeautifulSoup import BeautifulSoup + #from io import StringIO, BytesIO + #from lxml.html import parse + #from lxml.html import document_fromstring + #from lxml import etree + #from HTMLParser import HTMLParser + #tree = etree.HTML(content) + #return tree.cssselect('article') + + #tree = parse(url).getroot() + #return tree + parser = etree.HTMLParser() + content = etree.tostring(content, encoding='unicode') + html = StringIO(content) + #tree = etree.parse(StringIO(content), parser) + #print tree + #tree.get('article') + #soup = BeautifulSoup(content) + #return soup.body.find('article', attrs={'class' : 'news-item'}) + videos = [] + #for item in content: + +# +# Main +# +KODI = False + +reload(sys) +sys.setdefaultencoding("UTF8") + +if KODI: + import xbmcgui + import xbmcplugin + #xbmcplugin.setContent(addon_handle, 'plugin.video.news.nbdom.net') + addon = xbmcaddon.Addon('plugin.video.news.nbdom.net') + __language__ = addon.getLocalizedString + __icon__ = addon.getAddonInfo('icon') + __fanart__ = addon.getAddonInfo('fanart') + + +content = getUrl('https://news.nbdom.net/videos/kodi/') +for row in json.loads(content): + #print row['lang'] + print '\t'.join([ + row['lang'], + row['title'], + row['description'], + row['link'], + ]) +#print content +sys.exit(0) + +# NB 17.04.19 addon_handle = int(sys.argv[1]) +# NB 17.04.19 +# NB 17.04.19 url = 'http://localhost/some_video.mkv' +# NB 17.04.19 li = xbmcgui.ListItem('My First Video!', iconImage='DefaultVideo.png') +# NB 17.04.19 xbmcplugin.addDirectoryItem(handle=addon_handle, url=url, listitem=li) + +if KODI: + xbmcplugin.endOfDirectory(addon_handle) + diff --git a/addon.xml b/addon.xml index 7cee8a7..97af143 100644 --- a/addon.xml +++ b/addon.xml @@ -10,7 +10,7 @@ - + video diff --git a/default.py b/default.py deleted file mode 100755 index 2e72f78..0000000 --- a/default.py +++ /dev/null @@ -1,121 +0,0 @@ -#!/usr/bin/env python -# -# See: https://kodi.wiki/view/Audio-video_add-on_tutorial -# - -import sys -import urllib,urllib2 -import re,json -#from BeautifulSoup import BeautifulSoup -#from io import StringIO, BytesIO -#from lxml.html import parse -#from lxml.html import document_fromstring -#from lxml import etree -#from HTMLParser import HTMLParser - -def getUrl(url,exp=''): - req = urllib2.Request(url) - req.add_header('User-Agent', 'Kodi') - response = urllib2.urlopen(req) - content = response.read() - response.close() - if exp != '': - match = re.compile(exp,re.DOTALL).findall(content) - return match - return content - -def getParams(): - param=[] - paramstring=sys.argv[2] - - if len(paramstring)>=2: - params=sys.argv[2] - cleanedparams=params.replace('?','') - - if (params[len(params)-1]=='/'): - params=params[0:len(params)-2] - - pairsofparams=cleanedparams.split('&') - param={} - - for i in range(len(pairsofparams)): - splitparams={} - splitparams=pairsofparams[i].split('=') - if (len(splitparams))==2: - param[splitparams[0]]=splitparams[1] - - return param - -def addLink(name,url,iconimage): - ok=True - li=xbmcgui.ListItem(name, iconImage="DefaultVideo.png", thumbnailImage=iconimage) - li.setInfo( type="Video", infoLabels={ "Title": name } ) - ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=url,listitem=li) - return ok - -def addDir(name,url,mode,iconimage,description): - u=sys.argv[0]+"?url="+urllib.quote_plus(url)+"&mode="+str(mode)+"&name="+urllib.quote_plus(name) - ok=True - li=xbmcgui.ListItem(name, iconImage="DefaultFolder.png", thumbnailImage=iconimage) - li.setInfo( type="Video", infoLabels={ "Title": name , "Plot": description} ) - ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=li,isFolder=True) - return ok - -def getVideos(url): - content = getUrl(url) - return content - #tree = etree.HTML(content) - #return tree.cssselect('article') - - #tree = parse(url).getroot() - #return tree - parser = etree.HTMLParser() - content = etree.tostring(content, encoding='unicode') - html = StringIO(content) - #tree = etree.parse(StringIO(content), parser) - #print tree - #tree.get('article') - #soup = BeautifulSoup(content) - #return soup.body.find('article', attrs={'class' : 'news-item'}) - videos = [] - #for item in content: - -# -# Main -# -KODI = False - -reload(sys) -sys.setdefaultencoding("UTF8") - -if KODI: - import xbmcgui - import xbmcplugin - #xbmcplugin.setContent(addon_handle, 'plugin.video.news.nbdom.net') - addon = xbmcaddon.Addon('plugin.video.news.nbdom.net') - __language__ = addon.getLocalizedString - __icon__ = addon.getAddonInfo('icon') - __fanart__ = addon.getAddonInfo('fanart') - - -content = getUrl('https://news.nbdom.net/videos/kodi/') -for row in json.loads(content): - #print row['lang'] - print '\t'.join([ - row['lang'], - row['title'], - row['description'], - row['link'], - ]) -#print content -sys.exit(0) - -# NB 17.04.19 addon_handle = int(sys.argv[1]) -# NB 17.04.19 -# NB 17.04.19 url = 'http://localhost/some_video.mkv' -# NB 17.04.19 li = xbmcgui.ListItem('My First Video!', iconImage='DefaultVideo.png') -# NB 17.04.19 xbmcplugin.addDirectoryItem(handle=addon_handle, url=url, listitem=li) - -if KODI: - xbmcplugin.endOfDirectory(addon_handle) -