summaryrefslogtreecommitdiff
path: root/main.go
blob: 242e364836850be18d54f8be55efef6e85f7e146 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package main

import (
	"github.com/gorilla/mux"
	"github.com/thoj/go-ircevent"
	"log"
	"net/http"
	"os"
)

var con = irc.IRC(os.Getenv("WEB2IRC_IRC_NICK"), os.Getenv("WEB2IRC_IRC_REAL_NAME"))

func main() {
	checkConfig()

	err := con.Connect(os.Getenv("WEB2IRC_IRC_SERVER") + ":" + os.Getenv("WEB2IRC_IRC_SERVER_PORT"))
	if err != nil {
		log.Fatal(err)
	}
	con.AddCallback("001", func(e *irc.Event) {
		if fjoin := os.Getenv("WEB2IRC_IRC_JOIN"); fjoin != "" {
			log.Println("Joining channel #" + fjoin)
			con.Join("#" + fjoin)
		}
	})

	r := mux.NewRouter()
	r.HandleFunc("/", IndexHandler)
	r.HandleFunc("/webhook", WebhookHandler).Methods("POST")
	r.HandleFunc("/webhook", WebhookFailureHandler)

	http.Handle("/", r)

	ip := os.Getenv("WEB2IRC_HTTP_IP")
	port := os.Getenv("WEB2IRC_HTTP_PORT")

	log.Println("Listening on " + ip + ":" + port)
	http.ListenAndServe(ip+":"+port, nil)
}