(self, client: Client, message)
| 1544 | return await self.un_watch_ohlcv_for_symbols([[symbol, timeframe]], params) |
| 1545 | |
| 1546 | def handle_ohlcv(self, client: Client, message): |
| 1547 | # |
| 1548 | # { |
| 1549 | # "e": "kline", |
| 1550 | # "E": 1579482921215, |
| 1551 | # "s": "ETHBTC", |
| 1552 | # "k": { |
| 1553 | # "t": 1579482900000, |
| 1554 | # "T": 1579482959999, |
| 1555 | # "s": "ETHBTC", |
| 1556 | # "i": "1m", |
| 1557 | # "f": 158411535, |
| 1558 | # "L": 158411550, |
| 1559 | # "o": "0.01913200", |
| 1560 | # "c": "0.01913500", |
| 1561 | # "h": "0.01913700", |
| 1562 | # "l": "0.01913200", |
| 1563 | # "v": "5.08400000", |
| 1564 | # "n": 16, |
| 1565 | # "x": False, |
| 1566 | # "q": "0.09728060", |
| 1567 | # "V": "3.30200000", |
| 1568 | # "Q": "0.06318500", |
| 1569 | # "B": "0" |
| 1570 | # } |
| 1571 | # } |
| 1572 | # |
| 1573 | event = self.safe_string(message, 'e') |
| 1574 | eventMap = { |
| 1575 | 'indexPrice_kline': 'indexPriceKline', |
| 1576 | 'markPrice_kline': 'markPriceKline', |
| 1577 | } |
| 1578 | event = self.safe_string(eventMap, event, event) |
| 1579 | kline = self.safe_value(message, 'k') |
| 1580 | marketId = self.safe_string_2(kline, 's', 'ps') |
| 1581 | if event == 'indexPriceKline': |
| 1582 | # indexPriceKline doesn't have the _PERP suffix |
| 1583 | marketId = self.safe_string(message, 'ps') |
| 1584 | interval = self.safe_string(kline, 'i') |
| 1585 | # use a reverse lookup in a static map instead |
| 1586 | unifiedTimeframe = self.find_timeframe(interval) |
| 1587 | parsed = [ |
| 1588 | self.safe_integer(kline, 't'), |
| 1589 | self.safe_float(kline, 'o'), |
| 1590 | self.safe_float(kline, 'h'), |
| 1591 | self.safe_float(kline, 'l'), |
| 1592 | self.safe_float(kline, 'c'), |
| 1593 | self.safe_float(kline, 'v'), |
| 1594 | ] |
| 1595 | isSpot = self.is_spot_url(client) |
| 1596 | marketType = 'spot' if (isSpot) else 'contract' |
| 1597 | symbol = self.safe_symbol(marketId, None, None, marketType) |
| 1598 | messageHash = 'ohlcv::' + symbol + '::' + unifiedTimeframe |
| 1599 | self.ohlcvs[symbol] = self.safe_value(self.ohlcvs, symbol, {}) |
| 1600 | stored = self.safe_value(self.ohlcvs[symbol], unifiedTimeframe) |
| 1601 | if stored is None: |
| 1602 | limit = self.safe_integer(self.options, 'OHLCVLimit', 1000) |
| 1603 | stored = ArrayCacheByTimestamp(limit) |
nothing calls this directly
no test coverage detected