irc

package module
v0.0.0-...-3353426 Latest Latest
Warning

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

Go to latest
Published: Jun 8, 2020 License: MPL-2.0 Imports: 25 Imported by: 0

Documentation

Index

Constants

View Source
const Protocol = "irc"
View Source
const ServerTimeFormat = "2006-01-02T15:04:05.999Z07:00"

ServerTimeFormat is the time format of the server-time CAP. The time must be in UTC. ISO 8601: YYYY-MM-DDThh:mm:ss.sssZ

Variables

View Source
var ERR_ALREADYREGISTRED = "462"
View Source
var ERR_BADCHANMASK = "476"
View Source
var ERR_BADCHANNELKEY = "475"
View Source
var ERR_BADMASK = "415"
View Source
var ERR_BANLISTFULL = "478"
View Source
var ERR_BANNEDFROMCHAN = "474"
View Source
var ERR_CANNOTSENDTOCHAN = "404"
View Source
var ERR_CANTKILLSERVER = "483"
View Source
var ERR_CHANNELISFULL = "471"
View Source
var ERR_CHANOPRIVSNEEDED = "482"
View Source
var ERR_ERRONEUSNICKNAME = "432"
View Source
var ERR_FILEERROR = "424"
View Source
var ERR_INVITEONLYCHAN = "473"
View Source
var ERR_KEYSET = "467"
View Source
var ERR_NEEDMOREPARAMS = "461"
View Source
var ERR_NICKCOLLISION = "436"
View Source
var ERR_NICKNAMEINUSE = "433"
View Source
var ERR_NOADMININFO = "423"
View Source
var ERR_NOCHANMODES = "477"
View Source
var ERR_NOLOGIN = "444"
View Source
var ERR_NOMOTD = "422"
View Source
var ERR_NONICKNAMEGIVEN = "431"
View Source
var ERR_NOOPERHOST = "491"
View Source
var ERR_NOORIGIN = "409"
View Source
var ERR_NOPERMFORHOST = "463"
View Source
var ERR_NOPRIVILEGES = "481"
View Source
var ERR_NORECIPIENT = "411"
View Source
var ERR_NOSERVICEHOST = "492"
View Source
var ERR_NOSUCHCHANNEL = "403"
View Source
var ERR_NOSUCHNICK = "401"
View Source
var ERR_NOSUCHSERVER = "402"
View Source
var ERR_NOSUCHSERVICE = "408"
View Source
var ERR_NOTEXTTOSEND = "412"
View Source
var ERR_NOTONCHANNEL = "442"
View Source
var ERR_NOTOPLEVEL = "413"
View Source
var ERR_NOTREGISTERED = "451"
View Source
var ERR_PASSWDMISMATCH = "464"
View Source
var ERR_RESTRICTED = "484"
View Source
var ERR_SUMMONDISABLED = "445"
View Source
var ERR_TOOMANYCHANNELS = "405"
View Source
var ERR_TOOMANYTARGETS = "407"
View Source
var ERR_UMODEUNKNOWNFLAG = "501"
View Source
var ERR_UNAVAILRESOURCE = "437"
View Source
var ERR_UNIQOPPRIVSNEEDED = "485"
View Source
var ERR_UNKNOWNCOMMAND = "421"
View Source
var ERR_UNKNOWNMODE = "472"
View Source
var ERR_USERNOTINCHANNEL = "441"
View Source
var ERR_USERONCHANNEL = "443"
View Source
var ERR_USERSDISABLED = "446"
View Source
var ERR_USERSDONTMATCH = "502"
View Source
var ERR_WASNOSUCHNICK = "406"
View Source
var ERR_WILDTOPLEVEL = "414"
View Source
var ERR_YOUREBANNEDCREEP = "465"
View Source
var ERR_YOUWILLBEBANNED = "466"
View Source
var ErrSendQueueFull = errors.New("send queue full")
View Source
var RPL_ADMINEMAIL = "259"
View Source
var RPL_ADMINLOC1 = "257"
View Source
var RPL_ADMINLOC2 = "258"
View Source
var RPL_ADMINME = "256"
View Source
var RPL_AWAY = "301"
View Source
var RPL_BANLIST = "367"
View Source
var RPL_BOUNCE = "005"
View Source
var RPL_CHANNELMODEIS = "324"
View Source
var RPL_CLOSEEND = "363"
View Source
var RPL_CLOSING = "362"
View Source
var RPL_CREATED = "003"
View Source
var RPL_ENDOFBANLIST = "368"
View Source
var RPL_ENDOFEXCEPTLIST = "349"
View Source
var RPL_ENDOFINFO = "374"
View Source
var RPL_ENDOFINVITELIST = "347"
View Source
var RPL_ENDOFLINKS = "365"
View Source
var RPL_ENDOFMOTD = "376"
View Source
var RPL_ENDOFNAMES = "366"
View Source
var RPL_ENDOFSERVICES = "232"
View Source
var RPL_ENDOFSTATS = "219"
View Source
var RPL_ENDOFUSERS = "394"
View Source
var RPL_ENDOFWHO = "315"
View Source
var RPL_ENDOFWHOIS = "318"
View Source
var RPL_ENDOFWHOWAS = "369"
View Source
var RPL_EXCEPTLIST = "348"
View Source
var RPL_INFO = "371"
View Source
var RPL_INFOSTART = "373"
View Source
var RPL_INVITELIST = "346"
View Source
var RPL_INVITING = "341"
View Source
var RPL_ISON = "303"
View Source
var RPL_ISUPPORT = "005"
View Source
var RPL_KILLDONE = "361"
View Source
var RPL_LINKS = "364"
View Source
var RPL_LIST = "322"
View Source
var RPL_LISTEND = "323"
View Source
var RPL_LISTSTART = "321"
View Source
var RPL_LUSERCHANNELS = "254"
View Source
var RPL_LUSERCLIENT = "251"
View Source
var RPL_LUSERME = "255"
View Source
var RPL_LUSEROP = "252"
View Source
var RPL_LUSERUNKNOWN = "253"
View Source
var RPL_MOTD = "372"
View Source
var RPL_MOTDSTART = "375"
View Source
var RPL_MYINFO = "004"
View Source
var RPL_MYPORTIS = "384"
View Source
var RPL_NAMREPLY = "353"
View Source
var RPL_NONE = "300"
View Source
var RPL_NOTOPIC = "331"
View Source
var RPL_NOUSERS = "395"
View Source
var RPL_NOWAWAY = "306"
View Source
var RPL_REHASHING = "382"
View Source
var RPL_SERVICE = "233"
View Source
var RPL_SERVICEINFO = "231"
View Source
var RPL_SERVLIST = "234"
View Source
var RPL_SERVLISTEND = "235"
View Source
var RPL_STATSBLINE = "247"
View Source
var RPL_STATSCLINE = "213"
View Source
var RPL_STATSCOMMANDS = "212"
View Source
var RPL_STATSDLINE = "250"
View Source
var RPL_STATSHLINE = "244"
View Source
var RPL_STATSILINE = "215"
View Source
var RPL_STATSKLINE = "216"
View Source
var RPL_STATSLINKINFO = "211"
View Source
var RPL_STATSLLINE = "241"
View Source
var RPL_STATSNLINE = "214"
View Source
var RPL_STATSOLINE = "243"
View Source
var RPL_STATSPING = "246"
View Source
var RPL_STATSQLINE = "217"
View Source
var RPL_STATSSLINE = "244"
View Source
var RPL_STATSUPTIME = "242"
View Source
var RPL_STATSVLINE = "240"
View Source
var RPL_STATSYLINE = "218"
View Source
var RPL_SUMMONING = "342"
View Source
var RPL_TIME = "391"
View Source
var RPL_TOPIC = "332"
View Source
var RPL_TRACECLASS = "209"
View Source
var RPL_TRACECONNECTING = "201"
View Source
var RPL_TRACEEND = "262"
View Source
var RPL_TRACEHANDSHAKE = "202"
View Source
var RPL_TRACELINK = "200"
View Source
var RPL_TRACELOG = "261"
View Source
var RPL_TRACENEWTYPE = "208"
View Source
var RPL_TRACEOPERATOR = "204"
View Source
var RPL_TRACERECONNECT = "210"
View Source
var RPL_TRACESERVER = "206"
View Source
var RPL_TRACESERVICE = "207"
View Source
var RPL_TRACEUNKNOWN = "203"
View Source
var RPL_TRACEUSER = "205"
View Source
var RPL_TRYAGAIN = "263"
View Source
var RPL_UMODEIS = "221"
View Source
var RPL_UNAWAY = "305"
View Source
var RPL_UNIQOPIS = "325"
View Source
var RPL_USERHOST = "302"
View Source
var RPL_USERS = "393"
View Source
var RPL_USERSSTART = "392"
View Source
var RPL_VERSION = "351"
View Source
var RPL_WELCOME = "001"
View Source
var RPL_WHOISCHANNELS = "319"
View Source
var RPL_WHOISCHANOP = "316"
View Source
var RPL_WHOISIDLE = "317"
View Source
var RPL_WHOISOPERATOR = "313"
View Source
var RPL_WHOISSERVER = "312"
View Source
var RPL_WHOISUSER = "311"
View Source
var RPL_WHOREPLY = "352"
View Source
var RPL_WHOWASUSER = "314"
View Source
var RPL_YOUREOPER = "381"
View Source
var RPL_YOURESERVICE = "383"
View Source
var RPL_YOURHOST = "002"

Functions

func GetToLowerFunc

func GetToLowerFunc(casemapping string) func(string) string

func NewClient

func NewClient(svc *service.Service, addr, nick, pass string, values stdchat.ValuesInfo) (service.Networker, error)

func NewService

func NewService(tp service.Transporter) *service.Service

func ToLowerASCII

func ToLowerASCII(s string) string

func ToLowerRFC1459

func ToLowerRFC1459(s string) string

func ToLowerStrictRFC1459

func ToLowerStrictRFC1459(s string) string

Types

type Channel

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

func (*Channel) GetMembersInfo

func (channel *Channel) GetMembersInfo() []stdchat.MemberInfo

func (*Channel) GetStateInfo

func (channel *Channel) GetStateInfo() stdchat.SubscriptionStateInfo

func (*Channel) IsOn

func (channel *Channel) IsOn(nick string) Member

Member.Valid() is false if nick is not on this channel.

func (*Channel) Joined

func (channel *Channel) Joined() bool

Joined returns true if this channel was joined. Due to rejoining on auto-reconnect, a channel can be kept but not joined yet.

type Client

type Client struct {
	Verbose bool // verbose output to log.Print/Printf
	// contains filtered or unexported fields
}

func (*Client) BreakConnection

func (client *Client) BreakConnection() error

BreakConnection will force break the connection, as if there was a network error. A broken connection will auto-reconnect; use Close() for proper connection close.

func (*Client) Close

func (client *Client) Close() error

Close the client.

func (*Client) Closed

func (client *Client) Closed() bool

Closed returns true if Close() was called.

func (*Client) CmdHandler

func (client *Client) CmdHandler(msg *stdchat.CmdMsg)

func (*Client) ConnID

func (client *Client) ConnID() string

func (*Client) Connected

func (client *Client) Connected() bool

Connected returns true if a connection is established to the server.

func (*Client) Context

func (client *Client) Context() context.Context

func (*Client) GetChannel

func (client *Client) GetChannel(name string) *Channel

GetChannel gets a channel this user is on, or nil if not.

func (*Client) GetChannels

func (client *Client) GetChannels() []*Channel

func (*Client) GetNickPrefix

func (client *Client) GetNickPrefix(ch byte) byte

Returns 0 if ch is not a channel nick prefix mode.

func (*Client) GetPrefix

func (client *Client) GetPrefix() (modes string, chars string)

func (*Client) GetStateInfo

func (client *Client) GetStateInfo() service.ClientStateInfo

func (*Client) Handler

func (client *Client) Handler(msg *stdchat.ChatMsg)

func (*Client) IsChanType

func (client *Client) IsChanType(ch byte) bool

func (*Client) IsNickPrefix

func (client *Client) IsNickPrefix(ch byte) bool

func (*Client) Join

func (client *Client) Join(joinArgs string) error

Join IRC channels; joinArgs can have comma-separated names, and keys.

func (*Client) Logout

func (client *Client) Logout(reason string) error

Logout and Close. This is needed to release resources, stop goroutines, and remove from the service clients list.

func (*Client) NetworkID

func (client *Client) NetworkID() string

func (*Client) NetworkName

func (client *Client) NetworkName() string

func (*Client) Nick

func (client *Client) Nick() string

Nick gets your current nickname, which can be empty before or during a connection. Note that reading the Nick() may return the old nickname until updated by the server.

func (*Client) NickID

func (client *Client) NickID() string

NickID gets the ID of Nick()

func (*Client) Ready

func (client *Client) Ready() bool

Ready returns true if we are logged onto the server and have a nickname.

func (*Client) SendAction

func (client *Client) SendAction(dest, msg string) error

func (*Client) SendCTCP

func (client *Client) SendCTCP(dest, ctcp, args string) error

func (*Client) SendCTCPReply

func (client *Client) SendCTCPReply(dest, ctcp, args string) error

func (*Client) SendLine

func (client *Client) SendLine(line string) error

SendLine queues up the line to be sent eventually, after considering rate limiting. Note that if the queue fills up, the call blocks; use TrySendLine to avoid this. An error can be returned when the connection is closed.

func (*Client) SendMsg

func (client *Client) SendMsg(dest, msg string) error

func (*Client) SendNotice

func (client *Client) SendNotice(dest, notice string) error

func (*Client) SetNick

func (client *Client) SetNick(nick string)

SetNick sets your nickname. Also see Nick()

func (*Client) Start

func (client *Client) Start(ctx context.Context, id string) error

func (*Client) StringToLower

func (client *Client) StringToLower(s string) string

StringToLower converts s to lowercase per the server's casemapping.

func (*Client) TrySendLine

func (client *Client) TrySendLine(line string) error

TrySendLine is similar to SendLine, but will return ErrSendQueueFull immediately if the send queue is full.

type Member

type Member struct {
	Prefixes string
	Nick     string
	Who      string // nick!user@host if known, empty otherwise.
}

func (Member) GetMemberInfo

func (member Member) GetMemberInfo(channel *Channel) stdchat.MemberInfo

func (Member) Valid

func (member Member) Valid() bool

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

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