From ed5dc9a53cfd98bfb92fde998fc11114e2fe5d21 Mon Sep 17 00:00:00 2001 From: Simon Lecoq <22963968+lowlighter@users.noreply.github.com> Date: Sun, 21 Mar 2021 17:52:05 +0100 Subject: [PATCH] Feat plugin stock (#196) --- .github/readme/imgs/plugin_stock_token.png | Bin 0 -> 116345 bytes source/app/metrics/utils.mjs | 10 +-- source/app/mocks/api/axios/get/yahoo.mjs | 75 ++++++++++++++++++++ source/app/web/statics/app.placeholder.js | 16 ++++- source/plugins/stock/README.md | 34 +++++++++ source/plugins/stock/index.mjs | 60 ++++++++++++++++ source/plugins/stock/metadata.yml | 58 +++++++++++++++ source/plugins/stock/tests.yml | 17 +++++ source/templates/classic/partials/_.json | 1 + source/templates/classic/partials/stock.ejs | 48 +++++++++++++ source/templates/classic/style.css | 16 +++++ 11 files changed, 330 insertions(+), 5 deletions(-) create mode 100644 .github/readme/imgs/plugin_stock_token.png create mode 100644 source/app/mocks/api/axios/get/yahoo.mjs create mode 100644 source/plugins/stock/README.md create mode 100644 source/plugins/stock/index.mjs create mode 100644 source/plugins/stock/metadata.yml create mode 100644 source/plugins/stock/tests.yml create mode 100644 source/templates/classic/partials/stock.ejs diff --git a/.github/readme/imgs/plugin_stock_token.png b/.github/readme/imgs/plugin_stock_token.png new file mode 100644 index 0000000000000000000000000000000000000000..2cba722cc7f8f64389734c3fbdcf11d9c643cc50 GIT binary patch literal 116345 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 KQ2yf8`~L;DHt)y) literal 0 HcmV?d00001 diff --git a/source/app/metrics/utils.mjs b/source/app/metrics/utils.mjs index 438fec20..ab5a64d5 100644 --- a/source/app/metrics/utils.mjs +++ b/source/app/metrics/utils.mjs @@ -28,10 +28,12 @@ } /**Formatter */ - export function format(n, {sign = false} = {}) { - for (const {u, v} of [{u:"b", v:10**9}, {u:"m", v:10**6}, {u:"k", v:10**3}]) { - if (n/v >= 1) - return `${(sign)&&(n > 0) ? "+" : ""}${(n/v).toFixed(2).substr(0, 4).replace(/[.]0*$/, "")}${u}` + export function format(n, {sign = false, unit = true} = {}) { + if (unit) { + for (const {u, v} of [{u:"b", v:10**9}, {u:"m", v:10**6}, {u:"k", v:10**3}]) { + if (n/v >= 1) + return `${(sign)&&(n > 0) ? "+" : ""}${(n/v).toFixed(2).substr(0, 4).replace(/[.]0*$/, "")}${u}` + } } return `${(sign)&&(n > 0) ? "+" : ""}${n}` } diff --git a/source/app/mocks/api/axios/get/yahoo.mjs b/source/app/mocks/api/axios/get/yahoo.mjs new file mode 100644 index 00000000..ac2e68e8 --- /dev/null +++ b/source/app/mocks/api/axios/get/yahoo.mjs @@ -0,0 +1,75 @@ +/**Mocked data */ + export default function({faker, url, options, login = faker.internet.userName()}) { + //Wakatime api + if (/^https:..apidojo-yahoo-finance-v1.p.rapidapi.com.stock.v2.*$/.test(url)) { + //Get company profile + if (/get-profile/.test(url)) { + console.debug(`metrics/compute/mocks > mocking yahoo finance api result > ${url}`) + return ({ + status:200, + data:{ + price:{ + marketCap:{ + raw:faker.random.number(1000000000), + }, + symbol:"OCTO", + }, + quoteType:{ + shortName:faker.company.companyName(), + longName:faker.company.companyName(), + exchangeTimezoneName:faker.address.timeZone(), + symbol:"OCTO", + }, + calendarEvents:{}, + summaryDetail:{}, + symbol:"OCTO", + assetProfile:{ + fullTimeEmployees:faker.random.number(10000), + city:faker.address.city(), + country:faker.address.country(), + }, + }, + }) + } + //Get stock chart + if (/get-chart/.test(url)) { + console.debug(`metrics/compute/mocks > mocking yahoo finance api result > ${url}`) + return ({ + status:200, + data:{ + chart:{ + result:[ + { + meta:{ + currency:"USD", + symbol:"OCTO", + regularMarketPrice:faker.random.number(10000)/100, + chartPreviousClose:faker.random.number(10000)/100, + previousClose:faker.random.number(10000)/100, + }, + timestamp:new Array(1000).fill(Date.now()).map((x, i) => x+i*60000), + indicators:{ + quote:[ + { + close:new Array(1000).fill(null).map(_ => faker.random.number(10000)/100), + get low() { + return this.close + }, + get high() { + return this.close + }, + get open() { + return this.close + }, + volume:[], + }, + ], + }, + }, + ], + }, + }, + }) + } + } + } \ No newline at end of file diff --git a/source/app/web/statics/app.placeholder.js b/source/app/web/statics/app.placeholder.js index 9e3eae4c..c4bdfc22 100644 --- a/source/app/web/statics/app.placeholder.js +++ b/source/app/web/statics/app.placeholder.js @@ -230,7 +230,7 @@ favorites:distribution(7).map((value, index, array) => ({name:faker.lorem.word(), color:faker.internet.color(), value, size:faker.random.number(1000000), x:array.slice(0, index).reduce((a, b) => a + b, 0)})) } }) : null), - //Languages + //RSS ...(set.plugins.enabled.rss ? ({ rss:{ source:faker.lorem.words(), @@ -242,6 +242,20 @@ })), } }) : null), + //Stock price + ...(set.plugins.enabled.stock ? ({ + stock:{ + chart:"(stock chart is not displayed in placeholder)", + currency:"USD", + price:faker.random.number(10000)/100, + previous:faker.random.number(10000)/100, + get delta() { return this.price-this.previous }, + symbol:options["stock.symbol"], + company:faker.company.companyName(), + interval:options["stock.interval"], + duration:options["stock.duration"], + } + }) : null), //Habits ...(set.plugins.enabled.habits ? ({ habits:{ diff --git a/source/plugins/stock/README.md b/source/plugins/stock/README.md new file mode 100644 index 00000000..532f3662 --- /dev/null +++ b/source/plugins/stock/README.md @@ -0,0 +1,34 @@ +### 💹 Stock prices + +The *stock* plugin lets you display the stock market price of a given company. + + + +
+ + +
+ +
+💬 Obtaining a RapidAPI Yahoo Finance token + +Create a [RapidAPI account](https://rapidapi.com) and subscribe to [Yahoo Finance API](https://rapidapi.com/apidojo/api/yahoo-finance1) to get a token. + +![RapidAPI token](/.github/readme/imgs/plugin_stock_token.png) + +
+ +#### ℹ️ Examples workflows + +[➡️ Available options for this plugin](metadata.yml) + +```yaml +- uses: lowlighter/metrics@latest + with: + # ... other options + plugin_stock: yes + plugin_stock_token: ${{ secrets.STOCK_TOKEN }} # RapidAPI Yahoo Finance token + plugin_stock_symbol: TSLA # Display Tesla stock price + plugin_stock_duration: 1d # Display last day of market + plugin_stock_interval: 5m # Use precision of 5 minutes for each record +``` \ No newline at end of file diff --git a/source/plugins/stock/index.mjs b/source/plugins/stock/index.mjs new file mode 100644 index 00000000..e2b036d2 --- /dev/null +++ b/source/plugins/stock/index.mjs @@ -0,0 +1,60 @@ +//Setup + export default async function({login, q, imports, data, account}, {enabled = false, token} = {}) { + //Plugin execution + try { + //Check if plugin is enabled and requirements are met + if ((!enabled)||(!q.stock)) + return null + + //Load inputs + let {symbol, interval, duration} = imports.metadata.plugins.stock.inputs({data, account, q}) + if (!token) + throw {error:{message:"A token is required"}} + if (!symbol) + throw {error:{message:"A company stock symbol is required"}} + symbol = symbol.toLocaleUpperCase() + + //Query API for company informations + console.debug(`metrics/compute/${login}/plugins > stock > querying api for company`) + const {data:{quoteType:{shortName:company}}} = await imports.axios.get("https://apidojo-yahoo-finance-v1.p.rapidapi.com/stock/v2/get-profile", { + params:{symbol, region:"US"}, + headers:{"x-rapidapi-key":token}, + }) + + //Query API for sotck charts + console.debug(`metrics/compute/${login}/plugins > stock > querying api for stock`) + const {data:{chart:{result:[{meta, timestamp, indicators:{quote:[{close}]}}]}}} = await imports.axios.get("https://apidojo-yahoo-finance-v1.p.rapidapi.com/stock/v2/get-chart", { + params:{interval, symbol, range:duration, region:"US"}, + headers:{"x-rapidapi-key":token}, + }) + const {currency, regularMarketPrice:price, previousClose:previous} = meta + + //Generating chart + console.debug(`metrics/compute/${login}/plugins > stock > generating chart`) + const chart = await imports.chartist("line", { + width:480, + height:160, + showPoint:false, + axisX:{showGrid:false, labelInterpolationFnc:(value, index) => index%Math.floor(close.length/4) === 0 ? value : null}, + axisY:{scaleMinSpace:20}, + showArea:true, + }, { + labels:timestamp.map(timestamp => new Intl.DateTimeFormat("en-GB", {month:"2-digit", day:"2-digit", hour:"2-digit", minute:"2-digit"}).format(new Date(timestamp*1000))), + series:[close], + }) + + //Results + return {chart, currency, price, previous, delta:price-previous, symbol, company, interval, duration} + } + //Handle errors + catch (error) { + let message = "An error occured" + if (error.isAxiosError) { + const status = error.response?.status + const description = error.response?.data?.message ?? null + message = `API returned ${status}${description ? ` (${description})` : ""}` + error = error.response?.data ?? null + } + throw {error:{message, instance:error}} + } + } \ No newline at end of file diff --git a/source/plugins/stock/metadata.yml b/source/plugins/stock/metadata.yml new file mode 100644 index 00000000..0b544e4d --- /dev/null +++ b/source/plugins/stock/metadata.yml @@ -0,0 +1,58 @@ +name: "💹 Stock prices" +cost: N/A +categorie: other +index: 1 +supports: + - user + - organization +inputs: + + # Enable or disable plugin + plugin_stock: + description: Display stock prices of a given company + type: boolean + default: no + + # RapidAPI Yahoo finance token + # Case insensitive + plugin_stock_token: + description: Yahoo Finance token + type: token + default: "" + + # Company stock symbol (required) + plugin_stock_symbol: + description: Company stock symbol + type: string + default: "" + + # Time range to display (relative to current date) + plugin_stock_duration: + description: Time range to display + type: string + default: 1d + values: + - 1d # Today + - 5d # 5 days + - 1mo # 1 month + - 3mo # 3 months + - 6mo # 6 months + - 1y # 1 year + - 2y # 2 years + - 5y # 5 years + - 10y # 10 years + - ytd # Year to date + - max # All time + + # Time invervals between each records over the given time range + plugin_stock_interval: + description: Time intervals between records + type: string + default: 5m + values: + - 1m # 1 minute + - 2m # 2 minutes + - 5m # 5 minutes + - 15m # 15 minutes + - 60m # 60 minutes + - 1d # 1 day diff --git a/source/plugins/stock/tests.yml b/source/plugins/stock/tests.yml new file mode 100644 index 00000000..c4cf3fe7 --- /dev/null +++ b/source/plugins/stock/tests.yml @@ -0,0 +1,17 @@ +- name: Stock plugin (default) + uses: lowlighter/metrics@latest + with: + token: NOT_NEEDED + plugin_stock: yes + plugin_stock_token: MOCKED_TOKEN + plugin_stock_symbol: OCTO + +- name: Stock plugin (complete) + uses: lowlighter/metrics@latest + with: + token: NOT_NEEDED + plugin_stock: yes + plugin_stock_token: MOCKED_TOKEN + plugin_stock_symbol: OCTO + plugin_stock_duration: 5d + plugin_stock_interval: 5m \ No newline at end of file diff --git a/source/templates/classic/partials/_.json b/source/templates/classic/partials/_.json index 18c62c73..3fa4541d 100644 --- a/source/templates/classic/partials/_.json +++ b/source/templates/classic/partials/_.json @@ -25,5 +25,6 @@ "wakatime", "skyline", "stackoverflow", + "stock", "achievements" ] \ No newline at end of file diff --git a/source/templates/classic/partials/stock.ejs b/source/templates/classic/partials/stock.ejs new file mode 100644 index 00000000..f25287c3 --- /dev/null +++ b/source/templates/classic/partials/stock.ejs @@ -0,0 +1,48 @@ +<% if (plugins.stock) { %> +
+

+ + Stock prices <%= plugins.stock.symbol ? `for ${plugins.stock.symbol}` : "" %> +

+ <% if (plugins.stock.error) { %> +
+
+
+ + <%= plugins.stock.error.message %> +
+
+
+ <% } else { %> +
+
+
+ + <%= plugins.stock.company %> +
+
+ + Valued at <%= plugins.stock.price.toFixed(2) %> <%= plugins.stock.currency %> +
+
+
+
+ + <%= {"1d":"Today", "5d":"Last five days", "1mo":"Last month", "3mo":"Last trimester", "6mo":"Last semester", "1y":"Last year", "2y":"Last two years", "5y":"Last five years", "10y":"Last ten years", ytd:"Year to date", max:"All-time"}[plugins.stock.duration] %> +
+
+ <% if (plugins.stock.delta > 0) { %> + + <% } else { %> + + <% } %> + <%= f(plugins.stock.delta.toFixed(2), {sign:true}) %> (<%= f((100*plugins.stock.delta/plugins.stock.price).toFixed(2), {sign:true}) %>%) +
+
+
+
+ <%- plugins.stock.chart %> +
+ <% } %> +
+<% } %> \ No newline at end of file diff --git a/source/templates/classic/style.css b/source/templates/classic/style.css index e3ebbc1d..8ae3584b 100644 --- a/source/templates/classic/style.css +++ b/source/templates/classic/style.css @@ -916,6 +916,22 @@ color: #666666; } +/* Charts */ + .ct-line { + stroke-width: 2px !important; + stroke: #58A6FF !important; + } + .ct-area { + fill: #58A6FF !important; + } + .ct-label { + fill: rgba(127, 127, 127, 0.8) !important; + color: rgba(127, 127, 127, 0.8) !important; + } + .ct-grid { + stroke: rgba(127, 127, 127, 0.4) !important; + } + /* Fade animation */ .af { opacity: 0;