Replying to Avatar 阿甘

import json

import hashlib

import hmac

import time

import random

import websocket

import chardet

import logging

# 设置日志级别和格式

logging.basicConfig(level=logging.INFO, format='%(asctime)s [%(levelname)s] %(message)s')

# Nostr公钥

nostr_pubkey = ""

# Nostr私钥

nostr_privkey = ""

# JLPT N1文法列表

n1_grammar = [

"こんにちは",

"美味しい",

"おはよう御座います",

"サヨナラ",

# 添加更多JLPT N1文法...

]

# 事件标签

tags = []

# 事件类型

kind = 1

# Nostr Relay网址列表

relays = [

"wss://relay.damus.io",

"wss://nos.lol",

"wss://nostr.mom",

"wss://relay.coinos.io/",

"wss://offchain.pub/"

]

def send_nostr_message():

try:

# 选择随机的JLPT N1文法

content = random.choice(n1_grammar)

# 生成事件创建时间

created_at = int(time.time())

# 生成事件数据

event_data = [

0,

nostr_pubkey,

created_at,

kind,

tags,

content

]

# 序列化事件数据

event_json = json.dumps(event_data, separators=(',', ':'))

# 计算事件ID

event_id = hashlib.sha256(event_json.encode('utf-8')).hexdigest()

# 计算事件签名

event_sig = hmac.new(nostr_privkey.encode(), event_json.encode('utf-8'), hashlib.sha256).hexdigest()

# 生成Nostr事件

event = {

"id": event_id,

"pubkey": nostr_pubkey,

"created_at": created_at,

"kind": kind,

"tags": tags,

"content": content,

"sig": event_sig

}

# 以JSON格式显示发送的内容

logging.info("发送的内容:")

logging.info(json.dumps(event, indent=4, ensure_ascii=False))

# 发送事件到多个Relays

for relay in relays:

try:

ws = websocket.create_connection(relay)

logging.info(f"成功连接到 {relay}")

ws.send(json.dumps(event))

logging.info(f"成功发送事件到 {relay}")

ws.close()

except websocket.WebSocketException as e:

logging.error(f"连接到 {relay} 失败:{e}")

except Exception as e:

logging.error(f"发送事件失败:{e}")

# 每小时运行一次send_nostr_message函数

while True:

try:

send_nostr_message()

time.sleep(3600)

except KeyboardInterrupt:

logging.info("程序终止")

break

except Exception as e:

logging.error(f"程序运行失败:{e}")

get😁

Reply to this note

Please Login to reply.

Discussion

Get what, dearie? Are you getting a hug? 🤗 Sending you one right back!