refresh public cloud files only on session start

This commit is contained in:
SPRINX0\prochazka
2025-05-26 12:23:38 +02:00
parent 98e4fabd2e
commit 366ab2e0cd
5 changed files with 25 additions and 12 deletions

View File

@@ -29,8 +29,8 @@ module.exports = {
},
refreshPublicFiles_meta: true,
async refreshPublicFiles() {
await refreshPublicFiles();
async refreshPublicFiles({ isRefresh }) {
await refreshPublicFiles(isRefresh);
return {
status: 'ok',
};

View File

@@ -143,9 +143,7 @@ async function getCloudSigninHeaders(holder = null) {
return null;
}
let cloudFilesWereUpdated = false;
async function updateCloudFiles() {
async function updateCloudFiles(isRefresh) {
let lastCloudFilesTags;
try {
lastCloudFilesTags = await fs.readFile(path.join(datadir(), 'cloud-files-tags.txt'), 'utf-8');
@@ -163,7 +161,7 @@ async function updateCloudFiles() {
const resp = await axios.default.get(
`${DBGATE_CLOUD_URL}/public-cloud-updates?lastCheckedTm=${lastCheckedTm}&tags=${tags}&isRefresh=${
cloudFilesWereUpdated ? 1 : 0
isRefresh ? 1 : 0
}`,
{
headers: {
@@ -172,7 +170,6 @@ async function updateCloudFiles() {
},
}
);
cloudFilesWereUpdated = true;
logger.info(`Downloaded ${resp.data.length} cloud files`);
@@ -194,7 +191,7 @@ async function updateCloudFiles() {
}
async function startCloudFiles() {
refreshPublicFiles();
loadCloudFiles();
}
async function getPublicCloudFiles() {
@@ -213,12 +210,12 @@ async function getPublicFileData(path) {
return resp.data;
}
async function refreshPublicFiles() {
async function refreshPublicFiles(isRefresh) {
if (!cloudFiles) {
await loadCloudFiles();
}
try {
await updateCloudFiles();
await updateCloudFiles(isRefresh);
} catch (err) {
logger.error(extractErrorLogData(err), 'Error updating cloud files');
}

View File

@@ -14,7 +14,12 @@
// import { shouldWaitForElectronInitialize } from './utility/getElectron';
import { subscribeConnectionPingers } from './utility/connectionsPinger';
import { subscribePermissionCompiler } from './utility/hasPermission';
import { apiCall, installNewCloudTokenListener, installNewVolatileConnectionListener } from './utility/api';
import {
apiCall,
installNewCloudTokenListener,
installNewVolatileConnectionListener,
refreshPublicCloudFiles,
} from './utility/api';
import { getConfig, getSettings, getUsedApps } from './utility/metadataLoaders';
import AppTitleProvider from './utility/AppTitleProvider.svelte';
import getElectron from './utility/getElectron';
@@ -55,6 +60,8 @@
initializeAppUpdates();
}
refreshPublicCloudFiles();
loadedApi = loadedApiValue;
if (!loadedApi) {

View File

@@ -300,6 +300,15 @@ export function getAuthCategory(config) {
return 'token';
}
export function refreshPublicCloudFiles() {
if (sessionStorage.getItem('publicCloudFilesLoaded')) {
return;
}
apiCall('cloud/refresh-public-files');
sessionStorage.setItem('publicCloudFilesLoaded', 'true');
}
function enableApiLog() {
apiLogging = true;
console.log('API loggin enabled');

View File

@@ -23,7 +23,7 @@
const publicFiles = usePublicCloudFiles();
async function handleRefreshPublic() {
await apiCall('cloud/refresh-public-files');
await apiCall('cloud/refresh-public-files?isRefresh=1');
}
</script>