mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
added image compression - still broken
This commit is contained in:
parent
2cc925bbd5
commit
dc0fc959ad
4 changed files with 107 additions and 6 deletions
34
gui/main.js
34
gui/main.js
|
@ -511,6 +511,40 @@ ipcMain.on("select-file", (event, data) => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//select file
|
||||||
|
ipcMain.on("select-user-image", (event, data) => {
|
||||||
|
dialog
|
||||||
|
.showOpenDialog({
|
||||||
|
defaultPath: path.join(__dirname, "../"),
|
||||||
|
buttonLabel: "Select file",
|
||||||
|
properties: ["openFile"],
|
||||||
|
})
|
||||||
|
.then((filepath) => {
|
||||||
|
console.log(filepath.filePaths[0]);
|
||||||
|
|
||||||
|
try {
|
||||||
|
//fs.readFile(filepath.filePaths[0], 'utf8', function (err, data) {
|
||||||
|
//Has to be binary
|
||||||
|
fs.readFile(filepath.filePaths[0], "binary", function (err, data) {
|
||||||
|
console.log(data.length);
|
||||||
|
|
||||||
|
var filename = path.basename(filepath.filePaths[0]);
|
||||||
|
var mimeType = mime.getType(filename);
|
||||||
|
console.log(mimeType);
|
||||||
|
if (mimeType == "" || mimeType == null) {
|
||||||
|
mimeType = "plain/text";
|
||||||
|
}
|
||||||
|
chat.webContents.send("return-select-user-image", {
|
||||||
|
data: data,
|
||||||
|
mime: mimeType,
|
||||||
|
filename: filename,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
//save file to folder
|
//save file to folder
|
||||||
ipcMain.on("save-file-to-folder", (event, data) => {
|
ipcMain.on("save-file-to-folder", (event, data) => {
|
||||||
console.log(data.file);
|
console.log(data.file);
|
||||||
|
|
|
@ -35,6 +35,7 @@
|
||||||
"bootstrap": "^5.2.3",
|
"bootstrap": "^5.2.3",
|
||||||
"bootstrap-icons": "^1.10.3",
|
"bootstrap-icons": "^1.10.3",
|
||||||
"bootswatch": "^5.2.3",
|
"bootswatch": "^5.2.3",
|
||||||
|
"browser-image-compression": "^2.0.0",
|
||||||
"chart.js": "^4.2.1",
|
"chart.js": "^4.2.1",
|
||||||
"chartjs-plugin-annotation": "^2.1.2",
|
"chartjs-plugin-annotation": "^2.1.2",
|
||||||
"electron-log": "^4.4.8",
|
"electron-log": "^4.4.8",
|
||||||
|
@ -53,9 +54,9 @@
|
||||||
"uuid": "^9.0.0"
|
"uuid": "^9.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@electron/notarize": "^1.2.3",
|
||||||
"electron": "^23.0.0",
|
"electron": "^23.0.0",
|
||||||
"electron-builder": "^23.6.0",
|
"electron-builder": "^23.6.0",
|
||||||
"@electron/notarize": "^1.2.3",
|
|
||||||
"electron-builder-notarize": "^1.5.1"
|
"electron-builder-notarize": "^1.5.1"
|
||||||
},
|
},
|
||||||
"build": {
|
"build": {
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
const path = require("path");
|
const path = require("path");
|
||||||
const { ipcRenderer } = require("electron");
|
const { ipcRenderer } = require("electron");
|
||||||
const { v4: uuidv4 } = require("uuid");
|
const { v4: uuidv4 } = require("uuid");
|
||||||
|
const imageCompression = require("browser-image-compression");
|
||||||
|
|
||||||
|
|
||||||
// https://stackoverflow.com/a/26227660
|
// https://stackoverflow.com/a/26227660
|
||||||
var appDataFolder =
|
var appDataFolder =
|
||||||
process.env.APPDATA ||
|
process.env.APPDATA ||
|
||||||
|
@ -70,17 +73,20 @@ var users = new PouchDB(userDB);
|
||||||
createChatIndex();
|
createChatIndex();
|
||||||
createUserIndex();
|
createUserIndex();
|
||||||
|
|
||||||
/*
|
|
||||||
// REMOTE SYNC ATTEMPTS
|
// REMOTE SYNC ATTEMPTS
|
||||||
|
|
||||||
|
|
||||||
var remoteDB = new PouchDB('http://172.20.10.4:5984/chatDB')
|
//var remoteDB = new PouchDB('http://172.20.10.4:5984/chatDB')
|
||||||
|
/*
|
||||||
// we need express packages for running pouchdb sync "express-pouchdb"
|
// we need express packages for running pouchdb sync "express-pouchdb"
|
||||||
var express = require('express');
|
var express = require('express');
|
||||||
var app = express();
|
var app = express();
|
||||||
//app.use('/chatDB', require('express-pouchdb')(PouchDB));
|
app.use('/chatDB', require('express-pouchdb')(PouchDB));
|
||||||
//app.listen(5984);
|
app.listen(5984);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
app.use('/chatDB', require('pouchdb-express-router')(PouchDB));
|
app.use('/chatDB', require('pouchdb-express-router')(PouchDB));
|
||||||
app.listen(5984);
|
app.listen(5984);
|
||||||
|
@ -371,6 +377,16 @@ window.addEventListener("DOMContentLoaded", () => {
|
||||||
update_chat_obj_by_uuid(uuid);
|
update_chat_obj_by_uuid(uuid);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// open file selector for user image
|
||||||
|
document.getElementById("userImageSelector").addEventListener("click", () => {
|
||||||
|
|
||||||
|
ipcRenderer.send("select-user-image", {
|
||||||
|
title: "Title",
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
// SEND MSG
|
// SEND MSG
|
||||||
document.getElementById("sendMessage").addEventListener("click", () => {
|
document.getElementById("sendMessage").addEventListener("click", () => {
|
||||||
document.getElementById("emojipickercontainer").style.display = "none";
|
document.getElementById("emojipickercontainer").style.display = "none";
|
||||||
|
@ -482,6 +498,50 @@ ipcRenderer.on("return-selected-files", (event, arg) => {
|
||||||
</span>
|
</span>
|
||||||
`;
|
`;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
ipcRenderer.on("return-select-user-image", (event, arg) => {
|
||||||
|
filetype = arg.mime;
|
||||||
|
//console.log(filetype);
|
||||||
|
|
||||||
|
file = arg.data;
|
||||||
|
//filename = arg.filename;
|
||||||
|
|
||||||
|
//console.log(arg.data)
|
||||||
|
|
||||||
|
//document.getElementById("userImage").src = '';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//var imageFile = arg.data;
|
||||||
|
var imageFile = arg.data;
|
||||||
|
console.log(imageFile)
|
||||||
|
|
||||||
|
var options = {
|
||||||
|
maxSizeMB: 1,
|
||||||
|
maxWidthOrHeight: 1920,
|
||||||
|
useWebWorker: true
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
imageCompression(imageFile, options)
|
||||||
|
.then(function (compressedFile) {
|
||||||
|
console.log('compressedFile instanceof Blob', compressedFile instanceof Blob); // true
|
||||||
|
console.log(`compressedFile size ${compressedFile.size / 1024 / 1024} MB`); // smaller than maxSizeMB
|
||||||
|
|
||||||
|
console.log(compressedFile.size);
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
console.log(error.message);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
ipcRenderer.on("action-update-transmission-status", (event, arg) => {
|
ipcRenderer.on("action-update-transmission-status", (event, arg) => {
|
||||||
var data = arg["data"][0];
|
var data = arg["data"][0];
|
||||||
console.log(data.status);
|
console.log(data.status);
|
||||||
|
|
|
@ -34,6 +34,10 @@
|
||||||
<script
|
<script
|
||||||
type="module"
|
type="module"
|
||||||
src="../node_modules/emoji-picker-element/database.js"
|
src="../node_modules/emoji-picker-element/database.js"
|
||||||
|
></script>
|
||||||
|
<script
|
||||||
|
type="module"
|
||||||
|
src="../node_modules/browser-image-compression/dist/browser-image-compression.js"
|
||||||
></script>
|
></script>
|
||||||
<div
|
<div
|
||||||
class="position-absolute container w-100 h-100 bottom-0 end-0 mb-5"
|
class="position-absolute container w-100 h-100 bottom-0 end-0 mb-5"
|
||||||
|
@ -300,10 +304,12 @@
|
||||||
src="img/icon.png"
|
src="img/icon.png"
|
||||||
class="img-fluid rounded-start"
|
class="img-fluid rounded-start"
|
||||||
alt="..."
|
alt="..."
|
||||||
|
id="userImage"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="col position-absolute image-overlay text-white justify-content-center align-items-center d-flex align-middle h-100 bg-dark opacity-0"
|
class="col position-absolute image-overlay text-white justify-content-center align-items-center d-flex align-middle h-100 bg-dark opacity-0"
|
||||||
|
id="userImageSelector"
|
||||||
>
|
>
|
||||||
<i class="bi bi-upload" style="font-size: 2.2rem"></i>
|
<i class="bi bi-upload" style="font-size: 2.2rem"></i>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in a new issue