From 86d5b73f16b79b5a249dc8033f738cd557fd0a85 Mon Sep 17 00:00:00 2001 From: "P.BARRY" Date: Sun, 12 Jul 2015 19:10:21 +0200 Subject: [PATCH] fix booth builder - paths generation --- .gitignore | 5 + app.js | 9 +- public/css/cover.css | 163 ++++++++++++++++++++++++++++++++ public/css/style.css | 8 ++ public/css/view.css | 10 ++ public/img/common/294.GIF | Bin 0 -> 9402 bytes public/img/template/default.jpg | Bin 0 -> 126716 bytes routes/index.js | 30 +++++- tools/tools-photobooth.js | 20 ++-- views/index.ejs | 2 +- views/view.ejs | 2 +- 11 files changed, 236 insertions(+), 13 deletions(-) create mode 100644 public/css/cover.css create mode 100644 public/css/style.css create mode 100644 public/css/view.css create mode 100644 public/img/common/294.GIF create mode 100644 public/img/template/default.jpg diff --git a/.gitignore b/.gitignore index fa76cfa..a40eeac 100644 --- a/.gitignore +++ b/.gitignore @@ -25,6 +25,11 @@ build/Release # Dependency directory # https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git- node_modules +public/img/final_ld/* +public/img/final/* +public/img/final_ld/* +public/img/original/* +public/img/prebuilt/* # Debug log from npm npm-debug.log diff --git a/app.js b/app.js index 89299db..8eb7cc6 100644 --- a/app.js +++ b/app.js @@ -1,4 +1,5 @@ var BOB_mod_path = require('path'); +var BOB_mod_mkdirp = require('mkdirp'); var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); @@ -81,7 +82,7 @@ module.exports = app; function BOB_initConfig() { // Config var cfgConfig = { - background : '#ffffff', + background : '#fff0ff', margins : 0.01, style : 'default', nbPicture : 4, @@ -105,6 +106,12 @@ function BOB_initConfig() { cfgConfig.paths.prebuilt = BOB_mod_path.resolve(__dirname, './public/img/prebuilt'); cfgConfig.paths.template = BOB_mod_path.resolve(__dirname, './public/img/template'); cfgConfig.paths.original = BOB_mod_path.resolve(__dirname, './public/img/original'); + + BOB_mod_mkdirp.sync(cfgConfig.paths.final); + BOB_mod_mkdirp.sync(cfgConfig.paths.final_ld); + BOB_mod_mkdirp.sync(cfgConfig.paths.prebuilt); + BOB_mod_mkdirp.sync(cfgConfig.paths.original); + // Init pinctures names for( var index = 0; index < cfgConfig.nbPicture; index ++ ) { (function(pId) { diff --git a/public/css/cover.css b/public/css/cover.css new file mode 100644 index 0000000..f4d789e --- /dev/null +++ b/public/css/cover.css @@ -0,0 +1,163 @@ +/* + * Globals + */ + +/* Links */ +a, +a:focus, +a:hover { + color: #fff; +} + +/* Custom default button */ +.btn-default, +.btn-default:hover, +.btn-default:focus { + color: #333; + text-shadow: none; /* Prevent inheritence from `body` */ + background-color: #fff; + border: 1px solid #fff; +} + + +/* + * Base structure + */ + +html, +body { + height: 100%; + background-color: #333; +} +body { + color: #fff; + text-align: center; + text-shadow: 0 1px 3px rgba(0,0,0,.5); +} + +/* Extra markup and styles for table-esque vertical and horizontal centering */ +.site-wrapper { + display: table; + width: 100%; + height: 100%; /* For at least Firefox */ + min-height: 100%; + -webkit-box-shadow: inset 0 0 100px rgba(0,0,0,.5); + box-shadow: inset 0 0 100px rgba(0,0,0,.5); +} +.site-wrapper-inner { + display: table-cell; + vertical-align: top; +} +.cover-container { + margin-right: auto; + margin-left: auto; +} + +/* Padding for spacing */ +.inner { + padding: 30px; +} + + +/* + * Header + */ +.masthead-brand { + margin-top: 10px; + margin-bottom: 10px; +} + +.masthead-nav > li { + display: inline-block; +} +.masthead-nav > li + li { + margin-left: 20px; +} +.masthead-nav > li > a { + padding-right: 0; + padding-left: 0; + font-size: 16px; + font-weight: bold; + color: #fff; /* IE8 proofing */ + color: rgba(255,255,255,.75); + border-bottom: 2px solid transparent; +} +.masthead-nav > li > a:hover, +.masthead-nav > li > a:focus { + background-color: transparent; + border-bottom-color: #a9a9a9; + border-bottom-color: rgba(255,255,255,.25); +} +.masthead-nav > .active > a, +.masthead-nav > .active > a:hover, +.masthead-nav > .active > a:focus { + color: #fff; + border-bottom-color: #fff; +} + +@media (min-width: 768px) { + .masthead-brand { + float: left; + } + .masthead-nav { + float: right; + } +} + + +/* + * Cover + */ + +.cover { + padding: 0 20px; +} +.cover .btn-lg { + padding: 10px 20px; + font-weight: bold; +} + + +/* + * Footer + */ + +.mastfoot { + color: #999; /* IE8 proofing */ + color: rgba(255,255,255,.5); +} + + +/* + * Affix and center + */ + +@media (min-width: 768px) { + /* Pull out the header and footer */ + .masthead { + position: fixed; + top: 0; + } + .mastfoot { + position: fixed; + bottom: 0; + } + /* Start the vertical centering */ + .site-wrapper-inner { + vertical-align: middle; + } + /* Handle the widths */ + .masthead, + .mastfoot, + .cover-container { + width: 100%; /* Must be percentage or pixels for horizontal alignment */ + } +} + +@media (min-width: 992px) { + .masthead, + .mastfoot, + .cover-container { + width: 700px; + } +} \ No newline at end of file diff --git a/public/css/style.css b/public/css/style.css new file mode 100644 index 0000000..30e047d --- /dev/null +++ b/public/css/style.css @@ -0,0 +1,8 @@ +body { + padding: 50px; + font: 14px "Lucida Grande", Helvetica, Arial, sans-serif; +} + +a { + color: #00B7FF; +} \ No newline at end of file diff --git a/public/css/view.css b/public/css/view.css new file mode 100644 index 0000000..d224def --- /dev/null +++ b/public/css/view.css @@ -0,0 +1,10 @@ +html, +body { + height: 100%; + background-color: #333; +} +body { + color: #fff; + text-align: center; + text-shadow: 0 1px 3px rgba(0,0,0,.5); +} \ No newline at end of file diff --git a/public/img/common/294.GIF b/public/img/common/294.GIF new file mode 100644 index 0000000000000000000000000000000000000000..6bbc5ae0707d0d428d29f4929c35d84021a49c1f GIT binary patch literal 9402 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 K#Ow#uhW`OJVD(A> literal 0 HcmV?d00001 diff --git a/public/img/template/default.jpg b/public/img/template/default.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e373bfcac5fa423f68f63a9236f5515d614fa904 GIT binary patch literal 126716 zcmeI&d0bRg{|E3hGpqy3YAS9cnkcdi1InTfB8#H31g`b83~+&Ygc+I{0wq(?Tu4(W zQ!CRHQ^|bF(p)mN+*-89%q6$S)KW<^O;aqH=X>wmxig48zkdDm`@NpmXKI*p&-tEn z&w1Z-?pD_0*0aoacv^ZIlhG$k7RH$MyMP0!mHI-)GBQ{wW6XmoWj;(!DS!ITl=%v2 zC8Zb3{F#D&W%Lh|1u<74&DaWACn?<^>n+Am3$iGot~bSPkZFW;Af-Q+2RLG8>6wez z&ex3j1ZJj>$jVeDXXRvP|OXBnx2uZ(nQ2XM5&oZ9n~*E z9h0DrRz<}psG}14#WB{q`c-?+bZr_R-$uV8iV;=ahM&O=O7V4bH^S}DbQ z)IH0$@3odOg>T(VVP7=bwp;5K2z^lS5OuXq={iSxxxN2UYV~rN*go}Wx!kd@@u2?vP;YOa^6Q=2uXk#{-o-wywm;Ro zitSVX>)jlEsJHvj4(gqJ>g_(%pL(UEZ}r}ey0mNl!@F10w=<-B zZ$rL0X<8-ne-B(t3_s4Zm)TPp6Cult6Orn#YfmhnfJHyJSO zFf9~eTzm*yZTH{j&(;WSwxjq3Y^|_gUrMiH4N`g|ds|BHVebm@e9RH{p3{Ce3HfBM z{GM$V((5RFm2DH!#Obw!-*s}<$gCWemY$iaQmI(d=uuhpD|}c+YD&Z~70XD<9Gx_h z<)kL%sB%YUjio|ni)ite+LC4QgQM>b@t03Ked#Q%QmW|hU}YTtr6Sf}6WcGImV}zl zJN$tVj*s}4vCOQTjHHpYL;5t(mtSHxZNIi9OKD;0W@M$LM(ZdrGilW59KH&r)tacN zzn*)(9VUgebA;N;LMkoBNs>h z`1QFClRZ9Kvg}~5)%B|GiJL~JmZ{4h zdM-}UZ|DyLf-e5DtLWV3c{Q(0t@_37RCC8AX#r^m25*1<{O4zGjkz%U*tr*vpV_nj zo#zhLX#>8z(!IR#=)&BC*~hM#AFX?2@6F$y?A~>L^0UXUf2RmO*}eJqN5k}mL%aX- zlxzQ6jq11{mm7gM*2j4~c}e!`@eMETe93#}lrDMmc0GG)=}U7CX77Dt`=pZd#swpb zxMSna9i0Dtmv!xq-uiAy$(<{^%p*QLxBnk&|D}2VN&ijDdgr<9{Oo#cb?mKw))w|H zoVs??`2o)t^;d>3zA}4CVeoIsCqgWFGfp3L?HO#?9DjXVX5V`SN4&dU-Ilq1mLJ=* z>R9mL$!$J}%FjNRJ}C6rS?$+7ky`nd$4jPR!{56(XIyhtTpKUV#0iCWR$or}c-vj? zroIFaG5H_{ryryHr*Czg;@6WUbE|!(T5r{bh46^WHUO6N?-Dt=0AO zFRgxl)Q>Ah3>q`NaQT}ZgZ<=Z@8xDJ9Psdp88>D<8S(POk&DXj#zlLziCc3kyY%Tr zXSF_~AFsN%=+?V0zj>_x$Hw%Ll?O)L_+;DZ-mk}7e{vi8UJCpEm(ZGkJeJi_g>4(nea{rI{sDFJMw#lxhEeC8np1G7+J+bTMt~WoR`>iD6iAx!1g;j?~h*n zNKe()suvo}=Bc}T#LqNL*>ZC0lLLmBzR0-q`s^!HHjNGL<$dGyEC33u+MuW0azAg3-ZjMS=iIax zziv8psn~tYl9Ov+_ns4Jz5S5xi0PJJ!r#snsRMhC-5Yjo|ChgKd~O;t;PEw`w@fj- zvM*}q49?u3d?~ee&xa4^Y;XMa2*CYR^|L-1s?UZrkeos&U?nt~E79f4a88=VDW3eeXS*Gv2!P+|s2J zf;ad^=-b>Laj%~|R{dJQXA4d@Wj4K#TKPuPc-I;Ii1izQQ$K5LZgjJ=NTd34qCU$@-NzxA$`j(_ds z$wBPEP@nnR4juVA{+EE;L$`0a{=M}ZpMc##&4)r}?d#TYfYb4R;+5OeVtm^@G2z0e z>rcK+$N$V%m%|o^)B5jZTmRwXvwQW}_$sS^CV$o^{r6YbPT6=i>hai*kA0EkGU2oH zp9GB!zw~yG&F>UHZF?jnIaMIx#3wF1j)8Ou*Q*--9mJ9^dqaIqAfy%gQA?e_VEM-sE;4uU|U6SLa9G4i2vk|54L@ z*UYl%`$~Qb*tGt!K`G{MGA14P>?iGqV^x7s<>%)l-0Qdeh_1a?^Qk!(x6G^Aps4CB zt<=G*qQBq2%)RhJEtfv`_+z*Dm0H*L>hUXm=64lW>X>m2$J*cAweeWjxqWvXzuLDh z_~iEe_r{-jv8ZUl1)b|*RpZfB8(gouf4F{MllpR(N%Hq!n7g^n-iYSg?Vp-ZHcOK* z@$56N2F8w3CH{D}@SPE#R=Eur{U+N~rK{c>^~s$6=C#U&sXcmbd#mcJWs5)Ze5KQk zf8KD{%uMDiADw=?YeJ&_UA0E7c`bJD%8k;_S6`< zD|wtQhXsyb+Pd#US6PjiWtED?q>o8Yaa_w;YUZ${%;Z#i7IPE{DdAErRi=ddzZ6{p zW81dMcaHi0mga9aNFXUUIX#{FcHa;mxJmb1a+%!ehK5h`w=6C>@pLO=d%khu8x{uZ zPLDvgJ7Bukay;|;7#z>MKF`RUo_Xam`(2>Vb8@*o?K0H)nb*eH@>$mE{A|wOaM3N7 z^(0GX9&T>#Zmu5g?(UwR9!l@PHr`%d-W~k|d;+@!b?e$CsB>pk&xjCJa9EGdoqNaj z2~$VK#Kd$9i60cF85j{Aqv0Eod3t(!dwF+g)24%_d*|+&|MkbZllghD-E6u-7R=;+ zGKHVax|<#dn9P-blOUtcii46XTwLAUJv^0O6tIzA9>^35xr@Tp)rD@FWs~`bW*0wK z|L##qZUK+z+=HJE)J&^=)1$|b_ja|*IrMYS=sZ)kr}Clp9XbX*+$*GapU{|o{bS?e z6OvO>(}oU9AD%mE^q8^Z#y^^0z!er1>;G=Hls{8ZIdRhT8PCt0HG57?-AgYod}Yz% zC9kenS-hJO1s7@6MgS@cj=L zFI{fDe&d&$w|>2Sr|B*~E_$-H4NDps_1k$|e*7eIaZ$Lq^W&1qE9k56b8+n+<>sIC zh`a9TfMCrukH8_dZ@#z7vqyB!&+YO|hm;TXjQQ^2>-^A!k^Q-WRsW@tNdt3?>jd*w z&{X$R__0LR)Lhehxg6jBDgz(ux7P34j4!rW$`T?Y4dw`4fiaJZ$TyZoR_e+kqaxIi zY+zz#nJ#|k6Dmu~N;!*8RashMFeg+F3K1GlpfsNy8A3s(g2IHHlr%Afwg!cWeW|FZh^UB; zFq(=YqvGS^Bh{KnjV7ET!p##67F}hy!Q6vdP^yGBQaE$INnd8s8x3Mx9KE5G8f!5y zzC;)qRadD7@|y`6x(S@N)r-V|k&Z$~sIh=65o75Uqdi8*m4dQNdX9R@_eYzfFDkZ# zTa0C5sB@WAVO$PpHkOnN6{6MlR-JRD(D4rpb%3W_~%@mSZmWw6I~@D$#3W_$kdVc1jCT!iE?o z?&bll*%oIitx%ed!jb3GDsh8e#sN7^bI|v%QOe?eTs^mOXvPl*GKg#`wwrzs;g~1gJ z(Ob;foGDvhNhdK?jHveqagf&Rq7at-!?@Z0aD!zU8Q|u z*{Vi|snt|d)mxaHeZ&@8g*h7FES!nvR|cJ8wb?ogZ5iy9oQtFiBl#0+ zCK!wr_IT$KDLk!2XD(LphoDSnGIOIQmT`kZ`12#*fbAM#yAB9}j%!AmF<)0Qk~0)p zinY<2Ftw_*RP2^>iL@L35@X6VTIhTkAJ}$+?=;R&IG7oj-&#w{-b(%5#p(wZ%z`!a4r_vIo?2EQ1GB zbQDT81z?(*_Qh`BmKHo+knF_#L30X~+DJB*7)`l!!@_CJIYWnt;ZC_yq_76YrO*}3 zAe>sF<6<>p`29sK>x_5Q(e#UNQOBuBs*}sNPt%vP6dMb)Sq3gVzgS;JmoMt5iY~P} zI-MKLMw7Vjmf=z>Y5EdQoYN_}$#w-trWBZ)&l!YCtWD9IxO_{=L{(X_(ZZkN%ZjDz ztRqUQn4Fd*uC70`7#z`#6_H$SwiruuIGWTZI!|UAO{KaLx|$gC>AGz{5-nq-z1vSQ z!YWTHw-{BNc-a#xwg`}_jV-2|hatKWoq-OxP_2T`QRUgP#JVk_q`JZk)RjDHq(1W} zW39@5HEC5M)p1(d>4xZjrKNOSO0_Z4HP&%Xa4ME+3+lJbek>lcdw+s?^e(7qN2>F8{;o_EQW0y5aYR^lU-T8@4=p zW}&B-Na-1eHl(K{n*M`AO#CyD@HR$zE$|l;!rPd?SXZiM{e<4e@c$7`A)^-&_O~(Z z=zr?4zlITimGm+ruvIRzimw8E74#n*Wy^lPuNF2T009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_0D=E@fo|5_EYMeW-!RWwPcRRejLBT( zQ<|;po|XM(WjE`V@xgu%4pzuyiLyT%EPr6|A9lknv2{28Fj$t@y=6B}FmHv7$(e!% z>3iQmu?YbPKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHaf{MQRuce6l0*?q%2Ydyg{WD1!q(RWI-mEE(l->mFr-Ln4>EPr6I?}J;Gu~sdA F`)|4f<#+%9 literal 0 HcmV?d00001 diff --git a/routes/index.js b/routes/index.js index 106c35b..1da36bd 100644 --- a/routes/index.js +++ b/routes/index.js @@ -2,22 +2,23 @@ var BOB_mod_express = require('express'); var BOB_mod_router = BOB_mod_express.Router(); var BOB_mod_path = require('path'); var BOB_mod_mkdirp = require('mkdirp'); +var BOB_mod_os = require('os'); var BOB_tol_gphotos = null; var BOB_tol_booth = null; var BOB_cfg_config = null; var BOB_var_boothInProgress = 0; - var BOB_var_gamepad = require("gamepad"); +var BOB_var_ipAddress = '127.0.0.1'; /* GET home page. */ BOB_mod_router.get('/bobinoscope', function(req, res, next) { - res.render('index', { title: 'Express' }); + res.render('index', {serverIpAddress: BOB_var_ipAddress}); }); /* GET view page. */ BOB_mod_router.get('/', function(req, res, next) { - res.render('view', {}); + res.render('view', {serverIpAddress: BOB_var_ipAddress}); }); BOB_mod_router.get('/booth/build/:boothId', function(req, res, next) { @@ -68,6 +69,29 @@ BOB_var_gamepad.on("down", function (pId, pNum) { }); }) +// Get local server ip address +var ifaces = BOB_mod_os.networkInterfaces(); +Object.keys(ifaces).forEach(function (ifname) { + var alias = 0; + + ifaces[ifname].forEach(function (iface) { + if ('IPv4' !== iface.family || iface.internal !== false) { + // skip over internal (i.e. 127.0.0.1) and non-ipv4 addresses + return; + } + + BOB_var_ipAddress = iface.address; + + if (alias >= 1) { + // this single interface has multiple ipv4 addresses + console.log(ifname + ':' + alias, iface.address); + } else { + // this interface has only one ipv4 adress + console.log(ifname, iface.address); + } + }); +}); + module.exports = function(pConfig) { BOB_cfg_config = pConfig; diff --git a/tools/tools-photobooth.js b/tools/tools-photobooth.js index e5b50af..349fec4 100644 --- a/tools/tools-photobooth.js +++ b/tools/tools-photobooth.js @@ -10,7 +10,7 @@ var BOB_module = {}; BOB_module.getBoothList = function(pFrom, pCallback) { BOB_mod_fs.readdir(BOB_cfg_config.paths.final, function(pErr, pBoothList) { - var boothList = pBoothList.sort(); + var boothList = pBoothList ? pBoothList.sort() : []; boothList = boothList.splice(boothList.indexOf(pFrom) + 1); @@ -73,7 +73,7 @@ function BOB_generateBooth(pBoothId, pType, pCallback) { cmdDraw += ','+BOB_cfg_config.booths[pType].layout[pIndex].y; cmdDraw += ' '+BOB_cfg_config.booths[pType].layout[pIndex].width; cmdDraw += ','+BOB_cfg_config.booths[pType].layout[pIndex].height; - cmdDraw += ' '+BOB_mod_path.join(prebuiltPath, pPictName); + cmdDraw += ' \''+BOB_mod_path.join(prebuiltPath, pPictName)+'\''; console.log(cmdDraw); outPict.draw(cmdDraw); @@ -84,11 +84,17 @@ function BOB_generateBooth(pBoothId, pType, pCallback) { outPict.draw('text 1900,3850 "'+printedDate.toUTCString()+'"'); outPict.write(finalPict, function (pErr) { - BOB_mod_gm(finalPict) - .resize(600, null) - .write(finalLdPict, function(pErr) { - pCallback(pErr); - }) + if( pErr ) { + console.log("Write outfile") + console.log(pErr) + pCallback(pErr); + } else { + BOB_mod_gm(finalPict) + .resize(600, null) + .write(finalLdPict, function(pErr) { + pCallback(pErr); + }) + } }); } diff --git a/views/index.ejs b/views/index.ejs index 3623cb8..fb2546f 100644 --- a/views/index.ejs +++ b/views/index.ejs @@ -60,7 +60,7 @@