groups

package
v1.2.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 8, 2026 License: Unlicense Imports: 36 Imported by: 0

Documentation

Index

Constants

View Source
const (
	PRIMARY_ROLE_NAME   = "admin"
	SECONDARY_ROLE_NAME = "moderator"
)
View Source
const GROUP_LANGUAGE_MESSAGE_THRESHOLD = 15

Variables

View Source
var LiveKitEmbedded bool

Functions

func DeleteEventFromGroupSearch added in v1.2.7

func DeleteEventFromGroupSearch(event nostr.Event) error

func EmbeddedLiveKitAvailable added in v1.1.0

func EmbeddedLiveKitAvailable() bool

func EmbeddedLiveKitError added in v1.1.0

func EmbeddedLiveKitError() string

func EmbeddedLiveKitRunning added in v1.1.0

func EmbeddedLiveKitRunning() bool

func HandleEventSaved added in v1.2.7

func HandleEventSaved(event nostr.Event)

func Init

func Init(relay *khatru.Relay)

func LiveKitProxyHandler added in v1.1.0

func LiveKitProxyHandler(w http.ResponseWriter, r *http.Request)

func Query added in v1.2.7

func Query(ctx context.Context, filter nostr.Filter) iter.Seq[nostr.Event]

func RejectEvent added in v1.2.7

func RejectEvent(ctx context.Context, event nostr.Event) (reject bool, msg string)

func RequestAuthWhenNecessary added in v1.2.7

func RequestAuthWhenNecessary(ctx context.Context, filter nostr.Filter) (reject bool, msg string)

func ShouldPreventBroadcast added in v1.2.7

func ShouldPreventBroadcast(evt nostr.Event, filter nostr.Filter, authed []nostr.PubKey) bool

func ShutdownEmbeddedLiveKit added in v1.1.0

func ShutdownEmbeddedLiveKit()

func StartEmbeddedLiveKit added in v1.1.0

func StartEmbeddedLiveKit() error

func StopEmbeddedLiveKit added in v1.1.0

func StopEmbeddedLiveKit() error

Types

type Group

type Group struct {
	nip29.Group
	// contains filtered or unexported fields
}

func (*Group) AnyOfTheseIsAMember

func (g *Group) AnyOfTheseIsAMember(pubkeys []nostr.PubKey) bool

func (*Group) IsPrimaryRole

func (g *Group) IsPrimaryRole(member nostr.PubKey) bool

type GroupsState

type GroupsState struct {
	Groups *xsync.MapOf[string, *Group]
	DB     eventstore.Store
	// contains filtered or unexported fields
}
var (
	Handler = &MuxHandler{}
	State   *GroupsState
)

func NewGroupsState

func NewGroupsState(opts Options) *GroupsState

func (*GroupsState) GetGroupFromEvent

func (s *GroupsState) GetGroupFromEvent(event nostr.Event) *Group

func (*GroupsState) NewGroup

func (s *GroupsState) NewGroup(id string) *Group

NewGroup creates a new group from scratch (but doesn't store it in the groups map)

func (*GroupsState) ProcessEvent

func (s *GroupsState) ProcessEvent(ctx context.Context, event nostr.Event) (groupsAffected []*Group)

func (*GroupsState) SyncGroupMetadataEvents added in v1.0.20

func (s *GroupsState) SyncGroupMetadataEvents(group *Group) iter.Seq2[nostr.Event, error]

SyncGroupMetadataEvents tries to save new versions of metadata events to the database. if they are new enough (<3s) they are returned in the iterator, otherwise not.

func (*GroupsState) WipeGroup added in v1.0.9

func (s *GroupsState) WipeGroup(groupId string) error

type MuxHandler added in v1.0.4

type MuxHandler struct {
	// contains filtered or unexported fields
}

func (*MuxHandler) ServeHTTP added in v1.0.4

func (mh *MuxHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)

type Options

type Options struct {
	DB        eventstore.Store
	SecretKey nostr.SecretKey
	Broadcast func(nostr.Event) int
}

type TokenSourceResponse added in v1.1.0

type TokenSourceResponse struct {
	ServerURL        string `json:"server_url"`
	ParticipantToken string `json:"participant_token"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL