summaryrefslogtreecommitdiffstats
path: root/pyLoadCore.py
diff options
context:
space:
mode:
authorGravatar spoob <spoob@gmx.de> 2010-03-30 21:33:17 +0200
committerGravatar spoob <spoob@gmx.de> 2010-03-30 21:33:17 +0200
commita0e87b841327426aba3d511f17a28d83aa177d7e (patch)
tree12de6bd23eae194d729562a2bb506f870f8a3fda /pyLoadCore.py
parentclosed #69 (diff)
downloadpyload-a0e87b841327426aba3d511f17a28d83aa177d7e.tar.xz
freespace for windows
Diffstat (limited to 'pyLoadCore.py')
-rwxr-xr-xpyLoadCore.py21
1 files changed, 16 insertions, 5 deletions
diff --git a/pyLoadCore.py b/pyLoadCore.py
index 206363f57..e2682c990 100755
--- a/pyLoadCore.py
+++ b/pyLoadCore.py
@@ -32,6 +32,7 @@ import logging
import logging.handlers
from operator import attrgetter
from os import chdir
+from os import name as platform
from os import execv
from os import makedirs
from os import remove
@@ -260,10 +261,14 @@ class Core(object):
self.file_list.continueAborted()
except:
pass
-
- self.logger.info(_("Free space: %sMB") % self.freeSpace())
- self.thread_list.pause = False
+ freeSpace = self.freeSpace()
+ if freeSpace > 10000:
+ self.logger.info(_("Free space: %sGB") % (freeSpace / 1000))
+ else:
+ self.logger.info(_("Free space: %sMB") % self.freeSpace())
+
+ self.thread_list.pause = False
while True:
sleep(2)
@@ -480,8 +485,14 @@ class Core(object):
return join(self.path, * args)
def freeSpace(self):
- s = statvfs(self.make_path(self.config['general']['download_folder']))
- return s.f_bsize * s.f_bavail / 1024 / 1024 #megabyte
+ folder = self.make_path(self.config['general']['download_folder'])
+ if platform == 'nt':
+ free_bytes = ctypes.c_ulonglong(0)
+ __import__("ctypes").windll.kernel32.GetDiskFreeSpaceExW(ctypes.c_wchar_p(folder), None, None, ctypes.pointer(free_bytes))
+ return free_bytes.value / 1024 / 1024 #megabyte
+ else:
+ s = statvfs(folder)
+ return s.f_bsize * s.f_bavail / 1024 / 1024 #megabyte
####################################
########## XMLRPC Methods ##########