Update v1.0.3

Took 54 minutes
This commit is contained in:
Tobias Hopp 2022-11-28 10:34:13 +01:00
parent 641120f7cc
commit 6ec0f82356
9 changed files with 74 additions and 23 deletions

View File

@ -1,19 +1,49 @@
#!/bin/bash #!/bin/bash
apt update if [ "$EUID" -ne 0 ]
apt install then
echo "Please run as root!"
exit
fi
apt install --no-install-recommends xserver-xorg x11-xserver-utils xinit openbox -y
apt purge nodejs npm -y
curl -fsSL https://deb.nodesource.com/setup_19.x | sudo bash -
apt install -y nodejs
apt install gcc g++ make -y
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
apt update apt update
apt install yarn git cmake make chromium-browser unclutter -y
apt upgrade -y apt install --no-install-recommends ufw xserver-xorg x11-xserver-utils xinit openbox -y
apt install git gcc g++ make cmake chromium-browser unclutter -y
apt purge nodejs npm -y
# XServer
echo "allowed_users=anybody" >/etc/X11/Xwrapper.config echo "allowed_users=anybody" >/etc/X11/Xwrapper.config
cp autostart.config /etc/xdg/openbox/autostart cp autostart.config /etc/xdg/openbox/autostart
# Keys and stuff ---
# Nodejs
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash
# Yarn
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
# MongoDB
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
# End Keys and stuff ---
# Firewall
ufw allow ssh
ufw allow 3000/tcp
ufw allow 3015/tcp
ufw --force enable
# Final update
apt update
apt install nodejs yarn mongodb-org -y
apt upgrade -y
systemctl daemon-reload
systemctl enable mongod
reboot now reboot now

View File

@ -1,6 +1,7 @@
#settings { #settings {
display: grid; display: grid;
grid-template-columns: repeat(4, calc(90% / 4)); grid-template-columns: repeat(4, calc(85% / 4));
grid-template-rows: repeat(5, calc(90% / 5)); grid-template-rows: repeat(4, calc(85% / 4));
grid-gap: 10% 5%; grid-gap: 5% 5%;
width: 100%;
} }

View File

@ -5,4 +5,5 @@ export enum RequestType {
JOB = "JOB", JOB = "JOB",
STARTFILL = "STARTFILL", STARTFILL = "STARTFILL",
STOPFILL = "STOPFILL", STOPFILL = "STOPFILL",
DOWNLOAD_DRINKS = "DOWNLOAD_DRINKS"
} }

View File

@ -1,6 +1,7 @@
import * as dns from "dns"; import * as dns from "dns";
import * as fs from "fs"; import * as fs from "fs";
import * as https from 'https'; import * as https from 'https';
import path from "path";
export class Utils { export class Utils {
public static checkInternet(): Promise<boolean> { public static checkInternet(): Promise<boolean> {
@ -22,7 +23,14 @@ export class Utils {
} }
static downloadImage(url, filepath) { static downloadImage(url, filepath) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
try {
if (!fs.existsSync(path.dirname(filepath)))
fs.mkdirSync(path.dirname(filepath));
} catch (e) {
}
https.get(url, (res) => { https.get(url, (res) => {
if (res.statusCode === 200) { if (res.statusCode === 200) {
res.pipe(fs.createWriteStream(filepath)) res.pipe(fs.createWriteStream(filepath))
@ -38,19 +46,16 @@ export class Utils {
}); });
} }
static deleteImage( id ) static deleteImage(id) {
{
try { try {
fs.unlinkSync("./public/images/" + id + ".png"); fs.unlinkSync("./public/images/" + id + ".png");
} catch( e ) } catch (e) {
{
} }
} }
static checkForImage( id ) static checkForImage(id) {
{
return fs.existsSync("./public/images/" + id + ".png"); return fs.existsSync("./public/images/" + id + ".png");
} }

View File

@ -10,7 +10,7 @@ export class Database {
public static connect(): Promise<void> { public static connect(): Promise<void> {
return new Promise(async (resolve, reject) => { return new Promise(async (resolve, reject) => {
try { try {
await Mongoose.connect("mongodb://localhost:27017/iTender?retryWrites=true"); await Mongoose.connect("mongodb://127.0.0.1:27017/iTender?retryWrites=true");
log("Connected to Database"); log("Connected to Database");
/*if (Mongoose.connection.readyState == Mongoose.ConnectionStates.connected) { /*if (Mongoose.connection.readyState == Mongoose.ConnectionStates.connected) {
resolve(); resolve();

View File

@ -357,11 +357,12 @@ export class iTender {
// Download thumbnail // Download thumbnail
if (!Utils.checkForImage(remote._id)) { if (!Utils.checkForImage(remote._id)) {
let url = "https://itender.iif.li/images/" + remote._id + ".png";
try { try {
await Utils.downloadImage("https://itender.iif.li/images/" + remote._id + ".png", "./public/images/" + drink._id + ".png") await Utils.downloadImage(url, "./public/images/" + drink._id + ".png")
log("Drink " + remote.name + "'s Thumbnail downloaded"); log("Drink " + remote.name + "'s Thumbnail downloaded");
} catch (e) { } catch (e) {
log("Drink " + remote.name + " failed to download thumbnail!\n" + e); log("Drink " + remote.name + " failed to download thumbnail! (" + url + ") | " + e);
} }
} }

View File

@ -145,6 +145,11 @@ router.ws('/', async (ws, req, next) => {
WebSocketHandler.answerRequest(msg.data["type"] as RequestType, iTender.currentJob); WebSocketHandler.answerRequest(msg.data["type"] as RequestType, iTender.currentJob);
break; break;
} }
case RequestType.DOWNLOAD_DRINKS: {
await iTender.refreshFromServer();
WebSocketHandler.answerRequest(msg.data["type"] as RequestType, "ok");
break;
}
} }
break; break;

View File

@ -102,6 +102,13 @@ function setupOnClickEvents() {
WebWebSocketHandler.request(RequestType.CONTAINERS).then(Setup.onContainerUpdate); WebWebSocketHandler.request(RequestType.CONTAINERS).then(Setup.onContainerUpdate);
// Settings Btns
const downloadDrinks = document.getElementById("settings_refreshDrinks") as HTMLButtonElement;
downloadDrinks.onclick = () => {
WebWebSocketHandler.request(RequestType.DOWNLOAD_DRINKS);
}
} }
function load() { function load() {

View File

@ -54,5 +54,6 @@ block settings
button.btn.btn-primary#settings_refreshDrinks Getränke herunterladen button.btn.btn-primary#settings_refreshDrinks Getränke herunterladen
block main block main
// Main is build dynamically // Main is build dynamically