lmao probably don't use this your computer may explode
examples | ||
.travis.yml | ||
callback.go | ||
conn.go | ||
contants.go | ||
event_test.go | ||
event.go | ||
format_test.go | ||
format.go | ||
helpers.go | ||
LICENSE | ||
main.go | ||
README.md | ||
source_test.go | ||
source.go | ||
state.go |
girc is a flexible IRC library for Go
Features
- Focuses on simplicity, yet tries to still be flexible
- Only requires standard packages
- Event based triggering/responses
- Documentation is mostly on par
- At this time, expect breaking changes to occur frequently.
TODO
- Should Client.Message() an other similar methods support errors?
- along with this, should we forcefully check to ensure that the target/events are valid?
- should we not allow methods like
Action()
andSendRaw()
when not connected?
- would be cool to track things like
SERVERNAME
,VERSION
,UMODES
,CMODES
, etc. also seeConfig.DisableCapTracking
. e.g. here - client should support ping tracking (sending
PING
's to the server)- with this, we can potentially find lag.
Client.Lag()
would be useful
- with this, we can potentially find lag.
- users need to be exposed in state somehow (other than
GetChannels()
) User.Age()
? (FirstActive()
?) (time since first seen)- add
Client.IsInChannel()
? and/or basic channel list - add
Client.Topic(topic string)
MODE
tracking on a per-channel basisClient.AddTmpCallback()
for one time use callbacks?
Installing
$ go get -u github.com/Liamraystanley/girc
Examples
See girc/examples/ for some examples.
Contributing
Below are a few guidelines if you would like to contribute. Keep the code clean, standardized, and much of the quality should match Golang's standard library and common idioms.
- Always test using the latest Go version.
- Always use
gofmt
before committing anything. - Always have proper documentation before committing.
- Keep the same whitespacing, documentation, and newline format as the rest of the project.
- Only use 3rd party libraries if necessary. If only a small portion of the library is needed, simply rewrite it within the library to prevent useless imports.
- Also see golang/go/wiki/CodeReviewComments
License
The MIT License (MIT); Copyright (c) Liam Stanley <me@liamstanley.io>