From 928c1c9903b46ac2c892d82c7dd004006bca0c6d Mon Sep 17 00:00:00 2001 From: slynn1324 Date: Sat, 23 Jan 2021 11:49:13 -0600 Subject: [PATCH] almost done --- args.js | 26 ++ chrome-extension/background.js | 16 +- chrome-extension/icon128.png | Bin 0 -> 1307 bytes chrome-extension/icon16.png | Bin 0 -> 224 bytes chrome-extension/icon32.png | Bin 0 -> 329 bytes chrome-extension/icon48.png | Bin 0 -> 536 bytes chrome-extension/manifest.json | 12 +- package-lock.json | 418 ++++++++++++++++++++++++++++++++- package.json | 3 +- server.js | 87 +++++-- static/addpin-app.js | 0 static/addpin.html | 351 +++++++++++++++++++++++++++ tinypin-icon.psd | Bin 0 -> 260428 bytes 13 files changed, 885 insertions(+), 28 deletions(-) create mode 100644 args.js create mode 100644 chrome-extension/icon128.png create mode 100644 chrome-extension/icon16.png create mode 100644 chrome-extension/icon32.png create mode 100644 chrome-extension/icon48.png create mode 100644 static/addpin-app.js create mode 100644 static/addpin.html create mode 100644 tinypin-icon.psd diff --git a/args.js b/args.js new file mode 100644 index 0000000..4de28f7 --- /dev/null +++ b/args.js @@ -0,0 +1,26 @@ +const yargs = require('yargs'); + +const argv = yargs + .option('slow', { + alias: 's', + description: 'delay each request this many milliseconds for testing', + type: 'number' + }) + .option('image-path', { + alias: 'i', + description: 'base path to store images', + type: 'string', + default: './images' + }) + .option('port', { + alias: 'p', + description: 'http server port', + type: 'number', + default: 3000 + }) + .help().alias('help', 'h') + .argv; + + + +console.log(argv); \ No newline at end of file diff --git a/chrome-extension/background.js b/chrome-extension/background.js index 19da9f5..f730fc5 100644 --- a/chrome-extension/background.js +++ b/chrome-extension/background.js @@ -4,14 +4,24 @@ function getClickHandler() { return function(info, tab) { + if ( !info.srcUrl.startsWith('http') ){ + window.alert("Image source is not a URL."); + return; + } + + var w = 700; + var h = 800; + var left = (screen.width/2)-(w/2); + var top = (screen.height/2)-(h/2); + var q = "i=" + encodeURIComponent(info.srcUrl) + "&s=" + encodeURIComponent(tab.url); // The srcUrl property is only available for image elements. - var url = 'http://localhost:3000/popup.html#' + q; + var url = 'http://localhost:3000/addpin.html#' + q; // Create a new window to the info page. // chrome.windows.create({ url: url, width: 520, height: 660 }); - chrome.windows.create({ url: url, width: 500, height: 500, type: 'popup' }); + chrome.windows.create({ url: url, width: w, height: h, left: left, top: top, type: 'popup' }); }; }; @@ -19,7 +29,7 @@ function getClickHandler() { * Create a context menu which will only show up for images. */ chrome.contextMenus.create({ - "title" : "Get image info", + "title" : "add to tinypin", "type" : "normal", "contexts" : ["image"], "onclick" : getClickHandler() diff --git a/chrome-extension/icon128.png b/chrome-extension/icon128.png new file mode 100644 index 0000000000000000000000000000000000000000..d45af056f636d1a469fab2b6894ad9b370fe29c9 GIT binary patch literal 1307 zcmV+$1?2jPP)bgQJblKx0=`Ou?>B>gVwlD)kxX&n<@hRu@xUJ<^# zeNG9=aCAoaqb|X!1ePHsRr7I|q>p(g7`NLb{af)az{f!W4%QTa5)^i6LCadXc)dj2}a<> zmf<^;AY(q^e^e2^LkTkE6aIUWF7te9lprIa!*}*^K0*5W3g6kAQwbIlScWF9mUO42 zTO@6ibcH>I+nmLFR?@eUPD=W9&X^|rBQ=lrzNFofE_PT>Q-arOPBAmfxs%h*>#dh` zSkh-6uPk>vWrMzU#pr#%@~36>PLQJOB)uf*FVE0t-OQ`_Wl6^(hwo5=78dLp_4y9L zH@)={zC#HbxJuGH5rgkLe1{TvSd{eT2*YGYJOWl3vRjA7OrZkBXF(g%|M^BBu)er=EVJSVnvKF_nL5}fdu zkkgXxYcS>}dsS~LC1?_UQ6-pod@epe^=faz?3(>^;1aY6znBtCYTmBRrP{kXKE^#Z z}%O8O~K3Cvphrvbuumh29%$0gkucz&~xQwi4DO|_~q%)XAtMwU_UObNbDyac}C z?@e%iv#{uKkZ7n95Pl>nmEeM;9fTjBZwVgmxMV&hFvk|YBK-J#N)Te=eM&(114+FE zgdahwB_RBWQY!)B4cx8vBd9r!h}W!Vgt~H!H@zrsObUYZHEm z66~%RcW1uSnU^l%cP+t&iZP!kIh0s@!Z!zO9`xKgIM8CbFU%S5xjd&dAHL!5u+PY6 z6Y)}mQ?;BQ=8SW!;B0!grD6C^A0;?T0pjvKPCp&KvuLj@4pD+N71uL9oADect84g< z&sjV^CD>N+zx&4@M_i%8cS4llNX7r%p5YuPD|Gly*AmP-Q~7*{%h)j`=F+e4D(<%@k@?G7tni&CB{*L3ce7czw%pjlh#kJ;TY{?FlLOA% zC=3<8)1?I84DfYxqcU{(PMZ>#9YXh(7g;!|gzq#h0ek*BNG*KFw*;?b_+FAOIn@g)TVEh{bi3-!*}MDfbct7&LDheVt-WfjQzUW!!NaM!P~X>_!he$DSywV`QU1$ZKO?dDy?W~}i^pB^Yc6(dH{2)hxa@}uyYih03p+)p zZ9EzK)Phxo`vhP2im6L1^VsD`MYbl{^gQ)Vl22 zeSO=R9n;RtPTr@c-Pw8PeLv5qC(VzF2(7E26F0-HcKjTbuuyZ|4-MOr1+9D&qI zm|n<5AyHP0N&>c1EB4!g-L&*XIj|wF{$rYklMZhJH%B#`ij59`CW1ybC&Ew-v;uYF zTpj)tXjFA4Dp3JU0LQ?)2yqE4I1eqq@QF&8t9>FG_1pZydr4dY9Z`jE0d7QN*T6C` z3d{nBN@h43E2Kn!fbbb-TLqqg@hAksO1uFB1;WQlSc$1p2=5X`;-gf;yJ(4d zk8)aKy%fT`7>RokZpowEkSMble@t)k4G}MieX;B)3G^g=C?GK{j@KqFknc9B=Y*CR z5yzSm%Ke4cJ)Qy*E6#7PKxG2Czwit1l24)rxOMgql8GKHyo;7N7vBftjs1;Y-}D7I zr&BG#&9)cgKO#T${BfBq=@1g;C8r^t$iLYR8Q#Ubw2T4u5$E)z8`yDr!eX&lEEdbZ a2jCMy8}S3qg5CH40000=0.10.0" } }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ansi-styles/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ansi-styles/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, "node_modules/aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", @@ -300,6 +331,56 @@ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", @@ -445,6 +526,11 @@ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", @@ -461,6 +547,14 @@ "once": "^1.4.0" } }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -585,6 +679,14 @@ "wide-align": "^1.1.0" } }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, "node_modules/github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", @@ -1022,6 +1124,14 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -1338,15 +1448,144 @@ "string-width": "^1.0.2 || 2" } }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, + "node_modules/y18n": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", + "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", + "engines": { + "node": ">=10" + } + }, "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } } }, "dependencies": { @@ -1364,6 +1603,29 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + }, + "dependencies": { + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + } + } + }, "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", @@ -1559,6 +1821,46 @@ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", @@ -1674,6 +1976,11 @@ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", @@ -1687,6 +1994,11 @@ "once": "^1.4.0" } }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -1795,6 +2107,11 @@ "wide-align": "^1.1.0" } }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, "github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", @@ -2134,6 +2451,11 @@ "util-deprecate": "~1.0.1" } }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -2371,15 +2693,109 @@ "string-width": "^1.0.2 || 2" } }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, + "y18n": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", + "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==" + }, "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==" } } } diff --git a/package.json b/package.json index 4400178..d958e46 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "body-parser": "^1.19.0", "express": "^4.17.1", "node-fetch": "^2.6.1", - "sharp": "^0.27.0" + "sharp": "^0.27.0", + "yargs": "^16.2.0" } } diff --git a/server.js b/server.js index 40df82f..3b2d7b6 100644 --- a/server.js +++ b/server.js @@ -1,31 +1,78 @@ +const yargs = require('yargs'); const express = require('express'); const bodyParser = require('body-parser'); -const db = require('better-sqlite3')('data.db') //, {verbose:console.log}); +const betterSqlite3 = require('better-sqlite3'); +// const db = require('better-sqlite3') //, {verbose:console.log}); const http = require('http'); const https = require('https'); const sharp = require('sharp'); const fs = require('fs').promises; +const path = require('path'); const fetch = require('node-fetch'); -const IMAGE_PATH = "./images"; + +const argv = yargs + .option('slow', { + alias: 's', + description: 'delay each request this many milliseconds for testing', + type: 'number' + }) + .option('image-path', { + alias: 'i', + description: 'base path to store images', + type: 'string', + default: './images' + }) + .option('db-path', { + alias: 'd', + description: 'path to sqlite database file', + type: 'string', + default: 'tinypin.db' + }) + .option('port', { + alias: 'p', + description: 'http server port', + type: 'number', + default: 3000 + }) + .help().alias('help', 'h') + .argv; +const DB_PATH = path.resolve(argv['db-path']); +const IMAGE_PATH = path.resolve(argv['image-path']); +const PORT = argv.port; + +console.log('tinypin starting...'); +console.log(''); +console.log('configuration:'); +console.log(` port: ${PORT}`); +console.log(` database path: ${DB_PATH}`); +console.log(` image path: ${IMAGE_PATH}`) +if ( argv.slow ){ + console.log(` slow mode delay: ${argv.slow}`); +} +console.log(''); + + +const db = betterSqlite3(DB_PATH); // express config const app = express(); -const port = 3000; app.use(express.static('static')); app.use(express.static('images')); app.use(bodyParser.urlencoded({ extended: false })) app.use(bodyParser.json()); app.set('json spaces', 2); -// emulate slow down -// app.use( (req,res,next) => { -// console.log("slow..."); -// setTimeout(() => { -// next(); -// }, 2000); -// }); +//emulate slow down +if ( argv.slow ){ + app.use( (req,res,next) => { + console.log("slow..."); + setTimeout(() => { + next(); + }, 2000); + }); +} const OK = {status: "ok"}; const NOT_FOUND = {status: "error", error: "not found"}; @@ -59,7 +106,6 @@ app.get("/api/boards", async (req, res) => { app.get("/api/boards/:boardId", async (req, res) => { try{ - let board = db.prepare("SELECT * FROM boards WHERE id = ?").get(req.params.boardId); if ( board ){ @@ -264,12 +310,15 @@ app.delete("/api/pins/:pinId", async (req, res) => { // start listening -app.listen(port, () => { - console.log(`tinypin is running at http://localhost:${port}`) +app.listen(PORT, () => { + console.log(`tinypin is running at http://localhost:${PORT}`); + console.log(''); }); function initDb(){ + console.log("initializing database..."); + db.prepare(` CREATE TABLE IF NOT EXISTS migrations ( id INTEGER PRIMARY KEY, @@ -281,7 +330,7 @@ function initDb(){ if ( !schemaVersion || schemaVersion < 1 ){ - console.log("Running migration to version 1"); + console.log(" running migration v1"); db.prepare(` CREATE TABLE IF NOT EXISTS boards ( @@ -308,16 +357,14 @@ function initDb(){ ) `).run(); - db.prepare(` - INSERT INTO boards (id, name, createDate) VALUES (0, 'Default Board', ?) - `).run(new Date().toISOString()); - db.prepare("INSERT INTO migrations (id, createDate) VALUES ( @id, @createDate )").run({id:1, createDate: new Date().toISOString()}); - } else { - console.log("Database schema v" + schemaVersion + " is up to date."); + schemaVersion = 1; } + console.log(`database ready - schema version v${schemaVersion}`); + console.log(''); + } async function downloadImage(imageUrl){ diff --git a/static/addpin-app.js b/static/addpin-app.js new file mode 100644 index 0000000..e69de29 diff --git a/static/addpin.html b/static/addpin.html new file mode 100644 index 0000000..61a2a41 --- /dev/null +++ b/static/addpin.html @@ -0,0 +1,351 @@ + + + + tinypin + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tinypin-icon.psd b/tinypin-icon.psd new file mode 100644 index 0000000000000000000000000000000000000000..616ac339aedbfaede409980d2edb0af9b8e957b1 GIT binary patch literal 260428 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 z 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 O>pSrJ4*Y-Jf&Ui=dz&Hv literal 0 HcmV?d00001