This commit is contained in:
2026-08-16 20:07:53 +01:00
parent eebb6906c6
commit 58ae55e061
16 changed files with 369 additions and 171 deletions
+60
View File
@@ -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
}