summaryrefslogtreecommitdiffstats
path: root/bot/bonjour.go
blob: cb87a34911abbffe67f3f7510a553d3d1f594d26 (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
40
41
42
43
44
45
46
47
48
49
// Copyright 2015 Robert S. Gerus. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.

package bot

import (
	"fmt"
	"math/rand"
	"strings"
	"time"

	cfg "github.com/arachnist/gorepost/config"
	"github.com/arachnist/gorepost/irc"
)

func bonjour(output chan irc.Message, msg irc.Message) {
	var rmsg string

	if strings.Split(msg.Trailing, " ")[0] != ":bonjour" {
		return
	}

	img, err := httpGetXpath("http://www.bonjourmadame.fr/page/"+fmt.Sprintf("%d", rand.Intn(2370)+1), "//div[@class='photo post']//img/@src")
	if err != nil {
		rmsg = fmt.Sprint("error:", err)
	} else {
		rmsg = "bonjour (nsfw): " + img
	}

	if msg.Params[0] == cfg.LookupString(msg.Context, "Nick") {
		output <- irc.Message{
			Command:  "PRIVMSG",
			Params:   []string{msg.Prefix.Name},
			Trailing: rmsg,
		}
	} else {
		output <- irc.Message{
			Command:  "PRIVMSG",
			Params:   msg.Params,
			Trailing: rmsg,
		}
	}
}

func init() {
	rand.Seed(time.Now().UnixNano())
	addCallback("PRIVMSG", "bonjour", bonjour)
}