7
7
import time
8
8
import json
9
9
import socket
10
+ import ctypes
10
11
from datetime import datetime
11
12
import calendar
12
13
@@ -867,7 +868,7 @@ def tx_file(self, req_path):
867
868
868
869
if not is_compressed :
869
870
self .out_headers ["Cache-Control" ] = "no-cache"
870
-
871
+
871
872
self .out_headers ["Accept-Ranges" ] = "bytes"
872
873
self .send_headers (
873
874
length = upper - lower ,
@@ -1078,23 +1079,30 @@ def tx_browser(self):
1078
1079
break
1079
1080
1080
1081
srv_info = []
1081
-
1082
+
1082
1083
try :
1083
1084
if not self .args .nih :
1084
- srv_info .append (str (socket .gethostname ()).split ('.' )[0 ])
1085
+ srv_info .append (str (socket .gethostname ()).split ("." )[0 ])
1085
1086
except :
1086
1087
self .log ("#wow #whoa" )
1087
1088
pass
1088
1089
1089
1090
try :
1090
1091
# some fuses misbehave
1091
1092
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 )
1098
1106
except :
1099
1107
pass
1100
1108
@@ -1112,7 +1120,7 @@ def tx_browser(self):
1112
1120
prologue = logues [0 ],
1113
1121
epilogue = logues [1 ],
1114
1122
title = html_escape (self .vpath , quote = False ),
1115
- srv_info = ' </span> /// <span>' .join (srv_info )
1123
+ srv_info = " </span> /// <span>" .join (srv_info ),
1116
1124
)
1117
1125
self .reply (html .encode ("utf-8" , "replace" ))
1118
1126
return True
0 commit comments