The branch, eden-pre has been updated
via 6a73d27ebf2ffa859d6fefe884f72c39ae3db559 (commit)
via 06aa4a01e3dc02c243adb9727b595936c8f26eb4 (commit)
from 5d495fce31ef424241e135f8526ff61e726905c5 (commit)
- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=6a73d27ebf2ffa859d6fefe884f72c39ae3db559
commit 6a73d27ebf2ffa859d6fefe884f72c39ae3db559
Author: spiff <[email protected]>
Date: Fri Oct 7 09:08:51 2011 +0200
[plugin.audio.twit] updated to version 1.0.1
diff --git a/plugin.audio.twit/addon.xml b/plugin.audio.twit/addon.xml
index 294bf86..470ceb7 100644
--- a/plugin.audio.twit/addon.xml
+++ b/plugin.audio.twit/addon.xml
@@ -1,19 +1,19 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<addon id="plugin.audio.twit"
- name="TWiT"
- version="1.0.0"
- provider-name="divingmule">
- <requires>
- <import addon="xbmc.python" version="2.0"/>
- <import addon="script.module.beautifulsoup" version="3.0.8"/>
- </requires>
- <extension point="xbmc.python.pluginsource"
- library="default.py">
- <provides>audio</provides>
- </extension>
- <extension point="xbmc.addon.metadata">
- <summary>TWiT</summary>
- <description>Podcasts from the TWiT Network</description>
- <platform>all</platform>
- </extension>
-</addon>
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<addon id="plugin.audio.twit"
+ name="TWiT"
+ version="1.0.1"
+ provider-name="divingmule">
+ <requires>
+ <import addon="xbmc.python" version="2.0"/>
+ <import addon="script.module.beautifulsoup" version="3.0.8"/>
+ </requires>
+ <extension point="xbmc.python.pluginsource"
+ library="default.py">
+ <provides>audio</provides>
+ </extension>
+ <extension point="xbmc.addon.metadata">
+ <summary>TWiT</summary>
+ <description>Podcasts from the TWiT Network</description>
+ <platform>all</platform>
+ </extension>
+</addon>
\ No newline at end of file
diff --git a/plugin.audio.twit/changelog.txt b/plugin.audio.twit/changelog.txt
index 8ab09ff..fb2466a 100644
--- a/plugin.audio.twit/changelog.txt
+++ b/plugin.audio.twit/changelog.txt
@@ -1,2 +1,6 @@
-Version 1.0.0
+Version 1.0.1
+updated shows
+new icon and fanart
+
+Version 1.0.0
initial for eden
\ No newline at end of file
diff --git a/plugin.audio.twit/default.py b/plugin.audio.twit/default.py
index 78b6365..053f47d 100644
--- a/plugin.audio.twit/default.py
+++ b/plugin.audio.twit/default.py
@@ -1,155 +1,155 @@
-import urllib,urllib2,re,os
-import xbmcplugin,xbmcgui,xbmcaddon
-from BeautifulSoup import BeautifulSoup
-
-__settings__ = xbmcaddon.Addon(id='plugin.audio.twit')
-__language__ = __settings__.getLocalizedString
-__home__ = __settings__.getAddonInfo('path')
-
-def CATEGORIES():
-
addLinkLive(__language__(30000),'http://twit.am/listen',__home__+'/icon.png')
-
addDir(__language__(30001),'http://twit.tv/twit',1,'http://leoville.tv/podcasts/coverart/twit600audio.jpg')
-
addDir(__language__(30002),'http://twit.tv/tnt',1,'http://leoville.tv/podcasts/coverart/tnt600audio.jpg')
-
addDir(__language__(30003),'http://twit.tv/hn',1,'http://leoville.tv/podcasts/coverart/hn144audio.jpg')
-
addDir(__language__(30004),'http://twit.tv/ipt',1,'http://leo.am/ipad600audio.jpg')
-
addDir(__language__(30005),'http://twit.tv/aaa',1,'http://leo.am/podcasts/coverart/aaa600audio.jpg')
-
addDir(__language__(30006),'http://twit.tv/tsh',1,'http://leoville.tv/podcasts/coverart/tsh600audio.jpg')
-
addDir(__language__(30007),'http://twit.tv/tri',1,'http://leo.am/tri600audio.jpg')
-
addDir(__language__(30008),'http://twit.tv/twig',1,'http://leoville.tv/podcasts/coverart/twig600audio.jpg')
-
addDir(__language__(30009),'http://twit.tv/ww',1,'http://leoville.tv/podcasts/coverart/ww600audio.jpg')
-
addDir(__language__(30010),'http://twit.tv/mbw',1,'http://leoville.tv/podcasts/coverart/mbw600audio.jpg')
-
addDir(__language__(30011),'http://twit.tv/photo',1,'http://leo.am/photo144audio.jpg')
-
addDir(__language__(30012),'http://twit.tv/fourcast',1,'http://leo.am/fc600audio.jpg')
-
addDir(__language__(30013),'http://twit.tv/ttg',1,'http://leoville.tv/podcasts/coverart/ttg600audio.jpg')
-
addDir(__language__(30014),'http://twit.tv/DGW',1,'http://leoville.tv/podcasts/coverart/dgw600audio.jpg')
-
addDir(__language__(30015),'http://twit.tv/sn',1,'http://leoville.tv/podcasts/coverart/sn600audio.jpg')
-
addDir(__language__(30016),'http://twit.tv/twirt',1,'http://leoville.tv/podcasts/coverart/twirt144audio.jpg')
-
addDir(__language__(30017),'http://twit.tv/nsfw',1,'http://leoville.tv/podcasts/coverart/nsfw600audio.jpg')
-
addDir(__language__(30018),'http://twit.tv/twich',1,'http://leoville.tv/podcasts/coverart/twich600audio.jpg')
-
addDir(__language__(30019),'http://twit.tv/fr',1,'http://leo.am/fr600audio.jpg')
-
addDir(__language__(30020),'http://twit.tv/htg',1,'http://leoville.tv/podcasts/coverart/htg600audio.jpg')
-
addDir(__language__(30021),'http://twit.tv/specials',1,'http://leoville.tv/podcasts/coverart/specials600audio.jpg')
-
addDir(__language__(30022),'http://twit.tv/kiki',1,'http://leoville.tv/podcasts/coverart/dksh600audio.jpg')
-
addDir(__language__(30023),'http://twit.tv/FLOSS',1,'http://leoville.tv/podcasts/coverart/floss600audio.jpg')
-
addDir(__language__(30024),'http://twit.tv/twil',1,'http://leoville.tv/podcasts/coverart/twil600audio.jpg')
-
addDir(__language__(30025),'http://twit.tv/FIB',1,'http://leoville.tv/podcasts/coverart/fib600audio.jpg')
-
addDir(__language__(30026),'http://twit.tv/gtt',1,'http://leo.am/gtt600audio.jpg')
-
addDir(__language__(30027),'http://twit.tv/natn',1,'http://leoville.tv/podcasts/coverart/tsh600audio.jpg')
-
addDir(__language__(30028),'http://twit.tv/cgw',1,'http://leo.am/cgw600audio.jpg')
-
-
-def INDEX(url,iconimage):
- req = urllib2.Request(url)
- req.addheaders = [('Referer', 'http://twit.tv/'),
- ('Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.3)
Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729)')]
- response = urllib2.urlopen(req)
- link=response.read()
- response.close()
- soup = BeautifulSoup(link, convertEntities=BeautifulSoup.HTML_ENTITIES)
- shows = soup.findAll('div', attrs={'class' : "podcast-meta"})
- del shows[-1]
- for show in shows:
- try:
- name = show('a')[0].string+' - '+show('p')[0].string
- except:
- name = show('a')[0].string
- url = 'http://twit.tv'+show('a')[0]['href']
- addLink(name,url,2,iconimage)
- page=re.compile('<div class="episode-prevnext clearfix"><a href=".+?"
class="episode-next pager-prev active"><span>Next</span></a><a href="(.+?)"
class="episode-prev pager-next
active"><span>Prev</span></a></div>').findall(link)
- if len(page)<1:
- page=re.compile('<span>Next</span></span><a href="(.+?)"
class="episode-prev pager-next active">').findall(link)
- for url in page:
- addDir('Next Page','http://twit.tv'+url,1,'')
-
-def getURL(url):
- req = urllib2.Request(url)
- req.addheaders = [('Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US;
rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729)')]
- response = urllib2.urlopen(req)
- link=response.read()
- response.close()
- soup = BeautifulSoup(link, convertEntities=BeautifulSoup.HTML_ENTITIES)
- url = soup.find('div', attrs={'class' : 'download'})('a')[0]['href']
- item = xbmcgui.ListItem(path=url)
- xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, item)
-
-def get_params():
- 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 addLinkLive(name,url,iconimage):
- ok=True
- liz=xbmcgui.ListItem(name, iconImage="DefaultAudio.png",
thumbnailImage=iconimage)
- liz.setInfo( type="Audio", infoLabels={ "Title": name } )
-
ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=url,listitem=liz)
- return ok
-
-def addLink(name,url,mode,iconimage):
-
u=sys.argv[0]+"?url="+urllib.quote_plus(url)+"&mode="+str(mode)+"&name="+urllib.quote_plus(name)+"&iconimage="+urllib.quote_plus(iconimage)
- ok=True
- liz=xbmcgui.ListItem(name, iconImage=iconimage,
thumbnailImage=iconimage)
- liz.setInfo( type="Audio", infoLabels={ "Title": name} )
- liz.setProperty('IsPlayable', 'true')
-
ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz)
- return ok
-
-def addDir(name,url,mode,iconimage):
-
u=sys.argv[0]+"?url="+urllib.quote_plus(url)+"&mode="+str(mode)+"&name="+urllib.quote_plus(name)+"&iconimage="+urllib.quote_plus(iconimage)
- ok=True
- liz=xbmcgui.ListItem(name, iconImage=iconimage,
thumbnailImage=iconimage)
- liz.setInfo( type="Audio", infoLabels={ "Title": name } )
-
ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz,isFolder=True)
- return ok
-
-params=get_params()
-url=None
-name=None
-mode=None
-
-try:
- url=urllib.unquote_plus(params["url"])
-except:
- pass
-try:
- name=urllib.unquote_plus(params["name"])
-except:
- pass
-try:
- mode=int(params["mode"])
-except:
- pass
-try:
- iconimage=urllib.unquote_plus(params["iconimage"])
-except:
- pass
-
-print "Mode: "+str(mode)
-print "URL: "+str(url)
-print "Name: "+str(name)
-
-if mode==None or url==None or len(url)<1:
- print ""
- CATEGORIES()
-
-elif mode==1:
- print ""+url
- INDEX(url,iconimage)
-
-elif mode==2:
- print ""+url
- getURL(url)
-
+import urllib,urllib2,re,os
+import xbmcplugin,xbmcgui,xbmcaddon
+from BeautifulSoup import BeautifulSoup
+
+__settings__ = xbmcaddon.Addon(id='plugin.audio.twit')
+__language__ = __settings__.getLocalizedString
+home = __settings__.getAddonInfo('path')
+fanart = xbmc.translatePath( os.path.join( home, 'fanart.jpg' ) )
+
+
+def categories():
+
addLink(__language__(30000),'http://twit.am/listen',3,xbmc.translatePath(
os.path.join( home, 'resources', 'live.png' ) ))
+
addDir(__language__(30001),'http://twit.tv/show/this-week-in-tech',1,'http://leoville.tv/podcasts/coverart/twit600audio.jpg')
+
addDir(__language__(30002),'http://twit.tv/show/tech-news-today',1,'http://leoville.tv/podcasts/coverart/tnt600audio.jpg')
+
addDir(__language__(30003),'http://twit.tv/show/fourcast',1,'http://leo.am/fc600audio.jpg')
+
addDir(__language__(30004),'http://twit.tv/show/ipad-today',1,'http://leo.am/ipad600audio.jpg')
+
addDir(__language__(30005),'http://twit.tv/show/all-about-android',1,'http://leo.am/podcasts/coverart/aaa600audio.jpg')
+
addDir(__language__(30006),'http://twit.tv/show/tech-history-today',1,'http://leoville.tv/podcasts/coverart/tht600audio.jpg')
+
addDir(__language__(30007),'http://twit.tv/show/this-week-in-google',1,'http://leoville.tv/podcasts/coverart/twig600audio.jpg')
+
addDir(__language__(30008),'http://twit.tv/show/windows-weekly',1,'http://leoville.tv/podcasts/coverart/ww600audio.jpg')
+
addDir(__language__(30009),'http://twit.tv/show/macbreak-weekly',1,'http://leoville.tv/podcasts/coverart/mbw600audio.jpg')
+
addDir(__language__(30010),'http://twit.tv/show/triangulation',1,'http://leo.am/tri600audio.jpg')
+
addDir(__language__(30011),'http://twit.tv/show/twit-photo',1,'http://leoville.tv/podcasts/coverart/photo144.jpg')
+
addDir(__language__(30012),'http://twit.tv/show/the-tech-guy',1,'http://leoville.tv/podcasts/coverart/ttg600audio.jpg')
+
addDir(__language__(30013),'http://twit.tv/show/security-now',1,'http://leoville.tv/podcasts/coverart/sn600audio.jpg')
+
addDir(__language__(30014),'http://twit.tv/show/the-social-hour',1,'http://leoville.tv/podcasts/coverart/tsh600audio.jpg')
+
addDir(__language__(30015),'http://twit.tv/show/weekly-daily-giz-wiz',1,'http://leoville.tv/podcasts/coverart/dgw600audio.jpg')
+
addDir(__language__(30016),'http://twit.tv/show/nsfw',1,'http://leoville.tv/podcasts/coverart/nsfw600audio.jpg')
+
addDir(__language__(30017),'http://twit.tv/show/dr-kikis-science-hour',1,'http://leoville.tv/podcasts/coverart/dksh600audio.jpg')
+
addDir(__language__(30018),'http://twit.tv/show/floss-weekly',1,'http://leoville.tv/podcasts/coverart/floss600audio.jpg')
+
addDir(__language__(30019),'http://twit.tv/show/this-week-in-law',1,'http://leoville.tv/podcasts/coverart/twil600audio.jpg')
+
addDir(__language__(30020),'http://twit.tv/show/twit-live-specials',1,'http://leoville.tv/podcasts/coverart/specials600audio.jpg')
+
addDir(__language__(30021),'http://twit.tv/show/home-theater-geeks',1,'http://leoville.tv/podcasts/coverart/htg600audio.jpg')
+
addDir(__language__(30022),'http://twit.tv/show/frame-rate',1,'http://leo.am/fr600audio.jpg')
+
addDir(__language__(30023),'http://twit.tv/show/this-week-in-computer-hardware',1,'http://leoville.tv/podcasts/coverart/twich600audio.jpg')
+
addDir(__language__(30024),'http://twit.tv/show/ham-nation',1,'http://leoville.tv/podcasts/coverart/hn144audio.jpg')
+
addDir(__language__(30025),'http://twit.tv/show/futures-in-biotech',1,'http://leoville.tv/podcasts/coverart/fib600audio.jpg')
+
addDir(__language__(30026),'http://twit.tv/show/this-week-in-radio-tech',1,'http://static.mediafly.com/publisher/images/ab7b2412afa84674971e4c93665d0e06/icon-600x600.png')
+
+
+def index(url,iconimage):
+ headers = {'User-agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0)
Gecko/20100101 Firefox/6.0'}
+ req = urllib2.Request(url,None,headers)
+ response = urllib2.urlopen(req)
+ link=response.read()
+ soup = BeautifulSoup(link, convertEntities=BeautifulSoup.HTML_ENTITIES)
+ items = soup.findAll('div', attrs={'class' :
'view-content'})[3]('div', attrs={'class' : 'field-content'})
+ for i in items:
+ name = i.a.string
+ url = i.a['href']
+ addLink(name,url,2,iconimage)
+ try:
+ page = 'http://twit.tv'+soup('li', attrs={'class' :
"pager-next"})[0].a['href']
+ addDir('Next Page',page,1,iconimage)
+ except:
+ pass
+
+
+def getAudio(url):
+ headers = {'User-agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0)
Gecko/20100101 Firefox/6.0'}
+ req = urllib2.Request(url,None,headers)
+ response = urllib2.urlopen(req)
+ link=response.read()
+ soup = BeautifulSoup(link, convertEntities=BeautifulSoup.HTML_ENTITIES)
+ item = xbmcgui.ListItem(path = soup('a', attrs={'class' : "audio
download"})[0]['href'])
+ xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, item)
+
+
+def playLive(url):
+ item = xbmcgui.ListItem(path=url)
+ xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, item)
+
+
+def get_params():
+ 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,mode,iconimage):
+
u=sys.argv[0]+"?url="+urllib.quote_plus(url)+"&mode="+str(mode)+"&name="+urllib.quote_plus(name)+"&iconimage="+urllib.quote_plus(iconimage)
+ ok=True
+ liz=xbmcgui.ListItem(name, iconImage=iconimage,
thumbnailImage=iconimage)
+ liz.setInfo( type="Audio", infoLabels={ "Title": name} )
+ liz.setProperty('IsPlayable', 'true')
+ liz.setProperty( "Fanart_Image", fanart )
+
ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz)
+ return ok
+
+
+def addDir(name,url,mode,iconimage):
+
u=sys.argv[0]+"?url="+urllib.quote_plus(url)+"&mode="+str(mode)+"&name="+urllib.quote_plus(name)+"&iconimage="+urllib.quote_plus(iconimage)
+ ok=True
+ liz=xbmcgui.ListItem(name, iconImage=iconimage,
thumbnailImage=iconimage)
+ liz.setInfo( type="Audio", infoLabels={ "Title": name } )
+ liz.setProperty( "Fanart_Image", fanart )
+
ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz,isFolder=True)
+ return ok
+
+
+params=get_params()
+url=None
+name=None
+mode=None
+
+try:
+ url=urllib.unquote_plus(params["url"])
+except:
+ pass
+try:
+ name=urllib.unquote_plus(params["name"])
+except:
+ pass
+try:
+ iconimage=urllib.unquote_plus(params["iconimage"])
+except:
+ pass
+try:
+ mode=int(params["mode"])
+except:
+ pass
+
+print "Mode: "+str(mode)
+print "URL: "+str(url)
+print "Name: "+str(name)
+
+if mode==None or url==None or len(url)<1:
+ print ""
+ categories()
+
+elif mode==1:
+ print ""
+ index(url,iconimage)
+
+elif mode==2:
+ print ""
+ getAudio(url)
+
+elif mode==3:
+ print ""
+ playLive(url)
+
xbmcplugin.endOfDirectory(int(sys.argv[1]))
\ No newline at end of file
diff --git a/plugin.audio.twit/icon.png b/plugin.audio.twit/icon.png
index 370d0e2..869d86f 100644
Binary files a/plugin.audio.twit/icon.png and b/plugin.audio.twit/icon.png
differ
diff --git a/plugin.audio.twit/resources/language/English/strings.xml
b/plugin.audio.twit/resources/language/English/strings.xml
index b0c0c6a..af70e96 100644
--- a/plugin.audio.twit/resources/language/English/strings.xml
+++ b/plugin.audio.twit/resources/language/English/strings.xml
@@ -1,32 +1,30 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<strings>
- <string id="30000">Twit Live</string>
- <string id="30001">This WEEK in TECH</string>
- <string id="30002">Tech News Today</string>
- <string id="30003">Ham Nation</string>
- <string id="30004">iPad Today</string>
- <string id="30005">All About Android</string>
- <string id="30006">The Social Hour</string>
- <string id="30007">Triangulation</string>
- <string id="30008">this WEEK in GOOGLE</string>
- <string id="30009">Windows Weekly</string>
- <string id="30010">MacBreak Weekly</string>
- <string id="30011">TWiT Photo</string>
- <string id="30012">FourCast</string>
- <string id="30013">The Tech Guy</string>
- <string id="30014">Weekly Daily Giz Wiz</string>
- <string id="30015">Security Now</string>
- <string id="30016">This Week in Radio Tech</string>
- <string id='30017'>NSFW</string>
- <string id='30018'>this WEEK in COMPUTER HARDWARE</string>
- <string id='30019'>Frame Rate</string>
- <string id='30020'>Home Theater Geeks</string>
- <string id='30021'>TWiT Live Specials</string>
- <string id='30022'>Dr. Kiki's Science Hour</string>
- <string id='30023'>FLOSS Weekly</string>
- <string id='30024'>this WEEK in LAW</string>
- <string id='30025'>Futures in Biotech</string>
- <string id='30026'>Green Tech Today</string>
- <string id='30027'>The Social Hour</string>
- <string id='30028'>Current Geek Weekly</string>
-</strings>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<strings>
+ <string id='30000'>Twit Live</string>
+ <string id="30001">This WEEK in TECH</string>
+ <string id="30002">Tech News Today</string>
+ <string id="30003">FourCast</string>
+ <string id="30004">iPad Today</string>
+ <string id='30005'>All About Android</string>
+ <string id="30006">Tech History Today</string>
+ <string id="30007">This WEEK in GOOGLE</string>
+ <string id="30008">Windows Weekly</string>
+ <string id="30009">MacBreak Weekly</string>
+ <string id='30010'>Triangulation</string>
+ <string id='30011'>TWiT Photo</string>
+ <string id="30012">The Tech Guy</string>
+ <string id="30013">Security Now</string>
+ <string id="30014">The Social Hour</string>
+ <string id="30015">Weekly Daily Giz Wiz</string>
+ <string id="30016">NSFW</string>
+ <string id="30017">Dr. Kikis Science Hour</string>
+ <string id="30018">FLOSS Weekly</string>
+ <string id="30019">This Week in Law</string>
+ <string id="30020">TWiT Live Specials</string>
+ <string id='30021'>Home Theater Geeks</string>
+ <string id='30022'>Frame Rate</string>
+ <string id='30023'>This Week In Computer Hardware</string>
+ <string id='30024'>Ham Nation</string>
+ <string id='30025'>Futures in Biotech</string>
+ <string id='30026'>This Week in Radio Tech</string>
+</strings>
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=06aa4a01e3dc02c243adb9727b595936c8f26eb4
commit 06aa4a01e3dc02c243adb9727b595936c8f26eb4
Author: spiff <[email protected]>
Date: Fri Oct 7 09:07:48 2011 +0200
[plugin.video.twit] updated to version 1.0.3
diff --git a/plugin.video.twit/addon.xml b/plugin.video.twit/addon.xml
index 416406d..3a67137 100644
--- a/plugin.video.twit/addon.xml
+++ b/plugin.video.twit/addon.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="plugin.video.twit"
name="TWiT"
- version="1.0.2"
+ version="1.0.3"
provider-name="divingmule,thanks to Adam B.">
<requires>
<import addon="xbmc.python" version="2.0"/>
diff --git a/plugin.video.twit/changelog.txt b/plugin.video.twit/changelog.txt
index ab0fcc7..d5e3b2e 100644
--- a/plugin.video.twit/changelog.txt
+++ b/plugin.video.twit/changelog.txt
@@ -1,3 +1,8 @@
+Version 1.0.3
+updated shows
+new icon and fanart
+added TWiT Live via Justin.tv - 1 Mbs
+
Version 1.0.2
added TWiT Live via Ustream - 1.5 Mbs
diff --git a/plugin.video.twit/default.py b/plugin.video.twit/default.py
index 54323b3..12d4047 100644
--- a/plugin.video.twit/default.py
+++ b/plugin.video.twit/default.py
@@ -6,120 +6,85 @@ __settings__ = xbmcaddon.Addon(id='plugin.video.twit')
__language__ = __settings__.getLocalizedString
videoq = __settings__.getSetting('video_quality')
home = __settings__.getAddonInfo('path')
-
-
-def CATEGORIES():
- addDir(__language__(30017),'addLiveLinks',4,xbmc.translatePath(
os.path.join( home, 'resources/live.png' ) ))
-
addDir(__language__(30000),'http://feeds.twit.tv/twit_video_large',1,'http://static.mediafly.com/publisher/images/ba85558acd844c7384921f9f96989a37/icon-600x600.png')
-
addDir(__language__(30001),'http://feeds.twit.tv/tnt_video_large',1,'http://static.mediafly.com/publisher/images/c21d95482417436ead61b0890a8fc282/icon-600x600.png')
-
addDir(__language__(30002),'http://feeds.twit.tv/fc_video_large',1,'http://static.mediafly.com/publisher/images/f7f40bcf20c742cfb55cbccb56c2c68c/icon-600x600.png')
-
addDir(__language__(30003),'http://feeds.twit.tv/ipad_video_large',1,'http://static.mediafly.com/publisher/images/201bc64beb6b4956971650fd1462a704/icon-600x600.png')
-
addDir(__language__(30031),'http://feeds.twit.tv/aaa_video_large',1,'http://static.mediafly.com/publisher/images/7874016b2dd3490fa1e8b606dff4d2fa/icon-600x600.png')
-
addDir(__language__(30004),'http://feeds.twit.tv/gtt_video_large',1,'http://static.mediafly.com/publisher/images/0cc717b3cc94406a885e5df42cac2b13/icon-600x600.png')
-
addDir(__language__(30005),'http://feeds.twit.tv/twig_video_large',1,'http://static.mediafly.com/publisher/images/8248233e64fc4c68b722be0ec75d637d/icon-600x600.png')
-
addDir(__language__(30006),'http://feeds.twit.tv/ww_video_large',1,'http://static.mediafly.com/publisher/images/ad659facf4cb4fe795b595d9b4275daf/icon-600x600.png')
-
addDir(__language__(30007),'http://feeds.twit.tv/mbw_video_large',1,'http://static.mediafly.com/publisher/images/a24b7b336fb14a2ba3f1e31223f622ac/icon-600x600.png')
-
addDir(__language__(30029),'http://feeds.twit.tv/tri_video_large',1,'http://static.mediafly.com/publisher/images/c60ef74e0a3545e490d7cefbc369d168/icon-600x600.png')
-
addDir(__language__(30030),'http://feeds.twit.tv/photo_video_large',1,'http://static.mediafly.com/publisher/images/ca045f623e7d48509c8f4ff9a1ab7259/icon-600x600.png')
-
addDir(__language__(30008),'http://feeds.twit.tv/ttg_video_large',1,'http://static.mediafly.com/publisher/images/d51aaf03dcfe4502a49e885d4201c278/icon-600x600.png')
-
addDir(__language__(30009),'http://feeds.twit.tv/sn_video_large',1,'http://static.mediafly.com/publisher/images/1ac666ad22d940239754fe953207fb42/icon-600x600.png')
-
addDir(__language__(30010),'http://twit.tv/tsh',2,'http://twit.tv/files/imagecache/coverart/coverart/tsh600.jpg')
-
addDir(__language__(30011),'http://feeds.twit.tv/dgw_video_large',1,'http://static.mediafly.com/publisher/images/72acf86f350b40c5b5fd132dcacc78be/icon-600x600.png')
-
addDir(__language__(30012),'http://feeds.twit.tv/nsfw_video_large',1,'http://static.mediafly.com/publisher/images/54f4a471ae6c418d89647968a2ea9c91/icon-600x600.png')
-
addDir(__language__(30013),'http://feeds.twit.tv/dksh_video_large',1,'http://static.mediafly.com/publisher/images/c9ed18a67b134406a4d5fd357db8b0c9/icon-600x600.png')
-
addDir(__language__(30014),'http://feeds.twit.tv/floss_video_large',1,'http://static.mediafly.com/publisher/images/06cecab60c784f9d9866f5dcb73227c3/icon-600x600.png')
-
addDir(__language__(30015),'http://feeds.twit.tv/twil_video_large',1,'http://static.mediafly.com/publisher/images/b2911bcc34174461ba970d2e38507340/icon-600x600.png')
-
addDir(__language__(30016),'http://feeds.twit.tv/specials_video_large',1,'http://static.mediafly.com/publisher/images/eed22d09b9524474ac49bc022b556b2b/icon-600x600.png')
-
addDir(__language__(30022),'http://feeds.twit.tv/htg_video_large',1,'http://static.mediafly.com/publisher/images/441a40308195459b8e24f341dc68885c/icon-600x600.png')
-
addDir(__language__(30023),'http://feeds.twit.tv/fr_video_large',1,'http://static.mediafly.com/publisher/images/5a081f72180e41939e549ec7d12be24d/icon-600x600.png')
-
addDir(__language__(30024),'http://feeds.twit.tv/twich_video_large',1,'http://static.mediafly.com/publisher/images/f76d60fdd2ea4822adbc50d2027839ce/icon-600x600.png')
-
addDir(__language__(30027),'http://feeds.twit.tv/hn_video_large',1,'http://static.mediafly.com/publisher/images/7a948708b1a3462bab8721556dd26704/icon-600x600.png')
-
addDir(__language__(30025),'http://twit.tv/FIB',2,'http://leoville.tv/podcasts/coverart/fib600audio.jpg')
-
addDir(__language__(30026),'http://feeds.twit.tv/twirt_video_large',1,'http://static.mediafly.com/publisher/images/ab7b2412afa84674971e4c93665d0e06/icon-600x600.png')
-
-
-def INDEX(url,iconimage):
- req = urllib2.Request(url)
- req.addheaders = [('Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US;
rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729)')]
- response = urllib2.urlopen(req)
- link=response.read()
- response.close()
- if videoq==__language__(30018):
- link=link.replace('_h264b_640x368_500','_h264b_864x480_2000')
- elif videoq==__language__(30019):
- link=link.replace('_h264b_640x368_500','_h264b_864x480_1000')
- elif videoq==__language__(30020):
- link=link.replace('_h264b_640x368_500','_h264b_640x368_256')
- else:
- link=link
- link=link.replace('&',' & ')
- soup = BeautifulSoup(link)
- info = soup.findAll('enclosure')
- url=re.compile('<enclosure url="(.+?)" length=".+?" type="video/mp4"
mediafly:profile="H264b_640x368_500">').findall(str(info))
- title = soup.findAll('title')
- del title[0];del title[0]
- name=re.compile('<title>(.+?)</title>').findall(str(title))
- desc = soup.findAll('itunes:subtitle')
- del desc[0]
-
description=re.compile('<itunes:subtitle>(.+?)</itunes:subtitle>').findall(str(desc))
- pubdate = soup.findAll('pubdate')
- del pubdate[0]
- date=re.compile('<pubdate>(.+?)</pubdate>').findall(str(pubdate))
- for index in range (len(name)):
- if len(name)==len(description):
-
addLink(name[index],url[index],description[index],date[index],iconimage)
- else:
- addLink(name[index],url[index],'',date[index],iconimage)
-
-def INDEXWebsite(url,iconimage):
- req = urllib2.Request(url)
- req.addheaders = [('Referer', 'http://twit.tv/'),
- ('Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.3)
Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729)')]
+fanart = xbmc.translatePath( os.path.join( home, 'fanart.jpg' ) )
+
+
+def categories():
+ addDir(__language__(30000),'addLiveLinks',3,xbmc.translatePath(
os.path.join( home, 'resources', 'live.png' ) ))
+
addDir(__language__(30001),'http://twit.tv/show/this-week-in-tech',1,'http://static.mediafly.com/publisher/images/ba85558acd844c7384921f9f96989a37/icon-600x600.png')
+
addDir(__language__(30002),'http://twit.tv/show/tech-news-today',1,'http://static.mediafly.com/publisher/images/c21d95482417436ead61b0890a8fc282/icon-600x600.png')
+
addDir(__language__(30003),'http://twit.tv/show/fourcast',1,'http://static.mediafly.com/publisher/images/f7f40bcf20c742cfb55cbccb56c2c68c/icon-600x600.png')
+
addDir(__language__(30004),'http://twit.tv/show/ipad-today',1,'http://static.mediafly.com/publisher/images/201bc64beb6b4956971650fd1462a704/icon-600x600.png')
+
addDir(__language__(30005),'http://twit.tv/show/all-about-android',1,'http://static.mediafly.com/publisher/images/7874016b2dd3490fa1e8b606dff4d2fa/icon-600x600.png')
+
addDir(__language__(30006),'http://twit.tv/show/tech-history-today',1,'http://static.mediafly.com/publisher/images/88fcc18ed4234a2e9f96a13f74afe7b9/icon-600x600.png')
+
addDir(__language__(30007),'http://twit.tv/show/this-week-in-google',1,'http://static.mediafly.com/publisher/images/8248233e64fc4c68b722be0ec75d637d/icon-600x600.png')
+
addDir(__language__(30008),'http://twit.tv/show/windows-weekly',1,'http://static.mediafly.com/publisher/images/ad659facf4cb4fe795b595d9b4275daf/icon-600x600.png')
+
addDir(__language__(30009),'http://twit.tv/show/macbreak-weekly',1,'http://static.mediafly.com/publisher/images/a24b7b336fb14a2ba3f1e31223f622ac/icon-600x600.png')
+
addDir(__language__(30010),'http://twit.tv/show/triangulation',1,'http://static.mediafly.com/publisher/images/c60ef74e0a3545e490d7cefbc369d168/icon-600x600.png')
+
addDir(__language__(30011),'http://twit.tv/show/twit-photo',1,'http://static.mediafly.com/publisher/images/ca045f623e7d48509c8f4ff9a1ab7259/icon-600x600.png')
+
addDir(__language__(30012),'http://twit.tv/show/the-tech-guy',1,'http://static.mediafly.com/publisher/images/d51aaf03dcfe4502a49e885d4201c278/icon-600x600.png')
+
addDir(__language__(30013),'http://twit.tv/show/security-now',1,'http://static.mediafly.com/publisher/images/1ac666ad22d940239754fe953207fb42/icon-600x600.png')
+
addDir(__language__(30014),'http://twit.tv/show/the-social-hour',1,'http://twit.tv/files/imagecache/coverart/coverart/tsh600.jpg')
+
addDir(__language__(30015),'http://twit.tv/show/weekly-daily-giz-wiz',1,'http://static.mediafly.com/publisher/images/72acf86f350b40c5b5fd132dcacc78be/icon-600x600.png')
+
addDir(__language__(30016),'http://twit.tv/show/nsfw',1,'http://static.mediafly.com/publisher/images/54f4a471ae6c418d89647968a2ea9c91/icon-600x600.png')
+
addDir(__language__(30017),'http://twit.tv/show/dr-kikis-science-hour',1,'http://static.mediafly.com/publisher/images/c9ed18a67b134406a4d5fd357db8b0c9/icon-600x600.png')
+
addDir(__language__(30018),'http://twit.tv/show/floss-weekly',1,'http://static.mediafly.com/publisher/images/06cecab60c784f9d9866f5dcb73227c3/icon-600x600.png')
+
addDir(__language__(30019),'http://twit.tv/show/this-week-in-law',1,'http://static.mediafly.com/publisher/images/b2911bcc34174461ba970d2e38507340/icon-600x600.png')
+
addDir(__language__(30020),'http://twit.tv/show/twit-live-specials',1,'http://static.mediafly.com/publisher/images/eed22d09b9524474ac49bc022b556b2b/icon-600x600.png')
+
addDir(__language__(30021),'http://twit.tv/show/home-theater-geeks',1,'http://static.mediafly.com/publisher/images/441a40308195459b8e24f341dc68885c/icon-600x600.png')
+
addDir(__language__(30022),'http://twit.tv/show/frame-rate',1,'http://static.mediafly.com/publisher/images/5a081f72180e41939e549ec7d12be24d/icon-600x600.png')
+
addDir(__language__(30023),'http://twit.tv/show/this-week-in-computer-hardware',1,'http://static.mediafly.com/publisher/images/f76d60fdd2ea4822adbc50d2027839ce/icon-600x600.png')
+
addDir(__language__(30024),'http://twit.tv/show/ham-nation',1,'http://static.mediafly.com/publisher/images/7a948708b1a3462bab8721556dd26704/icon-600x600.png')
+
addDir(__language__(30025),'http://twit.tv/show/futures-in-biotech',1,'http://leoville.tv/podcasts/coverart/fib600audio.jpg')
+
addDir(__language__(30026),'http://twit.tv/show/this-week-in-radio-tech',1,'http://static.mediafly.com/publisher/images/ab7b2412afa84674971e4c93665d0e06/icon-600x600.png')
+
+
+def index(url,iconimage):
+ headers = {'User-agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0)
Gecko/20100101 Firefox/6.0'}
+ req = urllib2.Request(url,None,headers)
response = urllib2.urlopen(req)
link=response.read()
- response.close()
-
link=link.replace('&','').replace('#039;',"'").replace('amp;','').replace('quot;','"')
- match=re.compile('<h3 class="podcast-date">(.+?)</h3>\n <h2><a
href="(.+?)" title="(.+?)" alt=".+?">.+?</a></h2>\n
<p>(.+?)</p>\n').findall(link)
- for date,url,name,description in match:
-
addWebLink(name,'http://twit.tv'+url,description,date,3,iconimage)
- page=re.compile('<div class="episode-prevnext clearfix"><a href=".+?"
class="episode-next pager-prev active"><span>Next</span></a><a href="(.+?)"
class="episode-prev pager-next
active"><span>Prev</span></a></div>').findall(link)
- if len(page)<1:
- page=re.compile('<span>Next</span></span><a href="(.+?)"
class="episode-prev pager-next active">').findall(link)
- for url in page:
- addDir('Next Page','http://twit.tv'+url,2,'')
-
-
-def VIDEOLINKS(url):
- req = urllib2.Request(url)
- req.addheaders = [('Referer', 'http://twit.tv/'),
- ('Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.3)
Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729)')]
+ soup = BeautifulSoup(link, convertEntities=BeautifulSoup.HTML_ENTITIES)
+ items = soup.findAll('div', attrs={'class' :
'view-content'})[3]('div', attrs={'class' : 'field-content'})
+ for i in items:
+ name = i.a.string
+ url = i.a['href']
+ try:
+ description = i.p.string
+ except:
+ description = ''
+ date = i.findPrevious('span').string
+ addLink(name,url,description,date,2,iconimage)
+ try:
+ page = 'http://twit.tv'+soup('li', attrs={'class' :
"pager-next"})[0].a['href']
+ addDir('Next Page',page,1,iconimage)
+ except:
+ pass
+
+
+def getVideo(url):
+ headers = {'User-agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0)
Gecko/20100101 Firefox/6.0'}
+ req = urllib2.Request(url,None,headers)
response = urllib2.urlopen(req)
link=response.read()
- response.close()
- link=link.replace(' ','')
-
match=re.compile('</div>\n<divclass="download"><ahref="(.+?)">DownloadVideo\(\High\)\</a>').findall(link)
- if len(match)<1:
- dialog = xbmcgui.Dialog()
- ok = dialog.ok('TWiT',__settings__.getLocalizedString(30028))
- print 'Sorry video not up yet'
- for url in match:
- aurl=url[0:-15]
- if videoq==__language__(30018):
- url=aurl+('864x480_2000.mp4')
- elif videoq==__language__(30019):
- url=aurl+('864x480__1000.mp4')
- elif videoq==__language__(30020):
- url=aurl+('864x480_640x368_256.mp4')
- else:
- url=url
- item = xbmcgui.ListItem(path=url)
- xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, item)
+ soup = BeautifulSoup(link, convertEntities=BeautifulSoup.HTML_ENTITIES)
+ link = soup('span', attrs={'class' : "download"})[0]('a')[0]['href']
+ if videoq == __language__(30027):
+ link = link.replace('_h264b_864x480_500','_h264b_864x480_2000')
+ elif videoq == __language__(30028):
+ link = link.replace('_h264b_864x480_500','_h264b_864x480_1000')
+ elif videoq == __language__(30030):
+ link = link.replace('_h264b_864x480_500','_h264b_640x368_256')
+ item = xbmcgui.ListItem(path=link)
+ xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, item)
def addLiveLinks():
-
addLinkLive(__language__(30032),'http://bglive-a.bitgravity.com/twit/live/high?noprefix',5,xbmc.translatePath(
os.path.join( home, 'resources/live.png' ) ))
-
addLinkLive(__language__(30033),'http://bglive-a.bitgravity.com/twit/live/low?noprefix',5,xbmc.translatePath(
os.path.join( home, 'resources/live.png' ) ))
-
addLinkLive(__language__(30034),'http://cgw.ustream.tv/Viewer/getStream/1/1524.amf',6,xbmc.translatePath(
os.path.join( home, 'resources/live.png' ) ))
+
addLink(__language__(30032),'http://bglive-a.bitgravity.com/twit/live/high?noprefix','','',4,xbmc.translatePath(
os.path.join( home, 'resources/live.png' ) ))
+
addLink(__language__(30033),'http://bglive-a.bitgravity.com/twit/live/low?noprefix','','',4,xbmc.translatePath(
os.path.join( home, 'resources/live.png' ) ))
+
addLink(__language__(30034),'http://cgw.ustream.tv/Viewer/getStream/1/1524.amf','','',5,xbmc.translatePath(
os.path.join( home, 'resources/live.png' ) ))
+ addLink(__language__(30035),'URL','','',6,xbmc.translatePath(
os.path.join( home, 'resources/live.png' ) ))
+
def getSwf():
url = 'http://www.ustream.tv/flash/viewer.swf'
@@ -143,67 +108,74 @@ def getUstream(url):
swf = ' swfUrl='+getSwf()
pageUrl = ' pageUrl=http://live.twit.tv'
url = rtmp + playpath + swf + pageUrl + ' swfVfy=1 live=true'
- playLive(url)
-
-
+ item = xbmcgui.ListItem(path=url)
+ xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, item)
+
+
+def getJtv():
+ headers = {'User-agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0)
Gecko/20100101 Firefox/6.0',
+ 'Referer' : 'http://www.justin.tv/twit'}
+ req =
urllib2.Request('http://usher.justin.tv/find/twit.xml?type=live',None,headers)
+ response = urllib2.urlopen(req)
+ link=response.read()
+ response.close()
+ soup = BeautifulSoup(link)
+ token = ' jtv='+soup.token.string.replace('\\','\\5c').replace('
','\\20').replace('"','\\22')
+ rtmp = soup.connect.string+'/'+soup.play.string
+ Pageurl = ' Pageurl=http://www.justin.tv/twit'
+ swf = '
swfUrl=http://www.justin.tv/widgets/live_embed_player.swf?channel=twit'
+ url = rtmp+token+swf+Pageurl
+ item = xbmcgui.ListItem(path=url)
+ xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, item)
+
+
def playLive(url):
item = xbmcgui.ListItem(path=url)
xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, item)
-
+
def get_params():
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]
-
+ 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,description,date,iconimage):
- ok=True
- liz=xbmcgui.ListItem(name, iconImage="DefaultVideo.png",
thumbnailImage=iconimage)
- description = description + "\n \n Published: " + date
- liz.setInfo( type="Video", infoLabels={ "Title":
name,"Plot":description,"Date": date } )
- liz.setProperty( "Fanart_Image", iconimage )
-
ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=url,listitem=liz)
- return ok
-
-def addWebLink(name,url,description,date,mode,iconimage):
+def addLink(name,url,description,date,mode,iconimage):
+ try:
+ description = description + "\n \n Published: " + date
+ except:
+ description = "Published: " + date
u=sys.argv[0]+"?url="+urllib.quote_plus(url)+"&mode="+str(mode)+"&name="+urllib.quote_plus(name)+"&iconimage="+urllib.quote_plus(iconimage)
ok=True
- description = description + "\n \n Published: " + date
- liz=xbmcgui.ListItem(name, iconImage="DefaultFolder.png",
thumbnailImage=iconimage)
- liz.setInfo( type="Video", infoLabels={ "Title":
name,"Plot":description,"Date": date } )
+ liz=xbmcgui.ListItem(name, iconImage="DefaultVideo.png",
thumbnailImage=iconimage)
+ liz.setInfo( type="Video", infoLabels={ "Title":
name,"Plot":description } )
+ liz.setProperty( "Fanart_Image", fanart )
liz.setProperty('IsPlayable', 'true')
ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz)
return ok
+
def addDir(name,url,mode,iconimage):
u=sys.argv[0]+"?url="+urllib.quote_plus(url)+"&mode="+str(mode)+"&name="+urllib.quote_plus(name)+"&iconimage="+urllib.quote_plus(iconimage)
ok=True
liz=xbmcgui.ListItem(name, iconImage="DefaultFolder.png",
thumbnailImage=iconimage)
liz.setInfo( type="Video", infoLabels={ "Title": name } )
+ liz.setProperty( "Fanart_Image", fanart )
ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz,isFolder=True)
return ok
-def addLinkLive(name,url,mode,iconimage):
-
u=sys.argv[0]+"?url="+urllib.quote_plus(url)+"&mode="+str(mode)+"&name="+urllib.quote_plus(name)
- ok=True
- liz=xbmcgui.ListItem(name, iconImage="DefaultFolder.png",
thumbnailImage=iconimage, path=url)
- liz.setProperty('IsPlayable', 'true')
-
ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz)
- return ok
params=get_params()
url=None
@@ -233,30 +205,30 @@ print "Name: "+str(name)
if mode==None or url==None or len(url)<1:
print ""
- CATEGORIES()
+ categories()
elif mode==1:
- print ""+url
- INDEX(url,iconimage)
-
+ print ""
+ index(url,iconimage)
+
elif mode==2:
- print ""+url
- INDEXWebsite(url,iconimage)
+ print ""
+ getVideo(url)
elif mode==3:
- print ""+url
- VIDEOLINKS(url)
+ print ""
+ addLiveLinks()
elif mode==4:
- print ""+url
- addLiveLinks()
-
-elif mode==5:
- print ""+url
+ print ""
playLive(url)
-elif mode==6:
- print ""+url
+elif mode==5:
+ print ""
getUstream(url)
-
-xbmcplugin.endOfDirectory(int(sys.argv[1]))
+
+elif mode==6:
+ print ""
+ getJtv()
+
+xbmcplugin.endOfDirectory(int(sys.argv[1]))
\ No newline at end of file
diff --git a/plugin.video.twit/icon.png b/plugin.video.twit/icon.png
index 370d0e2..869d86f 100644
Binary files a/plugin.video.twit/icon.png and b/plugin.video.twit/icon.png
differ
diff --git a/plugin.video.twit/resources/language/English/strings.xml
b/plugin.video.twit/resources/language/English/strings.xml
index 78a2164..6527ac4 100644
--- a/plugin.video.twit/resources/language/English/strings.xml
+++ b/plugin.video.twit/resources/language/English/strings.xml
@@ -1,38 +1,39 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<strings>
- <string id="30000">This WEEK in TECH</string>
- <string id="30001">Tech News Today</string>
- <string id="30002">FourCast</string>
- <string id="30003">iPad Today</string>
- <string id="30004">Green Tech Today</string>
- <string id="30005">This WEEK in GOOGLE</string>
- <string id="30006">Windows Weekly</string>
- <string id="30007">MacBreak Weekly</string>
- <string id="30008">The Tech Guy</string>
- <string id="30009">Security Now</string>
- <string id="30010">The Social Hour</string>
- <string id="30011">Weekly Daily Giz Wiz</string>
- <string id="30012">NSFW</string>
- <string id="30013">Dr. Kikis Science Hour</string>
- <string id="30014">FLOSS Weekly</string>
- <string id="30015">This Week in Law</string>
- <string id="30016">TWiT Live Specials</string>
- <string id='30017'>Twit Live</string>
- <string id='30018'>High 864x480 Bitrate 2000</string>
- <string id='30019'>Medium 864x480 Bitrate 1000</string>
- <string id='30020'>Low 640x368 Bitrate 256</string>
- <string id='30021'>Video Quality</string>
- <string id='30022'>Home Theater Geeks</string>
- <string id='30023'>Frame Rate</string>
- <string id='30024'>This Week In Computer Hardware</string>
- <string id='30025'>Futures in Biotech</string>
- <string id='30026'>This Week in Radio Tech</string>
- <string id='30027'>Ham Nation</string>
- <string id='30028'>Sorry, video not up yet.</string>
- <string id='30029'>Triangulation</string>
- <string id='30030'>TWiT Photo</string>
- <string id='30031'>All About Android</string>
- <string id='30032'>Bitgravity 1 Mbps</string>
- <string id='30033'>Bitgravity 400 kbps</string>
- <string id='30034'>Ustream 1.5 Mbps</string>
-</strings>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<strings>
+ <string id='30000'>Twit Live</string>
+ <string id="30001">This WEEK in TECH</string>
+ <string id="30002">Tech News Today</string>
+ <string id="30003">FourCast</string>
+ <string id="30004">iPad Today</string>
+ <string id='30005'>All About Android</string>
+ <string id="30006">Tech History Today</string>
+ <string id="30007">This WEEK in GOOGLE</string>
+ <string id="30008">Windows Weekly</string>
+ <string id="30009">MacBreak Weekly</string>
+ <string id='30010'>Triangulation</string>
+ <string id='30011'>TWiT Photo</string>
+ <string id="30012">The Tech Guy</string>
+ <string id="30013">Security Now</string>
+ <string id="30014">The Social Hour</string>
+ <string id="30015">Weekly Daily Giz Wiz</string>
+ <string id="30016">NSFW</string>
+ <string id="30017">Dr. Kikis Science Hour</string>
+ <string id="30018">FLOSS Weekly</string>
+ <string id="30019">This Week in Law</string>
+ <string id="30020">TWiT Live Specials</string>
+ <string id='30021'>Home Theater Geeks</string>
+ <string id='30022'>Frame Rate</string>
+ <string id='30023'>This Week In Computer Hardware</string>
+ <string id='30024'>Ham Nation</string>
+ <string id='30025'>Futures in Biotech</string>
+ <string id='30026'>This Week in Radio Tech</string>
+ <string id='30027'>864x480 Bitrate 2000</string>
+ <string id='30028'>864x480 Bitrate 1000</string>
+ <string id='30029'>864x480 Bitrate 500</string>
+ <string id='30030'>640x368 Bitrate 256</string>
+ <string id='30031'>Video Quality</string>
+ <string id='30032'>Bitgravity 1 Mbps</string>
+ <string id='30033'>Bitgravity 400 kbps</string>
+ <string id='30034'>Ustream 1.5 Mbps</string>
+ <string id='30035'>Justin.TV 1 Mbps</string>
+</strings>
diff --git a/plugin.video.twit/resources/settings.xml
b/plugin.video.twit/resources/settings.xml
index f435d42..b0d0fc2 100644
--- a/plugin.video.twit/resources/settings.xml
+++ b/plugin.video.twit/resources/settings.xml
@@ -1,3 +1,3 @@
<settings>
- <setting id="video_quality" type="select" lvalues="30018|30019|30020"
label="30021" default=""/>
-</settings>
+ <setting id="video_quality" type="select" lvalues="30027|30028|30029|30030"
label="30031" default=""/>
+</settings>
\ No newline at end of file
-----------------------------------------------------------------------
Summary of changes:
plugin.audio.twit/addon.xml | 38 ++--
plugin.audio.twit/changelog.txt | 6 +-
plugin.audio.twit/default.py | 308 ++++++++++----------
plugin.audio.twit/fanart.jpg | Bin 0 -> 61219 bytes
plugin.audio.twit/icon.png | Bin 21647 -> 53653 bytes
.../resources/language/English/strings.xml | 62 ++--
plugin.audio.twit/resources/twit.png | Bin 120264 -> 0 bytes
plugin.video.twit/addon.xml | 2 +-
plugin.video.twit/changelog.txt | 5 +
plugin.video.twit/default.py | 292 +++++++++----------
plugin.video.twit/fanart.jpg | Bin 0 -> 61219 bytes
plugin.video.twit/icon.png | Bin 21647 -> 53653 bytes
.../resources/language/English/strings.xml | 77 +++---
plugin.video.twit/resources/settings.xml | 4 +-
14 files changed, 387 insertions(+), 407 deletions(-)
create mode 100644 plugin.audio.twit/fanart.jpg
delete mode 100644 plugin.audio.twit/resources/twit.png
create mode 100644 plugin.video.twit/fanart.jpg
hooks/post-receive
--
Plugins
------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security
threats, fraudulent activity, and more. Splunk takes this data and makes
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2dcopy2
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons