From dad37ec59b333c538bfb9feae852cb2e3f55fa1a Mon Sep 17 00:00:00 2001 From: poiuty Date: Sun, 14 Aug 2022 13:32:35 +0300 Subject: [PATCH] update --- app/cmd.go | 3 +- app/conf.go | 2 +- app/main.go | 12 +- app/save.go | 95 +++++++++------- app/worker.go | 304 +++++++++++++++++++++++++------------------------ go.mod | 17 --- go.sum | 37 ------ test/worker.go | 4 - 8 files changed, 217 insertions(+), 257 deletions(-) delete mode 100644 go.mod delete mode 100644 go.sum diff --git a/app/cmd.go b/app/cmd.go index 94d4822..d5e59a7 100644 --- a/app/cmd.go +++ b/app/cmd.go @@ -3,7 +3,6 @@ package main import ( "fmt" "net/http" - "net/url" "os" "runtime" "strings" @@ -114,5 +113,5 @@ func startRoom(workerData Info) { workerData.Rid = rid workerData.ch = make(chan struct{}) - go xWorker(workerData, url.URL{Scheme: "wss", Host: workerData.Server + ".bcccdn.com", Path: "/websocket"}) + go xWorker(workerData) } diff --git a/app/conf.go b/app/conf.go index 2ac77b3..a558c1b 100644 --- a/app/conf.go +++ b/app/conf.go @@ -17,7 +17,7 @@ func startConfig() { conf.Conn = map[string]string{ "mysql": "user:passwd@unix(/var/run/mysqld/mysqld.sock)/base?interpolateParams=true", "click": "tcp://127.0.0.1:9000/base?compress=true&debug=false", - "start": "/tmp/bongaStart.txt", + "start": "/tmp/stripStart.txt", } // 3proxy diff --git a/app/main.go b/app/main.go index 53cb10e..7117536 100644 --- a/app/main.go +++ b/app/main.go @@ -56,14 +56,14 @@ func main() { go saveLogs() go broadcast() - http.HandleFunc("/bongacams/ws/", wsHandler) - http.HandleFunc("/bongacams/cmd/", cmdHandler) - http.HandleFunc("/bongacams/list/", listHandler) - http.HandleFunc("/bongacams/debug/", debugHandler) + http.HandleFunc("/stripchat/ws/", wsHandler) + http.HandleFunc("/stripchat/cmd/", cmdHandler) + http.HandleFunc("/stripchat/list/", listHandler) + http.HandleFunc("/stripchat/debug/", debugHandler) go fastStart() - const SOCK = "/tmp/bongacams.sock" + const SOCK = "/tmp/stripchat.sock" os.Remove(SOCK) unixListener, err := net.Listen("unix", SOCK) if err != nil { @@ -127,6 +127,6 @@ func fastStart() { Tips: v.Tips, } startRoom(workerData) - time.Sleep(2 * time.Second) + time.Sleep(5 * time.Second) } } diff --git a/app/save.go b/app/save.go index 7a7779c..7e87c4c 100644 --- a/app/save.go +++ b/app/save.go @@ -59,34 +59,23 @@ func getSumTokens() int64 { func saveDB() { hours, _, _ := time.Now().Clock() - bulk := make(map[int]saveData) - update := make(map[int64]int64) + bulk := []saveData{} + update := []struct { + Rid int64 + Now int64 + }{} + data := make(map[string]*DonatorCache) index := make(map[string]int64) + ticker := time.NewTicker(10 * time.Second) + index = map[string]int64{"hours": int64(hours), "tokens": getSumTokens(), "last": time.Now().Unix()} for { select { - case m := <-save: - //fmt.Println("Save channel:", len(save), cap(save)) - - now := time.Now().Unix() - - if _, ok := data[m.From]; ok { - data[m.From].Last = now - } else { - data[m.From] = &DonatorCache{Id: getDonId(m.From), Last: now} - } - - num := len(bulk) - - bulk[num] = m - - update[m.Rid] = m.Now - - if num > 512 { - + case <-ticker.C: + if len(bulk) > 0 { tx, err := Mysql.Begin() if err == nil { st, _ := tx.Prepare("INSERT INTO `stat` (`did`, `rid`, `token`, `time`) VALUES (?, ?, ?, ?)") @@ -100,8 +89,8 @@ func saveDB() { tx, err = Mysql.Begin() if err == nil { st, _ := tx.Prepare("UPDATE `room` SET `last` = ? WHERE `id` = ?") - for k, v := range update { - st.Exec(v, k) + for _, v := range update { + st.Exec(v.Now, v.Rid) } tx.Commit() st.Close() @@ -117,11 +106,30 @@ func saveDB() { st.Close() } - bulk = make(map[int]saveData) - update = make(map[int64]int64) + bulk = nil + update = nil + } + case m := <-save: + //fmt.Println("Save channel:", len(save), cap(save)) + + now := time.Now().Unix() + + if _, ok := data[m.From]; ok { + data[m.From].Last = now + } else { + data[m.From] = &DonatorCache{Id: getDonId(m.From), Last: now} } - if m.Amount > 99 { + bulk = append(bulk, m) + update = append(update, struct { + Rid int64 + Now int64 + }{ + Rid: m.Rid, + Now: m.Now, + }) + + if m.Amount > 49 { msg, err := json.Marshal(struct { Room string `json:"room"` Donator string `json:"donator"` @@ -146,8 +154,8 @@ func saveDB() { if minutes >= 5 && now > index["last"]+30 { seconds += minutes * 60 msg, err := json.Marshal(struct { - Index int64 `json:"index"` - }{Index: index["tokens"] / int64(seconds) * 3600 / 1000 * 5 / 100}) + Index float64 `json:"index"` + }{Index: float64(index["tokens"]) / float64(seconds) * 3600 * 0.05 / 1000}) if err == nil { ws.Send <- msg } @@ -168,25 +176,26 @@ func saveDB() { } func saveLogs() { - bulk := make(map[int]saveLog) + bulk := []saveLog{} + ticker := time.NewTicker(10 * time.Second) for { select { + case <-ticker.C: + if len(bulk) > 0 { + tx, err := Mysql.Begin() + if err == nil { + st, _ := tx.Prepare("INSERT INTO `logs` (`rid`, `time`, `mes`) VALUES (?, ?, ?)") + for _, v := range bulk { + st.Exec(v.Rid, v.Now, v.Mes) + } + tx.Commit() + st.Close() + } + bulk = nil + } case m := <-slog: if len(m.Mes) > 0 { - num := len(bulk) - bulk[num] = m - if num > 2048 { - tx, err := Mysql.Begin() - if err == nil { - st, _ := tx.Prepare("INSERT INTO `logs` (`rid`, `time`, `mes`) VALUES (?, ?, ?)") - for _, v := range bulk { - st.Exec(v.Rid, v.Now, v.Mes) - } - tx.Commit() - st.Close() - } - bulk = make(map[int]saveLog) - } + bulk = append(bulk, m) } } } diff --git a/app/worker.go b/app/worker.go index e2f8a93..022aed7 100644 --- a/app/worker.go +++ b/app/worker.go @@ -3,40 +3,68 @@ package main import ( "fmt" "github.com/gorilla/websocket" - jsoniter "github.com/json-iterator/go" "net/http" "net/url" "strings" "time" + "regexp" + "bytes" + "context" + "io/ioutil" + "strconv" ) var uptime = time.Now().Unix() -type AuthResponse struct { - Status string `json:"status"` - LocalData struct { - DataKey string `json:"dataKey"` - } `json:"localData"` - UserData struct { - Username string `json:"username"` - DisplayName string `json:"displayName"` - Location string `json:"location"` - Chathost string `json:"chathost"` - IsRu bool `json:"isRu"` - } `json:"userData"` +type Amount struct { + value int64 +} + +func (a Amount) Value() int64 { + return a.value +} + +func (a *Amount) UnmarshalJSON(b []byte) error { + str := string(b) + s := 0 + e := len(b) + if len(str) > 2 && str[0] == '"' && str[len(b)-1] == '"' { + s = 1 + e = len(b) - 1 + } + var err error + a.value, err = strconv.ParseInt(str[s:e], 10, 64) + return err } type ServerResponse struct { - TS int64 `json:"ts"` - Type string `json:"type"` - Body jsoniter.RawMessage `json:"body"` -} + SubscriptionKey string `json:"subscriptionKey,omitempty"` -type DonateResponse struct { - F struct { - Username string `json:"username"` - } `json:"f"` - A int64 `json:"a"` + Params struct { + Model struct { + Status string `json:"status,omitempty"` + } `json:"model,omitempty"` + User struct { + Status string `json:"status,omitempty"` + } `json:"user,omitempty"` + ClientId string `json:"clientId,omitempty"` + Message struct { + Type string `json:"type,omitempty"` + Userdata struct { + Username string `json:"username,omitempty"` + } `json:"userdata,omitempty"` + Details struct { + Amount Amount `json:"amount,omitempty"` + LovenseDetails struct { + Type string `json:"type,omitempty"` + Detail struct { + Name string `json:"name,omitempty"` + Amount Amount `json:"amount,omitempty"` + } `json:"detail,omitempty"` + } `json:"lovenseDetails"` + } `json:"details,omitempty"` + } `json:"message,omitempty"` + } `json:"params,omitempty"` } func mapRooms() { @@ -89,53 +117,70 @@ func announceCount() { } } -func getAMF(room string) (bool, *AuthResponse) { - - v := &AuthResponse{} - - req, err := http.NewRequest(http.MethodPost, "https://rt.bongocams.com/tools/amf.php?res=771840&t=1654437233142", strings.NewReader(`method=getRoomData&args[]=`+room)) +func getToken(room string) (*url.URL, string) { + req, err := http.NewRequestWithContext(context.TODO(), http.MethodGet, "https://ru.stripchat.com/"+room, nil) if err != nil { - fmt.Println(err.Error()) - return false, v + return &url.URL{}, "cantGetToken" } - req.Header.Add("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8") - req.Header.Add("X-Requested-With", "XMLHttpRequest") - req.Header.Add("Accept", "application/json") - req.Header.Add("Referrer", "https://bongacams.com") - req.Header.Add("User-agent", "curl/7.79.1") - + req.Header.Add("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:33.0) Gecko/20100101 Firefox/33.0") + req.Header.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8") + req.Header.Add("Accept-Language", "en-US,en;q=0.5") + req.Header.Add("Connection", "keep-alive") + req.Header.Add("Referer", "https://ru.stripchat.com") rsp, err := http.DefaultClient.Do(req) if err != nil { - fmt.Println(err.Error()) - return false, v + return &url.URL{}, "cantGetToken" + } else if rsp.StatusCode != http.StatusOK { + return &url.URL{}, "cantGetToken" } + defer rsp.Body.Close() - if err = json.NewDecoder(rsp.Body).Decode(v); err != nil { - fmt.Println(err.Error()) - return false, v + buf, err := ioutil.ReadAll(rsp.Body) + if err != nil { + return &url.URL{}, "cantGetToken" + } + re := regexp.MustCompile(`"websocketUrl":"*(.*?)\s*"`) + m := re.FindSubmatch(buf) + if len(m) != 2 { + return &url.URL{}, "cantGetToken" + } + r := bytes.ReplaceAll(m[1], []byte(`\u002F`), []byte(`/`)) + u, err := url.Parse(string(r)) + if err != nil { + return &url.URL{}, "cantGetToken" } - return true, v + re = regexp.MustCompile(`img.strpst.com/thumbs/*(.*?)\s*"`) + id := re.FindSubmatch(buf) + if len(id) != 2 { + return &url.URL{}, "cantGetToken" + } + xid := string(id[1]) + return u, xid[strings.Index(xid, "/")+1:] } -func xWorker(workerData Info, u url.URL) { +func xWorker(workerData Info) { fmt.Println("Start", workerData.room, "server", workerData.Server, "proxy", workerData.Proxy) - + rooms.Add <- workerData defer func() { rooms.Del <- workerData.room }() - - ok, v := getAMF(workerData.room) - if !ok { - fmt.Println("exit: no amf parms") + + u, id := getToken(workerData.room) + if id == "cantGetToken" { + fmt.Println("cantGetToken", workerData.room) return } - + Dialer := *websocket.DefaultDialer + proxyMap := make(map[string]string) + proxyMap["us"] = "5.161.128.20:3128" + proxyMap["fi"] = "65.21.180.188:3128" + if _, ok := conf.Proxy[workerData.Proxy]; ok { Dialer = websocket.Dialer{ Proxy: http.ProxyURL(&url.URL{ @@ -149,128 +194,93 @@ func xWorker(workerData Info, u url.URL) { c, _, err := Dialer.Dial(u.String(), nil) if err != nil { - fmt.Println(err.Error(), workerData.room) - return - } - - defer c.Close() - - c.SetReadDeadline(time.Now().Add(60 * time.Second)) - - if err = c.WriteMessage(websocket.TextMessage, []byte(fmt.Sprintf(`{"id":%d,"name":"joinRoom","args":["%s",{"username":"%s","displayName":"%s","location":"%s","chathost":"%s","isRu":%t,"isPerformer":false,"hasStream":false,"isLogged":false,"isPayable":false,"showType":"public"},"%s"]}`, 1, v.UserData.Chathost, v.UserData.Username, v.UserData.DisplayName, v.UserData.Location, v.UserData.Chathost, v.UserData.IsRu, v.LocalData.DataKey))); err != nil { fmt.Println(err.Error()) return } - _, message, err := c.ReadMessage() - if err != nil { - fmt.Println(err.Error(), workerData.room) - return - } - - slog <- saveLog{workerData.Rid, time.Now().Unix(), string(message)} - - if string(message) == `{"id":1,"result":{"audioAvailable":false,"freeShow":false},"error":null}` { - fmt.Println("room offline, exit", workerData.room) - return - } - - if err = c.WriteMessage(websocket.TextMessage, []byte(fmt.Sprintf(`{"id":%d,"name":"ChatModule.connect","args":["public-chat"]}`, 2))); err != nil { - fmt.Println(err.Error(), workerData.room) - return - } - - _, message, err = c.ReadMessage() - if err != nil { - fmt.Println(err.Error(), workerData.room) - return - } - - slog <- saveLog{workerData.Rid, time.Now().Unix(), string(message)} - - quit := make(chan struct{}) - pid := 3 - - defer func() { - close(quit) - }() - - go func() { - ticker := time.NewTicker(30 * time.Second) - defer ticker.Stop() - for { - select { - case <-quit: - return - case <-ticker.C: - if err = c.WriteMessage(websocket.TextMessage, []byte(fmt.Sprintf(`{"id":%d,"name":"ping"}`, pid))); err != nil { - fmt.Println(err.Error(), workerData.room) - rooms.Stop <- workerData.room - return - } - pid++ - break - } - } - }() - + defer c.Close() + dons := make(map[string]struct{}) - + for { - select { - case <-workerData.ch: - fmt.Println("Exit room:", workerData.room) - return - default: - } - c.SetReadDeadline(time.Now().Add(30 * time.Minute)) _, message, err := c.ReadMessage() if err != nil { - fmt.Println(err.Error()) + fmt.Println(err.Error(), workerData.room) return } - + now := time.Now().Unix() - - slog <- saveLog{workerData.Rid, now, string(message)} - + + slog <- saveLog{workerData.Rid, time.Now().Unix(), string(message)} + m := &ServerResponse{} if err = json.Unmarshal(message, m); err != nil { fmt.Println(err.Error(), workerData.room) continue } - + workerData.Last = now rooms.Add <- workerData - if m.Type == "ServerMessageEvent:PERFORMER_STATUS_CHANGE" && string(m.Body) == `"offline"` { - fmt.Println(m.Type, workerData.room) - return - } - - if m.Type == "ServerMessageEvent:ROOM_CLOSE" { - fmt.Println(m.Type, workerData.room) - return - } - - if m.Type == "ServerMessageEvent:INCOMING_TIP" { - d := &DonateResponse{} - if err = json.Unmarshal(m.Body, d); err == nil { - //fmt.Println(d.F.Username, "send", d.A, "tokens") - - workerData.Tips++ - if _, ok := dons[d.F.Username]; !ok { - dons[d.F.Username] = struct{}{} - workerData.Dons++ + if m.SubscriptionKey == "connected" { + messages := [][]byte{} + messages = append(messages, []byte(`{"id":"1660248194970-sub-lotteryChanged","method":"PUT","url":"/front/clients/`+m.Params.ClientId+`/subscriptions/lotteryChanged"}`)) + messages = append(messages, []byte(`{"id":"1660248194970-sub-userBanned:`+id+`","method":"PUT","url":"/front/clients/`+m.Params.ClientId+`/subscriptions/userBanned:`+id+`"}`)) + messages = append(messages, []byte(`{"id":"1660248194970-sub-goalChanged:`+id+`","method":"PUT","url":"/front/clients/`+m.Params.ClientId+`/subscriptions/goalChanged:`+id+`"}`)) + messages = append(messages, []byte(`{"id":"1660248194970-sub-modelStatusChanged:`+id+`","method":"PUT","url":"/front/clients/`+m.Params.ClientId+`/subscriptions/modelStatusChanged:`+id+`"}`)) + messages = append(messages, []byte(`{"id":"1660248194971-sub-broadcastSettingsChanged:`+id+`","method":"PUT","url":"/front/clients/`+m.Params.ClientId+`/subscriptions/broadcastSettingsChanged:`+id+`"}`)) + messages = append(messages, []byte(`{"id":"1660248194971-sub-tipMenuUpdated:`+id+`","method":"PUT","url":"/front/clients/`+m.Params.ClientId+`/subscriptions/tipMenuUpdated:`+id+`"}`)) + messages = append(messages, []byte(`{"id":"1660248194971-sub-topicChanged:`+id+`","method":"PUT","url":"/front/clients/`+m.Params.ClientId+`/subscriptions/topicChanged:`+id+`"}`)) + messages = append(messages, []byte(`{"id":"1660248194971-sub-userUpdated:`+id+`","method":"PUT","url":"/front/clients/`+m.Params.ClientId+`/subscriptions/userUpdated:`+id+`"}`)) + messages = append(messages, []byte(`{"id":"1660248194971-sub-interactiveToyStatusChanged:`+id+`","method":"PUT","url":"/front/clients/`+m.Params.ClientId+`/subscriptions/interactiveToyStatusChanged:`+id+`"}`)) + messages = append(messages, []byte(`{"id":"1660248194971-sub-groupShow:`+id+`","method":"PUT","url":"/front/clients/`+m.Params.ClientId+`/subscriptions/groupShow:`+id+`"}`)) + messages = append(messages, []byte(`{"id":"1660248194971-sub-deleteChatMessages:`+id+`","method":"PUT","url":"/front/clients/`+m.Params.ClientId+`/subscriptions/deleteChatMessages:`+id+`"}`)) + messages = append(messages, []byte(`{"id":"1660248194971-sub-tipLeaderboardSettingsUpdated:`+id+`","method":"PUT","url":"/front/clients/`+m.Params.ClientId+`/subscriptions/tipLeaderboardSettingsUpdated:`+id+`"}`)) + messages = append(messages, []byte(`{"id":"1660248194971-sub-modelAppUpdated:`+id+`","method":"PUT","url":"/front/clients/`+m.Params.ClientId+`/subscriptions/modelAppUpdated:`+id+`"}`)) + messages = append(messages, []byte(`{"id":"1660248194972-sub-newKing:`+id+`","method":"PUT","url":"/front/clients/`+m.Params.ClientId+`/subscriptions/newKing:`+id+`"}`)) + messages = append(messages, []byte(`{"id":"1660248194972-sub-privateMessageSettingsChanged:`+id+`","method":"PUT","url":"/front/clients/`+m.Params.ClientId+`/subscriptions/privateMessageSettingsChanged:`+id+`"}`)) + messages = append(messages, []byte(`{"id":"1660248194972-sub-newChatMessage:`+id+`","method":"PUT","url":"/front/clients/`+m.Params.ClientId+`/subscriptions/newChatMessage:`+id+`"}`)) + messages = append(messages, []byte(`{"id":"1660248194972-sub-fanClubUpdated:`+id+`","method":"PUT","url":"/front/clients/`+m.Params.ClientId+`/subscriptions/fanClubUpdated:`+id+`"}`)) + messages = append(messages, []byte(`{"id":"1660248194972-sub-viewServerChanged:hls-07","method":"PUT","url":"/front/clients/`+m.Params.ClientId+`/subscriptions/viewServerChanged:hls-07"}`)) + for _, msg := range messages { + if err = c.WriteMessage(websocket.TextMessage, msg); err != nil { + fmt.Println(err.Error(), workerData.room) + return } - - save <- saveData{workerData.room, d.F.Username, workerData.Rid, d.A, now} - - workerData.Income += d.A - rooms.Add <- workerData } + messages = nil + } + + if strings.Contains(m.SubscriptionKey, "userUpdated") && m.Params.User.Status == "off" { + fmt.Println("user exiting", workerData.room) + return + } + + if strings.Contains(m.SubscriptionKey, "modelStatusChanged") && m.Params.Model.Status == "off" { + fmt.Println("user exiting", workerData.room) + return + } + + if m.Params.Message.Type == "tip" { + + if len(m.Params.Message.Userdata.Username) < 3 { + continue + } + + fmt.Println(m.Params.Message.Userdata.Username, "send", m.Params.Message.Details.Amount.Value(), "tokens") + + workerData.Tips++ + if _, ok := dons[m.Params.Message.Userdata.Username]; !ok { + dons[m.Params.Message.Userdata.Username] = struct{}{} + workerData.Dons++ + } + + save <- saveData{workerData.room, strings.ToLower(m.Params.Message.Userdata.Username), workerData.Rid, m.Params.Message.Details.Amount.Value(), now} + + workerData.Income += m.Params.Message.Details.Amount.Value() + rooms.Add <- workerData } } } diff --git a/go.mod b/go.mod deleted file mode 100644 index eb3b3f3..0000000 --- a/go.mod +++ /dev/null @@ -1,17 +0,0 @@ -module stripchat - -go 1.19 - -require ( - github.com/ClickHouse/clickhouse-go v1.5.4 - github.com/go-sql-driver/mysql v1.6.0 - github.com/gorilla/websocket v1.5.0 - github.com/jmoiron/sqlx v1.3.5 - github.com/json-iterator/go v1.1.12 -) - -require ( - github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 // indirect - github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 // indirect - github.com/modern-go/reflect2 v1.0.2 // indirect -) diff --git a/go.sum b/go.sum deleted file mode 100644 index 20e681b..0000000 --- a/go.sum +++ /dev/null @@ -1,37 +0,0 @@ -github.com/ClickHouse/clickhouse-go v1.5.4 h1:cKjXeYLNWVJIx2J1K6H2CqyRmfwVJVY1OV1coaaFcI0= -github.com/ClickHouse/clickhouse-go v1.5.4/go.mod h1:EaI/sW7Azgz9UATzd5ZdZHRUhHgv5+JMS9NSr2smCJI= -github.com/bkaradzic/go-lz4 v1.0.0 h1:RXc4wYsyz985CkXXeX04y4VnZFGG8Rd43pRaHsOXAKk= -github.com/bkaradzic/go-lz4 v1.0.0/go.mod h1:0YdlkowM3VswSROI7qDxhRvJ3sLhlFrRRwjwegp5jy4= -github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 h1:F1EaeKL/ta07PY/k9Os/UFtwERei2/XzGemhpGnBKNg= -github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58/go.mod h1:EOBUe0h4xcZ5GoxqC5SDxFQ8gwyZPKQoEzownBlhI80= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= -github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= -github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= -github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= -github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= -github.com/jmoiron/sqlx v1.3.5 h1:vFFPA71p1o5gAeqtEAwLU4dnX2napprKtHr7PYIcN3g= -github.com/jmoiron/sqlx v1.3.5/go.mod h1:nRVWtLre0KfCLJvgxzCsLVMogSvQ1zNJtpYr2Ccp0mQ= -github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= -github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= -github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.2.0 h1:LXpIM/LZ5xGFhOpXAQUIMM1HdyqzVYM13zNdjCEEcA0= -github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= -github.com/mattn/go-sqlite3 v1.14.6 h1:dNPt6NO46WmLVt2DLNpwczCmdV5boIZ6g/tlDrlRUbg= -github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 h1:ZqeYNhU3OHLH3mGKHDcjJRFFRrJa6eAM5H+CtDdOsPc= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= -github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/pierrec/lz4 v2.0.5+incompatible h1:2xWsjqPFWcplujydGg4WmhC/6fZqK42wMM8aXeqhl0I= -github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= diff --git a/test/worker.go b/test/worker.go index a0b5f9a..cef5e0c 100644 --- a/test/worker.go +++ b/test/worker.go @@ -146,10 +146,6 @@ func startRoom(room, server, proxy string, u *url.URL, id string) { fmt.Println("user exiting") return } - - if !strings.Contains(m.SubscriptionKey, "newChatMessage") { - continue - } if m.Params.Message.Type == "tip" { fmt.Println(m.Params.Message.Userdata.Username, " send ", m.Params.Message.Details.Amount.Value(), "tokens")