summaryrefslogtreecommitdiffstats
path: root/module/plugins/hooks/HotFolder.py
diff options
context:
space:
mode:
Diffstat (limited to 'module/plugins/hooks/HotFolder.py')
-rw-r--r--module/plugins/hooks/HotFolder.py43
1 files changed, 24 insertions, 19 deletions
diff --git a/module/plugins/hooks/HotFolder.py b/module/plugins/hooks/HotFolder.py
index b0b59e2ba..f771cf232 100644
--- a/module/plugins/hooks/HotFolder.py
+++ b/module/plugins/hooks/HotFolder.py
@@ -2,10 +2,9 @@
from __future__ import with_statement
+import os
import time
-from os import listdir, makedirs
-from os.path import exists, isfile, join
from shutil import move
from module.plugins.Hook import Hook
@@ -15,12 +14,12 @@ from module.utils import fs_encode, save_join
class HotFolder(Hook):
__name__ = "HotFolder"
__type__ = "hook"
- __version__ = "0.12"
+ __version__ = "0.14"
- __config__ = [("folder", "str", "Folder to observe", "container"),
- ("watch_file", "bool", "Observe link file", False),
- ("keep", "bool", "Keep added containers", True),
- ("file", "str", "Link file", "links.txt")]
+ __config__ = [("folder" , "str" , "Folder to observe" , "container"),
+ ("watch_file", "bool", "Observe link file" , False ),
+ ("keep" , "bool", "Keep added containers", True ),
+ ("file" , "str" , "Link file" , "links.txt")]
__description__ = """Observe folder and file for changes and add container and links"""
__license__ = "GPLv3"
@@ -28,39 +27,45 @@ class HotFolder(Hook):
def setup(self):
- self.interval = 10
+ self.info = {} #@TODO: Remove in 0.4.10
+ self.interval = 30
def periodical(self):
- folder = fs_encode(self.getConfig("folder"))
+ folder = fs_encode(self.getConfig('folder'))
+ file = fs_encode(self.getConfig('file'))
try:
- if not exists(join(folder, "finished")):
- makedirs(join(folder, "finished"))
+ if not os.path.isdir(os.path.join(folder, "finished")):
+ os.makedirs(os.path.join(folder, "finished"))
- if self.getConfig("watch_file"):
- with open(fs_encode(self.getConfig("file")), "a+") as f:
+ if self.getConfig('watch_file'):
+ with open(file, "a+") as f:
+ f.seek(0)
content = f.read().strip()
if content:
- name = "%s_%s.txt" % (self.getConfig("file"), time.strftime("%H-%M-%S_%d%b%Y"))
+ f = open(file, "wb")
+ f.close()
+
+ name = "%s_%s.txt" % (file, time.strftime("%H-%M-%S_%d%b%Y"))
with open(save_join(folder, "finished", name), "wb") as f:
f.write(content)
self.core.api.addPackage(f.name, [f.name], 1)
- for f in listdir(folder):
- path = join(folder, f)
+ for f in os.listdir(folder):
+ path = os.path.join(folder, f)
- if not isfile(path) or f.endswith("~") or f.startswith("#") or f.startswith("."):
+ if not os.path.isfile(path) or f.endswith("~") or f.startswith("#") or f.startswith("."):
continue
- newpath = join(folder, "finished", f if self.getConfig("keep") else "tmp_" + f)
+ newpath = os.path.join(folder, "finished", f if self.getConfig('keep') else "tmp_" + f)
move(path, newpath)
self.logInfo(_("Added %s from HotFolder") % f)
self.core.api.addPackage(f, [newpath], 1)
- except IOError, e:
+ except (IOError, OSError), e:
self.logError(e)