diff options
author | 2014-12-10 16:54:05 +0100 | |
---|---|---|
committer | 2014-12-10 16:54:05 +0100 | |
commit | 3b64c8c07f2a331db66e6af6b5f617e6630d7b44 (patch) | |
tree | 0b071af35a7677f36895ec1dd8333f4ef56c79d8 /pyload/plugins/addon/MergeFiles.py | |
parent | License cleanup (diff) | |
parent | [CaptchaService] New service AdYouLike + AdsCaptcha detect_key fixup (diff) | |
download | pyload-3b64c8c07f2a331db66e6af6b5f617e6630d7b44.tar.xz |
Merge branch 'stable' into 0.4.10
Conflicts:
module/plugins/hooks/ClickAndLoad.py
module/plugins/internal/CaptchaService.py
pyload/plugins/addon/Checksum.py
pyload/plugins/addon/DownloadScheduler.py
pyload/plugins/addon/ExternalScripts.py
pyload/plugins/addon/ExtractArchive.py
pyload/plugins/addon/IRCInterface.py
pyload/plugins/addon/MergeFiles.py
pyload/plugins/addon/MultiHome.py
pyload/plugins/addon/SkipRev.py
pyload/plugins/addon/UnSkipOnFail.py
pyload/plugins/addon/WindowsPhoneToastNotify.py
pyload/plugins/container/CCF.py
pyload/plugins/hook/BypassCaptcha.py
pyload/plugins/hook/Captcha9kw.py
pyload/plugins/hook/CaptchaBrotherhood.py
pyload/plugins/hook/DeathByCaptcha.py
pyload/plugins/hook/ExpertDecoders.py
pyload/plugins/hook/ImageTyperz.py
pyload/plugins/hoster/DlFreeFr.py
pyload/plugins/internal/OCR.py
Diffstat (limited to 'pyload/plugins/addon/MergeFiles.py')
-rw-r--r-- | pyload/plugins/addon/MergeFiles.py | 74 |
1 files changed, 41 insertions, 33 deletions
diff --git a/pyload/plugins/addon/MergeFiles.py b/pyload/plugins/addon/MergeFiles.py index 2483135f4..2efc221dc 100644 --- a/pyload/plugins/addon/MergeFiles.py +++ b/pyload/plugins/addon/MergeFiles.py @@ -1,5 +1,7 @@ # -*- coding: utf-8 -*- +from __future__ import with_statement + import os import re @@ -12,7 +14,7 @@ from pyload.utils import safe_join, fs_encode class MergeFiles(Addon): __name__ = "MergeFiles" __type__ = "addon" - __version__ = "0.12" + __version__ = "0.13" __config__ = [("activated", "bool", "Activated", True)] @@ -24,6 +26,11 @@ class MergeFiles(Addon): BUFFER_SIZE = 4096 + #@TODO: Remove in 0.4.10 + def initPeriodical(self): + pass + + def setup(self): # nothing to do pass @@ -48,36 +55,37 @@ class MergeFiles(Addon): for name, file_list in files.iteritems(): self.logInfo(_("Starting merging of"), name) - final_file = open(safe_join(download_folder, name), "wb") - - for splitted_file in file_list: - self.logDebug("Merging part", splitted_file) - pyfile = self.core.files.getFile(fid_dict[splitted_file]) - pyfile.setStatus("processing") - try: - s_file = open(os.path.join(download_folder, splitted_file), "rb") - size_written = 0 - s_file_size = int(os.path.getsize(os.path.join(download_folder, splitted_file))) - - while True: - f_buffer = s_file.read(self.BUFFER_SIZE) - if f_buffer: - final_file.write(f_buffer) - size_written += self.BUFFER_SIZE - pyfile.setProgress((size_written * 100) / s_file_size) - else: - break - - s_file.close() - self.logDebug("Finished merging part", splitted_file) - - except Exception, e: - print_exc() - - finally: - pyfile.setProgress(100) - pyfile.setStatus("finished") - pyfile.release() - - final_file.close() + + final_file = open(save_join(download_folder, name), "wb") + for splitted_file in file_list: + self.logDebug("Merging part", splitted_file) + + pyfile = self.core.files.getFile(fid_dict[splitted_file]) + + pyfile.setStatus("processing") + + try: + with open(os.path.join(download_folder, splitted_file), "rb") as s_file: + size_written = 0 + s_file_size = int(os.path.getsize(os.path.join(download_folder, splitted_file))) + + while True: + f_buffer = s_file.read(self.BUFFER_SIZE) + if f_buffer: + final_file.write(f_buffer) + size_written += self.BUFFER_SIZE + pyfile.setProgress((size_written * 100) / s_file_size) + else: + break + + self.logDebug("Finished merging part", splitted_file) + + except Exception, e: + print_exc() + + finally: + pyfile.setProgress(100) + pyfile.setStatus("finished") + pyfile.release() + self.logInfo(_("Finished merging of"), name) |