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

Reply via email to