57 lines
1.9 KiB
Go
57 lines
1.9 KiB
Go
package client
|
|
|
|
import (
|
|
"bufio"
|
|
"fmt"
|
|
"os"
|
|
)
|
|
|
|
func readStdin(message string) string {
|
|
fmt.Println(message)
|
|
scanner := bufio.NewScanner(os.Stdin)
|
|
scanner.Scan()
|
|
return scanner.Text()
|
|
}
|
|
|
|
func printInfo(info string){
|
|
fmt.Println(info)
|
|
}
|
|
|
|
func printError(err string) {
|
|
fmt.Fprintln(os.Stderr, err)
|
|
}
|
|
|
|
func showHelp() {
|
|
fmt.Println("Comandos da aplicação cliente:")
|
|
fmt.Println("-user <FNAME>: Especifica o ficheiro com dados do utilizador. Por omissão, será assumido que esse ficheiro é userdata.p12.")
|
|
fmt.Println("send <UID> <SUBJECT>: Envia uma mensagem com assunto <SUBJECT> destinada ao utilizador com identificador <UID>. O conteúdo da mensagem será lido do stdin, e o tamanho deve ser limitado a 1000 bytes.")
|
|
fmt.Println("askqueue: Solicita ao servidor que lhe envie a lista de mensagens não lidas da queue do utilizador.")
|
|
fmt.Println("getmsg <NUM>: Solicita ao servidor o envio da mensagem da sua queue com número <NUM>.")
|
|
fmt.Println("register: Solicita ao servidor o registo do utilizador.")
|
|
fmt.Println("login: Solicita ao servidor o login do utilizador.")
|
|
fmt.Println("logout: Elimina o token de acesso do utilizador.")
|
|
fmt.Println("help: Imprime instruções de uso do programa.")
|
|
}
|
|
|
|
func showMessagesInfo(page int, numPages int, messages []ClientMessageInfo) {
|
|
if messages == nil {
|
|
fmt.Println("No unread messages in the queue")
|
|
return
|
|
}
|
|
for _, message := range messages {
|
|
if message.decryptError != nil {
|
|
fmt.Printf("ERROR: %v:%v:%v:", message.Num, message.FromUID, message.Timestamp)
|
|
fmt.Println(message.decryptError)
|
|
} else {
|
|
fmt.Printf("%v:%v:%v:%v\n", message.Num, message.FromUID, message.Timestamp, message.Subject)
|
|
}
|
|
}
|
|
fmt.Printf("Page %v/%v\n", page, numPages)
|
|
}
|
|
|
|
func showMessage(message ClientMessage) {
|
|
fmt.Printf("From: %s\n", message.FromUID)
|
|
fmt.Printf("To: %s\n", message.ToUID)
|
|
fmt.Printf("Subject: %s\n", message.Subject)
|
|
fmt.Printf("Body: %s\n", message.Body)
|
|
}
|