The branch, eden has been updated
via 40d30d022bce23d3063ac5d7e6d56725bac9651d (commit)
from 49d74f01cc1fa4128c000ef3846a448e06e9c3db (commit)
- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=40d30d022bce23d3063ac5d7e6d56725bac9651d
commit 40d30d022bce23d3063ac5d7e6d56725bac9651d
Author: beenje <[email protected]>
Date: Sun Jul 14 22:11:51 2013 +0200
[plugin.video.tv3play.dk] updated to version 1.0.6
diff --git a/plugin.video.tv3play.dk/addon.py b/plugin.video.tv3play.dk/addon.py
index 60d5fb1..08a9567 100644
--- a/plugin.video.tv3play.dk/addon.py
+++ b/plugin.video.tv3play.dk/addon.py
@@ -1,5 +1,5 @@
#
-# Copyright (C) 2012 Tommy Winther
+# Copyright (C) 2013 Tommy Winther
# http://tommy.winther.nu
#
# This Program is free software; you can redistribute it and/or modify
@@ -17,12 +17,12 @@
# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
# http://www.gnu.org/copyleft/gpl.html
#
-from xml.etree import ElementTree
import os
import sys
import urlparse
-import urllib2
import re
+import urllib2
+import mobileapi
import xbmc
import xbmcgui
@@ -32,12 +32,14 @@ import xbmcplugin
import buggalo
REGIONS = ['tv3play.dk', 'tv3play.se', 'tv3play.no', 'tv3play.lt',
'tv3play.lv', 'tv3play.ee', 'viasat4play.no']
-RSS = { 301 : 'recent', 302 : 'mostviewed', 303 : 'highestrated', 304 :
'recent?type=clip' }
+RSS = {301: 'recent', 302: 'mostviewed', 303: 'highestrated', 304:
'recent?type=clip'}
-class TV3PlayException(Exception):
- pass
class TV3PlayAddon(object):
+ def __init__(self):
+ if 'region' in PARAMS:
+ self.api = mobileapi.TV3PlayMobileApi(PARAMS['region'][0])
+
def listRegions(self):
items = list()
for region in REGIONS:
@@ -48,308 +50,116 @@ class TV3PlayAddon(object):
xbmcplugin.addDirectoryItems(HANDLE, items)
xbmcplugin.endOfDirectory(HANDLE)
-
def listPrograms(self, region):
- url = 'http://www.%s/program' % region
- buggalo.addExtraData('url', url)
- html = self.downloadUrl(url)
- if not html:
- raise TV3PlayException(ADDON.getLocalizedString(204))
-
items = list()
- for stringId in sorted(RSS.keys()):
- item = xbmcgui.ListItem(ADDON.getLocalizedString(stringId),
iconImage=ICON)
- item.setProperty('Fanart_Image', FANART)
- items.append((PATH + '?region=%s&rss=%s' % (region, stringId),
item, True))
- for m in re.finditer('<a href="/program/([^"]+)">([^<]+)</a>', html):
- slug = m.group(1)
- title = m.group(2)
- fanart = self.downloadAndCacheFanart(slug, None)
+ # # Featured
+ # item = xbmcgui.ListItem(ADDON.getLocalizedString(305),
iconImage=ICON)
+ # item.setProperty('Fanart_Image', FANART)
+ # items.append((PATH + '?region=%s&special=featued' % region,
item, True))
+ #
+ # # Most viewed
+ # item = xbmcgui.ListItem(ADDON.getLocalizedString(302),
iconImage=ICON)
+ # item.setProperty('Fanart_Image', FANART)
+ # items.append((PATH + '?region=%s&special=mostviewed' %
region, item, True))
+
+ formats = self.api.getAllFormats()
+ if not formats:
+ xbmcplugin.endOfDirectory(HANDLE, succeeded=False)
+ self.displayError('Mobile API not available for this region yet!
Try later...')
+ return
+
+ for series in formats:
+ fanart = mobileapi.IMAGE_URL % series['image'].replace(' ', '%20')
- item = xbmcgui.ListItem(title, iconImage=fanart)
+ infoLabels = {
+ 'title': series['title'],
+ 'plot': series['description']
+ }
+
+ item = xbmcgui.ListItem(series['title'], iconImage=fanart)
+ item.setInfo('video', infoLabels)
item.setProperty('Fanart_Image', fanart)
- items.append((PATH + '?region=%s&program=%s' % (region, slug),
item, True))
+ items.append((PATH + '?region=%s&format=%s' % (region,
series['id']), item, True))
xbmcplugin.addDirectoryItems(HANDLE, items)
xbmcplugin.endOfDirectory(HANDLE)
- def listSeasons(self, region, slug):
- url = 'http://www.%s/program/%s' % (region, slug)
- buggalo.addExtraData('url', url)
- html = self.downloadUrl(url)
- if not html:
- raise TV3PlayException(ADDON.getLocalizedString(203))
-
- fanart = self.downloadAndCacheFanart(slug, html)
-
- m = re.search('Table body(.*?)</tbody>.*?Table body(.*?)</tbody>',
html, re.DOTALL)
- if not m:
- raise TV3PlayException(ADDON.getLocalizedString(203))
- episodesHtml = m.group(1)
- clipsHtml = m.group(2)
-
- seasons = episodesHtml.split('class="season-head')
- for seasonHtml in seasons:
- m = re.search('<strong>(.*?)</strong>', seasonHtml)
- season = m.group(1)
- videoCount = seasonHtml.count('href="/play/')
- if videoCount > 0:
- item = xbmcgui.ListItem(season, iconImage = ICON)
- if fanart:
- item.setIconImage(fanart)
- item.setProperty('Fanart_Image', fanart)
- xbmcplugin.addDirectoryItem(HANDLE, PATH +
'?region=%s&program=%s&season=%s' % (region, slug, season), item, True,
videoCount)
-
- seasons = clipsHtml.split('class="season-head')
- for seasonHtml in seasons:
- m = re.search('<strong>(.*?)</strong>', seasonHtml)
- season = m.group(1)
- videoCount = seasonHtml.count('href="/play/')
- if videoCount > 0:
- item = xbmcgui.ListItem('%s (%s)' % (season.decode('utf8',
'ignore'), ADDON.getLocalizedString(103)), iconImage = fanart)
- item.setProperty('Fanart_Image', fanart)
- xbmcplugin.addDirectoryItem(HANDLE, PATH +
'?region=%s&program=%s&season=%s&clips=true' % (region, slug, season), item,
True, videoCount)
+ def listCategories(self, region, formatId):
+ detailed = self.api.detailed(formatId)
+ for category in detailed['formatcategories']:
+ fanart = mobileapi.IMAGE_URL % category['image'].replace(' ',
'%20')
- xbmcplugin.endOfDirectory(HANDLE)
-
-
- def listVideos(self, region, slug, season, clips = False):
- url = 'http://www.%s/program/%s' % (region, slug)
- buggalo.addExtraData('url', url)
- html = self.downloadUrl(url)
- if not html:
- raise TV3PlayException(ADDON.getLocalizedString(204))
- fanart = self.downloadAndCacheFanart(slug, html)
-
- m = re.search('Table body(.*?)</tbody>.*?Table body(.*?)</tbody>',
html, re.DOTALL)
- if clips:
- html = m.group(2)
- else:
- html = m.group(1)
+ item = xbmcgui.ListItem(category['name'], iconImage=fanart)
+ item.setProperty('Fanart_Image', fanart)
+ xbmcplugin.addDirectoryItem(HANDLE,
+ PATH +
'?region=%s&format=%s&category=%s' % (region, formatId, category['id']),
+ item, True)
- snip = ''
- seasons = html.split('class="season-head')
- for seasonHtml in seasons:
- if seasonHtml.count(season) > 0:
- snip = seasonHtml
- break
+ xbmcplugin.endOfDirectory(HANDLE)
+ def listVideos(self, region, category):
items = list()
- for m in re.finditer('<a
href="/play/([0-9]+)/".*?>([^<]+)<.*?col2">([^<]*)<.*?col3">([^<]+)<.*?col4">([^<]*)<.*?rated-([0-5])',
snip, re.DOTALL):
- videoId = m.group(1)
- title = m.group(2)
- episode = m.group(3)
- duration = m.group(4)
- airDate = m.group(5)
- rating = int(m.group(6)) * 2.0
- date = '%s.%s.20%s' % (airDate[0:2], airDate[3:5], airDate[6:8])
+ videos = self.api.getVideos(category)
+ for video in videos:
+ fanart = mobileapi.IMAGE_URL % video['image'].replace(' ', '%20')
infoLabels = {
- 'title' : title,
- 'date' : date,
- 'studio' : ADDON.getAddonInfo('name'),
- 'duration' : duration,
- 'rating' : rating
+ 'title': video['title'],
+ 'studio': ADDON.getAddonInfo('name'),
+ 'plot': video['description'],
+ 'plotoutline': video['summary'],
+ 'tvshowtitle': video['formattitle']
}
- if episode:
- infoLabels['episode'] = int(episode)
+ if 'airdate' in video:
+ airdate = video['airdate']
+ infoLabels['date'] = '%s.%s.%s' % (airdate[8:10],
airdate[5:7], airdate[0:4])
+ infoLabels['year'] = int(airdate[0:4])
- item = xbmcgui.ListItem(title, iconImage = fanart)
- item.setInfo('video', infoLabels)
- item.setProperty('IsPlayable', 'true')
- item.setProperty('Fanart_Image', fanart)
- items.append((PATH + '?playVideo=%s' % videoId, item))
+ if 'episode' in video:
+ infoLabels['episode'] = int(video['episode'])
- if not clips:
- items.reverse()
- xbmcplugin.addSortMethod(HANDLE, xbmcplugin.SORT_METHOD_EPISODE)
- xbmcplugin.addSortMethod(HANDLE, xbmcplugin.SORT_METHOD_DATE)
- xbmcplugin.addDirectoryItems(HANDLE, items)
- xbmcplugin.endOfDirectory(HANDLE)
-
- def listRss(self, region, id):
- url = 'http://www.%s/rss/%s' % (region, RSS[int(id)])
- buggalo.addExtraData('url', url)
- xml = self.downloadUrl(url)
- if not xml:
- raise TV3PlayException(ADDON.getLocalizedString(204))
- doc = ElementTree.fromstring(xml.replace('&', '&'))
-
- items = list()
- for node in doc.findall('channel/item'):
- videoId = node.findtext('id')
- title = node.findtext('title')
- description = node.findtext('description')
- icon = node.findtext('thumbnailImage')
- infoLabels = {
- 'title' : title,
- 'plot' : description
- }
- pubDate = node.findtext('pubDate')
- if pubDate:
- infoLabels['year'] = int(pubDate[0:4])
- infoLabels['aired'] = pubDate[0:10]
- infoLabels['date'] = '%s.%s.%s' % (pubDate[8:10],
pubDate[5:7], pubDate[0:4])
-
- item = xbmcgui.ListItem(title, iconImage = icon)
+ item = xbmcgui.ListItem(video['title'], iconImage=fanart)
item.setInfo('video', infoLabels)
item.setProperty('IsPlayable', 'true')
- item.setProperty('Fanart_Image', FANART)
- items.append((PATH + '?playVideo=%s' % videoId, item))
+ item.setProperty('Fanart_Image', fanart)
+ items.append((PATH + '?region=%s&playVideo=%s' % (region,
video['id']), item))
+ xbmcplugin.addSortMethod(HANDLE, xbmcplugin.SORT_METHOD_EPISODE)
+ xbmcplugin.addSortMethod(HANDLE, xbmcplugin.SORT_METHOD_TITLE)
+ xbmcplugin.addSortMethod(HANDLE, xbmcplugin.SORT_METHOD_DATE)
xbmcplugin.addDirectoryItems(HANDLE, items)
xbmcplugin.endOfDirectory(HANDLE)
-
def playVideo(self, videoId):
- doc = self.getPlayProductXml(videoId)
- url = doc.findtext('Product/Videos/Video/Url')
- if not url:
- raise TV3PlayException(ADDON.getLocalizedString(202))
- rtmpUrl = self.getRtmpUrl(url) + '
swfUrl=http://flvplayer.viastream.viasat.tv/play/swf/player111227.swf
swfVfy=true'
-
playlist = xbmc.PlayList(xbmc.PLAYLIST_VIDEO)
playlist.clear()
- firstItem = None
-
- # Preroll
- prerollNode = doc.find('Product/AdCalls/preroll')
- if prerollNode is not None:
- url = prerollNode.get('url')
- node = self.getXml(url).find('Ad')
- if node is not None:
- flvUrl =
node.findtext('InLine/Creatives/Creative/Linear/MediaFiles/MediaFile')
- if flvUrl:
- item = xbmcgui.ListItem(ADDON.getLocalizedString(100),
iconImage = ICON)
- playlist.add(flvUrl, item)
- firstItem = item
-
- start = 0
- for idx, node in enumerate(doc.findall('Product/AdCalls/midroll')):
- adXml = self.downloadUrl(node.get('url'))
- if not adXml:
- continue
- adDoc = ElementTree.fromstring(adXml.decode('utf8', 'ignore'))
- adUrl =
adDoc.findtext('Ad/InLine/Creatives/Creative/Linear/MediaFiles/MediaFile')
- if not adUrl:
- continue
-
- stop = int(node.get('time'))
- itemUrl = rtmpUrl + ' start=%d stop=%d' % (start * 1000, stop *
1000)
- featureItem = xbmcgui.ListItem(doc.findtext('Product/Title'),
thumbnailImage=doc.findtext('Product/Images/ImageMedia/Url'), path = itemUrl)
- playlist.add(itemUrl, featureItem)
- start = stop
-
- if firstItem is None:
- firstItem = featureItem
-
- item = xbmcgui.ListItem(ADDON.getLocalizedString(100), iconImage =
ICON)
- playlist.add(adUrl, item)
-
- itemUrl = rtmpUrl + ' start=%d' % (start * 1000)
- featureItem = xbmcgui.ListItem(doc.findtext('Product/Title'),
thumbnailImage=doc.findtext('Product/Images/ImageMedia/Url'), path = itemUrl)
- playlist.add(itemUrl, featureItem)
-
- # Postroll
- postrollNode = doc.find('Product/AdCalls/postroll')
- if postrollNode is not None:
- url = postrollNode.get('url')
- node = self.getXml(url).find('Ad')
- if node is not None:
- flvUrl =
node.findtext('InLine/Creatives/Creative/Linear/MediaFiles/MediaFile')
- item = xbmcgui.ListItem(ADDON.getLocalizedString(100),
iconImage = ICON)
- playlist.add(flvUrl, item)
-
- if firstItem is not None:
- xbmcplugin.setResolvedUrl(HANDLE, True, firstItem)
- else:
- xbmcplugin.setResolvedUrl(HANDLE, False, xbmcgui.ListItem())
-
- def getPlayProductXml(self, videoId):
- url = 'http://viastream.viasat.tv/PlayProduct/%s' % videoId
- buggalo.addExtraData('playProductXml', url)
- xml = self.downloadUrl(url)
- if xml:
- xml = re.sub('&[^a]', '&', xml)
- return ElementTree.fromstring(xml)
- else:
- return ElementTree.Element('data-not-loaded') # to avoid
unnecessary error handling
+ u =
urllib2.urlopen('http://viastream.viasat.tv/extra/extraN.php?clipid=%s' %
videoId)
+ xml = u.read()
+ u.close()
+ print xml
+ if '<Url>' in xml:
- def getRtmpUrl(self, videoUrl):
- if videoUrl[0:4] == 'rtmp':
- videoUrl = videoUrl.replace('rtmp://tv3playee.data.lt/mtg/',
'rtmp://tv3playee.data.lt/mtg/mtg/')
- videoUrl = videoUrl.replace('mp4:flash', 'flash')
- return videoUrl.replace(' ', '%20')
+ m = re.search('<Url>(.*)</Url>', xml)
+ if m:
+ rtmp = m.group(1).replace('rtmp://tv3playee.data.lt/mtg/',
'rtmp://tv3playee.data.lt/mtg/mtg/')
+ rtmp = rtmp.replace('mp4:flash', 'flash')
+ rtmp = rtmp.replace(' ', '%20')
+ rtmp += '
swfUrl=http://flvplayer.viastream.viasat.tv/play/swf/player111227.swf
swfVfy=true'
+ playlist.add(rtmp)
- xml = self.downloadUrl(videoUrl)
- if not xml:
- raise TV3PlayException(ADDON.getLocalizedString(202))
- doc = ElementTree.fromstring(xml)
+ xbmcplugin.setResolvedUrl(HANDLE, True, playlist[0])
- if doc.findtext('Success') == 'true':
- return self.getRtmpUrl(doc.findtext('Url').replace(' ', '%20'))
- else:
- raise TV3PlayException(doc.findtext('Msg'))
-
- def getXml(self, url):
- xml = self.downloadUrl(url)
- if xml:
- return ElementTree.fromstring(xml.decode('utf8', 'ignore'))
- else:
- return ElementTree.Element('data-not-loaded') # to avoid
unnecessary error handling
-
- def downloadAndCacheFanart(self, slug, html):
- fanartPath = os.path.join(CACHE_PATH, '%s.jpg' %
slug.encode('iso-8859-1', 'replace'))
- if not os.path.exists(fanartPath) and html:
- m = re.search('/play/([0-9]+)/', html)
- if not m:
- return FANART
- xml = self.getPlayProductXml(m.group(1))
-
- fanartUrl = None
- for node in xml.findall('Product/Images/ImageMedia'):
- if node.findtext('Usage') == 'PlayImage':
- fanartUrl = node.findtext('Url')
- break
-
- if fanartUrl:
- imageData = self.downloadUrl(fanartUrl.replace(' ', '%20'))
- if imageData:
- f = open(fanartPath, 'wb')
- f.write(imageData)
- f.close()
-
- return fanartPath
-
- elif os.path.exists(fanartPath):
- return fanartPath
-
- return FANART
-
- def downloadUrl(self, url):
- for retries in range(0, 5):
- try:
- r = urllib2.Request(url.encode('iso-8859-1', 'replace'))
- r.add_header('User-Agent', 'Mozilla/5.0 (X11; Ubuntu; Linux
x86_64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2')
- u = urllib2.urlopen(r, timeout = 30)
- contents = u.read()
- u.close()
- return contents
- except Exception, ex:
- if retries > 5:
- raise TV3PlayException(ex)
-
-
- def displayError(self, message = 'n/a'):
+ def displayError(self, message='n/a'):
heading = buggalo.getRandomHeading()
line1 = ADDON.getLocalizedString(200)
line2 = ADDON.getLocalizedString(201)
xbmcgui.Dialog().ok(heading, line1, line2, message)
+
if __name__ == '__main__':
ADDON = xbmcaddon.Addon()
PATH = sys.argv[0]
@@ -366,22 +176,23 @@ if __name__ == '__main__':
buggalo.SUBMIT_URL = 'http://tommy.winther.nu/exception/submit.php'
tv3PlayAddon = TV3PlayAddon()
try:
- if PARAMS.has_key('playVideo'):
+ if 'playVideo' in PARAMS:
tv3PlayAddon.playVideo(PARAMS['playVideo'][0])
- elif PARAMS.has_key('program') and PARAMS.has_key('season'):
- tv3PlayAddon.listVideos(PARAMS['region'][0], PARAMS['program'][0],
PARAMS['season'][0], PARAMS.has_key('clips'))
- elif PARAMS.has_key('program'):
- tv3PlayAddon.listSeasons(PARAMS['region'][0], PARAMS['program'][0])
- elif PARAMS.has_key('rss'):
- tv3PlayAddon.listRss(PARAMS['region'][0], PARAMS['rss'][0])
- elif PARAMS.has_key('region'):
+ elif 'format' in PARAMS and 'category' in PARAMS:
+ tv3PlayAddon.listVideos(PARAMS['region'][0], PARAMS['category'][0])
+ elif 'format' in PARAMS:
+ tv3PlayAddon.listCategories(PARAMS['region'][0],
PARAMS['format'][0])
+ # elif PARAMS.has_key('special') and PARAMS['special'] ==
'featured':
+ # tv3PlayAddon.listFeatured(PARAMS['region'][0])
+ # elif PARAMS.has_key('special') and PARAMS['special'] ==
'mostviewed':
+ # tv3PlayAddon.listMostViewed(PARAMS['region'][0])
+ elif 'region' in PARAMS:
tv3PlayAddon.listPrograms(PARAMS['region'][0])
else:
tv3PlayAddon.listRegions()
- except TV3PlayException, ex:
+ except mobileapi.TV3PlayMobileApiException, ex:
tv3PlayAddon.displayError(str(ex))
except Exception:
- buggalo.onExceptionRaised()
-
+ buggalo.onExceptionRaised()
\ No newline at end of file
diff --git a/plugin.video.tv3play.dk/addon.xml
b/plugin.video.tv3play.dk/addon.xml
index dd1f18d..d79c311 100644
--- a/plugin.video.tv3play.dk/addon.xml
+++ b/plugin.video.tv3play.dk/addon.xml
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
-<addon id="plugin.video.tv3play.dk" version="1.0.5" name="TV3 Play"
provider-name="twinther [[email protected]]">
+<addon id="plugin.video.tv3play.dk" version="1.0.6" name="TV3 Play"
provider-name="twinther [[email protected]]">
<requires>
<import addon="xbmc.python" version="2.0"/>
<import addon="script.module.buggalo" version="1.1.2"/>
- <import addon="script.module.elementtree" version="1.2.7"/>
+ <import addon="script.module.simplejson" version="2.0.10"/>
</requires>
<extension point="xbmc.python.pluginsource" library="addon.py">
<provides>video</provides>
@@ -15,41 +15,56 @@
<summary lang="de">Zeige die letzten Shows von TV3 Play und Viasat 4
Play</summary>
<summary lang="el">ΠαÏακολοÏ
θήÏÏε ÏÎ¹Ï Ïιο
ÏÏÏÏÏαÏÎµÏ ÎµÎºÏομÏÎÏ Î±ÏÏ Ïο TV3 Play και Ïο Viasat 4
Play</summary>
<summary lang="en">Watch the latest shows from TV3 Play and Viasat 4
Play</summary>
+ <summary lang="es">Mira los últimos programas de TV3 Play y Viasat 4
Play</summary>
+ <summary lang="gl">Ver os últimos programas de TV3 Play e Viasat 4
Play</summary>
<summary lang="hu">Nézze meg a legfrissebb műsorokat a TV3 Play és
Viasat 4 Play oldalakról</summary>
+ <summary lang="it">Guarda gli ultimi show da TV3 Play e Viasat 4
Play</summary>
<summary lang="ko">TV3 Playì Viasat4 Playì ìµê·¼ ì¼
ê°ì</summary>
<summary lang="lt">ŽiÅ«rÄti naujausius laidas iÅ¡ TV3Play ir Viasat
4 Play</summary>
<summary lang="no">Se de nyeste episodene fra TV3 Play og Viasat 4
Play</summary>
<summary lang="pl">OglÄ
daj najnowsze programy z TV3 Play oraz Viasat
4 Play</summary>
<summary lang="pt_BR">Assista os últimos shows de TV3 Play e Viasat 4
Play</summary>
+ <summary lang="sk">Sledujte najaktuálnejšie vysielanie z TV3 Play a
Viasat 4 Play</summary>
<summary lang="sv">Titta på dom senaste serierna från TV3 Play och
Viasat 4 Play</summary>
+ <summary lang="zh">è§çTV3 PlayåViasat 4 Playææ°èç®</summary>
<description lang="be">On TV3 Play you can watch all of TV3's own
programming and some foreign series. There is also extra feature for some
programming.[CR][CR]If you have comments or suggestions for this addon, please
feel free to participate in the debate on my blog at
http://tommy.winther.nu</description>
<description lang="ca">A TV3 Play podeu veure tota la programació
pròpia de TV3 i algunes sèries estrangeres. Hi ha també extres d'alguns
programes.[CR][CR]Si teniu comentaris o suggerències per aquest afegitó, per
favor no dubteu en participar en el debat al meu blog
http://tommy.winther.nu</description>
- <description lang="da">PÃ¥ TV3 Play kan du se alle TV3's egne
programmer og nogle udenlandske serier. Der er også ekstramateriale til flere
af programmerne.[CR][CR]Har du kommentarer, ris eller ros til denne add-on er
du velkommen til at deltage i debatten på min blog på
http://tommy.winther.nu</description>
+ <description lang="da">PÃ¥ TV3 Play kan du se alle TV3's egne
programmer og nogle udenlandske serier. Der er også ekstramateriale til flere
af programmerne.[CR][CR]Har du kommentarer, ris eller ros til denne addon, er
du velkommen til at deltage i debatten på min blog på
http://tommy.winther.nu</description>
<description lang="de">Auf TV3 Play kannst du alle TV3 Programme und
einige ausländische Serien sehen. AuÃerdem gibt es für einige Programme
extra funktionen. [CR][CR]Falls du Kommentare oder Empfehlungen für dieses
Addon hast, fühle dich so frei und beteilige dich an der Debatte auf meinem
Blog unter http://tommy.winther.nu</description>
<description lang="el">ΣÏο TV3 Play μÏοÏείÏε να
ÏαÏακολοÏ
θήÏεÏε Ïλο Ïο ÏÏÏγÏαμμά ÏοÏ
καθÏÏ
και κάÏÎ¿Î¹ÎµÏ Î¾ÎÎ½ÎµÏ ÏειÏÎÏ. Î¥ÏάÏÏοÏ
ν, εÏίÏηÏ,
εÏιÏλÎον λειÏοÏ
ÏÎ³Î¯ÎµÏ Î³Î¹Î± κάÏοια
ÏÏογÏάμμαÏα.[CR][CR]Îν ÎÏεÏε ÏÏÏλια ή
ÏÏοÏάÏÎµÎ¹Ï Î³Î¹Î± αÏ
ÏÏ Ïο ÏÏÏÏθεÏο,
ÏαÏακαλοÏμε να ÏÏ
μμεÏάÏÏεÏε ελεÏθεÏα ÏÏη
ÏÏ
ζήÏηÏη ÏÏο blog μοÏ
ÏÏο http://tommy.winther.nu</description>
<description lang="en">On TV3 Play you can watch all of TV3's own
programming and some foreign series. There is also extra feature for some
programming.[CR][CR]If you have comments or suggestions for this addon, please
feel free to participate in the debate on my blog at
http://tommy.winther.nu</description>
+ <description lang="es">En TV3 Play puedes ver todos los programas de
TV3 y algunas series extranjeras. También hay caracterÃsticas especiales para
algunos programas.[CR][CR]Si tienes comentarios o sugerencias acerca de este
complemento, no dudes en participar en el debate de mi blog en
http://tommy.winther.nu</description>
+ <description lang="gl">En TV3 Play pode ver toda a programación da
canle e algunhas series extranxeiras, mais tamén caracterÃsticas adicionais
nalgunha programación.[CR][CR]Se ten comentarios ou suxestións sobre este
complemento, pode participar no debate do meu blogue en
http://tommy.winther.nu</description>
<description lang="hu">A TV3 Play-en saját műsorokat és külföldi
sorozatokat nézhet. [CR][CR]Ha hozzászólása vagy javaslata van a
kiegészÃtÅvel kapcsolatban, keresse fel a blogomat a tommy.winther.nu
cÃmen</description>
+ <description lang="it">Con TV3Play puoi guardare tutta la
programmazione di TV3 e qualche altra serie. Ci sono anche funzionalità extra
per alcuni palinsesti.[CR][CR]Se hai commenti o suggerimenti per questo addon,
sentiti libero di partecipare alla discussione sul mio blog:
http://tommy.winther.nu</description>
<description lang="ko">On TV3 Play you can watch all of TV3's own
programming and some foreign series. There is also extra feature for some
programming.[CR][CR]If you have comments or suggestions for this addon, please
feel free to participate in the debate on my blog at
http://tommy.winther.nu</description>
<description lang="lt">TV3 Play priede galite žiÅ«rÄti visas TV3
savo šalies ir kai kurias užsienio laidas. Taip pat yra papildoma programos
funkcija[CR] [Cr]Jei turite pastabų ar pasiūlymų šiam priedui, prašome
nedvejodami dalyvauti diskusijose mano dienoraštyje
http://tommy.winther.nu</description>
<description lang="no">PÃ¥ TV3 Play kan du se alle av TV3`s egne
programmer og noen utenlanske serier. Det finnes også tilleggs funksjoner til
noen av programmene. Hvis du har kommentarer eller forslag til dette tillegget,
vennligst føl deg fri til å bli med i bebatten på min blogg:
http://tommy.winther.nu</description>
<description lang="pl">Na TV3 Play możesz oglÄ
daÄ wszystkie wÅasne
programy TV3 oraz kilka zagranicznych serii. Istnieje równierz dodatkowa
funkcje dla niektórych programów.[CR][CR]JeÅli masz uwagi lub sugestie
dotyczÄ
ce tej wtyczki, uprzejmie prosimy o udziaÅ w debacie na blogu na
http://tommy.winther.nu</description>
<description lang="pt_BR">Na TV3 você pode assistir toda a
programação da própria TV3 e algumas séries estrangeiras. Há também
recursos extras para alguma programação. [CR] [CR] Se você tiver
comentários ou sugestões para este add-on, por favor, sinta-se livre para
participar do debate no meu blog em http://tommy.winther.nu</description>
+ <description lang="sk">Na TV3 Play môžete sledovať všetku vlastnú
tvorbu TV3 a niektoré zahraniÄné seriály. K dispozÃcii je tiež extra
funkcie pre niektoré programy. Ak máte poznámky Äi pripomienky k
tomuto doplnku, prosÃm prispejte do diskusie na blogu
http://tommy.winther.nu.</description>
<description lang="sv">PÃ¥ TV3 Play kan du se alla TV3's egna program
samt några utländska serier. Det finns också extra funktioner för några av
programmen.[CR][CR]Om du har kommentarer eller förslag för detta tillägg,
känn dig som hemma och delta i debatten på min blogg
http://tommy.winther.nu</description>
+ <description lang="zh">å¨TV3 Playä½ å¯ä»¥è§çTV3å
¨é¨èªæåå½å¤ç³»åèç®ï¼è¿æä¸äºèç®çéå å
容ã[CR][CR]å¯¹æ¬æä»¶æä½æè§æå»ºè®®ï¼è¯·å°æçå客讨论http://tommy.winther.nu</description>
<disclaimer lang="be">Some parts of this addon may not be legal in
your country of residence - please check with your local laws.</disclaimer>
<disclaimer lang="ca">Algunes parts d'aquest afegitó podrien ser
il·legals al vostre pais de residència - per favor, comprovau les vostres
lleis locals.</disclaimer>
- <disclaimer lang="da">Nogle dele af denne add-on er muligvis ikke
lovlige i dit land - kontroller venligst dine lokale love.</disclaimer>
+ <disclaimer lang="da">Nogle dele af denne addon er muligvis ikke
lovlige i dit land - kontroller venligst dine lokale love.</disclaimer>
<disclaimer lang="de">Einige Teile dieses Addons sind eventuell nicht
in deinem derzeitigen Land legal - bitte überprüfe deine lokalen
Gesetze.</disclaimer>
<disclaimer lang="el">ÎάÏοια ÏμήμαÏα αÏ
ÏÎ¿Ï ÏοÏ
ÏÏÏÏθεÏοÏ
ενδÎÏεÏαι να μην είναι νÏμιμα
ÏÏη ÏÏÏα ÏÎ±Ï - ελÎγξÏε Ïη νομοθεÏία
ÏαÏ.</disclaimer>
<disclaimer lang="en">Some parts of this addon may not be legal in
your country of residence - please check with your local laws.</disclaimer>
+ <disclaimer lang="es">Algunas partes de este complemento pueden no ser
legales en tu paÃs de residencia. Por favor comprueba la legalidad
vigente.</disclaimer>
+ <disclaimer lang="gl">Algunhas partes deste engadido poden non ser
legais no teu paÃs - por favor verifica as leis locais.</disclaimer>
<disclaimer lang="hu">A kiegészÃtÅ néhány részlete illegális
lehet az ön országában - kérjük nézzen utána a
törvényeknek.</disclaimer>
+ <disclaimer lang="it">Alcune parti di questo addon potrebbero non
essere legali nel tuo paese di residenza - per favore controlla le leggi
vigenti.</disclaimer>
<disclaimer lang="ko">ì´ ì ëì¨ì ì¼ë¶ë 거주íë
êµê°ì ë°ë¼ í©ë²ì ì´ì§ ìì ìë ììµëë¤. ì´ì© ì§ìì
ë²ë¥ ì íì¸íì¸ì.</disclaimer>
<disclaimer lang="lt">Kai kurios šio priedo dalys negali būti
naudojamos/vartojamos/žiūrimos jūsų šalyje - prašome patikrinti
gyvenamosios vietos įstatymus.</disclaimer>
<disclaimer lang="no">Noen deler av dette tillegget kan hende ikke er
lovlig i dit land - vennligst sjekk med dine lokale lover.</disclaimer>
<disclaimer lang="pl">Niektóre czÄÅci tej wtyczki moga byÄ
nielegalne w twoim kraju - proszÄ sprawdziÄ z lokalnymi
przepisami.</disclaimer>
<disclaimer lang="pt_BR">Algumas partes desta addon pode não ser
legais em seu paÃs - por favor verifique as leis locais, antes de
usar.</disclaimer>
+ <disclaimer lang="sk">Niektoré Äasti tohoto doplnku môžu byÅ¥
protizákonné vo VaÅ¡ej krajine pobytu - prosÃm informujte sa o miestnych
zákonoch.</disclaimer>
<disclaimer lang="sv">Några delar i detta tillägg kanske inte är
lagligt i ditt hemland - var god kontrollera med dom lokala
lagarna.</disclaimer>
+ <disclaimer lang="zh">è¿ä¸ªæä»¶çæäºå
容å¯è½ä¸ç¬¦åä½
æå¨å½å®¶çæ³å¾è§å® - 请确认符åå½å°æ³å¾ã</disclaimer>
<license>GPLv2</license>
<platform>all</platform>
- <language>da se no lv lt et</language>
+ <language>da se no lt lv ee</language>
</extension>
</addon>
diff --git a/plugin.video.tv3play.dk/changelog.txt
b/plugin.video.tv3play.dk/changelog.txt
index f350060..30ebd66 100644
--- a/plugin.video.tv3play.dk/changelog.txt
+++ b/plugin.video.tv3play.dk/changelog.txt
@@ -1,3 +1,7 @@
+[B]Version 1.0.6 - 2013-07-14[/B]
+- Switched to same API as Frodo branch
+- Fixed playback
+
[B]Version 1.0.5 - 2013-05-02[/B]
- Fixed error when initial ad was missing
diff --git a/plugin.video.tv3play.dk/fanart.jpg
b/plugin.video.tv3play.dk/fanart.jpg
index dbd4a70..2dabced 100644
Binary files a/plugin.video.tv3play.dk/fanart.jpg and
b/plugin.video.tv3play.dk/fanart.jpg differ
diff --git a/plugin.video.tv3play.dk/resources/language/Chinese
(Simple)/strings.xml b/plugin.video.tv3play.dk/resources/language/Chinese
(Simple)/strings.xml
index d856055..840cac8 100644
--- a/plugin.video.tv3play.dk/resources/language/Chinese (Simple)/strings.xml
+++ b/plugin.video.tv3play.dk/resources/language/Chinese (Simple)/strings.xml
@@ -4,7 +4,18 @@
<!-- Report language file syntax bugs at: [email protected] -->
<strings>
+ <string id="100">åä¸</string>
<string id="101">常ç¨</string>
<string id="102">åºå</string>
- <string id="103">çæ</string>
+ <string id="103">åªè¾</string>
+ <string id="150">éæ©åºå</string>
+ <string id="200">è¿æ¥TV3 Playæ¶åºé</string>
+ <string id="201">é误信æ¯ï¼</string>
+ <string id="202">æ æ³æ¾å°ææ¾URL</string>
+ <string id="203">æ å¯ç¨å£</string>
+ <string id="204">æ æ³è·åèç®è¡¨</string>
+ <string id="301">ææ°è§é¢</string>
+ <string id="302">è§çæå¤</string>
+ <string id="303">æå¤åç±</string>
+ <string id="304">ææ°åªè¾</string>
</strings>
diff --git a/plugin.video.tv3play.dk/resources/language/English/strings.xml
b/plugin.video.tv3play.dk/resources/language/English/strings.xml
index 5418a8d..bbc1eed 100644
--- a/plugin.video.tv3play.dk/resources/language/English/strings.xml
+++ b/plugin.video.tv3play.dk/resources/language/English/strings.xml
@@ -1,4 +1,3 @@
-<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- Translated using Transifex web application. For support, or if you would
like to to help out, please visit your language team! -->
<!-- English language-Team URL:
http://www.transifex.com/projects/p/xbmc-addons/language/en/ -->
diff --git a/plugin.video.tv3play.dk/resources/language/Galician/strings.xml
b/plugin.video.tv3play.dk/resources/language/Galician/strings.xml
index a887432..92d8441 100644
--- a/plugin.video.tv3play.dk/resources/language/Galician/strings.xml
+++ b/plugin.video.tv3play.dk/resources/language/Galician/strings.xml
@@ -4,7 +4,18 @@
<!-- Report language file syntax bugs at: [email protected] -->
<strings>
+ <string id="100">Publicidade</string>
<string id="101">Xeral</string>
<string id="102">Rexión</string>
<string id="103">Clips</string>
+ <string id="150">Seleccionar rexión</string>
+ <string id="200">Produciuse un erro na comunicación con TV3 Play.</string>
+ <string id="201">A mensaxe do erro é:</string>
+ <string id="202">Non se puido atopar o URL de reprodución</string>
+ <string id="203">Sen tempadas dispoñÃbeis</string>
+ <string id="204">Non se puido obter a listaxe de programas</string>
+ <string id="301">Ãltimos vÃdeos</string>
+ <string id="302">Os máis vistos</string>
+ <string id="303">Os máis ligados</string>
+ <string id="304">Clips Recentes</string>
</strings>
diff --git a/plugin.video.tv3play.dk/resources/language/Indonesian/strings.xml
b/plugin.video.tv3play.dk/resources/language/Indonesian/strings.xml
index 1faeeca..6c5d291 100644
--- a/plugin.video.tv3play.dk/resources/language/Indonesian/strings.xml
+++ b/plugin.video.tv3play.dk/resources/language/Indonesian/strings.xml
@@ -6,4 +6,5 @@
<strings>
<string id="101">Umum</string>
<string id="102">Wilayah</string>
+ <string id="103">Klip</string>
</strings>
diff --git a/plugin.video.tv3play.dk/resources/language/Italian/strings.xml
b/plugin.video.tv3play.dk/resources/language/Italian/strings.xml
index 0b5102a..3e44148 100644
--- a/plugin.video.tv3play.dk/resources/language/Italian/strings.xml
+++ b/plugin.video.tv3play.dk/resources/language/Italian/strings.xml
@@ -4,8 +4,18 @@
<!-- Report language file syntax bugs at: [email protected] -->
<strings>
+ <string id="100">Spot</string>
<string id="101">Generale</string>
<string id="102">Regione</string>
<string id="103">Clip</string>
+ <string id="150">Scegli regione</string>
+ <string id="200">Errore nella comunicazione con TV3 Play.</string>
<string id="201">Il messaggio di errore è:</string>
+ <string id="202">Impossibile trovare l'URL per la riproduzione</string>
+ <string id="203">Nessuna stagione disponibile</string>
+ <string id="204">Impossibile recuperare la lista dei programmi</string>
+ <string id="301">Ultimi video</string>
+ <string id="302">I più riprodotti</string>
+ <string id="303">I più graditi</string>
+ <string id="304">Ultimi video</string>
</strings>
diff --git a/plugin.video.tv3play.dk/resources/language/Slovak/strings.xml
b/plugin.video.tv3play.dk/resources/language/Slovak/strings.xml
index d4ca1ec..35474af 100644
--- a/plugin.video.tv3play.dk/resources/language/Slovak/strings.xml
+++ b/plugin.video.tv3play.dk/resources/language/Slovak/strings.xml
@@ -4,7 +4,18 @@
<!-- Report language file syntax bugs at: [email protected] -->
<strings>
+ <string id="100">Reklama</string>
<string id="101">Všeobecné</string>
<string id="102">Región</string>
<string id="103">Klipy</string>
+ <string id="150">Zvoliť región</string>
+ <string id="200">PoÄas komunikácie s TV3 Play sa vyskytla chyba.</string>
+ <string id="201">Chybová hláška je:</string>
+ <string id="202">Nemožno nájsť prehrávané URL</string>
+ <string id="203">Nenašli sa žiadne (filmové) série</string>
+ <string id="204">Nemožno naÄÃtaÅ¥ zoznam programov</string>
+ <string id="301">Najnovšie videá</string>
+ <string id="302">Najviac videné</string>
+ <string id="303">Najobľúbenejšie</string>
+ <string id="304">Najnovšie klipy</string>
</strings>
diff --git a/plugin.video.tv3play.dk/resources/language/Spanish
(Argentina)/strings.xml b/plugin.video.tv3play.dk/resources/language/Spanish
(Argentina)/strings.xml
index ea3b7c9..d8d4b28 100644
--- a/plugin.video.tv3play.dk/resources/language/Spanish
(Argentina)/strings.xml
+++ b/plugin.video.tv3play.dk/resources/language/Spanish
(Argentina)/strings.xml
@@ -5,4 +5,5 @@
<strings>
<string id="101">General</string>
+ <string id="102">Región</string>
</strings>
diff --git a/plugin.video.tv3play.dk/resources/language/Spanish/strings.xml
b/plugin.video.tv3play.dk/resources/language/Spanish/strings.xml
index 8686b74..1b82998 100644
--- a/plugin.video.tv3play.dk/resources/language/Spanish/strings.xml
+++ b/plugin.video.tv3play.dk/resources/language/Spanish/strings.xml
@@ -4,7 +4,18 @@
<!-- Report language file syntax bugs at: [email protected] -->
<strings>
+ <string id="100">Anuncio</string>
<string id="101">General</string>
<string id="102">Región</string>
<string id="103">Clips</string>
+ <string id="150">Elegir región</string>
+ <string id="200">Ha ocurrido un error de comunicación con TV3
Play.</string>
+ <string id="201">El mensaje de error es:</string>
+ <string id="202">No se encuentra el URL para reproducir</string>
+ <string id="203">No hay temporadas disponibles</string>
+ <string id="204">No se puede obtener la lista de programas</string>
+ <string id="301">Ãltimos vÃdeos</string>
+ <string id="302">Más vistos</string>
+ <string id="303">Los que más gustan</string>
+ <string id="304">Ãltimos clips</string>
</strings>
-----------------------------------------------------------------------
Summary of changes:
plugin.video.tv3play.dk/addon.py | 373 +++++---------------
plugin.video.tv3play.dk/addon.xml | 25 +-
plugin.video.tv3play.dk/changelog.txt | 4 +
plugin.video.tv3play.dk/fanart.jpg | Bin 80765 -> 345179 bytes
plugin.video.tv3play.dk/mobileapi.py | 107 ++++++
.../resources/language/Albanian/strings.xml | 5 +-
.../language/{Serbian => Bosnian}/strings.xml | 2 +-
.../language/Chinese (Simple)/strings.xml | 13 +-
.../resources/language/English/strings.xml | 1 -
.../resources/language/Galician/strings.xml | 11 +
.../resources/language/Indonesian/strings.xml | 1 +
.../resources/language/Italian/strings.xml | 10 +
.../language/{Russian => Macedonian}/strings.xml | 6 +-
.../resources/language/Maltese/strings.xml | 3 +-
.../{Persian => Persian (Iran)}/strings.xml | 3 +-
.../resources/language/Slovak/strings.xml | 11 +
.../language/Spanish (Argentina)/strings.xml | 1 +
.../resources/language/Spanish/strings.xml | 11 +
.../resources/language/Vietnamese/strings.xml | 3 +-
19 files changed, 292 insertions(+), 298 deletions(-)
create mode 100644 plugin.video.tv3play.dk/mobileapi.py
copy {plugin.image.cheezburger_network =>
plugin.video.tv3play.dk}/resources/language/Albanian/strings.xml (76%)
copy plugin.video.tv3play.dk/resources/language/{Serbian =>
Bosnian}/strings.xml (80%)
copy plugin.video.tv3play.dk/resources/language/{Russian =>
Macedonian}/strings.xml (63%)
copy {plugin.video.hdtrailers_net =>
plugin.video.tv3play.dk}/resources/language/Maltese/strings.xml (82%)
copy plugin.video.tv3play.dk/resources/language/{Persian => Persian
(Iran)}/strings.xml (68%)
copy {plugin.image.cheezburger_network =>
plugin.video.tv3play.dk}/resources/language/Vietnamese/strings.xml (85%)
hooks/post-receive
--
Plugins
------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons