import json import account import requests # Plugin Data info = { "name": "Example Plugin", "description": "This is a plugin to be used as an example", "version": "1.0", "author": "Nathan.Woodburn/" } # Functions functions = { "search":{ "name": "Search Owned", "type": "default", "description": "Search for owned domains containing a string", "params": { "search": { "name":"Search string", "type":"text" } }, "returns": { "domains": { "name": "List of owned domains", "type": "list" } } }, "transfer":{ "name": "Bulk Transfer Domains", "type": "default", "description": "Transfer domains to another wallet", "params": { "address": { "name":"Address to transfer to", "type":"address" }, "domains": { "name":"List of domains to transfer", "type":"longText" } }, "returns": { "hash": { "name": "Hash of the transaction", "type": "tx" }, "address":{ "name": "Address of the new owner", "type": "text" } } }, "dns":{ "name": "Set DNS for Domains", "type": "default", "description": "Set DNS for domains", "params": { "domains": { "name":"List of domains to set DNS for", "type":"longText" }, "dns": { "name":"DNS", "type":"dns" } }, "returns": { "hash": { "name": "Hash of the transaction", "type": "tx" }, "dns":{ "name": "DNS", "type": "dns" } } }, "niami": { "name": "Niami info", "type": "domain", "description": "Check the domains niami rating", "params": {}, "returns": { "rating": { "name": "Niami Rating", "type": "text" } } }, "niamiSearch": { "name": "Niami info", "type": "search", "description": "Check the domains niami rating", "params": {}, "returns": { "rating": { "name": "Niami Rating", "type": "text" } } }, "connections":{ "name": "HSD Connections", "type": "dashboard", "description": "Show the number of connections the HSD node is connected to", "params": {}, "returns": { "connections": { "name": "HSD Connections", "type": "text" } } } } def check(params, authentication): domains = params["domains"] domains = domains.splitlines() wallet = authentication.split(":")[0] owned = account.getDomains(wallet) # Only keep owned domains ["name"] ownedNames = [domain["name"] for domain in owned] domains = [domain for domain in domains if domain in ownedNames] return {"domains": domains} def search(params, authentication): search = params["search"].lower() wallet = authentication.split(":")[0] owned = account.getDomains(wallet) # Only keep owned domains ["name"] ownedNames = [domain["name"] for domain in owned] domains = [domain for domain in ownedNames if search in domain] return {"domains": domains} def transfer(params, authentication): address = params["address"] return {"hash":"f921ffe1bb01884bf515a8079073ee9381cb93a56b486694eda2cce0719f27c0","address":address} def dns(params,authentication): dns = params["dns"] return {"hash":"f921ffe1bb01884bf515a8079073ee9381cb93a56b486694eda2cce0719f27c0","dns":dns} def niami(params, authentication): domain = params["domain"] response = requests.get(f"https://api.handshake.niami.io/domain/{domain}") data = response.json()["data"] if 'rating' not in data: return {"rating":"No rating found."} rating = str(data["rating"]["score"]) + " (" + data["rating"]["rarity"] + ")" return {"rating":rating} def niamiSearch(params, authentication): return niami(params, authentication) def connections(params,authentication): outbound = account.hsd.getInfo()['pool']['outbound'] return {"connections": outbound}