UNPKG

twse

Version:

twse data fetcher

103 lines (81 loc) 3.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _axios = require("axios"); var _axios2 = _interopRequireDefault(_axios); var _getCookie = require("./getCookie"); var _getCookie2 = _interopRequireDefault(_getCookie); var _getOTCStocks = require("./getOTCStocks"); var _getOTCStocks2 = _interopRequireDefault(_getOTCStocks); var _getTSEStocks = require("./getTSEStocks"); var _getTSEStocks2 = _interopRequireDefault(_getTSEStocks); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _next(value) { step("next", value); } function _throw(err) { step("throw", err); } _next(); }); }; } var TWSE_STOCK_API = "http://mis.twse.com.tw/stock/api/getStockInfo.jsp"; var getFullSymbol = function getFullSymbol(symbol) { var otcStocks = (0, _getOTCStocks2.default)(); var tseStocks = (0, _getTSEStocks2.default)(); if (otcStocks[symbol]) { return "otc_".concat(symbol, ".tw"); } if (tseStocks[symbol]) { return "tse_".concat(symbol, ".tw"); } return ''; }; exports.default = /*#__PURE__*/ _asyncToGenerator( /*#__PURE__*/ regeneratorRuntime.mark(function _callee() { var symbols, response, _response$data, _response$data$msgArr, stockInfo, _args = arguments; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: symbols = _args.length > 0 && _args[0] !== undefined ? _args[0] : []; _context.prev = 1; _context.t0 = _axios2.default; _context.t1 = TWSE_STOCK_API; _context.next = 6; return (0, _getCookie2.default)(); case 6: _context.t2 = _context.sent; _context.t3 = { Cookie: _context.t2 }; _context.t4 = { ex_ch: symbols.map(getFullSymbol).filter(function (symbol) { return !!symbol; }).join('|'), _: new Date().getTime() }; _context.t5 = { headers: _context.t3, params: _context.t4 }; _context.next = 12; return _context.t0.get.call(_context.t0, _context.t1, _context.t5); case 12: response = _context.sent; _response$data = response.data; _response$data = _response$data === void 0 ? {} : _response$data; _response$data$msgArr = _response$data.msgArray, stockInfo = _response$data$msgArr === void 0 ? [] : _response$data$msgArr; return _context.abrupt("return", stockInfo); case 19: _context.prev = 19; _context.t6 = _context["catch"](1); return _context.abrupt("return", null); case 22: case "end": return _context.stop(); } } }, _callee, this, [[1, 19]]); }));