чат Asia/Yekaterinburg
This commit is contained in:
@@ -234,7 +234,7 @@ function getStatusText(status) {
|
||||
|
||||
/**
|
||||
* Отправляет сводку о непрочитанных сообщениях в чатах всем пользователям,
|
||||
* у которых есть такие сообщения (раз в час).
|
||||
* у которых есть такие сообщения (раз в час, только с 8 до 21 по часовому поясу сервера).
|
||||
*/
|
||||
async function sendChatSummaryNotifications() {
|
||||
const db = getDb();
|
||||
@@ -243,6 +243,34 @@ async function sendChatSummaryNotifications() {
|
||||
return;
|
||||
}
|
||||
|
||||
// Определяем часовой пояс
|
||||
const timezone = process.env.TIMEZONE || 'Asia/Yekaterinburg';
|
||||
const now = new Date();
|
||||
// Форматтер для полного времени (логирование)
|
||||
const fullFormatter = new Intl.DateTimeFormat('ru-RU', {
|
||||
timeZone: timezone,
|
||||
year: 'numeric',
|
||||
month: '2-digit',
|
||||
day: '2-digit',
|
||||
hour: '2-digit',
|
||||
minute: '2-digit',
|
||||
second: '2-digit'
|
||||
});
|
||||
// Форматтер только для часа
|
||||
const hourFormatter = new Intl.DateTimeFormat('ru-RU', { hour: 'numeric', timeZone: timezone });
|
||||
const currentHour = parseInt(hourFormatter.format(now));
|
||||
|
||||
// Логируем текущее время и используемый час
|
||||
console.log(`📅 Текущее время (${timezone}): ${fullFormatter.format(now)} (час: ${currentHour})`);
|
||||
|
||||
// Проверка рабочего времени (8:00 – 21:00)
|
||||
if (currentHour < 8 || currentHour >= 21) {
|
||||
console.log(`🕒 [Чат-сводка] Пропущена: сейчас ${currentHour}:00 (рабочие часы 8-21), время отправки не наступило`);
|
||||
return;
|
||||
}
|
||||
|
||||
console.log(`✅ [Чат-сводка] Рабочие часы, отправляем уведомления...`);
|
||||
|
||||
// Получаем всех пользователей, у которых включены email уведомления
|
||||
const users = await new Promise((resolve, reject) => {
|
||||
db.all(`
|
||||
|
||||
Reference in New Issue
Block a user