88 lines
1.7 KiB
Go
88 lines
1.7 KiB
Go
// Copyright (C) 2026 saces@c-base.org
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"mxclientlib/mxclient"
|
|
"unsafe"
|
|
)
|
|
|
|
/*
|
|
#include <stdlib.h>
|
|
*/
|
|
import "C"
|
|
|
|
//export FreeCString
|
|
func FreeCString(s *C.char) {
|
|
C.free(unsafe.Pointer(s))
|
|
}
|
|
|
|
/*
|
|
cli tools
|
|
*/
|
|
//export cli_discoverhs
|
|
func cli_discoverhs(id *C.char) *C.char {
|
|
mxid := C.GoString(id)
|
|
result := mxclient.DiscoverHS(mxid)
|
|
return C.CString(result)
|
|
}
|
|
|
|
//export cli_mkmxtoken
|
|
func cli_mkmxtoken(id *C.char, pw *C.char) *C.char {
|
|
mxid := C.GoString(id)
|
|
mxpw := C.GoString(pw)
|
|
result := mxclient.MkToken(mxid, mxpw)
|
|
return C.CString(result)
|
|
}
|
|
|
|
//export cli_whoami
|
|
func cli_whoami(hs *C.char, tk *C.char) *C.char {
|
|
_hs := C.GoString(hs)
|
|
_tk := C.GoString(tk)
|
|
result := mxclient.Whoami(_hs, _tk)
|
|
return C.CString(result)
|
|
}
|
|
|
|
//export cli_accountinfo
|
|
func cli_accountinfo(hs *C.char, tk *C.char) *C.char {
|
|
_hs := C.GoString(hs)
|
|
_tk := C.GoString(tk)
|
|
result := mxclient.AccountInfo(_hs, _tk)
|
|
return C.CString(result)
|
|
}
|
|
|
|
//export cli_clearaccount
|
|
func cli_clearaccount(hs *C.char, tk *C.char) *C.char {
|
|
_hs := C.GoString(hs)
|
|
_tk := C.GoString(tk)
|
|
result := mxclient.ClearAccount(_hs, _tk)
|
|
return C.CString(result)
|
|
}
|
|
|
|
//export cli_serverinfo
|
|
func cli_serverinfo(url *C.char) *C.char {
|
|
_url := C.GoString(url)
|
|
result := mxclient.ServerInfo(_url)
|
|
return C.CString(result)
|
|
}
|
|
|
|
/*
|
|
high api
|
|
*/
|
|
//export createclient
|
|
func createclient(url *C.char, userID *C.char, accessToken *C.char) C.int {
|
|
err := mxclient.CreateClient(C.GoString(url), C.GoString(userID), C.GoString(accessToken))
|
|
if err != nil {
|
|
fmt.Printf("ERR: %v", err)
|
|
return 1
|
|
}
|
|
return 0
|
|
}
|
|
|
|
//export shutdown
|
|
func shutdown() C.int {
|
|
return 0
|
|
}
|
|
|
|
func main() {}
|