diff --git a/nostr_dvm/interfaces/dvmtaskinterface.py b/nostr_dvm/interfaces/dvmtaskinterface.py index 5f0cb5c..0be20f6 100644 --- a/nostr_dvm/interfaces/dvmtaskinterface.py +++ b/nostr_dvm/interfaces/dvmtaskinterface.py @@ -31,7 +31,7 @@ class DVMTaskInterface: admin_config: AdminConfig dependencies = [] - def __init__(self, name, dvm_config: DVMConfig, nip89config: NIP89Config, nip88config: NIP88Config, + def __init__(self, name, dvm_config: DVMConfig, nip89config: NIP89Config, nip88config: NIP88Config = None, admin_config: AdminConfig = None, options=None, task=None): self.init(name, dvm_config, admin_config, nip88config, nip89config, task) @@ -59,7 +59,7 @@ class DVMTaskInterface: dvm_config.NIP89 = self.NIP89_announcement(nip89config) if nip88config is None: - dvm_config.NIP88 = NIP88Config() + dvm_config.NIP88 = None else: dvm_config.NIP88 = nip88config diff --git a/nostr_dvm/tasks/advanced_search.py b/nostr_dvm/tasks/advanced_search.py index 9aa3646..f861a8e 100644 --- a/nostr_dvm/tasks/advanced_search.py +++ b/nostr_dvm/tasks/advanced_search.py @@ -165,7 +165,7 @@ def build_example(name, identifier, admin_config): # Add NIP89 nip89info = { "name": name, - "image": "https://image.nostr.build/a99ab925084029d9468fef8330ff3d9be2cf67da473b024f2a6d48b5cd77197f.jpg", + "image": "https://nostr.band/android-chrome-192x192.png", "about": "I search notes on Nostr.band.", "encryptionSupported": True, "cashuAccepted": True, diff --git a/nostr_dvm/tasks/content_discovery_currently_popular.py b/nostr_dvm/tasks/content_discovery_currently_popular.py index cdc0b48..dfe164a 100644 --- a/nostr_dvm/tasks/content_discovery_currently_popular.py +++ b/nostr_dvm/tasks/content_discovery_currently_popular.py @@ -97,6 +97,7 @@ class DicoverContentCurrentlyPopular(DVMTaskInterface): # Query events from database timestamp_hour_ago = Timestamp.now().as_secs() - 3600 lasthour = Timestamp.from_secs(timestamp_hour_ago) + filter1 = Filter().kind(definitions.EventDefinitions.KIND_NOTE).since(lasthour) events = cli.database().query([filter1]) ns.finallist = {} diff --git a/nostr_dvm/tasks/discovery_trending_notes_nostrband.py b/nostr_dvm/tasks/discovery_trending_notes_nostrband.py index 502bede..afab0bc 100644 --- a/nostr_dvm/tasks/discovery_trending_notes_nostrband.py +++ b/nostr_dvm/tasks/discovery_trending_notes_nostrband.py @@ -78,8 +78,9 @@ class TrendingNotesNostrBand(DVMTaskInterface): return json.dumps(result_list) - except: - return "error" + except Exception as e: + print(e) + return json.dumps([]) def post_process(self, result, event): """Overwrite the interface function to return a social client readable format, if requested""" @@ -104,7 +105,7 @@ def build_example(name, identifier, admin_config): nip89info = { "name": name, - "image": "https://image.nostr.build/4dc758923c7bfc5ba92030e6419272ec7470c3809d36e88e99f3a9daece88bac.png", + "image": "https://nostr.band/android-chrome-192x192.png", "about": "I show trending notes from nostr.band", "amount": "Free", "encryptionSupported": True, diff --git a/nostr_dvm/tasks/imageinterrogator.py b/nostr_dvm/tasks/imageinterrogator.py index dd0c236..92f8ad7 100644 --- a/nostr_dvm/tasks/imageinterrogator.py +++ b/nostr_dvm/tasks/imageinterrogator.py @@ -25,7 +25,7 @@ class ImageInterrogator(DVMTaskInterface): TASK: str = "image-to-text" FIX_COST: float = 80 - def __init__(self, name, dvm_config: DVMConfig, nip89config: NIP89Config, nip88config: NIP88Config, + def __init__(self, name, dvm_config: DVMConfig, nip89config: NIP89Config, nip88config: NIP88Config = None, admin_config: AdminConfig = None, options=None): super().__init__(name=name, dvm_config=dvm_config, nip89config=nip89config, nip88config=nip88config, admin_config=admin_config, options=options) diff --git a/nostr_dvm/tasks/search_users.py b/nostr_dvm/tasks/search_users.py index e9f8041..c1273ea 100644 --- a/nostr_dvm/tasks/search_users.py +++ b/nostr_dvm/tasks/search_users.py @@ -95,7 +95,7 @@ class SearchUser(DVMTaskInterface): # Query events from database - filter1 = Filter().kind(0) + filter1 = Filter().kind(Kind(0)) events = cli.database().query([filter1]) # for event in events: # print(event.as_json()) diff --git a/nostr_dvm/tasks/summarization_unleashed_chat.py b/nostr_dvm/tasks/summarization_unleashed_chat.py index 375d815..aca2af5 100644 --- a/nostr_dvm/tasks/summarization_unleashed_chat.py +++ b/nostr_dvm/tasks/summarization_unleashed_chat.py @@ -109,7 +109,7 @@ class SummarizationUnleashedChat(DVMTaskInterface): for model in client.models.list(): print('- ' + model.id) - content = "Summarize the following notes: " + str(options["prompt"])[:4000] + content = "Summarize the following notes: " + str(options["prompt"])[:3500] normal_stream = client.chat.completions.create( messages=[ { diff --git a/nostr_dvm/utils/database_utils.py b/nostr_dvm/utils/database_utils.py index 882a5d0..579221d 100644 --- a/nostr_dvm/utils/database_utils.py +++ b/nostr_dvm/utils/database_utils.py @@ -114,7 +114,11 @@ def get_from_sql_table(db, npub): user.lud16 = row[5] user.name = row[6] user.lastactive = row[7] - user.subscribed = row[8] + try: + user.subscribed = row[8] + except: + user.subscribed = False + return user diff --git a/setup.py b/setup.py index 5e55684..646fe9a 100644 --- a/setup.py +++ b/setup.py @@ -15,7 +15,7 @@ setup( long_description=LONG_DESCRIPTION, packages=find_packages(include=['nostr_dvm', 'nostr_dvm.*']), - install_requires=["nostr-sdk==0.10.0", + install_requires=["nostr-sdk=>0.10.0", "bech32", "pycryptodome==3.20.0", "python-dotenv==1.0.0", diff --git a/tests/discovery.py b/tests/discovery.py index 450eeee..e65dc3b 100644 --- a/tests/discovery.py +++ b/tests/discovery.py @@ -1,4 +1,5 @@ import os +import threading from pathlib import Path import dotenv @@ -37,9 +38,10 @@ def playground(): subscription_config.LNBITS_INVOICE_KEY = invoice_key subscription_config.LNBITS_ADMIN_KEY = admin_key # The dvm might pay failed jobs back subscription_config.LNBITS_URL = os.getenv("LNBITS_HOST") - Subscription(subscription_config) + x = threading.Thread(target=Subscription, args=(Subscription(subscription_config),)) + x.start() - keep_alive() + #keep_alive() if __name__ == '__main__':