rotund
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"gosrc.io/xmpp"
|
||||
"gosrc.io/xmpp/stanza"
|
||||
@@ -140,3 +141,62 @@ func sendVoiceRequest(c xmpp.Sender, sendTo string) error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func addPEPBookmark(c xmpp.Sender, jid string, name string, nick string, autojoin bool, password string) (stanza.IQ, error) {
|
||||
item := new(stanza.Item)
|
||||
item.Id = jid
|
||||
|
||||
bookmark := Bookmark{}
|
||||
bookmark.Name = name
|
||||
bookmark.Autojoin = autojoin
|
||||
bookmark.Nick = nick
|
||||
bookmark.Password = password
|
||||
node := bookmark.ToNode()
|
||||
|
||||
options_form := new(stanza.Form)
|
||||
options_form.Type = "submit"
|
||||
|
||||
persist := new(stanza.Field)
|
||||
persist.Type = "boolean"
|
||||
persist.Var = "pubsub#persist_items"
|
||||
persist.ValuesList = []string{"true"}
|
||||
options_form.Fields = append(options_form.Fields, persist)
|
||||
|
||||
max_items := new(stanza.Field)
|
||||
max_items.Type = "text-single"
|
||||
max_items.Var = "pubsub#max_items"
|
||||
max_items.ValuesList = []string{"max"}
|
||||
options_form.Fields = append(options_form.Fields, max_items)
|
||||
|
||||
send_last_published_item := new(stanza.Field)
|
||||
send_last_published_item.Type = "text-single"
|
||||
send_last_published_item.Var = "pubsub#send_last_published_item"
|
||||
send_last_published_item.ValuesList = []string{"never"}
|
||||
options_form.Fields = append(options_form.Fields, send_last_published_item)
|
||||
|
||||
access_model := new(stanza.Field)
|
||||
access_model.Type = "text-single"
|
||||
access_model.Var = "pubsub#access_model"
|
||||
access_model.ValuesList = []string{"whitelist"}
|
||||
options_form.Fields = append(options_form.Fields, access_model)
|
||||
|
||||
options := new(stanza.PublishOptions)
|
||||
options.Form = options_form
|
||||
|
||||
item.Any = node
|
||||
items := []stanza.Item{*item}
|
||||
pubsub, err := stanza.NewPublishItemOptsRq("", "urn:xmpp:bookmarks:1", items, options)
|
||||
if err != nil {
|
||||
return stanza.IQ{}, err
|
||||
}
|
||||
ctx := context.TODO()
|
||||
|
||||
channel, err := c.SendIQ(ctx, pubsub)
|
||||
if err != nil {
|
||||
return stanza.IQ{}, err
|
||||
}
|
||||
|
||||
result := <-channel
|
||||
|
||||
return result, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user