It seems you really need constrained limited size requirement for your project. ๐
Hopefully, you can get other workarounds kamakura-san ๐ซ
Currently, search compatible relays (NIP-50) were quite limited. We can probably count them by fingers with notable relays such as relay.nostr.band , relay.noswhere.com , and search.nos.today .
Shoutout and big thanks to nostr:npub1xdtducdnjerex88gkg2qk2atsdlqsyxqaag4h05jmcpyspqt30wscmntxy nostr:npub12262qa4uhw7u8gdwlgmntqtv7aye8vdcmvszkqwgs0zchel6mz7s6cgrkj and nostr:npub1q7qyk7rvdga5qzmmyrvmlj29qd0n45snmfuhkrzsj4rk0sm4c4psvqwt9c who built them.
Hopefully more relays with good search performance will come to support #Nostr ๐
It is not really a bug. nostr.band crawl/scrape events from almost any existing relays so their followers count is quite accurate (close number). Amethyst or other nostr clients that we use only fetch/request limited events from relays so they can't count accurately our followers number ๐
I have used kaskus.co.id , the largest Indonesian community forum. Currently, haven't use/active like used to be. Sometimes, only lurking a bit to look some topics ๐
I'm not sure with their tech stack but i heard they once used vBulletin before switching into their own custom made forum
Your cats are good models, goldstein-san. Always have photogenic vibe ๐ธ
๐
Have you tried using 'upx -9 ...' , kamakura-san? Although some anti-virus software might flag it as malware ๐
q : kenapa +62 ga maju2 ?
a : https://video.twimg.com/ext_tw_video/1728630928262791168/pu/vid/avc1/360x270/rdNJ7k5eh_Rt_CI7.mp4
"Kan jalannya punya Bapakku" ๐ ๐
I don't remember much how early twitter have that. But yes, it is really useful. Especially if people want to write some serious post (with links, arguments, facts, etc).
I'm used to prepare draft on another app (notes app before posting into social clients including nostr clients) ๐
Did you notice it first from relays behind cloudflare?
Amethyst has draft but it will be activated only if we press 'back button' ๐
Oh nice, it will be easier for you if you have already some setup
Just in case you want to try and play around with different tunnel tools or methods, you can probably look at this
One panel that brings a lot of emotions to readers.
Himel's dream of marrying Frieren. A fleeting dream/illusion.
ใใกใซใฎๅคขใฏใใชใผใฌใณใจ็ตๅฉใใใใจใๅใๅคขใปๅนปๆณใ

Discussion:
https://www.reddit.com/r/manga/comments/17veayg/disc_frieren_at_the_funeral_chapter_117_kirei_cake/
#manga #grownostr #SousouNoFrieren #่ฌ้ใฎใใชใผใฌใณ
By the way, congratulations, the anime finally becomes top favorites anime in MyAnimeList. If you like some Fantasy, Adventure, and Drama then you might probably like it ๐

One panel that brings a lot of emotions to readers.
Himel's dream of marrying Frieren. A fleeting dream/illusion.
ใใกใซใฎๅคขใฏใใชใผใฌใณใจ็ตๅฉใใใใจใๅใๅคขใปๅนปๆณใ

Discussion:
https://www.reddit.com/r/manga/comments/17veayg/disc_frieren_at_the_funeral_chapter_117_kirei_cake/
#manga #grownostr #SousouNoFrieren #่ฌ้ใฎใใชใผใฌใณ
Probably you can try to make wireguard private tunnel (or other tunnel method) between your flask server and raspi. It should be more stable instead of tor ๐
I remember that when i was around 1-2 years old i was brought into my grandpa burial by my family. I ask my mom again when i was older is it true that was happened and yes she confirmed it. It amaze me that how some memory can linger around even in early age.
Simple solution if we can't fully leave some windows app. Wine is quite good for running simple windows app but not for complex app like Latest version of Microsoft Office or Adobe suite ๐
Thankfully my work don't need many windows app ๐
I have dual boot linux and windows. 98% of times using linux while 2% with windows only for using Microsoft Office ๐
Well, i also didn't use like that at first. I used 'nosdump ... | nostcat ws://localhost:7777' before realized i can go faster with strfry import ๐
A: "Bang, instal ulang windows ane dong. Sama instal photoshop dan corel juga ya. Berapa bang?"
B: "50 rebu"
A: "Udah full version kan bang?"
B: "Iyee.."
Cerita di suatu negeri ๐
There is an update for nostr-filter-relay documentation and explanation on "how it works".
What do you think? Is it clear explanation or still vague?
https://github.com/atrifat/nostr-filter-relay#how-it-works

What is your preferred #nostr web client that can show single relay data without login?
My favorites are Coracle, Nostrudel, Nostrrr, and Njump. Thanks to
nostr:npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn nostr:npub1ye5ptcxfyyxl5vjvdjar2ua3f0hynkjzpx552mu5snj3qmx5pzjscpknpr nostr:npub107jk7htfv243u0x5ynn43scq9wrxtaasmrwwa8lfu2ydwag6cx2quqncxg nostr:npub10000003zmk89narqpczy4ff6rnuht2wu05na7kpnh3mak7z2tqzsv8vwqk
I like how Coracle can show single relay data without login, and it feels like surfing "global feed" for certain relay
https://coracle.social/relays/nostr-id-relay.hf.space

The only downside is it doesn't seems support url parameters yet.
Nostrudel on the other hand has already support url parameters

And if we like simplicity, nostrrr.com and njump.me are good choices because they only give text without rendering many graphics.
https://njump.me/r/nostr-id-relay.hf.space
Are there any web clients beside 4 of them who can display single relay without login? What is your favorites?
#asknostr
PSA:
Public demo instance of nostr-filter-relay wss://nostr-id-relay.hf.space will be restarted shortly for 5-15 minutes at November 22, 2023 04:00:00 UTC. Temporary downtime for new feature and other improvements.
Very cool! I see the whole picture now. How did you get the content warning showing in Amethyst? Did that note just happen to already have a content warning on it? We are using a more robust ontology for content reports than what is defined in NIP-56. Iโd be interested to hear your thoughts on it and whether or not it would be useful to you. https://github.com/rabble/nips/blob/724e05e762a634e501bdcf6cbefaa91f99b1903b/69.md
Here is what we publish when you report someone in Nos:
{
"content": "This content has been reported for Spam using NIP-69 vocabulary https://github.com/nostr-protocol/nips/pull/457",
"id": "03fdb75f9a8c927247cc4fc20abb419bb02932e615f056f67971e6cb8d073e09",
"tags": [
[
"L",
"MOD"
],
[
"l",
"MOD>SP",
"MOD"
],
[
"e",
"79123c0f6e54b330c8e1abba7ef5d6919ae493b072dcac7b603cada5f54bf4d3",
"spam"
]
],
"created_at": 1697565603,
"kind": 1984,
"sig": "5de629322692f102b85a8fc9921ce75b0f78fa3d4ff6f1d5cc69a777a75e6761b3448a689e1799d5d7e1f03aedad709910df03d2800e9801a8c9368841f46858",
"pubkey": "b1e4418e15a3660b5fa29e15e9e543427f2b3969617136be76072c7d674779a2"
}
Thank you. I'm glad that it can be understood. I think i really need to improve documentation in Github to make it easier. ๐
> How did you get the content warning showing in Amethyst? Did that note just happen to already have a content warning on it?
Oh no, i was intentionally made that post marked by using NIP-36 directly on Amethyst. What i have test was how my nostr-filter-relay test relay (wss://nostr-id-test-relay.hf.space) will react if i posted that negative comment. It works correctly by excluding those event. It will be merged soon into main relay (wss://nostr-id-relay.hf.space).
> https://github.com/rabble/nips/blob/724e05e762a634e501bdcf6cbefaa91f99b1903b/69.md
It is nice NIPs proposal to have list of ontology for labelling. I'm confused a bit since this PR seems to be cancelled because NIP-32 has been merged and superseded it, right? Also what is the source or reference to determine those ontology structure (IH, IL, NA, NS, etc.)?
Actually, i have already made considerations to transform current data format (kind: 9978) into NIP-32 format https://github.com/atrifat/nostr-monitoring-tool/issues/1 . Maybe i will do that after finishing other planned features (sentiment analysis and topic classification).
Currently, this is data format used by nostr-filter-relay internally. Data in "content" field (JSON stringified) were used in nostr-filter to determine the filtering. I think i need to format this in more efficient structure into NIP-32 compatible format. ๐
Example of language classification data:
{
"content": "[{\"confidence\":82,\"language\":\"ja\"}]",
"created_at": 1700614355,
"id": "event_id",
"kind": 9978,
"pubkey": "pubkey_of_classifier_bot",
"sig": "signature",
"tags": [
[
"d",
"nostr-language-classification"
],
[
"t",
"nostr-language-classification"
],
[
"e",
"75316bf6db0c75f8e57d2f3a2044d6eadacac92bfda780c62a89d5c47725fbe1"
],
[
"p",
"34a85403b43ff13441c7d79c98ba0f036add04b084b24f91c10d643f6d3f3665"
]
]
}
Example of hate speech (toxic comment) classification data:
{
"content": "{\"identity_attack\":0.6200000047683716,\"insult\":0.4620000123977661,\"obscene\":0.010999999940395355,\"severe_toxicity\":0,\"sexual_explicit\":0.0020000000949949026,\"threat\":0.004999999888241291,\"toxicity\":0.8059999942779541}",
"created_at": 1700000000,
"id": "event_id",
"kind": 9978,
"pubkey": "pubkey_of_classifier_bot",
"sig": "signature",
"tags": [
[
"d",
"nostr-hate-speech-classification"
],
[
"t",
"nostr-hate-speech-classification"
],
[
"e",
"c86cf6f0f7a30adfbd231d0e6d7b48c6d8909dd06bbcde9dd62a05f5ced072b5"
],
[
"p",
"dc369036ad76c7fe51b381ace9569e7add87c03dc74d9ab73b7e3299c18fe1c2"
]
]
}
Example of SFW/NSFW classification data:
{
"id": "event_id",
"created_at": 1696817846,
"kind": 9978,
"pubkey": "pubkey_of_classifier_bot",
"sig": "signature",
"content": "[{\"id\":\"58bd02d8c46eaa6f1598d5eff7cb33c06ff57c4c9ad3dad32ae2b70d3258f661\",\"author\":\"5fd004926969381ac2bb3a32720036d9f9632d29fb22dc1bf5d8fb1c9e265798\",\"is_activitypub_user\":false,\"has_content_warning\":false,\"has_nsfw_hashtag\":false,\"probably_nsfw\":false,\"high_probably_nsfw\":false,\"responsible_nsfw\":true,\"data\":{\"hentai\":0.0000018745902252703672,\"neutral\":0.9998550415039062,\"pornography\":0.0000746770019759424,\"sexy\":0.00006828152254456654,\"predictedLabel\":\"neutral\"},\"url\":\"url\"}]",
"tags": [
[
"d",
"nostr-nsfw-classification"
],
[
"t",
"nostr-nsfw-classification"
],
[
"e",
"58bd02d8c46eaa6f1598d5eff7cb33c06ff57c4c9ad3dad32ae2b70d3258f661"
],
[
"p",
"5fd004926969381ac2bb3a32720036d9f9632d29fb22dc1bf5d8fb1c9e265798"
]
]
}
Iโve been loosely following your work but I donโt fully understand how itโs working under the hood. Is your relay adding content warning tags to notes after theyโve been published? On nos.social we are doing a similar thing but using NIP-56 reports. Weโve also been experimenting with having LLMs publishing them. You can read a little about it at https://relay.nos.social/ but also happy to discuss further if you are interested.
I think i need to read further with how relay.nos.social works. It seems using a bit different way. Happy to discuss it more later with you. ๐
Iโve been loosely following your work but I donโt fully understand how itโs working under the hood. Is your relay adding content warning tags to notes after theyโve been published? On nos.social we are doing a similar thing but using NIP-56 reports. Weโve also been experimenting with having LLMs publishing them. You can read a little about it at https://relay.nos.social/ but also happy to discuss further if you are interested.
Thank you nostr:npub16zsllwrkrwt5emz2805vhjewj6nsjrw0ge0latyrn2jv5gxf5k0q5l92l7 for looking this.
>Is your relay adding content warning tags?
No it didn't. It will make new classification event tagging event id and pubkey of author (kind: 9978) with classification labels (Language, toxicity, etc). Actually, i want to change and migrate that into NIP-32 format instead of custom kind 9978 like now.
I think i really need to draw some flowchart later to explain but did not have time yet. I'm sorry hopefully this can explain a bit ๐
How it works:
1. nostr-filter-relay will run several softwares: atrifat/nostr-monitoring-tool, atrifat/nostr-filter, and hoytech/strfry relay in launch script at startup.
2. nostr-monitoring-tool is classification tool that fetch and subscribe notes (kind: 1) from various relays. It will process every notes (extraction of image url, text preprocessing) it seen and send it into external AI classification tool. Currently it will send processed notes content into NSFW Detector API instance (using atrifat/nsfw-detector-api), LibreTranslate instance, and Hate Speech Detector API instance (using atrifat/hate-speech-detector-api). All three API will give classification results (NSFW class, Language class, Toxic classification) that will be saved as custom kind 9978 in local strfry relay that has already been running. Data format shown in atrifat/nostr-monitoring-tool in github.
Basic Data flow:
source relays (notes) -> nostr-monitoring-tool (connect to external API for classification) -> local strfry
3. Now, using classification data (kind: 9978) saved in local strfry relay, atrifat/nostr-filter will act as proxy relay and intercept any REQ from nostr client and forward them into local strfry relay. Local strfry relay will respond as usual by giving events based on REQ back to nostr-filter. Before sending events back to nostr clients, nostr-filter will check events from strfry whether it has classification data (kind: 9978) or not. For example users set nostr-filter-relay parameters to only gives notes which has "English" language then nostr-filter will only gives those notes using classification data. Any non "English" notes will be skipped.
Basic Data flow:
nostr clients <-> nostr-filter (act like frontend proxy) <-> strfry
4. Nostr client will get filtered events (Real data from strfry are 2000 notes but filtered into 1500 "english" notes) and show that to users.
wss://nostr-id-relay.hf.space now has proper temporary icon ๐
If we want to use it for "global feed" then we can set it like this (Amethyst example):

New feature of nostr-filter-relay (hate speech/toxic comment detection) has been available in dev branch of code and in test-relay instance. It will be released soon after some testing.
If you want to see some toxic contents ๐ :
wss://nostr-id-test-relay.hf.space/?toxic=yes&toxic_confidence=75
It seems the test is successfull, except test comment in Japanese. Thank you and sorry for the test ๐

fucking ass hole mother bitch kink
* test filter
