mirror of
https://github.com/nostr-protocol/nips.git
synced 2024-11-09 22:09:06 -05:00
Adds references to other NIPs with more information and standardizes citations to event kinds
This commit is contained in:
parent
63441099be
commit
3a01861ade
36
172.md
36
172.md
|
@ -6,11 +6,11 @@ Moderated Communities (Reddit Style)
|
||||||
|
|
||||||
`draft` `optional` `author:vitorpamplona` `author:arthurfranca`
|
`draft` `optional` `author:vitorpamplona` `author:arthurfranca`
|
||||||
|
|
||||||
The goal of this NIP is to create moderator-approved public communities around a topic. It defines the replaceable event `34550` to define the community and the current list of moderators/administrators. Users that want to post into the community, simply tag any Nostr event with an `a` tag. Moderators issue an approval event `4550` that links the community with the new post.
|
The goal of this NIP is to create moderator-approved public communities around a topic. It defines the replaceable event `kind:34550` to define the community and the current list of moderators/administrators. Users that want to post into the community, simply tag any Nostr event with the community's `a` tag (See [NIP-33](33.md)). Moderators issue an approval event `kind:4550` that links the community with the new post.
|
||||||
|
|
||||||
# Community definition
|
# Community definition
|
||||||
|
|
||||||
Kind 34550 should include any field that helps define the community and the set of moderators.
|
`Kind:34550` should include any field that helps define the community and the set of moderators.
|
||||||
|
|
||||||
```js
|
```js
|
||||||
{
|
{
|
||||||
|
@ -19,16 +19,16 @@ Kind 34550 should include any field that helps define the community and the set
|
||||||
"created_at": "<Unix timestamp in seconds>",
|
"created_at": "<Unix timestamp in seconds>",
|
||||||
"kind": 34550,
|
"kind": 34550,
|
||||||
"tags": [
|
"tags": [
|
||||||
["d", "<community_name>"],
|
["d", "<Community_name>"],
|
||||||
["description", "<community_description>"],
|
["description", "<Community_description>"],
|
||||||
["image", "<community_image>", "WidthxHeight"],
|
["image", "<Community_image_url>", "<Width>x<Height>"],
|
||||||
|
|
||||||
//.. other tags relevant to defining the community
|
//.. other tags relevant to defining the community
|
||||||
|
|
||||||
// moderators
|
// moderators
|
||||||
["p", "<32-bytes hex of a pubkey>", "<optional recommended relay URL>", "moderator"],
|
["p", "<32-bytes hex of a pubkey1>", "<optional recommended relay URL>", "moderator"],
|
||||||
["p", "<32-bytes hex of a pubkey>", "<optional recommended relay URL>", "moderator"],
|
["p", "<32-bytes hex of a pubkey2>", "<optional recommended relay URL>", "moderator"],
|
||||||
["p", "<32-bytes hex of a pubkey>", "<optional recommended relay URL>", "moderator"],
|
["p", "<32-bytes hex of a pubkey3>", "<optional recommended relay URL>", "moderator"],
|
||||||
|
|
||||||
// relays used by the community
|
// relays used by the community
|
||||||
["relay", "<relay hosting author kind 0>", "author"],
|
["relay", "<relay hosting author kind 0>", "author"],
|
||||||
|
@ -49,17 +49,17 @@ Any Nostr event can be a post request. Clients should simply add the community's
|
||||||
"created_at": "<Unix timestamp in seconds>",
|
"created_at": "<Unix timestamp in seconds>",
|
||||||
"kind": 1,
|
"kind": 1,
|
||||||
"tags": [
|
"tags": [
|
||||||
["a", "34550:<community event author pubkey>:<d-identifier of the community>", "<optional relay url>"],
|
["a", "34550:<Community event author pubkey>:<d-identifier of the community>", "<Optional relay url>"],
|
||||||
],
|
],
|
||||||
"content": "<my content>"
|
"content": "<My content>"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Community management clients can filter all mentions of the kind-34550 event and request moderators to approve each submission. The same moderator can remove his/her approval of the post at any time.
|
Community management clients can filter all mentions of the `kind:34550` event and request moderators to approve each submission. The same moderator can remove his/her approval of the post at any time.
|
||||||
|
|
||||||
# Post Approval by moderators
|
# Post Approval by moderators
|
||||||
|
|
||||||
The post-approval event includes a stringified `new post request` event inside the `.content` of the approval (NIP-18-style).
|
The post-approval event includes a stringified `new post request` event inside the `.content` of the approval ([NIP-18-style](18.md)).
|
||||||
|
|
||||||
```js
|
```js
|
||||||
{
|
{
|
||||||
|
@ -68,12 +68,12 @@ The post-approval event includes a stringified `new post request` event inside t
|
||||||
"created_at": "<Unix timestamp in seconds>",
|
"created_at": "<Unix timestamp in seconds>",
|
||||||
"kind": "4550",
|
"kind": "4550",
|
||||||
"tags": [
|
"tags": [
|
||||||
["a", "34550:<community event author pubkey>:<d-identifier of the community>", "<optional relay url>"],
|
["a", "34550:<Community event author pubkey>:<d-identifier of the community>", "<Optional relay url>"],
|
||||||
["e", "<Post Request ID>", "<optional relay url>"],
|
["e", "<Post Request ID>", "<Optional relay url>"],
|
||||||
["p", "<Post Request Author ID>", "<optional relay url>"],
|
["p", "<Post Request Author ID>", "<Optional relay url>"],
|
||||||
["k", "<New Post Request kind>"],
|
["k", "<New Post Request kind>"],
|
||||||
],
|
],
|
||||||
"content": "{ <New Post Request JSON> }"
|
"content": "<New Post Request JSON>"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -87,8 +87,8 @@ The following filter displays the approved posts.
|
||||||
|
|
||||||
```js
|
```js
|
||||||
{
|
{
|
||||||
"authors": ["<author>", "moderator1", "moderator2", "moderator3", ...],
|
"authors": ["<Author>", "<Moderator1>", "<Moderator2>", "<Moderator3>", ...],
|
||||||
"kinds": [4550],
|
"kinds": [4550],
|
||||||
"#a": ["34550:<community event author pubkey>:<d-identifier of the community>"],
|
"#a": ["34550:<Community event author pubkey>:<d-identifier of the community>"],
|
||||||
}
|
}
|
||||||
```
|
```
|
Loading…
Reference in New Issue
Block a user