Skip to content

Commit

Permalink
alert messages now auto adjusts message duration
Browse files Browse the repository at this point in the history
  • Loading branch information
ISO53 committed Mar 14, 2024
1 parent 03c41f3 commit de98b7c
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 35 deletions.
44 changes: 22 additions & 22 deletions main.js
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ function openFileSystem(arg) {
}
})
.catch((error) => {
createAlertMessage("warning", "Error reading directories: " + error.message, 7500);
createAlertMessage("warning", "Error reading directories: " + error.message);
});
break;
case "txt":
Expand All @@ -124,7 +124,7 @@ function openFileSystem(arg) {
}
})
.catch((error) => {
createAlertMessage("warning", "Error reading txt: " + error.message, 7500);
createAlertMessage("warning", "Error reading txt: " + error.message);
});
break;
case "tor":
Expand All @@ -143,7 +143,7 @@ function openFileSystem(arg) {
}
})
.catch((error) => {
createAlertMessage("warning", "Error reading media files: " + error.message, 7500);
createAlertMessage("warning", "Error reading media files: " + error.message);
});
break;
default:
Expand Down Expand Up @@ -225,7 +225,7 @@ function readAndParseTxt(filePath) {
});

rl.on("error", (err) => {
createAlertMessage("warning", "Error reading txt: " + err.message, 7500);
createAlertMessage("warning", "Error reading txt: " + err.message);
reject(err);
});
});
Expand All @@ -242,7 +242,7 @@ async function writeFoldersToJson(movieNames) {
const response = await fetch(apiUrl);

if (!response.ok) {
createAlertMessage("warning", `Error fetching details for ${movieName}: ${response.statusText}`, 7500);
createAlertMessage("warning", `Error fetching details for ${movieName}: ${response.statusText}`);
throw new Error(`Error fetching details for ${movieName}: ${response.statusText}`);
}

Expand Down Expand Up @@ -308,7 +308,7 @@ async function writeFoldersToJson(movieNames) {
});
} catch (error) {
console.error("Error writing to JSON file:", error.message);
createAlertMessage("warning", "Error writing to JSON file:", error.message, 7500);
createAlertMessage("warning", "Error writing to JSON file:", error.message);
}
}

Expand All @@ -324,23 +324,23 @@ async function readOmdbApiKeyFromFile() {
fs.readFile(filePath, "utf-8", (err, jsonStr) => {
if (err) {
console.log("Something went wrong trying to read JSON file.");
createAlertMessage("warning", "Error while reading file: " + err.message, 7500);
createAlertMessage("warning", "Error while reading file: " + err.message);
}

let jsonContent;
try {
jsonContent = JSON.parse(jsonStr);
} catch (error) {
console.error("There was an error parsing json file.");
createAlertMessage("warning", "Error while parsing json: " + error.message, 7500);
createAlertMessage("warning", "Error while parsing json: " + error.message);
return;
}

if (jsonContent && jsonContent.key) {
KEY = jsonContent.key;
} else {
console.error("Invalid JSON file format or missing key.");
createAlertMessage("warning", "Invalid JSON file format or missing key.", 7500);
createAlertMessage("warning", "Invalid JSON file format or missing key.");
}
});
}
Expand Down Expand Up @@ -375,7 +375,7 @@ async function downloadImage(url, fileName) {
console.log(`Image downloaded and saved.`);
} catch (error) {
console.error("Error downloading image:", error.message);
createAlertMessage("warning", "Error downloading image: " + error.message, 7500);
createAlertMessage("warning", "Error downloading image: " + error.message);
}
}

Expand All @@ -385,7 +385,7 @@ function movieHandler(arg) {
fs.readFile(path.join(USER_DATA_PATH, "res", "db.json"), "utf-8", (err, data) => {
if (err) {
console.error("Error reading JSON file:", err.message);
createAlertMessage("warning", "Error while reading movie db: " + err.message, 7500);
createAlertMessage("warning", "Error while reading movie db: " + err.message);
return;
}

Expand All @@ -395,7 +395,7 @@ function movieHandler(arg) {
jsonData = JSON.parse(data);
} catch (error) {
console.error("There was an error parsing json file.");
createAlertMessage("warning", "Error while parsing json: " + err.message, 7500);
createAlertMessage("warning", "Error while parsing json: " + err.message);
return;
}

Expand All @@ -413,12 +413,12 @@ function movieHandler(arg) {
// Write modified json to file
fs.writeFileSync(path.join(USER_DATA_PATH, "res", "db.json"), JSON.stringify(jsonData, null, 2));
console.log("Update successful. JSON file has been modified.");
createAlertMessage("success", "Movie has been removed.", 5000);
createAlertMessage("success", "Movie has been removed.");
} else if (opt === "add") {
fetch(`https://www.omdbapi.com/?i=${imdbID}&apikey=${KEY}`)
.then((response) => {
if (!response.ok) {
createAlertMessage("warning", `HTTP error! Status: ${response.status}`, 7500);
createAlertMessage("warning", `HTTP error! Status: ${response.status}`);
throw new Error(`HTTP error! Status: ${response.status}`);
}
return response.json();
Expand All @@ -434,11 +434,11 @@ function movieHandler(arg) {
// Write modified json to file
fs.writeFileSync(path.join(USER_DATA_PATH, "res", "db.json"), JSON.stringify(jsonData, null, 2));
console.log("Update successful. JSON file has been modified.");
createAlertMessage("success", "Movie has been added.", 5000);
createAlertMessage("success", "Movie has been added.");
})
.catch((error) => {
console.error("Error fetching movie details:", error);
createAlertMessage("warning", "Error fetching movie details: " + error.message, 7500);
createAlertMessage("warning", "Error fetching movie details: " + error.message);
});
} else if (opt === "removeWithFileName") {
// Here imdbID variable is actually filename
Expand All @@ -455,11 +455,11 @@ function movieHandler(arg) {
// Write modified json to file
fs.writeFileSync(path.join(USER_DATA_PATH, "res", "db.json"), JSON.stringify(jsonData, null, 2));
console.log("Update successful. JSON file has been modified.");
createAlertMessage("success", "Movie has been removed.", 5000);
createAlertMessage("success", "Movie has been removed.");
}
} catch (parseError) {
console.error("Error parsing JSON:", parseError.message);
createAlertMessage("warning", "Error while parsing json: " + parseError.message, 7500);
createAlertMessage("warning", "Error while parsing json: " + parseError.message);
}
});
}
Expand All @@ -480,9 +480,9 @@ function checkUpdates() {
}

if (releaseData.tag_name !== app.getVersion()) {
console.log("VERSION", app.getVersion());
let releaseDataFormattedbody = marked.parse(releaseData.body);
sendMessageToRenderer("update", releaseDataFormattedbody);
createAlertMessage("info", "There is a new update available!");
} else {
sendMessageToRenderer("update", "no");
}
Expand Down Expand Up @@ -548,13 +548,13 @@ function readFileHandler(arg) {
fs.readFile(filePath, "utf-8", (err, jsonStr) => {
if (err) {
console.error("Error in readFileHandler:", err.message);
createAlertMessage("warning", "Error while reading file: " + err.message, 7500);
createAlertMessage("warning", "Error while reading file: " + err.message);
} else {
sendMessageToRenderer("read-file", JSON.stringify({type: responseType, data: jsonStr}));
}
});
}

function createAlertMessage(type, message, duration) {
sendMessageToRenderer("alert-message", JSON.stringify({type, message, duration}));
function createAlertMessage(type, message) {
sendMessageToRenderer("alert-message", JSON.stringify({type, message}));
}
29 changes: 16 additions & 13 deletions renderer.js
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ function movieDbStatusHandler(status) {
statusElm.innerHTML = "We're nearing completion. Please hold for the final steps.";
} else if (status.startsWith("d")) {
// Done
createAlertMessage("success", "Movie database has been created successfully.", 2500);
createAlertMessage("success", "Movie database has been created successfully.");
statusElm.innerHTML = "The database has been successfully created. You may now close this window.";
progressElm.innerHTML = "";
readMoviesFromFile();
Expand Down Expand Up @@ -453,8 +453,7 @@ function rightMovieSearchButtonListener() {
if (!response.ok) {
createAlertMessage(
"warning",
"HTTP error during fetching movie details. Could be due to internet connection issues or OMDB key problem.",
7500
"HTTP error during fetching movie details. Could be due to internet connection issues or OMDB key problem."
);
throw new Error(`HTTP error! Status: ${response.status}`);
}
Expand All @@ -469,8 +468,7 @@ function rightMovieSearchButtonListener() {
console.error("Fetch error:", error);
createAlertMessage(
"warning",
"HTTP error during fetching movie details. Could be due to internet connection issues or OMDB key problem.",
7500
"HTTP error during fetching movie details. Could be due to internet connection issues or OMDB key problem."
);
});
});
Expand Down Expand Up @@ -516,7 +514,7 @@ function searchMovie(movieData, searchTerm) {
});
} catch (error) {
console.error("Error occured during movie search:", error);
createAlertMessage("info", "Error occured during movie search.", 5000);
createAlertMessage("info", "Error occured during movie search.");
return false;
}
}
Expand Down Expand Up @@ -575,10 +573,10 @@ function readFileHandler(arg) {
listFiltersOnGUI();
setMovies(movies);
listMoviesOnGUI();
createAlertMessage("success", "Movies imported successfully.", 2500);
createAlertMessage("success", "Movies imported successfully.");
} catch (error) {
console.error("There was an error parsing the JSON file that contains movie information.", error.message);
createAlertMessage("info", "Error creating movie database. Movies probably hasn't been fetched yet.", 5000);
createAlertMessage("info", "Error creating movie database. Movies probably hasn't been fetched yet.");
listMoviesOnGUI();
}
break;
Expand All @@ -588,14 +586,14 @@ function readFileHandler(arg) {

if (jsonContent && jsonContent.key) {
KEY = jsonContent.key;
createAlertMessage("success", "OMDB API key setted successfully.", 2500);
createAlertMessage("success", "OMDB API key setted successfully.");
} else {
console.error("Invalid JSON file format or missing key.");
createAlertMessage("info", "Error getting OMDB key. The key probably hasn't been setted yet.", 5000);
createAlertMessage("info", "Error getting OMDB key. The key probably hasn't been setted yet.");
}
} catch (error) {
console.error("There was an error parsing the JSON file that contains api key.", error.message);
createAlertMessage("info", "Error getting OMDB key. The key probably hasn't been setted yet.", 5000);
createAlertMessage("info", "Error getting OMDB key. The key probably hasn't been setted yet.");
return;
}
break;
Expand All @@ -604,12 +602,17 @@ function readFileHandler(arg) {
}
}

function createAlertMessage(type, message, duration) {
function createAlertMessage(type, message) {
if (type !== "warning" && type !== "success" && type !== "info") {
console.error("Alert message type is not valid! Given -> ", type);
return;
}

const averageWordLength = 4.7;
const averageWPMS = 0.3;
const extraTime = 5000;
const duration = (message.length / 4.7) * averageWPMS + extraTime;

// Main div for adding alert messages
const mainMessagesDiv = document.getElementById("alert_messages");

Expand Down Expand Up @@ -657,7 +660,7 @@ function createAlertMessage(type, message, duration) {

function alertMessageHandler(arg) {
const jsonArg = JSON.parse(arg);
createAlertMessage(jsonArg.type, jsonArg.message, jsonArg.duration);
createAlertMessage(jsonArg.type, jsonArg.message);
}

function generateCharts() {
Expand Down

0 comments on commit de98b7c

Please sign in to comment.