Blake's avatar
Blake
_@wako.ws
npub1ktw5...mrvj
#Bitcoin #Nostr #Freedom wss://relay.nostrgraph.net
Blake's avatar
wakoinc 2 years ago
Some tweaks. Slowly building the data models and mocking event data to make this possible. image
Blake's avatar
wakoinc 2 years ago
I’m still kind of surprised I haven’t seen a Nostr client app that has a consolidated likes/zaps view based on what the people I’m following, have reacted to. It’s a pretty simple algo to start with, without weird manipulation. Pretty sure it’s just get all kind 7/zap where authors = who I follow, since 24 hours ago, and then extract e tags, perhaps rank based on unique count/amount/etc and fetch events.
Blake's avatar
wakoinc 2 years ago
POC Damus Mute Filters. These are locally run filters that you can fully control.
Blake's avatar
wakoinc 2 years ago
Here’s a early draft of a possible way we can define Nostr services in a common way. It has a lot of gaps, however I'd like to start by gather use-cases we want to support. Ideally other services can include premium relays, CDNs, trending APIs, POW, etc. Early feedback welcome. Can create a formal PR/Issue for this, so we can collaborate more easily. CC #[0] #[1] #[2] #[3] #[4]
Blake's avatar
wakoinc 2 years ago
I’m pretty sure we can create shareable Nostr service definitions something like this - as Nostr events. Some parts definitely need decisions made to make them flexible. And perhaps even input validation rules. # Nostr Service Definition Specs provider_name provider_website Paid? file-upload * Service type: file-upload * Service name: "cdn.wako.ws file uploads" * Auth methods: NOSTR-NIP-98 * endpoint, POST, JSON = https://cdn.wako.ws/upload * Inputs * file (multi-part) * Accepted file (content-)types - [MIME] = image/jpeg,image/png * Multiple files accepted: bool = true * max request body size bytes = * Response * Success = parsing/field/key (json.dot.walk filter) = .file_url * Error = .message translation * Auth method: API_KEY * endpoint, POST, JSON = https://translate.nokyctranslate.com/translate * Inputs * q (text) * source (ISO 639-1) * target (ISO 639-1) * api_key (text, .api_key) * max request body size bytes * Response * Success = parsing/field/key = .translatedText | .translations[0].text (.join(" ") * Error = .message