support windows

This commit is contained in:
ed 2020-08-17 21:53:24 +00:00
parent 8a959f6ac4
commit afafc886a4

View file

@ -7,6 +7,7 @@ import gzip
import time import time
import json import json
import socket import socket
import ctypes
from datetime import datetime from datetime import datetime
import calendar import calendar
@ -867,7 +868,7 @@ class HttpCli(object):
if not is_compressed: if not is_compressed:
self.out_headers["Cache-Control"] = "no-cache" self.out_headers["Cache-Control"] = "no-cache"
self.out_headers["Accept-Ranges"] = "bytes" self.out_headers["Accept-Ranges"] = "bytes"
self.send_headers( self.send_headers(
length=upper - lower, length=upper - lower,
@ -1078,10 +1079,10 @@ class HttpCli(object):
break break
srv_info = [] srv_info = []
try: try:
if not self.args.nih: if not self.args.nih:
srv_info.append(str(socket.gethostname()).split('.')[0]) srv_info.append(str(socket.gethostname()).split(".")[0])
except: except:
self.log("#wow #whoa") self.log("#wow #whoa")
pass pass
@ -1089,12 +1090,19 @@ class HttpCli(object):
try: try:
# some fuses misbehave # some fuses misbehave
if not self.args.nid: if not self.args.nid:
sv = os.statvfs(abspath) if WINDOWS:
free = humansize(sv.f_frsize * sv.f_bfree, True) bfree = ctypes.c_ulonglong(0)
total = humansize(sv.f_frsize * sv.f_blocks, True) ctypes.windll.kernel32.GetDiskFreeSpaceExW(
ctypes.c_wchar_p(abspath), None, None, ctypes.pointer(bfree)
srv_info.append(free + " free") )
srv_info.append(total) srv_info.append(humansize(bfree.value) + " free")
else:
sv = os.statvfs(abspath)
free = humansize(sv.f_frsize * sv.f_bfree, True)
total = humansize(sv.f_frsize * sv.f_blocks, True)
srv_info.append(free + " free")
srv_info.append(total)
except: except:
pass pass
@ -1112,7 +1120,7 @@ class HttpCli(object):
prologue=logues[0], prologue=logues[0],
epilogue=logues[1], epilogue=logues[1],
title=html_escape(self.vpath, quote=False), title=html_escape(self.vpath, quote=False),
srv_info='</span> /// <span>'.join(srv_info) srv_info="</span> /// <span>".join(srv_info),
) )
self.reply(html.encode("utf-8", "replace")) self.reply(html.encode("utf-8", "replace"))
return True return True