Hejto.pl
Dodaj post

Wpisz coś do wyszukania (minimum 2 znaki)

#rozszerzenia

Inspirator

w Hydepark

0piorunów

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. :confused:

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ę.

Tytan0piorunów

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

Inspirator0piorunów

@mortt Nie, to do UserScript.

Pokaż więcej komentarzy (2)

Inspirator

w Hydepark

0piorunów

Idzie GPT4o, a ja nadal nie wiem, jak dodać ChatGPT jako wyszukiwarkę w Firefox.
Jak to zrobić?
Da się robić customowe wyszukiwarki tutaj mycroftproject.com/search-engines.html - ale dla ChatGPT się nie da.

Pokaż więcej komentarzy (2)

Inspirator

w Hydepark

0piorunów

Czy synchronizacja działa na plik zip załadowany z Dodatki -> Narzędzia dla wszystkich dodatków -> Zainstaluj dodatek z pliku...?

Robię podstawowy test synchronizacji `browser.local.sync`:

```javascript
let monster = {
name: "Kraken",
tentacles: true,
eyeCount: 10,
};

let kitten = {
name: "Moggy",
tentacles: false,
eyeCount: 2,
};

browser.storage.sync.set({ kitten, monster })
```

i na drugim profilu:
```javascript
await browser.storage.local.get("kitten")
```

ale nic się nie dzieje, `get("kitten")` nie zwraca nic.

PYTANIE:
1. Czy synchronizacja działa na plik zip załadowany z Dodatki -> Narzędzia dla wszystkich dodatków -> Zainstaluj dodatek z pliku...?
Mam w `manifest.json` `applications.gecko.id`, tak jak trzeba.
2. Jeśli nie, to co trzeba zrobić, żeby PRZETESTOWAĆ działanie synchronizacji?

API https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage/sync

Inspirator0piorunów

Testowałem, i sam sobie odpowiem:
1. Da się.
2. Da się nawet bez pakowania do pliku zip, można nawet bezpośrednio załadować folder w `about:debugging#/runtime/this-firefox`.

Ale...

Miałem pewien pomysł z wykorzystaniem i...
Synchronizacja w Firefox jest absolutnie nieprzewidywana i niekonsekwentna. Nie ma opcji żeby użyć jej do czegoś użytecznego, tego nie da się sensownie użyć. Całe API WebExtensions ma wiele dziwnych błędów, niektóre zgłosiłem i są olewane. Tutaj API synchronizacji czasami całkowicie ignoruje jakieś dane, czasem bez problemu synchronizuje zgodnie z cyklem czasowym, czasem event onChanged łapie czasem nie, czasem funkcja get() łapie, czasem nie i koniec. Wybili mi z głowy ten pomysł.

Twórca

w Ciekawostki

7piorunów

Wszystkim nocnym markom polecam rozszerzenie Dark Reader - bez tego można oślepnąć przeglądając niektóre strony.

Link do rozszerzenia dla przeglądarki Chrome(dostępne też w wersjach na inne przeglądarki): https://chrome.google.com/webstore/detail/dark-reader/eimadpbcbfnmbkopoojfekhnkhdbieeh?hl=pl

A tak to wygląda w praktyce:

(oczywiście wiem, że TT posiada wbudowany ciemny motyw, ale to tylko przykład działania)

Pokaż więcej komentarzy (2)