The branch, frodo has been updated
via 8aa197c6f229fcc59fd8a60d46abd18e7dc23ea8 (commit)
via d8c4d2aa1f869c6a81c4d61036fdd1a69a06db7b (commit)
via d2fab5332434a85d74b4921c8154ab93eed7e774 (commit)
via f9087130d9e1f25ff25b823877cbd45cfa2c894a (commit)
via 15bc291c87f3502ea93b874e47de2c6936cbdd14 (commit)
from 8c3aeda985b36598a44a29bb404cf95ed2719495 (commit)
- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=8aa197c6f229fcc59fd8a60d46abd18e7dc23ea8
commit 8aa197c6f229fcc59fd8a60d46abd18e7dc23ea8
Author: beenje <[email protected]>
Date: Mon Nov 26 22:19:21 2012 +0100
[plugin.video.previewnetworks] updated to version 2.3.1
diff --git a/plugin.video.previewnetworks/addon.xml
b/plugin.video.previewnetworks/addon.xml
index 7c72052..19f79db 100644
--- a/plugin.video.previewnetworks/addon.xml
+++ b/plugin.video.previewnetworks/addon.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<addon id="plugin.video.previewnetworks"
- name="Preview Networks"
- version="2.2.1"
+<addon id="plugin.video.previewnetworks"
+ name="Preview Networks"
+ version="2.3.1"
provider-name="nmazz64">
<requires>
<import addon="xbmc.python" version="2.0"/>
diff --git a/plugin.video.previewnetworks/changelog.txt
b/plugin.video.previewnetworks/changelog.txt
index 71c4758..f0deb98 100644
--- a/plugin.video.previewnetworks/changelog.txt
+++ b/plugin.video.previewnetworks/changelog.txt
@@ -1,3 +1,9 @@
+[B]2.3.1[/B]
+- compatibility changes for Frodo beta
+
+[B]2.3[/B]
+- compatibility changes for Frodo beta
+
[B]2.2.1[/B]
- Same bugfix[B]2.2[/B]
- Solved the Download&View option
diff --git a/plugin.video.previewnetworks/default.py
b/plugin.video.previewnetworks/default.py
index 36035fc..f97466b 100644
--- a/plugin.video.previewnetworks/default.py
+++ b/plugin.video.previewnetworks/default.py
@@ -21,7 +21,7 @@ __author__ = "nmazz64"
__url__ = "http://code.google.com/p/previewnetworks-xbmc-plugin"
__svn_url__ =
"http://previewnetworks-xbmc-plugin.googlecode.com/svn/trunk/plugin.video.previewnetworks/"
__useragent__ = "QuickTime/7.6.5 (qtver=7.6.5;os=Windows NT 5.1Service Pack 3)"
-__version__ = "2.2.0"
+__version__ = "2.3.1"
__svn_revision__ = "$Revision: 0$"
__XBMC_Revision__ = "31633"
@@ -29,7 +29,6 @@ url_source=None
def check_compatible():
try:
- # xbmc.log( "[PLUGIN] '%s: Version - %s-r%s' initialized!" % (
__plugin__, __version__, __svn_revision__.replace( "$", "" ).replace(
"Revision", "" ).replace( ":", "" ).strip() ), xbmc.LOGNOTICE )
# get xbmc revision
xbmc_rev = int( xbmc.getInfoLabel( "System.BuildVersion" ).split( " r"
)[ -1 ] )
# compatible?
@@ -52,7 +51,7 @@ def categories(root):
next_icon = os.path.join(Addon.getAddonInfo('path'), 'resources','images',
'next.png')
genre_icon = os.path.join(Addon.getAddonInfo('path'),
'resources','images', 'genre.png')
search_icon = os.path.join(Addon.getAddonInfo('path'),
'resources','images', 'search.png')
- #baseurl="http://%s.feed.previewnetworks.com/v3.1/%s/"
+## baseurl="http://%s.feed.previewnetworks.com/v3.1/%s/"
baseurl="http://%s.hdplus.previewnetworks.com/v3.1/%s/"
if root:
@@ -120,9 +119,16 @@ if sys.argv[ 2 ] == "":
categories(True)
xbmcplugin.endOfDirectory(int(sys.argv[1]))
elif ( __name__ == "__main__" ):
- if ( sys.argv[ 2 ].startswith( "?url" ) ):
+ if ( sys.argv[ 2 ].find( "Download_Trailer" ) > 0 ):
+ import resources.lib.download as download
+ download.Main()
+ elif ( sys.argv[ 2 ].startswith( "?OpenSettings" ) ):
+ xbmcaddon.Addon( id=__plugin__).openSettings()
+ xbmc.executebuiltin( "Container.Refresh" )
+ elif ( sys.argv[ 2 ].find("url") > 0 ):
paramstring=sys.argv[2]
if len(paramstring)>0 :
+ print "paramstring %s" % paramstring
params=cgi.parse_qs(paramstring[ 1 : ],True)
item=str(get(params,"item"))
if item == '0':
@@ -133,14 +139,3 @@ elif ( __name__ == "__main__" ):
import resources.lib.trailers as plugin
plugin.Main(url_source,item)
del plugin
- elif ( sys.argv[ 2 ].startswith( "?Fetch_Showtimes" ) ):
- import resources.lib.showtimes as showtimes
- s = showtimes.GUI( "plugin-AMTII-showtimes.xml",
Addon.getAddonInfo('path') , "default" )
- del s
- elif ( sys.argv[ 2 ].startswith( "?Download_Trailer" ) ):
- import resources.lib.download as download
- download.Main()
- elif ( sys.argv[ 2 ].startswith( "?OpenSettings" ) ):
- #xbmcaddon.Addon( id=os.path.basename( Addon.getAddonInfo('path') )
).openSettings()
- xbmcaddon.Addon( id=__plugin__).openSettings()
- xbmc.executebuiltin( "Container.Refresh" )
diff --git a/plugin.video.previewnetworks/resources/lib/trailers.py
b/plugin.video.previewnetworks/resources/lib/trailers.py
index 6db893a..4c61388 100644
--- a/plugin.video.previewnetworks/resources/lib/trailers.py
+++ b/plugin.video.previewnetworks/resources/lib/trailers.py
@@ -219,7 +219,7 @@ class _Parser:
if ( not ok ): raise
except:
# oops print error message
- print "ERROR: %s::%s (%d) - %s" % ( self.__class__.__name__,
sys.exc_info()[ 2 ].tb_frame.f_code.co_name, sys.exc_info()[ 2 ].tb_lineno,
sys.exc_info()[ 1 ], )
+ print "PN1 ERROR: %s::%s (%d) - %s" % ( self.__class__.__name__,
sys.exc_info()[ 2 ].tb_frame.f_code.co_name, sys.exc_info()[ 2 ].tb_lineno,
sys.exc_info()[ 1 ], )
ok = False
return ok
@@ -286,7 +286,7 @@ class _Parser:
# add the item to the media list
return self.MediaWindow.add( dirItem )
except:
- print "ERROR: %s::%s (%d) - %s" % ( self.__class__.__name__,
sys.exc_info()[ 2 ].tb_frame.f_code.co_name, sys.exc_info()[ 2 ].tb_lineno,
sys.exc_info()[ 1 ], )
+ print "PN2 ERROR: %s::%s (%d) - %s" % ( self.__class__.__name__,
sys.exc_info()[ 2 ].tb_frame.f_code.co_name, sys.exc_info()[ 2 ].tb_lineno,
sys.exc_info()[ 1 ], )
return False
@@ -369,6 +369,8 @@ class Main:
# set proper source
extension = self.settings[ "region" ]+self.settings[ "product"
]+self.ITEM_CURRENT_URL
base_path = self.BASE_CURRENT_SOURCE_PATH % extension
+ #print "extension %s" % extension
+ #print "base_path %s" % base_path
if self.ITEM_CURRENT_URL == '99':
curr_phrase = ''
@@ -379,6 +381,7 @@ class Main:
base_url = self.BASE_CURRENT_URL % (self.settings[ "region"
],self.settings[ "product" ],self.settings[ "channel_id" ],search_phrase)
else:
base_url = self.BASE_CURRENT_URL % (self.settings[ "region"
],self.settings[ "product" ],self.settings[ "channel_id" ])
+ #print "base_url %s" % base_url
#
# get the source files date if it exists
try: date = os.path.getmtime( base_path )
@@ -407,7 +410,7 @@ class Main:
ok = self.save_xml_source( xmlSource )
except:
# oops print error message
- print "ERROR: %s::%s (%d) - %s" % ( self.__class__.__name__,
sys.exc_info()[ 2 ].tb_frame.f_code.co_name, sys.exc_info()[ 2 ].tb_lineno,
sys.exc_info()[ 1 ], )
+ print "PN3 ERROR: %s::%s (%d) - %s" % ( self.__class__.__name__,
sys.exc_info()[ 2 ].tb_frame.f_code.co_name, sys.exc_info()[ 2 ].tb_lineno,
sys.exc_info()[ 1 ], )
ok = False
if ( ok ):
return xmlSource
@@ -433,7 +436,7 @@ class Main:
return True
except:
# oops print error message
- print "ERROR: %s::%s (%d) - %s" % ( self.__class__.__name__,
sys.exc_info()[ 2 ].tb_frame.f_code.co_name, sys.exc_info()[ 2 ].tb_lineno,
sys.exc_info()[ 1 ], )
+ print "PN4 ERROR: %s::%s (%d) - %s" % ( self.__class__.__name__,
sys.exc_info()[ 2 ].tb_frame.f_code.co_name, sys.exc_info()[ 2 ].tb_lineno,
sys.exc_info()[ 1 ], )
return False
def parse_xml_source( self, xmlSource ):
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=d8c4d2aa1f869c6a81c4d61036fdd1a69a06db7b
commit d8c4d2aa1f869c6a81c4d61036fdd1a69a06db7b
Author: beenje <[email protected]>
Date: Mon Nov 26 22:19:14 2012 +0100
[plugin.video.revision3] updated to version 2.0.11
diff --git a/plugin.video.revision3/addon.xml b/plugin.video.revision3/addon.xml
index fcba953..e29bd8a 100644
--- a/plugin.video.revision3/addon.xml
+++ b/plugin.video.revision3/addon.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="plugin.video.revision3"
name="Revision3"
- version="2.0.10"
+ version="2.0.11"
provider-name="stacked">
<requires>
<import addon="xbmc.python" version="2.0"/>
- <import addon="script.module.parsedom" version="1.2.0"/>
+ <import addon="script.module.parsedom" version="1.3.0"/>
<import addon="script.module.simple.downloader" version="0.9.3"/>
- <import addon="script.module.buggalo" version="1.0.1"/>
+ <import addon="script.module.buggalo" version="1.1.2"/>
</requires>
<extension point="xbmc.python.pluginsource"
library="default.py">
<provides>video</provides>
</extension>
<extension point="xbmc.addon.metadata">
- <summary>Revision3: The Best TV Shows on the Internet</summary>
- <description>The leading television network for the internet
generation.</description>
+ <summary lang="en">Revision3: The Best TV Shows on the Internet</summary>
+ <description lang="en">The leading television network for the internet
generation.</description>
<platform>all</platform>
<language>en</language>
</extension>
diff --git a/plugin.video.revision3/changelog.txt
b/plugin.video.revision3/changelog.txt
index add6453..cdbee9b 100644
--- a/plugin.video.revision3/changelog.txt
+++ b/plugin.video.revision3/changelog.txt
@@ -1,18 +1,28 @@
+[B]Version 2.0.11[/B]
+
+- Fixed index error caused by getParameters
+- Updated open_url and retry functions
+
+
[B]Version 2.0.10[/B]
+
- Added better support for HTTP Errors
- Fixed reported 'UnicodeDecodeError' errors
- Fixed reported 'IndexError' errors
[B]Version 2.0.9[/B]
+
- Fixed error when loading shows
[B]Version 2.0.8[/B]
+
- Added support for connection timeout errors
- Fixed loop when switching between download settings
- Fixed 'img' referenced before assignment error
- Fixed error when a "Unknown File Type" is played
[B]Version 2.0.7[/B]
+
- Fixed infoLabels for "Other Episodes"
[B]Version 2.0.6[/B]
diff --git a/plugin.video.revision3/default.py
b/plugin.video.revision3/default.py
index c0902d3..d3baaad 100644
--- a/plugin.video.revision3/default.py
+++ b/plugin.video.revision3/default.py
@@ -4,8 +4,8 @@ import xbmc, xbmcgui, xbmcplugin, xbmcaddon, urllib, re,
string, sys, os, time,
plugin = 'Revision3'
__author__ = 'stacked <[email protected]>'
__url__ = 'http://code.google.com/p/plugin/'
-__date__ = '09-30-2012'
-__version__ = '2.0.10'
+__date__ = '11-25-2012'
+__version__ = '2.0.11'
settings = xbmcaddon.Addon(id='plugin.video.revision3')
buggalo.SUBMIT_URL = 'http://www.xbmc.byethost17.com/submit.php'
dbg = False
@@ -25,50 +25,41 @@ common.plugin = plugin + ' ' + __version__
import SimpleDownloader as downloader
downloader = downloader.SimpleDownloader()
-def retry(ExceptionToCheck, tries=4, delay=3, backoff=2, logger=None):
- """Retry calling the decorated function using an exponential backoff.
-
- http://www.saltycrane.com/blog/2009/11/trying-out-retry-decorator-python/
- original from: http://wiki.python.org/moin/PythonDecoratorLibrary#Retry
-
- :param ExceptionToCheck: the exception to check. may be a tuple of
- excpetions to check
- :type ExceptionToCheck: Exception or tuple
- :param tries: number of times to try (not retry) before giving up
- :type tries: int
- :param delay: initial delay between retries in seconds
- :type delay: int
- :param backoff: backoff multiplier e.g. value of 2 will double the delay
- each retry
- :type backoff: int
- :param logger: logger to use. If None, print
- :type logger: logging.Logger instance
- """
+def retry(ExceptionToCheck, tries=11, delay=3, backoff=1, logger=None):
def deco_retry(f):
def f_retry(*args, **kwargs):
mtries, mdelay = tries, delay
try_one_last_time = True
- while mtries > 1:
- try:
- return f(*args, **kwargs)
- try_one_last_time = False
- break
- except ExceptionToCheck, e:
- msg = "%s, Retrying in %d seconds..." % (str(e), mdelay)
- if logger:
- logger.warning(msg)
- else:
- print msg
- time.sleep(mdelay)
- mtries -= 1
- mdelay *= backoff
+ while mtries >= 0:
+ if mtries == 0:
+ dialog = xbmcgui.Dialog()
+ ret = dialog.yesno(plugin,
settings.getLocalizedString( 30054 ), '', '', settings.getLocalizedString(
30052 ), settings.getLocalizedString( 30053 ))
+ if ret == False:
+ mtries, mdelay = tries, delay
+ else:
+ ok = dialog.ok(plugin,
settings.getLocalizedString( 30051 ))
+ raise Exception("retry ERROR")
+ try:
+ return f(*args, **kwargs)
+ try_one_last_time = False
+ break
+ except ExceptionToCheck, e:
+ if mtries > 1:
+ msg = "%s, Retrying in %d
seconds..." % (str(e), mdelay)
+ if logger:
+ logger.warning(msg)
+ else:
+ print msg
+ time.sleep(mdelay)
+ mdelay *= backoff
+ mtries -= 1
if try_one_last_time:
return f(*args, **kwargs)
return
- return f_retry # true decorator
+ return f_retry
return deco_retry
-@retry(IndexError, tries=4)
+@retry(IndexError)
def build_main_directory(url):
path = url
html = open_url(url)
@@ -102,7 +93,7 @@ def build_main_directory(url):
setViewMode("515")
xbmcplugin.endOfDirectory(int(sys.argv[1]))
-@retry(IndexError, tries=4)
+@retry(IndexError)
def build_sub_directory(url, name):
saveurl = url
studio = name
@@ -192,7 +183,7 @@ def build_sub_directory(url, name):
setViewMode("503")
xbmcplugin.endOfDirectory(int(sys.argv[1]))
-@retry(IndexError, tries=4)
+@retry(IndexError)
def get_video(url, name, plot, studio, episode, thumb, date):
result = open_url(url)
video_id =
re.compile('player\.loadRevision3Item\(\'video_id\',(.+?)\);').findall(result)[0].replace('
','')
@@ -258,7 +249,7 @@ def get_video(url, name, plot, studio, episode, thumb,
date):
listitem.setInfo( type = "Video", infoLabels={ "Title":
name, "Studio": studio, "Plot": plot, "Episode": int(episode), "Aired": date }
)
xbmcplugin.setResolvedUrl( handle = int( sys.argv[1] ),
succeeded = True, listitem = listitem )
-@retry(IndexError, tries=4)
+@retry(IndexError)
def build_search_directory(url):
if url == 'search':
try:
@@ -327,35 +318,44 @@ def ListItem(label, image, url, mode, isFolder,
infoLabels = False, fanart = Fal
def open_url(url):
retries = 0
- while retries < 4:
+ while retries < 11:
+ data = {'content': None, 'error': None}
try:
- time.sleep(5*retries)
+ if retries != 0:
+ time.sleep(3)
data = get_page(url)
- if len(data) > 0 and data != 'error':
- return data
- else:
- retries += 1
- except:
- retries += 1
- buggalo.addExtraData('url', url)
+ if data['content'] != None and data['error'] == None:
+ return data['content']
+ except Exception, e:
+ data['error'] = str(e)
+ retries += 1
dialog = xbmcgui.Dialog()
- ok = dialog.ok(plugin, settings.getLocalizedString( 30023 ) + '\n' +
settings.getLocalizedString( 30024 ))
- raise Exception("open_url ERROR")
-
+ ret = dialog.yesno(plugin, settings.getLocalizedString( 30050 ),
data['error'], '', settings.getLocalizedString( 30052 ),
settings.getLocalizedString( 30053 ))
+ if ret == False:
+ open_url(url)
+ else:
+ ok = dialog.ok(plugin, settings.getLocalizedString( 30051 ))
+ buggalo.addExtraData('url', url)
+ buggalo.addExtraData('error', data['error'])
+ raise Exception("open_url ERROR")
+
def get_page(url):
+ data = {'content': None, 'error': None}
try:
req = urllib2.Request(url)
req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1;
WOW64; rv:15.0) Gecko/20100101 Firefox/15.0.1')
content = urllib2.urlopen(req)
- data = content.read()
+ html = content.read()
content.close()
try:
- return data.decode("utf-8")
+ data['content'] = html.decode("utf-8")
+ return data
except:
+ data['content'] = html
return data
except Exception, e:
- buggalo.addExtraData('error', str(e))
- return 'error'
+ data['error'] = str(e)
+ return data
def setViewMode(id):
if xbmc.getSkinDir() == "skin.confluence" and
settings.getSetting('view') == 'true':
@@ -373,7 +373,18 @@ def clean_file(name):
name=name.replace(old,new)
return name
-params = common.getParameters(sys.argv[2])
+def getParameters(parameterString):
+ commands = {}
+ splitCommands = parameterString[parameterString.find('?') + 1:].split('&')
+ for command in splitCommands:
+ if (len(command) > 0):
+ splitCommand = command.split('=')
+ key = splitCommand[0]
+ value = splitCommand[1]
+ commands[key] = value
+ return commands
+
+params = getParameters(sys.argv[2])
url = None
name = None
mode = None
diff --git a/plugin.video.revision3/resources/language/English/strings.xml
b/plugin.video.revision3/resources/language/English/strings.xml
index 46742a2..927f645 100644
--- a/plugin.video.revision3/resources/language/English/strings.xml
+++ b/plugin.video.revision3/resources/language/English/strings.xml
@@ -21,6 +21,9 @@
<string id="30020">Enter search term.</string>
<string id="30021">Enable default view for Confluence skin</string>
<string id="30022">Play downloaded shows.</string>
- <string id="30023">There was a problem connecting to the web
page.</string>
- <string id="30024">If this problem persists, please submit the error
report.</string>
+ <string id="30050">There was a connection error:</string>
+ <string id="30051">If this problem persists, please submit the error
report.</string>
+ <string id="30052">Retry</string>
+ <string id="30053">Quit</string>
+ <string id="30054">There was an index error.</string>
</strings>
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=d2fab5332434a85d74b4921c8154ab93eed7e774
commit d2fab5332434a85d74b4921c8154ab93eed7e774
Author: beenje <[email protected]>
Date: Mon Nov 26 22:19:08 2012 +0100
[plugin.video.pbs] updated to version 2.0.3
diff --git a/plugin.video.pbs/addon.xml b/plugin.video.pbs/addon.xml
index 87892b5..ebfc5e2 100644
--- a/plugin.video.pbs/addon.xml
+++ b/plugin.video.pbs/addon.xml
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="plugin.video.pbs"
name="PBS"
- version="2.0.2"
+ version="2.0.3"
provider-name="stacked">
<requires>
<import addon="xbmc.python" version="2.0"/>
<import addon="script.module.simplejson" version="2.0.10"/>
<import addon="script.module.buggalo" version="1.1.2"/>
- <import addon="script.module.parsedom" version="1.2.0"/>
+ <import addon="script.module.parsedom" version="1.3.0"/>
</requires>
<extension point="xbmc.python.pluginsource"
library="default.py">
diff --git a/plugin.video.pbs/changelog.txt b/plugin.video.pbs/changelog.txt
index cff213e..756a949 100644
--- a/plugin.video.pbs/changelog.txt
+++ b/plugin.video.pbs/changelog.txt
@@ -1,4 +1,13 @@
+[B]Version 2.0.3[/B]
+
+- Replaced get_params with getParameters
+- Fixed "No JSON object could be decoded" error
+- Fixed "exceptions.TypeError" error
+- Fixed retry on timeout bug
+- Fixed play back issue with new PBS Kids videos
+
[B]Version 2.0.2[/B]
+
- Added separate directory for PBS Kids programs
- Fixed issue with missing videos on some programs
- Added function to select the highest video quality available (640x360 SD)
diff --git a/plugin.video.pbs/coveapi/connection.py
b/plugin.video.pbs/coveapi/connection.py
index d2e6ad2..f72bd7f 100644
--- a/plugin.video.pbs/coveapi/connection.py
+++ b/plugin.video.pbs/coveapi/connection.py
@@ -177,9 +177,10 @@ class Requestor(object):
query = '%s?%s' % (query, urllib.urlencode(params))
retries = 0
- error = None
- while retries < 4:
- time.sleep(5*retries)
+ while retries < 11:
+ error = None
+ if retries != 0:
+ time.sleep(3)
try:
request = urllib2.Request(query)
auth = PBSAuthorization(self.api_app_id,
self.api_app_secret)
@@ -188,9 +189,11 @@ class Requestor(object):
except Exception, e:
error = str(e)
if error == None:
- return json.loads(response.read())
- else:
- retries += 1
+ try:
+ return
json.loads(response.read())['results']
+ except Exception, e:
+ error = str(e)
+ retries += 1
dialog = xbmcgui.Dialog()
ret = dialog.yesno(plugin, settings.getLocalizedString( 30050
), error, '', settings.getLocalizedString( 30052 ),
settings.getLocalizedString( 30053 ))
if ret == False:
diff --git a/plugin.video.pbs/default.py b/plugin.video.pbs/default.py
index d86af1f..240c83a 100644
--- a/plugin.video.pbs/default.py
+++ b/plugin.video.pbs/default.py
@@ -5,8 +5,8 @@ from urllib2 import Request, urlopen, URLError, HTTPError
plugin = "PBS"
__author__ = 'stacked <[email protected]>'
__url__ = 'http://code.google.com/p/plugin/'
-__date__ = '11-18-2012'
-__version__ = '2.0.2'
+__date__ = '11-25-2012'
+__version__ = '2.0.3'
settings = xbmcaddon.Addon( id = 'plugin.video.pbs' )
buggalo.SUBMIT_URL = 'http://www.xbmc.byethost17.com/submit.php'
dbg = False
@@ -54,7 +54,7 @@ def build_main_directory():
def build_most_watched_directory():
url = 'http://video.pbs.org/'
- data = open_url( url )['content']
+ data = open_url( url )
list = common.parseDOM(data, "ul", attrs = { "class": "video-list clear
clearfix" })
videos = common.parseDOM(list, "span", attrs = { "class": "title clear
clearfix" })
img = common.parseDOM(list, "img", ret = "src")
@@ -73,11 +73,11 @@ def build_programs_directory( name, page ):
checking = True
while checking:
start = str( 200 * page )
- #data =
cove.programs.filter(fields='associated_images,mediafiles,categories',filter_categories__namespace__name='COVE
Taxonomy',order_by='title',limit_start=start)['results']
+ #data =
cove.programs.filter(fields='associated_images,mediafiles,categories',filter_categories__namespace__name='COVE
Taxonomy',order_by='title',limit_start=start)
if name != settings.getLocalizedString( 30014 ) and name !=
settings.getLocalizedString( 30000 ):
- data =
cove.programs.filter(fields='associated_images',order_by='title',limit_start=start,filter_title=name)['results']
+ data =
cove.programs.filter(fields='associated_images',order_by='title',limit_start=start,filter_title=name)
else:
- data =
cove.programs.filter(fields='associated_images',order_by='title',limit_start=start)['results']
+ data =
cove.programs.filter(fields='associated_images',order_by='title',limit_start=start)
if ( len(data) ) == 200:
page = page + 1
else:
@@ -115,7 +115,7 @@ def build_programs_directory( name, page ):
xbmcplugin.endOfDirectory( int( sys.argv[1] ) )
def build_topics_directory():
- data =
cove.categories.filter(order_by='name',filter_namespace__name='COVE
Taxonomy')['results']
+ data =
cove.categories.filter(order_by='name',filter_namespace__name='COVE Taxonomy')
item = None
for results in data:
if item != results['name']:
@@ -141,7 +141,7 @@ def build_search_keyboard():
def build_search_directory( url, page ):
save_url = url.replace( ' ', '%20' )
url = 'http://www.pbs.org/search/?q=' + url.replace( ' ', '%20' ) +
'&ss=pbs&mediatype=Video&start=' + str( page * 10 )
- data = open_url( url )['content']
+ data = open_url( url )
title_id_thumb = re.compile('<a title="(.*?)" target="" rel="nofollow"
onclick="EZDATA\.trackGaEvent\(\'search\', \'navigation\', \'external\'\);"
href="(.*?)"><img src="(.*?)" class="ez-primaryThumb"').findall(data)
program = re.compile('<p class="ez-metaextra1
ez-icon">(.*?)</p>').findall(data)
plot = re.compile('<p class="ez-desc">(.*?)<div
class="(ez-snippets|ez-itemUrl)">', re.DOTALL).findall(data)
@@ -175,23 +175,23 @@ def find_videos( name, program_id, topic, page ):
backup_url = None
if topic == 'True':
program_id = 'program_id'
- data =
cove.videos.filter(fields='associated_images,mediafiles,categories',filter_categories__name=name,order_by='-airdate',filter_availability_status='Available',limit_start=start,exclude_type__in='Chapter,Promotion')['results']
+ data =
cove.videos.filter(fields='associated_images,mediafiles,categories',filter_categories__name=name,order_by='-airdate',filter_availability_status='Available',limit_start=start,exclude_type__in='Chapter,Promotion')
elif topic == 'False':
- data =
cove.videos.filter(fields='associated_images,mediafiles',filter_tp_media_object_id=program_id,limit_start=start)['results']
+ data =
cove.videos.filter(fields='associated_images,mediafiles',filter_tp_media_object_id=program_id,limit_start=start)
print "PBS - Video ID: " + program_id
if len(data) == 0:
dialog = xbmcgui.Dialog()
ok = dialog.ok( plugin , settings.getLocalizedString(
30009 ) + '\n' + 'http://video.pbs.org/video/' + program_id )
return
elif topic == 'search':
- data =
cove.videos.filter(fields='associated_images,mediafiles',filter_title__contains=name,order_by='-airdate',filter_availability_status='Available',limit_start=start)['results']
+ data =
cove.videos.filter(fields='associated_images,mediafiles',filter_title__contains=name,order_by='-airdate',filter_availability_status='Available',limit_start=start)
if len(data) == 0:
- data =
cove.videos.filter(fields='associated_images,mediafiles',filter_title__contains=string.capwords(name),order_by='-airdate',filter_availability_status='Available',limit_start=start)['results']
+ data =
cove.videos.filter(fields='associated_images,mediafiles',filter_title__contains=string.capwords(name),order_by='-airdate',filter_availability_status='Available',limit_start=start)
else:
topic = 'topic'
- data =
cove.videos.filter(fields='associated_images,mediafiles',filter_program=program_id,order_by='-airdate',filter_availability_status='Available',limit_start=start,exclude_type__in='Chapter,Promotion')['results']
+ data =
cove.videos.filter(fields='associated_images,mediafiles',filter_program=program_id,order_by='-airdate',filter_availability_status='Available',limit_start=start,exclude_type__in='Chapter,Promotion')
if len(data) <= 1:
- data =
cove.videos.filter(fields='associated_images,mediafiles',filter_program=program_id,order_by='-airdate',filter_availability_status='Available',limit_start=start)['results']
+ data =
cove.videos.filter(fields='associated_images,mediafiles',filter_program=program_id,order_by='-airdate',filter_availability_status='Available',limit_start=start)
for results in data:
playable = None
if results['associated_images'] != None and
len(results['associated_images']) > 0:
@@ -246,7 +246,7 @@ def play_video( name, url, thumb, plot, studio, starttime,
backup_url ):
dialog = xbmcgui.Dialog()
ok = dialog.ok( plugin , settings.getLocalizedString( 30008 ) )
return
- data = open_url( url + '&format=SMIL' )['content']
+ data = open_url( url + '&format=SMIL' )
print 'PBS - ' + studio + ' - ' + name
try:
print data
@@ -277,10 +277,10 @@ def play_video( name, url, thumb, plot, studio,
starttime, backup_url ):
ok = dialog.ok( plugin , settings.getLocalizedString(
30008 ) )
return
src = re.compile( '<ref src="(.+?)" title="(.+?)" (author)?' ).findall(
data )[0][0]
- if src.find('m3u8') != -1:
- dialog = xbmcgui.Dialog()
- ok = dialog.ok( plugin , settings.getLocalizedString( 30008 ) )
- return
+ # if src.find('m3u8') != -1:
+ # dialog = xbmcgui.Dialog()
+ # ok = dialog.ok( plugin , settings.getLocalizedString( 30008 )
)
+ # return
playpath = None
if base == 'http://ad.doubleclick.net/adx/':
src_data = src.split( "<break>" )
@@ -319,16 +319,17 @@ def ListItem(label, image, url, isFolder, infoLabels =
False):
def open_url(url):
retries = 0
- while retries < 4:
+ while retries < 11:
+ data = {'content': None, 'error': None}
try:
- time.sleep(5*retries)
+ if retries != 0:
+ time.sleep(3)
data = get_page(url)
if data['content'] != None and data['error'] == None:
- return data
- else:
- retries += 1
- except:
- retries += 1
+ return data['content']
+ except Exception, e:
+ data['error'] = str(e)
+ retries += 1
dialog = xbmcgui.Dialog()
ret = dialog.yesno(plugin, settings.getLocalizedString( 30050 ),
data['error'], '', settings.getLocalizedString( 30052 ),
settings.getLocalizedString( 30053 ))
if ret == False:
@@ -361,24 +362,18 @@ def setViewMode(id):
if xbmc.getSkinDir() == "skin.confluence":
xbmc.executebuiltin("Container.SetViewMode(" + id + ")")
-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 getParameters(parameterString):
+ commands = {}
+ splitCommands = parameterString[parameterString.find('?') + 1:].split('&')
+ for command in splitCommands:
+ if (len(command) > 0):
+ splitCommand = command.split('=')
+ key = splitCommand[0]
+ value = splitCommand[1]
+ commands[key] = value
+ return commands
-params = get_params()
+params = getParameters(sys.argv[2])
starttime = None
mode = None
name = None
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=f9087130d9e1f25ff25b823877cbd45cfa2c894a
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=15bc291c87f3502ea93b874e47de2c6936cbdd14
commit 15bc291c87f3502ea93b874e47de2c6936cbdd14
Author: beenje <[email protected]>
Date: Mon Nov 26 22:18:39 2012 +0100
[plugin.image.cheezburger_network] updated to version 0.0.2
diff --git a/plugin.image.cheezburger_network/addon.py
b/plugin.image.cheezburger_network/addon.py
index 9fba81e..6adcee3 100644
--- a/plugin.image.cheezburger_network/addon.py
+++ b/plugin.image.cheezburger_network/addon.py
@@ -34,6 +34,7 @@ plugin = Plugin(__addon_name__, __addon_id__, __file__)
api = cheez_api.CheezburgerApi(
developer_key='df1b9bff-ce69-46e7-8732-1035272f3ee7',
+ client_id=2117,
default_count=int(plugin.get_setting('per_page'))
)
diff --git a/plugin.image.cheezburger_network/addon.xml
b/plugin.image.cheezburger_network/addon.xml
index e962422..45e1f9c 100644
--- a/plugin.image.cheezburger_network/addon.xml
+++ b/plugin.image.cheezburger_network/addon.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<addon id="plugin.image.cheezburger_network" name="Cheezburger Network"
version="0.0.1" provider-name="Tristan Fischer ([email protected])">
+<addon id="plugin.image.cheezburger_network" name="Cheezburger Network"
version="0.0.2" provider-name="Tristan Fischer ([email protected])">
<requires>
<import addon="xbmc.python" version="2.0"/>
<import addon="script.module.xmltodict" version="0.2.0"/>
@@ -11,7 +11,22 @@
<extension point="xbmc.addon.metadata">
<language></language>
<platform>all</platform>
+ <!-- translation commit: 84113ddafdde2c18eac5fd9b9b8144abff06ccf9 -->
+ <summary lang="be">funny pictures</summary>
+ <summary lang="de">Lustige Bilder</summary>
+ <summary lang="el">ÎÏÏÎµÎ¯ÎµÏ ÎµÎ¹ÎºÏνεÏ</summary>
<summary lang="en">funny pictures</summary>
+ <summary lang="lt">Linksmieji paveikslÄliai</summary>
+ <summary lang="pl">Åmieszne zdjÄcia</summary>
+ <summary lang="pt_BR">Imagens Divertidas</summary>
+ <summary lang="sv">roliga bilder</summary>
+ <description lang="be">Cheezburger: All your funny in one
place</description>
+ <description lang="de">Cheezburger: Alles Lustige an einem
Ort</description>
+ <description lang="el">Cheezburger: Îλα Ïα αÏÏεία ÏÎ±Ï Ïε
Îνα μÎÏοÏ</description>
<description lang="en">Cheezburger: All your funny in one
place</description>
+ <description lang="lt">Cheezburger: Visi jÅ«sų Linksmieji paveikslÄliai
vienoje vietoje</description>
+ <description lang="pl">Cheezburger: Wszystkie Twoje ÅmiesznoÅci w jednym
miejscu</description>
+ <description lang="pt_BR">Cheezburger: Toda sua diversão em um único
local</description>
+ <description lang="sv">Cheezburger: Alla dina roliga saker på ett
ställe</description>
</extension>
</addon>
diff --git a/plugin.image.cheezburger_network/changelog.txt
b/plugin.image.cheezburger_network/changelog.txt
index 7029713..a6fc5d1 100644
--- a/plugin.image.cheezburger_network/changelog.txt
+++ b/plugin.image.cheezburger_network/changelog.txt
@@ -1,2 +1,6 @@
-0.0.1 (unreleased)
+0.0.2 (25.11.2012)
+ - fixed Plugin (add clientID)
+ - updated translations
+
+0.0.1 (11.11.2012)
- Initial Release
diff --git
a/plugin.image.cheezburger_network/resources/language/English/strings.xml
b/plugin.image.cheezburger_network/resources/language/English/strings.xml
index 82e76fd..e66c261 100644
--- a/plugin.image.cheezburger_network/resources/language/English/strings.xml
+++ b/plugin.image.cheezburger_network/resources/language/English/strings.xml
@@ -1,10 +1,15 @@
<?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/ -->
+<!-- Report language file syntax bugs at: [email protected] -->
+
<strings>
<!-- Menu entries -->
<string id="30000">Page</string>
<string id="30001">Browse by Site</string>
<string id="30002">Random by Category</string>
<string id="30003">Get New Random</string>
+
<!-- Settings -->
<string id="30100">Images per Site</string>
<string id="30101">Force Thumbnail-View</string>
diff --git
a/plugin.image.cheezburger_network/resources/language/German/strings.xml
b/plugin.image.cheezburger_network/resources/language/German/strings.xml
index 06e5dcd..d8d9446 100644
--- a/plugin.image.cheezburger_network/resources/language/German/strings.xml
+++ b/plugin.image.cheezburger_network/resources/language/German/strings.xml
@@ -1,11 +1,16 @@
<?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! -->
+<!-- German language-Team URL:
http://www.transifex.com/projects/p/xbmc-addons/language/de/ -->
+<!-- Report language file syntax bugs at: [email protected] -->
+
<strings>
<!-- Menu entries -->
<string id="30000">Seite</string>
<string id="30001">Nach Webseite</string>
<string id="30002">Zufällige nach Kategorie</string>
<string id="30003">Neuer Zufall</string>
+
<!-- Settings -->
<string id="30100">Bilder pro Seite</string>
- <string id="30101"Thumbnail-View erzwingen</string>
+ <string id="30101">Thumbnail-View erzwingen</string>
</strings>
diff --git a/plugin.image.cheezburger_network/resources/lib/cheez_api.py
b/plugin.image.cheezburger_network/resources/lib/cheez_api.py
index 383aaa9..b1fbfe4 100644
--- a/plugin.image.cheezburger_network/resources/lib/cheez_api.py
+++ b/plugin.image.cheezburger_network/resources/lib/cheez_api.py
@@ -33,7 +33,8 @@ class CheezburgerApi():
API_URL = 'http://api.cheezburger.com/xml/'
- def __init__(self, developer_key, default_count=None):
+ def __init__(self, developer_key, client_id, default_count=None):
+ self.client_id = client_id
self.developer_key = developer_key
self.default_count = default_count or 25
@@ -94,6 +95,7 @@ class CheezburgerApi():
self.log('opening url: %s' % url)
req = Request(url)
req.add_header('DeveloperKey', self.developer_key)
+ req.add_header('ClientID', self.client_id)
req.add_header('User-Agent', 'Python CheezburgerApi')
try:
response = urlopen(req).read()
-----------------------------------------------------------------------
Summary of changes:
plugin.image.cheezburger_network/addon.py | 1 +
plugin.image.cheezburger_network/addon.xml | 17 +++-
plugin.image.cheezburger_network/changelog.txt | 6 +-
.../resources/language/Afrikaans/strings.xml | 9 ++
.../resources/language/Albanian/strings.xml | 9 ++
.../resources/language/Arabic/strings.xml | 9 ++
.../resources/language/Belarusian/strings.xml | 16 +++
.../resources/language/Bulgarian/strings.xml | 9 ++
.../resources/language/Catalan/strings.xml | 9 ++
.../language/Chinese (Simple)/strings.xml | 9 ++
.../language/Chinese (Traditional)/strings.xml | 9 ++
.../resources/language/Croatian/strings.xml | 9 ++
.../resources/language/Czech/strings.xml | 9 ++
.../resources/language/Danish/strings.xml | 9 ++
.../resources/language/Dutch/strings.xml | 9 ++
.../resources/language/English/strings.xml | 5 +
.../resources/language/Estonian/strings.xml | 9 ++
.../resources/language/Finnish/strings.xml | 9 ++
.../resources/language/French/strings.xml | 9 ++
.../resources/language/Galician/strings.xml | 9 ++
.../resources/language/German/strings.xml | 7 +-
.../resources/language/Greek/strings.xml | 16 +++
.../resources/language/Hebrew/strings.xml | 9 ++
.../resources/language/Hungarian/strings.xml | 9 ++
.../resources/language/Icelandic/strings.xml | 9 ++
.../resources/language/Italian/strings.xml | 9 ++
.../resources/language/Japanese/strings.xml | 9 ++
.../resources/language/Korean/strings.xml | 9 ++
.../resources/language/Lithuanian/strings.xml | 16 +++
.../resources/language/Norwegian/strings.xml | 9 ++
.../resources/language/Polish/strings.xml | 16 +++
.../language/Portuguese (Brazil)/strings.xml | 16 +++
.../resources/language/Portuguese/strings.xml | 9 ++
.../resources/language/Romanian/strings.xml | 9 ++
.../resources/language/Russian/strings.xml | 9 ++
.../language/Serbian (Cyrillic)/strings.xml | 9 ++
.../resources/language/Serbian/strings.xml | 9 ++
.../resources/language/Slovak/strings.xml | 9 ++
.../resources/language/Slovenian/strings.xml | 9 ++
.../language/Spanish (Mexico)/strings.xml | 9 ++
.../resources/language/Spanish/strings.xml | 9 ++
.../resources/language/Swedish/strings.xml | 16 +++
.../resources/language/Thai/strings.xml | 9 ++
.../resources/language/Turkish/strings.xml | 9 ++
.../resources/language/Ukrainian/strings.xml | 9 ++
.../resources/language/Vietnamese/strings.xml | 9 ++
.../resources/lib/cheez_api.py | 4 +-
.../LICENSE.txt | 0
plugin.video.netzkino_de/addon.py | 79 +++++++++++
plugin.video.netzkino_de/addon.xml | 36 +++++
plugin.video.netzkino_de/changelog.txt | 6 +
plugin.video.netzkino_de/icon.png | Bin 0 -> 48282 bytes
.../resources/__init__.py | 0
.../resources/language/Belarusian/strings.xml | 13 ++
.../resources/language/English/strings.xml | 13 ++
.../resources/language/French/strings.xml | 12 ++
.../resources/language/German/strings.xml | 13 ++
.../resources/language/Greek/strings.xml | 13 ++
.../resources/language/Korean/strings.xml | 13 ++
.../resources/language/Lithuanian/strings.xml | 13 ++
.../resources/language/Polish/strings.xml | 13 ++
.../language/Portuguese (Brazil)/strings.xml | 13 ++
.../resources/language/Spanish/strings.xml | 13 ++
.../resources/language/Swedish/strings.xml | 13 ++
.../resources/lib}/__init__.py | 0
plugin.video.netzkino_de/resources/lib/api.py | 142 ++++++++++++++++++++
plugin.video.netzkino_de/resources/settings.xml | 5 +
plugin.video.pbs/addon.xml | 4 +-
plugin.video.pbs/changelog.txt | 9 ++
plugin.video.pbs/coveapi/connection.py | 15 ++-
plugin.video.pbs/default.py | 81 +++++------
plugin.video.previewnetworks/addon.xml | 6 +-
plugin.video.previewnetworks/changelog.txt | 6 +
plugin.video.previewnetworks/default.py | 25 ++--
.../resources/lib/trailers.py | 11 +-
plugin.video.revision3/addon.xml | 10 +-
plugin.video.revision3/changelog.txt | 10 ++
plugin.video.revision3/default.py | 125 ++++++++++--------
.../resources/language/English/strings.xml | 7 +-
79 files changed, 1029 insertions(+), 141 deletions(-)
create mode 100644
plugin.image.cheezburger_network/resources/language/Afrikaans/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Albanian/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Arabic/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Belarusian/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Bulgarian/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Catalan/strings.xml
create mode 100644 plugin.image.cheezburger_network/resources/language/Chinese
(Simple)/strings.xml
create mode 100644 plugin.image.cheezburger_network/resources/language/Chinese
(Traditional)/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Croatian/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Czech/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Danish/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Dutch/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Estonian/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Finnish/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/French/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Galician/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Greek/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Hebrew/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Hungarian/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Icelandic/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Italian/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Japanese/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Korean/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Lithuanian/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Norwegian/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Polish/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Portuguese
(Brazil)/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Portuguese/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Romanian/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Russian/strings.xml
create mode 100644 plugin.image.cheezburger_network/resources/language/Serbian
(Cyrillic)/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Serbian/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Slovak/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Slovenian/strings.xml
create mode 100644 plugin.image.cheezburger_network/resources/language/Spanish
(Mexico)/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Spanish/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Swedish/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Thai/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Turkish/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Ukrainian/strings.xml
create mode 100644
plugin.image.cheezburger_network/resources/language/Vietnamese/strings.xml
copy {plugin.audio.hvsc => plugin.video.netzkino_de}/LICENSE.txt (100%)
create mode 100644 plugin.video.netzkino_de/addon.py
create mode 100644 plugin.video.netzkino_de/addon.xml
create mode 100644 plugin.video.netzkino_de/changelog.txt
create mode 100644 plugin.video.netzkino_de/icon.png
copy {plugin.audio.radio_de => plugin.video.netzkino_de}/resources/__init__.py
(100%)
create mode 100644
plugin.video.netzkino_de/resources/language/Belarusian/strings.xml
create mode 100644
plugin.video.netzkino_de/resources/language/English/strings.xml
create mode 100644
plugin.video.netzkino_de/resources/language/French/strings.xml
create mode 100644
plugin.video.netzkino_de/resources/language/German/strings.xml
create mode 100644
plugin.video.netzkino_de/resources/language/Greek/strings.xml
create mode 100644
plugin.video.netzkino_de/resources/language/Korean/strings.xml
create mode 100644
plugin.video.netzkino_de/resources/language/Lithuanian/strings.xml
create mode 100644
plugin.video.netzkino_de/resources/language/Polish/strings.xml
create mode 100644 plugin.video.netzkino_de/resources/language/Portuguese
(Brazil)/strings.xml
create mode 100644
plugin.video.netzkino_de/resources/language/Spanish/strings.xml
create mode 100644
plugin.video.netzkino_de/resources/language/Swedish/strings.xml
copy {plugin.audio.radio_de/resources =>
plugin.video.netzkino_de/resources/lib}/__init__.py (100%)
create mode 100644 plugin.video.netzkino_de/resources/lib/api.py
create mode 100644 plugin.video.netzkino_de/resources/settings.xml
hooks/post-receive
--
Plugins
------------------------------------------------------------------------------
Monitor your physical, virtual and cloud infrastructure from a single
web console. Get in-depth insight into apps, servers, databases, vmware,
SAP, cloud infrastructure, etc. Download 30-day Free Trial.
Pricing starts from $795 for 25 servers or applications!
http://p.sf.net/sfu/zoho_dev2dev_nov
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons