Files
nostrdvm/nostr_dvm/utils/heartbeat.py

23 lines
1.1 KiB
Python

from nostr_dvm.utils.definitions import EventDefinitions
from nostr_dvm.utils.nostr_utils import send_event
from nostr_dvm.utils.print_utils import bcolors
from nostr_sdk import Tag, Keys, EventBuilder, Timestamp
async def beat(dvm_config, client, frequency=300):
status_tag = Tag.parse(["status", "My heart keeps beating like a hammer"])
d_tag = Tag.parse(["d", dvm_config.NIP89.DTAG])
expiration_tag = Tag.parse(["expiration", str(Timestamp.now().as_secs() + frequency)])
tags = [status_tag, d_tag, expiration_tag]
keys = Keys.parse(dvm_config.NIP89.PK)
content = "Alive and kicking"
event = EventBuilder(EventDefinitions.KIND_HEARTBEAT, content).tags(tags).sign_with_keys(keys)
response_status = await send_event(event, client=client, dvm_config=dvm_config, broadcast=True)
print(bcolors.BRIGHT_RED + "[" + dvm_config.NIP89.NAME + "] Sent heartbeat for " + dvm_config.NIP89.NAME + ". Success: " + str(response_status.success) + " Failed: " + str(response_status.failed) + " EventID: "
+ response_status.id.to_hex() + " / " + response_status.id.to_bech32())