diff --git a/go.mod b/go.mod index 29f95d5..3801818 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.14 require ( github.com/Pallinder/go-randomdata v1.2.0 github.com/diamondburned/aqs v0.0.0-20200704043812-99b676ee44eb - github.com/diamondburned/cchat v0.3.5 + github.com/diamondburned/cchat v0.3.8 github.com/lucasb-eyer/go-colorful v1.0.3 github.com/pkg/errors v0.9.1 golang.org/x/text v0.3.3 // indirect diff --git a/go.sum b/go.sum index 763b6b2..8a52531 100644 --- a/go.sum +++ b/go.sum @@ -13,6 +13,10 @@ github.com/diamondburned/cchat v0.3.1 h1:7NbVjT50dmLxcHPm+eDFF5jcaZw3t/9IdSEkZ/m github.com/diamondburned/cchat v0.3.1/go.mod h1:IlMtF+XIvAJh0GL/2yFdf0/34w+Hdy5A1GgvSwAXtQI= github.com/diamondburned/cchat v0.3.5 h1:6rweOEmFLJUlrC98sLFwUUp9H+GWhVgtEqW5suF+J/o= github.com/diamondburned/cchat v0.3.5/go.mod h1:IlMtF+XIvAJh0GL/2yFdf0/34w+Hdy5A1GgvSwAXtQI= +github.com/diamondburned/cchat v0.3.6 h1:at9bnxlABa3TGscra/cRq/ASsmJh6GCdQ0vnCD91tDk= +github.com/diamondburned/cchat v0.3.6/go.mod h1:IlMtF+XIvAJh0GL/2yFdf0/34w+Hdy5A1GgvSwAXtQI= +github.com/diamondburned/cchat v0.3.8 h1:vgFe8giVfwsAO+WpTYsTDIXvRUN48osVPNu0pZNvPEk= +github.com/diamondburned/cchat v0.3.8/go.mod h1:IlMtF+XIvAJh0GL/2yFdf0/34w+Hdy5A1GgvSwAXtQI= github.com/go-test/deep v1.0.7/go.mod h1:QV8Hv/iy04NyLBxAdO9njL0iVPN1S4d/A3NVv1V36o8= github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= github.com/k0kubun/pp v3.0.1+incompatible/go.mod h1:GWse8YhT0p8pT4ir3ZgBbfZild3tgzSScAn6HmfYukg= diff --git a/internal/service/authenticator.go b/internal/service/authenticator.go index b422f45..3f2d1ac 100644 --- a/internal/service/authenticator.go +++ b/internal/service/authenticator.go @@ -35,3 +35,19 @@ func (Authenticator) Authenticate(form []string) (cchat.Session, error) { return session.New(form[0], ""), nil } + +type FastAuthenticator struct{} + +var _ cchat.Authenticator = (*FastAuthenticator)(nil) + +func (FastAuthenticator) AuthenticateForm() []cchat.AuthenticateEntry { + return []cchat.AuthenticateEntry{ + { + Name: "Username (fast)", + }, + } +} + +func (FastAuthenticator) Authenticate(form []string) (cchat.Session, error) { + return session.New(form[0], ""), nil +} diff --git a/internal/service/service.go b/internal/service/service.go index b839fc0..8534b2a 100644 --- a/internal/service/service.go +++ b/internal/service/service.go @@ -33,8 +33,11 @@ func (s Service) RestoreSession(storage map[string]string) (cchat.Session, error return session.FromState(state), nil } -func (s Service) Authenticate() cchat.Authenticator { - return Authenticator{} +func (s Service) Authenticate() []cchat.Authenticator { + return []cchat.Authenticator{ + Authenticator{}, + FastAuthenticator{}, + } } func (s Service) AsConfigurator() cchat.Configurator {