const APP_ID = (window.location.host === 'www.pxfreshdelivery.tw') ? ' 729797861493746' : '547406236761668' ; function sleep(second = 1000) { return new Promise((resolve) => { let t = setTimeout(() => { clearTimeout(t); t = null; resolve(); }, second) }) } function getQueryVariable(variable) { var query = window.location.search.substring(1); var vars = query.split('&'); for (var i = 0; i < vars.length; i++) { var pair = vars[i].split('='); if (decodeURIComponent(pair[0]) == variable) { return decodeURIComponent(pair[1]); } } console.log('Query variable %s not found', variable); return ''; } function getTemplate(value) { let output = ''; const key = value.toLocaleLowerCase(); switch (key) { case "ralf": output = 'https://d1xzlli46wohoc.cloudfront.net/assets/images/share/ralfshare_fb.png';break; case "hao": output = 'https://d1xzlli46wohoc.cloudfront.net/assets/images/share/haoshare_fb.png';break; case "yang": output = 'https://d1xzlli46wohoc.cloudfront.net/assets/images/share/yangshare_fb.png';break; case "betty": output = 'https://d1xzlli46wohoc.cloudfront.net/assets/images/share/bettyshare_fb.png';break; case "commute_li": output = 'https://d1xzlli46wohoc.cloudfront.net/assets/images/share/commute_lishare_fb.png';break; case "commute_chang": output = 'https://d1xzlli46wohoc.cloudfront.net/assets/images/share/commute_changshare_fb.png';break; case "commute_he": output = 'https://d1xzlli46wohoc.cloudfront.net/assets/images/share/commute_heshare_fb.png';break; case "drangadrang": output = 'https://d1xzlli46wohoc.cloudfront.net/assets/images/share/drangadrangshare_fb.png';break; case "crangadrang": output = 'https://d1xzlli46wohoc.cloudfront.net/assets/images/share/drangadrangshare_fb.png';break; case "ku": output = 'https://d1xzlli46wohoc.cloudfront.net/assets/images/share/kushare_fb.png';break; case "albee": output = 'https://d1xzlli46wohoc.cloudfront.net/assets/images/share/albeeshare_fb.png';break; case "chefchouchou": output = 'https://d1xzlli46wohoc.cloudfront.net/assets/images/share/chefchouchoushare_fb.png';break; case "cookingdairy": output = 'https://d1xzlli46wohoc.cloudfront.net/assets/images/share/cookingdairyshare_fb.png';break; default: output = 'https://d1xzlli46wohoc.cloudfront.net/assets/images/share/ralfshare_fb.png';break; } return output; } function getDescription(value) { let output = ''; const key = value.toLocaleLowerCase(); switch (key) { case "ralf": output = '今天就來煮|雙寶煮夫全聯先生推薦的「不知道冰花煎餃好簡單」';break; case "yang": output = '今天就來煮|找蔬食Yang推薦的「我想想出國吃大阪燒」';break; case "hao": output = '今天就來煮|找蔬食Hao推薦的「青菜煮油醋溫沙拉」';break; case "betty": output = '今天就來煮|貝蒂做便當推薦的「我在168蒜味蝦便當」';break; case "commute_he": output = '就煮|台灣通勤第一品牌-何敬旻推薦的「沒想法就涼拌雞絲」';break; case "commute_chang": output = '就煮|台灣通勤第一品牌-張家倫推薦的「減肥勿餵食水果盤」';break; case "commute_li": output = '就煮|台灣通勤第一品牌-李毅誠推薦的「都可以來道銷魂控肉」';break; case "drangadrang": output = '今天就來煮|布萊克薛薛推薦的「看你心情好鮮芒果三明治」';break; case "ku": output = '就煮|芋頭教主酷Ku推薦的「你決定就好喝芋頭珍珠鮮奶」';break; case "albee": output = '今天就來煮|Albee佩軒推薦的「隨便煮韓式牛肉泡菜炒飯」';break; case "chefchouchou": output = '今天就來煮|旅法神廚阿辰師推薦的「沒胃口就醬炒野菇小里肌」';break; case "cookingdairy": output = '就煮|煮婦養成日記Phoebe推薦的「不餓也想吃蜂蜜芥末鮭魚」';break; default: output = '今天就來煮|雙寶煮夫全聯先生推薦的「不知道冰花煎餃好簡單」';break; } return output; } function shareToLine(id = 1) { const kol = getQueryVariable('kol'); const message = '不要說我沒揪你~今天煮什麼?這個都幫你想好了!還可以一鍵下單, 下班到家就到貨 ~趕快去用我的優惠碼賺加菜金>>\n'; const base_url = window.location.host === 'www.our-work.com.tw' ? '/demosite/2022/2022-pxgo/justahour/' : '/'; let share_url; if (window.location.host === 'www.pxfreshdelivery.tw' || window.location.host === 'pxfreshdelivery.tw') { share_url = `https://www.pxfreshdelivery.tw/web/getMeta?id=${id}`; } else { share_url = `https://demo.pxfreshdelivery.tw/web/getMeta?id=${id}`; } let redirect_url = `${window.location.protocol}//${window.location.host}${base_url}index.html?share_id=${id}`; if (kol) { share_url = share_url + `&kol=${kol}`; redirect_url = redirect_url + `&kol=${kol}`; } window.open(`https://line.me/R/share?text=${encodeURIComponent(message)}${encodeURIComponent(share_url)}`, '_blank'); // window.open(`https://lineit.line.me/share/ui?url=${encodeURIComponent(share_url)}&text=${message}`, '_blank'); sleep(2000).then(() => { window.location.href = redirect_url; }, 2000); } function shareToFacebook(id = 1) { const kol = getQueryVariable('kol'); const hashtag = '#感謝料理救星賜我靈感_食材一鍵買齊再賺加菜金'; const base_url = window.location.host === 'www.our-work.com.tw' ? '/demosite/2022/2022-pxgo/justahour/' : '/'; let share_url; if (window.location.host === 'www.pxfreshdelivery.tw' || window.location.host === 'pxfreshdelivery.tw') { share_url = `https://www.pxfreshdelivery.tw/web/getMeta?id=${id}`; } else { share_url = `https://demo.pxfreshdelivery.tw/web/getMeta?id=${id}`; } let redirect_url = `${window.location.protocol}//${window.location.host}${base_url}index.html?share_id=${id}` if (kol) { share_url = share_url + `&kol=${kol}`; redirect_url = redirect_url + `&kol=${kol}`; } window.open(`https://www.facebook.com/sharer.php?app_id=${APP_ID}&u=${encodeURIComponent(share_url)}&hashtag=${encodeURIComponent(hashtag)}&redirect_uri=${redirect_url}`, '_blank'); sleep(2000).then(() => { window.location.href = redirect_url; }, 2000); } function detectFace(image) { return new Promise((resolve, reject) => { faceapi.nets.tinyFaceDetector .load('./assets/libs/face-api') .then(() => { faceapi .loadFaceLandmarkModel('./assets/libs/face-api') .then(() => { const options = new faceapi.TinyFaceDetectorOptions({ inputSize: 512, scoreThreshold: 0.5 }); faceapi .detectSingleFace(image, options) .then((detections) => { console.log('face detections'); console.log(detections); if (!detections) { reject(new Error('你可能遮到五官或光線不足。再拍一次吧')); } else { resolve(detections); } }) .catch((error) => { console.log(`detectSingleFace Error\nName:${error.name}\nMessage:${error.message}`); reject(new Error('你可能遮到五官或光線不足。再拍一次吧')); }); }) .catch((error) => { console.log(`loadFaceRecognitionModel Error\nName:${error.name}\nMessage:${error.message}`); reject(new Error('你可能遮到五官或光線不足。再拍一次吧')); }); }) .catch((error) => { console.log(`tinyFaceDetector Error\nName:${error.name}\nMessage:${error.message}`); reject(new Error('你可能遮到五官或光線不足。再拍一次吧')); }); }); } function ImageLoader(src) { return new Promise((resolve) => { const image = new Image(); image.crossOrigin = 'Anonymous'; image.onload = () => { resolve(image); } image.src = src; }) } function Image2Canvas(image, canvasWidth, canvasHeight) { const canvas = document.createElement('canvas'); const context = canvas.getContext('2d'); canvas.width = canvasWidth; canvas.height = canvasHeight; context.drawImage(image, (image.width - canvas.width) * -0.5, 0, image.width, image.height); return canvas; }