The branch, frodo has been updated
       via  0d6437ebdef3a567c32a9342da34891fbce4976f (commit)
      from  26d3c73f4f4e20dc8ebcec4382c5240bcfd119fb (commit)

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

commit 0d6437ebdef3a567c32a9342da34891fbce4976f
Author: Martijn Kaijser <[email protected]>
Date:   Tue Nov 26 08:08:23 2013 +0100

    [script.filecleaner] 3.2.0

diff --git a/script.filecleaner/addon.xml b/script.filecleaner/addon.xml
index a58ea48..0a3115d 100644
--- a/script.filecleaner/addon.xml
+++ b/script.filecleaner/addon.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<addon id="script.filecleaner" name="XBMC File Cleaner" version="3.1.0" 
provider-name="Anthirian">
+<addon id="script.filecleaner" name="XBMC File Cleaner" version="3.2.0" 
provider-name="Anthirian, drewzh">
     <requires>
         <import addon="xbmc.python" version="2.1.0"/>
         <import addon="xbmc.json" version="6.0.0"/>
@@ -12,6 +12,8 @@ This addon has the potential to wipe your entire video 
collection! Please make s
 
 [B][I]DESCRIPTION[/I][/B]
 This addon will automatically scan your library for watched movies, TV show 
episodes and music videos, and delete them from the file system based on 
numerous critia such as age, rating, free disk space, etc. All these options 
and more can be configured via the addon's settings. Also make sure you set the 
correct path to the disk you wish to check for free space, especially when you 
store your videos on a secondary drive or a network share.
+
+Original Developer: drewzh ([email protected])
         </description>
         <summary lang="nl">Verwijdert regelmatig oude films, afleveringen van 
TV-series en videoclips</summary>
         <description lang="nl">[B][I]LEES DIT VOOR JE VERDER GAAT[/I][/B]
@@ -19,6 +21,8 @@ Deze addon kan in een keer je hele videocollectie 
verwijderen! Zorg dat je preci
 
 [B][I]BESCHRIJVING[/I][/B]
 Deze addon zal automatisch de videobibliotheek scannen op zoek naar bekeken 
films, afleveringen van TV-series en videoclips, en deze van de harde schijf 
verwijderen met inachtneming van verscheidene criteria, zoals leeftijd, cijfer, 
vrije harde schijfruimte, etc. Al deze opties, en andere, zijn in te stellen 
via het optiesmenu van de addon. Let er daarbij ook op dat je het juiste pad 
instelt naar de schijf die je wil gebruiken voor het controleren van de vrije 
schijfruimte, met name als je videocollectie op een andere harde schijf staat 
of op een netwerkshare.
+
+Oorspronkelijke ontwikkelaar: drewzh ([email protected])
         </description>
         <disclaimer lang="en">It is recommended to not delete videos 
permanently until you are familiar with all of the settings.</disclaimer>
         <disclaimer lang="nl">Het is verstandig om videos pas permanent te 
verwijderen als je bekend bent met alle instellingen.</disclaimer>
diff --git a/script.filecleaner/changelog.txt b/script.filecleaner/changelog.txt
index 87eb310..06bdbea 100644
--- a/script.filecleaner/changelog.txt
+++ b/script.filecleaner/changelog.txt
@@ -1,3 +1,7 @@
+Version 3.2.0
+==============
+- New option to delete related files with similar names (e.g. subtitles) 
(thanks WoLpH)
+
 Version 3.1.0
 ===============
 - New option to exclude up to three file paths from being modified
diff --git a/script.filecleaner/default.py b/script.filecleaner/default.py
index 3a258a9..bda4357 100644
--- a/script.filecleaner/default.py
+++ b/script.filecleaner/default.py
@@ -357,6 +357,7 @@ class Cleaner:
         self.cleaner_enabled = bool(__settings__.getSetting("cleaner_enabled") 
== "true")
         self.delete_folders = bool(__settings__.getSetting("delete_folders") 
== "true")
         self.ignore_extensions = 
str(__settings__.getSetting("ignore_extensions"))
+        self.delete_related = bool(__settings__.getSetting("delete_related") 
== " true")
         self.delayed_start = float(__settings__.getSetting("delayed_start"))
         self.scan_interval = float(__settings__.getSetting("scan_interval"))
 
@@ -479,7 +480,7 @@ class Cleaner:
                     self.debug("We are dealing with network paths")
                     self.debug("Extracting information from share %s" % path)
 
-                    regex = 
"(?P<type>smb|nfs|afp)://(?P<user>\w+):(?P<pass>.+)@(?P<host>.+?)/(?P<share>.+?)/"
+                    regex = 
"(?P<type>smb|nfs|afp)://(?:(?P<user>.+):(?P<pass>.+)@)?(?P<host>.+?)/(?P<share>.+?).*$"
                     pattern = re.compile(regex, flags=re.I | re.U)
                     match = pattern.match(path)
                     try:
@@ -493,7 +494,7 @@ class Cleaner:
                     self.debug("Creating UNC paths so Windows understands the 
shares")
                     path = os.path.normcase(r"\\" + share["host"] + os.sep + 
share["share"])
                     self.debug("UNC path: %s" % path)
-                    self.debug("If checks fail because you need credentials, 
please mount the drive first")
+                    self.debug("If checks fail because you need credentials, 
please mount the share first")
                 else:
                     self.debug("We are dealing with local paths")
 
@@ -559,6 +560,17 @@ class Cleaner:
             return False
 
         if xbmcvfs.exists(location):
+            if self.delete_related:
+                path, name = os.path.split(location)
+                name, _ = os.path.splitext(name)
+
+                for extra_file in xbmcvfs.listdir(path)[1]:
+                    if extra_file.startswith(name):
+                        extra_file_path = os.path.join(path, extra_file)
+                        if extra_file_path != location:
+                            self.debug('Deleting %r' % extra_file_path)
+                            xbmcvfs.delete(extra_file_path)
+
             return xbmcvfs.delete(location)
         else:
             self.debug("XBMC could not find the file at %s" % location, 
xbmc.LOGERROR)
@@ -674,6 +686,21 @@ class Cleaner:
                     return self.delete_file(source)
             else:
                 self.debug("Moving %s\nto %s\nNew path: %s" % (source, 
dest_folder, new_path))
+                if self.delete_related:
+                    path, name = os.path.split(source)
+                    name, ext = os.path.splitext(name)
+
+                    for extra_file in xbmcvfs.listdir(path)[1]:
+                        if extra_file.startswith(name):
+                            extra_file_path = os.path.join(path, extra_file)
+                            new_extra_path = os.path.join(
+                                dest_folder, os.path.basename(extra_file))
+
+                            if new_extra_path != new_path:
+                                self.debug('Renaming %r to %r' % (
+                                    extra_file_path, new_extra_path))
+                                xbmcvfs.rename(extra_file_path, new_extra_path)
+
                 return xbmcvfs.rename(source, new_path)
         else:
             self.debug("XBMC could not find the file at %s" % source, 
xbmc.LOGWARNING)
diff --git a/script.filecleaner/resources/language/Dutch/strings.xml 
b/script.filecleaner/resources/language/Dutch/strings.xml
index 826df0a..db2ef96 100644
--- a/script.filecleaner/resources/language/Dutch/strings.xml
+++ b/script.filecleaner/resources/language/Dutch/strings.xml
@@ -20,9 +20,10 @@
     <string id="32108">Verwijder TV series</string>
     <string id="32109">Verwijder videoclips</string>
 
-    <string id="32110">XBMC videobibliotheek opschonen na schoonmaken</string>
-    <string id="32111">Verwijder lege mappen na schoonmaken</string>
+    <string id="32110">XBMC videobibliotheek opschonen na afloop</string>
+    <string id="32111">Verwijder tevens lege mappen</string>
     <string id="32112">Negeer bestanden met de volgende extensies (scheiden 
met komma's)</string>
+    <string id="32113">Verwijder tevens bestanden met vergelijkbare namen (bv. 
ondertitels)</string>
 
     <!-- Frequentietabblad -->
     <string id="32201">[B]Wanneer moeten bekeken videos verwijderd 
worden?[/B]</string>
diff --git a/script.filecleaner/resources/language/English/strings.xml 
b/script.filecleaner/resources/language/English/strings.xml
index 551883d..bbbc534 100644
--- a/script.filecleaner/resources/language/English/strings.xml
+++ b/script.filecleaner/resources/language/English/strings.xml
@@ -20,9 +20,10 @@
     <string id="32108">Delete TV shows</string>
     <string id="32109">Delete music videos</string>
 
-    <string id="32110">Clean XBMC video library after cleaning</string>
-    <string id="32111">Delete empty folders after cleaning</string>
+    <string id="32110">Clean XBMC video library afterwards</string>
+    <string id="32111">Also delete empty folders</string>
     <string id="32112">Ignore files with the following extensions (separate 
with commas)</string>
+    <string id="32113">Also delete related files with similar names (e.g. 
subtitles)</string>
 
     <!-- Frequency section -->
     <string id="32201">[B]When should watched videos be deleted?[/B]</string>
diff --git a/script.filecleaner/resources/settings.xml 
b/script.filecleaner/resources/settings.xml
index b9dbc2a..3e76b12 100644
--- a/script.filecleaner/resources/settings.xml
+++ b/script.filecleaner/resources/settings.xml
@@ -19,7 +19,8 @@
 
         <setting label="32110" id="clean_xbmc_library" type="bool" 
default="true" visible="true" />
         <setting label="32111" id="delete_folders" type="bool" default="false" 
visible="true" />
-        <setting label="32112" id="ignore_extensions" type="text" 
default=".nfo, .tbn, .srt, .ass, .srr, .sfv, .nzb" subsetting="true" 
visible="eq(-1,true)" />
+        <setting label="32112" id="ignore_extensions" type="text" 
default=".nfo, .nfo-orig, .tbn, .srt, .ass, .srr, .sfv, .nzb" subsetting="true" 
visible="eq(-1,true)" />
+        <setting label="32113" id="delete_related" type="bool" default="false" 
visible="true" />
     </category>
 
     <!-- Frequency section -->

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

Summary of changes:
 script.filecleaner/.gitignore                      |    3 --
 script.filecleaner/addon.xml                       |    6 +++-
 script.filecleaner/changelog.txt                   |    4 ++
 script.filecleaner/default.py                      |   31 ++++++++++++++++++-
 .../resources/language/Dutch/strings.xml           |    5 ++-
 .../resources/language/English/strings.xml         |    5 ++-
 script.filecleaner/resources/settings.xml          |    3 +-
 7 files changed, 46 insertions(+), 11 deletions(-)
 delete mode 100644 script.filecleaner/.gitignore


hooks/post-receive
-- 
Scripts

------------------------------------------------------------------------------
Shape the Mobile Experience: Free Subscription
Software experts and developers: Be at the forefront of tech innovation.
Intel(R) Software Adrenaline delivers strategic insight and game-changing 
conversations that shape the rapidly evolving mobile landscape. Sign up now. 
http://pubads.g.doubleclick.net/gampad/clk?id=63431311&iu=/4140/ostg.clktrk
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons

Reply via email to