lmao probably don't use this your computer may explode
Go to file
2016-11-19 09:45:36 -05:00
example overhaul of docs; add additional Config.Disable* directives. 2016-11-14 06:50:14 -05:00
.travis.yml rename Prefix to Source 2016-11-19 09:36:17 -05:00
callback.go add Client.ClearCallbacks(), Client.RemoveCallback(), and implemented id's for callbacks for easy popping from the stack 2016-11-18 21:38:23 -05:00
conn.go overhaul of docs; add additional Config.Disable* directives. 2016-11-14 06:50:14 -05:00
contants.go overhaul of docs; add additional Config.Disable* directives. 2016-11-14 06:50:14 -05:00
event.go rename Prefix to Source 2016-11-19 09:36:17 -05:00
helpers.go rename Prefix to Source 2016-11-19 09:36:17 -05:00
LICENSE first commit 2016-11-13 03:30:43 -05:00
main_test.go rewrite IsValidChannel() 2016-11-18 17:10:58 -05:00
main.go rename Prefix to Source 2016-11-19 09:36:17 -05:00
README.md add Client.ClearCallbacks(), Client.RemoveCallback(), and implemented id's for callbacks for easy popping from the stack 2016-11-18 21:38:23 -05:00
sender.go overhaul of docs; add additional Config.Disable* directives. 2016-11-14 06:50:14 -05:00
source.go update docs for source.go 2016-11-19 09:45:36 -05:00
state.go set state to be internal only 2016-11-14 06:59:08 -05:00

girc is a flexible IRC library for Go

Build Status GoDoc codebeat badge 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

  • Should Client.Message() an other similar methods support errors?
    • along with this, should we forcefully check to ensure that the target/events are valid?
  • track connection time (conntime? in state)
  • with conntime, find lag. Client.Lag() would be useful
  • would be cool to track things like SERVERNAME, VERSION, UMODES, CMODES, etc. also see Config.DisableCapTracking. e.g. here
  • client should support ping tracking (sending PING's to the server)
  • users need to be exposed in state somehow (other than GetChannels())
  • ip/host binding?
  • User.Age()? (FirstActive()?) (time since first seen)
  • cleanup docs in conn.go & event.go
  • add DISCONNECTED command state
  • add Client.IsInChannel()? and/or basic channel list
  • add Client.Topic(topic string)
  • MODE tracking on a per-channel basis
  • Event.PrettyString()?
  • Client.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>