diff --git a/src/main/index.ts b/src/main/index.ts index d71addf7e..73bba22e0 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -34,6 +34,25 @@ function createWindow(): void { } else { mainWindow.loadFile(join(__dirname, '../renderer/index.html')) } + + const refererMatchs = [{ + url: /^https:\/\/\w+\.sinaimg.cn/, + referer: 'https://weibo.com' + }, { + url: /^https:\/\/i\.pximg\.net/, + referer: 'https://www.pixiv.net' + }] + mainWindow.webContents.session.webRequest.onBeforeSendHeaders( + (details, callback) => { + const refererMatch = refererMatchs.find((item) => item.url.test(details.url)) + callback({ + requestHeaders: { + ...details.requestHeaders, + Referer: refererMatch?.referer || details.url + } + }); + }, + ); } // This method will be called when Electron has finished diff --git a/src/renderer/src/lib/entries.ts b/src/renderer/src/lib/entries.ts index e9a054108..983b26964 100644 --- a/src/renderer/src/lib/entries.ts +++ b/src/renderer/src/lib/entries.ts @@ -22,6 +22,7 @@ export const useEntries = ({ } })).json() entries.entries = await Promise.all(entries.entries.map(async (entry) => { + entry.content = entry.content.replaceAll('https://pixiv.diygod.me/', 'https://i.pximg.net/'); const parsed = await parseHtml(entry.content) return { ...entry,