Perplexity Force Writing Mode

Force "writing mode" on perplexity

Você precisará instalar uma extensão como Tampermonkey, Greasemonkey ou Violentmonkey para instalar este script.

You will need to install an extension such as Tampermonkey to install this script.

Você precisará instalar uma extensão como Tampermonkey ou Violentmonkey para instalar este script.

Você precisará instalar uma extensão como Tampermonkey ou Userscripts para instalar este script.

Você precisará instalar uma extensão como o Tampermonkey para instalar este script.

Você precisará instalar um gerenciador de scripts de usuário para instalar este script.

(Eu já tenho um gerenciador de scripts de usuário, me deixe instalá-lo!)

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

(Eu já possuo um gerenciador de estilos de usuário, me deixar fazer a instalação!)

// ==UserScript==
// @name         Perplexity Force Writing Mode
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Force "writing mode" on perplexity
// @author       Lugia19
// @match        https://www.perplexity.ai/*
// @grant        none
// @run-at       document-start
// ==/UserScript==

(function () {
'use strict';

// Store the original fetch function
const originalFetch = window.fetch;

// Override the fetch function
window.fetch = async function (...args) {
const url = args[0];
let urlString = '';

// Handle different types of URL arguments
if (typeof url === 'string') {
urlString = url;
} else if (url instanceof URL) {
urlString = url.href;
} else if (url instanceof Request) {
urlString = url.url;
}

// Check if this is a request to the target endpoint
if (urlString.includes('https://www.perplexity.ai/rest/sse/perplexity_ask')) {
try {
// Clone the request to avoid modifying the original
let request = args[1] || {};

// If there's a body, parse and modify it
if (request.body) {
const body = JSON.parse(request.body);

// Force the search_focus to be "writing"
if (body.params) {
body.params.search_focus = "writing";
body.params.local_search_enabled = false;
console.log("Forced search_focus to 'writing'");
}

// Create a new request with the modified body
const newRequest = {
...request,
body: JSON.stringify(body)
};

// Replace the original request with our modified one
args[1] = newRequest;
}
} catch (error) {
console.error("Error in fetch monkeypatch:", error);
}
}

// Call the original fetch with possibly modified arguments
return originalFetch.apply(this, args);
};

console.log("Perplexity.ai Force Writing Focus userscript loaded");
})();