added receipts
This commit is contained in:
parent
dde477fcda
commit
4280ba5624
1 changed files with 18 additions and 10 deletions
28
lxmfbot.py
28
lxmfbot.py
|
|
@ -11,6 +11,7 @@ from types import SimpleNamespace
|
||||||
class LXMFBot:
|
class LXMFBot:
|
||||||
|
|
||||||
delivery_callbacks = []
|
delivery_callbacks = []
|
||||||
|
receipts = []
|
||||||
queue = Queue(maxsize = 5)
|
queue = Queue(maxsize = 5)
|
||||||
|
|
||||||
def __init__(self, name='LXMFBot'):
|
def __init__(self, name='LXMFBot'):
|
||||||
|
|
@ -45,7 +46,7 @@ class LXMFBot:
|
||||||
if announce > int(time.time()):
|
if announce > int(time.time()):
|
||||||
RNS.log('Recent announcement', RNS.LOG_DEBUG)
|
RNS.log('Recent announcement', RNS.LOG_DEBUG)
|
||||||
else:
|
else:
|
||||||
with open(self.announce_path, "w") as af:
|
with open(self.announce_path, "w+") as af:
|
||||||
next_announce = int(time.time()) + 1800
|
next_announce = int(time.time()) + 1800
|
||||||
af.write(str(next_announce))
|
af.write(str(next_announce))
|
||||||
self.local.announce()
|
self.local.announce()
|
||||||
|
|
@ -57,17 +58,24 @@ class LXMFBot:
|
||||||
|
|
||||||
def _message_received(self, message):
|
def _message_received(self, message):
|
||||||
sender = RNS.hexrep(message.source_hash, delimit=False)
|
sender = RNS.hexrep(message.source_hash, delimit=False)
|
||||||
|
receipt = RNS.hexrep(message.hash, delimit=False)
|
||||||
|
RNS.log(f'Message receipt <{receipt}>', RNS.LOG_INFO)
|
||||||
def reply(msg):
|
def reply(msg):
|
||||||
self.send(sender, msg)
|
self.send(sender, msg)
|
||||||
for callback in self.delivery_callbacks:
|
if receipt not in self.receipts:
|
||||||
obj = {
|
self.receipts.append(receipt)
|
||||||
'lxmf' : message,
|
if len(self.receipts) > 100:
|
||||||
'reply' : reply,
|
self.receipts.pop(0)
|
||||||
'sender' : sender,
|
for callback in self.delivery_callbacks:
|
||||||
'content' : message.content.decode('utf-8')
|
obj = {
|
||||||
}
|
'lxmf' : message,
|
||||||
msg = SimpleNamespace(**obj)
|
'reply' : reply,
|
||||||
callback(msg)
|
'sender' : sender,
|
||||||
|
'content' : message.content.decode('utf-8'),
|
||||||
|
'hash' : receipt
|
||||||
|
}
|
||||||
|
msg = SimpleNamespace(**obj)
|
||||||
|
callback(msg)
|
||||||
|
|
||||||
def send(self, destination, message, title='Reply'):
|
def send(self, destination, message, title='Reply'):
|
||||||
try:
|
try:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue