deleteable events

This commit is contained in:
Believethehype 2023-11-30 22:09:50 +01:00
parent a142d5fdc0
commit d912a49ecd
3 changed files with 24 additions and 5 deletions

View File

@ -39,7 +39,7 @@ def run_nostr_dvm_with_local_config():
# Spawn DVM3 Kind 5002 Local Text TranslationLibre, calling the free LibreTranslateApi, as an alternative.
# This will only run and appear on the bot if an endpoint is set in the .env
if os.getenv("LIBRE_TRANSLATE_ENDPOINT") is not None and os.getenv("LIBRE_TRANSLATE_ENDPOINT") != "":
libre_translator = build_libretranslator("Libre Translator", "google_translator")
libre_translator = build_libretranslator("Libre Translator", "libre_translator")
bot_config.SUPPORTED_DVMS.append(libre_translator) # We add translator to the bot
libre_translator.run()

View File

@ -6,7 +6,7 @@ from nostr_sdk import Keys, EventBuilder, PublicKey
from utils.database_utils import get_from_sql_table, list_db, delete_from_sql_table, update_sql_table, \
get_or_add_user, clean_db
from utils.dvmconfig import DVMConfig
from utils.nip89_utils import nip89_announce_tasks, NIP89Config
from utils.nip89_utils import nip89_announce_tasks, NIP89Config, nip89_delete_announcement
from utils.nostr_utils import send_event, update_profile
@ -73,6 +73,18 @@ def admin_make_database_updates(adminconfig: AdminConfig = None, dvmconfig: DVMC
if adminconfig.REBROADCAST_NIP89:
nip89_announce_tasks(dvmconfig, client=client)
# TODO make this callable
delete_previous_announcement = False
if delete_previous_announcement:
# privkey from sender
keys = Keys.from_sk_str("")
print("Pubkey generated from Private Key " + keys.public_key().to_hex())
print("Pubkey of Event: " + "") #pubkey from event, to compare to given privkey
dtag = "" #dtag from event
event_id = "" #id of event
nip89_delete_announcement(event_id, keys, dtag, client, dvmconfig)
if adminconfig.UPDATE_PROFILE:
update_profile(dvmconfig, lud16=adminconfig.LUD16)

View File

@ -4,7 +4,7 @@ from hashlib import sha256
from pathlib import Path
import dotenv
from nostr_sdk import Tag, Keys, EventBuilder, Filter, Alphabet, PublicKey, Event
from nostr_sdk import Tag, Keys, EventBuilder, Filter, Alphabet, PublicKey, Event, Client
from utils.definitions import EventDefinitions
from utils.nostr_utils import send_event
@ -24,7 +24,6 @@ def nip89_create_d_tag(name, pubkey, image):
return d_tag
def nip89_announce_tasks(dvm_config, client):
k_tag = Tag.parse(["k", str(dvm_config.NIP89.KIND)])
d_tag = Tag.parse(["d", dvm_config.NIP89.DTAG])
@ -35,6 +34,13 @@ def nip89_announce_tasks(dvm_config, client):
print("Announced NIP 89 for " + dvm_config.NIP89.NAME)
def nip89_delete_announcement(eid: str, keys: Keys, dtag: str, client: Client, config):
e_tag = Tag.parse(["e", eid])
a_tag = Tag.parse(["a", str(EventDefinitions.KIND_ANNOUNCEMENT) + ":" + keys.public_key().to_hex() + ":" + dtag])
event = EventBuilder(5, "", [e_tag, a_tag]).to_event(keys)
send_event(event, client, config)
def nip89_fetch_all_dvms(client):
ktags = []
for i in range(5000, 5999):
@ -77,9 +83,10 @@ def check_and_set_d_tag(identifier, name, pk, imageurl):
else:
return os.getenv("NIP89_DTAG_" + identifier.upper())
def nip89_add_dtag_to_env_file(dtag, oskey):
env_path = Path('.env')
if env_path.is_file():
print(f'loading environment from {env_path.resolve()}')
dotenv.load_dotenv(env_path, verbose=True, override=True)
dotenv.set_key(env_path, dtag, oskey)
dotenv.set_key(env_path, dtag, oskey)