Skip to content

Commit afafc88

Browse files
committed
support windows
1 parent 8a959f6 commit afafc88

File tree

1 file changed

+18
-10
lines changed

1 file changed

+18
-10
lines changed

copyparty/httpcli.py

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import time
88
import json
99
import socket
10+
import ctypes
1011
from datetime import datetime
1112
import calendar
1213

@@ -867,7 +868,7 @@ def tx_file(self, req_path):
867868

868869
if not is_compressed:
869870
self.out_headers["Cache-Control"] = "no-cache"
870-
871+
871872
self.out_headers["Accept-Ranges"] = "bytes"
872873
self.send_headers(
873874
length=upper - lower,
@@ -1078,23 +1079,30 @@ def tx_browser(self):
10781079
break
10791080

10801081
srv_info = []
1081-
1082+
10821083
try:
10831084
if not self.args.nih:
1084-
srv_info.append(str(socket.gethostname()).split('.')[0])
1085+
srv_info.append(str(socket.gethostname()).split(".")[0])
10851086
except:
10861087
self.log("#wow #whoa")
10871088
pass
10881089

10891090
try:
10901091
# some fuses misbehave
10911092
if not self.args.nid:
1092-
sv = os.statvfs(abspath)
1093-
free = humansize(sv.f_frsize * sv.f_bfree, True)
1094-
total = humansize(sv.f_frsize * sv.f_blocks, True)
1095-
1096-
srv_info.append(free + " free")
1097-
srv_info.append(total)
1093+
if WINDOWS:
1094+
bfree = ctypes.c_ulonglong(0)
1095+
ctypes.windll.kernel32.GetDiskFreeSpaceExW(
1096+
ctypes.c_wchar_p(abspath), None, None, ctypes.pointer(bfree)
1097+
)
1098+
srv_info.append(humansize(bfree.value) + " free")
1099+
else:
1100+
sv = os.statvfs(abspath)
1101+
free = humansize(sv.f_frsize * sv.f_bfree, True)
1102+
total = humansize(sv.f_frsize * sv.f_blocks, True)
1103+
1104+
srv_info.append(free + " free")
1105+
srv_info.append(total)
10981106
except:
10991107
pass
11001108

@@ -1112,7 +1120,7 @@ def tx_browser(self):
11121120
prologue=logues[0],
11131121
epilogue=logues[1],
11141122
title=html_escape(self.vpath, quote=False),
1115-
srv_info='</span> /// <span>'.join(srv_info)
1123+
srv_info="</span> /// <span>".join(srv_info),
11161124
)
11171125
self.reply(html.encode("utf-8", "replace"))
11181126
return True

0 commit comments

Comments
 (0)