[core] ChatWoot - resolve conversations option

This commit is contained in:
devlikepro committed 2025-11-04 14:00:32 +07:00
1 parent 58672fa1e1
commit e2330901e4
23 files changed
+604 -211

No files matched your search

+6 -1
View File
@@ -58,6 +58,10 @@ export function AddMessagesCommand(
.option('--bc, --broadcast', l.r('cli.cmd.messages.pull.option.broadcast'))
.option('-m, --media', l.r('cli.cmd.messages.pull.option.media'))
.option('--pause', l.r('cli.cmd.messages.pull.option.pause'))
.option(
'--rc, --resolve-conversations',
l.r('cli.cmd.messages.pull.option.resolve-conversations'),
)
.option(
'-b, --batch <number>',
l.r('cli.cmd.messages.pull.option.batch'),
@@ -113,7 +117,7 @@ export function AddMessagesCommand(
},
media: opts.media,
force: opts.force,
pause: !!opts.pause,
pause: opts.pause,
timeout: {
media: opts.timeoutMedia,
},
@@ -125,6 +129,7 @@ export function AddMessagesCommand(
channels: !opts.channels,
broadcast: !opts.broadcast,
},
resolveConversations: opts.resolveConversations,
};
const jobOptions: JobsOptions & JobDataTimeout = {
attempts: opts.attempts,
-1
View File
@@ -1,7 +1,6 @@
import ChatwootClient from '@figuro/chatwoot-sdk';
import type { conversation_message_create } from '@figuro/chatwoot-sdk/dist/models/conversation_message_create';
import { MessageType } from '@waha/apps/chatwoot/client/types';
import { IsCommandsChat } from '@waha/apps/chatwoot/client/ids';
export class Conversation {
public onError: (e: any) => void;
@@ -75,4 +75,14 @@ export class ConversationService {
throw error;
}
}
async resolve(conversationId: number): Promise<any> {
return this.accountAPI.conversations.toggleStatus({
accountId: this.config.accountId,
conversationId: conversationId,
data: {
status: 'resolved',
},
});
}
}
@@ -36,6 +36,7 @@ import { ErrorRenderer } from '@waha/apps/chatwoot/error/ErrorRenderer';
import { IsCommandsChat } from '@waha/apps/chatwoot/client/ids';
import { CommandPrefix } from '@waha/apps/chatwoot/cli';
import { QueueManager } from '@waha/apps/chatwoot/services/QueueManager';
import { addUnique } from '@waha/utils/list';
export enum ChatID {
ALL = 'all',
@@ -57,6 +58,7 @@ export type MessagesPullOptions = {
};
media: boolean;
ignore: IgnoreJidConfig;
resolveConversations: boolean;
};
interface Progress {
@@ -65,7 +67,16 @@ interface Progress {
ignored: number;
errors: number;
chats: string[];
last?: number;
messages: {
first?: number;
last?: number;
};
// Conversations
conversations: number[];
conversationResolve: {
success: number;
error: number;
};
}
const NullProgress: Progress = {
@@ -74,6 +85,15 @@ const NullProgress: Progress = {
ignored: 0,
errors: 0,
chats: [],
messages: {
first: 0,
last: 0,
},
conversations: [],
conversationResolve: {
success: 0,
error: 0,
},
};
function total(progress: Progress) {
@@ -154,13 +174,29 @@ class MessagesPullHandler {
progress.exists += p.exists;
progress.ignored += p.ignored;
progress.errors += p.errors;
progress.conversationResolve.success += p.conversationResolve.success;
progress.conversationResolve.error += p.conversationResolve.error;
}
// Chats
progress.chats = lodash.uniq(lodash.flatten(values.map((p) => p.chats)));
// Last timestamp
progress.last = lodash.max(values.map((p) => p.last || 0));
if (progress.last === 0) {
progress.last = undefined;
// Conversations
progress.conversations = lodash.uniq(
lodash.flatten(values.map((p) => p.conversations)),
);
// Messages timestamps
progress.messages.first = lodash.min(
values.map((p) => p.messages.first || Infinity),
);
if (progress.messages.first === Infinity) {
progress.messages.first = undefined;
}
progress.messages.last = lodash.max(
values.map((p) => p.messages.last || 0),
);
if (progress.messages.last === 0) {
progress.messages.last = undefined;
}
return progress;
}
@@ -181,21 +217,47 @@ class MessagesPullHandler {
}
}
/**
* Perform actions after all jobs are done
*/
async end(options: MessagesPullOptions, job: Job) {
if (job.parentKey) {
// Not end yet, have parent tasks to process
return await this.summaryProgress(job);
}
// Perform some actions after all jobs are done
const progress = await this.summaryProgress(job);
await job.updateProgress(progress);
await this.activity.completed(progress, options);
// Resume queues if paused
if (options.pause) {
await this.queueManager.resume();
await this.activity.queue(false);
}
// Progress summary
const progress = await this.summaryProgress(job);
await job.updateProgress(progress);
// Resolve conversations
if (options.resolveConversations) {
await this.resolveConversations(progress);
await job.updateProgress(progress);
}
// Report completed
await this.activity.completed(progress, options);
return progress;
}
protected async resolveConversations(progress: Progress) {
const service = this.container.ConversationService();
for (const conversationId of progress.conversations) {
try {
await service.resolve(conversationId);
progress.conversationResolve.success += 1;
} catch (err) {
progress.conversationResolve.error += 1;
}
}
}
async handle(options: MessagesPullOptions, job: Job): Promise<Job> {
if (options.chat === ChatID.SUMMARY) {
// Do nothing for "summary" chat
@@ -271,7 +333,8 @@ class MessagesPullHandler {
// Process
try {
progress.last = message.timestamp;
progress.messages.first = progress.messages.first || message.timestamp;
progress.messages.last = message.timestamp;
if (all && !jids.include(EngineHelper.ChatID(message))) {
progress.ignored += 1;
continue;
@@ -296,13 +359,14 @@ class MessagesPullHandler {
}
const chatwoot = await handler.handle(message);
progress.ok += chatwoot ? 1 : 0;
progress.exists += chatwoot ? 0 : 1;
if (
chatwoot &&
!progress.chats.includes(EngineHelper.ChatID(message))
) {
progress.chats.push(EngineHelper.ChatID(message));
if (chatwoot) {
progress.ok += 1;
addUnique(progress.chats, EngineHelper.ChatID(message));
if (info.conversationId) {
addUnique(progress.conversations, info.conversationId);
}
} else {
progress.exists += 1;
}
} catch (error) {
const renderer = new ErrorRenderer();
@@ -370,7 +434,18 @@ export class TaskActivity {
this.l.r('task.messages.progress', {
progress: progress,
chat: options.chat,
last: this.l.FormatTimestampOpts(progress.last, format, false),
messages: {
first: this.l.FormatTimestampOpts(
progress.messages.first,
format,
false,
),
last: this.l.FormatTimestampOpts(
progress.messages.last,
format,
false,
),
},
}),
);
}
@@ -442,6 +517,7 @@ export function MessagesPullStatusMessage(
const details = JobLink(job);
const options = job.data.options as MessagesPullOptions;
const payload = {
options: options,
chat: options.chat,
chats: progress.chats.length,
period: period(options),
@@ -449,7 +525,10 @@ export function MessagesPullStatusMessage(
state: lodash.capitalize(state ?? 'unknown'),
progress: progress,
details: details,
last: l.FormatTimestamp(progress.last, false),
messages: {
first: l.FormatTimestamp(progress.messages.first, false),
last: l.FormatTimestamp(progress.messages.last, false),
},
};
return l.r('task.messages.status', payload);
+1 -1
View File
@@ -133,7 +133,7 @@ export class DIContainer {
* @returns ConversationService instance
*/
@CacheSync()
private ConversationService(): ConversationService {
public ConversationService(): ConversationService {
return new ConversationService(
this.config,
this.AccountAPI(),
+29 -12
View File
@@ -564,6 +564,8 @@ cli.cmd.messages.pull.option.media:
cli.cmd.messages.pull.option.pause:
وضع مهمة سحب الرسائل في قائمة الانتظار وهي متوقفة مؤقتًا وإيقاف معالجة رسائل
واتساب الجديدة حتى تكتمل.
cli.cmd.messages.pull.option.resolve-conversations:
وضع علامة على المحادثات كمحلولة بعد معالجة كل رسائل السجل.
cli.cmd.messages.pull.error.pause-no-queue:
⛔ لا يمكن استخدام `--pause` لأن أمر **queue** معطَّل في هذا التكوين.
cli.cmd.queue.description: إدارة قوائم الانتظار.
@@ -618,21 +620,36 @@ task.messages.details:
أرسل "{{{prefix}}}messages status" للاطلاع على المزيد من التفاصيل.
task.messages.progress:
'⏳ رسائل {{{chat}}}: 🆕 {{progress.ok}}، 🟢 {{progress.exists}}، ⚪
{{progress.ignored}}، 🔴 {{progress.errors}}{{#last}} | 📅 {{{last}}}{{/last}}'
{{progress.ignored}}، 🔴 {{progress.errors}}{{#messages.last}} | 📅
{{{messages.last}}}{{/messages.last}}'
task.messages.completed:
✅ رسائل {{{chat}}} خلال {{{period}}} → 🆕 {{progress.ok}}، 🟢
{{progress.exists}}، ⚪ {{progress.ignored}}، 🔴 {{progress.errors}}
task.messages.status: |-
رسائل **{{{chat}}}** خلال الفترة ⏱️ **{{{period}}}**:
- ⚙️ حالة المهمة: **{{state}}**
{{#last}}
- 📅 آخر معالجة: **{{{last}}}**
{{/last}}
- 💬 تم إنشاؤها في: **{{{chats}}}** دردشات
- 🆕 تم إنشاؤها: **{{{progress.ok}}}** رسائل
- 🟢 موجودة مسبقًا: {{{progress.exists}}} رسائل
- ⚪ تم تجاهلها: {{{progress.ignored}}} رسائل
- 🔴 أخطاء: {{{progress.errors}}} رسائل
رسائل **{{{chat}}}** خلال الفترة ⏱️ **{{{period}}}**. ⚙️ حالة المهمة: **{{state}}**.
التفاصيل:
🗨️ الرسائل:
- 🆕 تم الإنشاء: **{{{progress.ok}}}**
- 🟢 موجودة مسبقًا: {{{progress.exists}}}
- ⚪ تم تجاهلها: {{{progress.ignored}}}
- 🔴 أخطاء: {{{progress.errors}}}
{{#messages.first}}
- 🗓️ الأقدم: **{{{messages.first}}}**
{{/messages.first}}
{{#messages.last}}
- 🗓️ الأحدث: **{{{messages.last}}}**
{{/messages.last}}
💬 دردشات واتساب:
- 🆕 رسائل جديدة في **{{{chats}}}** دردشات
{{#options.resolveConversations}}
🗣️ المحادثات:
- 🟢 تم حلها: **{{{progress.conversationResolve.success}}}**
{{#progress.conversationResolve.error}}
- 🔴 أخطاء: **{{{progress.conversationResolve.error}}}**
{{/progress.conversationResolve.error}}
{{/options.resolveConversations}}
التفاصيل:
[{{{details.text}}}]({{{details.url}}})
+29 -11
View File
@@ -569,6 +569,9 @@ cli.cmd.messages.pull.option.media:
cli.cmd.messages.pull.option.pause:
বার্তা টানার কাজটিকে বিরতি অবস্থায় কিউতে রাখে এবং শেষ না হওয়া পর্যন্ত নতুন
WhatsApp বার্তার প্রসেসিং বন্ধ রাখে।
cli.cmd.messages.pull.option.resolve-conversations:
সমস্ত ইতিহাস বার্তা প্রক্রিয়ার পর কথোপকথনগুলোকে সমাধান হয়েছে হিসেবে চিহ্নিত
করে।
cli.cmd.messages.pull.error.pause-no-queue:
⛔ `--pause` ব্যবহার করা যাবে না কারণ এই কনফিগারেশনে **queue** কমান্ড
নিষ্ক্রিয়।
@@ -620,21 +623,36 @@ task.messages.started: ⏳ বার্তা টানা হচ্ছে 💬
task.messages.details: আরও জানতে "{{{prefix}}}messages status" পাঠান।
task.messages.progress:
'⏳ বার্তা {{{chat}}}: 🆕 {{progress.ok}}, 🟢 {{progress.exists}}, ⚪
{{progress.ignored}}, 🔴 {{progress.errors}}{{#last}} | 📅 {{{last}}}{{/last}}'
{{progress.ignored}}, 🔴 {{progress.errors}}{{#messages.last}} | 📅
{{{messages.last}}}{{/messages.last}}'
task.messages.completed:
✅ বার্তা {{{chat}}} {{{period}}}-এ → 🆕 {{progress.ok}}, 🟢
{{progress.exists}}, ⚪ {{progress.ignored}}, 🔴 {{progress.errors}}
task.messages.status: |-
**{{{chat}}}**-এর বার্তা ⏱️ **{{{period}}}** সময়ে:
- ⚙️ কাজের অবস্থা: **{{state}}**
{{#last}}
- 📅 শেষ প্রসেস করা: **{{{last}}}**
{{/last}}
- 💬 তৈরি হয়েছে: **{{{chats}}}** চ্যাটে
- 🆕 তৈরি: **{{{progress.ok}}}** বার্তা
- 🟢 আগেই ছিল: {{{progress.exists}}} বার্তা
- ⚪ উপেক্ষা: {{{progress.ignored}}} বার্তা
- 🔴 ত্রুটি: {{{progress.errors}}} বার্তা
**{{{chat}}}**-এর বার্তা ⏱️ **{{{period}}}** সময়ে। ⚙️ কাজের অবস্থা: **{{state}}**.
🗨️ বার্তা:
- 🆕 তৈরি: **{{{progress.ok}}}**
- 🟢 আগেই ছিল: {{{progress.exists}}}
- ⚪ উপেক্ষা: {{{progress.ignored}}}
- 🔴 ত্রুটি: {{{progress.errors}}}
{{#messages.first}}
- 🗓️ প্রাচীনতম: **{{{messages.first}}}**
{{/messages.first}}
{{#messages.last}}
- 🗓️ সর্বশেষ: **{{{messages.last}}}**
{{/messages.last}}
💬 WhatsApp চ্যাট:
- 🆕 **{{{chats}}}** চ্যাটে নতুন বার্তা
{{#options.resolveConversations}}
🗣️ কথোপকথন:
- 🟢 সমাধান হয়েছে: **{{{progress.conversationResolve.success}}}**
{{#progress.conversationResolve.error}}
- 🔴 ত্রুটি: **{{{progress.conversationResolve.error}}}**
{{/progress.conversationResolve.error}}
{{/options.resolveConversations}}
বিস্তারিত:
[{{{details.text}}}]({{{details.url}}})
+30 -12
View File
@@ -584,6 +584,9 @@ cli.cmd.messages.pull.option.media:
cli.cmd.messages.pull.option.pause:
Stellt den Nachrichtenabruf in der Warteschlange auf Pause und stoppt neue
WhatsApp-Verarbeitung bis zum Abschluss.
cli.cmd.messages.pull.option.resolve-conversations:
Markiert die Gespräche nach Abschluss aller historischen Nachrichten als
erledigt.
cli.cmd.messages.pull.error.pause-no-queue:
⛔ `--pause` kann nicht verwendet werden, weil der **queue**-Befehl in dieser
Konfiguration deaktiviert ist.
@@ -642,21 +645,36 @@ task.messages.details:
Senden Sie "{{{prefix}}}messages status", um weitere Details zu sehen.
task.messages.progress:
'⏳ Nachrichten {{{chat}}}: 🆕 {{progress.ok}}, 🟢 {{progress.exists}}, ⚪
{{progress.ignored}}, 🔴 {{progress.errors}}{{#last}} | 📅 {{{last}}}{{/last}}'
{{progress.ignored}}, 🔴 {{progress.errors}}{{#messages.last}} | 📅
{{{messages.last}}}{{/messages.last}}'
task.messages.completed:
✅ Nachrichten {{{chat}}} in {{{period}}} → 🆕 {{progress.ok}}, 🟢
{{progress.exists}}, ⚪ {{progress.ignored}}, 🔴 {{progress.errors}}
task.messages.status: |-
Nachrichten **{{{chat}}}** im Zeitraum ⏱️ **{{{period}}}**:
- ⚙️ Jobstatus: **{{state}}**
{{#last}}
- 📅 Zuletzt verarbeitet: **{{{last}}}**
{{/last}}
- 💬 Erstellt in: **{{{chats}}}** Chats
- 🆕 Erstellt: **{{{progress.ok}}}** Nachrichten
- 🟢 Bereits vorhanden: {{{progress.exists}}} Nachrichten
- ⚪ Ignoriert: {{{progress.ignored}}} Nachrichten
- 🔴 Fehler: {{{progress.errors}}} Nachrichten
Nachrichten **{{{chat}}}** im Zeitraum ⏱️ **{{{period}}}**. ⚙️ Jobstatus: **{{state}}**.
Details:
🗨️ Nachrichten:
- 🆕 Erstellt: **{{{progress.ok}}}**
- 🟢 Bereits vorhanden: {{{progress.exists}}}
- ⚪ Ignoriert: {{{progress.ignored}}}
- 🔴 Fehler: {{{progress.errors}}}
{{#messages.first}}
- 🗓️ Älteste: **{{{messages.first}}}**
{{/messages.first}}
{{#messages.last}}
- 🗓️ Neueste: **{{{messages.last}}}**
{{/messages.last}}
💬 WhatsApp-Chats:
- 🆕 Neue Nachrichten in **{{{chats}}}** Chats
{{#options.resolveConversations}}
🗣️ Konversationen:
- 🟢 Aufgelöst: **{{{progress.conversationResolve.success}}}**
{{#progress.conversationResolve.error}}
- 🔴 Fehler: **{{{progress.conversationResolve.error}}}**
{{/progress.conversationResolve.error}}
{{/options.resolveConversations}}
Details:
[{{{details.text}}}]({{{details.url}}})
+28 -11
View File
@@ -437,6 +437,9 @@ cli.cmd.messages.pull.option.media: |-
cli.cmd.messages.pull.option.pause: |-
Enqueue the messages pull job in a paused state, halting new WhatsApp message processing until the pull completes.
cli.cmd.messages.pull.option.resolve-conversations: |-
Mark the conversations as resolved after all history messages are processed.
cli.cmd.messages.pull.error.pause-no-queue: |-
⛔ Cannot use `--pause` because the **queue** command is disabled in this app configuration.
@@ -600,22 +603,36 @@ task.messages.details: |-
Send "{{{prefix}}}messages status" to see more details.
task.messages.progress: |-
⏳ Messages {{{chat}}}: 🆕 {{progress.ok}}, 🟢 {{progress.exists}}, ⚪ {{progress.ignored}}, 🔴 {{progress.errors}}{{#last}} | 📅 {{{last}}}{{/last}}
⏳ Messages {{{chat}}}: 🆕 {{progress.ok}}, 🟢 {{progress.exists}}, ⚪ {{progress.ignored}}, 🔴 {{progress.errors}}{{#messages.last}} | 📅 {{{messages.last}}}{{/messages.last}}
task.messages.completed: |-
✅ Messages {{{chat}}} in {{{period}}} → 🆕 {{progress.ok}}, 🟢 {{progress.exists}}, ⚪ {{progress.ignored}}, 🔴 {{progress.errors}}
task.messages.status: |-
Messages **{{{chat}}}** in ⏱️ **{{{period}}}** period:
- ⚙️ Job State: **{{state}}**
{{#last}}
- 📅 Last Processed: **{{{last}}}**
{{/last}}
- 💬 Created in: **{{{chats}}}** chats
- 🆕 Created: **{{{progress.ok}}}** messages
- 🟢 Already exists: {{{progress.exists}}} messages
- ⚪ Ignored: {{{progress.ignored}}} messages
- 🔴 Errors: {{{progress.errors}}} messages
Messages **{{{chat}}}** in ⏱️ **{{{period}}}** period. ⚙️ Job State: **{{state}}**.
🗨️ Messages:
- 🆕 Created: **{{{progress.ok}}}**
- 🟢 Already exists: {{{progress.exists}}}
- ⚪ Ignored: {{{progress.ignored}}}
- 🔴 Errors: {{{progress.errors}}}
{{#messages.first}}
- 🗓️ Earliest: **{{{messages.first}}}**
{{/messages.first}}
{{#messages.last}}
- 🗓️ Latest: **{{{messages.last}}}**
{{/messages.last}}
💬 WhatsApp Chats:
- 🆕 New messages in **{{{chats}}}** chats
{{#options.resolveConversations}}
🗣️ Conversations:
- 🟢 Resolved: **{{{progress.conversationResolve.success}}}**
{{#progress.conversationResolve.error}}
- 🔴 Errors: **{{{progress.conversationResolve.error}}}**
{{/progress.conversationResolve.error}}
{{/options.resolveConversations}}
Details:
[{{{details.text}}}]({{{details.url}}})
+28 -11
View File
@@ -581,6 +581,8 @@ cli.cmd.messages.pull.option.media:
cli.cmd.messages.pull.option.pause:
Encola el trabajo de extracción de mensajes en estado pausado, deteniendo el
procesamiento de nuevos mensajes de WhatsApp hasta que finalice.
cli.cmd.messages.pull.option.resolve-conversations:
Marca las conversaciones como resueltas después de procesar todo el historial.
cli.cmd.messages.pull.error.pause-no-queue:
⛔ No se puede usar `--pause` porque el comando **queue** está deshabilitado
en esta configuración de la aplicación.
@@ -640,21 +642,36 @@ task.messages.details:
Envía "{{{prefix}}}messages status" para ver más detalles.
task.messages.progress:
'⏳ Mensajes {{{chat}}}: 🆕 {{progress.ok}}, 🟢 {{progress.exists}}, ⚪
{{progress.ignored}}, 🔴 {{progress.errors}}{{#last}} | 📅 {{{last}}}{{/last}}'
{{progress.ignored}}, 🔴 {{progress.errors}}{{#messages.last}} | 📅
{{{messages.last}}}{{/messages.last}}'
task.messages.completed:
✅ Mensajes {{{chat}}} en {{{period}}} → 🆕 {{progress.ok}}, 🟢
{{progress.exists}}, ⚪ {{progress.ignored}}, 🔴 {{progress.errors}}
task.messages.status: |-
Mensajes **{{{chat}}}** en el periodo ⏱️ **{{{period}}}**:
- ⚙️ Estado del trabajo: **{{state}}**
{{#last}}
- 📅 Último procesado: **{{{last}}}**
{{/last}}
- 💬 Creados en: **{{{chats}}}** chats
- 🆕 Creados: **{{{progress.ok}}}** mensajes
- 🟢 Ya existen: {{{progress.exists}}} mensajes
- ⚪ Ignorados: {{{progress.ignored}}} mensajes
- 🔴 Errores: {{{progress.errors}}} mensajes
Mensajes **{{{chat}}}** en el periodo ⏱️ **{{{period}}}**. ⚙️ Estado del trabajo: **{{state}}**.
🗨️ Mensajes:
- 🆕 Creados: **{{{progress.ok}}}**
- 🟢 Ya existen: {{{progress.exists}}}
- ⚪ Ignorados: {{{progress.ignored}}}
- 🔴 Errores: {{{progress.errors}}}
{{#messages.first}}
- 🗓️ Más antiguo: **{{{messages.first}}}**
{{/messages.first}}
{{#messages.last}}
- 🗓️ Más reciente: **{{{messages.last}}}**
{{/messages.last}}
💬 Chats de WhatsApp:
- 🆕 Nuevos mensajes en **{{{chats}}}** chats
{{#options.resolveConversations}}
🗣️ Conversaciones:
- 🟢 Resueltas: **{{{progress.conversationResolve.success}}}**
{{#progress.conversationResolve.error}}
- 🔴 Errores: **{{{progress.conversationResolve.error}}}**
{{/progress.conversationResolve.error}}
{{/options.resolveConversations}}
Detalles:
[{{{details.text}}}]({{{details.url}}})
+29 -11
View File
@@ -572,6 +572,9 @@ cli.cmd.messages.pull.option.media:
cli.cmd.messages.pull.option.pause:
کار دریافت پیام‌ها را در حالت توقف در صف قرار می‌دهد و پردازش پیام‌های جدید
واتساپ را تا پایان متوقف می‌کند.
cli.cmd.messages.pull.option.resolve-conversations:
پس از پردازش تمام پیام‌های تاریخچه، مکالمه‌ها را به‌عنوان حل‌شده علامت‌گذاری
می‌کند.
cli.cmd.messages.pull.error.pause-no-queue:
⛔ امکان استفاده از `--pause` نیست زیرا فرمان **queue** در این پیکربندی
غیرفعال است.
@@ -626,21 +629,36 @@ task.messages.details:
برای جزئیات بیشتر "{{{prefix}}}messages status" را ارسال کنید.
task.messages.progress:
'⏳ پیام‌های {{{chat}}}: 🆕 {{progress.ok}}، 🟢 {{progress.exists}}، ⚪
{{progress.ignored}}، 🔴 {{progress.errors}}{{#last}} | 📅 {{{last}}}{{/last}}'
{{progress.ignored}}، 🔴 {{progress.errors}}{{#messages.last}} | 📅
{{{messages.last}}}{{/messages.last}}'
task.messages.completed:
✅ پیام‌های {{{chat}}} در {{{period}}} → 🆕 {{progress.ok}}، 🟢
{{progress.exists}}، ⚪ {{progress.ignored}}، 🔴 {{progress.errors}}
task.messages.status: |-
پیام‌های **{{{chat}}}** در بازه ⏱️ **{{{period}}}**:
- ⚙️ وضعیت کار: **{{state}}**
{{#last}}
- 📅 آخرین پردازش: **{{{last}}}**
{{/last}}
- 💬 ایجاد شده در: **{{{chats}}}** گفت‌وگو
- 🆕 ایجاد شده: **{{{progress.ok}}}** پیام
- 🟢 موجود: {{{progress.exists}}} پیام
- ⚪ نادیده گرفته شده: {{{progress.ignored}}} پیام
- 🔴 خطا: {{{progress.errors}}} پیام
پیام‌های **{{{chat}}}** در بازه ⏱️ **{{{period}}}**. ⚙️ وضعیت کار: **{{state}}**.
🗨️ پیام‌ها:
- 🆕 ایجاد شده: **{{{progress.ok}}}**
- 🟢 موجود: {{{progress.exists}}}
- ⚪ نادیده گرفته شده: {{{progress.ignored}}}
- 🔴 خطا: {{{progress.errors}}}
{{#messages.first}}
- 🗓️ قدیمی‌ترین: **{{{messages.first}}}**
{{/messages.first}}
{{#messages.last}}
- 🗓️ جدیدترین: **{{{messages.last}}}**
{{/messages.last}}
💬 گفت‌وگوهای واتساپ:
- 🆕 پیام‌های جدید در **{{{chats}}}** گفت‌وگو
{{#options.resolveConversations}}
🗣️ مکالمه‌ها:
- 🟢 حل شد: **{{{progress.conversationResolve.success}}}**
{{#progress.conversationResolve.error}}
- 🔴 خطا: **{{{progress.conversationResolve.error}}}**
{{/progress.conversationResolve.error}}
{{/options.resolveConversations}}
جزئیات:
[{{{details.text}}}]({{{details.url}}})
+29 -11
View File
@@ -580,6 +580,9 @@ cli.cmd.messages.pull.option.media:
cli.cmd.messages.pull.option.pause:
Met la tâche de récupération en file d’attente à l’arrêt, suspendant les
nouveaux messages WhatsApp jusqu’à la fin.
cli.cmd.messages.pull.option.resolve-conversations:
Marque les conversations comme résolues après le traitement de tout
l’historique.
cli.cmd.messages.pull.error.pause-no-queue:
⛔ Impossible d’utiliser `--pause` car la commande **queue** est désactivée
dans cette configuration.
@@ -639,21 +642,36 @@ task.messages.details:
Envoyez "{{{prefix}}}messages status" pour plus de détails.
task.messages.progress:
'⏳ Messages {{{chat}}} : 🆕 {{progress.ok}}, 🟢 {{progress.exists}}, ⚪
{{progress.ignored}}, 🔴 {{progress.errors}}{{#last}} | 📅 {{{last}}}{{/last}}'
{{progress.ignored}}, 🔴 {{progress.errors}}{{#messages.last}} | 📅
{{{messages.last}}}{{/messages.last}}'
task.messages.completed:
✅ Messages {{{chat}}} pendant {{{period}}} → 🆕 {{progress.ok}}, 🟢
{{progress.exists}}, ⚪ {{progress.ignored}}, 🔴 {{progress.errors}}
task.messages.status: |-
Messages **{{{chat}}}** sur la période ⏱️ **{{{period}}}** :
- ⚙️ État de la tâche : **{{state}}**
{{#last}}
- 📅 Dernier traité : **{{{last}}}**
{{/last}}
- 💬 Créés dans : **{{{chats}}}** conversations
- 🆕 Créés : **{{{progress.ok}}}** messages
- 🟢 Déjà existants : {{{progress.exists}}} messages
- ⚪ Ignorés : {{{progress.ignored}}} messages
- 🔴 Erreurs : {{{progress.errors}}} messages
Messages **{{{chat}}}** sur la période ⏱️ **{{{period}}}**. ⚙️ État de la tâche : **{{state}}**.
🗨️ Messages :
- 🆕 Créés : **{{{progress.ok}}}**
- 🟢 Déjà existants : {{{progress.exists}}}
- ⚪ Ignorés : {{{progress.ignored}}}
- 🔴 Erreurs : {{{progress.errors}}}
{{#messages.first}}
- 🗓️ Plus ancien : **{{{messages.first}}}**
{{/messages.first}}
{{#messages.last}}
- 🗓️ Plus récent : **{{{messages.last}}}**
{{/messages.last}}
💬 Conversations WhatsApp :
- 🆕 Nouveaux messages dans **{{{chats}}}** conversations
{{#options.resolveConversations}}
🗣️ Conversations :
- 🟢 Résolues : **{{{progress.conversationResolve.success}}}**
{{#progress.conversationResolve.error}}
- 🔴 Erreurs : **{{{progress.conversationResolve.error}}}**
{{/progress.conversationResolve.error}}
{{/options.resolveConversations}}
Détails :
[{{{details.text}}}]({{{details.url}}})
+28 -11
View File
@@ -564,6 +564,8 @@ cli.cmd.messages.pull.option.media:
cli.cmd.messages.pull.option.pause:
הכנסת משימת המשיכה לתור במצב מושהה ועצירת עיבוד הודעות WhatsApp חדשות עד
לסיום.
cli.cmd.messages.pull.option.resolve-conversations:
מסמן את השיחות כפתורות לאחר שכל הודעות ההיסטוריה עובדו.
cli.cmd.messages.pull.error.pause-no-queue:
⛔ לא ניתן להשתמש ב-`--pause` כי הפקודה **queue** מושבתת בתצורה זו.
cli.cmd.queue.description: ניהול תורים.
@@ -611,21 +613,36 @@ task.messages.started: ⏳ מושכים הודעות 💬 {{{chat}}} ⏱️ {{{p
task.messages.details: שלחו "{{{prefix}}}messages status" לעוד פרטים.
task.messages.progress:
'⏳ הודעות {{{chat}}}: 🆕 {{progress.ok}}, 🟢 {{progress.exists}}, ⚪
{{progress.ignored}}, 🔴 {{progress.errors}}{{#last}} | 📅 {{{last}}}{{/last}}'
{{progress.ignored}}, 🔴 {{progress.errors}}{{#messages.last}} | 📅
{{{messages.last}}}{{/messages.last}}'
task.messages.completed:
✅ הודעות {{{chat}}} במהלך {{{period}}} → 🆕 {{progress.ok}}, 🟢
{{progress.exists}}, ⚪ {{progress.ignored}}, 🔴 {{progress.errors}}
task.messages.status: |-
הודעות **{{{chat}}}** בתקופה ⏱️ **{{{period}}}**:
- ⚙️ מצב המשימה: **{{state}}**
{{#last}}
- 📅 תאריך עיבוד אחרון: **{{{last}}}**
{{/last}}
- 💬 נוצרו ב-**{{{chats}}}** שיחות
- 🆕 נוצרו: **{{{progress.ok}}}** הודעות
- 🟢 קיימות כבר: {{{progress.exists}}} הודעות
- ⚪ הוזנחו: {{{progress.ignored}}} הודעות
- 🔴 שגיאות: {{{progress.errors}}} הודעות
הודעות **{{{chat}}}** בתקופה ⏱️ **{{{period}}}**. ⚙️ מצב המשימה: **{{state}}**.
🗨️ הודעות:
- 🆕 נוצרו: **{{{progress.ok}}}**
- 🟢 קיימות כבר: {{{progress.exists}}}
- ⚪ הוזנחו: {{{progress.ignored}}}
- 🔴 שגיאות: {{{progress.errors}}}
{{#messages.first}}
- 🗓️ ישן ביותר: **{{{messages.first}}}**
{{/messages.first}}
{{#messages.last}}
- 🗓️ חדש ביותר: **{{{messages.last}}}**
{{/messages.last}}
💬 שיחות WhatsApp:
- 🆕 הודעות חדשות ב-**{{{chats}}}** שיחות
{{#options.resolveConversations}}
🗣️ שיחות:
- 🟢 נפתרו: **{{{progress.conversationResolve.success}}}**
{{#progress.conversationResolve.error}}
- 🔴 שגיאות: **{{{progress.conversationResolve.error}}}**
{{/progress.conversationResolve.error}}
{{/options.resolveConversations}}
פרטים:
[{{{details.text}}}]({{{details.url}}})
+28 -11
View File
@@ -570,6 +570,8 @@ cli.cmd.messages.pull.option.media:
cli.cmd.messages.pull.option.pause:
संदेश खींचने के कार्य को रोके गए अवस्था में कतार में डालें और पूरा होने तक नए
WhatsApp संदेशों की प्रोसेसिंग रोकें।
cli.cmd.messages.pull.option.resolve-conversations:
सभी इतिहास संदेश संसाधित होने के बाद बातचीत को हल किया हुआ चिह्नित करता है।
cli.cmd.messages.pull.error.pause-no-queue:
⛔ `--pause` का उपयोग नहीं किया जा सकता क्योंकि इस कॉन्फ़िगरेशन में **queue**
कमांड अक्षम है।
@@ -624,21 +626,36 @@ task.messages.started:
task.messages.details: और जानकारी के लिए "{{{prefix}}}messages status" भेजें।
task.messages.progress:
'⏳ संदेश {{{chat}}}: 🆕 {{progress.ok}}, 🟢 {{progress.exists}}, ⚪
{{progress.ignored}}, 🔴 {{progress.errors}}{{#last}} | 📅 {{{last}}}{{/last}}'
{{progress.ignored}}, 🔴 {{progress.errors}}{{#messages.last}} | 📅
{{{messages.last}}}{{/messages.last}}'
task.messages.completed:
✅ संदेश {{{chat}}} में {{{period}}} → 🆕 {{progress.ok}}, 🟢
{{progress.exists}}, ⚪ {{progress.ignored}}, 🔴 {{progress.errors}}
task.messages.status: |-
**{{{chat}}}** के संदेश ⏱️ **{{{period}}}** अवधि में:
- ⚙️ कार्य की स्थिति: **{{state}}**
{{#last}}
- 📅 अंतिम संसाधित: **{{{last}}}**
{{/last}}
- 💬 बनाए गए चैट: **{{{chats}}}**
- 🆕 बनाए गए: **{{{progress.ok}}}** संदेश
- 🟢 पहले से मौजूद: {{{progress.exists}}} संदेश
- ⚪ अनदेखा: {{{progress.ignored}}} संदेश
- 🔴 त्रुटियाँ: {{{progress.errors}}} संदेश
**{{{chat}}}** के संदेश ⏱️ **{{{period}}}** अवधि में। ⚙️ कार्य की स्थिति: **{{state}}**.
🗨️ संदेश:
- 🆕 बनाए गए: **{{{progress.ok}}}**
- 🟢 पहले से मौजूद: {{{progress.exists}}}
- ⚪ अनदेखा: {{{progress.ignored}}}
- 🔴 त्रुटियाँ: {{{progress.errors}}}
{{#messages.first}}
- 🗓️ सबसे पुराना: **{{{messages.first}}}**
{{/messages.first}}
{{#messages.last}}
- 🗓️ नवीनतम: **{{{messages.last}}}**
{{/messages.last}}
💬 WhatsApp चैट:
- 🆕 **{{{chats}}}** चैट में नए संदेश
{{#options.resolveConversations}}
🗣️ बातचीत:
- 🟢 हल हुईं: **{{{progress.conversationResolve.success}}}**
{{#progress.conversationResolve.error}}
- 🔴 त्रुटियाँ: **{{{progress.conversationResolve.error}}}**
{{/progress.conversationResolve.error}}
{{/options.resolveConversations}}
विवरण:
[{{{details.text}}}]({{{details.url}}})
+28 -11
View File
@@ -570,6 +570,8 @@ cli.cmd.messages.pull.option.media:
cli.cmd.messages.pull.option.pause:
Masukkan pekerjaan penarikan pesan ke antrian dalam keadaan jeda dan hentikan
pemrosesan pesan WhatsApp baru sampai selesai.
cli.cmd.messages.pull.option.resolve-conversations:
Menandai percakapan sebagai selesai setelah semua pesan riwayat diproses.
cli.cmd.messages.pull.error.pause-no-queue:
⛔ Tidak dapat menggunakan `--pause` karena perintah **queue** dinonaktifkan
pada konfigurasi ini.
@@ -624,21 +626,36 @@ task.messages.details:
Kirim "{{{prefix}}}messages status" untuk melihat rincian.
task.messages.progress:
'⏳ Pesan {{{chat}}}: 🆕 {{progress.ok}}, 🟢 {{progress.exists}}, ⚪
{{progress.ignored}}, 🔴 {{progress.errors}}{{#last}} | 📅 {{{last}}}{{/last}}'
{{progress.ignored}}, 🔴 {{progress.errors}}{{#messages.last}} | 📅
{{{messages.last}}}{{/messages.last}}'
task.messages.completed:
✅ Pesan {{{chat}}} selama {{{period}}} → 🆕 {{progress.ok}}, 🟢
{{progress.exists}}, ⚪ {{progress.ignored}}, 🔴 {{progress.errors}}
task.messages.status: |-
Pesan **{{{chat}}}** dalam periode ⏱️ **{{{period}}}**:
- ⚙️ Status pekerjaan: **{{state}}**
{{#last}}
- 📅 Terakhir diproses: **{{{last}}}**
{{/last}}
- 💬 Dibuat di: **{{{chats}}}** percakapan
- 🆕 Dibuat: **{{{progress.ok}}}** pesan
- 🟢 Sudah ada: {{{progress.exists}}} pesan
- ⚪ Diabaikan: {{{progress.ignored}}} pesan
- 🔴 Kesalahan: {{{progress.errors}}} pesan
Pesan **{{{chat}}}** dalam periode ⏱️ **{{{period}}}**. ⚙️ Status pekerjaan: **{{state}}**.
🗨️ Pesan:
- 🆕 Dibuat: **{{{progress.ok}}}**
- 🟢 Sudah ada: {{{progress.exists}}}
- ⚪ Diabaikan: {{{progress.ignored}}}
- 🔴 Kesalahan: {{{progress.errors}}}
{{#messages.first}}
- 🗓️ Paling awal: **{{{messages.first}}}**
{{/messages.first}}
{{#messages.last}}
- 🗓️ Terbaru: **{{{messages.last}}}**
{{/messages.last}}
💬 Chat WhatsApp:
- 🆕 Pesan baru di **{{{chats}}}** chat
{{#options.resolveConversations}}
🗣️ Percakapan:
- 🟢 Selesai: **{{{progress.conversationResolve.success}}}**
{{#progress.conversationResolve.error}}
- 🔴 Kesalahan: **{{{progress.conversationResolve.error}}}**
{{/progress.conversationResolve.error}}
{{/options.resolveConversations}}
Detail:
[{{{details.text}}}]({{{details.url}}})
+29 -11
View File
@@ -570,6 +570,9 @@ cli.cmd.messages.pull.option.media:
cli.cmd.messages.pull.option.pause:
ਸੁਨੇਹੇ ਖਿੱਚਣ ਦਾ ਕੰਮ ਠਹਿਰੇ ਹੋਏ ਹਾਲਤ ਵਿੱਚ ਕਤਾਰ ਵਿੱਚ ਪਾਓ ਅਤੇ ਮੁਕੰਮਲ ਹੋਣ ਤੱਕ ਨਵੇਂ
WhatsApp ਸੁਨੇਹਿਆਂ ਦੀ ਪ੍ਰਕਿਰਿਆ ਰੋਕੋ।
cli.cmd.messages.pull.option.resolve-conversations:
ਸਾਰੇ ਇਤਿਹਾਸਿਕ ਸੁਨੇਹੇ ਪ੍ਰਕਿਰਿਆ ਕਰਨ ਤੋਂ ਬਾਅਦ ਗੱਲਬਾਤਾਂ ਨੂੰ ਹੱਲ ਹੋਇਆ ਚਿੰਨ੍ਹਤ ਕਰਦਾ
ਹੈ।
cli.cmd.messages.pull.error.pause-no-queue:
⛔ `--pause` ਵਰਤ ਨਹੀਂ ਸਕਦੇ ਕਿਉਂਕਿ ਇਸ ਸੰਰਚਨਾ ਵਿੱਚ **queue** ਹੁਕਮ ਅਸਮਰੱਥ ਹੈ।
cli.cmd.queue.description: ਕਤਾਰਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ।
@@ -622,21 +625,36 @@ task.messages.started:
task.messages.details: ਵਧੇਰੇ ਵੇਰਵਿਆਂ ਲਈ "{{{prefix}}}messages status" ਭੇਜੋ।
task.messages.progress:
'⏳ ਸੁਨੇਹੇ {{{chat}}}: 🆕 {{progress.ok}}, 🟢 {{progress.exists}}, ⚪
{{progress.ignored}}, 🔴 {{progress.errors}}{{#last}} | 📅 {{{last}}}{{/last}}'
{{progress.ignored}}, 🔴 {{progress.errors}}{{#messages.last}} | 📅
{{{messages.last}}}{{/messages.last}}'
task.messages.completed:
✅ ਸੁਨੇਹੇ {{{chat}}} ਵਿਚ {{{period}}} → 🆕 {{progress.ok}}, 🟢
{{progress.exists}}, ⚪ {{progress.ignored}}, 🔴 {{progress.errors}}
task.messages.status: |-
**{{{chat}}}** ਦੇ ਸੁਨੇਹੇ ⏱️ **{{{period}}}** ਸਮੇਂ ਵਿੱਚ:
- ⚙️ ਕੰਮ ਦੀ ਸਥਿਤੀ: **{{state}}**
{{#last}}
- 📅 ਆਖ਼ਰੀ ਪ੍ਰਕਿਰਿਆ: **{{{last}}}**
{{/last}}
- 💬 ਬਣਾਇਆ ਗਿਆ: **{{{chats}}}** ਚੈਟਾਂ ਵਿੱਚ
- 🆕 ਬਣਾਇਆ: **{{{progress.ok}}}** ਸੁਨੇਹੇ
- 🟢 ਪਹਿਲਾਂ ਤੋਂ ਮੌਜੂਦ: {{{progress.exists}}} ਸੁਨੇਹੇ
- ⚪ ਅਣਦੇਖੇ: {{{progress.ignored}}} ਸੁਨੇਹੇ
- 🔴 ਗਲਤੀਆਂ: {{{progress.errors}}} ਸੁਨੇਹੇ
**{{{chat}}}** ਦੇ ਸੁਨੇਹੇ ⏱️ **{{{period}}}** ਸਮੇਂ ਵਿੱਚ। ⚙️ ਕੰਮ ਦੀ ਸਥਿਤੀ: **{{state}}**।
🗨️ ਸੁਨੇਹੇ:
- 🆕 ਬਣਾਇਆ: **{{{progress.ok}}}**
- 🟢 ਪਹਿਲਾਂ ਤੋਂ ਮੌਜੂਦ: {{{progress.exists}}}
- ⚪ ਅਣਦੇਖੇ: {{{progress.ignored}}}
- 🔴 ਗਲਤੀਆਂ: {{{progress.errors}}}
{{#messages.first}}
- 🗓️ ਸਭ ਤੋਂ ਪੁਰਾਣਾ: **{{{messages.first}}}**
{{/messages.first}}
{{#messages.last}}
- 🗓️ ਸਭ ਤੋਂ ਨਵਾਂ: **{{{messages.last}}}**
{{/messages.last}}
💬 WhatsApp ਚੈਟ:
- 🆕 **{{{chats}}}** ਚੈਟਾਂ ਵਿੱਚ ਨਵੇਂ ਸੁਨੇਹੇ
{{#options.resolveConversations}}
🗣️ ਗੱਲਬਾਤਾਂ:
- 🟢 ਹੱਲ ਹੋਈਆਂ: **{{{progress.conversationResolve.success}}}**
{{#progress.conversationResolve.error}}
- 🔴 ਗਲਤੀਆਂ: **{{{progress.conversationResolve.error}}}**
{{/progress.conversationResolve.error}}
{{/options.resolveConversations}}
ਵੇਰਵੇ:
[{{{details.text}}}]({{{details.url}}})
+29 -11
View File
@@ -578,6 +578,9 @@ cli.cmd.messages.pull.option.media:
cli.cmd.messages.pull.option.pause:
Enfileira o trabalho de busca de mensagens em estado pausado, interrompendo o
processamento de novos WhatsApp até finalizar.
cli.cmd.messages.pull.option.resolve-conversations:
Marca as conversas como resolvidas depois que todas as mensagens do histórico
forem processadas.
cli.cmd.messages.pull.error.pause-no-queue:
⛔ Não é possível usar `--pause` porque o comando **queue** está desabilitado
nesta configuração.
@@ -634,21 +637,36 @@ task.messages.details:
Envie "{{{prefix}}}messages status" para ver mais detalhes.
task.messages.progress:
'⏳ Mensagens {{{chat}}}: 🆕 {{progress.ok}}, 🟢 {{progress.exists}}, ⚪
{{progress.ignored}}, 🔴 {{progress.errors}}{{#last}} | 📅 {{{last}}}{{/last}}'
{{progress.ignored}}, 🔴 {{progress.errors}}{{#messages.last}} | 📅
{{{messages.last}}}{{/messages.last}}'
task.messages.completed:
✅ Mensagens {{{chat}}} em {{{period}}} → 🆕 {{progress.ok}}, 🟢
{{progress.exists}}, ⚪ {{progress.ignored}}, 🔴 {{progress.errors}}
task.messages.status: |-
Mensagens **{{{chat}}}** no período ⏱️ **{{{period}}}**:
- ⚙️ Estado do trabalho: **{{state}}**
{{#last}}
- 📅 Último processado: **{{{last}}}**
{{/last}}
- 💬 Criadas em: **{{{chats}}}** conversas
- 🆕 Criadas: **{{{progress.ok}}}** mensagens
- 🟢 Já existem: {{{progress.exists}}} mensagens
- ⚪ Ignoradas: {{{progress.ignored}}} mensagens
- 🔴 Erros: {{{progress.errors}}} mensagens
Mensagens **{{{chat}}}** no período ⏱️ **{{{period}}}**. ⚙️ Estado do trabalho: **{{state}}**.
🗨️ Mensagens:
- 🆕 Criadas: **{{{progress.ok}}}**
- 🟢 Já existem: {{{progress.exists}}}
- ⚪ Ignoradas: {{{progress.ignored}}}
- 🔴 Erros: {{{progress.errors}}}
{{#messages.first}}
- 🗓️ Mais antiga: **{{{messages.first}}}**
{{/messages.first}}
{{#messages.last}}
- 🗓️ Mais recente: **{{{messages.last}}}**
{{/messages.last}}
💬 Conversas do WhatsApp:
- 🆕 Novas mensagens em **{{{chats}}}** conversas
{{#options.resolveConversations}}
🗣️ Conversas:
- 🟢 Resolvidas: **{{{progress.conversationResolve.success}}}**
{{#progress.conversationResolve.error}}
- 🔴 Erros: **{{{progress.conversationResolve.error}}}**
{{/progress.conversationResolve.error}}
{{/options.resolveConversations}}
Detalhes:
[{{{details.text}}}]({{{details.url}}})
+28 -11
View File
@@ -570,6 +570,8 @@ cli.cmd.messages.pull.option.media:
cli.cmd.messages.pull.option.pause:
Поставить задачу загрузки сообщений в очередь на паузу и остановить обработку
новых сообщений WhatsApp до завершения.
cli.cmd.messages.pull.option.resolve-conversations:
Отмечает беседы как завершённые после обработки всей истории сообщений.
cli.cmd.messages.pull.error.pause-no-queue:
⛔ Невозможно использовать `--pause`, потому что команда **queue** отключена в
этой конфигурации.
@@ -626,21 +628,36 @@ task.messages.details:
Отправьте "{{{prefix}}}messages status", чтобы увидеть подробности.
task.messages.progress:
'⏳ Сообщения {{{chat}}}: 🆕 {{progress.ok}}, 🟢 {{progress.exists}}, ⚪
{{progress.ignored}}, 🔴 {{progress.errors}}{{#last}} | 📅 {{{last}}}{{/last}}'
{{progress.ignored}}, 🔴 {{progress.errors}}{{#messages.last}} | 📅
{{{messages.last}}}{{/messages.last}}'
task.messages.completed:
✅ Сообщения {{{chat}}} за {{{period}}} → 🆕 {{progress.ok}}, 🟢
{{progress.exists}}, ⚪ {{progress.ignored}}, 🔴 {{progress.errors}}
task.messages.status: |-
Сообщения **{{{chat}}}** за период ⏱️ **{{{period}}}**:
- ⚙️ Статус задачи: **{{state}}**
{{#last}}
- 📅 Последняя обработка: **{{{last}}}**
{{/last}}
- 💬 Создано в: **{{{chats}}}** чатах
- 🆕 Создано: **{{{progress.ok}}}** сообщений
- 🟢 Уже есть: {{{progress.exists}}} сообщений
- ⚪ Пропущено: {{{progress.ignored}}} сообщений
- 🔴 Ошибки: {{{progress.errors}}} сообщений
Сообщения **{{{chat}}}** за период ⏱️ **{{{period}}}**. ⚙️ Статус задачи: **{{state}}**.
🗨️ Сообщения:
- 🆕 Создано: **{{{progress.ok}}}**
- 🟢 Уже есть: {{{progress.exists}}}
- ⚪ Пропущено: {{{progress.ignored}}}
- 🔴 Ошибки: {{{progress.errors}}}
{{#messages.first}}
- 🗓️ Самое раннее: **{{{messages.first}}}**
{{/messages.first}}
{{#messages.last}}
- 🗓️ Самое позднее: **{{{messages.last}}}**
{{/messages.last}}
💬 Чаты WhatsApp:
- 🆕 Новые сообщения в **{{{chats}}}** чатах
{{#options.resolveConversations}}
🗣️ Беседы:
- 🟢 Закрыто: **{{{progress.conversationResolve.success}}}**
{{#progress.conversationResolve.error}}
- 🔴 Ошибки: **{{{progress.conversationResolve.error}}}**
{{/progress.conversationResolve.error}}
{{/options.resolveConversations}}
Подробности:
[{{{details.text}}}]({{{details.url}}})
+28 -11
View File
@@ -569,6 +569,8 @@ cli.cmd.messages.pull.option.media:
cli.cmd.messages.pull.option.pause:
Mesaj çekme işini duraklatılmış olarak kuyruklar ve tamamlanana kadar yeni
WhatsApp mesajlarının işlenmesini durdurur.
cli.cmd.messages.pull.option.resolve-conversations:
Tüm geçmiş mesajlar işlendiğinde konuşmaları çözüldü olarak işaretler.
cli.cmd.messages.pull.error.pause-no-queue:
⛔ `--pause` kullanılamaz çünkü **queue** komutu bu yapılandırmada devre dışı.
cli.cmd.queue.description: Kuyrukları yönetin.
@@ -625,21 +627,36 @@ task.messages.details:
Daha fazla ayrıntı için "{{{prefix}}}messages status" gönderin.
task.messages.progress:
'⏳ Mesajlar {{{chat}}}: 🆕 {{progress.ok}}, 🟢 {{progress.exists}}, ⚪
{{progress.ignored}}, 🔴 {{progress.errors}}{{#last}} | 📅 {{{last}}}{{/last}}'
{{progress.ignored}}, 🔴 {{progress.errors}}{{#messages.last}} | 📅
{{{messages.last}}}{{/messages.last}}'
task.messages.completed:
✅ Mesajlar {{{chat}}} {{{period}}} içinde → 🆕 {{progress.ok}}, 🟢
{{progress.exists}}, ⚪ {{progress.ignored}}, 🔴 {{progress.errors}}
task.messages.status: |-
**{{{chat}}}** sohbetinin mesajları ⏱️ **{{{period}}}** döneminde:
- ⚙️ İş durumu: **{{state}}**
{{#last}}
- 📅 Son işlenen: **{{{last}}}**
{{/last}}
- 💬 Şu sohbetlerde oluşturuldu: **{{{chats}}}**
- 🆕 Oluşturulan: **{{{progress.ok}}}** mesaj
- 🟢 Zaten mevcut: {{{progress.exists}}} mesaj
- ⚪ Yok sayılan: {{{progress.ignored}}} mesaj
- 🔴 Hatalar: {{{progress.errors}}} mesaj
**{{{chat}}}** sohbetinin mesajları ⏱️ **{{{period}}}** döneminde. ⚙️ İş durumu: **{{state}}**.
🗨️ Mesajlar:
- 🆕 Oluşturulan: **{{{progress.ok}}}**
- 🟢 Zaten mevcut: {{{progress.exists}}}
- ⚪ Yok sayılan: {{{progress.ignored}}}
- 🔴 Hatalar: {{{progress.errors}}}
{{#messages.first}}
- 🗓️ En eski: **{{{messages.first}}}**
{{/messages.first}}
{{#messages.last}}
- 🗓️ En yeni: **{{{messages.last}}}**
{{/messages.last}}
💬 WhatsApp sohbetleri:
- 🆕 **{{{chats}}}** sohbette yeni mesajlar
{{#options.resolveConversations}}
🗣️ Konuşmalar:
- 🟢 Çözüldü: **{{{progress.conversationResolve.success}}}**
{{#progress.conversationResolve.error}}
- 🔴 Hatalar: **{{{progress.conversationResolve.error}}}**
{{/progress.conversationResolve.error}}
{{/options.resolveConversations}}
Detaylar:
[{{{details.text}}}]({{{details.url}}})
+28 -11
View File
@@ -570,6 +570,8 @@ cli.cmd.messages.pull.option.media:
cli.cmd.messages.pull.option.pause:
Поставити завдання отримання повідомлень у чергу на паузі й зупинити обробку
нових WhatsApp до завершення.
cli.cmd.messages.pull.option.resolve-conversations:
Позначає розмови як завершені після обробки всієї історії повідомлень.
cli.cmd.messages.pull.error.pause-no-queue:
⛔ Неможливо використати `--pause`, оскільки команда **queue** вимкнена для
цієї конфігурації.
@@ -625,21 +627,36 @@ task.messages.details:
Надішліть "{{{prefix}}}messages status", щоб побачити деталі.
task.messages.progress:
'⏳ Повідомлення {{{chat}}}: 🆕 {{progress.ok}}, 🟢 {{progress.exists}}, ⚪
{{progress.ignored}}, 🔴 {{progress.errors}}{{#last}} | 📅 {{{last}}}{{/last}}'
{{progress.ignored}}, 🔴 {{progress.errors}}{{#messages.last}} | 📅
{{{messages.last}}}{{/messages.last}}'
task.messages.completed:
✅ Повідомлення {{{chat}}} за {{{period}}} → 🆕 {{progress.ok}}, 🟢
{{progress.exists}}, ⚪ {{progress.ignored}}, 🔴 {{progress.errors}}
task.messages.status: |-
Повідомлення **{{{chat}}}** у період ⏱️ **{{{period}}}**:
- ⚙️ Стан завдання: **{{state}}**
{{#last}}
- 📅 Остання обробка: **{{{last}}}**
{{/last}}
- 💬 Створено в: **{{{chats}}}** чатах
- 🆕 Створено: **{{{progress.ok}}}** повідомлень
- 🟢 Уже є: {{{progress.exists}}} повідомлень
- ⚪ Пропущено: {{{progress.ignored}}} повідомлень
- 🔴 Помилки: {{{progress.errors}}} повідомлень
Повідомлення **{{{chat}}}** у період ⏱️ **{{{period}}}**. ⚙️ Стан завдання: **{{state}}**.
🗨️ Повідомлення:
- 🆕 Створено: **{{{progress.ok}}}**
- 🟢 Уже є: {{{progress.exists}}}
- ⚪ Пропущено: {{{progress.ignored}}}
- 🔴 Помилки: {{{progress.errors}}}
{{#messages.first}}
- 🗓️ Найраніше: **{{{messages.first}}}**
{{/messages.first}}
{{#messages.last}}
- 🗓️ Найпізніше: **{{{messages.last}}}**
{{/messages.last}}
💬 Чати WhatsApp:
- 🆕 Нові повідомлення в **{{{chats}}}** чатах
{{#options.resolveConversations}}
🗣️ Розмови:
- 🟢 Закрито: **{{{progress.conversationResolve.success}}}**
{{#progress.conversationResolve.error}}
- 🔴 Помилки: **{{{progress.conversationResolve.error}}}**
{{/progress.conversationResolve.error}}
{{/options.resolveConversations}}
Деталі:
[{{{details.text}}}]({{{details.url}}})
+29 -11
View File
@@ -569,6 +569,9 @@ cli.cmd.messages.pull.option.media:
cli.cmd.messages.pull.option.pause:
پیغامات کھینچنے کے کام کو معطل حالت میں قطار میں ڈالیں اور مکمل ہونے تک نئے
WhatsApp پیغامات کی پروسیسنگ روک دیں۔
cli.cmd.messages.pull.option.resolve-conversations:
تمام تاریخی پیغامات کے پراسیس ہونے کے بعد گفتگوؤں کو حل شدہ کے طور پر نشان زد
کرتا ہے۔
cli.cmd.messages.pull.error.pause-no-queue:
⛔ `--pause` استعمال نہیں کیا جا سکتا کیونکہ اس ترتیب میں **queue** کمانڈ غیر
فعال ہے۔
@@ -622,21 +625,36 @@ task.messages.started:
task.messages.details: مزید تفصیلات کے لیے "{{{prefix}}}messages status" بھیجیں۔
task.messages.progress:
'⏳ پیغامات {{{chat}}}: 🆕 {{progress.ok}}, 🟢 {{progress.exists}}, ⚪
{{progress.ignored}}, 🔴 {{progress.errors}}{{#last}} | 📅 {{{last}}}{{/last}}'
{{progress.ignored}}, 🔴 {{progress.errors}}{{#messages.last}} | 📅
{{{messages.last}}}{{/messages.last}}'
task.messages.completed:
✅ پیغامات {{{chat}}} میں {{{period}}} → 🆕 {{progress.ok}}, 🟢
{{progress.exists}}, ⚪ {{progress.ignored}}, 🔴 {{progress.errors}}
task.messages.status: |-
**{{{chat}}}** کے پیغامات ⏱️ **{{{period}}}** کے دوران:
- ⚙️ کام کی حالت: **{{state}}**
{{#last}}
- 📅 آخری پراسیسنگ: **{{{last}}}**
{{/last}}
- 💬 بنائے گئے چیٹس: **{{{chats}}}**
- 🆕 بنے: **{{{progress.ok}}}** پیغامات
- 🟢 پہلے سے موجود: {{{progress.exists}}} پیغامات
- ⚪ نظر انداز: {{{progress.ignored}}} پیغامات
- 🔴 خامیاں: {{{progress.errors}}} پیغامات
**{{{chat}}}** کے پیغامات ⏱️ **{{{period}}}** کے دوران۔ ⚙️ کام کی حالت: **{{state}}**۔
🗨️ پیغامات:
- 🆕 بنے: **{{{progress.ok}}}**
- 🟢 پہلے سے موجود: {{{progress.exists}}}
- ⚪ نظر انداز: {{{progress.ignored}}}
- 🔴 خامیاں: {{{progress.errors}}}
{{#messages.first}}
- 🗓️ قدیم ترین: **{{{messages.first}}}**
{{/messages.first}}
{{#messages.last}}
- 🗓️ تازہ ترین: **{{{messages.last}}}**
{{/messages.last}}
💬 WhatsApp چیٹس:
- 🆕 **{{{chats}}}** چیٹس میں نئے پیغامات
{{#options.resolveConversations}}
🗣️ گفتگوئیں:
- 🟢 حل شدہ: **{{{progress.conversationResolve.success}}}**
{{#progress.conversationResolve.error}}
- 🔴 خامیاں: **{{{progress.conversationResolve.error}}}**
{{/progress.conversationResolve.error}}
{{/options.resolveConversations}}
تفصیلات:
[{{{details.text}}}]({{{details.url}}})
+27 -11
View File
@@ -560,6 +560,7 @@ cli.cmd.messages.pull.option.broadcast: 拉取历史时包含群发列表。
cli.cmd.messages.pull.option.media: 拉取历史时下载媒体附件(图片、视频、文件)。
cli.cmd.messages.pull.option.pause:
将拉取任务以暂停状态加入队列,并在完成前暂停新的 WhatsApp 消息处理。
cli.cmd.messages.pull.option.resolve-conversations: 在处理完所有历史消息后将会话标记为已解决。
cli.cmd.messages.pull.error.pause-no-queue:
⛔ 无法使用 `--pause`,因为此配置中 **queue** 命令已禁用。
cli.cmd.queue.description: 管理队列。
@@ -602,21 +603,36 @@ task.messages.started: ⏳ 正在拉取消息 💬 {{{chat}}} ⏱️ {{{period}}
task.messages.details: 发送 "{{{prefix}}}messages status" 查看更多详情。
task.messages.progress:
⏳ 消息 {{{chat}}}:🆕 {{progress.ok}},🟢 {{progress.exists}},⚪
{{progress.ignored}},🔴 {{progress.errors}}{{#last}} | 📅 {{{last}}}{{/last}}
{{progress.ignored}},🔴 {{progress.errors}}{{#messages.last}} | 📅
{{{messages.last}}}{{/messages.last}}
task.messages.completed:
✅ 消息 {{{chat}}} 于 {{{period}}} → 🆕 {{progress.ok}},🟢
{{progress.exists}},⚪ {{progress.ignored}},🔴 {{progress.errors}}
task.messages.status: |-
**{{{chat}}}** 的消息在 ⏱️ **{{{period}}}** 内:
- ⚙️ 任务状态:**{{state}}**
{{#last}}
- 📅 上次处理:**{{{last}}}**
{{/last}}
- 💬 创建于:**{{{chats}}}** 个会话
- 🆕 新建:**{{{progress.ok}}}** 条消息
- 🟢 已存在:{{{progress.exists}}} 条消息
- ⚪ 忽略:{{{progress.ignored}}} 条消息
- 🔴 错误:{{{progress.errors}}} 条消息
**{{{chat}}}** 的消息在 ⏱️ **{{{period}}}** 内。⚙️ 任务状态:**{{state}}**。
🗨️ 消息:
- 🆕 新建:**{{{progress.ok}}}**
- 🟢 已存在:{{{progress.exists}}}
- ⚪ 忽略:{{{progress.ignored}}}
- 🔴 错误:{{{progress.errors}}}
{{#messages.first}}
- 🗓️ 最早:**{{{messages.first}}}**
{{/messages.first}}
{{#messages.last}}
- 🗓️ 最新:**{{{messages.last}}}**
{{/messages.last}}
💬 WhatsApp 会话:
- 🆕 **{{{chats}}}** 个会话出现新消息
{{#options.resolveConversations}}
🗣️ 会话:
- 🟢 已解决:**{{{progress.conversationResolve.success}}}**
{{#progress.conversationResolve.error}}
- 🔴 错误:**{{{progress.conversationResolve.error}}}**
{{/progress.conversationResolve.error}}
{{/options.resolveConversations}}
详情:
[{{{details.text}}}]({{{details.url}}})
+5
View File
@@ -0,0 +1,5 @@
export function addUnique<T>(list: T[], item: T): void {
if (!list.includes(item)) {
list.push(item);
}
}