From bd157f1a0d700b24bccf0ec7df252b6890d77b20 Mon Sep 17 00:00:00 2001 From: Alec Lomas Date: Wed, 10 Jan 2018 23:32:29 -0700 Subject: [PATCH] :lipstick: add a frontend lol no one will ever see this --- .eslintrc | 3 +- index.html | 118 +++++++++++++++++++++++++++++++++++++++ public/favicon-16x16.png | Bin 0 -> 770 bytes public/favicon-32x32.png | Bin 0 -> 896 bytes public/favicon.ico | Bin 0 -> 15086 bytes public/main.js | 66 ++++++++++++++++++++++ public/robots.txt | 2 + src/server.js | 7 +++ 8 files changed, 195 insertions(+), 1 deletion(-) create mode 100644 index.html create mode 100644 public/favicon-16x16.png create mode 100644 public/favicon-32x32.png create mode 100644 public/favicon.ico create mode 100644 public/main.js create mode 100644 public/robots.txt diff --git a/.eslintrc b/.eslintrc index d95e467..8c91838 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,7 +1,8 @@ { "extends": "lowmess", "env": { - "node": true + "node": true, + "browser": true }, "parser": "babel-eslint", "parserOptions": { diff --git a/index.html b/index.html new file mode 100644 index 0000000..ccd8c85 --- /dev/null +++ b/index.html @@ -0,0 +1,118 @@ + + + + + + + + lowmess Stats + + + + + + + +
+ +

30 Day Stats

+
+
+
+ +
+
+ GitHub Commits +
+
+ — +
+
+ +
+
+ Places Visited +
+
+ — +
+
+ +
+
+ Steps Taken +
+
+ — +
+
+ +
+
+ Hours Slept +
+
+ — +
+
+ +
+
+ Songs Played +
+
+ — +
+
+ +
+
+ Top Album +
+
+ — +
+
+ +
+
+ Currently Reading +
+
+ — +
+
+
+ + + + + diff --git a/public/favicon-16x16.png b/public/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..a4ad3eac4b08353b21e000b07f145782a39efefa GIT binary patch literal 770 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4rT@h1`S>QUNSs54@ z6p}rHd>I(3)EF2VS{N99F)%PRykKA`HDF+PmB7GYHG_dcykO3*KpO@IhGPLfA+8Jz z44)?R4r%oN|NqFTfoB;Q7#vH2{DK)6*mO-z47rSCr7nE={8;~aoAmt$6VH9^d$@&Z zuDl}4r)Nhb6c(;t`{G{LZ%@Xpv6p8}pZQ4g;tFQI-j5&7vT7>FD9tWoU|?WO@^*J| z?7Wxb$H2hAUgGKN%Km_hi&>ggrTxTe1_p*sPZ!4!iOb0e3LFwMXGBIs-n?I2c(AU0qdEcQCB( zS~Y7|+cJR=2k+?i!0_pw{z6&{R8f};Gi z%$!t(lFEWqh0KDIWCn(cIgdZ_a1@4VXq@stea7=?5CgL^w_Y;0u(GiCWD#az1(ybs y!zs+ln?n>%-?(z($eANDN7zp{cr5VJV|XPlSn|oqbSeV_1B0ilpUXO@geCxHf+czY literal 0 HcmV?d00001 diff --git a/public/favicon-32x32.png b/public/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..57ab4d9858ecc67689c0c184e5d824a6dec7a39e GIT binary patch literal 896 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4rT@h2A3sW#~2tGSkfJR9T^xl_H+M9WCckk zdj$D1FjT2AFf_CPx!_4c>C85kIRN`m}?85lU6{r!9;J^3ZB{r&wT@Xu?*n?di5zJK`qZ*t71 z@{fwjDss%Po;*J+mXem5yf$2?i&6B#n+8`0+nM#>eu;0q^s~7AHk*Y!ldQFq^b}5W z1_lPkByV>Y--Zl@R0akH_7YEDSM~>7T+Gs}D(xp$GcYjR@N{tuu{eG8Vq|brf<#;5 zJO_K#B=PB82hL0lD$exxJb3E;|NrwmCP=m|nA!Knu8MzMbNaK?8UF?QBGzr_))s0I z*%>6sc|e|9J#i6>$D%bWJRMA=R9`pfUGAF5b~S44y%WsKR~44cWA|}b`-iEgnMs`W z^tQLpQn@7^c4V=a?%Jy(uyo>n#?|%(GS7cKb64Q`{yA~kL63zcHQhM|GlQ&V-@p65 zs=|lahV`)2qv9LhTm}`f7hDV}w-sn=*QFfgc=xJHzuB$lLFB^RY8mZUNm85o-B8XD*t8iW`aTN#;K8JKDt z7+Dz@h%(&~K+%w!pOTqYiCaTTe99UI28Qsekcg6?#Bzm#qWrYXoK%I9%7Rpd%z~0+ z28N0`k3aEn6ozSNobo??#`9?q1G6%>UNX0^vat7L5oTcpmj;u=Da^{7LljQmxN_pi lnIkes*iScjEb!7}cqJ}a^2y0`Dgy%pgQu&X%Q~loCIFA+XvzQp literal 0 HcmV?d00001 diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..5d0dd519f80ffcdfff4ae32836c803e1a62e7fe3 GIT binary patch literal 15086 zcmZQzU}RusFfaho3Jfb$85qnM7#I{3pnL%ahI^_E3<3fWeg+EzLz@``g9ZZwg8>5r zLjnUtoB;$>K*T5>4S~@R7!85Z5Eu;s>>T`I89m0lRw$R)S%P6lRxS4PX4qH>Rym~YGROEXy$(2$)A*YCx1GD=HDUVe%{HSSa~OZ znn6RigTjGk;my-U-p@Pv(|Iguke2Q*!r}Jiypul} z@=pH5&pY`O7m=8ack(AU-pQXpc?}fqFicDL&%)w zpFrUZ3nv)eON?8wsTlzGufP)iCD`0Xj2Nhnp>z0SbAJ)KTX`pc66T%!Ns9nh=bij1 zj(75>?`UB{lk^WwKg7B}gLm?$H_);QR4!q|FL@__dJnDdVQCRW4+i&RE2ltiBL-3TlRs(jPX44u04wlL z{=|&Sz3Ad}bU&!KVhrCu;t&;@W+zaM$^w|`oWSch!z^g>BkWi2%x$I zia~w%m1u2UPDThQ1(gT{hMF~CL$)60+%**4Q{K*|O-j1Sh zlrtIvqaiRF0;3@?8UjRwz<)4cU;tD9$*2Fw|6pLSXJGgv{{TuKfYJ?UbmRXYV0FxB zG&__JryoGfV<$-e{|~a4{Q*^I2BzYb1O_Ms zcqe}X&68U2PX6Q!#q!vk0v#Wg<(>S=ns@RiCn7P(Opw`Z*vtfp@lO6E!8`fWCEm%O zenN3ENE{jSPW~jxJNZ*P@8nOnp=&=tW97tPkeMK}C6LWSW<$-siPY~dN0SGwBiV=~ zPi(&hrVeDbB(j;vY$EKhN3$C=m;Zxz@~3Zj@Gm4iWZTa>`I9K`o!mxf#o51{X;_h(<=NyYpy_MgWQHM{ejd_ zEB+@#*Ls1fq{W#aE2IkO|~YqZNmt1CA7~9 zYUAkhPX2_BL26k+>OdG;PF&=j{0X$agqe5pCqCZEpL(I|tUz@OsO<#9pfVq{UKie9 zkW@wxB)?sEqZ5%7gY;fH0^Z4q8J6vJ1Xm7>oWs=$cd$-pQXpYpE9UPX4qS+U9@3 zJNeT+kRFiPAPi!o*$>kXs$W4E6b7I*(y(=BM?igYkX{fbLO)3FT;9o_ { + document.querySelector(`[data-stat=${selector}]`).innerHTML = value +} + +const query = ` + query LocalQuery { + commits + places + steps + sleep + songs + album { + name + artist + } + book { + name + author + } + }` + +fetch('/graphql', { + method: 'POST', + body: JSON.stringify({ query }), + headers: { + 'Content-Type': 'application/json', + }, +}) + .then(res => res.json()) + .then(json => { + if (json.data) { + // Commits + if (json.data.commits) stat('commits', json.data.commits.toLocaleString()) + // Places + if (json.data.places) stat('places', json.data.places.toLocaleString()) + // Steps + if (json.data.steps) stat('steps', json.data.steps.toLocaleString()) + // Sleep + if (json.data.sleep) { + stat('sleep', parseFloat(json.data.sleep.toFixed(2).toLocaleString())) + } + // Songs + if (json.data.songs) stat('songs', json.data.songs.toLocaleString()) + // Album + if (json.data.album) { + if (json.data.album.name && json.data.album.artist) { + stat( + 'album', + `${json.data.album.name}, ${json.data.album.artist}` + ) + } + } + // Book + if (json.data.book) { + if (json.data.book.name && json.data.book.author) { + stat( + 'book', + `${json.data.book.name}, ${json.data.book.author}` + ) + } + } + } + }) + .catch(err => { + console.error(err) + }) diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..c6742d8 --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,2 @@ +User-Agent: * +Disallow: / diff --git a/src/server.js b/src/server.js index 45a94ae..18747a1 100755 --- a/src/server.js +++ b/src/server.js @@ -1,3 +1,4 @@ +import path from 'path' import express from 'express' import cors from 'cors' import compression from 'compression' @@ -134,6 +135,12 @@ server.use( }) ) +// Serve static content and homepage +server.use(express.static('public')) +server.get('*', (req, res) => { + res.sendFile(path.join(__dirname, '../', '/index.html')) +}) + // Start server server.listen(PORT, () => { console.log( -- 2.51.2