huaanglimeng/utils/dailyAdvice.js

88 lines
2.7 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 每日建议生成器
* 基于日期生成随机建议,确保同一天返回相同内容
*/
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<string>} 建议列表
*/
function getAllAdvice() {
return adviceList;
}
module.exports = {
getDailyAdvice,
getAllAdvice
};