Compare commits

...

4 Commits

Author SHA1 Message Date
f695d53f8d
feat: Ignore .venv
All checks were successful
Build Docker / Build Image (push) Successful in 1m6s
2024-11-21 15:21:08 +11:00
45fdaa2de4
feat: Add tx count plugin and fixed dns error 2024-04-08 11:44:50 +10:00
40b4c42492
feat: Fix lockup amount and auctions page 2024-03-15 15:07:27 +11:00
afd7ae2947
fix: Try to run automation every 5 mins 2024-03-15 14:59:07 +11:00
8 changed files with 81 additions and 37 deletions

2
.gitignore vendored
View File

@ -8,3 +8,5 @@ templates/assets/css/styles.min.css
ignore/
plugins/signatures.json
.venv/

Binary file not shown.

View File

@ -138,6 +138,8 @@ def getBalance(account: str):
if domain['state'] == "CLOSED":
domainValue += domain['value']
total = total - (domainValue/1000000)
locked = locked - (domainValue/1000000)
# Only keep 2 decimal places
total = round(total, 2)
@ -303,6 +305,12 @@ def getDNS(domain: str):
return {
"error": response['error']['message']
}
if 'result' not in response:
return {
"error": "No DNS records"
}
if 'records' not in response['result']:
return []
return response['result']['records']

View File

@ -101,9 +101,6 @@ def index():
functionOutput = plugins_module.runPluginFunction(function["plugin"],function["function"],{},request.cookies.get("account"))
plugins += render.plugin_output_dash(functionOutput,plugins_module.getPluginFunctionReturns(function["plugin"],function["function"]))
return render_template("index.html", account=account, available=available,
total=total, pending=pending, domains=domains,
domainsMobile=domainsMobile, plugins=plugins,

View File

@ -3,7 +3,7 @@ import account
import requests
import threading
import os
import datetime
import time
APIKEY = os.environ.get("hsd_api")
ip = os.getenv("hsd_ip")
@ -37,22 +37,21 @@ functions = {
}
}
started = 0
started = False
# Main entry point only lets the main function run every 5 mins
def automation(params, authentication):
global started
now = datetime.datetime.now().timestamp()
# Add 5 mins
now = now - 300
if now < started:
return {"Status": "Waiting before checking for new actions"}
started = datetime.datetime.now().timestamp()
if started:
return {"Status": "Auto Renews running"}
started = True
threading.Thread(target=automations_background, args=(authentication,)).start()
return {"Status": "Checking for actions"}
return {"Status": "Started Auto Renews"}
# Background function to run the automations
def automations_background(authentication):
while True:
print("Running automations")
# Get account details
account_name = account.check_account(authentication)
@ -79,3 +78,6 @@ def automations_background(authentication):
requests.post(f"http://x:{APIKEY}@{ip}:12039",json={"method": "sendbatch","params": [[["REDEEM"]]]})
except Exception as e:
print(e)
# Sleep for 5 mins before running again
time.sleep(300)

35
plugins/txcount.py Normal file
View File

@ -0,0 +1,35 @@
import json
import account
import requests
# Plugin Data
info = {
"name": "TX Count",
"description": "Plugin for checking how many txs are in a wallet",
"version": "1.0",
"author": "Nathan.Woodburn/"
}
# Functions
functions = {
"main":{
"name": "List TXs",
"type": "default",
"description": "Get TXs",
"params": {},
"returns": {
"txs":
{
"name": "Transactions",
"type": "text"
}
}
}
}
def main(params, authentication):
wallet = authentication.split(":")[0]
txs = account.getTransactions(wallet)
return {"txs": f'Total TXs: {len(txs)}'}

View File

@ -17,7 +17,7 @@ functions = {
"status":{
"name": "Check connection",
"type": "dashboard",
"description": "You need tp set varo_instance to the ICANN domain of the chosen Varo instance and varo_api to your varo API key before you can connect",
"description": "You need to set varo_instance to the ICANN domain of the chosen Varo instance and varo_api to your varo API key before you can connect",
"params": {},
"returns": {
"status":

View File

@ -4,7 +4,7 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>Dashboard - FireWallet</title>
<title>Auctions - FireWallet</title>
<link rel="icon" type="image/png" sizes="900x768" href="/assets/img/favicon.png">
<link rel="icon" type="image/png" sizes="900x768" href="/assets/img/favicon.png">
<link rel="icon" type="image/png" sizes="900x768" href="/assets/img/favicon.png">