The branch, eden has been updated
via 2f456682882d94400b93707a0dcaf4ed49e8302b (commit)
from fea590fa5903bc5965123faefa7eb638702f9bfe (commit)
- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=2f456682882d94400b93707a0dcaf4ed49e8302b
commit 2f456682882d94400b93707a0dcaf4ed49e8302b
Author: spiff <[email protected]>
Date: Thu Jun 7 22:12:31 2012 +0200
[plugin.video.drnu] updated to version 2.1.4
diff --git a/plugin.video.drnu/addon.py b/plugin.video.drnu/addon.py
index a01ee9f..3265ec3 100644
--- a/plugin.video.drnu/addon.py
+++ b/plugin.video.drnu/addon.py
@@ -29,6 +29,7 @@ import xbmc
import xbmcgui
import xbmcaddon
import xbmcplugin
+import xbmcvfs
import nuapi
import buggalo
@@ -66,10 +67,10 @@ class NuAddon(object):
fanartImage = os.path.join(ADDON.getAddonInfo('path'), 'fanart.jpg')
items = list()
- # All Program Series
+ # A-Z Program Series
item = xbmcgui.ListItem(ADDON.getLocalizedString(30000),
iconImage=os.path.join(ADDON.getAddonInfo('path'), 'resources', 'icons',
'all.png'))
item.setProperty('Fanart_Image', fanartImage)
- items.append((PATH + '?show=allProgramSeries', item, True))
+ items.append((PATH + '?show=azProgramSeries', item, True))
# Program Series label
item = xbmcgui.ListItem(ADDON.getLocalizedString(30012),
iconImage=os.path.join(ADDON.getAddonInfo('path'), 'resources', 'icons',
'tag.png'))
item.setProperty('Fanart_Image', fanartImage)
@@ -146,7 +147,7 @@ class NuAddon(object):
else:
self.listVideos(videos)
- def showProgramSeries(self, limitToSlugs = None, addToFavorites = True,
label = None):
+ def showProgramSeries(self, limitToSlugs = None, addToFavorites = True,
label = None, letter = None):
programs = self.api.getProgramSeries(limitToSlugs, label)
if not programs:
@@ -158,6 +159,8 @@ class NuAddon(object):
else:
items = list()
for program in programs:
+ if letter is not None and program['title'][0].upper() !=
letter.decode('utf-8', 'ignore'):
+ continue
infoLabels = {}
if program['newestVideoPublishTime'] is not None:
@@ -174,18 +177,28 @@ class NuAddon(object):
infoLabels['plot'] = program['description']
infoLabels['count'] = int(program['videoCount'])
- iconImage = self.api.getProgramSeriesImageUrl(program['slug'],
256)
- fanartImage =
self.api.getProgramSeriesImageUrl(program['slug'], 1280, 720)
- item = xbmcgui.ListItem(infoLabels['title'],
iconImage=iconImage)
- item.setInfo('video', infoLabels)
- item.setProperty('Fanart_Image', fanartImage)
+ menuItems = list()
if self.favorites.count(program['slug']) > 0:
runScript =
"XBMC.RunPlugin(plugin://plugin.video.drnu/?delfavorite=%s)" % program['slug']
-
item.addContextMenuItems([(ADDON.getLocalizedString(30201), runScript)], True)
+ menuItems.append((ADDON.getLocalizedString(30201),
runScript))
else:
runScript =
"XBMC.RunPlugin(plugin://plugin.video.drnu/?addfavorite=%s)" % program['slug']
-
item.addContextMenuItems([(ADDON.getLocalizedString(30200), runScript)], True)
+ menuItems.append((ADDON.getLocalizedString(30200),
runScript))
+
+ customThumbFile = self.getCustomThumbPath(program['slug'])
+ if os.path.exists(customThumbFile):
+ menuItems.append((ADDON.getLocalizedString(30024),
"XBMC.RunPlugin(plugin://plugin.video.drnu/?delthumb=%s)" % program['slug']))
+ iconImage = customThumbFile
+ else:
+ menuItems.append((ADDON.getLocalizedString(30023),
"XBMC.RunPlugin(plugin://plugin.video.drnu/?setthumb=%s)" % program['slug']))
+ iconImage =
self.api.getProgramSeriesImageUrl(program['slug'], 256)
+ fanartImage =
self.api.getProgramSeriesImageUrl(program['slug'], 1280, 720)
+ item = xbmcgui.ListItem(infoLabels['title'],
iconImage=iconImage)
+ item.setInfo('video', infoLabels)
+ item.setProperty('Fanart_Image', fanartImage)
+
+ item.addContextMenuItems(menuItems, False)
url = PATH + '?listVideos=' + program['slug']
items.append((url, item, True))
@@ -194,6 +207,43 @@ class NuAddon(object):
xbmcplugin.setContent(HANDLE, 'tvshows')
xbmcplugin.endOfDirectory(HANDLE)
+ def showProgramSeriesAZ(self):
+ programs = self.api.getProgramSeries()
+
+ if not programs:
+ xbmcplugin.endOfDirectory(HANDLE, succeeded = False)
+ xbmcgui.Dialog().ok(ADDON.getAddonInfo('name'),
ADDON.getLocalizedString(30013), ADDON.getLocalizedString(30018),
ADDON.getLocalizedString(30019))
+ else:
+ items = list()
+
+ # All Program Series
+ iconImage = os.path.join(ADDON.getAddonInfo('path'), 'resources',
'icons', 'all.png')
+ fanartImage = os.path.join(ADDON.getAddonInfo('path'),
'fanart.jpg')
+
+ item = xbmcgui.ListItem(ADDON.getLocalizedString(30022),
iconImage=iconImage)
+ item.setProperty('Fanart_Image', fanartImage)
+ items.append((PATH + '?show=allProgramSeries', item, True))
+
+ letter = programs[0]['title'][0].upper()
+ count = 0
+ for idx, program in enumerate(programs):
+ count += 1
+ if letter != program['title'][0].upper() or idx ==
len(programs):
+ letter = program['title'][0].upper()
+ infoLabels = {'title': letter, 'count': count}
+
+ item = xbmcgui.ListItem(letter, iconImage = iconImage)
+ item.setInfo('video', infoLabels)
+ item.setProperty('Fanart_Image', fanartImage)
+
+ url = PATH + '?programSeriesLetter=' + letter
+ items.append((url, item, True))
+ count = 0
+
+ xbmcplugin.addDirectoryItems(HANDLE, items)
+ xbmcplugin.endOfDirectory(HANDLE)
+
+
def showProgramSeriesLabels(self):
iconImage = os.path.join(ADDON.getAddonInfo('path'), 'resources',
'icons', 'tag.png')
fanartImage = os.path.join(ADDON.getAddonInfo('path'), 'fanart.jpg')
@@ -388,6 +438,20 @@ class NuAddon(object):
self._save()
xbmcgui.Dialog().ok(ADDON.getLocalizedString(30008),
ADDON.getLocalizedString(30010))
+ def setCustomThumb(self, slug):
+ imageFile = xbmcgui.Dialog().browse(2, 'custom thumb', 'myprograms',
'.jpg|.png', True)
+ if imageFile is not None and xbmcvfs.exists(imageFile):
+ thumbFile = self.getCustomThumbPath(slug)
+ xbmcvfs.copy(imageFile, thumbFile)
+
+ def delCustomThumb(self, slug):
+ thumbFile = self.getCustomThumbPath(slug)
+ if os.path.exists(thumbFile):
+ os.unlink(thumbFile)
+
+ def getCustomThumbPath(self, slug):
+ return os.path.join(CACHE_PATH, '%s-thumb.jpg' % slug)
+
def _updateRecentlyWatched(self, videoId):
xbmc.log("Adding recently watched video ID: " + videoId)
if self.recentlyWatched.count(videoId):
@@ -401,6 +465,12 @@ class NuAddon(object):
line2 = ADDON.getLocalizedString(30901)
xbmcgui.Dialog().ok(heading, line1, line2, message)
+ def displayIOError(self, message = 'n/a'):
+ heading = buggalo.getRandomHeading()
+ line1 = ADDON.getLocalizedString(30902)
+ line2 = ADDON.getLocalizedString(30903)
+ xbmcgui.Dialog().ok(heading, line1, line2, message)
+
if __name__ == '__main__':
ADDON = xbmcaddon.Addon()
PATH = sys.argv[0]
@@ -415,11 +485,14 @@ if __name__ == '__main__':
RECENT_PATH = os.path.join(CACHE_PATH, 'recent.pickle')
buggalo.SUBMIT_URL = 'http://tommy.winther.nu/exception/submit.php'
+ buggalo.addExtraData('cache_path', CACHE_PATH)
nuAddon = NuAddon()
try:
if PARAMS.has_key('show'):
if PARAMS['show'][0] == 'allProgramSeries':
nuAddon.showProgramSeries()
+ elif PARAMS['show'][0] == 'azProgramSeries':
+ nuAddon.showProgramSeriesAZ()
elif PARAMS['show'][0] == 'programSeriesLabels':
nuAddon.showProgramSeriesLabels()
elif PARAMS['show'][0] == 'newest':
@@ -442,6 +515,9 @@ if __name__ == '__main__':
elif PARAMS.has_key('programSeriesLabel'):
nuAddon.showProgramSeries(label = PARAMS['programSeriesLabel'][0])
+ elif PARAMS.has_key('programSeriesLetter'):
+ nuAddon.showProgramSeries(letter =
PARAMS['programSeriesLetter'][0])
+
elif PARAMS.has_key('listVideos'):
nuAddon.showProgramSeriesVideos(PARAMS['listVideos'][0])
@@ -460,12 +536,21 @@ if __name__ == '__main__':
elif PARAMS.has_key('delfavorite'):
nuAddon.delFavorite(PARAMS['delfavorite'][0])
+ elif PARAMS.has_key('setthumb'):
+ nuAddon.setCustomThumb(PARAMS['setthumb'][0])
+
+ elif PARAMS.has_key('delthumb'):
+ nuAddon.delCustomThumb(PARAMS['delthumb'][0])
+
else:
nuAddon.showMainMenu()
except nuapi.DrNuException, ex:
nuAddon.displayError(str(ex))
+ except IOError, ex:
+ nuAddon.displayIOError(str(ex))
+
except Exception:
buggalo.onExceptionRaised()
diff --git a/plugin.video.drnu/addon.xml b/plugin.video.drnu/addon.xml
index b79d2ba..0c07124 100644
--- a/plugin.video.drnu/addon.xml
+++ b/plugin.video.drnu/addon.xml
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
-<addon id="plugin.video.drnu" version="2.1.3" name="DR NU Player"
provider-name="twinther [[email protected]]">
+<addon id="plugin.video.drnu" version="2.1.4" name="DR NU Player"
provider-name="twinther [[email protected]]">
<requires>
<import addon="xbmc.python" version="2.0"/>
<import addon="script.module.simplejson" version="2.0.10"/>
- <import addon="script.module.buggalo" version="1.0.0"/>
+ <import addon="script.module.buggalo" version="1.0.1"/>
</requires>
<extension point="xbmc.python.pluginsource" library="addon.py">
<provides>video</provides>
@@ -17,5 +17,6 @@
<disclaimer lang="da">Nogle dele af denne addon er muligvis ikke
lovlig i dit land - kontroller venligst dine lokale love.</disclaimer>
<license>GPL 2.0</license>
<platform>all</platform>
+ <language>da</language>
</extension>
</addon>
diff --git a/plugin.video.drnu/changelog.txt b/plugin.video.drnu/changelog.txt
index e03f022..482f9fa 100644
--- a/plugin.video.drnu/changelog.txt
+++ b/plugin.video.drnu/changelog.txt
@@ -1,3 +1,8 @@
+[B]Version 2.1.4 - 2012-06-03[/B]
+- Split up Programs A-Z menu into individual letters
+- Handle errors when local filesystem is readonly or out of disk space
+- Added option to define custom icons from program series
+
[B]Version 2.1.3 - 2012-02-15[/B]
- Fixed problem with the 'børn' area due to the Danish character
diff --git a/plugin.video.drnu/resources/language/Danish/strings.xml
b/plugin.video.drnu/resources/language/Danish/strings.xml
index d08afb2..0c74fe1 100644
--- a/plugin.video.drnu/resources/language/Danish/strings.xml
+++ b/plugin.video.drnu/resources/language/Danish/strings.xml
@@ -22,8 +22,11 @@
<string id="30019">af højreklik-menuen.</string>
<string id="30020">De videoer du sidst har set tilføjest
automatisk.</string>
<string id="30021">Højdepunkter</string>
+ <string id="30022">Alle programmer</string>
+ <string id="30023">Tildel brugerdefineret ikon</string>
+ <string id="30024">Fjern brugerdefineret ikon</string>
- <string id="30100">Videoen er ikke tilgængelig</string>
+ <string id="30100">Videoen er ikke tilgængelig</string>
<string id="30101">DR har slettet den videofil du forsøger at
afspille,</string>
<string id="30102">da det er lang tid siden, den er blevet afspillet
sidst.</string>
@@ -35,4 +38,7 @@
<string id="30900">Der er sket en fejl i kommunikationen med DR
NU.</string>
<string id="30901">Prøv igen senere. Fejlen er:</string>
+
+ <string id="30902">Det var ikke muligt at gemme midlertidige data</string>
+ <string id="30903">lokalt på disken. Fejlen er:</string>
</strings>
diff --git a/plugin.video.drnu/resources/language/English/strings.xml
b/plugin.video.drnu/resources/language/English/strings.xml
index fc608dc..8ce2c46 100644
--- a/plugin.video.drnu/resources/language/English/strings.xml
+++ b/plugin.video.drnu/resources/language/English/strings.xml
@@ -22,8 +22,11 @@
<string id="30019">the context menu.</string>
<string id="30020">Your recently watched videos are automatically
added.</string>
<string id="30021">Highlights</string>
+ <string id="30022">All programs</string>
+ <string id="30023">Choose custom icon</string>
+ <string id="30024">Remove custom icon</string>
- <string id="30100">Video is not available</string>
+ <string id="30100">Video is not available</string>
<string id="30101">DR has deleted the video file you want to
watch,</string>
<string id="30102">because it has not been viewed recently.</string>
@@ -35,4 +38,7 @@
<string id="30900">There was an error while communication with DR
NU.</string>
<string id="30901">Please try again later. Error message is:</string>
+
+ <string id="30902">There was an error while writing temporary data</string>
+ <string id="30903">to the local disk. The error message is:</string>
</strings>
-----------------------------------------------------------------------
Summary of changes:
plugin.video.drnu/addon.py | 105 ++++++++++++++++++--
plugin.video.drnu/addon.xml | 5 +-
plugin.video.drnu/changelog.txt | 5 +
.../resources/language/Danish/strings.xml | 8 ++-
.../resources/language/English/strings.xml | 8 ++-
5 files changed, 117 insertions(+), 14 deletions(-)
hooks/post-receive
--
Plugins
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons