Threema Desktop Client (Electron)

Stelle deine Frage öffentlich an die Threema-Forum-Community - über 4.600 Mitglieder helfen dir weiter. > Frage stellen <
  • Hi Leute,

    Da ich Threema ungerne im Browser laufen lassen wollte, habe ich einen "nativen" Desktop Client auf Basis des Electron Frameworks erstellt. Mit dem Electron-Packager Fork Nativefier war das mit sehr wenig Aufwand möglich. Der Quellcode wurde noch etwas angepasst und um die unten aufgeführen Funktionen erweitert. Obwohl ich nur ein paar MSL (mIRC-Script-Language) Kenntnisse besitze, war es doch gar nicht so schwer den Code zu modifizieren. Jedoch suche ich noch einen oder zwei progammiererfahrene Mitstreiter, um das Project schneller voranzubringen und den Code zu optimieren. Von daher, melde sich jeder der Lust hat etwas beizutragen.

    Den Quellcode habe ich bereits auf Github veröffentlicht. LINK

    Screenshot Hauptfenster:

    Screenshot Benachrichtigung:


    Was bereits funktioniert:
    - Hauptfenster wird zum Tray Icon minimieren
    - Doppelklick zum Verstecken/Anzeigen des Hauptfensters
    - Kontext Menüs des Tray Icons (show, settings, hide, quit)
    - Benachrichtung bei neuer Nachricht (kein Nachrichteninhalt, nur Username und Anzahl)
    - Töne und Benachrichtigungen lassen sich abschalten
    - Benachrichtigungstöne (verschiedene wählbar)
    - Die Lautstärke des Benachrichtigungston lässt sich anpassen


    Was noch nicht funktioniert bzw. wo ich etwas Hilfe gebrauchen könnte:
    - Bei neuer Nachricht den Inhalt im Benachrichtigungsfester anzeigen

    Geplante Features (Webentwickler für Hilfestellung gesucht ):
    - Per Benachrichrichtigungsfenster direkt zum Chat wechseln (momentan nur zum Hauptfenster möglich)
    - Nachrichteninhalte im Benachrichtigungsfenster anzeigen
    - Schnellantwort direkt über das Benachrichtigungsfenster
    - Autostart (boot)
    - Passwortmanager um nach dem Start direkt zum Smartphone zu verbinden ohne manuelle Eingabe des Passworts


    PS: Da ich blutiger Programmier-Anfänger bin, solltet ihr was die Qualität des Codes angeht nicht zu viel erwarten. ;)

    Feedback wäre natürlich auch nicht schlecht.

  • Hi EinsteinXXL,

    im Master sind die Benachrichtigungen schon vorhanden. Hast du diese Version gewrappt? Im aktuellen Release (1.0.5) sind sie jedoch nicht vorhanden, sie werden dann im nächsten Relase verfügbar sein.

    EDIT
    Ich habe mich vertan :ängstlich: Benachrichtigungen gibt es schon die ganze Zeit, nur die Benachrichtigungseinstellungen sind in der nächsten Version vorhanden.

    Ggf kann Electron die Browserbenachrichtigungen in Windows/Linux/usw Benachrichtigungen umwandeln.

    Mysterion

    Einmal editiert, zuletzt von Mysterion (15. März 2017 um 10:13)

  • Habe bisher nur die 1.0.5 gewrappt. Verstehe aber nicht genau was du meinst, denn Im Browser (Firefox) werden die Inhalte der Nachrichten (User, Text) angezeigt, nur eben bei meinem Client nicht.

    In der main.js habe ich folgende Funktion gefunden.

    Code
    _electron.ipcMain.on('notification', function () {
       if (!isOSX() || mainWindow.isFocused()) {
           return;
       }
       setDockBadge('●');
    });


    Sobald eine neue Nachricht eintrifft wird diese Funktion aufgerufen. In dieser hatte ich folgenden Code eingefügt (node.js electron-notifications script):


    Code
    const notifier = require('electron-notifications')
    notifier.notify('Username', {
     message: 'User messagetext',
     icon: iconPath,
     buttons: ['Dismiss'],
    })


    Nun müsste ich nur noch an den Threema Usernamen, den Text und das Userbild kommen, um es in die notifier.notify Funktion einzufügen. Wenn ich einen Event einfüge und msg bekomme ich leider nur den Text "2 Threema Nachrichten von MaxMustermann". Wie gesagt habe von Webtechniken und javascript an sich null Plan und könnte echt Hilfe gebrauchen. ;)


    Code
    _electron.ipcMain.on('notification', function (e, msg) {
             const notifier = require('electron-notifications')
             notifier.notify('test', {
             message: msg,
             icon: iconPath,
              buttons: ['Dismiss'],
             })
        });
  • Ich glaube so sehr reden wir nicht aneinander vorbei ;)

    Ohne Electron genauer zu kennen, denke ich anhand des Codes du willst sowas in die Richtung:

    Bloß mit dem Threema Tray-Icon und dem Text/Icon usw. wie er in der nächsten Version von Threema Web verfügbar sein wird:

    Oder? Hast du den Code deiner Electron-Anwendung auf Github/Gitlab oder so? Dann könnten ich und andere da ggf mithelfen.

    Auf Github gibt es auch einen Feature request bzgl. einer (offiziellen) Electron-App.

    Mysterion