Rim
bc03b546c8
Update the new files.json with new resource hashes to allow users to host their own file index and pull from there by adjusting the master in the build. Adding the /data/ folder and files.json to the http fastDL index should pull the correct files
39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
import os
|
|
import hashlib
|
|
import json
|
|
|
|
def calculate_hash(filepath):
|
|
""" Calculate the SHA-1 hash of a file. """
|
|
sha1 = hashlib.sha1()
|
|
with open(filepath, 'rb') as f:
|
|
while True:
|
|
data = f.read(65536) # Read in 64kb chunks
|
|
if not data:
|
|
break
|
|
sha1.update(data)
|
|
return sha1.hexdigest()
|
|
|
|
def scan_directory(directory):
|
|
""" Scan the directory and return file details. """
|
|
files = []
|
|
for root, _, filenames in os.walk(directory):
|
|
for filename in filenames:
|
|
filepath = os.path.join(root, filename)
|
|
file_info = {
|
|
"name": filepath,
|
|
"size": os.path.getsize(filepath),
|
|
"hash": calculate_hash(filepath)
|
|
}
|
|
files.append(file_info)
|
|
return files
|
|
|
|
def main():
|
|
directory = input("Enter the directory path: ")
|
|
files = scan_directory(directory)
|
|
|
|
# Write to files.json
|
|
with open('files1.json', 'w') as json_file:
|
|
json.dump(files, json_file, indent=4)
|
|
|
|
if __name__ == "__main__":
|
|
main() |