From 725dba68da46cec366618e10f3d8c3f959ef5bca Mon Sep 17 00:00:00 2001 From: Greg <60011793+gregtuc@users.noreply.github.com> Date: Wed, 10 Mar 2021 10:53:07 -0500 Subject: [PATCH 1/4] typescript changes #12 converted js to typescript, tsconfig, generated assets --- lib/StockSocket.d.ts | 2 + lib/StockSocket.d.ts.map | 1 + lib/StockSocket.js | 130 +++++++++++++++++++++++++++ lib/StockSocket.js.map | 1 + package-lock.json | 18 +++- package.json | 8 +- StockSocket.js => src/StockSocket.ts | 39 ++++---- tsconfig.json | 72 +++++++++++++++ 8 files changed, 252 insertions(+), 19 deletions(-) create mode 100644 lib/StockSocket.d.ts create mode 100644 lib/StockSocket.d.ts.map create mode 100644 lib/StockSocket.js create mode 100644 lib/StockSocket.js.map rename StockSocket.js => src/StockSocket.ts (77%) create mode 100644 tsconfig.json diff --git a/lib/StockSocket.d.ts b/lib/StockSocket.d.ts new file mode 100644 index 0000000..b03f442 --- /dev/null +++ b/lib/StockSocket.d.ts @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=StockSocket.d.ts.map \ No newline at end of file diff --git a/lib/StockSocket.d.ts.map b/lib/StockSocket.d.ts.map new file mode 100644 index 0000000..28c824e --- /dev/null +++ b/lib/StockSocket.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"StockSocket.d.ts","sourceRoot":"","sources":["../src/StockSocket.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/lib/StockSocket.js b/lib/StockSocket.js new file mode 100644 index 0000000..dd3a201 --- /dev/null +++ b/lib/StockSocket.js @@ -0,0 +1,130 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const puppeteer = require("puppeteer"); +var browser; +var pagesArray; +var tickersArray; +function addTickers(tickers, callback) { + return __awaiter(this, void 0, void 0, function* () { + //If browser has not been declared, launch it. + if (browser == undefined) { + browser = yield puppeteer.launch(); + } + //Format the inputted tickers, add them to tickersArray, begin operations. + for (var i = 0; i < tickers.length; i++) { + tickersArray.push({ symbol: tickers[i], price: 0 }); + startDataFeed(tickersArray[tickersArray.length - 1], callback); + } + }); +} +function addTicker(ticker, callback) { + return __awaiter(this, void 0, void 0, function* () { + //If browser has not been declared, launch it. + if (browser == undefined) { + browser = yield puppeteer.launch(); + } + //Push the new ticker to tickersArray. + tickersArray.push({ symbol: ticker, price: 0 }); + //Begin operations on the new ticker. + startDataFeed(tickersArray[tickersArray.length - 1], callback); + }); +} +//Stop data for a specific ticker. +function removeTicker(ticker) { + return __awaiter(this, void 0, void 0, function* () { + for (var key in pagesArray) { + if (key == ticker) { + yield pagesArray[key].close(); + delete pagesArray[key]; + break; + } + } + }); +} +//Stop data for a list of tickers. +function removeTickers(tickers) { + return __awaiter(this, void 0, void 0, function* () { + for (var i = 0; i < tickers.length; i++) { + removeTicker(tickers[i]); + } + }); +} +//Stop data for all tickers. +function removeAllTickers() { + return __awaiter(this, void 0, void 0, function* () { + for (var key in pagesArray) { + yield pagesArray[key].close(); + delete pagesArray[key]; + } + }); +} +function startDataFeed(ticker, callback) { + return __awaiter(this, void 0, void 0, function* () { + try { + //Configure Puppeteer page. + pagesArray[ticker.symbol] = yield browser.newPage(); + yield pagesArray[ticker.symbol].setBypassCSP(true); + yield pagesArray[ticker.symbol].goto(`https://ca.finance.yahoo.com/quote/${ticker.symbol}?p=${ticker.symbol}`); + yield pagesArray[ticker.symbol].exposeFunction("puppeteerMutationListener", puppeteerMutationListener); + //Evaluate the page. + yield pagesArray[ticker.symbol].evaluate(function () { + var target; + const potentialSelectors = { + premarket: "#quote-header-info > div.Pos\\(r\\) > div.D\\(ib\\) > p > span", + regmarket: "#quote-header-info > div.Pos\\(r\\) > div > p > span", + postmarket: "#quote-header-info > div.Pos\\(r\\) > div > div > span", + crypto: "#quote-header-info > div.D\\(ib\\) > div > div > span", + }; + //Find correct query selector. + for (var key in potentialSelectors) { + if (document.querySelector(potentialSelectors[key])) { + target = document.querySelector(potentialSelectors[key]); + break; + } + } + if (target != undefined) { + //Initiatialize mutation observer. + var observer = new MutationObserver((mutationsList) => { + for (const mutation of mutationsList) { + puppeteerMutationListener(mutation.target.textContent); + } + }); + //Activate mutation observer. + observer.observe(target, { + attributes: true, + childList: true, + characterData: true, + subtree: true, + }); + } + }); + } + catch (err) { + console.log(err); + } + //Take action on the observed price mutation. + function puppeteerMutationListener(data) { + if (ticker.price != Number(data)) { + ticker.price = Number(data); + callback(ticker); + } + } + }); +} +module.exports = { + addTickers, + addTicker, + removeTicker, + removeTickers, + removeAllTickers, +}; +//# sourceMappingURL=StockSocket.js.map \ No newline at end of file diff --git a/lib/StockSocket.js.map b/lib/StockSocket.js.map new file mode 100644 index 0000000..2fb9346 --- /dev/null +++ b/lib/StockSocket.js.map @@ -0,0 +1 @@ +{"version":3,"file":"StockSocket.js","sourceRoot":"","sources":["../src/StockSocket.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 2d65d8d..00b276c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -39,8 +39,16 @@ "@types/node": { "version": "14.14.31", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.31.tgz", - "integrity": "sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g==", - "optional": true + "integrity": "sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g==" + }, + "@types/puppeteer": { + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/@types/puppeteer/-/puppeteer-5.4.3.tgz", + "integrity": "sha512-3nE8YgR9DIsgttLW+eJf6mnXxq8Ge+27m5SU3knWmrlfl6+KOG0Bf9f7Ua7K+C4BnaTMAh3/UpySqdAYvrsvjg==", + "dev": true, + "requires": { + "@types/node": "*" + } }, "@types/yauzl": { "version": "2.9.1", @@ -1886,6 +1894,12 @@ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "dev": true }, + "typescript": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.3.tgz", + "integrity": "sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==", + "dev": true + }, "unbox-primitive": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.0.tgz", diff --git a/package.json b/package.json index 57a57b4..a7d9a9a 100644 --- a/package.json +++ b/package.json @@ -2,8 +2,10 @@ "name": "stocksocket", "version": "1.1.2", "description": "Real-time Yahoo Stock Prices", - "main": "stocksocket.js", + "main": "lib/stocksocket.js", + "types": "lib", "scripts": { + "build": "tsc -p .", "test": "mocha" }, "repository": { @@ -37,10 +39,12 @@ "puppeteer": "^8.0.0" }, "devDependencies": { + "@types/puppeteer": "^5.4.3", "assert": "^2.0.0", "chromedriver": "^88.0.0", "mocha": "^8.3.0", "request": "^2.88.2", - "selenium-webdriver": "^4.0.0-beta.1" + "selenium-webdriver": "^4.0.0-beta.1", + "typescript": "^4.2.3" } } diff --git a/StockSocket.js b/src/StockSocket.ts similarity index 77% rename from StockSocket.js rename to src/StockSocket.ts index 763d0ba..2c136e3 100644 --- a/StockSocket.js +++ b/src/StockSocket.ts @@ -1,11 +1,17 @@ "use strict"; + +import { Browser, Page } from "puppeteer"; + const puppeteer = require("puppeteer"); -var browser; -var tickersArray = []; -var pagesArray = {}; +var browser: Browser; +var pagesArray: { [key: string]: Page }; +var tickersArray: { symbol: string; price: number }[]; -async function addTickers(tickers, callbackFunc) { +async function addTickers( + tickers: string[], + callback: (...args: any[]) => void +) { //If browser has not been declared, launch it. if (browser == undefined) { browser = await puppeteer.launch(); @@ -13,11 +19,11 @@ async function addTickers(tickers, callbackFunc) { //Format the inputted tickers, add them to tickersArray, begin operations. for (var i = 0; i < tickers.length; i++) { tickersArray.push({ symbol: tickers[i], price: 0 }); - startDataFeed(tickersArray[tickersArray.length - 1], callbackFunc); + startDataFeed(tickersArray[tickersArray.length - 1], callback); } } -async function addTicker(ticker, callbackFunc) { +async function addTicker(ticker: string, callback: (...args: any[]) => void) { //If browser has not been declared, launch it. if (browser == undefined) { browser = await puppeteer.launch(); @@ -27,11 +33,11 @@ async function addTicker(ticker, callbackFunc) { tickersArray.push({ symbol: ticker, price: 0 }); //Begin operations on the new ticker. - startDataFeed(tickersArray[tickersArray.length - 1], callbackFunc); + startDataFeed(tickersArray[tickersArray.length - 1], callback); } //Stop data for a specific ticker. -async function removeTicker(ticker) { +async function removeTicker(ticker: string) { for (var key in pagesArray) { if (key == ticker) { await pagesArray[key].close(); @@ -42,7 +48,7 @@ async function removeTicker(ticker) { } //Stop data for a list of tickers. -async function removeTickers(tickers) { +async function removeTickers(tickers: string[]) { for (var i = 0; i < tickers.length; i++) { removeTicker(tickers[i]); } @@ -56,7 +62,10 @@ async function removeAllTickers() { } } -async function startDataFeed(ticker, callbackFunc) { +async function startDataFeed( + ticker: { symbol: string; price: number }, + callback: (...args: any[]) => void +) { try { //Configure Puppeteer page. pagesArray[ticker.symbol] = await browser.newPage(); @@ -72,7 +81,7 @@ async function startDataFeed(ticker, callbackFunc) { //Evaluate the page. await pagesArray[ticker.symbol].evaluate(function () { var target; - const potentialSelectors = { + const potentialSelectors: { [key: string]: string } = { premarket: "#quote-header-info > div.Pos\\(r\\) > div.D\\(ib\\) > p > span", regmarket: "#quote-header-info > div.Pos\\(r\\) > div > p > span", @@ -109,10 +118,10 @@ async function startDataFeed(ticker, callbackFunc) { } //Take action on the observed price mutation. - function puppeteerMutationListener(data) { - if (ticker.price != data) { - ticker.price = data; - callbackFunc(ticker); + function puppeteerMutationListener(data: string | null) { + if (ticker.price != Number(data)) { + ticker.price = Number(data); + callback(ticker); } } } diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..8644103 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,72 @@ +{ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig.json to read more about this file */ + + /* Basic Options */ + // "incremental": true, /* Enable incremental compilation */ + "target": "es6" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */, + "module": "CommonJS" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */, + // "lib": [], /* Specify library files to be included in the compilation. */ + // "allowJs": true, /* Allow javascript files to be compiled. */ + // "checkJs": true, /* Report errors in .js files. */ + // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', 'react', 'react-jsx' or 'react-jsxdev'. */ + "declaration": true /* Generates corresponding '.d.ts' file. */, + "declarationMap": true /* Generates a sourcemap for each corresponding '.d.ts' file. */, + "sourceMap": true /* Generates corresponding '.map' file. */, + // "outFile": "./" /* Concatenate and emit output to single file. */, + "outDir": "lib" /* Redirect output structure to the directory. */, + // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ + // "composite": true, /* Enable project compilation */ + // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ + // "removeComments": true, /* Do not emit comments to output. */ + // "noEmit": true, /* Do not emit outputs. */ + // "importHelpers": true, /* Import emit helpers from 'tslib'. */ + // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ + // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ + + /* Strict Type-Checking Options */ + "strict": true /* Enable all strict type-checking options. */, + // "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* Enable strict null checks. */ + // "strictFunctionTypes": true, /* Enable strict checking of function types. */ + // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ + // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ + // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ + // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ + + /* Additional Checks */ + // "noUnusedLocals": true, /* Report errors on unused locals. */ + // "noUnusedParameters": true, /* Report errors on unused parameters. */ + // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ + // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ + // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ + // "noPropertyAccessFromIndexSignature": true, /* Require undeclared properties from index signatures to use element accesses. */ + + /* Module Resolution Options */ + // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ + // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ + // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ + // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ + // "typeRoots": [], /* List of folders to include type definitions from. */ + // "types": [], /* Type declaration files to be included in compilation. */ + // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ + "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, + // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + + /* Source Map Options */ + // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ + // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ + + /* Experimental Options */ + // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ + // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ + + /* Advanced Options */ + "skipLibCheck": true /* Skip type checking of declaration files. */, + "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ + }, + "include": ["src"] +} From aeeb8f7421f314034c58e8fbdb67eebb33d8b26c Mon Sep 17 00:00:00 2001 From: Greg <60011793+gregtuc@users.noreply.github.com> Date: Thu, 11 Mar 2021 14:07:03 -0500 Subject: [PATCH 2/4] Interfaces, floats, fully functioning type-script version #12 * Used interfaces for pages & ticker arrays, returning float types for prices rather than strings. * All methods passing and functioning properly. --- lib/StockSocket.js | 21 ++++++++++++++------ lib/StockSocket.js.map | 2 +- src/StockSocket.ts | 45 ++++++++++++++++++++++++++++-------------- 3 files changed, 46 insertions(+), 22 deletions(-) diff --git a/lib/StockSocket.js b/lib/StockSocket.js index dd3a201..3222a93 100644 --- a/lib/StockSocket.js +++ b/lib/StockSocket.js @@ -9,19 +9,24 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; Object.defineProperty(exports, "__esModule", { value: true }); -const puppeteer = require("puppeteer"); +//var pagesArray: { [key: string]: puppeteer.Page }; +//var tickersArray: { symbol: string; price: number }[]; +const puppeteer_1 = require("puppeteer"); var browser; var pagesArray; +pagesArray = {}; var tickersArray; +tickersArray = []; function addTickers(tickers, callback) { return __awaiter(this, void 0, void 0, function* () { //If browser has not been declared, launch it. if (browser == undefined) { - browser = yield puppeteer.launch(); + browser = yield puppeteer_1.launch(); } //Format the inputted tickers, add them to tickersArray, begin operations. for (var i = 0; i < tickers.length; i++) { - tickersArray.push({ symbol: tickers[i], price: 0 }); + var tickerObject = { symbol: tickers[i], price: 0 }; + tickersArray.push(tickerObject); startDataFeed(tickersArray[tickersArray.length - 1], callback); } }); @@ -30,7 +35,7 @@ function addTicker(ticker, callback) { return __awaiter(this, void 0, void 0, function* () { //If browser has not been declared, launch it. if (browser == undefined) { - browser = yield puppeteer.launch(); + browser = yield puppeteer_1.launch(); } //Push the new ticker to tickersArray. tickersArray.push({ symbol: ticker, price: 0 }); @@ -113,8 +118,12 @@ function startDataFeed(ticker, callback) { } //Take action on the observed price mutation. function puppeteerMutationListener(data) { - if (ticker.price != Number(data)) { - ticker.price = Number(data); + var parsedData = data; + parsedData = parsedData.replace(/\,/g, ""); + parsedData = parseFloat(parsedData); + if (ticker.price != parsedData) { + console.log(data); + ticker.price = parsedData; callback(ticker); } } diff --git a/lib/StockSocket.js.map b/lib/StockSocket.js.map index 2fb9346..fd5a229 100644 --- a/lib/StockSocket.js.map +++ b/lib/StockSocket.js.map @@ -1 +1 @@ -{"version":3,"file":"StockSocket.js","sourceRoot":"","sources":["../src/StockSocket.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"StockSocket.js","sourceRoot":"","sources":["../src/StockSocket.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;AAEb,oDAAoD;AACpD,wDAAwD;AAExD,yCAAkD;AAClD,IAAI,OAAgB,CAAC;AAMrB,IAAI,UAAuB,CAAC;AAC5B,UAAU,GAAG,EAAE,CAAC;AAOhB,IAAI,YAA6B,CAAC;AAClC,YAAY,GAAG,EAAE,CAAC;AAElB,SAAe,UAAU,CACvB,OAAsB,EACtB,QAAgC;;QAEhC,8CAA8C;QAC9C,IAAI,OAAO,IAAI,SAAS,EAAE;YACxB,OAAO,GAAG,MAAM,kBAAM,EAAE,CAAC;SAC1B;QACD,0EAA0E;QAC1E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,IAAI,YAAY,GAAkB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YACnE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAChC,aAAa,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;SAChE;IACH,CAAC;CAAA;AAED,SAAe,SAAS,CAAC,MAAc,EAAE,QAAgC;;QACvE,8CAA8C;QAC9C,IAAI,OAAO,IAAI,SAAS,EAAE;YACxB,OAAO,GAAG,MAAM,kBAAM,EAAE,CAAC;SAC1B;QAED,sCAAsC;QACtC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAEhD,qCAAqC;QACrC,aAAa,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACjE,CAAC;CAAA;AAED,kCAAkC;AAClC,SAAe,YAAY,CAAC,MAAc;;QACxC,KAAK,IAAI,GAAG,IAAI,UAAU,EAAE;YAC1B,IAAI,GAAG,IAAI,MAAM,EAAE;gBACjB,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;gBAC9B,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;gBACvB,MAAM;aACP;SACF;IACH,CAAC;CAAA;AAED,kCAAkC;AAClC,SAAe,aAAa,CAAC,OAAsB;;QACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;SAC1B;IACH,CAAC;CAAA;AAED,4BAA4B;AAC5B,SAAe,gBAAgB;;QAC7B,KAAK,IAAI,GAAG,IAAI,UAAU,EAAE;YAC1B,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;YAC9B,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;SACxB;IACH,CAAC;CAAA;AAED,SAAe,aAAa,CAC1B,MAAyC,EACzC,QAAgC;;QAEhC,IAAI;YACF,2BAA2B;YAC3B,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YACpD,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAClC,sCAAsC,MAAM,CAAC,MAAM,MAAM,MAAM,CAAC,MAAM,EAAE,CACzE,CAAC;YACF,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAC5C,2BAA2B,EAC3B,yBAAyB,CAC1B,CAAC;YAEF,oBAAoB;YACpB,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;gBACvC,IAAI,MAAM,CAAC;gBACX,MAAM,kBAAkB,GAA8B;oBACpD,SAAS,EACP,gEAAgE;oBAClE,SAAS,EAAE,sDAAsD;oBACjE,UAAU,EAAE,wDAAwD;oBACpE,MAAM,EAAE,uDAAuD;iBAChE,CAAC;gBAEF,8BAA8B;gBAC9B,KAAK,IAAI,GAAG,IAAI,kBAAkB,EAAE;oBAClC,IAAI,QAAQ,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE;wBACnD,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;wBACzD,MAAM;qBACP;iBACF;gBAED,IAAI,MAAM,IAAI,SAAS,EAAE;oBACvB,kCAAkC;oBAClC,IAAI,QAAQ,GAAG,IAAI,gBAAgB,CAAC,CAAC,aAAa,EAAE,EAAE;wBACpD,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE;4BACpC,yBAAyB,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;yBACxD;oBACH,CAAC,CAAC,CAAC;oBACH,6BAA6B;oBAC7B,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE;wBACvB,UAAU,EAAE,IAAI;wBAChB,SAAS,EAAE,IAAI;wBACf,aAAa,EAAE,IAAI;wBACnB,OAAO,EAAE,IAAI;qBACd,CAAC,CAAC;iBACJ;YACH,CAAC,CAAC,CAAC;SACJ;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAClB;QAED,6CAA6C;QAC7C,SAAS,yBAAyB,CAAC,IAAmB;YACpD,IAAI,UAAU,GAAQ,IAAI,CAAC;YAC3B,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC3C,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;YAEpC,IAAI,MAAM,CAAC,KAAK,IAAI,UAAU,EAAE;gBAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClB,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC;gBAC1B,QAAQ,CAAC,MAAM,CAAC,CAAC;aAClB;QACH,CAAC;IACH,CAAC;CAAA;AAED,MAAM,CAAC,OAAO,GAAG;IACf,UAAU;IACV,SAAS;IACT,YAAY;IACZ,aAAa;IACb,gBAAgB;CACjB,CAAC"} \ No newline at end of file diff --git a/src/StockSocket.ts b/src/StockSocket.ts index 2c136e3..1d7f0e4 100644 --- a/src/StockSocket.ts +++ b/src/StockSocket.ts @@ -1,32 +1,43 @@ "use strict"; -import { Browser, Page } from "puppeteer"; +import { Browser, Page, launch } from "puppeteer"; +var browser: Browser; -const puppeteer = require("puppeteer"); +//Pages Array +interface IPagesArray { + [key: string]: Page; +} +var pagesArray: IPagesArray; +pagesArray = {}; -var browser: Browser; -var pagesArray: { [key: string]: Page }; -var tickersArray: { symbol: string; price: number }[]; +//Tickers Array +interface ITickersArray { + symbol: string; + price: number; +} +var tickersArray: ITickersArray[]; +tickersArray = []; async function addTickers( - tickers: string[], - callback: (...args: any[]) => void + tickers: Array, + callback: (arg0: object) => void ) { //If browser has not been declared, launch it. if (browser == undefined) { - browser = await puppeteer.launch(); + browser = await launch(); } //Format the inputted tickers, add them to tickersArray, begin operations. for (var i = 0; i < tickers.length; i++) { - tickersArray.push({ symbol: tickers[i], price: 0 }); + var tickerObject: ITickersArray = { symbol: tickers[i], price: 0 }; + tickersArray.push(tickerObject); startDataFeed(tickersArray[tickersArray.length - 1], callback); } } -async function addTicker(ticker: string, callback: (...args: any[]) => void) { +async function addTicker(ticker: string, callback: (arg0: object) => void) { //If browser has not been declared, launch it. if (browser == undefined) { - browser = await puppeteer.launch(); + browser = await launch(); } //Push the new ticker to tickersArray. @@ -48,7 +59,7 @@ async function removeTicker(ticker: string) { } //Stop data for a list of tickers. -async function removeTickers(tickers: string[]) { +async function removeTickers(tickers: Array) { for (var i = 0; i < tickers.length; i++) { removeTicker(tickers[i]); } @@ -64,7 +75,7 @@ async function removeAllTickers() { async function startDataFeed( ticker: { symbol: string; price: number }, - callback: (...args: any[]) => void + callback: (arg0: object) => void ) { try { //Configure Puppeteer page. @@ -119,8 +130,12 @@ async function startDataFeed( //Take action on the observed price mutation. function puppeteerMutationListener(data: string | null) { - if (ticker.price != Number(data)) { - ticker.price = Number(data); + var parsedData: any = data; + parsedData = parsedData.replace(/\,/g, ""); + parsedData = parseFloat(parsedData); + + if (ticker.price != parsedData) { + ticker.price = parsedData; callback(ticker); } } From 4ff6e605defede53ed92cd3bb323df99f5d71ad3 Mon Sep 17 00:00:00 2001 From: Greg <60011793+gregtuc@users.noreply.github.com> Date: Thu, 11 Mar 2021 14:12:31 -0500 Subject: [PATCH 3/4] Cleaning code #12 --- lib/StockSocket.js | 3 --- lib/StockSocket.js.map | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/lib/StockSocket.js b/lib/StockSocket.js index 3222a93..5c5415c 100644 --- a/lib/StockSocket.js +++ b/lib/StockSocket.js @@ -9,8 +9,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; Object.defineProperty(exports, "__esModule", { value: true }); -//var pagesArray: { [key: string]: puppeteer.Page }; -//var tickersArray: { symbol: string; price: number }[]; const puppeteer_1 = require("puppeteer"); var browser; var pagesArray; @@ -122,7 +120,6 @@ function startDataFeed(ticker, callback) { parsedData = parsedData.replace(/\,/g, ""); parsedData = parseFloat(parsedData); if (ticker.price != parsedData) { - console.log(data); ticker.price = parsedData; callback(ticker); } diff --git a/lib/StockSocket.js.map b/lib/StockSocket.js.map index fd5a229..022b5e7 100644 --- a/lib/StockSocket.js.map +++ b/lib/StockSocket.js.map @@ -1 +1 @@ -{"version":3,"file":"StockSocket.js","sourceRoot":"","sources":["../src/StockSocket.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"StockSocket.js","sourceRoot":"","sources":["../src/StockSocket.ts"],"names":[],"mappings":"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"} \ No newline at end of file From 8d296bd023aef2b24e8e9237173badd85ec2e4bd Mon Sep 17 00:00:00 2001 From: Greg <60011793+gregtuc@users.noreply.github.com> Date: Thu, 11 Mar 2021 21:46:31 -0500 Subject: [PATCH 4/4] Updating TS for latest main updates #12 --- lib/StockSocket.js | 20 ++++++++++++++++++-- lib/StockSocket.js.map | 2 +- package-lock.json | 2 +- package.json | 2 +- src/StockSocket.ts | 10 +++++----- 5 files changed, 26 insertions(+), 10 deletions(-) diff --git a/lib/StockSocket.js b/lib/StockSocket.js index 5c5415c..b05463f 100644 --- a/lib/StockSocket.js +++ b/lib/StockSocket.js @@ -76,9 +76,25 @@ function startDataFeed(ticker, callback) { //Configure Puppeteer page. pagesArray[ticker.symbol] = yield browser.newPage(); yield pagesArray[ticker.symbol].setBypassCSP(true); - yield pagesArray[ticker.symbol].goto(`https://ca.finance.yahoo.com/quote/${ticker.symbol}?p=${ticker.symbol}`); + yield pagesArray[ticker.symbol].setDefaultNavigationTimeout(0); + yield pagesArray[ticker.symbol].goto(`https://finance.yahoo.com/quote/${ticker.symbol}?p=${ticker.symbol}`); yield pagesArray[ticker.symbol].exposeFunction("puppeteerMutationListener", puppeteerMutationListener); - //Evaluate the page. + //Eliminate consent page if outside of North America + yield pagesArray[ticker.symbol].evaluate(function () { + try { + if (document.querySelector("#consent-page > div > div > div > form > div.wizard-body > div.actions.couple > button")) { + var element = document.querySelector("#consent-page > div > div > div > form > div.wizard-body > div.actions.couple > button"); + element.click(); + return; + } + } + catch (e) { + console.log(e); + } + }); + //Wait for proper page to load. + yield pagesArray[ticker.symbol].waitForSelector("#quote-header-info"); + //Evaluate the actual page. yield pagesArray[ticker.symbol].evaluate(function () { var target; const potentialSelectors = { diff --git a/lib/StockSocket.js.map b/lib/StockSocket.js.map index 022b5e7..4e1344e 100644 --- a/lib/StockSocket.js.map +++ b/lib/StockSocket.js.map @@ -1 +1 @@ -{"version":3,"file":"StockSocket.js","sourceRoot":"","sources":["../src/StockSocket.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"StockSocket.js","sourceRoot":"","sources":["../src/StockSocket.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 00b276c..f348347 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "stocksocket", - "version": "1.1.2", + "version": "1.2.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 01eff97..7fab6be 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "stocksocket", - "version": "1.2.0", + "version": "1.2.1", "description": "Real-time Yahoo Stock Prices", "main": "lib/stocksocket.js", "types": "lib", diff --git a/src/StockSocket.ts b/src/StockSocket.ts index cc4980c..a3feec1 100644 --- a/src/StockSocket.ts +++ b/src/StockSocket.ts @@ -98,11 +98,11 @@ async function startDataFeed( "#consent-page > div > div > div > form > div.wizard-body > div.actions.couple > button" ) ) { - document - .querySelector( - "#consent-page > div > div > div > form > div.wizard-body > div.actions.couple > button" - ) - .click(); + var element = document.querySelector( + "#consent-page > div > div > div > form > div.wizard-body > div.actions.couple > button" + ) as HTMLElement; + element.click(); + return; } } catch (e) {