diff --git a/README.md b/README.md index 58c70f66..8079fad6 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ A cryptocurrency trading bot supporting multiple exchanges written in Golang. | Huobi | Yes | Yes |No | | ItBit | Yes | NA | NA | | Kraken | Yes | NA | NA | -| LakeBTC | Yes | Yes | NA | +| LakeBTC | Yes | No | NA | | LocalBitcoins | Yes | NA | NA | | OKCoin (both) | Yes | Yes | No | | Poloniex | Yes | Yes | NA | diff --git a/lakebtchttp.go b/lakebtchttp.go index c7346522..bb7875c8 100644 --- a/lakebtchttp.go +++ b/lakebtchttp.go @@ -120,15 +120,10 @@ func (l *LakeBTC) GetFee(maker bool) float64 { func (l *LakeBTC) Run() { if l.Verbose { - log.Printf("%s Websocket: %s. (url: %s).\n", l.GetName(), IsEnabled(l.Websocket), LAKEBTC_WEBSOCKET_URL) log.Printf("%s polling delay: %ds.\n", l.GetName(), l.RESTPollingDelay) log.Printf("%s %d currencies enabled: %s.\n", l.GetName(), len(l.EnabledPairs), l.EnabledPairs) } - if l.Websocket { - go l.WebsocketClient() - } - for l.Enabled { for _, x := range l.EnabledPairs { ticker, err := l.GetTickerPrice(x) diff --git a/lakebtcwebsocket.go b/lakebtcwebsocket.go deleted file mode 100644 index c91fd45b..00000000 --- a/lakebtcwebsocket.go +++ /dev/null @@ -1,124 +0,0 @@ -package main - -import ( - "fmt" - "github.com/gorilla/websocket" - "log" - "net/http" -) - -type LakeBTCWebsocketTickerResponse struct { - Blah float64 -} - -const ( - LAKEBTC_WEBSOCKET_URL = "wss://www.LakeBTC.com/websocket" -) - -func WSRailsSubscribe(channel string, conn *websocket.Conn) { - data := fmt.Sprintf(`["websocket_rails.subscribe", {"data":{"channel": "%s" }}]`, channel) - err := conn.WriteMessage(websocket.TextMessage, []byte(data)) - - if err != nil { - log.Println(err) - return - } -} - -func WSRailsUnsubscribe(channel string, conn *websocket.Conn) { - data := fmt.Sprintf(`["websocket_rails.unsubscribe", {"data":{"channel": "%s" }}]`, channel) - err := conn.WriteMessage(websocket.TextMessage, []byte(data)) - - if err != nil { - log.Println(err) - return - } -} - -func WSRailsPong(id string, conn *websocket.Conn) { - data := fmt.Sprintf(`["websocket_rails.pong", {"data":{"connection_id": %s}}]`, id) - err := conn.WriteMessage(websocket.TextMessage, []byte(data)) - - if err != nil { - log.Println(err) - return - } -} - -func (l *LakeBTC) WebsocketClient() { - for l.Enabled && l.Websocket { - var Dialer websocket.Dialer - conn, _, err := Dialer.Dial(LAKEBTC_WEBSOCKET_URL, http.Header{}) - - if err != nil { - log.Printf("%s Unable to connect to Websocket. Error: %s\n", l.GetName(), err) - continue - } - - log.Printf("%s Connected to Websocket.\n", l.GetName()) - - for l.Enabled && l.Websocket { - msgType, resp, err := conn.ReadMessage() - if err != nil { - log.Println(err) - break - } - - response := [][]interface{}{} - err = JSONDecode(resp, &response) - - if err != nil { - log.Println(err) - break - } - - if msgType == websocket.TextMessage { - event := response[0][0] - data := response[0][1] - - switch event { - case "client_connected": - WSRailsSubscribe("ticker", conn) - for _, x := range l.EnabledPairs { - currency := x[3:] - WSRailsSubscribe(fmt.Sprintf("orderbook_%s", currency), conn) - } - case "websocket_rails.subscribe": - case "websocket_rails.ping": - WSRailsPong("null", conn) - case "update": - update := data.(map[string]interface{}) - channel := update["channel"] - data = update["data"] - dataJSON, err := JSONEncode(data) - - if err != nil { - log.Println(err) - continue - } - - switch channel { - case "ticker": - ticker := LakeBTCTickerResponse{} - err = JSONDecode(dataJSON, &ticker) - - if err != nil { - log.Println(err) - continue - } - case "orderbook_USD", "orderbook_CNY": - orderbook := LakeBTCOrderbook{} - err = JSONDecode(dataJSON, &orderbook) - - if err != nil { - log.Println(err) - continue - } - } - } - } - } - conn.Close() - log.Printf("%s Websocket client disconnected.\n", l.GetName()) - } -}