The branch, dharma has been updated
via d89883d15937f486ba3d248f38c99edfd1fd76ec (commit)
from e0720eae0168328179d3a5a331f86864c42a07d5 (commit)
- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=d89883d15937f486ba3d248f38c99edfd1fd76ec
commit d89883d15937f486ba3d248f38c99edfd1fd76ec
Author: spiff <[email protected]>
Date: Thu Mar 24 20:22:40 2011 +0100
[plugin.video.xbmcflicks] updated to version 1.0.16
diff --git a/plugin.video.xbmcflicks/addon.xml
b/plugin.video.xbmcflicks/addon.xml
index b787642..68ccd2a 100644
--- a/plugin.video.xbmcflicks/addon.xml
+++ b/plugin.video.xbmcflicks/addon.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="plugin.video.xbmcflicks"
name="XBMC Flicks - Netflix for XBMC"
- version="1.0.15"
+ version="1.0.16"
provider-name="TeamUMX">
<requires>
<import addon="xbmc.python" version="1.0"/>
diff --git a/plugin.video.xbmcflicks/changelog.txt
b/plugin.video.xbmcflicks/changelog.txt
index 4e3d8a8..4519f8a 100644
--- a/plugin.video.xbmcflicks/changelog.txt
+++ b/plugin.video.xbmcflicks/changelog.txt
@@ -8,4 +8,5 @@
1.0.12 - added additional icons for menu items, added option to get new list
with movie or just tv specified, added parental controls options for the Genre
Browse, currently used for Disc's (later for Instant watch)
1.0.13 - added browse by genre to instant watch items, tv shows now appear as
a folder, when opened they display the episdoes
1.0.14 - fixed pathing issues by calling actual paths instead of special://
pathing for addon launch loc
-1.0.15 - fixed issue with tv episodes (when set to expand) would fail to
display (invalid setting for director info)
\ No newline at end of file
+1.0.15 - fixed issue with tv episodes (when set to expand) would fail to
display (invalid setting for director info)
+1.0.16 - fixed issue with tv episodes where some shows would no longer show
any episodes (the format changed from netflix), fixed issue with OSX launching
firefox for initial auth (requires firefox to be installed on your system to
the apps folder)
\ No newline at end of file
diff --git a/plugin.video.xbmcflicks/resources/lib/iqueue.py
b/plugin.video.xbmcflicks/resources/lib/iqueue.py
index 23d1c84..3044e54 100644
--- a/plugin.video.xbmcflicks/resources/lib/iqueue.py
+++ b/plugin.video.xbmcflicks/resources/lib/iqueue.py
@@ -32,7 +32,7 @@ def __init__(self):
self.data = []
def startBrowser(url):
- cmd="open -n '"+url+"'"
+ cmd="open /Applications/Firefox.app '"+url+"'"
print cmd
os.system(cmd)
@@ -805,7 +805,7 @@ def getMovieDataFromFeed(curX, curQueueItem, bIsEpisode,
netflix, instantAvail,
#writeLinkFile(curX.TitleShortLink, curX.Title)
return curX
- matchAllEpData = re.search(r"(?sm){(u'episode_short'.*?)}", curQueueItem,
re.DOTALL | re.MULTILINE)
+ matchAllEpData = re.search(r'(?sm){(u{0,1}[\'"]episode_short[\'"].*?)}',
curQueueItem, re.DOTALL | re.MULTILINE)
if matchAllEpData:
data = matchAllEpData.group(1)
else:
@@ -813,65 +813,77 @@ def getMovieDataFromFeed(curX, curQueueItem, bIsEpisode,
netflix, instantAvail,
foundMatch = False
#if still processing, we want to auto-expand the episode lets add the
folder, and then parse the episodes into that folder
- for matchAllEp in re.finditer(r"(?sm){(u'episode_short'.*?)}",
curQueueItem):
+ for matchAllEp in re.finditer('(?sm)(u{0,1}[\'"]episode_short[\'"].*?)}',
curQueueItem):
foundMatch = True
- reobj = re.compile('u\'episode_short\':
u[\'"](?P<shorttitle>.*?)[\'"], u\'sequence\': (?P<eNum>\\d{1,3}), u\'id\':
u\'(?P<link>.*?)\', u\'title\': u\'(?P<title>.*)}', re.DOTALL)
- matchAllEpisodes = reobj.search(matchAllEp.group())
- if matchAllEpisodes:
- curXe = XInfo()
- curXe.Mpaa = curX.Mpaa
- curXe.Position = curX.Position
- curXe.Year = curX.Year
- curXe.Rating = curX.Rating
- curXe.Runtime = "0"
- curXe.Genres = curX.Genres
- curXe.Directors = curX.Directors
- curXe.FullId = ""
- curXe.Poster = curX.Poster
- curXe.Cast = curX.Cast
-
- curXe.Title = matchAllEpisodes.group("title")
- curXe.Synop = curXe.Title + "\n\n" + curX.Synop
- curXe.TvEpisodeEpisodeNum = matchAllEpisodes.group("eNum")
- if re.search(r"Episode", curQueueItem, re.DOTALL | re.MULTILINE):
- if(not forceExpand):
- curXe.TitleShort = curX.TitleShort + " " +
matchAllEpisodes.group("shorttitle")
- else:
- curXe.TitleShort = matchAllEpisodes.group("shorttitle")
- else:
- if(not forceExpand):
- curXe.TitleShort = curX.TitleShort + " " + "Episode: " +
curXe.TvEpisodeEpisodeNum + " " + matchAllEpisodes.group("shorttitle")
- else:
- curXe.TitleShort = "Episode: " + curXe.TvEpisodeEpisodeNum
+ " - " + matchAllEpisodes.group("shorttitle")
-
- curXe.TvShow = True
- curXe.TvShowLink = curX.TvShowLink
- curXe.TvShowSeasonID = curX.TvShowSeasonID
- curXe.TvShowSeriesID = curX.TvShowSeriesID
- curXe.TvEpisode = True
- curXe.TvEpisodeNetflixID = matchAllEpisodes.group("link")
+ curXe = XInfo()
+ curXe.Mpaa = curX.Mpaa
+ curXe.Position = curX.Position
+ curXe.Year = curX.Year
+ curXe.Rating = curX.Rating
+ curXe.Runtime = "0"
+ curXe.Genres = curX.Genres
+ curXe.Directors = curX.Directors
+ curXe.FullId = ""
+ curXe.Poster = curX.Poster
+ curXe.Cast = curX.Cast
+
+ matchTitle = re.search('(?sm)u{0,1}[\'"]title[\'"]:
u{0,1}[\'"](?P<title>.*?)[\'"],', matchAllEp.group())
+ if matchTitle:
+ curXe.Title = str(matchTitle.group("title"))
+
+ curXe.Synop = curXe.Title + "\n\n" + curX.Synop
+
+ matchEpNum = re.search('(?sm)u{0,1}[\'"]sequence[\'"]:
u{0,1}(?P<episodeNum>\\d{1,3})', matchAllEp.group())
+ if matchEpNum:
+ curXe.TvEpisodeEpisodeNum = str(matchEpNum.group("episodeNum"))
+
+ matchShortTitle = re.search('(?sm)u{0,1}[\'"]episode_short[\'"]:
u{0,1}[\'"](?P<shorttitle>.*?)[\'"],', matchAllEp.group())
+ if matchShortTitle:
+ shortTitleString = str(matchShortTitle.group("shorttitle"))
- curXe.TvEpisodeEpisodeSeasonNum = 0
- curXe.IsInstantAvailable = curX.IsInstantAvailable
- curXe.MaturityLevel = curX.MaturityLevel
- curXe.AvailableUntil = curX.AvailableUntil
- curXe.TvEpisodeEpisodeNum = matchAllEpisodes.group("eNum")
- curXe.TvEpisodeEpisodeSeasonNum = matchAllEpisodes.group("title")
-
- matchAllEpisodesRealID =
re.search(r"http://api.netflix.com/catalog/titles/programs/\d{1,15}/(?P<id>\d{1,15})",
curXe.TvEpisodeNetflixID, re.DOTALL | re.MULTILINE)
- if matchAllEpisodesRealID:
- curXe.ID = matchAllEpisodesRealID.group("id").strip()
- curXe.TitleShortLink = curXe.ID
- curXe.TitleShortLink.strip()
- #add and write file
- ciName2 = str(curXe.TitleShortLink + '.html')
- ciPath2 = str(REAL_LINK_PATH)
- ciFullPath2 = os.path.join(ciPath2, ciName2 )
- addLink(curXe.TitleShort, ciFullPath2, curXe, curX.ID)
- writeLinkFile(curXe.TitleShortLink, curXe.Title)
+ if re.search(r"Episode", curQueueItem, re.DOTALL | re.MULTILINE):
+ if(not forceExpand):
+ curXe.TitleShort = curX.TitleShort + " " + shortTitleString
+ else:
+ curXe.TitleShort = shortTitleString
+ else:
+ if(not forceExpand):
+ curXe.TitleShort = curX.TitleShort + " " + "Episode: " +
curXe.TvEpisodeEpisodeNum + " " + shortTitleString
else:
- #don't add it
- print "not adding episode, couldn't parse id"
+ curXe.TitleShort = "Episode: " + curXe.TvEpisodeEpisodeNum + "
- " + shortTitleString
+
+ curXe.TvShow = True
+ curXe.TvShowLink = curX.TvShowLink
+ curXe.TvShowSeasonID = curX.TvShowSeasonID
+ curXe.TvShowSeriesID = curX.TvShowSeriesID
+ curXe.TvEpisode = True
+
+ matchNetflixID = re.search('(?sm)u{0,1}[\'"]id[\'"]:
u{0,1}[\'"](?P<mgid>.*?)[\'"],', matchAllEp.group())
+ if matchNetflixID:
+ curXe.TvEpisodeNetflixID = str(matchNetflixID.group("mgid"))
+
+ curXe.TvEpisodeEpisodeSeasonNum = 0
+ curXe.IsInstantAvailable = curX.IsInstantAvailable
+ curXe.MaturityLevel = curX.MaturityLevel
+ curXe.AvailableUntil = curX.AvailableUntil
+ #curXe.TvEpisodeEpisodeNum = matchAllEpisodes.group("eNum")
+ #curXe.TvEpisodeEpisodeSeasonNum = matchAllEpisodes.group("title")
+
+ matchAllEpisodesRealID =
re.search(r"http://api.netflix.com/catalog/titles/programs/\d{1,15}/(?P<id>\d{1,15})",
curXe.TvEpisodeNetflixID, re.DOTALL | re.MULTILINE)
+ if matchAllEpisodesRealID:
+ curXe.ID = matchAllEpisodesRealID.group("id").strip()
+ curXe.TitleShortLink = curXe.ID
+ curXe.TitleShortLink.strip()
+ #add and write file
+ ciName2 = str(curXe.TitleShortLink + '.html')
+ ciPath2 = str(REAL_LINK_PATH)
+ ciFullPath2 = os.path.join(ciPath2, ciName2 )
+ addLink(curXe.TitleShort, ciFullPath2, curXe, curX.ID)
+ writeLinkFile(curXe.TitleShortLink, curXe.Title)
+ else:
+ #don't add it
+ print "not adding episode, couldn't parse id"
+
if (not foundMatch):
#this is to cover those tv shows that are just a single episode
ciName = str(curX.TitleShortLink + '.html')
@@ -880,7 +892,7 @@ def getMovieDataFromFeed(curX, curQueueItem, bIsEpisode,
netflix, instantAvail,
addLink(curX.TitleShort,ciFullPath, curX)
#write the link file
writeLinkFile(curX.TitleShortLink, curX.Title)
- #xbmcplugin.endOfDirectory(int(sys.argv[1]))
+
return curX
def addDir(name,url,mode,iconimage,data):
-----------------------------------------------------------------------
Summary of changes:
plugin.video.xbmcflicks/addon.xml | 2 +-
plugin.video.xbmcflicks/changelog.txt | 3 +-
plugin.video.xbmcflicks/resources/lib/iqueue.py | 130 ++++++++++++----------
3 files changed, 74 insertions(+), 61 deletions(-)
hooks/post-receive
--
Plugins
------------------------------------------------------------------------------
Enable your software for Intel(R) Active Management Technology to meet the
growing manageability and security demands of your customers. Businesses
are taking advantage of Intel(R) vPro (TM) technology - will your software
be a part of the solution? Download the Intel(R) Manageability Checker
today! http://p.sf.net/sfu/intel-dev2devmar
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons