Procházet zdrojové kódy

fix: faster update download

tophf před 3 roky
rodič
revize
8980477dc7
2 změnil soubory, kde provedl 5 přidání a 3 odebrání
  1. 1 1
      src/background/utils/db.js
  2. 4 2
      src/background/utils/update.js

+ 1 - 1
src/background/utils/db.js

@@ -157,7 +157,7 @@ preInitialize.push(async () => {
       require.forEach(rememberUrl, pathMap);
       resources::forEachValue(rememberUrl, pathMap);
       pathMap::rememberUrl(meta.icon);
-      pathMap::rememberUrl(getScriptUpdateUrl(script));
+      getScriptUpdateUrl(script, true)?.forEach(rememberUrl, pathMap);
     } else if (key.startsWith(storage.mod.prefix)) {
       mods.push(key.slice(storage.mod.prefix.length));
     }

+ 4 - 2
src/background/utils/update.js

@@ -90,7 +90,6 @@ async function downloadUpdate(script, urls) {
   announce(i18n('msgCheckingForUpdate'));
   try {
     const { data } = await requestNewer(updateURL, {
-      // TODO: do a HEAD request first to get ETag header and compare to storage.mod
       cache: 'no-cache',
       headers: { Accept: 'text/x-userscript-meta,*/*' },
     }) || {};
@@ -99,10 +98,13 @@ async function downloadUpdate(script, urls) {
       announce(i18n('msgNoUpdate'), { checking: false });
     } else if (!downloadURL) {
       announce(i18n('msgNewVersion'), { checking: false });
+    } else if (downloadURL === updateURL) {
+      announce(i18n('msgUpdated'));
+      return data;
     } else {
       announce(i18n('msgUpdating'));
       errorMessage = i18n('msgErrorFetchingScript');
-      return (await request(downloadURL, { cache: 'no-cache' })).data;
+      return (await requestNewer(downloadURL, { cache: 'no-cache' })).data;
     }
   } catch (error) {
     if (process.env.DEBUG) console.error(error);