The branch, eden has been updated
via 264ef43a6ccae9ca60de2cd3f6225b396a97b2a0 (commit)
via 169c433117df23aa56da0af619191520ed3db558 (commit)
via 44c53bb24e57f27f0098f06d1edbb0f8cf4441a5 (commit)
via b1fb1b852e15b326d18ab31de17aba6dab6a216a (commit)
via 7a9afa6fa4dd7ab7d6cfc17a08592690680c66f0 (commit)
from 0046d8f1cf2cc48bfd225eff741a365a32c2d02d (commit)
- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=264ef43a6ccae9ca60de2cd3f6225b396a97b2a0
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=169c433117df23aa56da0af619191520ed3db558
commit 169c433117df23aa56da0af619191520ed3db558
Author: spiff <[email protected]>
Date: Wed Oct 10 11:19:01 2012 +0200
[plugin.video.fernsehkritik_tv] updated to version 1.1.0
diff --git a/plugin.video.fernsehkritik_tv/addon.xml
b/plugin.video.fernsehkritik_tv/addon.xml
index c480202..3bdbf25 100644
--- a/plugin.video.fernsehkritik_tv/addon.xml
+++ b/plugin.video.fernsehkritik_tv/addon.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<addon id="plugin.video.fernsehkritik_tv" name="Fernsehkritik.tv"
version="1.0.6" provider-name="AddonScriptorDE">
+<addon id="plugin.video.fernsehkritik_tv" name="Fernsehkritik.tv"
version="1.1.0" provider-name="AddonScriptorDE, Manko10">
<requires>
<import addon="xbmc.python" version="2.0"/>
</requires>
diff --git a/plugin.video.fernsehkritik_tv/changelog.txt
b/plugin.video.fernsehkritik_tv/changelog.txt
index 7af5e6b..2a47422 100644
--- a/plugin.video.fernsehkritik_tv/changelog.txt
+++ b/plugin.video.fernsehkritik_tv/changelog.txt
@@ -4,4 +4,5 @@
1.0.3 - Changed Timeout
1.0.4 - Fixed newest TV-Magazin Episode
1.0.5 - Various fixes and optical optimizations
-1.0.6 - Fixed missing TV-Magazin episodes
\ No newline at end of file
+1.0.6 - Fixed missing TV-Magazin episodes
+1.1.0 - Support for FKTV Couch, added MP3 and MOV feed for Postecke (currently
Couch users only)
\ No newline at end of file
diff --git a/plugin.video.fernsehkritik_tv/default.py
b/plugin.video.fernsehkritik_tv/default.py
index 73c8735..8d61d84 100644
--- a/plugin.video.fernsehkritik_tv/default.py
+++ b/plugin.video.fernsehkritik_tv/default.py
@@ -3,131 +3,272 @@
import xbmcplugin
import xbmcgui
import sys
-import urllib, urllib2
+import urllib
+import urllib2
+import cookielib
import re
import random
import xbmcaddon
+import time
thisPlugin = int(sys.argv[1])
-settings = xbmcaddon.Addon(id='plugin.video.fernsehkritik_tv')
-translation = settings.getLocalizedString
+settings = xbmcaddon.Addon(id='plugin.video.fernsehkritik_tv')
+useCouch = settings.getSetting('useCouch') == 'true'
+userAgentString = 'Mozilla/5.0 (X11; Linux x86_64; rv:14.0) Gecko/20100101
Firefox/14.0.1'
+
+
+def translation(id):
+ return str(settings.getLocalizedString(id).encode('utf-8'))
+
def index():
- addDir("TV-Magazin","http://fernsehkritik.tv/tv-magazin/",1,"")
- addDir("Pantoffelkino-TV","http://fernsehkritik.tv/pktv/",1,"")
- addDir(str(translation(30001))+":
"+str(translation(30002)),"http://fernsehkritik.tv/extras/",1,"")
- addDir(str(translation(30001))+": Aktuell im
Gespräch","http://fernsehkritik.tv/extras/aktuell/",1,"")
- addDir(str(translation(30001))+": Schlechte Filme
TV","http://fernsehkritik.tv/extras/sftv/",1,"")
- addDir(str(translation(30001))+": Pantoffelkino-TV
Pannen","http://fernsehkritik.tv/extras/pktv/",1,"")
- xbmcplugin.endOfDirectory(thisPlugin)
+ addDir(translation(30001), 'http://fernsehkritik.tv/tv-magazin/')
+ addDir(translation(30002), 'http://fernsehkritik.tv/pktv/')
+ if useCouch:
+ addDir(translation(30009),
'https://couch.fernsehkritik.tv/feed/postecke/mp4')
+ addDir(translation(30010),
'https://couch.fernsehkritik.tv/feed/postecke/mp3')
+ addDir(translation(30005), 'http://fernsehkritik.tv/extras/')
+ addDir(translation(30006), 'http://fernsehkritik.tv/extras/aktuell/')
+ addDir(translation(30007), 'http://fernsehkritik.tv/extras/sftv/')
+ addDir(translation(30008), 'http://fernsehkritik.tv/extras/pktv/')
+ xbmcplugin.endOfDirectory(thisPlugin)
+
def listVideos(url):
- urlEntrys=[]
+ if 'couch.fernsehkritik.tv/feed' not in url:
content = getUrl(url)
- if url=="http://fernsehkritik.tv/tv-magazin/":
- match=re.compile('vom (.+?)</a>', re.DOTALL).findall(content)
- firstDate=match[0]
- match=re.compile('href="../folge-(.+?)/"',
re.DOTALL).findall(content)
- for nr in match:
- newUrl="http://fernsehkritik.tv/folge-"+nr+"/"
- if nr.find(">")==-1:
- if newUrl not in urlEntrys:
- urlEntrys.append(newUrl)
- title="Folge "+nr
- if len(urlEntrys)==1:
- title+=" ("+firstDate+")"
- addLink(title,newUrl,2,"")
- else:
- spl=content.split('<div class="lclmo" id=')
- for i in range(1,len(spl),1):
- entry=spl[i]
- match=re.compile('<a href="(.+?)">(.+?)</a>',
re.DOTALL).findall(entry)
- url=match[0][0]
- title=match[0][1].replace(""","")
- match=re.compile('src="(.+?)"', re.DOTALL).findall(entry)
- thumb=match[0]
- thumb=thumb.replace("../","/")
- newUrl=""
- if url.find("/pktv/")==0:
- newUrl="http://fernsehkritik.tv"+url
- elif url.find("#extra-")==0:
- newUrl=url[7:]
- else:
- newUrl="http://fernsehkritik.tv"+url
- addLink(title,newUrl,2,"http://fernsehkritik.tv"+thumb)
- xbmcplugin.endOfDirectory(thisPlugin)
+ else:
+ content = getCouchFeed(url)
+
+ if url == 'http://fernsehkritik.tv/tv-magazin/' or url ==
'http://fernsehkritik.tv/tv-magazin/komplett/':
+ latestEntry = None
+
+ # if Couch user, get first episode from Couch feed
+ if useCouch and url == 'http://fernsehkritik.tv/tv-magazin/':
+ contentLatest =
getCouchFeed('https://couch.fernsehkritik.tv/feed/mov')
+ episodeMatch = re.compile('<title>\s*Folge (\d+) vom (\d{1,2}\.
[\wä]+ \d{4})\s*.*?<itunes:summary>\s*(.*?)\s*</itunes:summary>',
re.DOTALL).search(contentLatest)
+ latestEntry = assembleEpisodeEntry(episodeMatch.group(1),
'https://couch.fernsehkritik.tv/feed/fernsehkritik' + episodeMatch.group(1) +
'.mov', episodeMatch.group(2), episodeMatch.group(3))
+ addLink(latestEntry['title'], latestEntry['url'], 2,
'http://fernsehkritik.tv/images/magazin/folge' + latestEntry['number'] +
'.jpg', latestEntry['desc'])
+
+ episodes =
re.compile('<h2>\s*<a[^>]+href="(?:\.\.|)?/folge-(\d+)/?"[^>]*>\s*Folge (?:\d+)
vom (\d{1,2}\. [\wä]+ \d{4})\s*</a>', re.DOTALL).finditer(content)
+
+ for episode in episodes:
+
+ if useCouch:
+ episodeUrl = 'https://couch.fernsehkritik.tv/dl/fernsehkritik'
+ episode.group(1) + '.mov'
+ else:
+ episodeUrl = 'http://fernsehkritik.tv/folge-' +
episode.group(1) + '/'
+
+ episodeDesc = re.compile('<div id="d' + episode.group(1) +
'">.*?<div class="desc">\s*<ul>\s*(.*?)\s*</ul>',
re.DOTALL).search(content).group(1)
+ episodeDesc = re.sub('<[^>]*?>', '', episodeDesc.replace('<li>',
'⢠'))
+
+ # If first episode is already in the list, don't add it again
+ # (i.e. if it's already available for non-couch users)
+ if useCouch and latestEntry != None and latestEntry['number'] ==
episode.group(1):
+ continue
+
+ entry = assembleEpisodeEntry(episode.group(1), episodeUrl,
episode.group(2), episodeDesc)
+ addLink(entry['title'], entry['url'], 2,
'http://fernsehkritik.tv/images/magazin/folge' + entry['number'] + '.jpg',
entry['desc'])
+
+ if url == 'http://fernsehkritik.tv/tv-magazin/':
+ # Insert missing episode
+ episodeNumber = str(int(episode.group(1)) - 1)
+
+ if useCouch:
+ episodeUrl = 'http://couch.fernsehkritik.tv/dl/fernsehkritik'
+ episodeNumber + '.mov'
+ else:
+ episodeUrl = 'http://fernsehkritik.tv/folge-' + episodeNumber
+ '/'
+
+ content = getUrl('http://fernsehkritik.tv/feed/')
+ episodeMatch = re.compile('<item>\s*<title>\s*Folge ' +
episodeNumber + ' vom (\d{1,2}\. [\wä]+
\d{4})\s*</title>.+?<description>(.+?)</description>',
re.DOTALL).search(content)
+ episodeDesc = re.sub('<.+?>', '',
episodeMatch.group(2).replace('<li>', '⢠'))
+ entry = assembleEpisodeEntry(episodeNumber, episodeUrl,
episodeMatch.group(1), episodeDesc)
+ addLink(entry['title'], entry['url'], 2,
'http://fernsehkritik.tv/images/magazin/folge' + episodeNumber + '.jpg',
episodeDesc)
+
+ # Insert directory for older episodes
+ addDir(translation(30004),
'http://fernsehkritik.tv/tv-magazin/komplett/', 1, 'DefaultNetwork.png')
+
+ elif url == 'https://couch.fernsehkritik.tv/feed/postecke/mp4' or url ==
'https://couch.fernsehkritik.tv/feed/postecke/mp3':
+ episodes =
re.compile('<item>\s*<title>\s*(.*?)\s*</title>.*?<enclosure
url="([^"]+)".*?<itunes:summary><!\[CDATA\[(.*?)\]\]></itunes:summary>',
re.DOTALL).finditer(content)
+ for episode in episodes:
+ addLink(episode.group(1), episode.group(2), 2, '',
episode.group(3), url == 'https://couch.fernsehkritik.tv/feed/postecke/mp4')
+
+ else:
+ spl = content.split('<div class="lclmo" id=')
+ for i in range(1, len(spl), 1):
+ entry = spl[i]
+ match = re.compile('<a href="(.+?)">(.+?)</a>',
re.DOTALL).findall(entry)
+ url = match[0][0]
+ title = match[0][1].replace('"','')
+ match = re.compile('src="(.+?)"', re.DOTALL).findall(entry)
+ thumb = match[0]
+ thumb = thumb.replace('../', '/')
+ newUrl = ''
+ if url.find('/pktv/') == 0:
+ newUrl = 'http://fernsehkritik.tv' + url
+ elif url.find('#extra-') == 0:
+ newUrl = url[7:]
+ else:
+ newUrl = 'http://fernsehkritik.tv' + url
+ addLink(title,newUrl,2,'http://fernsehkritik.tv' + thumb)
+
+ xbmcplugin.endOfDirectory(thisPlugin)
+
def playVideo(urlOne):
- if urlOne.find("http://")==0:
- content = getUrl(urlOne)
- match=re.compile('<a href="(.+?)">', re.DOTALL).findall(content)
- filename=""
- for url in match:
- if url.find(".mov")>=0:
- filename=url
- if filename!="":
+ if useCouch and 'couch.fernsehkritik.tv' in urlOne:
+ opener =
urllib2.build_opener(urllib2.HTTPCookieProcessor(getCouchSession()))
+ response = opener.open(urlOne, timeout=30)
+ videoUrl = response.geturl()
+ response.close()
+
+ listitem = xbmcgui.ListItem(path=videoUrl)
+ return xbmcplugin.setResolvedUrl(thisPlugin, True, listitem)
+
+ elif urlOne.find('http://') == 0:
+ content = getUrl(urlOne)
+ match = re.compile('<a href="(.+?)">', re.DOTALL).findall(content)
+ filename = ''
+ for url in match:
+ if url.find('.mov') >= 0:
+ filename = url
+ if filename != '':
listitem = xbmcgui.ListItem(path=filename)
return xbmcplugin.setResolvedUrl(thisPlugin, True, listitem)
- else:
- content = getUrl(urlOne+"/Start")
- match=re.compile("var flattr_tle = '(.+?)'",
re.DOTALL).findall(content)
- title=match[0]
- if content.find('playlist = [')>=0:
- content=content[content.find('playlist = ['):]
- content=content[:content.find('];')]
- match=re.compile("\\{ url:(.+?)'(.+?)' \\}",
re.DOTALL).findall(content)
- playlist = xbmc.PlayList(xbmc.PLAYLIST_VIDEO)
- playlist.clear()
- i=1
- for temp,filename in match:
-
url="http://dl"+str(random.randint(1,3))+".fernsehkritik.tv/fernsehkritik"+filename
- listitem = xbmcgui.ListItem(title+"
("+str(i)+"/"+str(len(match))+")")
- i=i+1
- playlist.add(url,listitem)
- xbmc.executebuiltin('XBMC.Playlist.PlayOffset(-1)')
- else:
- match=re.compile("file=='(.+?)'", re.DOTALL).findall(content)
- filename=match[0]
- listitem =
xbmcgui.ListItem(path="http://dl"+str(random.randint(1,3))+".fernsehkritik.tv/antik/"+filename)
- return xbmcplugin.setResolvedUrl(thisPlugin, True, listitem)
else:
- content =
getUrl("http://fernsehkritik.tv/swf/extras_cfg.php?id="+urlOne)
- match=re.compile('"file":"(.+?)"', re.DOTALL).findall(content)
- file=match[0]
- listitem = xbmcgui.ListItem(path=file)
- return xbmcplugin.setResolvedUrl(thisPlugin, True, listitem)
+ content = getUrl(urlOne + '/Start')
+ match = re.compile(r'var flattr_tle = \'(.+?)\'',
re.DOTALL).findall(content)
+ title = match[0]
+ if content.find('playlist = [') >= 0:
+ content = content[content.find('playlist = ['):]
+ content = content[:content.find('];')]
+ match = re.compile(r"\{ url: base \+ '(\d+(?:-\d+)?\.flv)'
\}", re.DOTALL).findall(content)
+ playlist = xbmc.PlayList(xbmc.PLAYLIST_VIDEO)
+ playlist.clear()
+
+ for i,filename in enumerate(match):
+ url = 'http://dl' + str(random.randint(1, 3)) +
'.fernsehkritik.tv/fernsehkritik' + filename
+ listitem = xbmcgui.ListItem(title + ' (' + str(i) + '/' +
str(len(match)) + ')')
+
+ playlist.add(url,listitem)
+ xbmc.executebuiltin('XBMC.Playlist.PlayOffset(-1)')
+ else:
+ match = re.compile("file=='(.+?)'", re.DOTALL).findall(content)
+ filename = match[0]
+ listitem = xbmcgui.ListItem(path='http://dl' +
str(random.randint(1,3)) + '.fernsehkritik.tv/antik/' + filename)
+ return xbmcplugin.setResolvedUrl(thisPlugin, True, listitem)
+ else:
+ content = getUrl('http://fernsehkritik.tv/swf/extras_cfg.php?id=' +
urlOne)
+ match = re.compile('"file":"(.+?)"', re.DOTALL).findall(content)
+ file = match[0]
+ listitem = xbmcgui.ListItem(path=file)
+ return xbmcplugin.setResolvedUrl(thisPlugin, True, listitem)
+
def getUrl(url):
- req = urllib2.Request(url)
- req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; rv:11.0)
Gecko/20100101 Firefox/11.0')
- response = urllib2.urlopen(req,timeout=30)
- link=response.read()
+ if useCouch and 'couch.fernsehkritik.tv' in url:
+ opener =
urllib2.build_opener(urllib2.HTTPCookieProcessor(getCouchSession()))
+ opener.addheaders = [('User-Agent', userAgentString)]
+ response = opener.open(url, timeout=30)
+ else:
+ request = urllib2.Request(url)
+ request.add_header('User-Agent',userAgentString)
+ response = urllib2.urlopen(request, timeout=30)
+
+ link = response.read()
response.close()
+
return link
-def addLink(name,url,mode,iconimage):
- u=sys.argv[0]+"?url="+urllib.quote_plus(url)+"&mode="+str(mode)
- ok=True
- liz=xbmcgui.ListItem(name, iconImage="DefaultVideo.png",
thumbnailImage=iconimage)
- liz.setInfo( type="Video", 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)
- ok=True
- liz=xbmcgui.ListItem(name, iconImage="DefaultFolder.png",
thumbnailImage=iconimage)
- liz.setInfo( type="Video", infoLabels={ "Title": name } )
-
ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz,isFolder=True)
- return ok
+
+def getCouchFeed(url):
+ passwordMgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
+ passwordMgr.add_password(None, url, settings.getSetting('couchUsername'),
settings.getSetting('couchPassword'))
+ authHandler = urllib2.HTTPBasicAuthHandler(passwordMgr)
+ opener = urllib2.build_opener(authHandler)
+ request = opener.open(url, timeout=30)
+ content = request.read()
+ request.close()
+ return content
+
+
+def assembleEpisodeEntry(episodeNumber, url, germanDate, desc):
+ episode = {}
+ episode['number'] = episodeNumber
+ episode['date'] = time.strftime('%d. %B %Y', parseGermanDate(germanDate))
+ episode['title'] = translation(30003).format(episode=episode['number'],
date=episode['date'])
+ episode['url'] = url
+ episode['desc'] = desc
+
+ return episode
+
+
+def getCouchSession():
+ if not useCouch:
+ return None
+
+ cookieJar = None
+ if hasattr(getCouchSession, 'cj'):
+ cookieJar = getCouchSession.cj
+
+ if cookieJar == None:
+ postData = {
+ 'username' : settings.getSetting('couchUsername'),
+ 'password' : settings.getSetting('couchPassword')
+ }
+ postDataEncoded = urllib.urlencode(postData)
+ cookieJar = cookielib.CookieJar()
+ opener =
urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar))
+ opener.addheaders = [('User-Agent', userAgentString)]
+ # Get session cookie
+ response = opener.open('https://couch.fernsehkritik.tv/',
timeout=30)
+ # Log in
+ response =
opener.open('https://couch.fernsehkritik.tv/login.php', postDataEncoded,
timeout=30)
+ response.close()
+
+ return cookieJar
+
+
+def addLink(name, url, mode=1, iconimage='', description='', isVideo=True):
+ u = sys.argv[0] + '?url=' + urllib.quote_plus(url) + '&mode=' +
str(mode)
+ ok = True
+ icon = 'DefaultVideo.png'
+ if (not isVideo):
+ icon = 'DefaultAudio.png'
+ liz = xbmcgui.ListItem(name, iconImage=icon, thumbnailImage=iconimage)
+ liz.setInfo( type="Video", infoLabels={ 'Title': name, 'Plot':
description, 'Director': 'Holger Kreymeier' } )
+ liz.setProperty('IsPlayable', 'true')
+ ok = xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=u,
listitem=liz)
+ return ok
+
+
+def addDir(name, url, mode=1, iconimage=''):
+ u = sys.argv[0] + '?url=' + urllib.quote_plus(url) + '&mode=' + str(mode)
+ ok = True
+ liz = xbmcgui.ListItem(name, iconImage='DefaultFolder.png',
thumbnailImage=iconimage)
+ liz.setInfo(type="Video", infoLabels={ 'Title': name })
+ ok = xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=u,
listitem=liz, isFolder=True)
+ return ok
+
+
+def parseGermanDate(dateString):
+ # Parse month manually to avoid changing the locale
+ months = [
+ 'Januar', 'Februar', 'März', 'April',
+ 'Mai', 'Juni', 'Juli', 'August',
+ 'September', 'Oktober', 'November', 'Dezember']
+ for key,month in enumerate(months):
+ dateString = dateString.replace(month, str(int(key) + 1).zfill(2))
+
+ return time.strptime(dateString, '%d. %m %Y')
+
def parameters_string_to_dict(parameters):
- ''' Convert parameters encoded in a URL to a dict. '''
+ """Convert parameters encoded in a URL to a dict."""
paramDict = {}
if parameters:
- paramPairs = parameters[1:].split("&")
+ paramPairs = parameters[1:].split('&')
for paramsPair in paramPairs:
paramSplits = paramsPair.split('=')
if (len(paramSplits)) == 2:
@@ -135,23 +276,22 @@ def parameters_string_to_dict(parameters):
return paramDict
params = parameters_string_to_dict(sys.argv[2])
-url=None
-mode=None
+url = None
+mode = None
try:
- url=urllib.unquote_plus(params["url"])
+ url = urllib.unquote_plus(params['url'])
except:
- pass
+ pass
try:
- mode=int(params["mode"])
+ mode = int(params['mode'])
except:
- pass
+ pass
-if mode==None or url==None or len(url)<1:
- index()
-
-elif mode==1:
- listVideos(url)
-elif mode==2:
- playVideo(url)
+if mode == None or url == None or len(url) < 1:
+ index()
+elif mode == 1:
+ listVideos(url)
+elif mode == 2:
+ playVideo(url)
diff --git
a/plugin.video.fernsehkritik_tv/resources/language/English/strings.xml
b/plugin.video.fernsehkritik_tv/resources/language/English/strings.xml
index 4b1c34e..a367fee 100644
--- a/plugin.video.fernsehkritik_tv/resources/language/English/strings.xml
+++ b/plugin.video.fernsehkritik_tv/resources/language/English/strings.xml
@@ -1,5 +1,18 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<strings>
- <string id="30001">Special</string>
- <string id="30002">All Specials</string>
-</strings>
+ <string id="30001">TV magazine</string>
+ <string id="30002">Pantoffelkino-TV (old episodes)</string>
+ <string id="30003">Episode {episode} from {date}</string>
+ <string id="30004">Older episodes</string>
+ <string id="30005">Special: All Specials</string>
+ <string id="30006">Special: Aktuell im Gespräch</string>
+ <string id="30007">Special: Schlechte Filme TV</string>
+ <string id="30008">Special: Pantoffelkino-TV out-takes</string>
+ <string id="30009">Postecke</string>
+ <string id="30010">Postecke (Audio version)</string>
+
+ <string id="30100">Couch settings</string>
+ <string id="30101">Use FKTV Couch</string>
+ <string id="30102">Username</string>
+ <string id="30103">Password</string>
+</strings>
\ No newline at end of file
diff --git
a/plugin.video.fernsehkritik_tv/resources/language/German/strings.xml
b/plugin.video.fernsehkritik_tv/resources/language/German/strings.xml
index 1aa4b62..7efb1ea 100644
--- a/plugin.video.fernsehkritik_tv/resources/language/German/strings.xml
+++ b/plugin.video.fernsehkritik_tv/resources/language/German/strings.xml
@@ -1,5 +1,18 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<strings>
- <string id="30001">Extras</string>
- <string id="30002">Alle Extras</string>
+ <string id="30001">TV-Magazin</string>
+ <string id="30002">Pantoffelkino-TV (alte Folgen)</string>
+ <string id="30003">Folge {episode} vom {date}</string>
+ <string id="30004">Alte Folgen</string>
+ <string id="30005">Extras: Alle Extras</string>
+ <string id="30006">Extras: Aktuell im Gespräch</string>
+ <string id="30007">Extras: Schlechte Filme TV</string>
+ <string id="30008">Extras: Pantoffelkino-TV out-takes</string>
+ <string id="30009">Postecke</string>
+ <string id="30010">Postecke (Audioversion)</string>
+
+ <string id="30100">Couch-Einstellungen</string>
+ <string id="30101">FKTV-Couch nutzen</string>
+ <string id="30102">Benutzername</string>
+ <string id="30103">Passwort</string>
</strings>
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=44c53bb24e57f27f0098f06d1edbb0f8cf4441a5
commit 44c53bb24e57f27f0098f06d1edbb0f8cf4441a5
Author: spiff <[email protected]>
Date: Wed Oct 10 11:17:37 2012 +0200
[plugin.video.southpark_de] updated to version 1.0.1
diff --git a/plugin.video.southpark_de/addon.xml
b/plugin.video.southpark_de/addon.xml
index c20db07..44c7340 100644
--- a/plugin.video.southpark_de/addon.xml
+++ b/plugin.video.southpark_de/addon.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<addon id="plugin.video.southpark_de" name="SouthPark.de" version="1.0.0"
provider-name="AddonScriptorDE">
+<addon id="plugin.video.southpark_de" name="SouthPark.de" version="1.0.1"
provider-name="AddonScriptorDE">
<requires>
<import addon="xbmc.python" version="2.0"/>
</requires>
diff --git a/plugin.video.southpark_de/changelog.txt
b/plugin.video.southpark_de/changelog.txt
index 21d8488..3d3c90c 100644
--- a/plugin.video.southpark_de/changelog.txt
+++ b/plugin.video.southpark_de/changelog.txt
@@ -1,2 +1,4 @@
1.0.0
- First Try
+1.0.1
+- Fixed site changes
\ No newline at end of file
diff --git a/plugin.video.southpark_de/default.py
b/plugin.video.southpark_de/default.py
index 1934515..86502bf 100644
--- a/plugin.video.southpark_de/default.py
+++ b/plugin.video.southpark_de/default.py
@@ -2,18 +2,19 @@
# -*- coding: utf-8 -*-
import urllib,urllib2,re,xbmcplugin,xbmcgui,sys,xbmcaddon,base64,socket
+socket.setdefaulttimeout(30)
pluginhandle = int(sys.argv[1])
xbox = xbmc.getCondVisibility("System.Platform.xbox")
-settings = xbmcaddon.Addon(id='plugin.video.southpark_de')
-translation = settings.getLocalizedString
+addon = xbmcaddon.Addon(id='plugin.video.southpark_de')
+translation = addon.getLocalizedString
-language=settings.getSetting("language")
-forceViewMode=settings.getSetting("forceViewMode")
+language=addon.getSetting("language")
+forceViewMode=addon.getSetting("forceViewMode")
if forceViewMode=="true":
forceViewMode=True
else:
forceViewMode=False
-viewMode=str(settings.getSetting("viewMode"))
+viewMode=str(addon.getSetting("viewMode"))
if language=="0":
language=""
@@ -22,12 +23,15 @@ elif language=="1":
def index():
addLink(translation(30003),"",'playRandom',"","")
- content = getUrl("http://www.southpark.de/alleEpisoden/")
- content = content[content.find('<div id="content_epfinder"'):]
- content = content[:content.find('<div class="content_carouselwrap">')]
+ content = getUrl("http://www.southpark.de/alle-episoden")
+ content = content[content.find('content_epfinder'):]
+ content = content[:content.find('content_carouselwrap')]
+ match=re.compile('data-promoId="(.+?)"', re.DOTALL).findall(content)
+ promoId=match[0]
match=re.compile('href="(.+?)">(.+?)</a>', re.DOTALL).findall(content)
for url, staffel in match:
- addDir(str(translation(30001))+"
"+staffel,"http://www.southpark.de"+url,'listVideos',"")
+ if url.find("/random")==-1:
+ addDir(str(translation(30001))+"
"+staffel,"http://www.southpark.de/feeds/full-episode/carousel/"+staffel+"/"+promoId,'listVideos',"")
xbmcplugin.endOfDirectory(pluginhandle)
if forceViewMode==True:
xbmc.executebuiltin('Container.SetViewMode('+viewMode+')')
@@ -38,59 +42,60 @@ def playRandom():
i=1
for i in range(1,100,1):
if xbox==True:
-
url="plugin://video/SouthPark.de/?url=http://www.southpark.de/alleEpisoden/random/&mode=playVideo"
+
url="plugin://video/SouthPark.de/?url=http://www.southpark.de/alle-episoden/random&mode=playVideo"
else:
-
url="plugin://plugin.video.southpark_de/?url=http://www.southpark.de/alleEpisoden/random/&mode=playVideo"
+
url="plugin://plugin.video.southpark_de/?url=http://www.southpark.de/alle-episoden/random&mode=playVideo"
listitem = xbmcgui.ListItem("South Park: "+translation(30003)+"
"+str(i))
i=i+1
playlist.add(url,listitem)
def listVideos(url):
+ xbmcplugin.addSortMethod(pluginhandle, xbmcplugin.SORT_METHOD_LABEL)
content = getUrl(url)
- match=re.compile('<li><span>(.+?)</span></li>',
re.DOTALL).findall(content)
- season=match[0]
- spl=content.split('<li class="grid_item">')
+ spl=content.split('title:')
for i in range(1,len(spl),1):
entry=spl[i]
- match=re.compile('<span class="title eptitle">(.+?)</span>',
re.DOTALL).findall(entry)
+ match=re.compile("'(.+?)',", re.DOTALL).findall(entry)
title=match[0]
title=cleanTitle(title)
- match=re.compile('<span class="epnumber">(.+?)</span>',
re.DOTALL).findall(entry)
+ match=re.compile("episodenumber:'(.+?)'", re.DOTALL).findall(entry)
episode=match[0]
- match=re.compile('<span class="epdesc">(.+?)</span>',
re.DOTALL).findall(entry)
+ nr="S"+episode[0:2]+"E"+episode[2:4]
+ match=re.compile("description:'(.+?)'", re.DOTALL).findall(entry)
desc=match[0]
- match=re.compile('href="/alleEpisoden/(.+?)/"',
re.DOTALL).findall(entry)
- url="http://www.southpark.de/alleEpisoden/"+match[0]+"/"
- match=re.compile('src="(.+?)"', re.DOTALL).findall(entry)
+ match=re.compile("url:'(.+?)'", re.DOTALL).findall(entry)
+ url=match[0]
+ match=re.compile("thumbnail:'(.+?)'", re.DOTALL).findall(entry)
thumb=match[0]
- addLink(episode+" - "+title,url,'playVideo',thumb,desc)
+ thumb=thumb[:thumb.find("?")]
+ addLink(nr+" - "+title,url,'playVideo',thumb,desc)
xbmcplugin.endOfDirectory(pluginhandle)
if forceViewMode==True:
xbmc.executebuiltin('Container.SetViewMode('+viewMode+')')
def playVideo(url):
content = getUrl(url)
- matchTitle=re.compile('<meta name="title" content="(.+?)"',
re.DOTALL).findall(content)
- matchDesc=re.compile('<meta name="description" content="(.+?)"',
re.DOTALL).findall(content)
- match=re.compile(':southparkstudios.de:(.+?)"',
re.DOTALL).findall(content)
+ matchTitle=re.compile('<h1>(.+?)</h1>', re.DOTALL).findall(content)
+ matchDesc=re.compile('<h2>(.+?)</h2>', re.DOTALL).findall(content)
+
match=re.compile('http://media.mtvnservices.com/mgid:arc:episode:southpark.de:(.+?)"',
re.DOTALL).findall(content)
if len(match)>0:
- content =
getUrl("http://www.southpark.de/feeds/video-player/mrss/mgid%3Ahcx%3Acontent%3Asouthparkstudios.de%3A"+match[0]+"?lang="+language)
+ content =
getUrl("http://www.southpark.de/feeds/video-player/mrss/mgid%3Aarc%3Aepisode%3Asouthpark.de%3A"+match[0]+"?lang="+language)
spl=content.split('<item>')
urlFull="stack://"
for i in range(1,len(spl),1):
entry=spl[i]
- match=re.compile('<media:content url="(.+?)"',
re.DOTALL).findall(entry)
- url=match[0]
+ match=re.compile('<media:content type="text/xml" medium="video"
duration="(.+?)" isDefault="true" url="(.+?)"', re.DOTALL).findall(entry)
+ url=match[0][1].replace("&","&")
content = getUrl(url)
- matchMp4=re.compile('bitrate="(.+?)" width="(.+?)"
height="(.+?)" type="video/mp4">\n<src>(.+?)</src>', re.DOTALL).findall(content)
- matchFlv=re.compile('bitrate="(.+?)" width="(.+?)"
height="(.+?)" type="video/x-flv">\n<src>(.+?)</src>',
re.DOTALL).findall(content)
+ matchMp4=re.compile('width="(.+?)" height="(.+?)"
type="video/mp4" bitrate="(.+?)">(.+?)<src>(.+?)</src>',
re.DOTALL).findall(content)
+ matchFlv=re.compile('width="(.+?)" height="(.+?)"
type="video/x-flv" bitrate="(.+?)">(.+?)<src>(.+?)</src>',
re.DOTALL).findall(content)
urlNew=""
bitrate=0
if len(matchMp4)>0:
match=matchMp4
elif len(matchFlv)>0:
match=matchFlv
- for br,temp1,temp2,url in match:
+ for temp1,temp2,br,temp3,url in match:
if int(br)>bitrate:
bitrate=int(br)
urlNew=url
@@ -113,17 +118,13 @@ def playVideo(url):
def cleanTitle(title):
title=title.replace("<","<").replace(">",">").replace("&","&").replace("'","\\").replace(""","\"").replace("ß","Ã").replace("–","-")
title=title.replace("Ä","Ã").replace("Ü","Ã").replace("Ö","Ã").replace("ä","ä").replace("ü","ü").replace("ö","ö")
- title=title.strip()
+ title=title.replace("\\'","'").strip()
return title
def getUrl(url):
req = urllib2.Request(url)
- req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; rv:11.0)
Gecko/20100101 Firefox/13.0')
- if xbox==True:
- socket.setdefaulttimeout(30)
- response = urllib2.urlopen(req)
- else:
- response = urllib2.urlopen(req,timeout=30)
+ req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; rv:15.0)
Gecko/20100101 Firefox/15.0.1')
+ response = urllib2.urlopen(req)
link=response.read()
response.close()
return link
diff --git a/plugin.video.southpark_de/resources/language/English/strings.xml
b/plugin.video.southpark_de/resources/language/English/strings.xml
index 5eb8214..fd8c33e 100644
--- a/plugin.video.southpark_de/resources/language/English/strings.xml
+++ b/plugin.video.southpark_de/resources/language/English/strings.xml
@@ -5,6 +5,6 @@
<string id="30003">Random</string>
<string id="30004">Episode is not available</string>
<string id="30101">Language</string>
- <string id="30102">Force ViewMode</string>
- <string id="30103">ViewMode</string>
+ <string id="30102">Force View</string>
+ <string id="30103">ViewID</string>
</strings>
diff --git a/plugin.video.southpark_de/resources/language/German/strings.xml
b/plugin.video.southpark_de/resources/language/German/strings.xml
index 13a37a6..1f9cf83 100644
--- a/plugin.video.southpark_de/resources/language/German/strings.xml
+++ b/plugin.video.southpark_de/resources/language/German/strings.xml
@@ -5,5 +5,5 @@
<string id="30003">Zufällig</string>
<string id="30004">Folge ist nicht verfuegbar</string>
<string id="30101">Sprache</string>
- <string id="30102">ViewMode erzwingen</string>
+ <string id="30102">View erzwingen</string>
</strings>
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=b1fb1b852e15b326d18ab31de17aba6dab6a216a
commit b1fb1b852e15b326d18ab31de17aba6dab6a216a
Author: spiff <[email protected]>
Date: Wed Oct 10 11:16:09 2012 +0200
[plugin.video.lachschon_de] updated to version 1.0.6
diff --git a/plugin.video.lachschon_de/addon.xml
b/plugin.video.lachschon_de/addon.xml
index e5c474a..8942fdc 100644
--- a/plugin.video.lachschon_de/addon.xml
+++ b/plugin.video.lachschon_de/addon.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
-<addon id="plugin.video.lachschon_de" name="LachSchon.de" version="1.0.5"
provider-name="AddonScriptorDE">
+<addon id="plugin.video.lachschon_de" name="LachSchon.de" version="1.0.6"
provider-name="AddonScriptorDE">
<requires>
<import addon="xbmc.python" version="2.0"/>
- <import addon="plugin.video.youtube" version="2.9.1"/>
+ <import addon="plugin.video.youtube" version="3.0.0"/>
</requires>
<extension point="xbmc.python.pluginsource" library="default.py">
<provides>video</provides>
diff --git a/plugin.video.lachschon_de/changelog.txt
b/plugin.video.lachschon_de/changelog.txt
index 188dcb2..4c2b5ca 100644
--- a/plugin.video.lachschon_de/changelog.txt
+++ b/plugin.video.lachschon_de/changelog.txt
@@ -1,6 +1,14 @@
-1.0.0 - First Try
-1.0.1 - Changed addon.xml
-1.0.2 - Added string localization
-1.0.3 - Changed Timeout
-1.0.4 - Various fixes and optical optimizations
-1.0.5 - Added Random Videos & Search
\ No newline at end of file
+1.0.0
+- First Try
+1.0.1
+- Changed addon.xml
+1.0.2
+- Added string localization
+1.0.3
+- Changed Timeout
+1.0.4
+- Various fixes and optical optimizations
+1.0.5
+- Added Random Videos & Search
+1.0.6
+- Fixed site changes
\ No newline at end of file
diff --git a/plugin.video.lachschon_de/default.py
b/plugin.video.lachschon_de/default.py
index e1bc33f..6ea6ec7 100644
--- a/plugin.video.lachschon_de/default.py
+++ b/plugin.video.lachschon_de/default.py
@@ -1,18 +1,30 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
-import urllib,urllib2,re,xbmcplugin,xbmcgui,sys,xbmcaddon
+import urllib,urllib2,re,xbmcplugin,xbmcgui,sys,xbmcaddon,socket
+socket.setdefaulttimeout(30)
pluginhandle = int(sys.argv[1])
+xbox = xbmc.getCondVisibility("System.Platform.xbox")
+addon = xbmcaddon.Addon(id='plugin.video.lachschon_de')
+translation = addon.getLocalizedString
-settings = xbmcaddon.Addon(id='plugin.video.lachschon_de')
-translation = settings.getLocalizedString
+forceViewMode=addon.getSetting("forceViewMode")
+if forceViewMode=="true":
+ forceViewMode=True
+else:
+ forceViewMode=False
+viewMode=str(addon.getSetting("viewMode"))
def index():
-
addDir(translation(30001),"http://www.lachschon.de/gallery/trend/?set_gallery_type=video&set_image_type=small&page=1",1,"")
-
addDir(translation(30002),"http://www.lachschon.de/gallery/top/?set_gallery_type=video&set_image_type=small&page=1",1,"")
-
addDir(translation(30003),"http://www.lachschon.de/gallery/random/?set_gallery_type=video&set_image_type=small&page=1",1,"")
- addDir(translation(30004),"SEARCH",3,"")
+
addDir(translation(30005),"http://www.lachschon.de/gallery/new/?set_gallery_type=video&set_image_type=small&page=1","listVideos","")
+
addDir(translation(30001),"http://www.lachschon.de/gallery/trend/?set_gallery_type=video&set_image_type=small&page=1","listVideos","")
+
addDir(translation(30002),"http://www.lachschon.de/gallery/top/?set_gallery_type=video&set_image_type=small&page=1","listVideos","")
+
addDir(translation(30007),"http://www.lachschon.de/gallery/mostvoted/?set_gallery_type=video&set_image_type=small&page=1","listVideos","")
+
addDir(translation(30003),"http://www.lachschon.de/gallery/random/?set_gallery_type=video&set_image_type=small&page=1","listVideos","")
+ addDir(translation(30004),"SEARCH","search","")
xbmcplugin.endOfDirectory(pluginhandle)
+ if forceViewMode==True:
+ xbmc.executebuiltin('Container.SetViewMode('+viewMode+')')
def search():
keyboard = xbmc.Keyboard('', str(translation(30004)))
@@ -23,11 +35,10 @@ def search():
def listVideos(url):
content = getUrl(url)
+ match=re.compile('<a class="direction forward"
href="\\?page=(.+?)">weiter <', re.DOTALL).findall(content)
urlNextPage=""
- if content.find('">weiter <')>=0:
- nextPage=content[content.find('<a class="direction"
href="?page=')+33:]
- nextPage=nextPage[:nextPage.find('"')]
- urlNextPage=url[:url.find("&page=")]+"&page="+nextPage
+ if len(match)>0:
+ urlNextPage=url[:url.find("&page=")]+"&page="+match[0]
content = content[content.find('<ul id="itemlist">'):content.find('<p
class="advert-notice">')]
spl=content.split('<li>')
for i in range(1,len(spl),1):
@@ -36,32 +47,43 @@ def listVideos(url):
url=match[0]
match=re.compile('src="(.+?)"', re.DOTALL).findall(entry)
thumb=match[0]
- match=re.compile('<span class="subtitle">(.+?)</span>',
re.DOTALL).findall(entry)
- title=match[0]
+ match=re.compile('<span class="rating">(.+?)</span>',
re.DOTALL).findall(entry)
+ rating=-1
+ if len(match)>0:
+ rating=int(int(match[0].replace(".",""))/10)
+ match=re.compile('class="title"
href="(.+?)"(.+?)title="(.+?)">(.+?)\n', re.DOTALL).findall(entry)
+ title=match[0][3]
title=cleanTitle(title)
- addLink(title,"http://www.lachschon.de"+url,2,thumb)
+ if rating!=-1:
+ title=title+" ("+str(rating)+"%)"
+ addLink(title,"http://www.lachschon.de"+url,"playVideo",thumb)
if urlNextPage!="":
- addDir("Next Page",urlNextPage,1,'')
+ addDir(translation(30006),urlNextPage,"listVideos",'')
xbmcplugin.endOfDirectory(pluginhandle)
+ if forceViewMode==True:
+ xbmc.executebuiltin('Container.SetViewMode('+viewMode+')')
def playVideo(url):
content = getUrl(url)
- id=content[content.find('http://www.youtube.com/embed/')+29:]
- id=id[:id.find('?')]
- fullData =
"plugin://plugin.video.youtube/?path=/root/video&action=play_video&videoid=" +
id
+ youtubeID=content[content.find('http://www.youtube.com/embed/')+29:]
+ youtubeID=youtubeID[:youtubeID.find('?')]
+ if xbox==True:
+ fullData =
"plugin://video/YouTube/?path=/root/video&action=play_video&videoid=" +
youtubeID
+ else:
+ fullData =
"plugin://plugin.video.youtube/?path=/root/video&action=play_video&videoid=" +
youtubeID
listitem = xbmcgui.ListItem(path=fullData)
return xbmcplugin.setResolvedUrl(pluginhandle, True, listitem)
def cleanTitle(title):
-
title=title.replace("<","<").replace(">",">").replace("&","&").replace("'","\\").replace("'","\\").replace(""","\"").replace("ß","Ã").replace("–","-")
+
title=title.replace("<","<").replace(">",">").replace("&","&").replace("'","'").replace("'","'").replace(""","\"").replace("ß","Ã").replace("–","-")
title=title.replace("Ä","Ã").replace("Ü","Ã").replace("Ö","Ã").replace("ä","ä").replace("ü","ü").replace("ö","ö")
title=title.strip()
return title
def getUrl(url):
req = urllib2.Request(url)
- req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; rv:11.0)
Gecko/20100101 Firefox/11.0')
- response = urllib2.urlopen(req,timeout=30)
+ req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; rv:14.0)
Gecko/20100101 Firefox/14.0.1')
+ response = urllib2.urlopen(req)
link=response.read()
response.close()
return link
@@ -95,25 +117,16 @@ def addDir(name,url,mode,iconimage):
return ok
params=parameters_string_to_dict(sys.argv[2])
-url=None
-mode=None
+mode=params.get('mode')
+url=params.get('url')
+if type(url)==type(str()):
+ url=urllib.unquote_plus(url)
-try:
- url=urllib.unquote_plus(params["url"])
-except:
- pass
-try:
- mode=int(params["mode"])
-except:
- pass
-
-
-if mode==None or url==None or len(url)<1:
- index()
-
-elif mode==1:
- listVideos(url)
-elif mode==2:
- playVideo(url)
-elif mode==3:
- search()
+if mode == 'listVideos':
+ listVideos(url)
+elif mode == 'playVideo':
+ playVideo(url)
+elif mode == 'search':
+ search()
+else:
+ index()
diff --git a/plugin.video.lachschon_de/resources/language/English/strings.xml
b/plugin.video.lachschon_de/resources/language/English/strings.xml
index 8fe122a..9c9d9d7 100644
--- a/plugin.video.lachschon_de/resources/language/English/strings.xml
+++ b/plugin.video.lachschon_de/resources/language/English/strings.xml
@@ -1,7 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<strings>
- <string id="30001">Newest Videos</string>
- <string id="30002">Best Voted</string>
- <string id="30003">Random Videos</string>
- <string id="30004">Video Search</string>
+ <string id="30001">New: Top</string>
+ <string id="30002">Best Rated</string>
+ <string id="30003">Random</string>
+ <string id="30004">Search</string>
+ <string id="30005">New: All</string>
+ <string id="30006">Next Page</string>
+ <string id="30007">Most Voted</string>
+ <string id="30101">Force View</string>
+ <string id="30102">ViewID</string>
</strings>
diff --git a/plugin.video.lachschon_de/resources/language/German/strings.xml
b/plugin.video.lachschon_de/resources/language/German/strings.xml
index 205e6b6..be7da08 100644
--- a/plugin.video.lachschon_de/resources/language/German/strings.xml
+++ b/plugin.video.lachschon_de/resources/language/German/strings.xml
@@ -1,7 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<strings>
- <string id="30001">Neueste Videos</string>
- <string id="30002">Beste Bewertung</string>
- <string id="30003">Zufällige Videos</string>
- <string id="30004">Video suche</string>
+ <string id="30001">Neu: Top</string>
+ <string id="30002">Bestbewertet</string>
+ <string id="30003">Zufällig</string>
+ <string id="30004">Suchen</string>
+ <string id="30005">Neu: Alle</string>
+ <string id="30006">Nächste Seite</string>
+ <string id="30007">Meistbewertet</string>
+ <string id="30101">View erzwingen</string>
</strings>
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=7a9afa6fa4dd7ab7d6cfc17a08592690680c66f0
commit 7a9afa6fa4dd7ab7d6cfc17a08592690680c66f0
Author: spiff <[email protected]>
Date: Wed Oct 10 11:15:15 2012 +0200
[plugin.video.cbsnews_com] updated to version 1.0.5
diff --git a/plugin.video.cbsnews_com/addon.xml
b/plugin.video.cbsnews_com/addon.xml
index f65ae07..0453cc5 100644
--- a/plugin.video.cbsnews_com/addon.xml
+++ b/plugin.video.cbsnews_com/addon.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<addon id="plugin.video.cbsnews_com" name="CBSnews.com" version="1.0.4"
provider-name="AddonScriptorDE">
+<addon id="plugin.video.cbsnews_com" name="CBSnews.com" version="1.0.5"
provider-name="AddonScriptorDE">
<requires>
<import addon="xbmc.python" version="2.0"/>
</requires>
diff --git a/plugin.video.cbsnews_com/changelog.txt
b/plugin.video.cbsnews_com/changelog.txt
index 7bcc77c..3ea499d 100644
--- a/plugin.video.cbsnews_com/changelog.txt
+++ b/plugin.video.cbsnews_com/changelog.txt
@@ -7,4 +7,6 @@
1.0.3
- Fixed playback for older videos
1.0.4
-- Added setting for maximum bitrate
\ No newline at end of file
+- Added setting for maximum bitrate
+1.0.5
+- Fixed site changes
\ No newline at end of file
diff --git a/plugin.video.cbsnews_com/default.py
b/plugin.video.cbsnews_com/default.py
index 6a924a8..a62070e 100644
--- a/plugin.video.cbsnews_com/default.py
+++ b/plugin.video.cbsnews_com/default.py
@@ -4,17 +4,17 @@ import
urllib,urllib2,re,xbmcplugin,xbmcgui,sys,xbmcaddon,base64,httplib,socket,
socket.setdefaulttimeout(30)
pluginhandle = int(sys.argv[1])
-settings = xbmcaddon.Addon(id='plugin.video.cbsnews_com')
-translation = settings.getLocalizedString
+addon = xbmcaddon.Addon(id='plugin.video.cbsnews_com')
+translation = addon.getLocalizedString
-forceViewMode=settings.getSetting("forceViewMode")
+forceViewMode=addon.getSetting("forceViewMode")
if forceViewMode=="true":
forceViewMode=True
else:
forceViewMode=False
-viewMode=str(settings.getSetting("viewMode"))
+viewMode=str(addon.getSetting("viewMode"))
-maxBitRate=settings.getSetting("maxBitRate")
+maxBitRate=addon.getSetting("maxBitRate")
qual=[500,1000,1500,2000,3000]
maxBitRate=qual[int(maxBitRate)]
@@ -24,7 +24,7 @@ def index():
for i in range(1,len(spl),1):
entry=spl[i]
match=re.compile('"(.+?)"', re.DOTALL).findall(entry)
- nextUrl="http://www.cbsnews.com"+match[0]
+ nextUrl=match[0]
match=re.compile('nodeid="(.+?)"', re.DOTALL).findall(entry)
match2=re.compile('nodeId="(.+?)"', re.DOTALL).findall(entry)
if len(match)>0:
@@ -127,9 +127,9 @@ def listVideos(url):
matchPage2=re.compile('<li class="next" section="next"><a href="(.+?)"
rel="next">', re.DOTALL).findall(content)
urlNext=""
if len(matchPage)>0:
- urlNext="http://www.cbsnews.com"+matchPage[0]
+ urlNext=matchPage[0]
if len(matchPage2)>0:
- urlNext="http://www.cbsnews.com"+matchPage2[0]
+ urlNext=matchPage2[0]
if urlNext!="":
if urlNext.find("/video//")>=0:
urlNext=urlNext.replace("/video//","/video/"+tempTitle+"/")
-----------------------------------------------------------------------
Summary of changes:
plugin.video.cbsnews_com/addon.xml | 2 +-
plugin.video.cbsnews_com/changelog.txt | 4 +-
plugin.video.cbsnews_com/default.py | 16 +-
plugin.video.fernsehkritik_tv/addon.xml | 2 +-
plugin.video.fernsehkritik_tv/changelog.txt | 3 +-
plugin.video.fernsehkritik_tv/default.py | 366 ++++++++++++++------
.../resources/language/English/strings.xml | 19 +-
.../resources/language/German/strings.xml | 17 +-
.../resources/settings.xml | 8 +
plugin.video.lachschon_de/addon.xml | 4 +-
plugin.video.lachschon_de/changelog.txt | 20 +-
plugin.video.lachschon_de/default.py | 97 +++---
.../resources/language/English/strings.xml | 13 +-
.../resources/language/German/strings.xml | 12 +-
.../resources/settings.xml | 0
.../LICENSE.txt | 0
plugin.video.redux_com/addon.xml | 18 +
.../changelog.txt | 0
plugin.video.redux_com/default.py | 165 +++++++++
plugin.video.redux_com/icon.png | Bin 0 -> 19104 bytes
.../resources/language/English/strings.xml | 1 -
.../resources/language/German/strings.xml | 1 -
.../resources/settings.xml | 0
plugin.video.southpark_de/addon.xml | 2 +-
plugin.video.southpark_de/changelog.txt | 2 +
plugin.video.southpark_de/default.py | 75 ++--
.../resources/language/English/strings.xml | 4 +-
.../resources/language/German/strings.xml | 2 +-
28 files changed, 622 insertions(+), 231 deletions(-)
create mode 100644 plugin.video.fernsehkritik_tv/resources/settings.xml
copy {plugin.audio.einslive_de =>
plugin.video.lachschon_de}/resources/settings.xml (100%)
copy {plugin.audio.einslive_de => plugin.video.redux_com}/LICENSE.txt (100%)
create mode 100644 plugin.video.redux_com/addon.xml
copy {plugin.video.chefkoch_de => plugin.video.redux_com}/changelog.txt (100%)
create mode 100644 plugin.video.redux_com/default.py
create mode 100644 plugin.video.redux_com/icon.png
copy {plugin.video.thatguywiththeglasses_com =>
plugin.video.redux_com}/resources/language/English/strings.xml (77%)
copy {plugin.video.thatguywiththeglasses_com =>
plugin.video.redux_com}/resources/language/German/strings.xml (73%)
copy {plugin.audio.einslive_de =>
plugin.video.redux_com}/resources/settings.xml (100%)
hooks/post-receive
--
Plugins
------------------------------------------------------------------------------
Don't let slow site performance ruin your business. Deploy New Relic APM
Deploy New Relic app performance management and know exactly
what is happening inside your Ruby, Python, PHP, Java, and .NET app
Try New Relic at no cost today and get our sweet Data Nerd shirt too!
http://p.sf.net/sfu/newrelic-dev2dev
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons