Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Script Hilfe für Chrome - Event Keybind oder ausführend einer autohotkey datei
#1
Question 
Hallöchen ich habe ein Problem.

Ich würde gerne mein Script erweitern, bin in Sachen Programmierung eine vollkommene Niete.
Klar, die ein oder andere Sache habe ich hinbekommen, aber mit meinem vorhaben scheitere ich gerade und trotz vielen Foren kriegt man irgendwie nirgends groß Hilfe, daher versuche ich es hier einmal. Ich hoffe und bitte vielmals um Hilfe.
Es geht um ein Script Addon für Chrome das sich Tampermonkey nennt. (Da der Bereich unten Leer ist, hoffe ich, dass ich hier richtig bin. Würde es auch gerne ohne Tampermonkey nutzen, nur dafür habe ich nicht die richtigen Kenntnisse, außer jemand hilft mir dabei Smile.)
Dort hat mir jemand ein gewünschtes Script geschrieben, welches ich dann mit Glück etwas erweitern konnte, einfach weil ich mich noch ein wenig mit Variablen auskannte.
Das war es aber auch und nun stehe ich auf dem schlauch.

Ich möchte:
Das das Script, nach dem erfolgreichen Neu Laden einer Webseite, einen Keybind ausführt.

Als Beispiel:
Heißt, das Script läuft, wartet... Event beginnt, Script führt den Reload aus (Seite lädt einmal neu), wartet paar Sekunden und drückt dann automatisch zb. STRG + ENDE.
Der Grund warum ich das möchte: Chrome erlaubt ja: Tastenkombinationen womit extension ausgelöst werden. Und genau das möchte ich damit erreichen.
Oder wäre es möglich, dass er dann ein Autohotkey-Skript ausführt? Denn das löst es auch aus.
Andere Möglichkeiten die zum selben Ergebnis führen, sind natürlich ebenso gerne gesehen Big Grin.

Script Ohne Versuch:


Code:
// ==/UserScript==
(function() {
    'use strict';
    document.title = "ReloadxRecord"
    const timeToWait = 15; // in seconds
    //waits a few seconds before checking if someone is live
    setTimeout(() => {
        // only check if channel isn't already live when the script started (main use for reloading the page if live)
        if (document.querySelector('.twilight-main .live-indicator-container') === null) {
            checkIfLive();
        }
        else {
            const current = new Date();
            const time = current.toLocaleTimeString("de-DE");
            console.log("                                                                          %c�� Reload was successful  ⌛⌛ " + time + " ⌛⌛  channel is live ��","background:green;color:#fff;font-size: x-large");
        }
    }, timeToWait * 1000);

    function checkIfLive() {
        if (document.querySelector('.twilight-main .live-indicator-container') !== null) {
            //reload page because channel is live:
            location.reload();
        }
        const current = new Date();
        const time = current.toLocaleTimeString("de-DE");
        console.log("                                                                         %c�� Channel is not live  ⌛⌛ " + time + " ⌛⌛  checking again... ��","background:red;color:#fff;font-size: x-large");
        setTimeout(() => checkIfLive(), timeToWait * 1000);
    }

})();

Probiert habe ich es so, was nur nicht funktioniert :S :

Code:
// ==/UserScript==
(function() {
    'use strict';
    document.title = "ReloadxRecord"
    const timeToWait = 15; // in seconds
    //waits a few seconds before checking if someone is live
    setTimeout(() => {
        // only check if channel isn't already live when the script started (main use for reloading the page if live)
        if (document.querySelector('.twilight-main .live-indicator-container') === null) {
            checkIfLive();
        }
        else {
            const current = new Date();
            const time = current.toLocaleTimeString("de-DE");
            console.log("                                                                          %c�� Reload was successful  ⌛⌛ " + time + " ⌛⌛  channel is live ��","background:green;color:#fff;font-size: x-large");
        }
    }, timeToWait * 1000);

    function checkIfLive() {
        if (document.querySelector('.twilight-main .live-indicator-container') !== null) {
            //reload page because channel is live:
            location.reload();
        }
        const current = new Date();
        const time = current.toLocaleTimeString("de-DE");
        console.log("                                                                         %c�� Channel is not live  ⌛⌛ " + time + " ⌛⌛  checking again... ��","background:red;color:#fff;font-size: x-large");
        document.onkeyup = function(e) {
            if (e.ctrlKey && e.which == 35) {;
            }
        }
        setTimeout(() => checkIfLive(), timeToWait * 1000);
    }

})();


Ich hoffe mir kann jemand die richtige Lösung geben, denn wie gesagt, ich habs probiert, aber mit null Programmierungskünsten wird das wohl nix. Zumal ich Arbeiten muss und schon 4-5 Tage daran versuche :S .

Ich bedanke mich vielmals

Grüße
Zitieren
#2
Mit Tampermonkey. Habe ich auch schon viele Webseiten angepasst.
Bei deinem Code verstehe ich noch nicht, was du genau vorhast.
Kannst du mir den Link geben , da wo das Script arbeiten soll.
Dann musst du mir erklären, was aus der Seite genau gemacht werden muss.
Wenn ich das, verstehe , dann sollte wohl eine Lösung zu finden zu sein.
Was soll die Tasten-Kombination den machen? Wie gesagt man kann es vielleicht auch anders lösen
Hier sind alle meine Lösungen aus allen Foren. Ich helfe auch in Facebook-chat
Zitieren
#3
(19.12.2022, 01:06)FrontEndler schrieb: Als Beispiel:
Heißt, das Script läuft,
wartet... Event beginnt,
Script führt den Reload aus (Seite lädt einmal neu),
wartet paar Sekunden und drückt dann automatisch zb. STRG + ENDE.

Meine Fragen dazu
(19.12.2022, 01:06)FrontEndler schrieb: Heißt, das Script läuft,
Auf welcher Seite ?


(19.12.2022, 01:06)FrontEndler schrieb: wartet... Event beginnt,
Was für ein Event beginnt ?
Von der besagten Webseite?
Oder willst du selbst ein Event erstellen?


(19.12.2022, 01:06)FrontEndler schrieb: Script führt den Reload aus (Seite lädt einmal neu),
Warum soll das Script die Webseite nochmal laden?


(19.12.2022, 01:06)FrontEndler schrieb: wartet paar Sekunden und drückt dann automatisch zb. STRG + ENDE.

Was soll dann passieren?
Was wird genau geöffnet mit der Tastenkombie ?
Hier sind alle meine Lösungen aus allen Foren. Ich helfe auch in Facebook-chat
Zitieren
#4
(19.12.2022, 14:26)admin schrieb:
(19.12.2022, 01:06)FrontEndler schrieb: Als Beispiel:
Heißt, das Script läuft,
wartet... Event beginnt,
Script führt den Reload aus (Seite lädt einmal neu),
wartet paar Sekunden und drückt dann automatisch zb. STRG + ENDE.


Meine Fragen dazu
(19.12.2022, 01:06)FrontEndler schrieb: Heißt, das Script läuft,
Auf welcher Seite ?

Hi, erstmal vielen vielen dank für deine Antwort @"admin" Smile:
Das Script läuft auf gewünschten Channel Seiten von Twitch.tv.
Man kann im Script ja oben bei Tampermonkey angeben, welche Seiten Matchen.
ZB. Mein eigener: https://www.twitch.tv/thewantedmovie2014
Dort steht dann oben: // @match        https://www.twitch.tv/thewantedmovie2014
Die Channel kann mann ja immer hinzufügen, aber hauptsächlich läuft es nur auf Twitch.tv.



(19.12.2022, 01:06)FrontEndler schrieb: wartet... Event beginnt,
Was für ein Event beginnt ?
Von der besagten Webseite?
Oder willst du selbst ein Event erstellen?

Mit Event meinte ich nur, das die derzeitigen Sachen vom Script ausgeführt werden.
Aktuell tut das Skript auf den gewünschten Twitch Seiten die im Hintergrund geöffnet sind, dauerhaft alle 15 Sekunden abzufragen, ob der gewünschte Channel Live ist.
Daher ist dies eingetragen ".twilight-main .live-indicator-container", das erscheint nur, wenn der Channel Live ist.
Die Datums und Konsolen Ausgabe ist nur für mich, damit ich immer nachverfolgen kann, ob die gewünschte Twitch Channel Seite neu geladen wurde, wann und ob es ordnungsgemäß funktioniert.



(19.12.2022, 01:06)FrontEndler schrieb: Script führt den Reload aus (Seite lädt einmal neu),
Warum soll das Script die Webseite nochmal laden?

Die Seite muss einmal neu laden, denn wenn Twitch channels oftmals viel zu lange und zu viele im Hintergrund an sind, geben die manchmal einen Fehler im Player aus, wodurch man nur noch einen Error 4000, Error 5000 mit komplett schwarzem Bild hat und um das zu umgehen, ist es erforderlich das die Seite neu lädt, sobald der Channel Live ist. Denn danach passiert es nicht mehr.



(19.12.2022, 01:06)FrontEndler schrieb: wartet paar Sekunden und drückt dann automatisch zb. STRG + ENDE.
Was soll dann passieren?
Was wird genau geöffnet mit der Tastenkombie ?

Aktuell habe ich eine Erweiterung mit der genannten Tastenkombi belegt. Diese soll dann nach dem Reload mit der Tastenkombi gestartet werden.
Das wäre es auch Smile
Es ging auch mit einem Autohotkey Script welches sich bei mir auf dem Desktop befindet (diese tut ebenfalls einfach nur STRG + ENDE Drücken), aber ich denke mit einem Keybind wäre es einfacher oder?
Ich bedanke mich vielmals und hoffe das alles nun etwas mehr Klarheit verschafft Smile

Grüße
Zitieren
#5
Mit twich kenne ich mich soweit gar nicht aus , sollte aber kein Problem sein.

Auf der Seite soll ein Tampermonkey laufen ,
das alle 15 Sekunden nach
Code:
document.querySelector('.twilight-main .live-indicator-container')
Sucht.
Das Element erscheint, nur, wenn der gesagte Channel online ist.
Die ganzen Konsolen ausgaben dir du machst würde ich in einen kleinen Modal schrieben, was irgendwo oben in Bildschirm eingeblendet wird (ist aber Geschmackssache).

Das mit dem neu Laden der Seite muss ich mal selber sehen . Ich denke das man vielleicht gar nicht erst neu lädt und wenn dann der Fehler kommt, soll das Skript selber neu laden.
Ist aber erst mal Nebensache.

Dann soll die Tastenkombination kommen, die dir ein Add-on öffnet?

Ich muss mal etwas Googeln, ob es möglich ist, mit Tampermonkey das addon zu starten und wie weit das überhaupt möglich ist, mit einen Script auf die Browser Tastenkombinationen zuzugreifen.

Versuch mal über Tampermonkey die Drucks taste oder strg,alt Entfernung zu klicken , oder einfach eine F12 Taste oder so.


Was für eine Erweiterung nutzt du den da?
Hast du mal überlegt, dein Vorhaben da einzubauen?
Die Addon können im Hintergrund auch solche Abfragen machen und bei einen Treffer (wenn Channel online ist) , sich selber öffnen.


Ich muss mich mal etwas schlaumachen und etwas testen, welche Tastenkombinationen mit JS möglich sind.
Welchen Browser nutzt du , Chrome?
Hier sind alle meine Lösungen aus allen Foren. Ich helfe auch in Facebook-chat
Zitieren
#6
(19.12.2022, 22:53)admin schrieb: Mit twich kenne ich mich soweit gar nicht aus , sollte aber kein Problem sein.

Auf der Seite soll ein Tampermonkey laufen ,
das alle 15 Sekunden nach 
Code:
document.querySelector('.twilight-main .live-indicator-container')
Sucht.
Das Element erscheint, nur, wenn der gesagte Channel online ist.
Die ganzen Konsolen ausgaben dir du machst würde ich in einen kleinen Modal schrieben, was irgendwo oben in Bildschirm eingeblendet wird (ist aber Geschmackssache).

Das mit dem neu Laden der Seite muss ich mal selber sehen . Ich denke das man vielleicht gar nicht erst neu lädt und wenn dann der Fehler kommt, soll das Skript selber neu laden.
Ist aber erst mal Nebensache.

Dann soll die Tastenkombination kommen, die dir ein Add-on öffnet?

Ich muss mal etwas Googeln, ob es möglich ist, mit Tampermonkey das addon zu starten und wie weit das überhaupt möglich ist, mit einen Script auf die Browser Tastenkombinationen zuzugreifen.

Versuch mal über Tampermonkey die Drucks taste oder strg,alt Entfernung zu klicken  , oder einfach  eine F12 Taste oder so.


Was für eine Erweiterung nutzt du den da?
Hast du mal überlegt, dein Vorhaben da einzubauen?
Die Addon können im Hintergrund auch solche Abfragen machen  und bei einen Treffer (wenn Channel online ist) , sich selber öffnen.


Ich muss mich mal etwas schlaumachen und etwas testen, welche Tastenkombinationen mit JS möglich sind.
Welchen Browser nutzt du , Chrome?


Bis hier hin ist soweit alles richtig.

Modal schreiben? Hört sich schön an, aber für mich mit der Umsetzung eher zu schwer, außer man kann mir zufällig die Lösung geben Sad.
Bin wie gesagt was Programmierung angeht, eine vollkommener Anfänger, bin auch nur mit Glück soweit gekommen.
Zitat:
Das mit dem neu Laden der Seite muss ich mal selber sehen . Ich denke das man vielleicht gar nicht erst neu lädt und wenn dann der Fehler kommt, soll das Skript selber neu laden.

Ist aber erst mal Nebensache.
Zitat Ende: Der Fehler kommt dadurch definitiv nicht mehr und der reload sollte möglichst auch bleiben, daher ist bis dahin alles tutti frutti Smile. (Also je nach Lösung, bei der aktuellen ist es notwendig.)

Richtig, nach dem Reload soll die genannte Tastenkombination einfach nur bewirken, das es die genannte Erweiterung Startet/öffnet.

Ich habe soweit ein Autohotkeyscript die ebenfalls einfach nur STRG+ENDE drückt, wenn ich dies auf eine Taste oder Maus binde, funktioniert es ebenfalls, allerdings muss ich dafür ja anwesend sein und durch meine Arbeit ist dies nicht möglich. Daher suche ich nach einer Automatisierten Möglichkeit, daher dachte ich an ein Keybind oder eine scripterweiterung zu meinem bisherigen, welches einfach die autohotkey Datei nach dem reload öffnet.

Ich hoffe ich verstehe es richtig, habe nun: window.print()
ausführen lassen. Ergebnis: Print
Wenn Sie es anders meinen, weiß ich leider nicht wie.

Mein vorhaben in die Erweiterung einzubauen, wird denke ich nicht gehen, ist normal aus dem Google Extension Store und da ich in Sachen Programmierung aktuell eine Niete bin und mir meine Arbeit mit Fahrt weg 11,5 Std vom Tag nimmt, bleibt mir mit Schlaf und Privatem kaum zeit auch noch JavaScript zu lernen, so gerne ich es auch können würde.
Ich bin froh das ich derzeit überhaupt mit Hilfe soweit wie jetzt gekommen bin. 

Das ist richtig, ich hatte auch an ein Addon gedacht, nur wenn ich etwas umschreibe wovon ich nicht wirklich Ahnung habe, mache ich es eher kaputt, sitze ja schon 5 Tage verzweifelt hier und weiß nicht weiter. Trotz etlichen Foren kriegt man abgesehen davon leider auch fast nirgends Hilfe, was es auch nicht wirklich einfacher macht. Daher bin ich grad glücklich, das wenigstens Sie mir helfen Smile.

Ja ich nutze Chrome Smile.
Jemand hat mir auch mal den Tipp gegeben es mit: Java Headless Selenium zu machen, aber das is dann noch viel schwieriger, gerade für mich.
Für mich geht es auch eher um das Resultat, in wie fern das gemacht wird, ist zweitrangig solange das Ergebnis das selbe ist.
Daher wenn Sie andere Vorlieben haben und es vielleicht besser lösen könnten, wäre ich auch dafür offen Big Grin.
Immerhin war mein 1. Gedanke ebenfalls ein Addon, aber sich selber so ein Addon zu schreiben, braucht wohl mehr als nur etwas Glück wie bei mir gerade.

Ich meine wenn es mir jemand auch besser lösen kann, bin ich auch bereit ein Taschengeld dafür zu vergeben, aber bisher hat sich auch dafür leider niemand finden lassen.

Ich bedanke mich aber schonmal vielmals im voraus.
LG
EDIT: Es gäbe noch die Möglichkeit das man in die Extension die ich nach dem Reload ausführen möchte, einen Button programmiert welcher nur auf der Webseite twitch tv ersichtlich ist, womit man die Extension auslösen kann, sodass mein Script dann nur den Button auslösen muss.
So muss man nicht alles direkt in die Extension schreiben.
Die genannte Extension ist: Extension

Allerdings habe ich null Ahnung wie dies umzusetzen ist oder was davon nun einfacher ist.
Ich hoffe ich habe dies auch Akzeptable erklärt xD.

Grüße
Zitieren
#7
Ich bin jetzt wieder zu Hause und werde mir das mal alles genauer anschauen,
was die leichteste und machbarste Lösung ist.
Man muss bedenken das ein Browser Add-on mehr rechte hat als ein Tampermonkey Script.

Ich schaue erstmal ob Tampermonkey strg+ende drücken darf und von Browser auch erkannt wird.
Sollte das aus irgendein Grund nicht gehen werde ich mal schauen, wie weit ein Tampermonkey Script Zugriff auf die Add-ons hat , bzw. das Add-on starten darf.

Letzte Möglichkeit die klappen könnte man schreibt ein Add-on, das die Twitch Seite überwacht und dann die tasten klickt.

Du sagtest das du ein Add-on hast, was die tasten drücken kann und auch funktioniert?
Muss ich mich bei Twitch anmelden , oder kann ich den Channel auch, sehen, wenn ich nicht registriert bin?

Die Add-ons/Erweiterungen sind eigentlich nichts anderes wie HTML, CSS und Javascript.
Da gibt es natürlich noch Code, den man in normalen Javascript nicht benutzen kann , der nur in den Add-ons gültig ist.

Mit den Add-ons programmieren habe ich auch erst vor kurzen angefangen , doch wenn man Javascript schon, kann lernt man den Rest eigentlich schnell.
Hier sind alle meine Lösungen aus allen Foren. Ich helfe auch in Facebook-chat
Zitieren
#8
(20.12.2022, 22:24)admin schrieb: Ich bin jetzt wieder zu Hause und werde mir das mal alles genauer anschauen,
was die leichteste und machbarste Lösung ist.
Man muss bedenken das ein Browser Add-on mehr rechte hat als ein Tampermonkey Script.

Ich schaue erstmal ob Tampermonkey strg+ende drücken darf und von Browser auch erkannt wird.
Sollte das aus irgendein Grund nicht gehen werde ich mal schauen, wie weit ein Tampermonkey Script Zugriff auf die Add-ons hat , bzw. das Add-on starten darf.

Letzte Möglichkeit die klappen könnte man schreibt ein Add-on, das die Twitch Seite überwacht und dann die tasten klickt.

Du sagtest das du ein Add-on hast, was die tasten drücken kann und auch funktioniert?
Muss ich mich bei Twitch anmelden , oder kann ich den Channel auch, sehen, wenn ich nicht registriert bin?

Die Add-ons/Erweiterungen sind eigentlich nichts anderes wie HTML, CSS und Javascript.
Da gibt es natürlich noch Code, den man in normalen Javascript nicht benutzen kann , der nur in den Add-ons gültig ist.

Mit den Add-ons programmieren habe ich auch erst vor kurzen angefangen , doch wenn man Javascript schon, kann lernt man den Rest eigentlich schnell.


Super vielen Dank für die Hilfe Smile.
Bin sonst komplett aufgeschmissen :S

Das hört sich nach einem Plan an.
Danke das du dir dafür Zeit nimmst, vielen Dank Smile.

Nein kein Addon, ist einfach nur ein Autohotkeyscript, hat leider nichts mit einem Addon zu tun.
Die Channel kannst du auch ohne Anmeldung sehen, genauso wenn die Channel Online und Offline gehen.

Also HTML und CSS kann ich, aber halt kein Javascript oder so.
Wenn ich dir Helfen kann, sage mir gerne bescheid Smile.
Als Addon ist es denke ich wohl am besten, aber versuch erstmal und schau ob es nicht doch mit Tampermonkey geht.
Falls nicht, kann man ja das Addon machen, sofern es für dich okay ist.

Tausend Dank dir im vornherein Smile
Zitieren
#9
(20.12.2022, 23:21)FrontEndler schrieb: Das hört sich nach einem Plan an.
Danke das du dir dafür Zeit nimmst, vielen Dank Smile.


Ich liebe Herausforderungen.
Außerdem ist das eine Funktion, die ich so in der Art auch gebrauchen kann.



So , erstmal eine Gute Nachricht , ich habe gerade gefrühstückt.
Jetzt die Schlechte.
https://stackoverflow.com/questions/5830...ening-find

Wenn du da liest wirst du leider lesen das Javascript nicht auf die Browser Funktionen zugreifen kann.
Nur das, was in einer Webseite eingebaut ist.

Würde ich in meiner Homepage ein keyevent einbauen, das auf die Taste STRG+ENDE reagiert , könnte ich dir irgendwas anzeigen lassen , oder ein Modal öffnen , oder sonst irgendwas.

Alles andere scheint nicht zu gehen.

In dem Beitrag steht was von Chrome API , die sowas dann erlaubt wohl.
Muss ich auch mal Googeln, weil habe ich auch noch nie gelesen. Wenn das gehen würde, wäre das schon mal geil , weil mir fallen viele lustige Sachen, ein, die ich damit bauen könnte.
Hier sind alle meine Lösungen aus allen Foren. Ich helfe auch in Facebook-chat
Zitieren
#10
(21.12.2022, 00:58)admin schrieb:
(20.12.2022, 23:21)FrontEndler schrieb: Das hört sich nach einem Plan an.
Danke das du dir dafür Zeit nimmst, vielen Dank Smile.


Ich liebe Herausforderungen.
Außerdem ist das eine Funktion, die ich so in der Art auch gebrauchen kann.



So , erstmal eine Gute Nachricht , ich habe gerade gefrühstückt.
Jetzt die Schlechte.
https://stackoverflow.com/questions/5830...ening-find

Wenn du da liest wirst du leider lesen das Javascript nicht auf die Browser Funktionen zugreifen kann.
Nur das, was in einer Webseite eingebaut ist.

Würde ich in meiner Homepage ein keyevent einbauen, das auf die Taste STRG+ENDE reagiert , könnte ich dir irgendwas anzeigen lassen , oder ein Modal öffnen , oder sonst irgendwas.

Alles andere scheint nicht zu gehen.

In dem Beitrag steht was von Chrome API , die sowas dann erlaubt wohl.
Muss ich auch mal Googeln, weil habe ich auch noch nie gelesen. Wenn das gehen würde, wäre das schon mal geil , weil mir fallen viele lustige Sachen, ein, die ich damit bauen könnte.

Das freut mich doch zu hören Big Grin.
Vieles kann man immer gebrauchen und so etwas schon zu haben, schadet nie Tongue.

Der war fies, ich hatte schon Hoffnung hehehe Tongue. Aber ich hoffe es hat gemundet (geschmeckt Tongue) Big Grin

Nun dürfen wir uns nur nicht falsch verstehen Big Grin.
Es geht ja drum, das das Script für einen STRG+ENDE drücken soll, was ja nicht möglich ist mit Javascript.
Ich verstehe zwar nicht ganz wie du es genau meinst, aber ich selber bin ja bei der Arbeit, wodurch STRG+ENDE automatisch gedrückt werden soll nach dem die Seite neu geladen hat, sodass die Extension gestartet werden soll. Es soll ja nicht erst reagieren wenn ich selber STRG+ENDE Drücke, ich hoffe das kam nun nicht falsch herüber Big Grin.
Soweit geht ja alles, es fehlt nur irgendeine Option womit das Script läuft und man danach die Extension mit einem keybind starten kann.

Aber wenn du es richtig verstanden hast und eine Idee hast, bin ich dafür nur offen Big Grin.
Hehe das glaube ich dir Smile

Ansonsten habe ich noch von der Option gehört:
selenium with javascript

puppeteer with javascript

Und ich habe mir mal die genannte Extension angeguckt;
},
"action_button_enable": {
"message": "Stream found\n[ Click to download ]"
},
Dies irgendwie ansteuern geht auch nicht oder? Weils ja ein anderes Addon ist :S
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen:
3 Gast/Gäste