func (p *OAuthPlugin) InitWebServerAuth(bot *slick.Bot, webserver slick.WebServer) { p.webserver = webserver var config struct { WebAuthConfig OAuthConfig } bot.LoadConfig(&config) conf := config.WebAuthConfig webserver.SetAuthMiddleware(func(handler http.Handler) http.Handler { return &OAuthMiddleware{ handler: handler, plugin: p, webserver: webserver, bot: bot, oauthCfg: &oauth2.Config{ ClientID: conf.ClientID, ClientSecret: conf.ClientSecret, RedirectURL: conf.RedirectURL + "/oauth2callback", Scopes: []string{"identify"}, Endpoint: oauth2.Endpoint{ AuthURL: "https://slack.com/oauth/authorize", TokenURL: "https://slack.com/api/oauth.access", }, }, } }) webserver.SetAuthenticatedUserFunc(p.AuthenticatedUser) }
func (webapp *Webapp) InitWebServer(bot *slick.Bot, enabledPlugins []string) { var conf struct { Webapp WebappConfig } bot.LoadConfig(&conf) webapp.bot = bot webapp.enabledPlugins = enabledPlugins webapp.config = &conf.Webapp webapp.store = sessions.NewCookieStore([]byte(conf.Webapp.SessionAuthKey), []byte(conf.Webapp.SessionEncryptKey)) webapp.privateRouter = mux.NewRouter() webapp.publicRouter = mux.NewRouter() webapp.privateRouter.HandleFunc("/", webapp.handleRoot) web = webapp }
func (healthy *Healthy) InitPlugin(bot *slick.Bot) { var conf struct { HealthCheck struct { Urls []string } } bot.LoadConfig(&conf) healthy.urls = conf.HealthCheck.Urls bot.ListenFor(&slick.Conversation{ MentionsMeOnly: true, ContainsAny: []string{"health", "healthy?", "health_check"}, HandlerFunc: healthy.ChatHandler, }) }
func (wicked *Wicked) InitPlugin(bot *slick.Bot) { wicked.bot = bot wicked.meetings = make(map[string]*Meeting) var conf struct { Wicked struct { Confrooms []string `json:"conf_rooms"` } } bot.LoadConfig(&conf) for _, confroom := range conf.Wicked.Confrooms { wicked.confRooms = append(wicked.confRooms, confroom) } bot.ListenFor(&slick.Conversation{ HandlerFunc: wicked.ChatHandler, }) }
func (p *Plugin) InitPlugin(bot *slick.Bot) { p.bot = bot err := bot.DB.Update(func(tx *bolt.Tx) error { _, err := tx.CreateBucketIfNotExists(bucketName) return err }) if err != nil { log.Fatalln("Couldn't create the `recognition` bucket") } var conf struct { Recognition Config } bot.LoadConfig(&conf) p.config = conf.Recognition p.store = &boltStore{db: bot.DB} p.listenRecognize() p.listenUpvotes() }
func (bugger *Bugger) InitPlugin(bot *slick.Bot) { /* * Get an array of issues matching Filters */ bugger.bot = bot var conf struct { Github github.Conf } bot.LoadConfig(&conf) bugger.ghclient = github.Client{ Conf: conf.Github, } bot.Listen(&slick.Listener{ MessageHandlerFunc: bugger.ChatHandler, }) }
func (tabula *TabulaRasa) InitWebPlugin(bot *slick.Bot, privRouter *mux.Router, pubRouter *mux.Router) { var asanaConf struct { Asana struct { APIKey string `json:"api_key"` Workspace string `json:"workspace"` } } bot.LoadConfig(&asanaConf) asanaClient := asana.NewClient(asanaConf.Asana.APIKey, asanaConf.Asana.Workspace) tabula.bot = bot tabula.asanaClient = asanaClient privRouter.HandleFunc("/plugins/tabularasa", func(w http.ResponseWriter, r *http.Request) { tabula.TabulaRasta() }) }
func (dep *Deployer) InitPlugin(bot *slick.Bot) { var conf struct { Deployer DeployerConfig } bot.LoadConfig(&conf) dep.bot = bot dep.pubsub = pubsub.New(100) dep.config = &conf.Deployer dep.env = os.Getenv("PLOTLY_ENV") if dep.env == "" { dep.env = "debug" } dep.loadInternalAPI() go dep.pubsubForwardReply() bot.ListenFor(&slick.Conversation{ HandlerFunc: dep.ChatHandler, MentionsMeOnly: true, }) }
func (hooker *Hooker) InitWebPlugin(bot *slick.Bot, privRouter *mux.Router, pubRouter *mux.Router) { hooker.bot = bot var conf struct { Hooker HookerConfig } bot.LoadConfig(&conf) hooker.config = conf.Hooker pubRouter.HandleFunc("/public/updated_slick_repo", hooker.updatedSlickRepo) stripeUrl := fmt.Sprintf("/public/stripehook/%s", hooker.config.StripeSecret) pubRouter.HandleFunc(stripeUrl, hooker.onPayingUser) pubRouter.HandleFunc("/public/monit", hooker.onMonit) privRouter.HandleFunc("/plugins/hooker.json", func(w http.ResponseWriter, r *http.Request) { if r.Method != "GET" { http.Error(w, "Method not accepted", 405) return } }) }