Skip to content

Commit

Permalink
Merge pull request #52 from Thorfusion/dev
Browse files Browse the repository at this point in the history
finish solder.py
  • Loading branch information
maggi373 authored May 23, 2024
2 parents 75977fe + 9b2c106 commit 67e8fa8
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 16 deletions.
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ solder.py is even compatible with original solder's database, visit the install

## Unfinished Features in dev

+ Hashing mods, partially done
+ Pin your favorite modpacks to your menu!

# Installation/Updating
Expand Down
14 changes: 6 additions & 8 deletions app.py
Original file line number Diff line number Diff line change
Expand Up @@ -217,29 +217,27 @@ def newmodversion(id):
return redirect(url_for("clientlibrary"))

if request.form["rehash_md5"] != "":
# Todo Add filesize rehash, if fails do not update filesize
version = Modversion.get_by_id(request.form["rehash_id"])
version.update_hash(request.form["rehash_md5"])
version.update_hash(request.form["rehash_md5"], request.form["rehash_url"])
else:
# Todo Add filesize rehash, if fails do not update filesize
version = Modversion.get_by_id(request.form["rehash_id"])
t = threading.Thread(target=version.rehash, args=(request.form["rehash_url"],))
t.start()
print(request.form["rehash_id"])
print(request.form["rehash_md5"])
print(request.form["rehash_url"])
if "newmodvermanual_submit" in request.form:
print(request.form["newmodvermanual_md5"])
print(request.form["newmodvermanual_version"])
print(request.form["newmodvermanual_mcversion"])
print(request.form["newmodvermanual_url"])
filesie2 = Modversion.get_file_size(request.form["newmodvermanual_url"])
print(filesie2)
if request.form["newmodvermanual_md5"] != "":
markedbuild="0"
# Todo Add filesize rehash, if fails leave 10 bytes
Modversion.new(request.form[id], request.form["newmodvermanual_version"], request.form["newmodvermanual_mcversion"], request.form["newmodvermanual_md5"], request.form["filesize"], markedbuild)
Modversion.new(id, request.form["newmodvermanual_version"], request.form["newmodvermanual_mcversion"], request.form["newmodvermanual_md5"], filesie2, "0")
else:
markedbuild="0"
# Todo Add filesize rehash and md5 hash, if fails do not add
Modversion.new(request.form[id], request.form["newmodvermanual_version"], request.form["newmodvermanual_mcversion"], request.form["hahsh_md5"], request.form["filesize"], markedbuild)
Modversion.new(id, request.form["newmodvermanual_version"], request.form["newmodvermanual_mcversion"], "0", filesie2, "0", request.form["newmodvermanual_url"])
return redirect(id)


Expand Down
21 changes: 18 additions & 3 deletions models/modversion.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
from .database import Database
import requests
import hashlib
import threading

class Modversion:
def __init__(self, id, mod_id, version, mcversion, md5, created_at, updated_at, filesize, optional=0):
Expand All @@ -16,7 +17,7 @@ def __init__(self, id, mod_id, version, mcversion, md5, created_at, updated_at,
self.optional = optional

@classmethod
def new(cls, mod_id, version, mcversion, md5, filesize, markedbuild):
def new(cls, mod_id, version, mcversion, md5, filesize, markedbuild, url="0"):
conn = Database.get_connection()
cur = conn.cursor(dictionary=True)
now = datetime.datetime.now()
Expand All @@ -27,6 +28,10 @@ def new(cls, mod_id, version, mcversion, md5, filesize, markedbuild):
conn.commit()
if markedbuild is "1":
Modversion.add_modversion_to_selected_build(id, mod_id, "0", "1", "0")
if md5 == "0":
version = Modversion.get_by_id(id)
t = threading.Thread(target=version.rehash, args=(url,))
t.start()
return cls(id, mod_id, version, mcversion, md5, now, now, filesize)

@classmethod
Expand Down Expand Up @@ -83,9 +88,19 @@ def get_all():
return [Modversion(row["id"], row["mod_id"], row["version"], row["mcversion"], row["md5"], row["created_at"], row["updated_at"], row["filesize"]) for row in rows]
return []

def update_hash(self, md5):
def get_file_size(url):
response = requests.head(url) # Only get headers, not content
file_size = int(response.headers.get('content-length', -1)) # Get file size from headers

return file_size
# https://www.classace.io/answers/56cb76718f9932eba6153a625885309b

def update_hash(self, md5, filesize_url):
conn = Database.get_connection()
cur = conn.cursor()
file_size= Modversion.get_file_size(filesize_url)
if file_size != -1:
cur.execute("UPDATE modversions SET filesize = %s WHERE id = %s", (file_size, self.id))
cur.execute("UPDATE modversions SET md5 = %s WHERE id = %s", (md5, self.id))
conn.commit()
self.md5 = md5
Expand All @@ -99,7 +114,7 @@ def rehash(self, rehash_url):
resp = s.get(rehash_url, stream=True)
for chunk in resp.iter_content(chunk_size=8192):
h.update(chunk)
self.update_hash(h.hexdigest())
self.update_hash(h.hexdigest(), rehash_url)

def to_json(self):
return {
Expand Down
5 changes: 2 additions & 3 deletions static/js/solderpy.js
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,9 @@ function submitbuttonpress(id, val, submitid) {
document.querySelector(submit2).click();
}

function submitbuttonpress2(version, mcversion, name, url, urlform, submitid) {
function submitbuttonpress2(version, name, url, urlform, submitid) {
versionname = document.getElementById(version).value;
mcversion = document.getElementById(mcversion).value;
urllink = url + name + '/' + name + '-' + mcversion + '-' + versionname + '.zip';
urllink = url + name + '/' + name + '-' + versionname + '.zip';
document.getElementById(urlform).value = urllink;

submit2 = '[name="' + submitid + '"]';
Expand Down
2 changes: 1 addition & 1 deletion templates/modversion.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<th scope="col">Download URL</th>
<th scope="col">Filesize</th>
<th>
<button type="button" class="btn btn-success tableaddversion" onclick="copyformtext('newmodvermanual_version', 'version');copyformtext('newmodvermanual_mcversion', 'mcversion');copyformtext('newmodvermanual_md5', 'md5');submitbuttonpress2('version', 'mcversion', '{{ mod.name }}', '{{mirror_url}}', 'newmodvermanual_url', 'newmodvermanual_submit')">Add Version</button>
<button type="button" class="btn btn-success tableaddversion" onclick="copyformtext('newmodvermanual_version', 'version');copyformtext('newmodvermanual_mcversion', 'mcversion');copyformtext('newmodvermanual_md5', 'md5');submitbuttonpress2('version', '{{ mod.name }}', '{{mirror_url}}', 'newmodvermanual_url', 'newmodvermanual_submit')">Add Version</button>
</th>
</tr>
</thead>
Expand Down

0 comments on commit 67e8fa8

Please sign in to comment.