mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-05-20 15:10:10 +00:00
Remove LakeBTC websocket support as it no longer exists
This commit is contained in:
@@ -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 |
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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())
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user