lemon
Asking questions
https://askopenly.world
Spreading gifs
https://gifbuddy.lol
Posting memes
https://memeamigo.lol
https://github.com/happylemonprogramming

lemon
4/15 10:01:16
π
Damn you and all your tricks, Fishcake! π
nostr:nprofile1qqsrl30c25at6af6c3uk03xydr8apr5vh80wwxmeuyk44k4jqk7qf5cpzamhxue69uhhyetvv9uju6rpwd5zuum5wfjkzmgpzfmhxue69uhhqatjwpkx2urpvuhx2ucywwaha nostr:nprofile1qqs0dqlgwq6l0t20gnstnr8mm9fhu9j9t2fv6wxwl3xtx8dh24l4auspzemhxue69uhk6mr9dd6juun9v9k8jtnvdakz7qg5waehxw309aex2mrp0yhxgctdw4eju6t0m3duwn he has a point though
I can check reputation, restrict account age, ignore self/private/anon zaps, but it becomes tighter and tighter to control
I donβt see anyway to combat two people zapping each other to the top other than individually blacklisting npubs for gaming the system, which becomes exhausting
β¬
fc3253240d832aebdb63b3a3f8e76268cd4957b51371b1a6287d2a2ce03ad686
β¬

lemon
4/13 6:37:49
ππ π€
Pushed an update to #memeleaderboard
- Memes are cached for instant page loading
- Each meme has a zap count to make the order clear
- Self-zaps aren't counted so as to prevent gaming the system
Let me know if you have more feedback on how to make it better, Meme Lords
nostr:nprofile1qyshwumn8ghj76mdvvkkummnw3ezuctdd96kuer9wfmkzar9wghxxmmdqy2hwumn8ghj7mn0wd68ytn9v9ekjene9ejx2qpq8lzls4f6h46n43revlzvg6x06z8geww7uudhncfdttdtypduqnfsu33ec2 nostr:nprofile1qyxhwumn8ghj7mn0wvhxcmmvqy28wumn8ghj7mn0wd68ytn00p68ytnyv4mqqg8cumryxsh3upfysp3suflpq9kuud0u8fs5uczrflh54gjsxv5v4yqjvug7 nostr:nprofile1qyxhwumn8ghj7mn0wvhxcmmvqyg8wumn8ghj7mn0wd68ytnvv9hxgqpqtvqc82mv8cezhax5r34n4muc2c4pgjz8kaye2smj032nngg52clq7fgefr nostr:nprofile1qythwumn8ghj7cmjv4shgu3wdehhxarj9emkjmn9qythwumn8ghj7erfwfjkxar0wfuju7tpvf6jumt9qqsftzm4fgwnmed4ajs0uvwj642lg5fjt7zf32pa5xvhkl7dtsu73rq6udlsx

lemon
4/13 11:30:51
π
Itβs definitely going to be a fun challenge
Appreciate you hacking/stress testing it for me
This will be a fun Red vs. Blue Team hacking exercise
β¬

The FishcakeπΆπΎ & 763 others
4/13 8:27:06
ππ€£
You canβt make zap based ranking that is not gameable! It is impossible πππ
nostr:note1gn08u07m57w6n2swzqtz9fwvfrz9l2jgxxpk2gx70mrn2y5rujqs2y03gn

lemon
3/30 9:52:59
π
One challenge Iβve found is integrating persistent mobile login on a web-app for iOS that doesnβt have terrible UX
I donβt want to handle keys and there isnβt an Amber equivalent on iOS yet
So my workaround has been to not require login at all and just give people links generated by my own key
I could add some logic like:
βIF logged in, then user uploads must be signed by user; ELSE, sign event on userβs behalf with gifbuddy keyβ
Then make a new page for logged-in users to see their own uploaded content
Is that what you had in mind?
Or are you guys thinking about it differently?
β¬

The FishcakeπΆπΎ & 763 others
3/30 9:36:05
π
Soon! Weβll have stats for gifs. nostr:npub1hee433872q2gen90cqh2ypwcq9z7y5ugn23etrd2l2rrwpruss8qwmrsv6 will need to sort out the GIF ownership though, since now itβs owned by a single key
β¬

corndalorian
3/30 9:31:21
ππ€
Made this gif a few years back and uploaded it to Tenor. Just got this email. Too bad Tenor doesnβt have zaps π nostr:nprofile1qqstuu6ccnl9q9yvejhuqt4zqhvqz30z2wyf4gu43k404p3hq37ggrspz4mhxue69uhk2er9dchxummnw3ezumrpdejqzyrhwden5te0dehhxarj9emkjmn97n89fk any plans for gifbuddy creator pages in the future?

lemon
3/27 15:46:50
π
I think Iβm slow, Fishcake
Whatβs Electrum coming to Nostr gotta do with me?
I havenβt used Electrum before
β¬

The FishcakeπΆπΎ & 763 others
3/27 14:39:43
π
nostr:npub1hee433872q2gen90cqh2ypwcq9z7y5ugn23etrd2l2rrwpruss8qwmrsv6 π
β¬

lemon
3/23 10:23:25
ππ€
What can you do with a Raspberry Pi 4 that makes girls go crazy?
#asknostr

lemon
3/17 7:55:36
ππ₯ π€
What are 3 audiobooks that youβd recommend?
Any genre, any topic
#asknostr

lemon
3/17 4:14:24
π
nostr:nprofile1qqsglv2qkn5dmmuhee9cy8fywfu2rfp4xd3xy0myqg2gfvmjl9yqqrqz59ekx can I see this for every custom gif and meme generated from the gifbuddy npub? π€
Is it only accessible through nostr.build or is there an API for analytics too?
I donβt have a premium account currently, Iβve just been using your API so Iβm not sure if analytics are public without logging in
β¬

Ryan
3/17 3:43:53
π
I wasn't aware media analytics was a feature of nostr.build. Cool. Thanks nostr:nprofile1qqsgutaplle37z2p9qd60rcaz82pr2j9ew2e06dzezgdft4sj57p7qcpz3mhxue69uhhyetvv9ujuerpd46hxtnfduq3vamnwvaz7tmjv4kxz7fwwpexjmtpdshxuet5qyv8wumn8ghj7un9d3shjvewvfkx7emnw3ezuctswqx62fa3 & nostr:nprofile1qqsglv2qkn5dmmuhee9cy8fywfu2rfp4xd3xy0myqg2gfvmjl9yqqrqpzpmhxue69uhkummnw3ezuamfdejszrthwden5te0dehhxtnvdakqzxrhwden5te0wfjkccte9eekummjwsh8xmmrd9skc765vym

lemon
3/14 11:46:01
π
Would this be an event thatβs published or would I use your API?
Just point me where to look
β¬

The FishcakeπΆπΎ & 763 others
3/14 11:24:42
π
Technically it is achievable, but nostr:npub1hee433872q2gen90cqh2ypwcq9z7y5ugn23etrd2l2rrwpruss8qwmrsv6 needs to put in some work into it
β¬

Ryan
3/14 11:23:11
ππ«‘
nostr:nprofile1qqstuu6ccnl9q9yvejhuqt4zqhvqz30z2wyf4gu43k404p3hq37ggrspzpmhxue69uhkummnw3ezuamfdejszxrhwden5te0wfjkccte9enkjenzw4jxg7fwd3hkcqgdwaehxw309ahx7uewd3hkc80amms could gifbuddy/meme amigo have Nostr login, and save my created gifs to a folder on my nostr.build account? I often like to use them more than once, and this would make finding them much easier.
cc nostr:nprofile1qqsglv2qkn5dmmuhee9cy8fywfu2rfp4xd3xy0myqg2gfvmjl9yqqrqpzpmhxue69uhkummnw3ezuamfdejszrthwden5te0dehhxtnvdakqzxrhwden5te0wfjkccte9eekummjwsh8xmmrd9skc765vym

lemon
3/13 14:07:41
π
That would be crazy and perhaps torturous
But if you pull it off, it would also be epic
β¬
β¬

Karnage
3/13 14:03:32
ππ€
Anyone writing code on their phone? π€
Wondering how much desktop or laptop is actually needed in 2025

lemon
3/1 6:18:40
π
They use a NIP96/NIP98 API for their service
I have the code for it already because I upload everything to nostr.build already
I can incorporate it into the Collections upload (itβll just take a time to generate the URL for each upload)
β¬

Pitufo
3/1 5:39:06
π
nostr:npub1nxy4qpqnld6kmpphjykvx2lqwvxmuxluddwjamm4nc29ds3elyzsm5avr7 nostr:npub137c5pd8gmhhe0njtsgwjgunc5xjr2vmzvglkgqs5sjeh972gqqxqjak37w Is there an API I could use to return all the media files I have uploaded to nostr.build? I am working with nostr:npub1hee433872q2gen90cqh2ypwcq9z7y5ugn23etrd2l2rrwpruss8qwmrsv6 on a feature for gifbuddy.lol and just wanted to enquire. Thanks!

lemon
2/27 16:49:20
π
Can confirm, have no dev knowledge
β¬

Karnage
2/27 16:30:31
ππ€
It feels like even with current tools, one can create just about any app without any dev knowledge. Things are getting wild.

lemon
2/27 13:27:48
π
I built some new features in Meme Amigo, but I need feedback to make it better
Any takers?
nostr:nprofile1qymhwumn8ghj7ctydaexjmn8vdshyerfdeskcvfwd3hxy6t5wvhxxmmd9ahx7um5wfex2mrp0yhhgetnwskhyetvv9usz9mhwden5te0v96xcctn9ehx7um5wghxcctwvshsqg9wzqydywfskamvrqyj7m4tg8jtp8708uplxeqmrd8xaca2zekhvqkwasr4 nostr:nprofile1qyxhwumn8ghj7mn0wvhxcmmvqyg8wumn8ghj7mn0wd68ytnvv9hxgqpqr0rs5q2gk0e3dk3nlc7gnu378ec6cnlenqp8a3cjhyzu6f8k5sgsy67l5w nostr:nprofile1qyxhwumn8ghj7mn0wvhxcmmvqy28wumn8ghj7mn0wd68ytn00p68ytnyv4mqqg8cumryxsh3upfysp3suflpq9kuud0u8fs5uczrflh54gjsxv5v4yqjvug7

lemon
1/18 8:56:26
π
Noob-question to your noob-question:
What are labels?
Is that another nip?
We were just doing the same thing as emoji packs but for bigger images
β¬
955ab05f40868dbfa9f9437e4e334bf2f8084663a27bf6623230bb8354862425
β¬
f279db38f57104ba0dd7398faa8ea181e770c9d2b61dbcf2826ecc8bce3b0c34

lemon
1/18 5:47:33
π
I havenβt used the outbox model yet
My understanding is that it requires npubs to be associated with relays so that apps know where to query or publish
Would that mean that Emojito is taking the relays associated with my npub when I log in and then publishing the nip30 event to those relays?
So it is retrieving those relays from Kind 10002 events (nip65) and publishing there
That makes sense
Unfortunately that means that users HAVE to log-in or share their public key to have the content published even if the published content isnβt specific to their key (like gif buddy nip94 event publishing)
Am I thinking about this correctly or is there a gap in my knowledge?
β¬
484da5c84cb2a519c5db8ed1a36666fceaa56de546707639c663fea928ed7ce5
β¬
87b9a036a9757d6615938153f7d7ce7f4a2e2b167a698138101178469b9e4925

lemon
1/17 17:10:39
π
I just pushed an update with lazy loading (hopefully I did it right)
Would you mind trying it and seeing if it made a difference for you?
β¬
c6138ca3b0e49d94ae7e906236358ce5f949d2edf9ab68195d111988198fd138
β¬
7f79b1216c13e83eb47fa90577273aafb97f7cb28b7eb164e91a106dab4190b4

lemon
1/17 17:10:02
π
I just pushed an update with lazy loading (hopefully I did it right)
Would you mind trying it and seeing if it made a difference for you?
β¬

lemon
1/17 10:52:29
π
Not a bad idea!
Iβll try it out and let you know when I have it implemented π€
Thanks for the help, homie

lemon
1/5 14:15:04
π
MP4Buddy?
β¬

The FishcakeπΆπΎ & 763 others
1/5 13:56:47
ππ€ π€
And in MP4, smaller, longer and with sound. Tell me why are we still using GIFs ? 1990s called and asked for their technology back! πππ
nostr:note13tz6rl0kawkmkagd3arm5j47vxxns5dg9wj4vs6hchw50vr42qdq93edwq

lemon
1/5 14:07:08
π
The dog has a point
β¬

The FishcakeπΆπΎ & 763 others
1/5 14:02:29
π
Your client is broken, because mine plays automatically and with no fuss. MP4 is 350KB, gif with shittier quality is 3MB and shorter. So, in conclusion, GIFs were good in 1990, they suck now and should die a fast death. Lightweight is never something I would associate with GIF.
β¬

Satoshi
1/5 14:00:01
π
This is why...
the gif is lightweight and plays automatically without sound or fuss while I'm scrolling.
the video does not play, I have to click it, and then it annoys me...
In conclusion...
GIFs are awesome.

lemon
1/3 8:17:50
π
lol it was close
βRumor after rumor is bad for your health!β
β¬

The FishcakeπΆπΎ & 763 others
1/3 8:13:20
π
According to rumors, rumors are bad for your health. π
β¬

lemon
1/3 3:43:09
π
nostr:npub10sa7ya5uwmhv6mrwyunkwgkl4cxc45spsff9x3fp2wuspy7yze2qr5zx5p english
β¬

The FishcakeπΆπΎ & 763 others
1/2 21:22:11
ππ€£
εγ«γγγ¨εγε₯εΊ·γ«ζͺγοΌΞ΅=Ξ΅=Ξ΅=Ξ΅=Ξ΅=Ξ΅=β(;οΏ£βοΏ£)β

lemon
1/2 15:50:34
ππ₯
GIFs are a form of expression and speech.
Thus, should have a place on most (if not all) communication clients.
The simplest and prevailing integration currently is the GIF button that performs an API call to one of the major GIF databases.
The risk associated with using these services is incredibly low, the library is vast, and implementation is trivial.
The benefits associated with GIFs should really not be underestimated. GIFs convey emotion, tone, transcend language, and are concise (unlike this note).
I believe the benefits of having GIFs integrated significantly outweigh the risks.
With that said, here are the tradeoffs to be considered when using permissioned APIs:
Censorship
- Banned media at the country level (Politically sensitive imagery)
- Banned media at the corporate level (NSFW)
- Rate limiting (1 request per second)
- Terms of conditions (Revoke API key if usage violates Terms)
Accessibility
- New upload/availability (Content rating, moderation, wait times)
- API key applications (API providers want to know their customer)
- Email address (Required for account verification)
Advertising & Surveillance
- Attribution/branding ("Powered by")
- GIF advertising (GIFs may be weighted higher than others to promote shows/programs)
- Privacy policies (Collection of data to sell to 3rd parties or modify search results)
Given this, it seems reasonable to implement a GIF button using API keys from a major GIF provider with the ability to incorporate mitigating features down the line.
Unless, of course, any one of the tradeoffs is intolerable to the app's experience (e.g. usage > rate limit, preserving privacy), which I expect to be uncommon.
I believe the use of NIP-94 fully mitigates all of these risks, but will come with its own set of tradeoffs (e.g. library size, ease of use, event retention over time).
In short:
- The best approach for nearly every client is currently to use a permissioned API and incorporate a GIF button.
- NIP-94 can and will be used as a backstop to ensure uninterrupted service for those that find the risks intolerable.
- GIFs are created by individuals and cannot be owned by anyone.
- Information yearns to be free.
- GIFs are inevitable.

lemon
1/1 1:17:55
π
+ helped Lemon with a bunch of problems
That list is insane, friend! Youβre a true inspiration and itβs incredible the amount youβve accomplished
Looking forward to see what all you build in the new year
Happy New Year!
β¬

The FishcakeπΆπΎ & 763 others
12/31 13:12:31
πβ π₯ π€ π€ π€£ π«‘ π«§
My 2024 review and high-level report. Let's start with some stats for the nostr.build:
- 720 Million media requests served
- 650 TiB of bandwidth consumed
- 8 Million unique visitors
- 85% average cache hit rate
- Improved median CPU time per request from 200 down to 2 milliseconds per request
- 20 requests per second are served on average
- 99.994% uptime for the hosted media
- 98% uptime for the website and uploading servers
- 2.5K daily free uploads on average
Some improvements for the free uploads:
- Increased free upload size from 10MiB to 50MiB
- Increased image resolution from 1980px to 3840px
- Increased per server RAM from 1GiB to 4GiB
- Added full mirror of all uploaded media to the additional vendor (backup)
- Implemented moderation headers (can be used to hide NSFW content if desired)
Now some of the stats of my dev work for the nostr.build:
- 1,333 git commits
- 42 repositories with my contributions
- 10k+ lines of code written, or changed
Some features and completed projects:
- Rewritten nostr.build account page (AI, stats, nostr share, drag-n-drop, variaty of sizes, poster for video, etc.)
- Added AI Studio, onboarded multiple models from SD and Flux.
- Added media statistics
- Rewritten media serving front-end (dropping CPU utilization by 100x) and improving TTFB as well as cache hit rate (from 50%+ to 85%+ on average)
- Implemented variaty of the spam, and other illegal media upload prevention mechanisms (automated AI media scanner, PhotoDNA scanner, etc.)
- Implemented AI Moderation API that is shareable with other nostr media hosts (e.g., nostrcheck.me)
- Implemented upload of pdf, zip, etc., with full virus scanning.
- Various improvements to the PHP code, bug fixes and optimizations.
- Implemented e.nostr.build to allow easy embedding and sharing of the video/audio files for the account holders
- Referal links and account credits
- Onboarded more nostr clients for uploads (e.g., YakiHonne)
Some of the prototyping I've done for nostr.build:
- Semantic search of the media (ML based), multilingual
- Basic search for media using AI Vision
- Video transcoding using serverless and server-based setups
- Video transcoding to DASH/HLS (CMAF)
- Multi-party audio/video chat
Some of the in-flight projects that I'll have to complete in 2025:
- Seamless implementation of the Blossom protocol (70% done)
- Rewrite of the post-upload scanning to utilize workflows (50% done)
- New video upload and transcoding experience, HLS, DASH, VBR video/audio (10% done)
- New NoSQL based data-plane backend with the new API (50% done)
- Full rewrite of the Accounts page (5% done, blocked by new API and data-plane)
- Additional models for the AI Studio (90% done)
- <Secret projects with new experiences and features> (25% done)
I am sure I am forgetting a bunch, and this is only done from my memory.

lemon
12/30 14:34:23
π
When you update your app just so you can enter a meme contest:
β¬

The FishcakeπΆπΎ & 763 others
12/30 11:41:57
ππ€£
nostr:note1hdj5uncg50t7a9ycf0d09tr5gplzsjd50vg9mmkmdvc5zv6xfkqse42996

lemon
12/30 11:13:41
ππ€£
Pushed an update to Gif Buddy/Meme Amigo
- fixed bug where text would wrap on meme generation (I hope)
- gif search previews are higher quality
- gif memes are higher quality
- gif sharing/url generation is faster
Hit me up if you ever have problems or want new features
More features still to come!

lemon
12/30 10:18:59
π
Testing something, is this better quality?
β¬
β¬

Paul
12/29 8:26:32
πβ π₯ π€£
As anyone got the meme with the crying girlfriend asking: What do you mean the price i deserve?

lemon
12/28 16:21:37
π
Did memeamigo cut that off? Havenβt seen that before
β¬

The FishcakeπΆπΎ & 763 others
12/28 15:18:24
ππ€
nostr:note1hxvj4psvmp8empz9prjsml8v2ultm8vzhhpe8466tjmalvedfc0saykdfs

lemon
12/26 13:30:26
π
Let me know if Gifbuddy uploads start to become a problem nostr:npub137c5pd8gmhhe0njtsgwjgunc5xjr2vmzvglkgqs5sjeh972gqqxqjak37w
β¬

nostr.build
12/26 6:13:03
π π€
Some of you have noticed our homepage now requires a nostr login to use the free uploader.
NO! You do not have to buy an account, you just have to hit the NIP07 button and use a key extension to authenticate.
YES, we still offer free media uploading, but only to Nostr users! Non nostr users were abusing the free upload page and this was the best way to restrict it..
As a reminder: Free porn uploads are not permitted, CSAM will be immediately reported to the proper authorities, you can not use the API for non-nostr projects and high volume uploads!

lemon
12/12 15:14:21
π
What are the goals?
β¬

The FishcakeπΆπΎ & 763 others
12/12 12:54:54
ππ€
Going zapless until I finish all my 2024 goals! π«‘π₯
π―

lemon
12/11 16:19:22
π
Oh hell yeah, that looks siiiccckkk!
No idea what it says, but Iβm pumped!
β¬
β¬

lemon
12/11 16:10:44
π
Can you try adding Japanese text?
I want to see it works with your fancy non-Roman characters
β¬
β¬
β¬

brian
12/11 11:41:07
ππ€£
Play memeamigo (https://memeamigo.lol) with me.
Best #meme before Block 874200 gets 10,000 sats from me.
#memestr
nostr:npub1hee433872q2gen90cqh2ypwcq9z7y5ugn23etrd2l2rrwpruss8qwmrsv6

lemon
12/11 5:07:39
π
Shout out to the homies that helped me along the way!
nostr:npub137c5pd8gmhhe0njtsgwjgunc5xjr2vmzvglkgqs5sjeh972gqqxqjak37w
nostr:npub1nxa4tywfz9nqp7z9zp7nr7d4nchhclsf58lcqt5y782rmf2hefjquaa6q8
nostr:npub1vp8fdcyejd4pqjyrjk9sgz68vuhq7pyvnzk8j0ehlljvwgp8n6eqsrnpsw
nostr:npub1r0rs5q2gk0e3dk3nlc7gnu378ec6cnlenqp8a3cjhyzu6f8k5sgs4sq9ac
You guys have been awesome in helping and teaching me, so as a token of my appreciation you all have NIP05 addresses with gifbuddy.lol and memeamigo.lol should you ever want to use them for as long as I own the domains
I know you guys have your own projects and may want to keep your current NIP05 addresses so I'll find other ways to return the favor
Thank you sincerely for your time π
β¬

lemon
12/11 1:09:07
ππ₯
Introducing Meme Amigo!
https://memeamigo.lol/
Now available on GIF Buddy (just click the title/header to switch) and as it's own standalone webapp (PWA)
- Meme templates stored on relays under NIP94
- Generate @nostr.build URLs for easy sharing
- Add emojis, paste images, and meme GIFs on the same page
Keep the feedback coming and let me know what you want to see in the next release
More features still to come!

lemon
11/24 12:34:26
π
I feel proud that gifbuddy is1/1,000th of that
So you be feel super proud
Congratulations, homie! Thanks for teaching, helping, and being the backbone of my app
β¬

The FishcakeπΆπΎ & 763 others
11/24 12:01:05
ππ€ π€ π€£
π«‘π«π€π»πππππππ₯³πππ
2M uploads is behind us now!

lemon
11/17 13:18:09
ππ€ π€£
AND ITS $100 PER YEAR?!
nostr:npub1xtscya34g58tk0z605fvr788k263gsu6cy9x0mhnm87echrgufzsevkk5s Am I missing something? Do I really have to pay $100/year for Apple Developer Tools to integrate Apple Pay into my website without using a Stripe Payment link?
nostr:note1qa2htlqxhsjndpkp7makxp2t4qws0jkawut8dy3j9dexzm6xtcqqd8c6t0

lemon
10/24 10:02:31
π
Also, what relays are you using on nostr:npub1nxy4qpqnld6kmpphjykvx2lqwvxmuxluddwjamm4nc29ds3elyzsm5avr7 to broadcast NIP94 events after files are uploaded?
β¬

The FishcakeπΆπΎ & 763 others
10/23 21:50:15
π
Sorry, I have very little knowledge about these things π«
β¬

lemon
10/23 14:01:12
ππΆ
I moved over from the 'pynostr' library to 'nostr_sdk' because it's being actively maintained, but every once in awhile I get stuck
Why doesn't this filter work to search events in the NIP94 File Metadata?
Filter().kind(Kind(1063)).custom_tag(SingleLetterTag.lowercase(Alphabet.M), "image/gif").search("dinosaur")
Is there a way to search custom tags that aren't of "SingleLetterTag" type (e.g. "summary", "alt", "ox")?
#asknostr #python
nostr:npub1drvpzev3syqt0kjrls50050uzf25gehpz9vgdw08hvex7e0vgfeq0eseet nostr:npub1vp8fdcyejd4pqjyrjk9sgz68vuhq7pyvnzk8j0ehlljvwgp8n6eqsrnpsw nostr:npub137c5pd8gmhhe0njtsgwjgunc5xjr2vmzvglkgqs5sjeh972gqqxqjak37w

lemon
10/16 11:13:40
π
Figured it out, didn't realize that the links were case sensitive
β¬

lemon
10/16 11:06:51
ππΆ π€£
How does this happen?
Did I do something wrong on my end when uploading?
nostr:npub137c5pd8gmhhe0njtsgwjgunc5xjr2vmzvglkgqs5sjeh972gqqxqjak37w nostr:npub1nxy4qpqnld6kmpphjykvx2lqwvxmuxluddwjamm4nc29ds3elyzsm5avr7
Great background though π

lemon
10/14 13:46:49
π
Have you tried "wss://nfrelay.app"?
I just learned about it and might give it a try. I find it impossible to even follow simple hashtags like #gardening without someone posting NSFW content and burning my eyes
I'll give it a spin and let you know how it goes
https://github.com/atrifat/nostr-filter-relay
β¬

The FishcakeπΆπΎ & 763 others
10/13 18:03:06
ππΆ π π€£
I havenβt been to Global/Universe in a long time, still scared of seeing something Iβd regret for the rest of my life. ππποΈπ§ποΈ

lemon
9/26 16:03:54
π
Couldnβt hash match automatically be reported? Iβm assuming this means an images hash matches another known bad image.
Do user reports automatically undergo AI detection as secondary verification?
If a moderator catches one then why not have it automatically report? Unless this is a balance of power thing between you and moderators.
Sorry for the barrage of questions, just trying to learn in case I ever have to upload and store content
β¬

The FishcakeπΆπΎ & 763 others
9/26 15:49:00
π
Simple and complex:
User reports.
Moderator catching it.
AI detects if underage nudity.
PhotoDNA edge hash match.
Each then has to be manually configured end by the admin (me or NB) and we have to click a button to pack and submit a report to NCMEC people.
β¬

lemon
9/26 15:45:11
π
How does this process work exactly? Is there an AI api service you use to detect if uploads contain illicit content and then it has a certain confidence interval that requires you to approve if itβs below a certain threshold?
This sounds brutal
β¬

The FishcakeπΆπΎ & 763 others
9/26 15:01:33
ππΆ π
Oh god, just finished the most dreaded part of my responsibility and fully automated CSAM report to NCMEC. It still requires for a human (fuck my eyes) to confirm and press the submit button in the isolated environment. πππππππππππππ
(Why you upload CSAM, anon? Stop it, get help! Please, I beg you!)

lemon
9/16 15:13:05
π
I have no idea what it says π
Was it accurate?
β¬

The FishcakeπΆπΎ & 763 others
9/16 15:12:22
π
Impressive! ππ«ππ»ππ»ππ»π€π»π₯
β¬

lemon
9/16 15:10:05
ππ€
nostr:npub10sa7ya5uwmhv6mrwyunkwgkl4cxc45spsff9x3fp2wuspy7yze2qr5zx5p Japanese
β¬

lemon
9/14 8:52:26
π
I have a function that queries 3 different relays for zap receipts (primal, damus, nostr-pub)
Should I just keep adding relays? The zap sent to that event was from primal on my phone so I imagine it would at least get broadcast to the primal relay
But I guess I'll try to add more relays to your point
I'm really just looking for a reliable way to see if a note has been zapped and then by how much
β¬

The FishcakeπΆπΎ & 763 others
9/14 8:49:00
π
No idea, but zap events are not propagated that well to begin with. So it depends which relay your are querying π€
β¬

lemon
9/14 8:46:57
ππ₯ π€ π€£
Is NIP57 still the best way to determine the amount of zaps a note has? I'm not getting reliable results searching for Kind 9735 events that have 'e' tags to my target event.
I'm using 'pynostr' library for python:
zappers = getevent(kinds=[9735], event_refs=['f49c4364445f1c780b8fecae595a7d4ba390df66dceaeaad063c0f235103f155'])
Am I missing something?
nostr:npub137c5pd8gmhhe0njtsgwjgunc5xjr2vmzvglkgqs5sjeh972gqqxqjak37w nostr:npub1vp8fdcyejd4pqjyrjk9sgz68vuhq7pyvnzk8j0ehlljvwgp8n6eqsrnpsw nostr:npub1nxa4tywfz9nqp7z9zp7nr7d4nchhclsf58lcqt5y782rmf2hefjquaa6q8

lemon
9/2 8:48:50
π
nostr:npub137c5pd8gmhhe0njtsgwjgunc5xjr2vmzvglkgqs5sjeh972gqqxqjak37w I just pushed a bunch of updates to the dev link
A few updates:
- uploads should work now
- added βload moreβ
- gifs should load faster on search
Let me know if you guys have any feedback before I push it or if you have any more ideas
Thank you both for all your help!
β¬
5746d8c6dce4f3735e4f05ae6db3f6d870ed7c826c9753d8954d28886d98b9c0
β¬

lemon
8/31 5:07:45
ππ€ π€£ π«
Help me make gifbuddy better!
Need help with:
- Reducing memory usage and improving overall reliability
- Better hosting solution as Heroku is expensive
- Add GIPHY library for even more gifs
- Allow uploads for creatives like nostr:npub1xsn2cx73w7837xhkqalzxr5f9prwn6cvnz4t0e60qa0luff7g4fq28nm65 who make their own gifs
- Ability to load more gifs if you want to go deeper in the search
- Gif counter for nostr:npub1nxy4qpqnld6kmpphjykvx2lqwvxmuxluddwjamm4nc29ds3elyzsm5avr7 uploads to see how big we get
- Prettier Front End design
- Anything else you guys come up with that makes it better
Looking forward to making this app the best it can be with you all! π
nostr:npub1vp8fdcyejd4pqjyrjk9sgz68vuhq7pyvnzk8j0ehlljvwgp8n6eqsrnpsw nostr:npub137c5pd8gmhhe0njtsgwjgunc5xjr2vmzvglkgqs5sjeh972gqqxqjak37w nostr:npub1r0rs5q2gk0e3dk3nlc7gnu378ec6cnlenqp8a3cjhyzu6f8k5sgs4sq9ac nostr:npub1mgvwnpsqgrem7jfcwm7pdvdfz2h95mm04r23t8pau2uzxwsdnpgs0gpdjc
https://github.com/happylemonprogramming/gifbuddy

lemon
8/31 15:58:37
π
There have been a couple comments in my feed from people expecting to paste a nostr.build address so that could be cool
Your API is fast already, it's mostly that nip98 AUTH requires me to publish a Kind 27235 note, which takes time to broadcast with my current library
Were you thinking this API would be separate from nip98?
β¬

The FishcakeπΆπΎ & 763 others
8/31 15:50:52
π
I could potentially make a separate API that will return URL instantly, and will redirect to Tenor while upload is prepared, and then serve local copy. If you are interested, let me know.
β¬

lemon
8/31 15:45:24
π
The copied link is a Tenor link by intent
When you click a gif, a separate API call is made on the back end to upload to nostr.build
That process takes time that would really hinder the user experience if you had to wait for the new url to be generated in order copy it; itβs several seconds
β¬
8a13195a3dcb03176dc31b1aef8f71e60de76edce160ae70485436b1b5a6de7c
β¬
17b335458cc4f2dd68ede7d2f3279f26046667f81a15805d1d9a64db148c2a1b

lemon
8/30 16:19:41
ππ€
Humbled by the response and the use of gifbuddy.lol
I built this app because I love gifs and I love nostr
I thought it would just be something I could use until my favorite client integrated gifs natively, but I always thought by the time I actually built something it would be obsolete
But the memes from nostr:npub1lrnvvs6z78s9yjqxxr38uyqkmn34lsaxznnqgd877j4z2qej3j5s09qnw5 and that one time nostr:npub1a2cww4kn9wqte4ry70vyfwqyqvpswksna27rtxd8vty6c74era8sdcw83a posted about not having gifs easily accessible kept the idea in the back of my mind
Shout out to nostr:npub137c5pd8gmhhe0njtsgwjgunc5xjr2vmzvglkgqs5sjeh972gqqxqjak37w for taking the time to help me with the nostr:npub1nxy4qpqnld6kmpphjykvx2lqwvxmuxluddwjamm4nc29ds3elyzsm5avr7 API and to nostr:npub1vp8fdcyejd4pqjyrjk9sgz68vuhq7pyvnzk8j0ehlljvwgp8n6eqsrnpsw for the slick iPhone double tap shortcut that pulls up gifs faster than my native iMessage plugin
I pushed an update to gifbuddy and am going to sleep so hopefully it doesn't break
GN
(Fun side note: what finally got me to lock-in and code was this note by nostr:npub1xsn2cx73w7837xhkqalzxr5f9prwn6cvnz4t0e60qa0luff7g4fq28nm65 using Canva and Google docs to post gifs)
nostr:note1t6wzcxp9vyk7u2ke64wj23uruv3zn7ar3dw6lfmk3q9f7l8r4yrq4syer7
β¬
5e9c2c1825612dee2ad9d55d254783e32229fba38b5dafa776880a9f7ce3a906

lemon
8/30 13:28:08
π
β¬

The FishcakeπΆπΎ & 763 others
8/30 13:00:01
ππ€
nostr:note1emq4xryqlrfjq90gqda5x3fewglm0stzw3x4usmesc7va57dyelqk79ywj

lemon
8/30 11:58:44
π
I took your advice and built a gif nostr companion app:
https://gifbuddy.lol/
You can download the PWA to your home screen, search for your gif, copy the address and paste it into your client
On the back end, for every gif that gets copied/clicked, an API request is made to upload to nostr:npub1nxy4qpqnld6kmpphjykvx2lqwvxmuxluddwjamm4nc29ds3elyzsm5avr7 by nostr:npub137c5pd8gmhhe0njtsgwjgunc5xjr2vmzvglkgqs5sjeh972gqqxqjak37w
From there a nip94 request is done so that the content can be accessed by any client in the future
Now, anyone who searches for gifs using this tool is also helping to build the gif repository for nip94 and adding fallback urls to nostr.build
And all they did was click to copy #gifs
β¬
c6b93ae49ee678e3c37b4210ec68965ffa464c707b850411394b1e7ba02162a6