#userscript

0
7
W `chatgpt.com`, `textarea` jest czyszczona po 1 sekundzie od załadowania strony.
Przez to skrypt który wkleja tekst poprzez `textareaEl.value = "tekst"` nie wystarcza.

Zrobiłem z `setTimeout` 1001 ms, to działa, już przy 1000 ms nie działa.
Observery nie ogarniają, ale może źle coś robię?
Z opóźnieniem 1001 ms jest to zawodne, bo czasem dzieje się to w dłuższym czasie, więc pomóż znaleźć lepszą metodę?

Następny problem, to że nawet jak wpiszę, to `buttonEl.click();` i tak nie zadziała, bo aktywuje się dopiero po wpisaniu czegoś z klawiatury, a wywołanie event `keydown` itp. też nie działa. Więc pozostaje po wklejeniu poprzez `textareaEl.value = "tekst"`, naciśnięcie jakiegoś znaku na klawiaturze, skasowanie go, i naciśnięcie Enter, żeby wiadomość została wysłana.
Też mógłbyś pomóc to rozwiązać?

Dosłownie nie ma metody, żeby stworzyć Search Engine dla Firefox dla ChatGPT.

Metoda którą opisałem, jest niedoskonała oraz niedokończona.

Przed tymi dwoma krokami, po prostu pobieram parametr z URL, w formie `https://chatgpt.com/?usq=test`, strona nie kasuje parametru `usq` po załadowaniu strony, więc spokojnie można z tego skorzystać.

Jak to się uda, to spakuję to w WebExtension, i upublicznię.

#frontend #javascript #userscript #skrypt #addons #extensions #dodatki #rozszerzenia #plugin #wtyczki #chatgpt #ai #firefox
2

czy ja dobrze rozumiem, że probujesz użyć interfejsu wizualnego jako API?

@mortt Nie, to do UserScript.

Zaloguj się aby komentować

Zapytaj się chata gpt

Zaloguj się aby komentować

Są boty, które wołasz i to robią

@smierdakow Podaj nazwę.

Zaloguj się aby komentować

hmm uruchomiony jest i nie ma wycieku od godziny, chyba naprawili

Zaloguj się aby komentować

PROPOZYCJA
Na YouTube jest CustomEvent `"yt-navigate-finish"`, który ogarnia jak nawigacja na stronie się dokona.
To samo chciałbym na Hejto, żeby łatwo było tworzyć Skrypty Użytkownika dla Hejto.
Tak to wygląda na YouTube:
```javascript
window.addEventListener("yt-navigate-finish", ()=>{}, true);
```
Proste `"hejto-navigate-finish"` by zrobiło robotę. Nie trzeba by tworzyć observerów itp.
Ja bym to rozbudował o CustomEvent `"hejto-entry-mounted"`, który odpala się za każdym razem, gdy wyświetli się wpis/komentarz, i zwraca w event.detail referencję do elementu DOM z wpisem/komentarzem, info o typie (komentarz/wpis), autora, jakieś inne podstawowe info, żeby nie trzeba było ich wyciągać z elementu DOM.
Wtedy można dokonać skryptem jakiegoś ulepszenia danego wpisu/komentarza, tak jak to robi wiele dodatków.
Naprawdę maaasa dodatków by mogła się o takie CustomEvents opierać.
#programowanie #userscript #hejto #hejtododatki #dodatki #frontend #javascript
3

To rozwiązanie przypomina całą tą personalizację treści na zasadzie yt?

@Frus Nie wiem co napisałeś, ale chodzi o UserScripts, Skrypty Użytkownika, jak te:

https://greasyfork.org/pl/scripts/by-site/youtube.com?filter_locale=0


Czyli różne ulepszenia do YouTube, żeby miał coś czego nie ma, albo przestał mieć coś czego nie potrzebujesz, albo coś ulepsza w działaniu.


Oczywiście tylko niektóre korzystają z tego CustomEvent.

@fewtoast nie znam się na tym i właśnie szperam co to takiego xD

Zaloguj się aby komentować

Co myślicie?
To Skrypt Użytkownika "Hejto Profile Link".
Robi zwykły link z przycisku profilu w headerze hejto. Menu pojawia się poprzez samo najechanie na przycisk profilu.
(jak bardzo dawno temu na wykopie)
Źródło - https://pastebin.com/K15KCXSq
Na gifie widać jak działa - https://gfycat.com/pl/piercingpassionatedassie
Nie ma do końca ogarniętego pierwszego ładowania strony, więc to skrypt testowy.
(pomoc mile widziana)
#programowanie #userscript #hejto #hejtododatki #dodatki #frontend #javascript
5

@LM317T No już na gfycat dodałem.

@fewtoast nie przeanalizuję teraz tego bo ledwo na oczy widze ale jak masz problem z pierwszym ładowaniem strony to pokombinuj z flagą może

// @run-at document-idle

https://wiki.greasespot.net/Metadata_Block#.40run-at

@LM317T tylko document-idle dałby pożądane większe opóźnienie, ale to by z kolei czekało zbyt długo.


Coś mieli ten React, i się coś tam doładowuje z opóźnieniem o różnej długości.

Duży margines setTimeout potrzebowałem, to dopiero jest w miarę skutecznie. Ale wolałbym w lepszy dokładniejszy sposób.

Zaloguj się aby komentować

tutaj mniejsze i latwiejsze rozwiazanie w css

[aria-label="Zmień motyw"] { display: none !important }

mozna zainstalowac za pomoca stylusa

Zaloguj się aby komentować