The branch, frodo has been updated
       via  09ee1433da78a2ce49d5dc9cb4be911f77459355 (commit)
      from  63719ae5a3f290bbd085066637b4c8bc9f931ea4 (commit)

- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/scripts;a=commit;h=09ee1433da78a2ce49d5dc9cb4be911f77459355

commit 09ee1433da78a2ce49d5dc9cb4be911f77459355
Author: Martijn Kaijser <[email protected]>
Date:   Sun Nov 10 16:10:00 2013 +0100

    [script.myepisodes] 1.0.8

diff --git a/script.myepisodes/addon.xml b/script.myepisodes/addon.xml
index 6f5a944..dbce5ba 100644
--- a/script.myepisodes/addon.xml
+++ b/script.myepisodes/addon.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <addon id="script.myepisodes"
        name="MyEpisodes"
-       version="1.0.7"
+       version="1.0.8"
        provider-name="Maxime Hadjinlian">
   <requires>
     <import addon="xbmc.python" version="2.1.0"/>
@@ -12,7 +12,7 @@
     <summary lang="en">MyEpisodes</summary>
     <description lang="en">Automatically set watched episodes on 
MyEpisodes.com</description>
     <platform>all</platform>
-    <language>en fr it pt</language>
+    <language>en fr it pt es</language>
     <forum></forum>
     <website></website>
     <source>https://github.com/maximeh/script.myepisodes</source>
diff --git a/script.myepisodes/changelog.txt b/script.myepisodes/changelog.txt
index 35e136c..dcd161b 100644
--- a/script.myepisodes/changelog.txt
+++ b/script.myepisodes/changelog.txt
@@ -1,3 +1,7 @@
+1.0.8
++ Add an Auto Add shows settings.
++ Fix a memory leak
++ Fix some potential bug
 1.0.7
 + Improve the way to find a TVShow title, thanks to trogdorsmith and
 greek on the MyEpisodes forum for reporting the issue and testing "beta"
diff --git a/script.myepisodes/default.py b/script.myepisodes/default.py
index a3c0b71..d21441a 100644
--- a/script.myepisodes/default.py
+++ b/script.myepisodes/default.py
@@ -64,9 +64,11 @@ class Player(xbmc.Player):
         self._tracker = threading.Thread(target=self._trackPosition)
 
     def _tearDown(self):
-        if self._playbackLock:
+        if hasattr(self, '_playbackLock'):
             self._playbackLock.clear()
         self._monitor = None
+        if not hasattr(self, '_tracker'):
+            return
         if self._tracker is None:
             return
         if self._tracker.isAlive():
@@ -112,12 +114,8 @@ class Player(xbmc.Player):
         # XBMC.Subtitles add-ons)
         self.season = str(xbmc.getInfoLabel("VideoPlayer.Season"))
         log('Player - Season: %s' % self.season)
-        if self.season != "":
-            self.season = int(self.season)
         self.episode = str(xbmc.getInfoLabel("VideoPlayer.Episode"))
         log('Player - Episode: %s' % self.episode)
-        if self.episode != "":
-            self.episode = int(self.episode)
         self.title = xbmc.getInfoLabel("VideoPlayer.TVshowtitle")
         log('Player - TVShow: %s' % self.title)
         if self.title == "":
@@ -127,8 +125,8 @@ class Player(xbmc.Player):
             self.title, self.season, self.episode = self.mye.get_info(filename)
             log('Player - TVShow: %s' % self.title)
 
-        log("Title: %s - Season: %02d - Ep: %02d" % (self.title, self.season, 
self.episode))
-        if (self.season is None) and (self.episode is None):
+        log("Title: %s - Season: %s - Ep: %s" % (self.title, self.season, 
self.episode))
+        if not self.season and not self.episode:
             # It's not a show. If it should be recognised as one. Send a bug.
             self._tearDown()
             return
@@ -138,9 +136,11 @@ class Player(xbmc.Player):
             notif("%s %s" % (self.title, __language__(30923)), time=3000)
             self._tearDown()
             return
-        log('Player - Found : %s - %d (S%02d E%02d)' % (self.title,
+        log('Player - Found : %s - %d (S%s E%s)' % (self.title,
                 self.showid, self.season, self.episode))
-        self._addShow()
+
+        if bool(__addon__.getSetting('auto-add')):
+            self._addShow()
 
     def onPlayBackStopped(self):
         # User stopped the playback
@@ -159,7 +159,7 @@ class Player(xbmc.Player):
         found = 30923
         if self.mye.set_episode_watched(self.showid, self.season, 
self.episode):
             found = 30924
-        notif("%s (%02d - %02d) %s" % (self.title, self.season, self.episode,
+        notif("%s (%s - %s) %s" % (self.title, self.season, self.episode,
             __language__(found)))
 
 def notif(msg, time=5000):
diff --git a/script.myepisodes/resources/language/English/strings.po 
b/script.myepisodes/resources/language/English/strings.po
index 49cf5d3..989d564 100644
--- a/script.myepisodes/resources/language/English/strings.po
+++ b/script.myepisodes/resources/language/English/strings.po
@@ -41,7 +41,11 @@ msgctxt "#30904"
 msgid "Mark as watched from"
 msgstr ""
 
-#empty strings from id 30905 to 30910
+msgctxt "#30905"
+msgid "Automatically add shows"
+msgstr ""
+
+#empty strings from id 30906 to 30910
 
 msgctxt "#30911"
 msgid "connected"
diff --git a/script.myepisodes/resources/language/French/strings.po 
b/script.myepisodes/resources/language/French/strings.po
index 6ef32ff..98cf7f0 100644
--- a/script.myepisodes/resources/language/French/strings.po
+++ b/script.myepisodes/resources/language/French/strings.po
@@ -41,6 +41,10 @@ msgctxt "#30904"
 msgid "Mark as watched from"
 msgstr "Marquer comme vu depuis"
 
+msgctxt "#30905"
+msgid "Automatically add shows"
+msgstr "Ajouter les séries automatiquement"
+
 msgctxt "#30911"
 msgid "connected"
 msgstr "connecté"
diff --git a/script.myepisodes/resources/language/Italian/strings.po 
b/script.myepisodes/resources/language/Italian/strings.po
index 7aeb973..3c6831e 100644
--- a/script.myepisodes/resources/language/Italian/strings.po
+++ b/script.myepisodes/resources/language/Italian/strings.po
@@ -41,6 +41,10 @@ msgctxt "#30904"
 msgid "Mark as watched from"
 msgstr "Segnare come guardato da"
 
+msgctxt "#30905"
+msgid "Automatically add shows"
+msgstr "Aggiungere programma automaticamente"
+
 msgctxt "#30911"
 msgid "connected"
 msgstr "collegato"
diff --git a/script.myepisodes/resources/language/Portuguese 
(Brazil)/strings.po b/script.myepisodes/resources/language/Portuguese 
(Brazil)/strings.po
index a087c9e..bb65ca5 100644
--- a/script.myepisodes/resources/language/Portuguese (Brazil)/strings.po       
+++ b/script.myepisodes/resources/language/Portuguese (Brazil)/strings.po       
@@ -41,6 +41,10 @@ msgctxt "#30904"
 msgid "Mark as watched from"
 msgstr "Marcar como visto desde"
 
+msgctxt "#30905"
+msgid "Automatically add shows"
+msgstr "Adicionar programa automaticamente"
+
 msgctxt "#30911"
 msgid "connected"
 msgstr "conectado"
diff --git a/script.myepisodes/resources/language/Spanish/strings.po 
b/script.myepisodes/resources/language/Spanish/strings.po
index 7662c71..5c08806 100644
--- a/script.myepisodes/resources/language/Spanish/strings.po
+++ b/script.myepisodes/resources/language/Spanish/strings.po
@@ -41,6 +41,10 @@ msgctxt "#30904"
 msgid "Mark as watched from"
 msgstr "Marcar como visto a partir del "
 
+msgctxt "#30905"
+msgid "Automatically add shows"
+msgstr ""
+
 msgctxt "#30911"
 msgid "connected"
 msgstr "conectado"
diff --git a/script.myepisodes/resources/lib/myepisodes.py 
b/script.myepisodes/resources/lib/myepisodes.py
index edfbb6c..9cf636a 100644
--- a/script.myepisodes/resources/lib/myepisodes.py
+++ b/script.myepisodes/resources/lib/myepisodes.py
@@ -78,14 +78,7 @@ class MyEpisodes(object):
             self.shows.append(int(showid))
         return True
 
-    def find_show_id(self, show_name):
-        # find a show through its name and report its id
-        search_data = urllib.urlencode({
-            'tvshow' : show_name,
-            'action' : 'Search myepisodes.com',
-            })
-        search_url = "%s/%s" % (MYEPISODE_URL, "search.php")
-        data = self.send_req(search_url, search_data)
+    def find_show_link(self, data, show_name, strict=False):
         if data is None:
             return None
         soup = BeautifulSoup(data)
@@ -94,22 +87,32 @@ class MyEpisodes(object):
         for link in soup.findAll("a", href=True):
             if link.string is None:
                 continue
-            if link.string.lower().startswith(show_name):
-                show_href = link.get('href')
-                break
+            if strict:
+                if link.string.lower() == show_name:
+                    show_href = link.get('href')
+                    break
+            else:
+                if link.string.lower().startswith(show_name):
+                    show_href = link.get('href')
+                    break
+        return show_href
+
+    def find_show_id(self, show_name):
+        # find a show through its name and report its id
+        search_data = urllib.urlencode({
+            'tvshow' : show_name,
+            'action' : 'Search myepisodes.com',
+            })
+        search_url = "%s/%s" % (MYEPISODE_URL, "search.php")
+        data = self.send_req(search_url, search_data)
+        show_href = self.find_show_link(data, show_name)
 
         if show_href is None:
             # Try to lookup the list of all the shows to find the exact title
             list_url = "%s/%s?list=%s" % (MYEPISODE_URL, "shows.php",
                     show_name[0].upper())
             data = self.send_req(list_url)
-            soup = BeautifulSoup(data)
-            show_href = None
-            for link in soup.findAll("a", href=True):
-                if link.string is None:
-                    continue
-                if link.string.lower() == show_name:
-                    show_href = link.get('href')
+            show_href = self.find_show_link(data, show_name, strict=True)
 
         # Really did not find anything :'(
         if show_href is None:
@@ -123,16 +126,22 @@ class MyEpisodes(object):
 
     # This is totally stolen from script.xbmc.subtitles plugin !
     def get_info(self, file_name):
+        title = None
+        episode = None
+        season = None
         for regex in REGEX_EXPRESSIONS:
             response_file = re.findall(regex, file_name)
-            if len(response_file) < 0 :
+            if len(response_file) > 0 :
+                episode = response_file[0][0]
+                season = response_file[0][1]
+            else:
                 continue
             title = re.split(regex, file_name)[0]
             for char in ['[', ']', '_', '(', ')', '.', '-']:
                 title = title.replace(char, ' ')
             title = title.strip()
-            return title, int(response_file[0][0]), int(response_file[0][1])
-        return None
+            return title, season, episode
+        return None, None, None
 
     def add_show(self, show_id):
         # Try to add the show to your account.
@@ -146,7 +155,7 @@ class MyEpisodes(object):
     def set_episode_watched(self, show_id, season, episode):
         pre_url = "%s/myshows.php?action=Update" % MYEPISODE_URL
         seen_url = "%s&showid=%d&season=%02d&episode=%02d&seen=1" % (pre_url,
-                show_id, season, episode)
+                show_id, int(season), int(episode))
         data = self.send_req(seen_url)
         if data is None:
             return False
diff --git a/script.myepisodes/resources/settings.xml 
b/script.myepisodes/resources/settings.xml
index 5ed3b7e..31ec9f8 100644
--- a/script.myepisodes/resources/settings.xml
+++ b/script.myepisodes/resources/settings.xml
@@ -4,4 +4,5 @@
        <setting id="Username" type="text" label="30902" default="" />
        <setting id="Password" type="text" option="hidden" label="30903" 
default="" />
        <setting id="watched-percent" type="labelenum" label="30904" 
default="2" values="70|80|90|100" />
+       <setting id="auto-add" type="bool" label="30905" default="true" />
 </settings>

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

Summary of changes:
 script.myepisodes/addon.xml                        |    4 +-
 script.myepisodes/changelog.txt                    |    4 ++
 script.myepisodes/default.py                       |   20 ++++----
 .../resources/language/English/strings.po          |    6 ++-
 .../resources/language/French/strings.po           |    4 ++
 .../resources/language/Italian/strings.po          |    4 ++
 .../language/Portuguese (Brazil)/strings.po        |    4 ++
 .../resources/language/Spanish/strings.po          |    4 ++
 script.myepisodes/resources/lib/myepisodes.py      |   53 +++++++++++--------
 script.myepisodes/resources/settings.xml           |    1 +
 10 files changed, 69 insertions(+), 35 deletions(-)


hooks/post-receive
-- 
Scripts

------------------------------------------------------------------------------
November Webinars for C, C++, Fortran Developers
Accelerate application performance with scalable programming models. Explore
techniques for threading, error checking, porting, and tuning. Get the most 
from the latest Intel processors and coprocessors. See abstracts and register
http://pubads.g.doubleclick.net/gampad/clk?id=60136231&iu=/4140/ostg.clktrk
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons

Reply via email to