mirror of
https://github.com/believethehype/nostrdvm.git
synced 2025-10-10 23:42:30 +02:00
24 lines
755 B
Python
24 lines
755 B
Python
import base64
|
|
import hashlib
|
|
from nostr_sdk import EventBuilder, Tag, Kind, Keys
|
|
|
|
|
|
def sha256sum(filename):
|
|
with open(filename, 'rb', buffering=0) as f:
|
|
return hashlib.file_digest(f, 'sha256').hexdigest()
|
|
|
|
async def generate_nip98_header(pkeys_hex, url="", kind="POST", filepath=""):
|
|
keys = Keys.parse(pkeys_hex)
|
|
utag = Tag.parse(["u", url])
|
|
methodtag = Tag.parse(["method", kind])
|
|
tags = [utag, methodtag]
|
|
if kind == "POST":
|
|
payloadtag = Tag.parse(["payload", sha256sum(filepath)])
|
|
tags.append(payloadtag)
|
|
event = EventBuilder(Kind(27235), "", tags).to_event(keys)
|
|
|
|
encoded_nip98_event = base64.b64encode(event.as_json().encode('utf-8')).decode('utf-8')
|
|
|
|
return "Nostr " + encoded_nip98_event
|
|
|