35 lines
1.2 KiB
Go
35 lines
1.2 KiB
Go
package files
|
|
|
|
import (
|
|
"os"
|
|
|
|
"forge.redroom.link/yves/meowlib"
|
|
"forge.redroom.link/yves/meowlib/client"
|
|
"forge.redroom.link/yves/meowlib/client/invitation/messages"
|
|
"google.golang.org/protobuf/proto"
|
|
)
|
|
|
|
// Step1Write creates a pending peer and writes the InvitationInitPayload to a file.
|
|
// format: "qr" writes a QR-code PNG; anything else writes a compressed binary .mwiv file.
|
|
func Step1Write(contactName string, myNickname string, invitationMessage string, serverUids []string, format string) error {
|
|
payloadBytes, err := messages.Step1InitiatorCreatesInviteeAndTempKey(contactName, myNickname, invitationMessage, serverUids)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
var payload meowlib.InvitationInitPayload
|
|
if err := proto.Unmarshal(payloadBytes, &payload); err != nil {
|
|
return err
|
|
}
|
|
mynick := myNickname
|
|
if mynick == "" {
|
|
mynick = client.GetConfig().GetIdentity().Nickname
|
|
}
|
|
c := client.GetConfig()
|
|
if format == "qr" {
|
|
filename := c.StoragePath + string(os.PathSeparator) + mynick + "-" + contactName + ".png"
|
|
return payload.WriteQr(filename)
|
|
}
|
|
filename := c.StoragePath + string(os.PathSeparator) + mynick + "-" + contactName + ".mwiv"
|
|
return payload.WriteCompressed(filename)
|
|
}
|