Skip to content

Commit

Permalink
Merge pull request #59 from Thorfusion/dev
Browse files Browse the repository at this point in the history
fix md5 hashing for uploaded jar files
  • Loading branch information
maggi373 authored May 26, 2024
2 parents 26018d0 + 47e4bce commit f669fb2
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 72 deletions.
2 changes: 1 addition & 1 deletion app.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
__version__ = "1.1.2"
__version__ = "1.1.3"

import os
from dotenv import load_dotenv
Expand Down
109 changes: 41 additions & 68 deletions static/js/solderpy.js
Original file line number Diff line number Diff line change
Expand Up @@ -164,9 +164,9 @@ function undisable(id){

function zipfile_mods(modslug, mcversion, modversion, input, verchange) {
// selects the file
let dataSelect = document.getElementById(input);
let datas = dataSelect.files;
let data = datas[0];
dataSelect = document.getElementById(input)
let datas = dataSelect.files
let data = datas[0]

if (verchange == "1") {
// Adds the version number in the file provided to minecraft version and mod version boxes
Expand Down Expand Up @@ -209,77 +209,50 @@ function zipfile_mods(modslug, mcversion, modversion, input, verchange) {
// generates the zipfile
zip.generateAsync({type:"blob"})
.then(function(blob) {
// sets file to blob, ie zip file generated
let file = blob

// hashes file
var reader = new FileReader();
reader.onload = function (event) {
document.getElementById('md5').value = md5(event.target.result)
};
reader.readAsArrayBuffer(file);

// finds the filesize of file
document.getElementById('filesize').value = file.size;

// if download is checked, sends the output to user
if (verchange == "3"){
if (document.getElementById("downloadzip").checked) {
saveAs(file, modslugname + "-" + mcversionname + "-" + modversionname + ".zip");
}
// replaces the submitted file with the new zip file generated by previous code from the original file
let finalfile = new File([file], modslugname + "-" + mcversionname + "-" + modversionname + ".zip",{type:"application/x-zip-compressed", lastModified:new Date().getTime()});

let container = new DataTransfer();
container.items.add(finalfile);

dataSelect.files = container.files;

// hashes file again to be sure
hashmd5()
// https://stackoverflow.com/questions/21892890/is-it-possible-to-replace-a-file-input-with-a-blob

// submits the file using the invisible submit button, so this script can be run and backend see which form was submitted
submit2 = '[name="' + 'form-submit' + '"]';
document.querySelector(submit2).click();
}
zipfile_md5(blob)
});

}
if (data.type == "application/x-zip-compressed") { // if the filetype is detected to be zip
// sets file as data for output
let file = data;
zipfile_md5(data)
document.getElementById("filetypezip").checked = true;
}
}

function zipfile_md5(file) {
document.getElementById('md5').value = "";
// hashes file
var reader = new FileReader();
reader.onload = function (event) {
document.getElementById('md5').value = md5(event.target.result)

};
reader.readAsArrayBuffer(file);
// finds the filesize of file
document.getElementById('filesize').value = file.size;
file2 = file;
}

// hashes file
var reader = new FileReader();
reader.onload = function (event) {
document.getElementById('md5').value = md5(event.target.result)
};
reader.readAsArrayBuffer(file);

// finds the filesize of file
document.getElementById('filesize').value = file.size;

// if download is checked, sends the output to user
if (verchange == "3"){
if (document.getElementById("downloadzip").checked) {
saveAs(file, modslugname + "-" + mcversionname + "-" + modversionname + ".zip");
}
// replaces the submitted file with the new zip file generated by previous code from the original file
let finalfile = new File([file], modslugname + "-" + mcversionname + "-" + modversionname + ".zip",{type:"application/x-zip-compressed", lastModified:new Date().getTime()});

let container = new DataTransfer();
container.items.add(finalfile);
// if download is checked, sends the output to user
function submit_zipfile_mods() {
if (modslugname != "") {

dataSelect.files = container.files;
if (document.getElementById("downloadzip").checked) {
saveAs(file2, modslugname + "-" + mcversionname + "-" + modversionname + ".zip");
}
// replaces the submitted file with the new zip file generated by previous code from the original file
let finalfile = new File([file2], modslugname + "-" + mcversionname + "-" + modversionname + ".zip",{type:"application/x-zip-compressed", lastModified:new Date().getTime()});

// hashes file again to be sure
hashmd5()
// https://stackoverflow.com/questions/21892890/is-it-possible-to-replace-a-file-input-with-a-blob
let container = new DataTransfer();
container.items.add(finalfile);

// submits the file using the invisible submit button, so this script can be run and backend see which form was submitted
submit2 = '[name="' + 'form-submit' + '"]';
document.querySelector(submit2).click();
}
document.getElementById("filetypezip").checked = true;
dataSelect.files = container.files;

// https://stackoverflow.com/questions/21892890/is-it-possible-to-replace-a-file-input-with-a-blob

// submits the file using the invisible submit button, so this script can be run and backend see which form was submitted
}
}
submit2 = '[name="' + 'form-submit' + '"]';
document.querySelector(submit2).click();
}
2 changes: 1 addition & 1 deletion templates/layout.html
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@
</ul>
</nav>
<div class="flex-column flex-shrink-0 p-3 text-white navcontainer2">
<p class="">Version 1.1.2</p>
<p class="">Version 1.1.3</p>
</div>

</div>
Expand Down
4 changes: 2 additions & 2 deletions templates/modlibrary.html
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
<input class="form-control" type="file" id="file" name="file" required onchange="zipfile_mods('mod', 'mcversion', 'version', 'file', '1')">
</div>
<div class="mb-3">
<label for="md5" class="form-label">md5; note that hashing also changes for timestamp</label>
<label for="md5" class="form-label">md5</label>
<input type="text" class="form-control" name="md5" id="md5" readonly>
</div>
<div class="mb-3">
Expand Down Expand Up @@ -94,7 +94,7 @@
<input class="form-check-input" type="checkbox" value="1" id="downloadzip" name="downloadzip" checked>
<label class="form-check-label" for="downloadzip">Download finished zip file?</label>
</div>
<button type="button" class="btn btn-success" onclick="zipfile_mods('mod', 'mcversion', 'version', 'file', '3')">Submit</button>
<button type="button" class="btn btn-success" onclick="submit_zipfile_mods()">Submit</button>
<input class="btn btn-success invisible" type="submit" value="Add Version" name="form-submit" name="form-submit" id="form-submit">
<div class="mb-3">
<input type="text" class="form-control invisible" name="modid" id="modid" readonly>
Expand Down

0 comments on commit f669fb2

Please sign in to comment.