Commit Graph

70 Commits

Author SHA1 Message Date
Chris Rhodes a0f52c076f Merge remote-tracking branch 'fluffle/master' into commandmerge
Conflicts:
	client.go
	client/connection.go
	client/handlers.go
2013-02-17 19:07:44 -08:00
Chris Rhodes 930f29959b Merge remote-tracking branch 'fluffle/master' into commandmerge
Conflicts:
	README.md
	client.go
	client/connection.go
	client/connection_test.go
	client/dispatch.go
	client/dispatch_test.go
	client/handlers.go
	client/handlers_test.go
2013-02-17 19:03:23 -08:00
Chris Rhodes e4da830c55 Handlers/Commands now use the container/list.
Re introduced strip nick and strip prefix for SimpleCommands
Fixed tests.
2013-02-17 18:40:58 -08:00
Alex Bramley fd6fc1269b SimpleClient shouldn't need to return an error. 2013-02-18 01:42:44 +00:00
Alex Bramley 8ed96e4294 Add Me() function for ease of use. 2013-02-18 01:38:04 +00:00
Alex Bramley 12bcc94eeb Add mutex for connect/disconnect locking. 2013-02-18 01:36:52 +00:00
Alex Bramley a323372a0b First steps towards client interface.
- Move all exported vars to Config struct;
- Plumbing for Config.Me etc;
- Constants and INIT/REGISTER handler from github.com/iopred;
2013-02-18 01:36:17 +00:00
Alex Bramley 39882dafd4 Minor rearrangements. 2013-02-17 23:55:39 +00:00
Chris Rhodes e8eba53828 Added more documentation, commands are a list now, not a set :) 2013-02-17 00:09:16 -08:00
Chris Rhodes 89c23a7787 Add support for complex regex commands.
Refactor commands so they are just handlers.
Add commands that listen for YouTube/Webpage mentions and print information (Video Info/Title).
Add simple command examples in client.go
TODO: Use a better data store for the commands, perhaps a linked list like handlers.
2013-02-16 23:50:42 -08:00
Alex Bramley b1242aa351 Break out tweakable things into a Config struct. 2013-02-16 18:05:56 +00:00
Alex Bramley 45d7b3317f Remove state.StateTracker stutter, hide it in Conn. 2013-02-16 11:29:56 +00:00
Alex Bramley f27e56c8b0 Run gofmt, since it's clearly been a while. 2013-02-16 10:33:15 +00:00
Chris Rhodes ed85f957b5 Call init in connect so theres no special casing for tests. 2013-02-15 19:47:10 -08:00
Chris Rhodes 8e16f59b5f Use the internal event handling for initial pass/user/nick messages.
Added constants for internal and named events.
gofmt'ed all files and updated client.go/documentation.
2013-02-15 19:24:10 -08:00
Alex Bramley a674267128 Re-work Handlers for IRC events; add Commands. 2013-02-16 00:17:31 +00:00
Alex Bramley a038856094 Remove embedded logger from client package. 2013-02-16 00:15:23 +00:00
Alex Bramley b39e4717af Allow renicking to be customised. (Closes #14) 2013-01-06 21:01:55 +00:00
Alex Bramley aa021c7cac Fix due to logging api change change. 2012-09-25 23:42:37 +01:00
Alex Bramley 13855ff77b Fix due to logging api change. 2012-09-25 22:39:02 +01:00
Alex Bramley b98fabe44e Fix go1 time changes up. 2012-06-06 17:12:07 +01:00
Alex Bramley 9c67c42fa1 Merge branch 'release'
Conflicts:
	client/connection.go
	client/connection_test.go
2012-06-06 16:25:07 +01:00
Alex Bramley 1c62354cb8 Rewrite flood limiting for new time behaviour. 2012-02-04 01:13:07 +00:00
Alex Bramley dfb6f94b56 Manually managing deadlines is going to *suck*. 2012-02-04 01:12:41 +00:00
Alex Bramley b23215d09b Gofix run. 2012-02-04 00:51:06 +00:00
Alex Bramley f1d0dbe45a If client-side ping can be disabled, we need to ensure something absorbs the shutdown message. 2011-11-15 22:57:29 +00:00
Alex Bramley 3183c9f177 Allow client-side ping to be disabled by setting PingFreq to zero. 2011-11-15 22:22:40 +00:00
Alex Bramley 8fa5e5624e Fix issues/9 by implementing a client-side ping loop. 2011-11-15 22:17:29 +00:00
Alex Bramley e0a5a57fe1 Merge branch 'master' into weekly
Conflicts:
	client/connection.go  # MERGED
	event/registry.go     # DELETED
	logging/mock_test.go  # DELETED
2011-11-13 14:13:55 +00:00
Alex Bramley 907560b599 Migrate to split event pkg. 2011-11-13 14:07:19 +00:00
Alex Bramley 4e4c4b6798 Migrate to split logging pkg. 2011-11-13 14:02:12 +00:00
Alex Bramley 9d5159a220 gofix weekly fixes for client. 2011-11-13 13:34:32 +00:00
Alex Bramley f62470c091 Test rateLimit(). Move call to time.After to write() for ease of testing.
Complete test coverage! Well, for things that matter. I think.
2011-11-11 11:17:18 +00:00
Alex Bramley dc524420b0 Test write(). Fix bug where return of Flush() was not checked. 2011-11-11 10:17:17 +00:00
Alex Bramley aa75e0e0c6 Make enabling/disabling state-tracking easier. Improve constructors. 2011-11-07 13:34:13 +00:00
Alex Bramley 85097043cf Epic final commit for nick/chan/logging/testing refactor.
* Brings logging changes to client library.
* Brings state tracker to client library.
* Rewrites all tests to use mock logger and mock state tracker.
* Makes state tracking optional, finally.
* Shaves yaks until they are almost completely bald.
2011-11-06 04:56:46 +00:00
Alex Bramley e36caa3a3d Merge branch 'logging' into nickchan-refactor
Conflicts:
	client/nickchan.go

Fix up some inconsistencies in the beginning of the nickchan refactor too.
2011-10-06 22:33:06 +01:00
Alex Bramley de66051d07 Convert conn.Err into logging.
Also, remove all error-side-effect testing cos it was a bit shit.
First step on the long road to refactoring the nick/chan state tracking
and making everything more testable and mockable with interfaces.
2011-09-29 22:54:54 +01:00
Alex Bramley eb6ac4ce05 Tracking wip. 2011-09-28 20:48:58 +01:00
Alex Bramley c400a2141a Run gofmt over code, it's been a while. 2011-09-12 23:25:09 +01:00
Alex Bramley 7d9b8c3099 Add tests for explicit and implicit (via EOF) shutdown; fix bug ;-) 2011-08-23 10:53:52 +01:00
Alex Bramley f3a2cf6fa6 Make connected externally accessible, per issues/8. 2011-08-22 17:09:48 +01:00
Alex Bramley fb91caeccf Fix comment for Conn struct. 2011-08-21 13:57:47 +01:00
Alex Bramley 045679dd42 Split Connect() into two pieces for testing purposes. 2011-08-21 13:31:18 +01:00
Alex Bramley 9c94b0b3e0 Impolite to break the 'IRC event provides Conn, Line' contract. 2011-07-30 19:34:55 +01:00
Alex Bramley 8fed417dce Oh wait event isn't local. 2011-07-28 00:41:47 +01:00
Alex Bramley 303d3724e2 Break out unboxing code; pass conn/line objects for other events. 2011-07-28 00:24:07 +01:00
Alex Bramley 8e6de2f3c7 Add an overridable Dispatcher to Conn, and use that to dispatch events. 2011-07-27 21:40:56 +01:00
Alex Bramley 900afb5c48 Put nil checking in correct place. 2011-07-27 21:15:09 +01:00
Alex Bramley 33a5bff35b Move line parsing done in dispatchEvent into ParseLine(). 2011-07-27 21:10:37 +01:00