mirror of
https://github.com/aljazceru/nostrdvm.git
synced 2025-12-24 01:14:24 +01:00
fixes, allow sats below 1
This commit is contained in:
Binary file not shown.
5
.gitignore
vendored
5
.gitignore
vendored
@@ -160,3 +160,8 @@ cython_debug/
|
|||||||
#.idea/
|
#.idea/
|
||||||
.DS_Store
|
.DS_Store
|
||||||
*.db
|
*.db
|
||||||
|
outputs/yt.mp3
|
||||||
|
.\outputs\audio.mp3
|
||||||
|
.\outputs\/yt.mp3
|
||||||
|
.\outputs\audio.mp3
|
||||||
|
.\outputs\/yt.mp3
|
||||||
|
|||||||
12
dvm.py
12
dvm.py
@@ -115,7 +115,7 @@ class DVM:
|
|||||||
|
|
||||||
cashu_redeemed = False
|
cashu_redeemed = False
|
||||||
if cashu != "":
|
if cashu != "":
|
||||||
cashu_redeemed, cashu_message = redeem_cashu(cashu, amount, self.dvm_config, self.client)
|
cashu_redeemed, cashu_message = redeem_cashu(cashu, int(amount), self.dvm_config, self.client)
|
||||||
if cashu_message != "success":
|
if cashu_message != "success":
|
||||||
send_job_status_reaction(nip90_event, "error", False, amount, self.client, cashu_message,
|
send_job_status_reaction(nip90_event, "error", False, amount, self.client, cashu_message,
|
||||||
self.dvm_config)
|
self.dvm_config)
|
||||||
@@ -132,8 +132,8 @@ class DVM:
|
|||||||
do_work(nip90_event)
|
do_work(nip90_event)
|
||||||
# if task is directed to us via p tag and user has balance, do the job and update balance
|
# if task is directed to us via p tag and user has balance, do the job and update balance
|
||||||
elif p_tag_str == Keys.from_sk_str(
|
elif p_tag_str == Keys.from_sk_str(
|
||||||
self.dvm_config.PUBLIC_KEY) and user.balance >= amount:
|
self.dvm_config.PUBLIC_KEY) and user.balance >= int(amount):
|
||||||
balance = max(user.balance - amount, 0)
|
balance = max(user.balance - int(amount), 0)
|
||||||
update_sql_table(db=self.dvm_config.DB, npub=user.npub, balance=balance,
|
update_sql_table(db=self.dvm_config.DB, npub=user.npub, balance=balance,
|
||||||
iswhitelisted=user.iswhitelisted, isblacklisted=user.isblacklisted,
|
iswhitelisted=user.iswhitelisted, isblacklisted=user.isblacklisted,
|
||||||
nip05=user.nip05, lud16=user.lud16, name=user.name,
|
nip05=user.nip05, lud16=user.lud16, name=user.name,
|
||||||
@@ -160,9 +160,9 @@ class DVM:
|
|||||||
+ nip90_event.as_json())
|
+ nip90_event.as_json())
|
||||||
if bid > 0:
|
if bid > 0:
|
||||||
bid_offer = int(bid / 1000)
|
bid_offer = int(bid / 1000)
|
||||||
if bid_offer >= amount:
|
if bid_offer >= int(amount):
|
||||||
send_job_status_reaction(nip90_event, "payment-required", False,
|
send_job_status_reaction(nip90_event, "payment-required", False,
|
||||||
amount, # bid_offer
|
int(amount), # bid_offer
|
||||||
client=self.client, dvm_config=self.dvm_config)
|
client=self.client, dvm_config=self.dvm_config)
|
||||||
|
|
||||||
else: # If there is no bid, just request server rate from user
|
else: # If there is no bid, just request server rate from user
|
||||||
@@ -170,7 +170,7 @@ class DVM:
|
|||||||
"[" + self.dvm_config.NIP89.name + "] Requesting payment for Event: " +
|
"[" + self.dvm_config.NIP89.name + "] Requesting payment for Event: " +
|
||||||
nip90_event.id().to_hex())
|
nip90_event.id().to_hex())
|
||||||
send_job_status_reaction(nip90_event, "payment-required",
|
send_job_status_reaction(nip90_event, "payment-required",
|
||||||
False, amount, client=self.client, dvm_config=self.dvm_config)
|
False, int(amount), client=self.client, dvm_config=self.dvm_config)
|
||||||
|
|
||||||
# else:
|
# else:
|
||||||
# print("[" + self.dvm_config.NIP89.name + "] Task " + task + " not supported on this DVM, skipping..")
|
# print("[" + self.dvm_config.NIP89.name + "] Task " + task + " not supported on this DVM, skipping..")
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ class DVMTaskInterface:
|
|||||||
NAME: str
|
NAME: str
|
||||||
KIND: int
|
KIND: int
|
||||||
TASK: str
|
TASK: str
|
||||||
COST: int
|
COST: float
|
||||||
PRIVATE_KEY: str
|
PRIVATE_KEY: str
|
||||||
PUBLIC_KEY: str
|
PUBLIC_KEY: str
|
||||||
DVM = DVM
|
DVM = DVM
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ Params: -model # models: juggernaut, dynavision, colossusProject, newrea
|
|||||||
class ImageGenerationDALLE(DVMTaskInterface):
|
class ImageGenerationDALLE(DVMTaskInterface):
|
||||||
KIND: int = EventDefinitions.KIND_NIP90_GENERATE_IMAGE
|
KIND: int = EventDefinitions.KIND_NIP90_GENERATE_IMAGE
|
||||||
TASK: str = "text-to-image"
|
TASK: str = "text-to-image"
|
||||||
COST: int = 120
|
COST: float = 120
|
||||||
|
|
||||||
def __init__(self, name, dvm_config: DVMConfig, nip89config: NIP89Config,
|
def __init__(self, name, dvm_config: DVMConfig, nip89config: NIP89Config,
|
||||||
admin_config: AdminConfig = None, options=None):
|
admin_config: AdminConfig = None, options=None):
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ Params: -model # models: juggernaut, dynavision, colossusProject, newrea
|
|||||||
class ImageGenerationSDXL(DVMTaskInterface):
|
class ImageGenerationSDXL(DVMTaskInterface):
|
||||||
KIND: int = EventDefinitions.KIND_NIP90_GENERATE_IMAGE
|
KIND: int = EventDefinitions.KIND_NIP90_GENERATE_IMAGE
|
||||||
TASK: str = "text-to-image"
|
TASK: str = "text-to-image"
|
||||||
COST: int = 50
|
COST: float = 50
|
||||||
|
|
||||||
def __init__(self, name, dvm_config: DVMConfig, nip89config: NIP89Config,
|
def __init__(self, name, dvm_config: DVMConfig, nip89config: NIP89Config,
|
||||||
admin_config: AdminConfig = None, options=None):
|
admin_config: AdminConfig = None, options=None):
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ Params: -model # models: juggernaut, dynavision, colossusProject, newrea
|
|||||||
class SpeechToTextWhisperX(DVMTaskInterface):
|
class SpeechToTextWhisperX(DVMTaskInterface):
|
||||||
KIND: int = EventDefinitions.KIND_NIP90_EXTRACT_TEXT
|
KIND: int = EventDefinitions.KIND_NIP90_EXTRACT_TEXT
|
||||||
TASK: str = "speech-to-text"
|
TASK: str = "speech-to-text"
|
||||||
COST: int = 1
|
COST: float = 0.1
|
||||||
|
|
||||||
def __init__(self, name, dvm_config: DVMConfig, nip89config: NIP89Config,
|
def __init__(self, name, dvm_config: DVMConfig, nip89config: NIP89Config,
|
||||||
admin_config: AdminConfig = None, options=None):
|
admin_config: AdminConfig = None, options=None):
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ Params: None
|
|||||||
class TextExtractionPDF(DVMTaskInterface):
|
class TextExtractionPDF(DVMTaskInterface):
|
||||||
KIND: int = EventDefinitions.KIND_NIP90_EXTRACT_TEXT
|
KIND: int = EventDefinitions.KIND_NIP90_EXTRACT_TEXT
|
||||||
TASK: str = "pdf-to-text"
|
TASK: str = "pdf-to-text"
|
||||||
COST: int = 0
|
COST: float = 0
|
||||||
|
|
||||||
def __init__(self, name, dvm_config: DVMConfig, nip89config: NIP89Config,
|
def __init__(self, name, dvm_config: DVMConfig, nip89config: NIP89Config,
|
||||||
admin_config: AdminConfig = None, options=None):
|
admin_config: AdminConfig = None, options=None):
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ Params: -language The target language
|
|||||||
class Translation(DVMTaskInterface):
|
class Translation(DVMTaskInterface):
|
||||||
KIND: int = EventDefinitions.KIND_NIP90_TRANSLATE_TEXT
|
KIND: int = EventDefinitions.KIND_NIP90_TRANSLATE_TEXT
|
||||||
TASK: str = "translation"
|
TASK: str = "translation"
|
||||||
COST: int = 0
|
COST: float = 0
|
||||||
|
|
||||||
def __init__(self, name, dvm_config: DVMConfig, nip89config: NIP89Config,
|
def __init__(self, name, dvm_config: DVMConfig, nip89config: NIP89Config,
|
||||||
admin_config: AdminConfig = None, options=None):
|
admin_config: AdminConfig = None, options=None):
|
||||||
|
|||||||
@@ -149,7 +149,7 @@ def get_amount_per_task(task, dvm_config, duration=1):
|
|||||||
duration = 1
|
duration = 1
|
||||||
for dvm in dvm_config.SUPPORTED_DVMS: # this is currently just one
|
for dvm in dvm_config.SUPPORTED_DVMS: # this is currently just one
|
||||||
if dvm.TASK == task:
|
if dvm.TASK == task:
|
||||||
amount = dvm.COST * int(duration)
|
amount = dvm.COST * duration
|
||||||
return amount
|
return amount
|
||||||
else:
|
else:
|
||||||
print("[" + dvm_config.SUPPORTED_DVMS[
|
print("[" + dvm_config.SUPPORTED_DVMS[
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ from utils.nostr_utils import get_event_by_id
|
|||||||
|
|
||||||
|
|
||||||
def input_data_file_duration(event, dvm_config, client, start=0, end=0):
|
def input_data_file_duration(event, dvm_config, client, start=0, end=0):
|
||||||
|
print("[" + dvm_config.NIP89.name + "] Getting Duration of the Media file..")
|
||||||
input_value = ""
|
input_value = ""
|
||||||
input_type = "url"
|
input_type = "url"
|
||||||
for tag in event.tags():
|
for tag in event.tags():
|
||||||
@@ -228,7 +229,7 @@ def get_Twitter(input_value, start, end):
|
|||||||
|
|
||||||
|
|
||||||
def get_youtube(input_value, start, end, audioonly=True):
|
def get_youtube(input_value, start, end, audioonly=True):
|
||||||
filepath = '.\\outputs\\'
|
filepath = os.path.abspath(os.curdir) + r'/outputs/'
|
||||||
filename = ""
|
filename = ""
|
||||||
try:
|
try:
|
||||||
filename = downloadYouTube(input_value, filepath, audioonly)
|
filename = downloadYouTube(input_value, filepath, audioonly)
|
||||||
|
|||||||
Reference in New Issue
Block a user