forked from sunglocto/lambda
Add affiliation medals
This commit is contained in:
82
main.go
82
main.go
@@ -10,6 +10,7 @@ import (
|
||||
"github.com/diamondburned/gotk4/pkg/gio/v2"
|
||||
"github.com/diamondburned/gotk4/pkg/glib/v2"
|
||||
"github.com/diamondburned/gotk4/pkg/gtk/v4"
|
||||
"github.com/diamondburned/gotk4/pkg/gdkpixbuf/v2"
|
||||
_ "github.com/kr/pretty"
|
||||
"path/filepath"
|
||||
|
||||
@@ -23,6 +24,7 @@ import (
|
||||
"encoding/xml"
|
||||
"math/rand/v2"
|
||||
"runtime"
|
||||
"encoding/base64"
|
||||
)
|
||||
|
||||
var loadedConfig lambdaConfig
|
||||
@@ -55,6 +57,33 @@ var mucmembers sync.Map
|
||||
// stores devices of users
|
||||
var userdevices sync.Map
|
||||
|
||||
//go:embed debug.png
|
||||
var defaultAvatarBytes []byte
|
||||
var defaultAvatarB64 string = base64.StdEncoding.EncodeToString(defaultAvatarBytes)
|
||||
|
||||
//go:embed assets/owner.png
|
||||
var ownerMedalBytes []byte
|
||||
var ownerMedalB64 string = base64.StdEncoding.EncodeToString(ownerMedalBytes)
|
||||
|
||||
//go:embed assets/admin.png
|
||||
var adminMedalBytes []byte
|
||||
var adminMedalB64 string = base64.StdEncoding.EncodeToString(adminMedalBytes)
|
||||
|
||||
//go:embed assets/member.png
|
||||
var memberMedalBytes []byte
|
||||
var memberMedalB64 string = base64.StdEncoding.EncodeToString(memberMedalBytes)
|
||||
|
||||
//go:embed assets/noaffiliation.png
|
||||
var noneMedalBytes []byte
|
||||
var noneMedalB64 string = base64.StdEncoding.EncodeToString(noneMedalBytes)
|
||||
|
||||
//go:embed assets/outcast.png
|
||||
var outcastMedalBytes []byte
|
||||
var outcastMedalB64 string = base64.StdEncoding.EncodeToString(outcastMedalBytes)
|
||||
|
||||
|
||||
var clientAssets map[string]gdk.Paintabler = make(map[string]gdk.Paintabler)
|
||||
|
||||
func init() {
|
||||
go func() {
|
||||
for fn := range uiQueue {
|
||||
@@ -65,6 +94,54 @@ func init() {
|
||||
time.Sleep(10 * time.Millisecond) // Small delay between updates
|
||||
}
|
||||
}()
|
||||
|
||||
loader := gdkpixbuf.NewPixbufLoader()
|
||||
|
||||
defaultAvatarData, _ := base64.StdEncoding.DecodeString(defaultAvatarB64)
|
||||
loader.Write(defaultAvatarData)
|
||||
loader.Close()
|
||||
clientAssets["DefaultAvatar"] = gdk.NewTextureForPixbuf(loader.Pixbuf())
|
||||
|
||||
|
||||
loader = gdkpixbuf.NewPixbufLoader()
|
||||
|
||||
ownerMedalData, _ := base64.StdEncoding.DecodeString(ownerMedalB64)
|
||||
loader.Write(ownerMedalData)
|
||||
loader.Close()
|
||||
|
||||
clientAssets["owner"] = gdk.NewTextureForPixbuf(loader.Pixbuf())
|
||||
|
||||
loader = gdkpixbuf.NewPixbufLoader()
|
||||
|
||||
adminMedalData, _ := base64.StdEncoding.DecodeString(adminMedalB64)
|
||||
loader.Write(adminMedalData)
|
||||
loader.Close()
|
||||
|
||||
clientAssets["admin"] = gdk.NewTextureForPixbuf(loader.Pixbuf())
|
||||
|
||||
loader = gdkpixbuf.NewPixbufLoader()
|
||||
|
||||
memberMedalData, _ := base64.StdEncoding.DecodeString(memberMedalB64)
|
||||
loader.Write(memberMedalData)
|
||||
loader.Close()
|
||||
|
||||
clientAssets["member"] = gdk.NewTextureForPixbuf(loader.Pixbuf())
|
||||
|
||||
loader = gdkpixbuf.NewPixbufLoader()
|
||||
|
||||
noneMedalData, _ := base64.StdEncoding.DecodeString(noneMedalB64)
|
||||
loader.Write(noneMedalData)
|
||||
loader.Close()
|
||||
|
||||
clientAssets["none"] = gdk.NewTextureForPixbuf(loader.Pixbuf())
|
||||
|
||||
loader = gdkpixbuf.NewPixbufLoader()
|
||||
|
||||
outcastMedalData, _ := base64.StdEncoding.DecodeString(outcastMedalB64)
|
||||
loader.Write(outcastMedalData)
|
||||
loader.Close()
|
||||
|
||||
clientAssets["outcast"] = gdk.NewTextureForPixbuf(loader.Pixbuf())
|
||||
}
|
||||
|
||||
func main() {
|
||||
@@ -85,7 +162,7 @@ func main() {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
// Put 4 random characters in front of lambda
|
||||
// Put 4 random characters at the end
|
||||
chars := "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZλ"
|
||||
str := ""
|
||||
for range 4 {
|
||||
@@ -334,7 +411,7 @@ func activate(app *gtk.Application) {
|
||||
the_menu := gio.NewMenu()
|
||||
|
||||
fileMenu := gio.NewMenu()
|
||||
fileMenu.Append("Join room", "app.join")
|
||||
fileMenu.Append("Join MUC", "app.join")
|
||||
fileMenu.Append("Start DM", "app.dm")
|
||||
|
||||
joinAction := gio.NewSimpleAction("join", nil)
|
||||
@@ -369,6 +446,7 @@ func activate(app *gtk.Application) {
|
||||
box.Append(btn)
|
||||
|
||||
win := gtk.NewWindow()
|
||||
win.SetTitle("Join MUC")
|
||||
win.SetDefaultSize(200, 200)
|
||||
win.SetChild(box)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user