45 lines
1.5 KiB
Python
45 lines
1.5 KiB
Python
|
|
from __future__ import annotations
|
||
|
|
|
||
|
|
from typing import Any
|
||
|
|
from urllib.parse import urlencode
|
||
|
|
|
||
|
|
|
||
|
|
class GetMixin:
|
||
|
|
def stock_name(self, stock_code: str) -> Any:
|
||
|
|
return self._stock_ref("stock_name", stock_code)
|
||
|
|
|
||
|
|
def open_date(self, stock_code: str) -> Any:
|
||
|
|
return self._stock_ref("open_date", stock_code)
|
||
|
|
|
||
|
|
def last_volume(self, stock_code: str) -> Any:
|
||
|
|
return self._stock_ref("last_volume", stock_code)
|
||
|
|
|
||
|
|
def total_share(self, stock_code: str) -> Any:
|
||
|
|
return self._stock_ref("total_share", stock_code)
|
||
|
|
|
||
|
|
def svol(self, stock_code: str) -> Any:
|
||
|
|
return self._stock_ref("svol", stock_code)
|
||
|
|
|
||
|
|
def bvol(self, stock_code: str) -> Any:
|
||
|
|
return self._stock_ref("bvol", stock_code)
|
||
|
|
|
||
|
|
def divid_factors(self, stock_code: str) -> Any:
|
||
|
|
return self._stock_ref("divid_factors", stock_code)
|
||
|
|
|
||
|
|
def etf_info(self, stock_code: str) -> Any:
|
||
|
|
return self._stock_ref("etf_info", stock_code)
|
||
|
|
|
||
|
|
def etf_iopv(self, stock_code: str) -> Any:
|
||
|
|
return self._stock_ref("etf_iopv", stock_code)
|
||
|
|
|
||
|
|
def instrument_detail(self, stock_code: str) -> Any:
|
||
|
|
return self._stock_ref("instrumentdetail", stock_code)
|
||
|
|
|
||
|
|
def his_st_data(self, stock_code: str) -> Any:
|
||
|
|
return self._stock_ref("his_st_data", stock_code)
|
||
|
|
|
||
|
|
def _stock_ref(self, endpoint: str, stock_code: str) -> Any:
|
||
|
|
query = urlencode({"stock_code": stock_code})
|
||
|
|
data = self._get_json(f"/api/get/{endpoint}?{query}") or {}
|
||
|
|
return data.get("ref")
|