{"id":143,"date":"2025-02-26T17:03:20","date_gmt":"2025-02-26T16:03:20","guid":{"rendered":"https:\/\/oracley.com\/?page_id=143"},"modified":"2025-03-20T16:24:35","modified_gmt":"2025-03-20T15:24:35","slug":"tarot","status":"publish","type":"page","link":"https:\/\/oracley.com\/index.php\/tarot\/","title":{"rendered":"Tarot"},"content":{"rendered":"<style>\n        body {\n            display: flex;\n            justify-content: center;\n            align-items: center;\n            \/*height: 100vh;*\/\n            background-color: #2c3e50;\n        }\n        .block{height:auto}\n        #apiResponse{\n\t\tcolor : black;\n\t\tmargin-top:0px;\n                display:none;\n\t}\n#gptResponse{color : black;}\n#cardGrid{display:none}\n        .grid {\n            display: grid;\n            grid-template-columns: repeat(3, 100px);\n            grid-gap: 15px;\n            justify-content: center;\n        }\n        .card {\n            width: 100px;\n            height: 150px;\n            perspective: 1000px;\n            position: relative;\n        }\n        .card-inner {\n            width: 100%;\n            height: 100%;\n            position: absolute;\n            transform-style: preserve-3d;\n            transition: transform 0.6s;\n        }\n        .card.flipped .card-inner {\n            transform: rotateY(180deg);\n        }\n        .card-front, .card-back {\n            position: absolute;\n            width: 100%;\n            height: 100%;\n            backface-visibility: hidden;\n            display: flex;\n            justify-content: center;\n            align-items: center;\n            font-size: 24px;\n            color: white;\n            border-radius: 10px;\n        }\n        .card-front {\n            background-color: #f39c12;\n            background-size: cover;\n            font-size:0px;\n        }\n        .card-back {\n            background-color: #8e44ad;\n            transform: rotateY(180deg);\n            background-size: 100% 100%;\n            font-size:0px;\n            \n        }\n        .hidden {\n            visibility: hidden;\n        }\n    <\/style>\n\n<p class=\"myDescription\">\nLaissez les cartes du Tarot vous r\u00e9v\u00e9ler leur sagesse et percez les myst\u00e8res de votre destin. Que ce soit en amour, en carri\u00e8re ou en d\u00e9veloppement personnel, chaque carte poss\u00e8de une signification profonde qui peut vous guider sur votre chemin de vie.\n\nTirez vos cartes et obtenez des interpr\u00e9tations pr\u00e9cises et inspirantes. Faites confiance \u00e0 l\u2019intuition et explorez les secrets que le Tarot a \u00e0 vous offrir !\n<\/p> \n  \n<div style=\"display:none\">\n\u5f53\u524d\u5269\u4f59\u79ef\u5206\uff1a \n<div id=\"mycred-buy-content143\" class=\"mycred-sell-this-wrapper mycred-sell-partial-content mycred-sell-visitor\" data-pid=\"143\"><div class=\"text-center\">\r\n<h3>Premium Content<\/h3>\r\nLogin to buy access to this content.\r\n\r\n<\/div><\/div>\n<\/div>\n<div class=\"myselect\">\n<br>\n<span class=\"mynotice\">Cette estimation consommera 1 de vos points.\n<br>\nVotre solde actuel : \n<span id=\"mycred_balance\"><\/span>\n<\/span>\n<br>\n<button id=\"subtract-points-btn\" onclick=\"checkBalanceAndSend()\">Commencer<\/button>\n\n<\/div>\n\n<div class=\"grid\" id=\"cardGrid\"><\/div>\n<div class=\"block\"><p id=\"apiResponse\"><\/p>\n\n<br>\n<p id=\"gptResponse\"><\/p>\n<\/div><script>\n        const grid = document.getElementById(\"cardGrid\");\n        for (let i = 0; i < 9; i++) {\n            const card = document.createElement(\"div\");\n            card.classList.add(\"card\");\n            card.innerHTML = `\n                <div class=\"card-inner\">\n                    <div class=\"card-front\" style=\"background-image:url('\/image\/Tarot.jpg')\">\u724c${i + 1}<\/div>\n                    <div class=\"card-back\">\u80cc\u9762<\/div>\n                <\/div>\n            `;\n            card.addEventListener(\"click\", () => {\n                document.querySelectorAll(\".card\").forEach(c => {\n                    if (c !== card) c.classList.add(\"hidden\");\n                });\n                card.classList.toggle(\"flipped\");\n                card.style.pointerEvents = \"none\";\n\/\/document.getElementById(\"apiResponse\").style.display = \"block\";\n\t\t\n\t\t\/\/console.log(\"Clicked card index:\", i);\n\n            });\n            grid.appendChild(card);\n        }\nfunction checkBalanceAndSend() {\n    \/\/ \u83b7\u53d6 mycred_my_balance \u7684\u503c\n    let balance = parseFloat(document.querySelector(\"#mycred_balance div div\").innerText.trim());\n\/\/console.log(balance );\n    \/\/ \u5224\u65ad\u4f59\u989d\u662f\u5426\u5927\u4e8e 0\n    if (balance > 0) {\n        sendDate(); \/\/ \u8c03\u7528\u539f\u6765\u7684\u51fd\u6570\n    } else {\n        \/\/alert(\"Votre solde est insuffisant !\");\n    }\n}\n\nfunction sendDate() {\n\n        fetch(\"https:\/\/oracley.com\/wp-content\/themes\/twentytwentytwo\/php\/proxy_tarot.php\", {\n            method: \"POST\",\n            headers: { \"Content-Type\": \"application\/x-www-form-urlencoded\" },\n            body: new URLSearchParams({  })\n        })\n\t\t.then(response => response.json())\n\t\t.then(data => {\n        \tconst jsonStr = JSON.stringify(data);\n        \tconst parsedObj = JSON.parse(jsonStr); \n\n            const backImageUrl = parsedObj.image;\n            delete parsedObj.id;\n            delete parsedObj.image;\n\n            const myResultat = \"\u8fd9\u662f\u60a8\u7684\u6d4b\u8bd5\u7ed3\u679c : \" + JSON.stringify(parsedObj).replace(\/[{}]\/g, '');\n            document.getElementById(\"apiResponse\").textContent = myResultat;\n\n            document.querySelectorAll(\".card-back\").forEach(back => {\n                back.style.backgroundImage = `url('${backImageUrl}')`;\n            });\n\n            document.getElementById(\"cardGrid\").style.display = \"grid\";\n\n            let lang = \"fr\";\n            \/\/send to gpt\n            sendMessage(myResultat,lang);\n\n        })\n        .catch(error => console.error(\"Erreur:\", error));\n\n}\n\n\n\/\/send to gpt\n       async function sendMessage(_myMessage,_lang) {\n        \n        let myMessage;\n\n        if (_lang === \"cn\") {\n          myMessage = _myMessage + \" \u91cd\u65b0\u68b3\u7406\u8fd9\u6bb5\u6587\u5b57\uff0c\u5e76\u6839\u636e\u5185\u5bb9\u5206\u6bb5 \u53ea\u9700\u8981\u5904\u7406\u540e\u7684\u6587\u5b57\";\n          document.getElementById(\"gptResponse\").innerText = \"\u6b63\u5728\u6d4b\u7b97\u4e2d...\";\n\n        } else if (_lang === \"fr\") {\n          myMessage = _myMessage + \" \u4ee5\u4e0a\u6587\u5b57\u7ffb\u8bd1\u6210\u6cd5\u8bed \u5e76\u6839\u636e\u5185\u5bb9\u5206\u6bb5 \u53ea\u9700\u8981\u7ffb\u8bd1\u540e\u7684\u6587\u5b57\";\n          document.getElementById(\"gptResponse\").innerText = \"En cours d'estimation...\";\n        } else if (_lang === \"en\") {\n          myMessage = _myMessage + \" \u4ee5\u4e0a\u6587\u5b57\u7ffb\u8bd1\u6210\u82f1\u8bed \u5e76\u6839\u636e\u5185\u5bb9\u5206\u6bb5 \u53ea\u9700\u8981\u7ffb\u8bd1\u540e\u7684\u6587\u5b57\";\n          document.getElementById(\"gptResponse\").innerText = \"In the process of estimation...\";\n        }\n\n            const responseText = await chatWithGPT(myMessage);\n            document.getElementById(\"gptResponse\").innerText = responseText;\n        }\n\n        async function chatWithGPT(message) {\n            try {\n                const response = await fetch(\"https:\/\/oracley.com\/wp-content\/themes\/twentytwentytwo\/php\/chat.php\", {\n                    method: \"POST\",\n                    headers: {\n                        \"Content-Type\": \"application\/json\"\n                    },\n                    body: JSON.stringify({ message })\n                });\n\n                if (!response.ok) {\n                    throw new Error(`HTTP error! Status: ${response.status}`);\n                }\n\n                const data = await response.json();\n                return data.choices[0].message.content;\n            } catch (error) {\n                console.error(\"Error:\", error);\n                return \"\u8bf7\u6c42\u5931\u8d25\uff0c\u8bf7\u68c0\u67e5\u670d\u52a1\u5668\u914d\u7f6e\uff01\";\n            }\n        }\n    <\/script>","protected":false},"excerpt":{"rendered":"<p>Laissez les cartes du Tarot vous r\u00e9v\u00e9ler leur sagesse et percez les myst\u00e8res de votre destin. Que ce soit en amour, en carri\u00e8re ou en d\u00e9veloppement personnel, chaque carte poss\u00e8de une signification profonde qui peut vous guider sur votre chemin de vie. Tirez vos cartes et obtenez des interpr\u00e9tations pr\u00e9cises et inspirantes. Faites confiance \u00e0 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-143","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/oracley.com\/index.php\/wp-json\/wp\/v2\/pages\/143","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oracley.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/oracley.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/oracley.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oracley.com\/index.php\/wp-json\/wp\/v2\/comments?post=143"}],"version-history":[{"count":54,"href":"https:\/\/oracley.com\/index.php\/wp-json\/wp\/v2\/pages\/143\/revisions"}],"predecessor-version":[{"id":389,"href":"https:\/\/oracley.com\/index.php\/wp-json\/wp\/v2\/pages\/143\/revisions\/389"}],"wp:attachment":[{"href":"https:\/\/oracley.com\/index.php\/wp-json\/wp\/v2\/media?parent=143"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}