Add experimental functionality to join bookmarks
This commit is contained in:
116
main.go
116
main.go
@@ -29,7 +29,6 @@ import (
|
|||||||
_ "mellium.im/xmpp/disco"
|
_ "mellium.im/xmpp/disco"
|
||||||
"mellium.im/xmpp/jid"
|
"mellium.im/xmpp/jid"
|
||||||
"mellium.im/xmpp/muc"
|
"mellium.im/xmpp/muc"
|
||||||
"mellium.im/xmpp/stanza"
|
|
||||||
_ "mellium.im/xmpp/stanza"
|
_ "mellium.im/xmpp/stanza"
|
||||||
oasisSdk "pain.agency/oasis-sdk"
|
oasisSdk "pain.agency/oasis-sdk"
|
||||||
// gui - optional
|
// gui - optional
|
||||||
@@ -679,12 +678,15 @@ func main() {
|
|||||||
|
|
||||||
url, uerr := url.Parse(strings.Split(text, " ")[0])
|
url, uerr := url.Parse(strings.Split(text, " ")[0])
|
||||||
if uerr == nil && strings.HasPrefix(strings.Split(text, " ")[0], "https://") {
|
if uerr == nil && strings.HasPrefix(strings.Split(text, " ")[0], "https://") {
|
||||||
//err = client.SendImage(jid.MustParse(activeMucJid).Bare(), text, url.String(), &text)
|
dialog.ShowConfirm("Confirm", "Do you want to embed this link into your message?", func(b bool) {
|
||||||
err = client.SendSingleFileMessage(jid.MustParse(activeMucJid).Bare(), url.String(), nil)
|
if b {
|
||||||
if err != nil {
|
err = client.SendSingleFileMessage(jid.MustParse(activeMucJid).Bare(), url.String(), nil)
|
||||||
dialog.ShowError(err, w)
|
if err != nil {
|
||||||
}
|
dialog.ShowError(err, w)
|
||||||
return
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}, w)
|
||||||
}
|
}
|
||||||
err = client.SendText(jid.MustParse(activeMucJid).Bare(), text)
|
err = client.SendText(jid.MustParse(activeMucJid).Bare(), text)
|
||||||
|
|
||||||
@@ -950,65 +952,66 @@ func main() {
|
|||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
servDisc := fyne.NewMenuItem("Disco features", func() {
|
/*
|
||||||
//var search jid.JID
|
servDisc := fyne.NewMenuItem("Disco features", func() {
|
||||||
dialog.ShowEntryDialog("Disco features", "JID: ", func(s string) { // TODO: replace with undeprecated widgetd
|
//var search jid.JID
|
||||||
d := dialog.NewCustom("Please wait", "Close", widget.NewLabel("..."), w)
|
dialog.ShowEntryDialog("Disco features", "JID: ", func(s string) { // TODO: replace with undeprecated widgetd
|
||||||
d.Show()
|
d := dialog.NewCustom("Please wait", "Close", widget.NewLabel("..."), w)
|
||||||
go func() {
|
d.Show()
|
||||||
//search, err = jid.Parse(s)
|
go func() {
|
||||||
//if err != nil {
|
//search, err = jid.Parse(s)
|
||||||
// d.Hide()
|
//if err != nil {
|
||||||
// dialog.ShowError(err, w)
|
// d.Hide()
|
||||||
// return
|
// dialog.ShowError(err, w)
|
||||||
//}
|
// return
|
||||||
txt := `<iq from='ringen@muc.isekai.rocks/sunglocto'
|
//}
|
||||||
to='ringen@muc.iskai.rocks/snit'
|
txt := `<iq from='ringen@muc.isekai.rocks/sunglocto'
|
||||||
type='get'
|
to='ringen@muc.iskai.rocks/snit'
|
||||||
id='vc2'>
|
type='get'
|
||||||
<vCard xmlns='vcard-temp'/>
|
id='vc2'>
|
||||||
</iq>`
|
<vCard xmlns='vcard-temp'/>
|
||||||
var stan stanza.IQ
|
</iq>`
|
||||||
xml.Unmarshal([]byte(txt), &stan)
|
var stan stanza.IQ
|
||||||
if err != nil {
|
xml.Unmarshal([]byte(txt), &stan)
|
||||||
d.Hide()
|
|
||||||
dialog.ShowError(err, w)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
r, err := client.Session.EncodeIQ(client.Ctx, stan)
|
|
||||||
if err != nil {
|
|
||||||
d.Hide()
|
|
||||||
dialog.ShowError(err, w)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
ra, _ := r.Token()
|
|
||||||
t, _ := xml.MarshalIndent(ra, "", "\t")
|
|
||||||
fmt.Println(string(t))
|
|
||||||
d.Hide()
|
|
||||||
/*
|
|
||||||
|
|
||||||
myBox := container.NewGridWithColumns(1, widget.NewLabel("Items"))
|
|
||||||
info, err := disco.GetInfo(client.Ctx, "", search, client.Session)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
d.Hide()
|
d.Hide()
|
||||||
dialog.ShowError(err, w)
|
dialog.ShowError(err, w)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
m := info.Identity
|
r, err := client.Session.EncodeIQ(client.Ctx, stan)
|
||||||
bytes, err := xml.MarshalIndent(m, "", "\t")
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
d.Hide()
|
d.Hide()
|
||||||
dialog.ShowError(err, w)
|
dialog.ShowError(err, w)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
fyne.Do(func() {d.Hide()})
|
ra, _ := r.Token()
|
||||||
myBox.Objects = append(myBox.Objects, widget.NewLabel(string(bytes)))
|
t, _ := xml.MarshalIndent(ra, "", "\t")
|
||||||
dialog.ShowCustom("Service discovery", "cancel", myBox, w)
|
fmt.Println(string(t))
|
||||||
*/
|
d.Hide()
|
||||||
}()
|
/*
|
||||||
|
|
||||||
}, w)
|
myBox := container.NewGridWithColumns(1, widget.NewLabel("Items"))
|
||||||
})
|
info, err := disco.GetInfo(client.Ctx, "", search, client.Session)
|
||||||
|
if err != nil {
|
||||||
|
d.Hide()
|
||||||
|
dialog.ShowError(err, w)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
m := info.Identity
|
||||||
|
bytes, err := xml.MarshalIndent(m, "", "\t")
|
||||||
|
if err != nil {
|
||||||
|
d.Hide()
|
||||||
|
dialog.ShowError(err, w)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
fyne.Do(func() {d.Hide()})
|
||||||
|
myBox.Objects = append(myBox.Objects, widget.NewLabel(string(bytes)))
|
||||||
|
dialog.ShowCustom("Service discovery", "cancel", myBox, w)
|
||||||
|
}()
|
||||||
|
|
||||||
|
}, w)
|
||||||
|
})
|
||||||
|
*/
|
||||||
|
|
||||||
savedata := fyne.NewMenuItem("DEBUG: Save tab data to disk", func() {
|
savedata := fyne.NewMenuItem("DEBUG: Save tab data to disk", func() {
|
||||||
d := []ChatTab{}
|
d := []ChatTab{}
|
||||||
@@ -1024,6 +1027,7 @@ func main() {
|
|||||||
os.WriteFile("text.xml", b, os.ModeAppend)
|
os.WriteFile("text.xml", b, os.ModeAppend)
|
||||||
})
|
})
|
||||||
menu_help := fyne.NewMenu("π", mit, reconnect, savedata, fyne.NewMenuItem("Join rooms in bookmarks", func() {
|
menu_help := fyne.NewMenu("π", mit, reconnect, savedata, fyne.NewMenuItem("Join rooms in bookmarks", func() {
|
||||||
|
// FIXME: Race condition
|
||||||
client.FetchBookmarks()
|
client.FetchBookmarks()
|
||||||
rooms := client.BookmarkCache()
|
rooms := client.BookmarkCache()
|
||||||
for _, v := range rooms {
|
for _, v := range rooms {
|
||||||
@@ -1046,7 +1050,7 @@ func main() {
|
|||||||
}
|
}
|
||||||
}))
|
}))
|
||||||
|
|
||||||
menu_changeroom := fyne.NewMenu("Α", mic, servDisc, beginADM, joinARoom, leaveRoom)
|
menu_changeroom := fyne.NewMenu("Α", mic, beginADM, joinARoom, leaveRoom)
|
||||||
menu_configureview := fyne.NewMenu("Β", mia, mis, jtt, jtb)
|
menu_configureview := fyne.NewMenu("Β", mia, mis, jtt, jtb)
|
||||||
hafjag := fyne.NewMenuItem("Hafjag", func() {
|
hafjag := fyne.NewMenuItem("Hafjag", func() {
|
||||||
entry.Text = "Hafjag"
|
entry.Text = "Hafjag"
|
||||||
|
Reference in New Issue
Block a user