Skip to content

Commit

Permalink
Merge pull request #56 from iKonoTelecomunicaciones/55-parametrize-ev…
Browse files Browse the repository at this point in the history
…ent-log-file-generation

feat(events): ✨ Parametrized event log generation
  • Loading branch information
egalvis39 committed Nov 23, 2023
2 parents 1428a35 + 38f53c1 commit 38a4f80
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 8 deletions.
1 change: 1 addition & 0 deletions menuflow/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ def do_update(self, helper: ConfigUpdateHelper) -> None:
copy("server.port")
copy("server.public_url")
copy("server.base_path")
copy_dict("events")
copy_dict("nats")
copy_dict("logging")
shared_secret = self["server.unshared_secret"]
Expand Down
12 changes: 8 additions & 4 deletions menuflow/events/base_event.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from mautrix.util.logging import TraceLogger
from nats.js.client import JetStreamContext

from ..config import Config
from .event_types import MenuflowEventTypes, MenuflowNodeEvents
from .nats_publisher import NatsPublisher

Expand All @@ -22,17 +23,20 @@ class BaseEvent(SerializableAttrs):
timestamp: float = ib(factory=float)
sender: UserID = ib(factory=UserID)

def send(self):
def send(self, config: Config):
log.error(f"Sending event {self.serialize()}")
asyncio.create_task(self.send_to_nats())

async def send_to_nats(self):
jetstream: JetStreamContext = None
if config["events.write_to_file"]:
self.write_to_file()

def write_to_file(self):
file = open("/data/room_events.txt", "a")
file.write(f"{json.dumps(self.serialize())}\n\n")
file.close()
log.error(f"Sending event {self.serialize()}")

async def send_to_nats(self):
jetstream: JetStreamContext = None
_, jetstream = await NatsPublisher.get_connection()
if jetstream:
try:
Expand Down
4 changes: 2 additions & 2 deletions menuflow/events/event_generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
def send_node_event(
event_type: MenuflowNodeEvents, config: Config, send_event: Optional[bool] = None, **kwargs
):
general_send_event = config["menuflow.send_events"]
general_send_event = config["events.send_events"]
send_node_event = send_event if send_event is not None else general_send_event
if not send_node_event:
return
Expand Down Expand Up @@ -54,4 +54,4 @@ def send_node_event(
variables=kwargs.get("variables"),
)

event.send()
event.send(config=config)
7 changes: 5 additions & 2 deletions menuflow/example-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,6 @@ menuflow:
start: 1
end: 3

# Do you want that nodes generate events when they are excecuted?
send_events: true

server:
# The IP and port to listen to.
Expand All @@ -51,6 +49,11 @@ server:
# Set to "generate" to generate and save a new token at startup.
unshared_secret: generate

events:
write_to_file: false
# Do you want that nodes generate events when they are excecuted?
send_events: true

# Nats configuration
nats:
enabled: false
Expand Down

0 comments on commit 38a4f80

Please sign in to comment.