Hallo,
ich denke für diesen Fall eröffne ich mal einen eigenen Thread, da ich fürchte (oder auch wünsche), dass das Thema auch diskussionswürdig ist.
Folgende Frage ...
Auf meinem RasPi läuft der Telegram-Client und funktiioniert auch in jeder Hinsicht einwandfrei. Nun kann ich ja in der test.lua Bedingungen und Aktionen festlegen für den Fall einer eintreffenden Nachricht.
Da ich hier einen ziemlichen Aufwand plane, mit einer Menge verschiedenster Bedingungen, wo unter anderem nach Absender und erhaltenem Text unterschieden werden muss, erscheint mir der Einbau in die test.lua eher nicht angebracht.
Ich starte den Client/Listener per
durch den screen wird verhindert, dass das an anderer Stelle aufgetretene Problem mit der hohen CPU-Last, wenn der Client im Hintergrund läuft auftritt
Nun kann ich ja in der test.lua meine Bedingungen für den Fall einer eingehenden Nachricht festlegen und ggf. Aktionen auslösen.
Beispielweise eine schlichte Textantwort
function on_msg_receive (msg)
vardump( msg ) --Ausgabe von msg
if (msg.text == 'Hallo') then
send_msg (msg.from.print_name, 'Welt!')
return
end
oder aber ich rufe ein bash-script auf
function on_msg_receive (msg)
vardump( msg ) --Ausgabe von msg
if (msg.text == 'Hallo') then
os.execute("/home/pi/telegram/meinbash.sh")
return
end
Nun denn, ich habe mir in den letzten Monaten mühsam die Grundbegriffe der bash Programmierung draufgetan und bin einigermassen in der Lage bash-scripts zu schreiben.
Lua ist für mich absolutes Neuland und ich muss gestehen, dass ich mir gestern ordentlich einen abgebrochen habe, bei dem Versuch einen verschachtelteten if then elseif else Block hinzukriegen. Das wiederum wäre in bash für mich kein Problem.
Daher halte ich den folgenden Lösungsansatz für mich am geeignetsten:
Ansatz 1
Ich übergebe bei Eintreffen einer Nachricht den Absender und den Text an ein bash-script, dass dann auf meine unzähligen Bedingungen prüft, ggf. Aktionen auslöst und am Ende dann den Absender und den Antwort-Text wieder an die lua zurückgibt, die diese dann versendet.
Ansatz 2
Folgender Code soll ja von bash aus, direkt eine Nachricht senden können
Demnach würde ich dann wie oben die zwei Variablen übergeben und ALLES andere im bash-script ausführen, ohne die Variablen an die lua zurückgeben zu müssen.
Nun zu meinen Fragen:
Stimmt ihr mir zu, dass diese Variante eleganter ist, als die test.lua mit unzähligen Bedingungen zu füllen? (wozu ich mich auch noch intensiv mit lua beschäftigen müsste)
Welcher der beiden Ansätze macht mehr Sinn und mit welchen Schwierigkeiten muss ich rechnen?
und jetzt kommts ... (war doch klar, oder?)
Ich kann ja mit
die Variablen an die bash übergeben
Wie gebe ich sie anschliessend zurück?
Ich fände es schön, das mal auszudiskutieren, da ich mir wirklich die halbe Nacht das Hirn zermartert habe und ziemlich unsicher bin, wie ich es am Besten mache.
Und wenn dann noch jemand die letzte Frage beantworten würde, wäre Ostern gerettet.
Danke im Voraus
Gruss Haggi