func topic(conn *irc.Conn, nick *irc.Nick, args, target string) { channel, args := parseAccess(conn, nick, target, args, "t") if channel == "" { return } section := conn.Network + " " + channel if args != "" { updateConf(section, "basetopic", args) conn.Topic(channel, args) } else { basetopic, _ := conf.String(section, "basetopic") say(conn, nick.Nick, "Basetopic: %s", basetopic) } }
func setTopic(conn *irc.Conn, channel string) { defer func() { if r := recover(); r != nil { log.Printf("most likely coding error: %v", r) } }() topic := conn.StateTracker().GetChannel(channel).Topic newtopic := insertNextEvent(topic) newtopic = advanceDates(newtopic) if topic == newtopic { return } log.Printf("%s OLD TOPIC: %s", channel, topic) log.Printf("%s NEW TOPIC: %s", channel, newtopic) conn.Topic(channel, newtopic) }
func appendtopic(conn *irc.Conn, nick *irc.Nick, args, target string) { channel, args := parseAccess(conn, nick, target, args, "t") if channel == "" { return } c := conn.GetChannel(channel) if c == nil { say(conn, target, "Error while getting channel information for %s", channel) return } section := conn.Network + " " + channel basetopic, _ := conf.String(section, "basetopic") if basetopic == "" || !strings.HasPrefix(strings.TrimLeft(c.Topic, " "), basetopic) { basetopic = c.Topic say(conn, nick.Nick, "New basetopic: %s", basetopic) updateConf(section, "basetopic", basetopic) } conn.Topic(channel, basetopic+args) }