/** * 每日建议生成器 * 基于日期生成随机建议,确保同一天返回相同内容 */ const adviceList = [ // 情感类 "今天适合倾听内心的声音,答案就在你心中", "保持开放的心态,接纳新的可能性", "关注当下的感受,而不是未来的焦虑", "真诚地面对自己,才能看清真相", "给自己一些温柔,你已经做得很好了", // 行动类 "今天是行动的好时机,迈出第一步", "相信直觉,它会为你指引方向", "放下犹豫,勇敢地做出选择", "专注于你能控制的事情", "小步前进,也是一种进步", // 成长类 "每个挑战都是成长的机会", "接纳不完美,这是成长的一部分", "从过去的经验中学习,但不要被困住", "保持好奇心,探索未知的领域", "给自己时间,改变需要过程", // 关系类 "真诚的沟通能化解许多误会", "尊重他人的选择,也尊重自己的边界", "倾听比说服更重要", "关系需要双方的努力和理解", "给彼此一些空间,距离产生美", // 平静类 "深呼吸,让内心平静下来", "放下执念,顺其自然", "不必急于寻找答案,时机到了自然会明白", "享受当下的宁静时刻", "有些事情需要时间,耐心等待", // 力量类 "你比自己想象的更强大", "相信自己的判断力", "困难只是暂时的,你能度过", "你拥有改变现状的力量", "勇敢地表达自己的需求" ]; /** * 获取今日建议 * @returns {string} 今日建议文本 */ function getDailyAdvice() { try { // 获取今天的日期字符串(格式:YYYY-MM-DD) const today = new Date(); const dateStr = `${today.getFullYear()}-${(today.getMonth() + 1).toString().padStart(2, '0')}-${today.getDate().toString().padStart(2, '0')}`; // 使用日期字符串生成一个简单的哈希值作为随机种子 let hash = 0; for (let i = 0; i < dateStr.length; i++) { hash = ((hash << 5) - hash) + dateStr.charCodeAt(i); hash = hash & hash; // Convert to 32bit integer } // 使用哈希值选择建议 const index = Math.abs(hash) % adviceList.length; return adviceList[index]; } catch (error) { console.error('[每日建议] 生成失败:', error); return adviceList[0]; // 返回默认建议 } } /** * 获取所有建议列表(用于测试或展示) * @returns {Array} 建议列表 */ function getAllAdvice() { return adviceList; } module.exports = { getDailyAdvice, getAllAdvice };