[Lua] Telegram Messenger Client Erweiterung

  • also.. funktioniert bei mir eigentlich sehr gut..

    ich hab jetzt ne "zusätzliche" Anforderung.. vielleicht kann mir einer von euch helfen, der sich mit "lua" auskennt (ich tus nämlich nicht!)

    Folgendes:
    [font="arial, sans-serif"]In der Funktion "function on_msg_receive (msg)[/font]
    [font="arial, sans-serif"]habe ich ein paar Zeilen ergänzt:[/font]
    [font="arial, sans-serif"] [/font]
    [font="arial, sans-serif"] if (msg.text == 'Hallo') then[/font]
    [font="arial, sans-serif"] os.execute('echo "!Hallo" | nc 192.168.178.27 4809 -w 1')[/font]
    [font="arial, sans-serif"] send_msg (msg.from.print_name, 'Hallo..')[/font]
    [font="arial, sans-serif"] return[/font]
    [font="arial, sans-serif"] end[/font]

    [font="arial, sans-serif"]Hier soll, wenn die Nachricht "Hallo" empfangen wird, per
    Netcat der String "!Hallo" an die IP gesendet werden. Danach
    wird alles mit "Hallo..." quittiert.. [/font]

    [font="arial, sans-serif"]das funktioniert auch schon sehr schön. [/font]

    [font="arial, sans-serif"]jetzt würde ich aber gern auch den umgekehrten Weg gehen. [/font]
    [font="arial, sans-serif"]Eine Nachricht die von einer IP kommt soll in eine Variable
    übergeben werden und diese dann mit der send_msg Funktion
    gesendet werden.[/font]

    [font="arial, sans-serif"]Hierzu müsste Netcat im "Listener Modus" Laufen: [/font]
    [font="arial, sans-serif"]netcat -lp 14284[/font]

    [font="arial, sans-serif"]und dieses dann in etwa so an eine Variable übergeben werden: [/font]
    [font="arial, sans-serif"]Pseudocode: message="$(netcat -lp 14284)")[/font]

    [font="arial, sans-serif"]dieser müsste dann bei empfang gesendet werden: [/font]
    [font="arial, sans-serif"]Pseudocode: if change (message) then send_msg (msg.from.print_name, 'message')[/font]

    [font="arial, sans-serif"]versteht ihr was ich meine ?[/font]

    [font="arial, sans-serif"]habt ihr eine Idee wie man so etwas umsetzten kann ?[/font]

    [font="arial, sans-serif"]Gruß Brick[/font]

  • Code
    echo 'msg user#<ID> <Nachricht>\nquit' |./telegram

    Müsste sich damit nicht was machrn lassen? Leider weiss ich nicht wie man dann automatisch auf konsole zurückkommt

  • Hi Tomki,

    ja .. den Befehl kenn ich, leider weiß ich nicht, was das \nquit bringen soll.. das wird bei mir immer mit
    an der Nachricht übertragen...
    und ja.. genau das wäre interessant.. nur den Befehl über die Kommandline übergeben und dann wieder
    auf der Konsole sein.. dann könnte man, das sicher irgendwie in dein Skript packen.. so würde aber
    wohl immer eine neue Instanz aufgemacht werden.. glaub ich nicht zielführend !

  • Habs jetzt so gelöst. Danke "alesnav"

    Script erstellen und anschliesend ausführbar machen mit dem Inhalt

    Bash
    #!/bin/bash
    ./telegram -k tg.pub <<STDIN
    msg $1 $2
    quit
    STDIN

    Link vll anpassen.

    und dann auf der Konsole ./konsole.sh user#id "nachricht"

    MfG

  • Hi, das ist super.. ja das funktioniert..

    leider hab ich immer noch ein Problem...

    hab jetzt zwei Skripte erstellt (eher kopiert)..
    das eine von dir:

    konsole.sh

    Bash
    #!/bin/bash
    /home/pi/tg/telegram <<STDIN
    msg $1 $2
    quit
    STDIN


    das zweite:

    eibpc.sh


    dieses skript macht eigentlich nur, das es netcat im Listener Mode startet und das
    empfangene an die Variable $message übergibt.. diese soll dann an die konsole.sh
    weitergegeben werden.. bzw. damit ausgeführt werden..

    leider bekomm ich im Log folgenden Fehler:

    Code
    Telegram-client version 0.01-beta, Copyright (C) 2013 Vitaly Valtman
    Telegram-client comes with ABSOLUTELY NO WARRANTY; for details type `show_license'.
    This is free software, and you are welcome to redistribute it
    under certain conditions; type `show_license' for details.
    Telephone number (with '+' sign): telegram: queries.c:543: check_phone_on_error: Assertion `0' failed.
    [37;1m *** error_code = 400, error = PHONE_NUMBER_INVALID
    [0mSIGABRT received

    das sieht so aus, als wolle das skript sich nochmal neu registrieren..
    dachte zuerst es läge evtl. an einem Pfad.. aber die müssten eigentlich alle korrekt angepasst sein..

    kann mir einer erklären wieso ?

    Gruß Brick

    Einmal editiert, zuletzt von Brick (5. März 2014 um 13:18)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!