Skip to content

Commit

Permalink
Make sure IRC join/part messages check config first
Browse files Browse the repository at this point in the history
  • Loading branch information
pomo-mondreganto committed Apr 3, 2020
1 parent ae80e92 commit 0cb2f6a
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 16 deletions.
2 changes: 1 addition & 1 deletion cmd/teleirc.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ func main() {
tgClient := tg.NewClient(settings.Telegram, tgapi, logger)
tgChan := make(chan error)

ircClient := irc.NewClient(settings.IRC, logger)
ircClient := irc.NewClient(&settings.IRC, &settings.Telegram, logger)
ircChan := make(chan error)
go ircClient.StartBot(ircChan, tgClient.SendMessage)
go tgClient.StartBot(tgChan, ircClient.SendMessage)
Expand Down
12 changes: 9 additions & 3 deletions internal/handlers/irc/handlers.go
Original file line number Diff line number Diff line change
Expand Up @@ -68,21 +68,27 @@ func messageHandler(c Client) func(*girc.Client, girc.Event) {
func joinHandler(c Client) func(*girc.Client, girc.Event) {
return func(gc *girc.Client, e girc.Event) {
c.logger.LogDebug("joinHandler triggered")
c.sendToTg(fmt.Sprintf(joinFmt, e.Source.Name))
if c.TelegramSettings != nil && c.TelegramSettings.ShowJoinMessage {
c.sendToTg(fmt.Sprintf(joinFmt, e.Source.Name))
}
}
}

func partHandler(c Client) func(*girc.Client, girc.Event) {
return func(gc *girc.Client, e girc.Event) {
c.logger.LogDebug("partHandler triggered")
c.sendToTg(fmt.Sprintf(partFmt, e.Source.Name))
if c.TelegramSettings != nil && c.TelegramSettings.ShowLeaveMessage {
c.sendToTg(fmt.Sprintf(partFmt, e.Source.Name))
}
}
}

func quitHandler(c Client) func(*girc.Client, girc.Event) {
return func(gc *girc.Client, e girc.Event) {
c.logger.LogDebug("quitHandler triggered")
c.sendToTg(fmt.Sprintf(quitFmt, e.Source.Name, e.Params[0]))
if c.TelegramSettings != nil && c.TelegramSettings.ShowLeaveMessage {
c.sendToTg(fmt.Sprintf(quitFmt, e.Source.Name, e.Params[0]))
}
}
}

Expand Down
11 changes: 6 additions & 5 deletions internal/handlers/irc/irc.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,16 @@ and the IRCSettings that were passed into NewClient
*/
type Client struct {
*girc.Client
Settings internal.IRCSettings
logger internal.DebugLogger
sendToTg func(string)
Settings *internal.IRCSettings
TelegramSettings *internal.TelegramSettings
logger internal.DebugLogger
sendToTg func(string)
}

/*
NewClient returns a new IRCClient based on the provided settings
*/
func NewClient(settings internal.IRCSettings, logger internal.DebugLogger) Client {
func NewClient(settings *internal.IRCSettings, telegramSettings *internal.TelegramSettings, logger internal.DebugLogger) Client {
logger.LogInfo("Creating new IRC bot client...")
client := girc.New(girc.Config{
Server: settings.Server,
Expand All @@ -36,7 +37,7 @@ func NewClient(settings internal.IRCSettings, logger internal.DebugLogger) Clien
Pass: settings.NickServPassword,
}
}
return Client{client, settings, logger, nil}
return Client{client, settings, telegramSettings, logger, nil}
}

/*
Expand Down
13 changes: 6 additions & 7 deletions internal/handlers/irc/irc_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@ import (
)

func TestNewClientBasic(t *testing.T) {
ircSettings := internal.IRCSettings{
ircSettings := &internal.IRCSettings{
Server: "test_server",
Port: 1234,
BotName: "test_name",
}
logger := internal.Debug{
DebugLevel: false,
DebugLevel: false,
}
client := NewClient(ircSettings, logger)
client := NewClient(ircSettings, nil, logger)

expectedPing, _ := time.ParseDuration("20s")
expectedConfig := girc.Config{
Expand All @@ -33,16 +33,16 @@ func TestNewClientBasic(t *testing.T) {
}

func TestNewClientFull(t *testing.T) {
ircSettings := internal.IRCSettings{
ircSettings := &internal.IRCSettings{
Server: "test_server",
Port: 1234,
BotName: "test_name",
NickServPassword: "test_pass",
}
logger := internal.Debug{
DebugLevel: false,
DebugLevel: false,
}
client := NewClient(ircSettings, logger)
client := NewClient(ircSettings, nil, logger)
expectedPing, _ := time.ParseDuration("20s")
expectedConfig := girc.Config{
Server: "test_server",
Expand All @@ -57,5 +57,4 @@ func TestNewClientFull(t *testing.T) {
}
assert.Equal(t, client.Settings, ircSettings, "Client settings should be properly set")
assert.Equal(t, client.Config, expectedConfig, "girc config should be properly set")

}

0 comments on commit 0cb2f6a

Please sign in to comment.