The branch, eden has been updated
       via  2bb812f0c2f7085023b2a6380bc7b12dc363c506 (commit)
       via  9b19bf1d0499343b897fa18e4914405823de51e0 (commit)
       via  4085bf66b4de5e1651c506c62e4fa923ba2bcad8 (commit)
      from  8744468dff280b7f5e684d925b223bdeb708fb07 (commit)

- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=2bb812f0c2f7085023b2a6380bc7b12dc363c506

commit 2bb812f0c2f7085023b2a6380bc7b12dc363c506
Author: spiff <[email protected]>
Date:   Wed Oct 24 10:12:41 2012 +0200

    [plugin.image.iphoto] updated to version 1.9.3

diff --git a/plugin.image.iphoto/addon.py b/plugin.image.iphoto/addon.py
index 0b5c471..40945d5 100644
--- a/plugin.image.iphoto/addon.py
+++ b/plugin.image.iphoto/addon.py
@@ -423,6 +423,11 @@ def list_photos_with_keyword(params):
 def list_keywords(params):
     global db, BASE_URL, ICONS_PATH, album_ign_empty, view_mode
 
+    if (db.GetIphotoVersion() >= 9.4):
+       dialog = gui.Dialog()
+       dialog.ok(addon.getLocalizedString(30262), 
addon.getLocalizedString(30263))
+       return
+
     keywordid = 0
     try:
        keywordid = params['keywordid']
diff --git a/plugin.image.iphoto/addon.xml b/plugin.image.iphoto/addon.xml
index edabc96..0a405b7 100644
--- a/plugin.image.iphoto/addon.xml
+++ b/plugin.image.iphoto/addon.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<addon id="plugin.image.iphoto" name="iPhoto" version="1.9.2" 
provider-name="jingai">
+<addon id="plugin.image.iphoto" name="iPhoto" version="1.9.3" 
provider-name="jingai">
     <requires>
        <import addon="xbmc.python" version="2.0"/>
        <import addon="script.module.simplejson" version="2.0.10"/>
diff --git a/plugin.image.iphoto/changelog.txt 
b/plugin.image.iphoto/changelog.txt
index 8c30d50..d3c31d4 100644
--- a/plugin.image.iphoto/changelog.txt
+++ b/plugin.image.iphoto/changelog.txt
@@ -1,3 +1,7 @@
+1.9.3 - 20121023
+- Warn user that Keywords are unsupported with iPhoto >= 9.4.
+- Work around for bogus Face entries in XML.
+
 1.9.2 - 20121017
 - Fixes for iPhoto 9.4.
 - Ignore Albums of type "Event".
diff --git a/plugin.image.iphoto/resources/language/English/strings.xml 
b/plugin.image.iphoto/resources/language/English/strings.xml
index a2f826b..3b5da40 100644
--- a/plugin.image.iphoto/resources/language/English/strings.xml
+++ b/plugin.image.iphoto/resources/language/English/strings.xml
@@ -26,6 +26,8 @@
     <string id="30252">Scanning...</string>
     <string id="30260">Library import in progress</string>
     <string id="30261">Unable to reset database.</string>
+    <string id="30262">Currently unsupported</string>
+    <string id="30263">This function is unsupported in this version of 
iPhoto.</string>
 
 
     <!-- Category strings -->
diff --git a/plugin.image.iphoto/resources/lib/iphoto_parser.py 
b/plugin.image.iphoto/resources/lib/iphoto_parser.py
index a98f226..5f890ff 100644
--- a/plugin.image.iphoto/resources/lib/iphoto_parser.py
+++ b/plugin.image.iphoto/resources/lib/iphoto_parser.py
@@ -562,6 +562,8 @@ class IPhotoDB:
 
        try:
            faceid = int(face['key'])
+           facekey = face['key image']
+           faceidx = face['key image face index']
        except:
            return
 
@@ -571,8 +573,8 @@ class IPhotoDB:
            VALUES (?, ?, ?, ?, ?, ?)""",
                                (faceid,
                                 face['name'],
-                                face['key image'],
-                                face['key image face index'],
+                                facekey,
+                                faceidx,
                                 face['PhotoCount'],
                                 face['Order']))
        except sqlite.IntegrityError:

http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=9b19bf1d0499343b897fa18e4914405823de51e0

commit 9b19bf1d0499343b897fa18e4914405823de51e0
Author: spiff <[email protected]>
Date:   Wed Oct 24 10:11:51 2012 +0200

    [plugin.video.railscasts] initial version (0.2). thanks to Pawel Lenart

diff --git a/.gitignore b/.gitignore
index c2c3287..1e5ae56 100644
--- a/.gitignore
+++ b/.gitignore
@@ -105,3 +105,5 @@ plugin.video.borsentv.dk/.idea
 plugin.video.borsentv.dk/.git
 plugin.video.goldpagemedia/.gitignore
 plugin.video.goldpagemedia/.git
+plugin.video.railscast/.gitignore
+plugin.video.railscast/.git

http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=4085bf66b4de5e1651c506c62e4fa923ba2bcad8

commit 4085bf66b4de5e1651c506c62e4fa923ba2bcad8
Author: spiff <[email protected]>
Date:   Wed Oct 24 10:08:58 2012 +0200

    [plugin.video.sagetv] updated to version 1.3.4

diff --git a/plugin.video.sagetv/addon.xml b/plugin.video.sagetv/addon.xml
index ca45e4a..24454e5 100644
--- a/plugin.video.sagetv/addon.xml
+++ b/plugin.video.sagetv/addon.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>

 <addon id="plugin.video.sagetv"

        name="SageTV"

-       version="1.3.1"

+       version="1.3.4"

        provider-name="kricker,lehighbri,aaronb">

   <requires>

     <import addon="xbmc.python" version="2.0"/>

diff --git a/plugin.video.sagetv/changelog.txt 
b/plugin.video.sagetv/changelog.txt
index f984460..51f5f4d 100644
--- a/plugin.video.sagetv/changelog.txt
+++ b/plugin.video.sagetv/changelog.txt
@@ -1,3 +1,13 @@
+[B]Version 1.3.4 (Oct 17, 2012)[/B]

+- Improved display of show titles that contain special (non-ASCII) characters 
(added UTF8 support)

+

+[B]Version 1.3.3 (Oct 16, 2012)[/B]

+- Added new streaming quality setting and enhanced "Watch (Stream)" context 
menu to force what quality to stream the recording back as (note that this is a 
workaround to using the standard streaming URL which does not work due to a bug 
in ffmpeg that we're waiting to get fixed)

+- Added "Add/Remove Favorite" show level context menu items

+

+[B]Version 1.3.2 (Oct 16, 2012)[/B]

+- Added show level context menu items to enable "Set All Watched", "Clear All 
Watched", and "Delete All" which takes action on all episodes within a show

+

 [B]Version 1.3.1 (Oct 13, 2012)[/B]

 - Added "Watch (Streamed)" context menu item which enables playing back via 
using SageTV remote services

 - Fixed file/watched duration issue where "None" wasn't handled

diff --git a/plugin.video.sagetv/contextmenuactions.py 
b/plugin.video.sagetv/contextmenuactions.py
index 5ca7d57..fb67e32 100644
--- a/plugin.video.sagetv/contextmenuactions.py
+++ b/plugin.video.sagetv/contextmenuactions.py
@@ -1,5 +1,6 @@
 import urllib,urllib2,re,string

 import xbmc,xbmcplugin,xbmcgui,xbmcaddon

+import time

 from time import sleep

 import simplejson as json

 

@@ -136,7 +137,7 @@ if(args[0] in 
["cancelrecording","addfavorite","removefavorite","record","setwat
     elif(args[0] == "cleararchived"):

         xbmc.executebuiltin("Notification(" + __language__(21011) + "," + 
__language__(21036) + ")")

     xbmc.executebuiltin("Container.Refresh")

-elif(args[0][0:6] == "delete"):

+elif(args[0][0:6] == "delete" and args[0] != "deleteall"):

     firstApiCall = args[1]

     #Check what kind of delete command was sent

     deleteCommand = args[0].replace("delete","")

@@ -150,10 +151,32 @@ elif(args[0][0:6] == "delete"):
     if(args[0] == "delete"):

         xbmc.executebuiltin("Notification(" + __language__(21011) + "," + 
__language__(21012) + ")")

     xbmc.executebuiltin("Container.Refresh")

+elif(args[0] in ["setallwatched","clearallwatched","deleteall"]):

+    strUrl = args[1]

+    showName = args[2]

+    urlToShowEpisodes = strUrl + 
'/sagex/api?c=xbmc:GetMediaFilesForShowWithSubsetOfProperties&1=' + 
urllib2.quote(showName) + '&size=500&encoder=json'

+    mfs = executeSagexAPIJSONCall(urlToShowEpisodes, "Result")

+    print "***Getting ready to execute action '" + args[0] + "'; # of EPISODES 
for " + showName + "=" + str(len(mfs))

+    for mfSubset in mfs:

+        strMediaFileID = mfSubset.get("MediaFileID")

+        if(args[0] == "setallwatched"):

+            sageApiUrl = strUrl + '/sagex/api?command=SetWatched&1=mediafile:' 
+ strMediaFileID

+        elif(args[0] == "clearallwatched"):

+            sageApiUrl = strUrl + 
'/sagex/api?command=ClearWatched&1=mediafile:' + strMediaFileID

+        elif(args[0] == "deleteall"):

+            sageApiUrl = strUrl + '/sagex/api?command=DeleteFile&1=mediafile:' 
+ strMediaFileID

+            

+        urllib.urlopen(sageApiUrl)

+

+    xbmc.executebuiltin("Container.Refresh")

 elif(args[0] == "watchstream"):

     strUrl = args[1]

-    mediaFileID = args[2]    

-    streamingUrl = strUrl + "/stream/HTTPLiveStreamingPlaylist?MediaFileId=" + 
mediaFileID

+    mediaFileID = args[2]

+    #streamingUrl = strUrl + "/stream/HTTPLiveStreamingPlaylist?MediaFileId=" 
+ mediaFileID

+    qualitySettingArray = [150, 240, 440, 640, 840, 1240, 1840]

+    qualitySettingIndex = int(__settings__.getSetting("streaming_quality"))

+    qualitySetting = qualitySettingArray[qualitySettingIndex]

+    streamingUrl = strUrl + 
"/stream/HTTPLiveStreamingPlaylist?MediaFileId=%s&ConversionId=%s&Quality=%s" % 
(mediaFileID, str(int(time.time())), qualitySetting)

     #First check that the media streaming services plugin is installed

     validStreamingServicesPluginVersionFound = True

     url = strUrl + '/sagex/api?command=GetInstalledPlugins&encoder=json'

diff --git a/plugin.video.sagetv/default.py b/plugin.video.sagetv/default.py
index c1a3c6f..1848350 100644
--- a/plugin.video.sagetv/default.py
+++ b/plugin.video.sagetv/default.py
@@ -101,21 +101,21 @@ def VIEWLISTOFRECORDEDSHOWS(url,name):
         mfsForTitle = titleObjects.get(title)

         for mfSubset in mfsForTitle:

             strTitle = mfSubset.get("ShowTitle")

-            strTitle = unicodedata.normalize('NFKD', 
strTitle).encode('ascii','ignore')

+            strTitleEncoded = strTitle.encode("utf8")

             strMediaFileID = mfSubset.get("MediaFileID")

             strExternalID = mfSubset.get("ShowExternalID")

             startTime = float(mfSubset.get("AiringStartTime") // 1000)

             strAiringdateObject = date.fromtimestamp(startTime)

             strAiringdate = "%02d.%02d.%s" % (strAiringdateObject.day, 
strAiringdateObject.month, strAiringdateObject.year)

             break

-        urlToShowEpisodes = strUrl + 
'/sagex/api?c=xbmc:GetMediaFilesForShowWithSubsetOfProperties&1=' + 
urllib2.quote(strTitle.encode("utf8")) + '&size=500&encoder=json'

+        urlToShowEpisodes = strUrl + 
'/sagex/api?c=xbmc:GetMediaFilesForShowWithSubsetOfProperties&1=' + 
urllib2.quote(strTitleEncoded) + '&size=500&encoder=json'

         #urlToShowEpisodes = strUrl + 
'/sagex/api?command=EvaluateExpression&1=FilterByMethod(GetMediaFiles("T"),"GetMediaTitle","'
 + urllib2.quote(strTitle.encode("utf8")) + '",true)&size=500&encoder=json'

         #urlToShowEpisodes = strUrl + 
'/sage/Search?searchType=TVFiles&SearchString=' + 
urllib2.quote(strTitle.encode("utf8")) + 
'&DVD=on&sort2=airdate_asc&partials=both&TimeRange=0&pagelen=100&sort1=title_asc&filename=&Video=on&search_fields=title&xml=yes'

-        print "ADDING strTitle=" + strTitle + "; urlToShowEpisodes=" + 
urlToShowEpisodes

+        print "ADDING strTitleEncoded=" + strTitleEncoded + "; 
urlToShowEpisodes=" + urlToShowEpisodes

         imageUrl = strUrl + "/sagex/media/poster/" + strMediaFileID

         fanartUrl = strUrl + "/sagex/media/background/" + strMediaFileID

         #print "ADDING imageUrl=" + imageUrl

-        addDir(strTitle, 
urlToShowEpisodes,11,imageUrl,'',strExternalID,strAiringdate,fanartUrl)

+        addDir(strTitleEncoded, 
urlToShowEpisodes,11,imageUrl,'',strExternalID,strAiringdate,fanartUrl)

 

 def VIEWLISTOFEPISODESFORSHOW(url,name):

     mfs = executeSagexAPIJSONCall(url, "Result")

@@ -127,7 +127,7 @@ def VIEWLISTOFEPISODESFORSHOW(url,name):
 

     for mfSubset in mfs:

         strTitle = mfSubset.get("ShowTitle")

-        strTitle = unicodedata.normalize('NFKD', 
strTitle).encode('ascii','ignore')

+        strTitleEncoded = strTitle.encode("utf8")

         strMediaFileID = mfSubset.get("MediaFileID")

 

         strEpisode = mfSubset.get("EpisodeTitle")

@@ -164,12 +164,12 @@ def VIEWLISTOFEPISODESFORSHOW(url,name):
                         strDisplayText = studio + " News - " + strftime('%a %b 
%d', time.localtime(startTime)) + " @ " + airTime

                         strDescription = strGenre

                     elif(strGenre.find("Sports")>=0):

-                        strDisplayText = strTitle + " - " + strftime('%a %b 
%d', time.localtime(startTime)) + " @ " + airTime

+                        strDisplayText = strTitleEncoded + " - " + 
strftime('%a %b %d', time.localtime(startTime)) + " @ " + airTime

                         strDescription = strGenre

             if(name == "[All Shows]"):

-                strDisplayText = strTitle + " - " + strDisplayText

+                strDisplayText = strTitleEncoded + " - " + strDisplayText

         else:

-            strDisplayText = strTitle

+            strDisplayText = strTitleEncoded

 

         segs = mfSubset.get("SegmentFiles")

         if(len(segs) == 1):

@@ -187,7 +187,7 @@ def VIEWLISTOFEPISODESFORSHOW(url,name):
         print "************strMappedFilepath=" + str(strMappedFilepath)

         imageUrl = strUrl + "/sagex/media/poster/" + strMediaFileID

         fanartUrl = strUrl + "/sagex/media/background/" + strMediaFileID

-        
addMediafileLink(strDisplayText,strMappedFilepath,strDescription,imageUrl,strGenre,strOriginalAirdate,strAiringdate,strTitle,strMediaFileID,strAiringID,seasonNum,episodeNum,studio,isFavorite,isWatched,watchedDuration,fileDuration,fanartUrl,isArchived)

+        
addMediafileLink(strDisplayText,strMappedFilepath,strDescription,imageUrl,strGenre,strOriginalAirdate,strAiringdate,strTitleEncoded,strMediaFileID,strAiringID,seasonNum,episodeNum,studio,isFavorite,isWatched,watchedDuration,fileDuration,fanartUrl,isArchived)

 

     xbmc.executebuiltin("Container.SetViewMode(504)")

 

@@ -327,8 +327,7 @@ def SEARCHFORRECORDINGS(url,name):
 

     for mfSubset in mfs:

         strTitle = mfSubset.get("ShowTitle")

-        print "showtitle=" + str(strTitle)

-        strTitle = unicodedata.normalize('NFKD', 
strTitle).encode('ascii','ignore')

+        strTitleEncoded = strTitle.encode("utf8")

         strMediaFileID = mfSubset.get("MediaFileID")

 

         strEpisode = mfSubset.get("EpisodeTitle")

@@ -355,18 +354,18 @@ def SEARCHFORRECORDINGS(url,name):
             strOriginalAirdate = "%02d.%02d.%s" % 
(strOriginalAirdateObject.day, strOriginalAirdateObject.month, 
strOriginalAirdateObject.year)

 

         # if there is no episode name use the description in the title

-        strDisplayText = strTitle

+        strDisplayText = strTitleEncoded

         if(strGenre.find("Movie")<0 and strGenre.find("Movies")<0 and 
strGenre.find("Film")<0 and strGenre.find("Shopping")<0 and 
strGenre.find("Consumer")<0):

             if(strEpisode != "" and strDescription != ""):

-                strDisplayText = strTitle + ' - ' + strDescription

+                strDisplayText = strTitleEncoded + ' - ' + strDescription

             elif(strEpisode != ""):

-                strDisplayText = strTitle + ' - ' + strEpisode

+                strDisplayText = strTitleEncoded + ' - ' + strEpisode

             else:

                 if(strGenre.find("News")>=0):

                     strDisplayText = studio + " News - " + strftime('%a %b 
%d', time.localtime(startTime)) + " @ " + airTime

                     strDescription = strGenre

                 elif(strGenre.find("Sports")>=0):

-                    strDisplayText = strTitle + " - " + strftime('%a %b %d', 
time.localtime(startTime)) + " @ " + airTime

+                    strDisplayText = strTitleEncoded + " - " + strftime('%a %b 
%d', time.localtime(startTime)) + " @ " + airTime

                     strDescription = strGenre

                 

 

@@ -386,7 +385,7 @@ def SEARCHFORRECORDINGS(url,name):
         print "************strMappedFilepath=" + str(strMappedFilepath)

         imageUrl = strUrl + "/sagex/media/poster/" + strMediaFileID

         fanartUrl = strUrl + "/sagex/media/background/" + strMediaFileID

-        
addMediafileLink(strDisplayText,strMappedFilepath,strDescription,imageUrl,strGenre,strOriginalAirdate,strAiringdate,strTitle,strMediaFileID,strAiringID,seasonNum,episodeNum,studio,isFavorite,isWatched,watchedDuration,fileDuration,fanartUrl,isArchived)

+        
addMediafileLink(strDisplayText,strMappedFilepath,strDescription,imageUrl,strGenre,strOriginalAirdate,strAiringdate,strTitleEncoded,strMediaFileID,strAiringID,seasonNum,episodeNum,studio,isFavorite,isWatched,watchedDuration,fileDuration,fanartUrl,isArchived)

 

     xbmc.executebuiltin("Container.SetViewMode(504)")

 

@@ -475,6 +474,7 @@ def 
addMediafileLink(name,url,plot,iconimage,genre,originalairingdate,airingdate
         actionSetArchived = "setarchived|" + strUrl + 
'/sagex/api?command=MoveFileToLibrary&1=mediafile:' + mediafileid

         actionClearArchived = "cleararchived|" + strUrl + 
'/sagex/api?command=MoveTVFileOutOfLibrary&1=mediafile:' + mediafileid

         actionCancelRecording = "cancelrecording|" + strUrl + 
'/sagex/api?command=CancelRecord&1=mediafile:' + mediafileid

+        actionAddFavorite = "addfavorite|" + strUrl + 
'/sagex/api?command=AddFavorite&1=%s&2=true&3=true&4=&5=&6=&7=&8=&9=&10=&11=&12=&13=&14='
 % showtitle

         actionRemoveFavorite = "removefavorite|" + strUrl + 
'/sagex/api?command=EvaluateExpression&1=RemoveFavorite(GetFavoriteForAiring(GetAiringForID('
 + airingid + ')))'

         actionWatchStream = "watchstream|" + strUrl + "|" + mediafileid

         

@@ -486,9 +486,13 @@ def 
addMediafileLink(name,url,plot,iconimage,genre,originalairingdate,airingdate
             contextMenuItems.append((__language__(21017), 'XBMC.RunScript(' + 
scriptToRun + ', ' + actionCancelRecording + ')'))

             if(isfavorite):

                 contextMenuItems.append((__language__(21018), 
'XBMC.RunScript(' + scriptToRun + ', ' + actionRemoveFavorite + ')'))

+            else:

+                contextMenuItems.append((__language__(21030), 
'XBMC.RunScript(' + scriptToRun + ', ' + actionAddFavorite + ')'))

         else:

             if(isfavorite):

                 contextMenuItems.append((__language__(21018), 
'XBMC.RunScript(' + scriptToRun + ', ' + actionRemoveFavorite + ')'))

+            else:

+                contextMenuItems.append((__language__(21030), 
'XBMC.RunScript(' + scriptToRun + ', ' + actionAddFavorite + ')'))

 

         if(iswatched):

             contextMenuItems.append((__language__(21023), 'XBMC.RunScript(' + 
scriptToRun + ', ' + actionClearWatched + ')'))

@@ -570,6 +574,10 @@ def isAiringRecording(airingid):
     sageApiUrl = strUrl + 
'/sagex/api?command=IsFileCurrentlyRecording&1=airing:' + airingid + 
'&encoder=json'

     return executeSagexAPIJSONCall(sageApiUrl, "Result")

         

+def getFavoriteIDForShowTitle(showtitle):

+    sageApiUrl = strUrl + 
'/sagex/api?c=xbmc:GetFavoriteIDForShowTitle&1=%s&encoder=json' % 
urllib2.quote(showtitle)

+    return executeSagexAPIJSONCall(sageApiUrl, "Result")

+        

 def getShowSeriesDescription(showexternalid):

     sageApiUrl = strUrl + 
'/sagex/api?command=EvaluateExpression&1=GetSeriesDescription(GetShowSeriesInfo(GetShowForExternalID("'
 + showexternalid + '")))&encoder=json'

     return executeSagexAPIJSONCall(sageApiUrl, "Result")

@@ -634,6 +642,26 @@ def 
addDir(name,url,mode,iconimage,thumbimage,showexternalid,airingdate,fanartim
     else:

         liz.setThumbnailImage(iconimage)

     liz.setProperty("fanart_image",fanartimage)

+    

+    if(name != "[All Shows]"):

+        scriptToRun = 
"special://home/addons/plugin.video.sagetv/contextmenuactions.py"

+        actionSetAllWatched = "setallwatched|" + strUrl + '|' + name

+        actionClearAllWatched = "clearallwatched|" + strUrl + '|' + name

+        actionDeleteAll = "deleteall|" + strUrl + '|' + name

+        contextMenuItems = []

+        contextMenuItems.append((__language__(21042), 'XBMC.RunScript(' + 
scriptToRun + ', ' + actionSetAllWatched + ')'))

+        contextMenuItems.append((__language__(21043), 'XBMC.RunScript(' + 
scriptToRun + ', ' + actionClearAllWatched + ')'))

+        favID = getFavoriteIDForShowTitle(name)

+        if(favID != ""):

+            actionRemoveFavorite = "removefavorite|" + strUrl + 
'/sagex/api?command=EvaluateExpression&1=RemoveFavorite(GetFavoriteForID(' + 
favID + '))'

+            contextMenuItems.append((__language__(21018), 'XBMC.RunScript(' + 
scriptToRun + ', ' + actionRemoveFavorite + ')'))

+        else:

+            actionAddFavorite = "addfavorite|" + strUrl + 
'/sagex/api?command=AddFavorite&1=%s&2=true&3=true&4=&5=&6=&7=&8=&9=&10=&11=&12=&13=&14='
 % name

+            contextMenuItems.append((__language__(21030), 'XBMC.RunScript(' + 
scriptToRun + ', ' + actionAddFavorite + ')'))

+            

+        contextMenuItems.append((__language__(21044), 'XBMC.RunScript(' + 
scriptToRun + ', ' + actionDeleteAll + ')'))

+        liz.addContextMenuItems(contextMenuItems, True)

+    

     
ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz,isFolder=True)

     return ok

 

diff --git a/plugin.video.sagetv/extras/sagex/services/xbmc.js 
b/plugin.video.sagetv/extras/sagex/services/xbmc.js
index d6bbdd0..82b531c 100644
--- a/plugin.video.sagetv/extras/sagex/services/xbmc.js
+++ b/plugin.video.sagetv/extras/sagex/services/xbmc.js
@@ -126,3 +126,17 @@ function 
GetPlaylistOfSegmentsForMediafile(mediafileID,sage_rec,sage_unc) {
     }
     return ret;
 }
+
+function GetFavoriteIDForShowTitle(showtitle) {
+   var favs =  FavoriteAPI.GetFavorites();
+   favoriteID = "";
+   var s = favs.length;
+   for (var i=0;i<s;i++) {
+      var fav = favs[i];
+      if(showtitle == FavoriteAPI.GetFavoriteTitle(fav)) {
+        favoriteID = ""+FavoriteAPI.GetFavoriteID(fav);
+        break;
+      }
+   }
+   return favoriteID;
+}
diff --git a/plugin.video.sagetv/resources/language/English/strings.xml 
b/plugin.video.sagetv/resources/language/English/strings.xml
index fa8dad1..0f6ca14 100644
--- a/plugin.video.sagetv/resources/language/English/strings.xml
+++ b/plugin.video.sagetv/resources/language/English/strings.xml
@@ -8,6 +8,7 @@
     <string id="20004">SageTV Recording Folder</string>

     <string id="20005">SageTV Recording Folder Network path</string>

     <string id="20006">SageTV Server MAC Address (for WOL)</string>

+    <string id="20007">Streaming Bandwidth (kbps)</string>

     <!-- Settings-->

     

     <string id="21000">SageTV Server Not Found</string>

@@ -52,4 +53,7 @@
     <string id="21039">You do not have the media streaming services plugin 
installed</string>

     <string id="21040">Please install media streaming services to enable 
watching streams.</string>

     <string id="21041">Please install/upgrade your media streaming services 
plugin version to</string>

+    <string id="21042">Set All Watched</string>

+    <string id="21043">Clear All Watched</string>

+    <string id="21044">Delete All</string>

 </strings>

diff --git a/plugin.video.sagetv/resources/settings.xml 
b/plugin.video.sagetv/resources/settings.xml
index 605b013..2496885 100644
--- a/plugin.video.sagetv/resources/settings.xml
+++ b/plugin.video.sagetv/resources/settings.xml
@@ -5,6 +5,7 @@
     <setting id="sage_user" type="text" label="20002" default="sage"/>

     <setting id="sage_pass" type="text" option="hidden" label="20003" 
default="frey"/>

     <setting id="sage_mac" type="text" label="20006" 
default="FF:FF:FF:FF:FF:FF"/>

+    <setting id="streaming_quality" type="enum" label="20007" 
values="150|240|440|640|840|1240|1840" default="1840"/>

     <setting type="sep" />

     <setting id="sage_rec" type="text" label="20004" default="E:\SageTV 
Recordings\" />

     <setting id="sage_unc" type="folder" label="20005" 
default="smb://localhost/SageTV Recordings/"/>


-----------------------------------------------------------------------

Summary of changes:
 .gitignore                                         |    2 +
 plugin.image.iphoto/addon.py                       |    5 ++
 plugin.image.iphoto/addon.xml                      |    2 +-
 plugin.image.iphoto/changelog.txt                  |    4 +
 .../resources/language/English/strings.xml         |    2 +
 plugin.image.iphoto/resources/lib/iphoto_parser.py |    6 +-
 .../LICENSE.txt                                    |    0
 plugin.video.railscasts/addon.py                   |   69 ++++++++++++++++++++
 plugin.video.railscasts/addon.xml                  |   15 ++++
 plugin.video.railscasts/changelog.txt              |    9 +++
 plugin.video.railscasts/icon.png                   |  Bin 0 -> 5333 bytes
 .../resources/__init__.py                          |    0
 .../resources/language/English/strings.xml         |    5 ++
 .../resources/lib}/__init__.py                     |    0
 plugin.video.sagetv/addon.xml                      |    2 +-
 plugin.video.sagetv/changelog.txt                  |   10 +++
 plugin.video.sagetv/contextmenuactions.py          |   29 +++++++-
 plugin.video.sagetv/default.py                     |   60 +++++++++++++-----
 plugin.video.sagetv/extras/sagex/services/xbmc.js  |   14 ++++
 .../resources/language/English/strings.xml         |    4 +
 plugin.video.sagetv/resources/settings.xml         |    1 +
 21 files changed, 216 insertions(+), 23 deletions(-)
 copy {plugin.video.wdrrockpalast => plugin.video.railscasts}/LICENSE.txt (100%)
 create mode 100755 plugin.video.railscasts/addon.py
 create mode 100644 plugin.video.railscasts/addon.xml
 create mode 100644 plugin.video.railscasts/changelog.txt
 create mode 100644 plugin.video.railscasts/icon.png
 copy {plugin.audio.radio_de => plugin.video.railscasts}/resources/__init__.py 
(100%)
 create mode 100644 
plugin.video.railscasts/resources/language/English/strings.xml
 copy {plugin.audio.radio_de/resources => 
plugin.video.railscasts/resources/lib}/__init__.py (100%)


hooks/post-receive
-- 
Plugins

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_sfd2d_oct
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons

Reply via email to