From 94f0903614490d5d6344a3f31f2e5f8f8afb275c Mon Sep 17 00:00:00 2001 From: Austin Huang Date: Sun, 26 Feb 2023 22:25:38 -0500 Subject: [PATCH] Pleroma: username detection by request body --- src/background/modules/AutoRemoteFollow.js | 2 +- src/background/modules/Detect/Pleroma.js | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/background/modules/AutoRemoteFollow.js b/src/background/modules/AutoRemoteFollow.js index 4b44063..abac24f 100644 --- a/src/background/modules/AutoRemoteFollow.js +++ b/src/background/modules/AutoRemoteFollow.js @@ -170,7 +170,7 @@ async function onTabUpdate(tabId, changeInfo) { function init() { NetworkTools.webRequestListen(["http://*/*", "https://*/*"], "onBeforeRequest", (requestDetails) => { return handleWebRequest(requestDetails).catch(handleError).catch(console.error); - }); + }, ["requestBody"]); browser.tabs.onUpdated.addListener(onTabUpdate, { properties: ["url"] diff --git a/src/background/modules/Detect/Pleroma.js b/src/background/modules/Detect/Pleroma.js index 8b227af..c96453c 100644 --- a/src/background/modules/Detect/Pleroma.js +++ b/src/background/modules/Detect/Pleroma.js @@ -110,6 +110,12 @@ export function getTootUrl(url) { export function getUsername(url, requestDetails) { redirectSiteFinishedLoading = false; + try { + return requestDetails.requestBody.formData.nickname[0]; + } catch (e) { + console.error("Could not get username from request body. Error: ", e); + } + try { const originUrl = new URL(requestDetails.originUrl); const match = USER_PAGE_URL_REGEX.exec(originUrl.pathname); @@ -122,7 +128,7 @@ export function getUsername(url, requestDetails) { console.error("Could not get valid username from request details. Got", originUrl, "from", requestDetails); } } catch (e) { - console.error("Could not get username from request details. Error: ", e); + console.error("Could not get username from request origin. Error: ", e); } // fallback to HTML scraping