feat: 增加 网易股票代码接口 和 修改目录结构

This commit is contained in:
zhangxiangliang 2020-07-23 01:32:09 +08:00
parent 6a13a16ed4
commit 787c9c3a45
3 changed files with 69 additions and 36 deletions

69
src/stocks/netease/api.ts Normal file
View File

@ -0,0 +1,69 @@
// Stock
import Base from "@stocks/base/api";
import NeteaseTransform from "@stocks/netease/transform";
// Utils
import fetch from "@utils/fetch";
// Types
import Stock from "@interfaces/Stock";
/**
*
*/
class Netease extends Base {
/**
*
*/
constructor() {
super(new NeteaseTransform);
}
/**
*
* @param code
*/
async getStock(code: string): Promise<Stock> {
const transform = this.transform.transform(code);
const url = `https://api.money.126.net/data/feed/${transform},money.api?callback=topstock`;
const res = await fetch.get(url);
const items = JSON.parse(res.data.replace(/\(|\)|;|(topstock)/g, ''));
const item = items[transform];
return {
code: code,
name: item.name,
price: item.price,
percent: item.percent,
};
}
/**
*
* @param codes
*/
async getStocks(codes: string[]): Promise<Stock[]> {
const transforms = this.transform.transforms(codes);
const url = `https://api.money.126.net/data/feed/${transforms.join(',')},money.api?callback=topstock`;
const res = await fetch.get(url);
const items = JSON.parse(res.data.replace(/\(|\)|;|(topstock)/g, ''));
return codes.map(code => {
const transform = this.transform.transform(code);
const item = items[transform];
return {
code: code,
name: item.name,
price: item.price,
percent: item.percent,
}
});
}
}
export default Netease;

View File

@ -1,36 +0,0 @@
// StockApi
import Base from "@stocks/base";
import NeteaseTransform from "@stocks/netease/transform";
// Types
import Stock from "@interfaces/Stock";
/**
*
*/
class Netease extends Base {
/**
*
*/
constructor() {
super(new NeteaseTransform);
}
/**
*
* @param code
*/
async getStock(code: string): Promise<Stock> {
throw new Error("未实现获取股票组数据");
}
/**
*
* @param codes
*/
async getStocks(codes: string[]): Promise<Stock[]> {
throw new Error("未实现获取股票组数据");
}
}
export default Netease;