parent
7a294ea00f
commit
8e4ac4d600
@ -191,6 +191,11 @@ func (cl *Client) setName(s string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (cl *Client) setColor(s string) error {
|
||||
cl.color = s
|
||||
return cl.SendChatData(common.NewChatHiddenMessage(common.CdColor, cl.color))
|
||||
}
|
||||
|
||||
func (cl *Client) replaceColorizedName(chatData common.ChatData) common.ChatData {
|
||||
data := chatData.Data.(common.DataMessage)
|
||||
data.Message = cl.regexName.ReplaceAllString(data.Message, `<span class="mention">$1</span>`)
|
||||
|
@ -127,7 +127,7 @@ var commands = &CommandControl{
|
||||
}
|
||||
|
||||
if len(args) == 0 {
|
||||
cl.color = common.RandomColor()
|
||||
cl.setColor(common.RandomColor())
|
||||
return "Random color chosen: " + cl.color
|
||||
}
|
||||
|
||||
@ -136,7 +136,11 @@ var commands = &CommandControl{
|
||||
return "To choose a specific color use the format <i>/color #c029ce</i>. Hex values expected."
|
||||
}
|
||||
|
||||
cl.color = args[0]
|
||||
err := cl.setColor(args[0])
|
||||
if err != nil {
|
||||
common.LogErrorf("[color] could not send color update to client: %v\n", err)
|
||||
}
|
||||
|
||||
common.LogInfof("[color] %s new color: %s\n", cl.name, cl.color)
|
||||
return "Color changed successfully."
|
||||
},
|
||||
|
@ -47,8 +47,7 @@ var (
|
||||
)
|
||||
|
||||
// IsValidColor takes a string s and compares it against a list of css color names.
|
||||
// It also accepts hex codes in the form of #000 (RGB), to #00000000 (RRGGBBAA), with A
|
||||
// being the alpha value
|
||||
// It also accepts hex codes in the form of #RGB and #RRGGBB
|
||||
func IsValidColor(s string) bool {
|
||||
s = strings.ToLower(s)
|
||||
for _, c := range colors {
|
||||
|
@ -8,6 +8,7 @@ const (
|
||||
CdUsers // get a list of users
|
||||
CdPing // ping the server to keep the connection alive
|
||||
CdAuth // get the auth levels of the user
|
||||
CdColor // get the users color
|
||||
)
|
||||
|
||||
type DataType int
|
||||
|
@ -1,5 +1,21 @@
|
||||
/// <reference path="./both.js" />
|
||||
|
||||
function getCookie(cname) {
|
||||
var name = cname + "=";
|
||||
var decodedCookie = decodeURIComponent(document.cookie);
|
||||
var ca = decodedCookie.split(';');
|
||||
for (var i = 0; i < ca.length; i++) {
|
||||
var c = ca[i];
|
||||
while (c.charAt(0) == ' ') {
|
||||
c = c.substring(1);
|
||||
}
|
||||
if (c.indexOf(name) == 0) {
|
||||
return c.substring(name.length, c.length);
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
function setPlaying(title, link) {
|
||||
if (title !== "") {
|
||||
$('#playing').text(title);
|
||||
@ -89,6 +105,14 @@ function join() {
|
||||
}
|
||||
setNotifyBox();
|
||||
openChat();
|
||||
|
||||
let color = getCookie("color");
|
||||
if (color !== "") {
|
||||
// Do a timeout because timings
|
||||
setTimeout(() => {
|
||||
sendMessage("/color " + color);
|
||||
}, 250);
|
||||
}
|
||||
}
|
||||
|
||||
function websocketSend(data) {
|
||||
@ -169,7 +193,6 @@ function changeColor() {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Get the websocket setup in a function so it can be recalled
|
||||
function setupWebSocket() {
|
||||
ws = new WebSocket(getWsUri());
|
||||
|
17
wasm/main.go
17
wasm/main.go
@ -10,7 +10,10 @@ import (
|
||||
"github.com/zorchenhimer/MovieNight/common"
|
||||
)
|
||||
|
||||
var auth common.CommandLevel
|
||||
var (
|
||||
auth common.CommandLevel
|
||||
color string
|
||||
)
|
||||
|
||||
func recieve(v []js.Value) {
|
||||
if len(v) == 0 {
|
||||
@ -41,6 +44,9 @@ func recieve(v []js.Value) {
|
||||
}
|
||||
case common.CdAuth:
|
||||
auth = h.Data.(common.CommandLevel)
|
||||
case common.CdColor:
|
||||
color = h.Data.(string)
|
||||
js.Get("document").Set("cookie", fmt.Sprintf("color=%s;", color))
|
||||
}
|
||||
case common.DTEvent:
|
||||
d := chat.Data.(common.DataEvent)
|
||||
@ -101,19 +107,19 @@ func websocketSend(msg string, dataType common.ClientDataType) error {
|
||||
|
||||
func send(this js.Value, v []js.Value) interface{} {
|
||||
if len(v) != 1 {
|
||||
showSendError(fmt.Errorf("expected 1 parameter, got %d", len(v)))
|
||||
showChatError(fmt.Errorf("expected 1 parameter, got %d", len(v)))
|
||||
return false
|
||||
}
|
||||
|
||||
err := websocketSend(v[0].String(), common.CdMessage)
|
||||
if err != nil {
|
||||
showSendError(err)
|
||||
showChatError(err)
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
func showSendError(err error) {
|
||||
func showChatError(err error) {
|
||||
if err != nil {
|
||||
fmt.Printf("Could not send: %v\n", err)
|
||||
js.Call("appendMessages", `<div><span style="color: red;">Could not send message</span></div>`)
|
||||
@ -135,8 +141,9 @@ func isValidName(this js.Value, v []js.Value) interface{} {
|
||||
}
|
||||
|
||||
func debugValues(v []js.Value) {
|
||||
fmt.Printf("currentName %#v\n", currentName)
|
||||
fmt.Printf("auth %#v\n", auth)
|
||||
fmt.Printf("color %#v\n", color)
|
||||
fmt.Printf("currentName %#v\n", currentName)
|
||||
fmt.Printf("names %#v\n", names)
|
||||
fmt.Printf("filteredNames %#v\n", filteredNames)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user