import { Discord } from "./lib/discord"; import { CreateImage } from "./lib/image"; import { Login, Upload } from "./lib/instagram"; console.time("πŸŽ‰ | Done"); async function main() { console.time("πŸ”“ | Instagram login"); try { const data = await Login(); console.log("✨ | Instagram login successful"); if (data) { console.log(`πŸ€” | Login as ${data.currentUser.full_name}`); } } catch (error) { console.error("❌ | Instagram login failed:", error); } finally { console.timeEnd("πŸ”“ | Instagram login"); } let YYMMDD = ""; // μ‹€ν–‰ν•  λ•Œ --today μ˜΅μ…˜μ„ μ£Όλ©΄ 였늘 λ‚ μ§œλ‘œ λ°”λ€œ const args = process.argv.slice(2); if (args.includes("--today")) { console.log("πŸ“… | --today option detected, using today's date"); YYMMDD = new Date().toISOString().slice(0, 10).replace(/-/g, "").toString(); console.log("πŸ“… | Using today's date:", YYMMDD); } // Tomorrow is 1st of the month const tomorrow = new Date(); tomorrow.setDate(tomorrow.getDate() + 1); YYMMDD = tomorrow.toISOString().slice(0, 10).replace(/-/g, "").toString(); console.log("πŸ“… | date:", YYMMDD); console.log(tomorrow.getDate()); if (tomorrow.getDate() === 1) { console.log("πŸ“… | Tomorrow is the 1st of the month, fetching schedule..."); console.time("πŸ“… | Create Post Schedule"); await CreateImage.PostSchedule(); console.timeEnd("πŸ“… | Create Post Schedule"); console.time("πŸ“€ | Upload Post Schedule"); await Upload.Post( `./temp/schedule-${new Date().getFullYear()}-${ new Date().getMonth() + 1 }.png`, `#μΈμ²œμƒμ •μ€‘ν•™κ΅ #상정쀑학ꡐ #학사일정 \n${new Date().getFullYear()}년도 ${ new Date().getMonth() + 1 }μ›” 학사 일정` ); } try { console.time("πŸ“· | Create Post Image"); const NutritionInfo = await CreateImage.PostMeal(YYMMDD); console.timeEnd("πŸ“· | Create Post Image"); console.time("πŸ“± | Create Story Image"); await CreateImage.ConvertToStory(`./temp/${YYMMDD}.png`); console.timeEnd("πŸ“± | Create Story Image"); console.time("πŸ“€ | Upload Post"); let NutritionInfoText = "" const entries = Object.entries(NutritionInfo ?? {}).filter(([_, value]) => value.toString().length > 0); entries.forEach(([name, value], idx) => { NutritionInfoText += `${name} : ${value.toString().replace(",", ", ")}`; if (idx !== entries.length - 1) { NutritionInfoText += "\n"; } }); await Upload.Post( `./temp/${YYMMDD}.png`, [ `🍽️ | ${YYMMDD}일자 급식`, "===========================", "⚠️ μ•Œλ ˆλ₯΄κΈ° 유발 κ°€λŠ₯ 성뢄이 ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.", NutritionInfoText, "===========================", "#μΈμ²œμƒμ •μ€‘ν•™κ΅ #상정쀑학ꡐ #급식" ].join("\n") ); console.timeEnd("πŸ“€ | Upload Post"); console.time("πŸ“€ | Upload Story"); await Upload.Story(`./temp/${YYMMDD}-story.png`, YYMMDD); console.timeEnd("πŸ“€ | Upload Story"); // console.time("πŸ€– | Discord Webhook"); // await Discord(YYMMDD); // console.timeEnd("πŸ€– | Discord Webhook"); } catch (error) { console.error("❌ | Error during image creation or upload:", error); } finally { console.timeEnd("πŸŽ‰ | Done"); } } main();