#extensions

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

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ć