#rozszerzenia

0
9
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ć

Zaloguj się aby komentować

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
#firefox #addons #rozszerzenia #extensions #webextensions
1

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

Zaloguj się aby komentować

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)
1a4a5d9a-f2b7-44bd-b30f-0b64cd21be3d
2

Zaloguj się aby komentować