mirror of
https://github.com/BreizhHardware/Jellystat.git
synced 2026-01-19 00:37:22 +01:00
New: Added automated tasks for Sync and Backups - Backups run every 24hrs, Sync runs every 10 minutes Added switcher to switch between 12hr/24hr time formats Added sorting to Activity Tables Added Version Checking and indicators Added logging on Tasks + Log Page Added Recently Added view to Home page Added background images to item banners Added Proxy for Device Images in session card Changed Navbar to be a side bar Fixes: Fixed Jellyfin API returning Empty folder as library item CSS File to add breakpoints to bootstrap-width Other: Various CSS changes Temporarily removed Websockets due to Proxy Errors Changed Activity View Playback conversion function to more accurately display Playback Duration Backend changes to sum Playback Durations to show more accurate information in thee collapsed summarized view
44 lines
1.9 KiB
JavaScript
44 lines
1.9 KiB
JavaScript
const GitHub = require('github-api');
|
|
const packageJson = require('../package.json');
|
|
const {compareVersions} =require('compare-versions');
|
|
|
|
async function checkForUpdates() {
|
|
const currentVersion = packageJson.version;
|
|
const repoOwner = 'cyfershepard';
|
|
const repoName = 'Jellystat';
|
|
const gh = new GitHub();
|
|
|
|
let result={current_version: packageJson.version, latest_version:'', message:'', update_available:false};
|
|
|
|
let latestVersion;
|
|
|
|
try {
|
|
const path = 'package.json';
|
|
|
|
const response = await gh.getRepo(repoOwner, repoName).getContents('main', path);
|
|
const content = response.data.content;
|
|
const decodedContent = Buffer.from(content, 'base64').toString();
|
|
latestVersion = JSON.parse(decodedContent).version;
|
|
|
|
if (compareVersions(latestVersion,currentVersion) > 0) {
|
|
// console.log(`A new version V.${latestVersion} of ${repoName} is available.`);
|
|
result = { current_version: packageJson.version, latest_version: latestVersion, message: `${repoName} has an update ${latestVersion}`, update_available:true };
|
|
} else if (compareVersions(latestVersion,currentVersion) < 0) {
|
|
// console.log(`${repoName} is using a beta version.`);
|
|
result = { current_version: packageJson.version, latest_version: latestVersion, message: `${repoName} is using a beta version`, update_available:false };
|
|
} else {
|
|
// console.log(`${repoName} is up to date.`);
|
|
result = { current_version: packageJson.version, latest_version: latestVersion, message: `${repoName} is up to date`, update_available:false };
|
|
}
|
|
} catch (error) {
|
|
console.error(`Failed to fetch releases for ${repoName}: ${error.message}`);
|
|
result = { current_version: packageJson.version, latest_version: 'N/A', message: `Failed to fetch releases for ${repoName}: ${error.message}`, update_available:false };
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
|
|
|
|
module.exports = { checkForUpdates };
|