Browse Source

Split main.go

tags/v0.4.0
Russ Garrett 5 years ago
parent
commit
855ed2d3fe
No account linked to committer's email address
2 changed files with 75 additions and 68 deletions
  1. 75
    0
      irc.go
  2. 0
    68
      main.go

+ 75
- 0
irc.go View File

@@ -0,0 +1,75 @@
1
+package main
2
+
3
+import (
4
+	"crypto/tls"
5
+	"fmt"
6
+	"github.com/irccloud/go-ircevent"
7
+	"github.com/spf13/viper"
8
+	"strings"
9
+)
10
+
11
+func (i *IRCCat) connectIRC() error {
12
+	irccon := irc.IRC(viper.GetString("irc.nick"), viper.GetString("irc.realname"))
13
+	i.irc = irccon
14
+	irccon.RequestCaps = []string{"away-notify", "account-notify", "draft/message-tags-0.2"}
15
+	irccon.UseTLS = viper.GetBool("irc.tls")
16
+	if viper.IsSet("irc.sasl_pass") && viper.GetString("irc.sasl_pass") != "" {
17
+		if viper.IsSet("irc.sasl_login") && viper.GetString("irc.sasl_login") != "" {
18
+			irccon.SASLLogin = viper.GetString("irc.sasl_login")
19
+		} else {
20
+			irccon.SASLLogin = viper.GetString("irc.nick")
21
+		}
22
+		irccon.SASLPassword = viper.GetString("irc.sasl_pass")
23
+		irccon.UseSASL = true
24
+	}
25
+	if viper.GetBool("irc.tls_skip_verify") {
26
+		irccon.TLSConfig = &tls.Config{InsecureSkipVerify: true}
27
+	}
28
+	irccon.Password = viper.GetString("irc.server_pass")
29
+
30
+	err := irccon.Connect(viper.GetString("irc.server"))
31
+	if err != nil {
32
+		return err
33
+	}
34
+
35
+	irccon.AddCallback("001", i.handleWelcome)
36
+	irccon.AddCallback("PRIVMSG", func(event *irc.Event) {
37
+		msg := event.Message()
38
+		if (msg[0] == '?' || msg[0] == '!') && len(msg) > 1 {
39
+			go i.handleCommand(event)
40
+		}
41
+	})
42
+
43
+	irccon.AddCallback("353", i.handleNames)
44
+	irccon.AddCallback("JOIN", i.handleJoin)
45
+	irccon.AddCallback("PART", i.handlePart)
46
+	irccon.AddCallback("QUIT", i.handleQuit)
47
+	irccon.AddCallback("KILL", i.handleQuit)
48
+	irccon.AddCallback("NICK", i.handleNick)
49
+
50
+	return nil
51
+}
52
+
53
+func (i *IRCCat) handleWelcome(e *irc.Event) {
54
+	log.Infof("Negotiated IRCv3 capabilities: %v", i.irc.AcknowledgedCaps)
55
+	if viper.IsSet("irc.identify_pass") && viper.GetString("irc.identify_pass") != "" {
56
+		i.irc.SendRawf("NICKSERV IDENTIFY %s", viper.GetString("irc.identify_pass"))
57
+	}
58
+
59
+	log.Infof("Connected, joining channels...")
60
+	for _, channel := range viper.GetStringSlice("irc.channels") {
61
+		key_var := fmt.Sprintf("irc.keys.%s", channel)
62
+		if strings.ContainsAny(channel, " \t") {
63
+			log.Errorf("Channel name '%s' contains whitespace. Set a channel key by setting the config variable irc.keys.#channel",
64
+				channel)
65
+			continue
66
+		}
67
+
68
+		if viper.IsSet(key_var) {
69
+			i.irc.Join(channel + " " + viper.GetString(key_var))
70
+		} else {
71
+			i.irc.Join(channel)
72
+		}
73
+		i.channels.Add(channel)
74
+	}
75
+}

+ 0
- 68
main.go View File

@@ -1,7 +1,6 @@
1 1
 package main
2 2
 
3 3
 import (
4
-	"crypto/tls"
5 4
 	"fmt"
6 5
 	"github.com/deckarep/golang-set"
7 6
 	"github.com/fsnotify/fsnotify"
@@ -12,7 +11,6 @@ import (
12 11
 	"github.com/spf13/viper"
13 12
 	"os"
14 13
 	"os/signal"
15
-	"strings"
16 14
 	"syscall"
17 15
 )
18 16
 
@@ -83,72 +81,6 @@ func (i *IRCCat) signalHandler() {
83 81
 	i.irc.Quit()
84 82
 }
85 83
 
86
-func (i *IRCCat) connectIRC() error {
87
-	irccon := irc.IRC(viper.GetString("irc.nick"), viper.GetString("irc.realname"))
88
-	i.irc = irccon
89
-	irccon.RequestCaps = []string{"away-notify", "account-notify", "draft/message-tags-0.2"}
90
-	irccon.UseTLS = viper.GetBool("irc.tls")
91
-	if viper.IsSet("irc.sasl_pass") && viper.GetString("irc.sasl_pass") != "" {
92
-		if viper.IsSet("irc.sasl_login") && viper.GetString("irc.sasl_login") != "" {
93
-			irccon.SASLLogin = viper.GetString("irc.sasl_login")
94
-		} else {
95
-			irccon.SASLLogin = viper.GetString("irc.nick")
96
-		}
97
-		irccon.SASLPassword = viper.GetString("irc.sasl_pass")
98
-		irccon.UseSASL = true
99
-	}
100
-	if viper.GetBool("irc.tls_skip_verify") {
101
-		irccon.TLSConfig = &tls.Config{InsecureSkipVerify: true}
102
-	}
103
-	irccon.Password = viper.GetString("irc.server_pass")
104
-
105
-	err := irccon.Connect(viper.GetString("irc.server"))
106
-	if err != nil {
107
-		return err
108
-	}
109
-
110
-	irccon.AddCallback("001", i.handleWelcome)
111
-	irccon.AddCallback("PRIVMSG", func(event *irc.Event) {
112
-		msg := event.Message()
113
-		if (msg[0] == '?' || msg[0] == '!') && len(msg) > 1 {
114
-			go i.handleCommand(event)
115
-		}
116
-	})
117
-
118
-	irccon.AddCallback("353", i.handleNames)
119
-	irccon.AddCallback("JOIN", i.handleJoin)
120
-	irccon.AddCallback("PART", i.handlePart)
121
-	irccon.AddCallback("QUIT", i.handleQuit)
122
-	irccon.AddCallback("KILL", i.handleQuit)
123
-	irccon.AddCallback("NICK", i.handleNick)
124
-
125
-	return nil
126
-}
127
-
128
-func (i *IRCCat) handleWelcome(e *irc.Event) {
129
-	log.Infof("Negotiated IRCv3 capabilities: %v", i.irc.AcknowledgedCaps)
130
-	if viper.IsSet("irc.identify_pass") && viper.GetString("irc.identify_pass") != "" {
131
-		i.irc.SendRawf("NICKSERV IDENTIFY %s", viper.GetString("irc.identify_pass"))
132
-	}
133
-
134
-	log.Infof("Connected, joining channels...")
135
-	for _, channel := range viper.GetStringSlice("irc.channels") {
136
-		key_var := fmt.Sprintf("irc.keys.%s", channel)
137
-		if strings.ContainsAny(channel, " \t") {
138
-			log.Errorf("Channel name '%s' contains whitespace. Set a channel key by setting the config variable irc.keys.#channel",
139
-				channel)
140
-			continue
141
-		}
142
-
143
-		if viper.IsSet(key_var) {
144
-			i.irc.Join(channel + " " + viper.GetString(key_var))
145
-		} else {
146
-			i.irc.Join(channel)
147
-		}
148
-		i.channels.Add(channel)
149
-	}
150
-}
151
-
152 84
 func (i *IRCCat) handleConfigChange(e fsnotify.Event) {
153 85
 	log.Infof("Reloaded config")
154 86
 

Loading…
Cancel
Save