lmao probably don't use this your computer may explode
Go to file
2017-01-06 08:30:09 -05:00
.travis.yml rename Prefix to Source 2016-11-19 09:36:17 -05:00
caller.go yay new year 2017-01-03 11:05:27 -05:00
cap.go fix bug with capabilities breaking after reconnect 2017-01-06 01:09:18 -05:00
client_test.go yay new year 2017-01-03 11:05:27 -05:00
client.go implement GetServerOption, ServerName, NetworkName, ServerVersion, and ISUPPORT tracking; update todos 2017-01-06 08:30:09 -05:00
conn.go yay new year 2017-01-03 11:05:27 -05:00
contants.go rename various symbols; update todos; implement account tracking under account-notify 2017-01-03 21:13:05 -05:00
ctcp_test.go yay new year 2017-01-03 11:05:27 -05:00
ctcp.go yay new year 2017-01-03 11:05:27 -05:00
doc.go yay new year 2017-01-03 11:05:27 -05:00
event_test.go yay new year 2017-01-03 11:05:27 -05:00
event.go fix bug which caused messages with colons within the prefix to have invalid trailing data 2017-01-06 07:52:51 -05:00
format_test.go yay new year 2017-01-03 11:05:27 -05:00
format.go yay new year 2017-01-03 11:05:27 -05:00
handlers.go implement GetServerOption, ServerName, NetworkName, ServerVersion, and ISUPPORT tracking; update todos 2017-01-06 08:30:09 -05:00
LICENSE first commit 2016-11-13 03:30:43 -05:00
README.md implement GetServerOption, ServerName, NetworkName, ServerVersion, and ISUPPORT tracking; update todos 2017-01-06 08:30:09 -05:00
source_test.go yay new year 2017-01-03 11:05:27 -05:00
source.go yay new year 2017-01-03 11:05:27 -05:00
state.go implement GetServerOption, ServerName, NetworkName, ServerVersion, and ISUPPORT tracking; update todos 2017-01-06 08:30:09 -05:00

girc is a flexible IRC library for Go

Build Status GoDoc Go Report Card IRC Chat GitHub Issues license

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

  • IRCv3 spec -- details:
  • ensure types User and Channel don't have any unexported fields, and that when they are given publically, it's not a pointer to internal state
  • track with NAMES as well? would require rewrite of user existance logic, could also help track user modes
  • write more function-specific examples as the api becomes much more stable
  • client should support ping tracking (sending PING's to the server)
    • with this, we can potentially find lag. Client.Lag() would be useful
  • users need to be exposed in state somehow (other than GetChannels())
  • MODE tracking on a per-channel basis
  • Client.AddTmpCallback() for one time use callbacks?

Installing

$ go get -u github.com/lrstanley/girc

Examples

See the examples within the documentation for real-world usecases.

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>