diff --git a/main.py b/main.py index 69afd37..cca72e9 100644 --- a/main.py +++ b/main.py @@ -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() diff --git a/utils/admin_utils.py b/utils/admin_utils.py index 69be854..d2ebae1 100644 --- a/utils/admin_utils.py +++ b/utils/admin_utils.py @@ -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) diff --git a/utils/nip89_utils.py b/utils/nip89_utils.py index 40a47ee..56c0314 100644 --- a/utils/nip89_utils.py +++ b/utils/nip89_utils.py @@ -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) \ No newline at end of file + dotenv.set_key(env_path, dtag, oskey)