data

package
v0.4.0-el2 Latest Latest
Warning

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

Go to latest
Published: Feb 22, 2021 License: GPL-3.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// AffiliationOwner represents XMPP muc 'owner' affiliation
	AffiliationOwner = "owner"
	// AffiliationAdmin represents XMPP muc 'admin' affiliation
	AffiliationAdmin = "admin"
	// AffiliationMember represents XMPP muc 'member' affiliation
	AffiliationMember = "member"
	// AffiliationOutcast represents XMPP muc 'outcast' affiliation
	AffiliationOutcast = "outcast"
	// AffiliationNone represents XMPP muc 'none' affiliation
	AffiliationNone = "none"
)
View Source
const (
	// RoleNone represents XMPP muc 'none' role
	RoleNone = "none"
	// RoleVisitor represents XMPP muc 'visitor' role
	RoleVisitor = "visitor"
	// RoleParticipant represents XMPP muc 'participant' role
	RoleParticipant = "participant"
	// RoleModerator represents XMPP muc 'moderator' role
	RoleModerator = "moderator"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Actor

type Actor struct {
	Nickname    string
	Affiliation Affiliation
	Role        Role
}

Actor represents the occupant that updates the role or affiliation

type AdminAffiliation

type AdminAffiliation struct{}

AdminAffiliation is a representation of MUC's "admin" affiliation

func (*AdminAffiliation) IsAdmin

func (*AdminAffiliation) IsAdmin() bool

IsAdmin implements Affiliation interface

func (*AdminAffiliation) IsBanned

func (*AdminAffiliation) IsBanned() bool

IsBanned implements Affiliation interface

func (*AdminAffiliation) IsDifferentFrom

func (*AdminAffiliation) IsDifferentFrom(a Affiliation) bool

IsDifferentFrom implements Affiliation interface

func (*AdminAffiliation) IsLowerThan

func (*AdminAffiliation) IsLowerThan(a Affiliation) bool

IsLowerThan implements Affiliation interface

func (*AdminAffiliation) IsMember

func (*AdminAffiliation) IsMember() bool

IsMember implements Affiliation interface

func (*AdminAffiliation) IsModerator

func (*AdminAffiliation) IsModerator() bool

IsModerator implements Affiliation interface

func (*AdminAffiliation) IsNone

func (*AdminAffiliation) IsNone() bool

IsNone implements Affiliation interface

func (*AdminAffiliation) IsOutcast

func (*AdminAffiliation) IsOutcast() bool

IsOutcast implements Affiliation interface

func (*AdminAffiliation) IsOwner

func (*AdminAffiliation) IsOwner() bool

IsOwner implements Affiliation interface

func (*AdminAffiliation) Name

func (*AdminAffiliation) Name() string

Name implements Affiliation interface

type Affiliation

type Affiliation interface {
	// IsAdmin will return true if this specific affiliation can modify persistent information
	IsAdmin() bool
	// IsBanned will return true if this specific affiliation means that the jid is banned from the room
	IsBanned() bool
	// IsMember will return true if this specific affiliation means that the jid is a member of the room
	IsMember() bool
	// IsOwner will return true if this specific affiliation means that the jid is an owner of the room
	IsOwner() bool
	// IsNone will return true if if the jid doesn't have affiliation
	IsNone() bool
	// Name returns the string name of the affiliation type
	Name() string
	// IsLowerThan returns true if the caller affiliation has a lower hierarchy than the affiliation passed as argument
	IsLowerThan(Affiliation) bool
	// IsDifferentFrom returns a boolean value indicating whether the given affiliation is not equal to the current one
	IsDifferentFrom(Affiliation) bool
}

Affiliation represents an affiliation as specificed by section 5.2 in XEP-0045

func AffiliationFromString

func AffiliationFromString(s string) (Affiliation, error)

AffiliationFromString returns an Affiliation from the given string, or an error if the string doesn't match a known affiliation type

type AffiliationRoleUpdate

type AffiliationRoleUpdate struct {
	Nickname            string
	Reason              string
	NewAffiliation      Affiliation
	PreviousAffiliation Affiliation
	NewRole             Role
	PreviousRole        Role
	Actor               *Actor
}

AffiliationRoleUpdate contains information related to a new and previous affiliation and role

type AffiliationUpdate

type AffiliationUpdate struct {
	Nickname string
	Reason   string
	New      Affiliation
	Previous Affiliation
	Actor    *Actor
}

AffiliationUpdate contains information related to a new and previous affiliation

type DelayedMessage

type DelayedMessage struct {
	Nickname  string
	Message   string
	Timestamp time.Time
}

DelayedMessage contains the information of a delayed message

type DelayedMessages

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

DelayedMessages contains the delayed messages for specific date

func (*DelayedMessages) GetDate

func (dm *DelayedMessages) GetDate() time.Time

GetDate returns the delayed messages group's date

func (*DelayedMessages) GetMessages

func (dm *DelayedMessages) GetMessages() []*DelayedMessage

GetMessages returns a list of delayed messages

type DiscussionHistory

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

DiscussionHistory contains the rooms's discussion history

func NewDiscussionHistory

func NewDiscussionHistory() *DiscussionHistory

NewDiscussionHistory creates a new discussion history instance

func (*DiscussionHistory) AddMessage

func (dh *DiscussionHistory) AddMessage(nickname, message string, timestamp time.Time)

AddMessage add a new delayed message to the history

func (*DiscussionHistory) GetHistory

func (dh *DiscussionHistory) GetHistory() []*DelayedMessages

GetHistory returns the discussion history

type MemberAffiliation

type MemberAffiliation struct{}

MemberAffiliation is a representation of MUC's "member" affiliation

func (*MemberAffiliation) IsAdmin

func (*MemberAffiliation) IsAdmin() bool

IsAdmin implements Affiliation interface

func (*MemberAffiliation) IsBanned

func (*MemberAffiliation) IsBanned() bool

IsBanned implements Affiliation interface

func (*MemberAffiliation) IsDifferentFrom

func (*MemberAffiliation) IsDifferentFrom(a Affiliation) bool

IsDifferentFrom implements Affiliation interface An administrator and an owner are members too For that reason, it validates if the affiliation given is an admin or owner, it should be different to member

func (*MemberAffiliation) IsLowerThan

func (*MemberAffiliation) IsLowerThan(a Affiliation) bool

IsLowerThan implements Affiliation interface

func (*MemberAffiliation) IsMember

func (*MemberAffiliation) IsMember() bool

IsMember implements Affiliation interface

func (*MemberAffiliation) IsModerator

func (*MemberAffiliation) IsModerator() bool

IsModerator implements Affiliation interface

func (*MemberAffiliation) IsNone

func (*MemberAffiliation) IsNone() bool

IsNone implements Affiliation interface

func (*MemberAffiliation) IsOutcast

func (*MemberAffiliation) IsOutcast() bool

IsOutcast implements Affiliation interface

func (*MemberAffiliation) IsOwner

func (*MemberAffiliation) IsOwner() bool

IsOwner implements Affiliation interface

func (*MemberAffiliation) Name

func (*MemberAffiliation) Name() string

Name implements Affiliation interface

type ModeratorRole

type ModeratorRole struct{}

ModeratorRole is a representation of MUC's "moderator" role

func (*ModeratorRole) AsModerator

func (*ModeratorRole) AsModerator() Role

AsModerator implements Role interface

func (*ModeratorRole) HasVoice

func (*ModeratorRole) HasVoice() bool

HasVoice implements Role interface

func (*ModeratorRole) IsDifferentFrom

func (*ModeratorRole) IsDifferentFrom(r Role) bool

IsDifferentFrom implements Role interface

func (*ModeratorRole) IsModerator

func (*ModeratorRole) IsModerator() bool

IsModerator implements Role interface

func (*ModeratorRole) IsNone

func (*ModeratorRole) IsNone() bool

IsNone implements Role interface

func (*ModeratorRole) IsParticipant

func (*ModeratorRole) IsParticipant() bool

IsParticipant implements Role interface

func (*ModeratorRole) IsVisitor

func (*ModeratorRole) IsVisitor() bool

IsVisitor implements Role interface

func (*ModeratorRole) Name

func (*ModeratorRole) Name() string

Name implements Role interface

func (*ModeratorRole) WithVoice

func (*ModeratorRole) WithVoice() Role

WithVoice implements Role interface

type NoneAffiliation

type NoneAffiliation struct{}

NoneAffiliation is a representation of MUC's "none" affiliation

func (*NoneAffiliation) IsAdmin

func (*NoneAffiliation) IsAdmin() bool

IsAdmin implements Affiliation interface

func (*NoneAffiliation) IsBanned

func (*NoneAffiliation) IsBanned() bool

IsBanned implements Affiliation interface

func (*NoneAffiliation) IsDifferentFrom

func (*NoneAffiliation) IsDifferentFrom(a Affiliation) bool

IsDifferentFrom implements Affiliation interface

func (*NoneAffiliation) IsLowerThan

func (*NoneAffiliation) IsLowerThan(a Affiliation) bool

IsLowerThan implements Affiliation interface

func (*NoneAffiliation) IsMember

func (*NoneAffiliation) IsMember() bool

IsMember implements Affiliation interface

func (*NoneAffiliation) IsModerator

func (*NoneAffiliation) IsModerator() bool

IsModerator implements Affiliation interface

func (*NoneAffiliation) IsNone

func (*NoneAffiliation) IsNone() bool

IsNone implements Affiliation interface

func (*NoneAffiliation) IsOutcast

func (*NoneAffiliation) IsOutcast() bool

IsOutcast implements Affiliation interface

func (*NoneAffiliation) IsOwner

func (*NoneAffiliation) IsOwner() bool

IsOwner implements Affiliation interface

func (*NoneAffiliation) Name

func (*NoneAffiliation) Name() string

Name implements Affiliation interface

type NoneRole

type NoneRole struct{}

NoneRole is a representation of MUC's "none" role

func (*NoneRole) AsModerator

func (*NoneRole) AsModerator() Role

AsModerator implements Role interface

func (*NoneRole) HasVoice

func (*NoneRole) HasVoice() bool

HasVoice implements Role interface

func (*NoneRole) IsDifferentFrom

func (*NoneRole) IsDifferentFrom(r Role) bool

IsDifferentFrom implements Role interface

func (*NoneRole) IsModerator

func (*NoneRole) IsModerator() bool

IsModerator implements Role interface

func (*NoneRole) IsNone

func (*NoneRole) IsNone() bool

IsNone implements Role interface

func (*NoneRole) IsParticipant

func (*NoneRole) IsParticipant() bool

IsParticipant implements Role interface

func (*NoneRole) IsVisitor

func (*NoneRole) IsVisitor() bool

IsVisitor implements Role interface

func (*NoneRole) Name

func (*NoneRole) Name() string

Name implements Role interface

func (*NoneRole) WithVoice

func (*NoneRole) WithVoice() Role

WithVoice implements Role interface

type OutcastAffiliation

type OutcastAffiliation struct{}

OutcastAffiliation is a representation of MUC's "banned" affiliation

func (*OutcastAffiliation) IsAdmin

func (*OutcastAffiliation) IsAdmin() bool

IsAdmin implements Affiliation interface

func (*OutcastAffiliation) IsBanned

func (*OutcastAffiliation) IsBanned() bool

IsBanned implements Affiliation interface

func (*OutcastAffiliation) IsDifferentFrom

func (*OutcastAffiliation) IsDifferentFrom(a Affiliation) bool

IsDifferentFrom implements Affiliation interface

func (*OutcastAffiliation) IsLowerThan

func (*OutcastAffiliation) IsLowerThan(Affiliation) bool

IsLowerThan implements Affiliation interface

func (*OutcastAffiliation) IsMember

func (*OutcastAffiliation) IsMember() bool

IsMember implements Affiliation interface

func (*OutcastAffiliation) IsModerator

func (*OutcastAffiliation) IsModerator() bool

IsModerator implements Affiliation interface

func (*OutcastAffiliation) IsNone

func (*OutcastAffiliation) IsNone() bool

IsNone implements Affiliation interface

func (*OutcastAffiliation) IsOutcast

func (*OutcastAffiliation) IsOutcast() bool

IsOutcast implements Affiliation interface

func (*OutcastAffiliation) IsOwner

func (*OutcastAffiliation) IsOwner() bool

IsOwner implements Affiliation interface

func (*OutcastAffiliation) Name

func (*OutcastAffiliation) Name() string

Name implements Affiliation interface

type OwnerAffiliation

type OwnerAffiliation struct{}

OwnerAffiliation is a representation of MUC's "owner" affiliation

func (*OwnerAffiliation) IsAdmin

func (*OwnerAffiliation) IsAdmin() bool

IsAdmin implements Affiliation interface

func (*OwnerAffiliation) IsBanned

func (*OwnerAffiliation) IsBanned() bool

IsBanned implements Affiliation interface

func (*OwnerAffiliation) IsDifferentFrom

func (*OwnerAffiliation) IsDifferentFrom(a Affiliation) bool

IsDifferentFrom implements Affiliation interface

func (*OwnerAffiliation) IsLowerThan

func (*OwnerAffiliation) IsLowerThan(a Affiliation) bool

IsLowerThan implements Affiliation interface

func (*OwnerAffiliation) IsMember

func (*OwnerAffiliation) IsMember() bool

IsMember implements Affiliation interface

func (*OwnerAffiliation) IsModerator

func (*OwnerAffiliation) IsModerator() bool

IsModerator implements Affiliation interface

func (*OwnerAffiliation) IsNone

func (*OwnerAffiliation) IsNone() bool

IsNone implements Affiliation interface

func (*OwnerAffiliation) IsOutcast

func (*OwnerAffiliation) IsOutcast() bool

IsOutcast implements Affiliation interface

func (*OwnerAffiliation) IsOwner

func (*OwnerAffiliation) IsOwner() bool

IsOwner implements Affiliation interface

func (*OwnerAffiliation) Name

func (*OwnerAffiliation) Name() string

Name implements Affiliation interface

type ParticipantRole

type ParticipantRole struct{}

ParticipantRole is a representation of MUC's "participant" role

func (*ParticipantRole) AsModerator

func (*ParticipantRole) AsModerator() Role

AsModerator implements Role interface

func (*ParticipantRole) HasVoice

func (*ParticipantRole) HasVoice() bool

HasVoice implements Role interface

func (*ParticipantRole) IsDifferentFrom

func (*ParticipantRole) IsDifferentFrom(r Role) bool

IsDifferentFrom implements Role interface

func (*ParticipantRole) IsModerator

func (*ParticipantRole) IsModerator() bool

IsModerator implements Role interface

func (*ParticipantRole) IsNone

func (*ParticipantRole) IsNone() bool

IsNone implements Role interface

func (*ParticipantRole) IsParticipant

func (*ParticipantRole) IsParticipant() bool

IsParticipant implements Role interface

func (*ParticipantRole) IsVisitor

func (*ParticipantRole) IsVisitor() bool

IsVisitor implements Role interface

func (*ParticipantRole) Name

func (*ParticipantRole) Name() string

Name implements Role interface

func (*ParticipantRole) WithVoice

func (*ParticipantRole) WithVoice() Role

WithVoice implements Role interface

type Role

type Role interface {
	// HasVoice returns true if the user can speak in this room
	HasVoice() bool
	// WithVoice returns the closest role upwards that has voice privilege. For Participants and Moderators, it returns itself, otherwise it returns participant
	WithVoice() Role
	// AsModerator returns the closest role upwards that can act as a moderator
	AsModerator() Role
	// Name returns the string name of the role type
	Name() string
	// IsModerator returns true if the user is a moderator
	IsModerator() bool
	// IsParticipant returns true if the user is a participant
	IsParticipant() bool
	// IsVisitor returns true if the user has a visitor role
	IsVisitor() bool
	// IsNone returns true if the user hasn't a role
	IsNone() bool
	// IsDifferentFrom returns a boolean value indicating whether the given role is not the same as the current one
	IsDifferentFrom(Role) bool
}

Role represents the specific role that a user has inside a specific room

func RoleFromString

func RoleFromString(s string) (Role, error)

RoleFromString returns the role object that matches the string given, or an error if the string given doesn't match a known role

type RoleUpdate

type RoleUpdate struct {
	Nickname string
	Reason   string
	New      Role
	Previous Role
	Actor    *Actor
}

RoleUpdate contains information related to a new and previous affiliation

type RoomConfigType

type RoomConfigType int

RoomConfigType is used to represent a room configuration field

const (
	// RoomConfigSupportsVoiceRequests represents rooms "SupportsVoiceRequests" config
	RoomConfigSupportsVoiceRequests RoomConfigType = iota
	// RoomConfigAllowsRegistration represents rooms "AllowsRegistration" config
	RoomConfigAllowsRegistration
	// RoomConfigPersistent represents rooms "Persistent" config
	RoomConfigPersistent
	// RoomConfigModerated represents rooms "Moderated" config
	RoomConfigModerated
	// RoomConfigOpen represents rooms "Open" config
	RoomConfigOpen
	// RoomConfigPasswordProtected represents rooms "PasswordProtected" config
	RoomConfigPasswordProtected
	// RoomConfigPublic represents rooms "Public" config
	RoomConfigPublic
	// RoomConfigLanguage represents rooms "Language" config
	RoomConfigLanguage
	// RoomConfigOccupantsCanChangeSubject represents rooms "OccupantsCanChangeSubject" config
	RoomConfigOccupantsCanChangeSubject
	// RoomConfigTitle represents rooms "Title" config
	RoomConfigTitle
	// RoomConfigDescription represents rooms "Description" config
	RoomConfigDescription
	// RoomConfigMembersCanInvite represents rooms "OccupantsCanInvite" config
	RoomConfigMembersCanInvite
	// RoomConfigAllowPrivateMessages represents rooms "AllowPrivateMessages" config
	RoomConfigAllowPrivateMessages
	// RoomConfigLogged represents rooms "Logged" config
	RoomConfigLogged
	// RoomConfigMaxHistoryFetch represents the maximum number of history messages returned by Room
	RoomConfigMaxHistoryFetch
)

type RoomDiscoInfo

type RoomDiscoInfo struct {
	SupportsVoiceRequests bool
	AllowsRegistration    bool
	AnonymityLevel        string
	Persistent            bool
	Moderated             bool
	Open                  bool
	PasswordProtected     bool
	Public                bool

	Language                  string
	OccupantsCanChangeSubject bool
	Logged                    bool // Notice that this will not always be correct for all servers
	Title                     string
	Description               string
	Occupants                 int
	MembersCanInvite          bool
	OccupantsCanInvite        bool
	AllowPrivateMessages      string // This can be 'anyone', 'participants', 'moderators', 'none'
	ContactJid                string
	MaxHistoryFetch           int
}

RoomDiscoInfo represents the room discovery information values

type RoomInfo

type RoomInfo struct {
	// muc#maxhistoryfetch
	// Maximum Number of History Messages Returned by Room
	MaxHistoryFetch int

	// muc#roominfo_contactjid
	// Contact Addresses (normally, room owner or owners)
	ContactJid string

	// muc#roominfo_description
	// Short Description of Room
	Description string

	//muc#roominfo_lang
	// Natural Language for Room Discussions
	Language string

	// muc#roominfo_ldapgroup
	// An associated LDAP group that defines room membership; this should be an LDAP
	// Distinguished Name according to an implementation-specific or
	// deployment-specific definition of a group.
	LdapGroup string

	// muc#roominfo_logs
	// URL for Archived Discussion Logs
	Logs string

	// muc#roominfo_occupants
	// Current Number of Occupants in Room
	Occupants int

	// muc#roominfo_subject
	// Current Discussion Topic
	Topic string

	// muc#roominfo_subjectmod
	// The room subject can be modified by participants
	OccupantsCanChangeSubject bool
}

RoomInfo represents the room's information form values (https://xmpp.org/extensions/xep-0045.html#registrar-formtype-roominfo)

type VisitorRole

type VisitorRole struct{}

VisitorRole is a representation of MUC's "visitor" role

func (*VisitorRole) AsModerator

func (*VisitorRole) AsModerator() Role

AsModerator implements Role interface

func (*VisitorRole) HasVoice

func (*VisitorRole) HasVoice() bool

HasVoice implements Role interface

func (*VisitorRole) IsDifferentFrom

func (*VisitorRole) IsDifferentFrom(r Role) bool

IsDifferentFrom implements Role interface

func (*VisitorRole) IsModerator

func (*VisitorRole) IsModerator() bool

IsModerator implements Role interface

func (*VisitorRole) IsNone

func (*VisitorRole) IsNone() bool

IsNone implements Role interface

func (*VisitorRole) IsParticipant

func (*VisitorRole) IsParticipant() bool

IsParticipant implements Role interface

func (*VisitorRole) IsVisitor

func (*VisitorRole) IsVisitor() bool

IsVisitor implements Role interface

func (*VisitorRole) Name

func (*VisitorRole) Name() string

Name implements Role interface

func (*VisitorRole) WithVoice

func (*VisitorRole) WithVoice() Role

WithVoice implements Role interface

Jump to

Keyboard shortcuts

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