Documentation ¶
Overview ¶
Copyright (c) 2024 Jerzy Dąbrowski Based on original work by Thomas Jager, 2009. All rights reserved.
This project is a fork of the original go-ircevent library created by Thomas Jager. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions, and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions, and the following disclaimer in the documentation and/or other materials provided with the distribution.
- Neither the name of the original authors nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING FROM, OUT OF, OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Copyright (c) 2024 Jerzy Dąbrowski Based on original work by Thomas Jager, 2009. All rights reserved.
This project is a fork of the original go-ircevent library created by Thomas Jager. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions, and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions, and the following disclaimer in the documentation and/or other materials provided with the distribution.
- Neither the name of the original authors nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING FROM, OUT OF, OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Index ¶
- Constants
- Variables
- type CallbackID
- type Connection
- func (irc *Connection) Action(target, message string)
- func (irc *Connection) Actionf(target, format string, a ...interface{})
- func (irc *Connection) AddCallback(eventcode string, callback func(*Event)) int
- func (irc *Connection) ClearCallback(eventcode string) bool
- func (irc *Connection) CloseDCCChat(nick string) error
- func (irc *Connection) Connect(server string) error
- func (irc *Connection) Connected() bool
- func (irc *Connection) Disconnect()
- func (irc *Connection) ErrorChan() chan error
- func (irc *Connection) GetDCCMessage(nick string) (string, error)
- func (irc *Connection) GetNick() string
- func (irc *Connection) InitiateDCCChat(target string) error
- func (irc *Connection) IsDCCChatActive(nick string) bool
- func (irc *Connection) IsFullyConnected() bool
- func (irc *Connection) Join(channel string)
- func (irc *Connection) Kick(user, channel, msg string)
- func (irc *Connection) ListActiveDCCChats() []string
- func (irc *Connection) Loop()
- func (irc *Connection) Mode(target string, modestring ...string)
- func (irc *Connection) MultiKick(users []string, channel string, msg string)
- func (irc *Connection) Nick(n string)
- func (irc *Connection) Notice(target, message string)
- func (irc *Connection) Noticef(target, format string, a ...interface{})
- func (irc *Connection) Part(channel string)
- func (irc *Connection) Privmsg(target, message string)
- func (irc *Connection) Privmsgf(target, format string, a ...interface{})
- func (irc *Connection) Quit()
- func (irc *Connection) Reconnect() error
- func (irc *Connection) RemoveCallback(eventcode string, i int) bool
- func (irc *Connection) ReplaceCallback(eventcode string, i int, callback func(*Event))
- func (irc *Connection) RunCallbacks(event *Event)
- func (irc *Connection) SendDCCMessage(nick, message string) error
- func (irc *Connection) SendRaw(message string)
- func (irc *Connection) SendRawf(format string, a ...interface{})
- func (irc *Connection) SetDCCChatTimeout(timeout time.Duration)
- func (irc *Connection) SetLocalIP(ip string)
- func (irc *Connection) SetProxy(proxyType, address, username, password string)
- func (irc *Connection) Who(nick string)
- func (irc *Connection) Whois(nick string)
- type DCCChat
- type DCCManager
- type Event
- type ProxyConfig
- type SASLResult
Constants ¶
const CAP_TIMEOUT = time.Second * 15
const (
VERSION = "go-ircevent v2.1+myip"
)
Variables ¶
var ErrDisconnected = errors.New("Disconnect Called")
Functions ¶
This section is empty.
Types ¶
type CallbackID ¶
CallbackID is a tuple type for uniquely identifying callbacks.
type Connection ¶
type Connection struct { sync.Mutex sync.WaitGroup Debug bool Error chan error WebIRC string Password string UseTLS bool UseSASL bool RequestCaps []string AcknowledgedCaps []string SASLLogin string SASLPassword string SASLMech string TLSConfig *tls.Config Version string Timeout time.Duration CallbackTimeout time.Duration PingFreq time.Duration KeepAlive time.Duration Server string Encoding encoding.Encoding ProxyConfig *ProxyConfig RealName string // The real name we want to display. QuitMessage string VerboseCallbackHandler bool Log *log.Logger DCCManager *DCCManager // DCC chat support HandleErrorAsDisconnect bool // Fix reconnection loop after ERROR event if user have own reconnect implementation // contains filtered or unexported fields }
Connection represents an IRC connection.
func IRC ¶
func IRC(nick, user string) *Connection
Create a connection with the (publicly visible) nickname and username. The nickname is later used to address the user. Returns nil if nick or user are empty.
func (*Connection) Action ¶
func (irc *Connection) Action(target, message string)
Send (action) message to a target (channel or nickname). No clear RFC on this one...
func (*Connection) Actionf ¶
func (irc *Connection) Actionf(target, format string, a ...interface{})
Send formatted (action) message to a target (channel or nickname).
func (*Connection) AddCallback ¶
func (irc *Connection) AddCallback(eventcode string, callback func(*Event)) int
AddCallback registers a callback to a connection and event code. A callback is a function which takes only an Event pointer as a parameter. Valid event codes are all IRC/CTCP commands and error/response codes. To register a callback for all events, pass "*" as the event code. This function returns the ID of the registered callback for later management.
func (*Connection) ClearCallback ¶
func (irc *Connection) ClearCallback(eventcode string) bool
ClearCallback removes all callbacks from a given event code. It returns true if the given event code is found and cleared.
func (*Connection) CloseDCCChat ¶
func (irc *Connection) CloseDCCChat(nick string) error
CloseDCCChat zamyka połączenie DCC CHAT z określonym nickiem
func (*Connection) Connect ¶
func (irc *Connection) Connect(server string) error
Connect to a given server using the current connection configuration. This function also takes care of identification if a password is provided. RFC 1459 details: https://tools.ietf.org/html/rfc1459#section-4.1
func (*Connection) Connected ¶
func (irc *Connection) Connected() bool
Returns true if the connection is connected to an IRC server.
func (*Connection) Disconnect ¶
func (irc *Connection) Disconnect()
A disconnect sends all buffered messages (if possible), stops all goroutines and then closes the socket.
func (*Connection) ErrorChan ¶
func (irc *Connection) ErrorChan() chan error
func (*Connection) GetDCCMessage ¶
func (irc *Connection) GetDCCMessage(nick string) (string, error)
func (*Connection) GetNick ¶
func (irc *Connection) GetNick() string
Determine nick currently used with the connection.
func (*Connection) InitiateDCCChat ¶
func (irc *Connection) InitiateDCCChat(target string) error
func (*Connection) IsDCCChatActive ¶
func (irc *Connection) IsDCCChatActive(nick string) bool
IsDCCChatActive sprawdza, czy istnieje aktywne połączenie DCC CHAT z danym nickiem
func (*Connection) IsFullyConnected ¶
func (irc *Connection) IsFullyConnected() bool
func (*Connection) Join ¶
func (irc *Connection) Join(channel string)
Use the connection to join a given channel. RFC 1459 details: https://tools.ietf.org/html/rfc1459#section-4.2.1
func (*Connection) Kick ¶
func (irc *Connection) Kick(user, channel, msg string)
Kick <user> from <channel> with <msg>. For no message, pass empty string ("")
func (*Connection) ListActiveDCCChats ¶
func (irc *Connection) ListActiveDCCChats() []string
ListActiveDCCChats zwraca listę nicków, z którymi mamy aktywne połączenia DCC CHAT
func (*Connection) Mode ¶
func (irc *Connection) Mode(target string, modestring ...string)
Set different modes for a target (channel or nickname). RFC 1459 details: https://tools.ietf.org/html/rfc1459#section-4.2.3
func (*Connection) MultiKick ¶
func (irc *Connection) MultiKick(users []string, channel string, msg string)
Kick all <users> from <channel> with <msg>. For no message, pass empty string ("")
func (*Connection) Nick ¶
func (irc *Connection) Nick(n string)
Set (new) nickname. RFC 1459 details: https://tools.ietf.org/html/rfc1459#section-4.1.2
func (*Connection) Notice ¶
func (irc *Connection) Notice(target, message string)
Send a notification to a nickname. This is similar to Privmsg but must not receive replies. RFC 1459 details: https://tools.ietf.org/html/rfc1459#section-4.4.2
func (*Connection) Noticef ¶
func (irc *Connection) Noticef(target, format string, a ...interface{})
Send a formatted notification to a nickname. RFC 1459 details: https://tools.ietf.org/html/rfc1459#section-4.4.2
func (*Connection) Part ¶
func (irc *Connection) Part(channel string)
Leave a given channel. RFC 1459 details: https://tools.ietf.org/html/rfc1459#section-4.2.2
func (*Connection) Privmsg ¶
func (irc *Connection) Privmsg(target, message string)
Send (private) message to a target (channel or nickname). RFC 1459 details: https://tools.ietf.org/html/rfc1459#section-4.4.1
func (*Connection) Privmsgf ¶
func (irc *Connection) Privmsgf(target, format string, a ...interface{})
Send formatted string to specified target (channel or nickname).
func (*Connection) Quit ¶
func (irc *Connection) Quit()
Quit the current connection and disconnect from the server RFC 1459 details: https://tools.ietf.org/html/rfc1459#section-4.1.6
func (*Connection) Reconnect ¶
func (irc *Connection) Reconnect() error
Reconnect to a server using the current connection.
func (*Connection) RemoveCallback ¶
func (irc *Connection) RemoveCallback(eventcode string, i int) bool
RemoveCallback removes callback i (ID) from the given event code. This function returns true upon success, false if any error occurs.
func (*Connection) ReplaceCallback ¶
func (irc *Connection) ReplaceCallback(eventcode string, i int, callback func(*Event))
ReplaceCallback replaces callback i (ID) associated with a given event code with a new callback function.
func (*Connection) RunCallbacks ¶
func (irc *Connection) RunCallbacks(event *Event)
RunCallbacks executes all callbacks associated with a given event.
func (*Connection) SendDCCMessage ¶
func (irc *Connection) SendDCCMessage(nick, message string) error
func (*Connection) SendRawf ¶
func (irc *Connection) SendRawf(format string, a ...interface{})
Send raw formatted string.
func (*Connection) SetDCCChatTimeout ¶
func (irc *Connection) SetDCCChatTimeout(timeout time.Duration)
SetDCCChatTimeout ustawia timeout dla połączeń DCC CHAT
func (*Connection) SetLocalIP ¶
func (irc *Connection) SetLocalIP(ip string)
SetLocalIP sets the local IP address to bind when connecting. This allows the client to specify which local interface/IP to use.
func (*Connection) SetProxy ¶
func (irc *Connection) SetProxy(proxyType, address, username, password string)
func (*Connection) Who ¶
func (irc *Connection) Who(nick string)
Query information about a given nickname in the server. RFC 1459 details: https://tools.ietf.org/html/rfc1459#section-4.5.1
func (*Connection) Whois ¶
func (irc *Connection) Whois(nick string)
Query information about a particular nickname. RFC 1459: https://tools.ietf.org/html/rfc1459#section-4.5.2
type DCCChat ¶
type DCCChat struct { Nick string Conn net.Conn Incoming chan string Outgoing chan string // contains filtered or unexported fields }
DCCChat reprezentuje pojedyncze połączenie DCC CHAT
type DCCManager ¶
type DCCManager struct {
// contains filtered or unexported fields
}
DCCManager zarządza wszystkimi połączeniami DCC
type Event ¶
type Event struct { Code string Raw string Nick string //<nick> Host string //<nick>!<usr>@<host> Source string //<host> User string //<usr> Arguments []string Tags map[string]string Connection *Connection Ctx context.Context }
Event represents an IRC event.
func (*Event) Message ¶
Message retrieves the last message from Event arguments. This function leaves the arguments untouched and returns an empty string if there are none.
func (*Event) MessageWithoutFormat ¶
MessageWithoutFormat retrieves the last message from Event arguments, but without IRC formatting (e.g., colors). This function leaves the arguments untouched and returns an empty string if there are none.