diff --git a/main.go b/main.go
index 4d7476c..b3093ba 100644
--- a/main.go
+++ b/main.go
@@ -103,248 +103,3 @@ func main() {
time.Sleep(config.RefreshTime * time.Second)
}
}
-<<<<<<< HEAD
-
-// Send a ping every 30 seconds after last successful ping to check if the MUC is still available.
-func pingMUC(client *xmpp.Client, botJid string, muc string, mucNick string) {
- for {
- time.Sleep(30 * time.Second)
-
- // Send ping to own MUC participant to check we are still joined.
- id, err = client.RawInformation(botJid, muc+"/"+mucNick, sid.Id(),
- "get", "")
- if err != nil {
- log.Fatal("Error: Can't send MUC self ping: ", err)
- }
-
- pingSent = time.Now()
- pingReceived = false
-
- // Check for result IQ as long as there was no reply yet.
- for (time.Since(pingSent).Seconds() < 10.0) && !pingReceived {
- time.Sleep(1 * time.Second)
- if pingReceived {
- break
- }
-
- }
- // Quit if no ping reply was received.
- if !pingReceived {
- log.Fatal("MUC not available.")
- }
- }
-}
-
-// Send a ping to the server every 30 seconds to check if the connection is still alive.
-func pingServer(client *xmpp.Client, server string, botJid string) {
- for {
- time.Sleep(30 * time.Second)
-
- // Send ping to server to check if connection still exists.
- err := client.PingC2S(botJid, strings.Split(server, ":")[0])
- if err != nil {
- log.Fatal("Error: Client2Server ping failed:", err)
- }
- }
-}
-
-func processStanzas(client *xmpp.Client, muc string, mucNick string, feeds []string, quiet bool, contact string) {
- for { // Receive stanzas. ToDo: Receive stanzas continiously without 30s delay.
- stanza, err := client.Recv()
- if err != nil {
- log.Fatal("Error: Failed receiving Stanzas:", err)
- }
-
- // Check stanzas, maybe we want to reply.
- switch v := stanza.(type) {
- // Reply to requests for source and feeds.
- case xmpp.Chat:
- var command string
-
- // Check for room mention of the bots nick if the the message type is groupchat.
- if v.Type == "groupchat" {
- // Leave if option quiet is set.
- if quiet {
- break
- }
- // Get first word of the message and transform it to lower case.
- mention := strings.ToLower(strings.Split(v.Text, " ")[0])
-
- // If it is not the bots nick remove one trailing character as
- // a lot of clients append `:` or `,` to mentions.
- if mention != strings.ToLower(mucNick) {
- mentionLength := len(mention)
- // Leave if mentionLength is <= 0
- if mentionLength <= 0 {
- break
- }
- mention = mention[:mentionLength-1]
- // Leave if the message is not addressed to the bot.
- if mention != strings.ToLower(mucNick) {
- break
- }
- }
- // As the first word is the mention of the bots nickname, the command is
- // the second word in a groupchat message.
- command = strings.ToLower(strings.Split(v.Text, " ")[1])
- // If the message type is chat (e.g. private message), the command is the
- // first word.
- } else if v.Type == "chat" {
- command = strings.ToLower(strings.Split(v.Text, " ")[0])
- } else {
- break
- }
-
- // Check for the command.
- switch command {
-
- // Reply with a short summary of available commands for `help`.
- case "help":
-
- reply := "The following commands are available:\n" +
- "\"contact\": Show contact for this bot.\n" +
- "\"feeds\": List feeds I'm following.\n" +
- "\"ping\": Sends back a pong.\n" +
- "\"source\": Show source code URL."
-
- if v.Type == "groupchat" {
- _, err = client.Send(xmpp.Chat{Remote: muc,
- Type: "groupchat", Text: strings.Split(v.Remote, "/")[1] + ": " + reply})
- if err != nil {
- log.Fatal("Error: Failed sending message to MUC:", err)
- }
- } else if v.Type == "chat" {
- _, err = client.Send(xmpp.Chat{Remote: v.Remote,
- Type: "chat", Text: reply})
- if err != nil {
- log.Fatal("Error: Failed sending message to ", v.Remote, ": ", err)
- }
- }
-
- // Reply with repo address for `source`.
- case "source":
-
- reply := "My source can be found at " +
- "https://salsa.debian.org/mdosch-guest/feed-to-muc"
-
- if v.Type == "groupchat" {
- _, err = client.Send(xmpp.Chat{Remote: muc,
- Type: "groupchat", Text: strings.Split(v.Remote, "/")[1] + ": " + reply})
- if err != nil {
- log.Fatal("Error: Failed sending message to MUC:", err)
- }
- } else if v.Type == "chat" {
- _, err = client.Send(xmpp.Chat{Remote: v.Remote,
- Type: "chat", Text: reply})
- if err != nil {
- log.Fatal("Error: Failed sending message to ", v.Remote, ": ", err)
- }
- }
- // Reply with the list of monitored feeds for `feeds`.
- case "feeds":
- var feedList string
- for _, feed := range feeds {
- // Add next feed element and a newline.
- feedList = feedList + feed + "\n"
- }
-
- reply := "Feeds I'm following:\n" + feedList
-
- if v.Type == "groupchat" {
- _, err = client.Send(xmpp.Chat{Remote: muc,
- Type: "groupchat", Text: strings.Split(v.Remote, "/")[1] + ": " + reply})
- if err != nil {
- log.Fatal("Error: Failed sending message to MUC:", err)
- }
- } else if v.Type == "chat" {
- _, err = client.Send(xmpp.Chat{Remote: v.Remote,
- Type: "chat", Text: reply})
- if err != nil {
- log.Fatal("Error: Failed sending message to ", v.Remote, ": ", err)
- }
- }
-
- case "ping":
-
- reply := "pong"
-
- if v.Type == "groupchat" {
- _, err = client.Send(xmpp.Chat{Remote: muc,
- Type: "groupchat", Text: strings.Split(v.Remote, "/")[1] + ": " + reply})
- if err != nil {
- log.Fatal("Error: Failed sending message to MUC:", err)
- }
- } else if v.Type == "chat" {
- _, err = client.Send(xmpp.Chat{Remote: v.Remote,
- Type: "chat", Text: reply})
- if err != nil {
- log.Fatal("Error: Failed sending message to ", v.Remote, ": ", err)
- }
- }
-
- case "contact":
-
- if contact == "" {
- contact = "Sorry, no contact information provided."
- }
-
- if v.Type == "groupchat" {
- _, err = client.Send(xmpp.Chat{Remote: muc,
- Type: "groupchat", Text: strings.Split(v.Remote, "/")[1] + ": " + contact})
- if err != nil {
- log.Fatal("Error: Failed sending message to MUC:", err)
- }
- } else if v.Type == "chat" {
- _, err = client.Send(xmpp.Chat{Remote: v.Remote,
- Type: "chat", Text: contact})
- if err != nil {
- log.Fatal("Error: Failed sending message to ", v.Remote, ": ", err)
- }
- }
- }
-
- // Reply to pings and disco queries.
- case xmpp.IQ:
- if (v.Type == "error") && (v.ID == id) {
- log.Fatal("MUC not available.")
- }
-
- if (v.Type == "result") && (v.ID == id) {
- pingReceived = true
- }
-
- if v.Type == "get" {
- // Reply to disco#info requests according to https://xmpp.org/extensions/xep-0030.html.
- if strings.Contains(string(v.Query),
- "") {
- _, err := client.RawInformation(client.JID(), v.From, v.ID,
- "result", ""+
- ""+
- "")
- if err != nil {
- log.Fatal("Error: Failed to reply to disco#info:", err)
- }
- } else if strings.Contains(string(v.Query), "") {
- // Reply to pings.
- _, err := client.RawInformation(client.JID(), v.From, v.ID, "result", "")
- if err != nil {
- log.Fatal("Error: Failed to reply to ping:", err)
- }
- } else {
- // Send error replies for all other IQs.
- _, err := client.RawInformation(client.JID(), v.From, v.ID, "error",
- "")
- if err != nil {
- log.Fatal("Error: Failed to send error IQ:", err)
- }
- }
- }
-
- default:
- break
- }
- }
-}
-=======
->>>>>>> 62dfe9d... Distributed the code on several files to get a better overview.