<Obsolet durch Beitragsverschiebung>

RE: Mit dem Pi über WhatsApp Nachrichten, etc. senden!
- framp
- Thread is marked as Resolved.
Registriere dich jetzt, um exklusive Vorteile zu genießen! Als registriertes Mitglied kannst du Inhalte herunterladen und profitierst von einem werbefreien Forum.
Mach mit und werde Teil unserer Community!
Mach mit und werde Teil unserer Community!
-
-
dazu nun meine Frage an framp
wie kann ichs anpassen das er es nur als Kommando nimm wenn ich sag ich mal bash: ls- l schreibe
-l ist von mir als Listener only gedacht -m als commandshell only. Aber man kann das natuerlich kombinieren. Ich würde das dann wie folgt machen:Code
Display Moredef onMessageReceived(self, messageId, jid, messageContent, timestamp, wantsReceipt, pushName, isBroadCast): if self.auhorizedCommandSenderList == None: formattedDate = datetime.datetime.fromtimestamp(timestamp).strftime('%d-%m-%Y %H:%M') print("%s [%s]:%s"%(jid, formattedDate, messageContent)) if messageContent.startswith("bash: "): self.handleMyCommands(self, messageId, jid, messageContent[6:], timestamp, wantsReceipt, pushName, isBroadCast) if wantsReceipt and self.sendReceipts: self.methodsInterface.call("message_ack", (jid, messageId)) else: self.handleCommand(messageId, jid, messageContent, timestamp, wantsReceipt, pushName, isBroadCast)
und in self.handleMyCommands dann den messageContent parsen und entsprechende Aktionen veranlassen.
[hr]Wieso nutzt du,
im def init
self.jid = "%s@s.whatsapp.net" % phoneNumberdef login(self, username, password):
self.myjid = "%s@s.whatsapp.net" % usernamealso du setzt die Variable 2 mal, nutzt sie aber nicht.
Ist irgendein Leftover von vorhergehenden Änderungen. Wird konkret nicht benötigt. myjid ist aber im Gegensatz zu jid die eigene TelNr -
@ framp ich versteh die folgende zeile nicht:
if self.auhorizedCommandSenderList == None:
Heißt doch, wenn self.authorizedListe = leer ist oder? also dann wenn jemand geschrieben hat der nicht darf richtig?
also wirft er wenn ich schreibe mit -m meine nummer mich in den else Teil richtig?
edit: habs gefixt
stelle nachher die korrigierte Version framp bereit und der baut nen patch
-
-
Quote from Steakschen
btw, kennt sich jemand in Python aus gut?
Ich brauch nur schnell nen Code Snipsel für Daten aus einer TXT einzulesen und diese in ein Array schreiben.
TXT
Carsten:490101010101
Tom:12031230123
Uschi:2020310230123
und in dem Array
Nummern_privat = ["n491010101","202020202","10101010"]
stehn, der Sinn der Sache ist der dann kann man txt datei anlegen mit Nummer die man dann für unterschiedliche Befehle Rechte einräumen kann.
Will das Array nicht im ProgrammCode eintragen/pflegen sondern die TXT
Gibt diverse Moeglichkeiten. Eine waereCodeinput="Carsten:490101010101\nTom:12031230123\nUschi:2020310230123" print [e.split(":")[1] for e in input.split("\n")]
(vorher natuerlich noch aus einer Datei einlesen) -
Zum einlesen dann
Input=fopen("Datei","r")
Oder muss ich's zeilenweise machenedit: habs rausgefunden, für die die es auch mal brauchen, also grobes Beispiel mit Parameterübergabe
Python
Display More#!/usr/bin/python # -*- coding: utf-8 -*- import sys nummern=[] datei = open(sys.argv[1], "r") for zeile in datei: liste = zeile[:-1].split(":") nummern.append(liste[1]) datei.close() caller = sys.argv[2] if caller in nummern: print("ja") else: print("no")
Werd es noch in den Listener bauen und euch zur Verfügung stellen.
Ich werde es nutzen da ich manche Whatsapp Befehle nur von bestimmten Nummern auslösen will, diese Nummern aber nicht im QuellCode pflegen will sondern einer Datei.
Z.B. Gebe ich das Menu heute und morgen in der Mensa per Befehl zurück, das können nun immer mehr Leute und die ganze Zeit habe ich in in einer Großen if im Quellcode, jetzt bald in einer Datei -
So funktioniert es natuerlich auch. Gibt eben viele Wege nach Rom
. Vor allen Dingen ist es leichter lesbar fuer jemanden der ListComprehensions nicht kennt. Sie sind aber ein typisches Python Feature und wenn man sich dran gewoehnt hat auch sehr hilfreich.
Man kann aber auch die ganze Dateil auf einmal lesen und dann mit dem obigen Ausdruck zerlegen.
Codetext_file = open("data.txt", "r") lines = text_file.readlines() nummern=[e.split(":")[1].rstrip('\n') for e in lines]
Fehlerbehandlung wenn die Datei nicht existiert fehlt natuerlich noch. -
-
ja
ich lern ja nochwollte es zuerst als Funktion im Listener bauen, aber er meinte immer er kennt die globale Variable nicht.
dachte ein
def namecheck(filename,callernumber)
----- programmcodereicht
-
...ich lern ja noch
...
Ich weiss, Desshalb ja mein Hinweis wie man es auch noch anders machen kann
-
Ich weiss, Desshalb ja mein Hinweis wie man es auch noch anders machen kannDanke dafür :thumbs1:
Mal schauen welches ich nehme, hätte es ja lieber im Listener, aber irgendwie auch nicht
-
-
Hallo,
kurze Frage. Ist es denn Möglich den ListenerClient mit Crontab, sagen wir alle 5 Minuten, ausführen zu lassen?
Wie ich es aktuell probiere funktioniert es nämlich nicht. Hat hier schon jemand eventuell eine Lösung gefunden? -
Moin,
bei mir läuft alles soweit, allerdings frage ich mich ob ich quasi einen "Absendernamen" setzen kann. Bei mir am iPhone wird leider immer nur die registrierte Nummer angezeigt. Nicht der Nickname den man ja im normalen Whatsappclient setzen kann
-
Kann hier jemand eine fertige CmdClient.py posten?
Ich blick garnicht mehr durch.
Wäre Toll, danke.und Framps Patch ist auch down.
-
-
Hallo zusammen,
ich weiß der Post ist 10 Jahre alt.
Ergo: Das Thema ist nicht neu.
Ich (Pi-Opa) suche eine Möglichkeit auf einem Headless-Pi (3B+, Bullseye) eine optische Nachrichten-Eingangs Anzeige per LED zu realisieren.
Leider weiß ich gar nicht recht wo anfangen ....
Hat vielleicht doch jemand eine Tip ??
lG
Gunter
-
Hi,
mach am besten einen neuen Thread auf.
-
-