pull/64/head
butaixianran 2023-03-14 18:17:09 +08:00
parent e80602463c
commit a4e4c2577e
2 changed files with 39 additions and 11 deletions

View File

@ -168,6 +168,9 @@ From v1.5, v1.x goes into maintenance phase.
Enjoy!
# Change Log
## v1.5.5
* update SHA256 function, now it just use the code from pip
## v1.5.4
* set sys.stdout to utf-8
* Add default header for requests to prevent from being blocked by civitai.

View File

@ -1,10 +1,11 @@
# -*- coding: UTF-8 -*-
import os
import io
import hashlib
import requests
import shutil
version = "1.5.4"
version = "1.5.5"
def_headers = {'User-Agent': 'Mozilla/5.0 (iPad; CPU OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148'}
@ -14,20 +15,44 @@ def printD(msg):
print(f"Civitai Helper: {msg}")
def gen_file_sha256(filname):
printD("Calculate SHA256")
hash_sha256 = hashlib.sha256()
with open(filname, "rb") as f:
# force to use Memory Optimized SHA256
# In case people don't understand this and uncheck it then stuck their system
printD("Using Memory Optimized SHA256")
for chunk in iter(lambda: f.read(4096), b""):
hash_sha256.update(chunk)
def read_chunks(file, size=io.DEFAULT_BUFFER_SIZE):
"""Yield pieces of data from a file-like object until EOF."""
while True:
chunk = file.read(size)
if not chunk:
break
yield chunk
hash_value = hash_sha256.hexdigest()
# Now, hashing use the same way as pip's source code.
def gen_file_sha256(filname):
printD("Use Memory Optimized SHA256")
blocksize=1 << 20
h = hashlib.sha256()
length = 0
with open(filname, 'rb') as f:
for block in read_chunks(f, size=blocksize):
length += len(block)
h.update(block)
hash_value = h.hexdigest()
printD("sha256: " + hash_value)
printD("length: " + str(length))
return hash_value
# def gen_file_sha256(filname):
# printD("Calculate SHA256")
# # force to use Memory Optimized SHA256
# # In case people don't understand this and uncheck it then stuck their system
# printD("Using Memory Optimized SHA256")
# hash_sha256 = hashlib.sha256()
# with open(filname, "rb") as f:
# for chunk in iter(lambda: f.read(4096), b""):
# hash_sha256.update(chunk)
# hash_value = hash_sha256.hexdigest()
# printD("sha256: " + hash_value)
# return hash_value
# get preview image
def download_file(url, path):