Spaces:
Running
Running
| const GITHUB_BASE_URL = | |
| "https://raw.githubusercontent.com/preview4r/AstroLens-Horoscope-Data-Storage/main"; | |
| const getCurrentDate = () => { | |
| const today = new Date(); | |
| return today.toISOString().split("T")[0]; | |
| }; | |
| const decodeBase64UTF8 = (base64String) => { | |
| try { | |
| const binaryString = atob(base64String); | |
| const bytes = new Uint8Array(binaryString.length); | |
| for (let i = 0; i < binaryString.length; i++) { | |
| bytes[i] = binaryString.charCodeAt(i); | |
| } | |
| const decoder = new TextDecoder("utf-8"); | |
| return decoder.decode(bytes); | |
| } catch (error) { | |
| console.error("Error decoding base64 UTF-8:", error); | |
| return null; | |
| } | |
| }; | |
| export const fetchHoroscopeData = async (category, period) => { | |
| try { | |
| const currentDate = getCurrentDate(); | |
| const fileName = `${category}_${period}.json`; | |
| const url = `https://api.github.com/repos/preview4r/AstroLens-Horoscope-Data-Storage/contents/data/${currentDate}/${fileName}`; | |
| const headers = { | |
| Accept: "application/vnd.github.v3+json", | |
| }; | |
| if (window?.huggingface?.variables?.REACT_APP_GITHUB_TOKEN) { | |
| headers["Authorization"] = `token ${window?.huggingface?.variables?.REACT_APP_GITHUB_TOKEN}`; | |
| } | |
| console.log("Fetching from URL:", url); | |
| console.log( | |
| "Using token:", | |
| window?.huggingface?.variables?.REACT_APP_GITHUB_TOKEN ? "Yes" : "No" | |
| ); | |
| const response = await fetch(url, { headers }); | |
| console.log("Response status:", response.status); | |
| if (!response.ok) { | |
| throw new Error( | |
| `GitHub API error: ${response.status} - ${response.statusText}` | |
| ); | |
| } | |
| const githubResponse = await response.json(); | |
| if (githubResponse.content) { | |
| const cleanBase64 = githubResponse.content.replace(/\n/g, ""); | |
| const decodedContent = decodeBase64UTF8(cleanBase64); | |
| if (!decodedContent) { | |
| throw new Error("Failed to decode base64 content"); | |
| } | |
| const data = JSON.parse(decodedContent); | |
| console.log("Successfully loaded data:", data); | |
| return data; | |
| } else { | |
| throw new Error("No content in GitHub response"); | |
| } | |
| } catch (error) { | |
| console.error("Error fetching horoscope data:", error); | |
| return null; | |
| } | |
| }; | |
| export const fallbackHoroscopeContent = { | |
| overall: { | |
| today: | |
| "Today brings a harmonious blend of opportunities and challenges across all aspects of your life. Your natural instincts will guide you well.", | |
| week: "This week promises balanced growth in multiple areas. Trust your intuition as you navigate new experiences.", | |
| month: | |
| "A month of significant personal development awaits. Embrace change and new perspectives with confidence.", | |
| year: "This year marks a transformative period of growth, bringing profound insights and meaningful achievements.", | |
| }, | |
| love: { | |
| today: | |
| "Love is in the air today! Your romantic side is highlighted, making it a perfect day for expressing your feelings.", | |
| week: "This week brings romantic opportunities and deepening connections with your loved ones.", | |
| month: | |
| "A month of passionate encounters and meaningful relationships awaits you.", | |
| year: "This year will be transformative for your love life, bringing lasting happiness.", | |
| }, | |
| health: { | |
| today: | |
| "Your energy levels are high today. Focus on maintaining balance between work and rest.", | |
| week: "Pay attention to your physical wellbeing this week. Small changes can make big differences.", | |
| month: | |
| "This month emphasizes the importance of mental and physical health harmony.", | |
| year: "A year of wellness and vitality lies ahead. Make health your priority.", | |
| }, | |
| relationship: { | |
| today: | |
| "Relationships flourish under today's cosmic energy. Communication is key to success.", | |
| week: "Strengthen your bonds with family and friends through meaningful conversations.", | |
| month: | |
| "Social connections expand this month, bringing new friendships and opportunities.", | |
| year: "Your social circle will grow significantly, enriching your life in unexpected ways.", | |
| }, | |
| finance: { | |
| today: | |
| "Financial opportunities present themselves today. Stay alert for new possibilities.", | |
| week: "This week favors careful financial planning and smart investments.", | |
| month: | |
| "Money matters require attention this month. Budget wisely for future security.", | |
| year: "Financial growth and stability are highlighted throughout this year.", | |
| }, | |
| fortune: { | |
| today: | |
| "Lucky energies surround you today. Trust your instincts and take calculated risks for unexpected rewards.", | |
| week: "Fortune favors the bold this week. Positive surprises and serendipitous encounters await.", | |
| month: | |
| "A month of abundance and good fortune unfolds. Opportunities align perfectly with your goals.", | |
| year: "This year brings remarkable luck and prosperity. Your efforts will be rewarded beyond expectations.", | |
| }, | |
| }; |