@will-17173/telegram-cli 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +185 -61
- package/README.zh-CN.md +199 -77
- package/dist/account/account-authenticator.js +95 -0
- package/dist/account/account-authenticator.js.map +1 -0
- package/dist/account/account-context.js +7 -0
- package/dist/account/account-context.js.map +1 -1
- package/dist/account/account-name.js +17 -0
- package/dist/account/account-name.js.map +1 -0
- package/dist/account/account-presets.js +20 -3
- package/dist/account/account-presets.js.map +1 -1
- package/dist/account/account-store.js +277 -37
- package/dist/account/account-store.js.map +1 -1
- package/dist/cli/app.js +12 -1
- package/dist/cli/app.js.map +1 -1
- package/dist/cli/output.js +21 -6
- package/dist/cli/output.js.map +1 -1
- package/dist/cli/secure-input.js +408 -0
- package/dist/cli/secure-input.js.map +1 -0
- package/dist/commands/account-options.js +37 -7
- package/dist/commands/account-options.js.map +1 -1
- package/dist/commands/account.js +144 -62
- package/dist/commands/account.js.map +1 -1
- package/dist/commands/archive.js +151 -0
- package/dist/commands/archive.js.map +1 -0
- package/dist/commands/config.js +119 -12
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/contact.js +58 -0
- package/dist/commands/contact.js.map +1 -0
- package/dist/commands/data.js +14 -7
- package/dist/commands/data.js.map +1 -1
- package/dist/commands/dialog.js +156 -0
- package/dist/commands/dialog.js.map +1 -0
- package/dist/commands/folder.js +113 -0
- package/dist/commands/folder.js.map +1 -0
- package/dist/commands/group-write.js +45 -5
- package/dist/commands/group-write.js.map +1 -1
- package/dist/commands/group.js +23 -1
- package/dist/commands/group.js.map +1 -1
- package/dist/commands/notification.js +76 -0
- package/dist/commands/notification.js.map +1 -0
- package/dist/commands/query.js +22 -15
- package/dist/commands/query.js.map +1 -1
- package/dist/commands/telegram-runner.js +40 -18
- package/dist/commands/telegram-runner.js.map +1 -1
- package/dist/commands/telegram.js +82 -38
- package/dist/commands/telegram.js.map +1 -1
- package/dist/commands/time-range.js +39 -0
- package/dist/commands/time-range.js.map +1 -0
- package/dist/commands/types.js +3 -2
- package/dist/commands/types.js.map +1 -1
- package/dist/config/credential-store.js +24 -4
- package/dist/config/credential-store.js.map +1 -1
- package/dist/config/env.js +4 -1
- package/dist/config/env.js.map +1 -1
- package/dist/group-commands/catalog.js +10 -0
- package/dist/group-commands/catalog.js.map +1 -1
- package/dist/group-commands/executor.js +13 -4
- package/dist/group-commands/executor.js.map +1 -1
- package/dist/presenters/group.js +16 -0
- package/dist/presenters/group.js.map +1 -1
- package/dist/presenters/human.js +113 -0
- package/dist/presenters/human.js.map +1 -1
- package/dist/presenters/ink/group-command-result.js +2 -0
- package/dist/presenters/ink/group-command-result.js.map +1 -1
- package/dist/presenters/ink/listen-scroll.js +4 -3
- package/dist/presenters/ink/listen-scroll.js.map +1 -1
- package/dist/presenters/ink/listen.js +163 -43
- package/dist/presenters/ink/listen.js.map +1 -1
- package/dist/presenters/ink/mouse-scroll.js +12 -0
- package/dist/presenters/ink/mouse-scroll.js.map +1 -1
- package/dist/presenters/ink/secure-input.js +68 -0
- package/dist/presenters/ink/secure-input.js.map +1 -0
- package/dist/presenters/ink/use-group-command.js +78 -17
- package/dist/presenters/ink/use-group-command.js.map +1 -1
- package/dist/presenters/markdown.js +54 -0
- package/dist/presenters/markdown.js.map +1 -0
- package/dist/presenters/structured.js +8 -3
- package/dist/presenters/structured.js.map +1 -1
- package/dist/services/account-session-service.js +241 -0
- package/dist/services/account-session-service.js.map +1 -0
- package/dist/services/archive-layout.js +61 -0
- package/dist/services/archive-layout.js.map +1 -0
- package/dist/services/archive-manifest.js +187 -0
- package/dist/services/archive-manifest.js.map +1 -0
- package/dist/services/archive-markdown.js +383 -0
- package/dist/services/archive-markdown.js.map +1 -0
- package/dist/services/archive-service.js +718 -0
- package/dist/services/archive-service.js.map +1 -0
- package/dist/services/archive-types.js +2 -0
- package/dist/services/archive-types.js.map +1 -0
- package/dist/services/attachment-download.js +7 -2
- package/dist/services/attachment-download.js.map +1 -1
- package/dist/services/auto-download-coordinator.js +2 -4
- package/dist/services/auto-download-coordinator.js.map +1 -1
- package/dist/services/contact-service.js +78 -0
- package/dist/services/contact-service.js.map +1 -0
- package/dist/services/dialog-service.js +140 -0
- package/dist/services/dialog-service.js.map +1 -0
- package/dist/services/folder-service.js +200 -0
- package/dist/services/folder-service.js.map +1 -0
- package/dist/services/group-write-service.js +78 -18
- package/dist/services/group-write-service.js.map +1 -1
- package/dist/services/message-service.js +17 -1
- package/dist/services/message-service.js.map +1 -1
- package/dist/services/notification-service.js +142 -0
- package/dist/services/notification-service.js.map +1 -0
- package/dist/services/write-access-policy.js +19 -0
- package/dist/services/write-access-policy.js.map +1 -0
- package/dist/telegram/archive-types.js +2 -0
- package/dist/telegram/archive-types.js.map +1 -0
- package/dist/telegram/client-factory.js +51 -11
- package/dist/telegram/client-factory.js.map +1 -1
- package/dist/telegram/contact-types.js +10 -0
- package/dist/telegram/contact-types.js.map +1 -0
- package/dist/telegram/dialog-types.js +2 -0
- package/dist/telegram/dialog-types.js.map +1 -0
- package/dist/telegram/errors.js +14 -0
- package/dist/telegram/errors.js.map +1 -0
- package/dist/telegram/fake-group-management.js +5 -0
- package/dist/telegram/fake-group-management.js.map +1 -1
- package/dist/telegram/folder-types.js +13 -0
- package/dist/telegram/folder-types.js.map +1 -0
- package/dist/telegram/group-write-types.js +28 -1
- package/dist/telegram/group-write-types.js.map +1 -1
- package/dist/telegram/mtcute-archive.js +190 -0
- package/dist/telegram/mtcute-archive.js.map +1 -0
- package/dist/telegram/mtcute-client.js +72 -11
- package/dist/telegram/mtcute-client.js.map +1 -1
- package/dist/telegram/mtcute-contacts.js +90 -0
- package/dist/telegram/mtcute-contacts.js.map +1 -0
- package/dist/telegram/mtcute-dialogs.js +186 -0
- package/dist/telegram/mtcute-dialogs.js.map +1 -0
- package/dist/telegram/mtcute-folders.js +318 -0
- package/dist/telegram/mtcute-folders.js.map +1 -0
- package/dist/telegram/mtcute-group-members.js +43 -3
- package/dist/telegram/mtcute-group-members.js.map +1 -1
- package/dist/telegram/mtcute-message-normalizer.js +63 -0
- package/dist/telegram/mtcute-message-normalizer.js.map +1 -0
- package/dist/telegram/mtcute-notifications.js +101 -0
- package/dist/telegram/mtcute-notifications.js.map +1 -0
- package/dist/telegram/notification-types.js +11 -0
- package/dist/telegram/notification-types.js.map +1 -0
- package/dist/telegram/types.js +6 -1
- package/dist/telegram/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"folder.js","sourceRoot":"","sources":["../../src/commands/folder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { renderResult } from '../cli/output.js';
|
|
2
|
-
import {
|
|
2
|
+
import { createInterruptScope, isCliInputError, isCliInterruptedError, readSecret } from '../cli/secure-input.js';
|
|
3
|
+
import { GROUP_COMMANDS, isReadOnlyGroupCommand } from '../group-commands/catalog.js';
|
|
3
4
|
import { executeGroupCommand } from '../group-commands/executor.js';
|
|
4
5
|
import { parseGroupCommand } from '../group-commands/parser.js';
|
|
5
6
|
import { groupWriteHuman } from '../presenters/group.js';
|
|
6
7
|
import { GroupWriteService } from '../services/group-write-service.js';
|
|
7
|
-
import { runTelegramCommand } from './telegram-runner.js';
|
|
8
|
+
import { runTelegramCommand, runTelegramWriteCommand } from './telegram-runner.js';
|
|
8
9
|
import { outputFormatConflict } from './types.js';
|
|
9
10
|
export function registerGroupWriteCommands(group) {
|
|
10
11
|
const families = new Map();
|
|
@@ -58,24 +59,63 @@ async function runGroupWrite(definition, positional, local, command) {
|
|
|
58
59
|
if (definition.risk !== 'none' && !options.yes) {
|
|
59
60
|
return renderResult(confirmationFailure(definition.summary, definition.risk), options);
|
|
60
61
|
}
|
|
61
|
-
|
|
62
|
+
const runTelegram = isReadOnlyGroupCommand(parsed.request.key)
|
|
63
|
+
? runTelegramCommand
|
|
64
|
+
: runTelegramWriteCommand;
|
|
65
|
+
let interruptedExitCode;
|
|
66
|
+
await runTelegram(options, async (client) => {
|
|
62
67
|
let knownGroup;
|
|
63
|
-
if (definition.risk === 'confirm-title')
|
|
68
|
+
if (definition.risk === 'confirm-title' || parsed.request.key === 'admin transfer-owner') {
|
|
64
69
|
knownGroup = await client.groups.getGroup(chat);
|
|
65
|
-
|
|
70
|
+
}
|
|
71
|
+
let result = await executeGroupCommand(parsed.request, {
|
|
66
72
|
chat,
|
|
67
73
|
groups: new GroupWriteService(client.groups),
|
|
68
74
|
confirmed: options.yes === true,
|
|
69
75
|
confirmationTitle: options.confirmTitle,
|
|
70
76
|
knownGroup,
|
|
71
77
|
});
|
|
78
|
+
if ('secretRequired' in result) {
|
|
79
|
+
let ownershipPassword;
|
|
80
|
+
try {
|
|
81
|
+
const interrupt = createInterruptScope();
|
|
82
|
+
try {
|
|
83
|
+
ownershipPassword = await readSecret('Telegram 2FA password: ', { signal: interrupt.signal });
|
|
84
|
+
}
|
|
85
|
+
finally {
|
|
86
|
+
interrupt.dispose();
|
|
87
|
+
}
|
|
88
|
+
result = await executeGroupCommand(parsed.request, {
|
|
89
|
+
chat,
|
|
90
|
+
groups: new GroupWriteService(client.groups),
|
|
91
|
+
confirmed: options.yes === true,
|
|
92
|
+
confirmationTitle: options.confirmTitle,
|
|
93
|
+
knownGroup,
|
|
94
|
+
ownershipPassword,
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
if (!isCliInputError(error))
|
|
99
|
+
throw error;
|
|
100
|
+
if (isCliInterruptedError(error))
|
|
101
|
+
interruptedExitCode = error.exitCode;
|
|
102
|
+
return { ok: false, error: { code: error.code, message: error.message } };
|
|
103
|
+
}
|
|
104
|
+
finally {
|
|
105
|
+
ownershipPassword = undefined;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
72
108
|
if ('confirmation' in result)
|
|
73
109
|
return confirmationFailure(result.confirmation.summary, result.confirmation.risk, result.confirmation.title);
|
|
74
110
|
if ('selectionRequired' in result) {
|
|
75
111
|
return { ok: false, error: { code: 'permissions_required', message: `Administrator permissions must be one or more of: ${result.selectionRequired.available.join(', ')}.` } };
|
|
76
112
|
}
|
|
113
|
+
if ('secretRequired' in result)
|
|
114
|
+
return { ok: false, error: { code: 'interaction_required', message: 'Telegram 2FA password is required.' } };
|
|
77
115
|
return result.ok ? { ...result, human: groupWriteHuman(result.data, chat, definition.summary) } : result;
|
|
78
116
|
});
|
|
117
|
+
if (interruptedExitCode !== undefined)
|
|
118
|
+
process.exitCode = interruptedExitCode;
|
|
79
119
|
}
|
|
80
120
|
function confirmationFailure(summary, risk, title) {
|
|
81
121
|
const titleHint = risk === 'confirm-title' ? ` and --confirm-title <title>${title ? ` (exact title: ${title})` : ''}` : '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group-write.js","sourceRoot":"","sources":["../../src/commands/group-write.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;
|
|
1
|
+
{"version":3,"file":"group-write.js","sourceRoot":"","sources":["../../src/commands/group-write.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/group.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { renderResult } from '../cli/output.js';
|
|
2
|
-
import { groupAuditTable, groupInfoDetail, groupMemberDetail, groupMembersTable, } from '../presenters/group.js';
|
|
2
|
+
import { groupAuditTable, groupInfoDetail, groupMemberDetail, groupMembersTable, managedGroupTable, } from '../presenters/group.js';
|
|
3
|
+
import { DialogService, } from '../services/dialog-service.js';
|
|
3
4
|
import { GroupService, validateGroupAuditOptions, validateGroupMembersOptions, } from '../services/group-service.js';
|
|
4
5
|
import { runTelegramCommand } from './telegram-runner.js';
|
|
5
6
|
import { outputFormatConflict } from './types.js';
|
|
@@ -95,6 +96,27 @@ export function registerGroupCommands(app) {
|
|
|
95
96
|
return result.ok ? { ...result, human: groupAuditTable(result.data) } : result;
|
|
96
97
|
});
|
|
97
98
|
});
|
|
99
|
+
group.command('list')
|
|
100
|
+
.description('List group, supergroup, and channel dialogs')
|
|
101
|
+
.option('--admin', 'Only groups where you are an admin or creator')
|
|
102
|
+
.option('-n, --limit <limit>', 'Max dialogs to list')
|
|
103
|
+
.option('--json')
|
|
104
|
+
.option('--yaml')
|
|
105
|
+
.action(async (_options, command) => {
|
|
106
|
+
const options = optionsWithGlobals(command);
|
|
107
|
+
const conflict = outputFormatConflict(options);
|
|
108
|
+
if (conflict) {
|
|
109
|
+
await renderResult(conflict, { yaml: true });
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
await runTelegramCommand(options, async (client) => {
|
|
113
|
+
const result = await new DialogService(client.dialogs).groups({
|
|
114
|
+
adminOnly: Boolean(options.admin),
|
|
115
|
+
limit: options.limit,
|
|
116
|
+
});
|
|
117
|
+
return result.ok ? { ...result, human: managedGroupTable(result.data) } : result;
|
|
118
|
+
});
|
|
119
|
+
});
|
|
98
120
|
registerGroupWriteCommands(group);
|
|
99
121
|
}
|
|
100
122
|
async function runMemberInfo(chat, user, command) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group.js","sourceRoot":"","sources":["../../src/commands/group.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EACL,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,YAAY,EACZ,yBAAyB,EACzB,2BAA2B,GAG5B,MAAM,8BAA8B,CAAA;AAErC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,oBAAoB,EAAoB,MAAM,YAAY,CAAA;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"group.js","sourceRoot":"","sources":["../../src/commands/group.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { renderResult } from '../cli/output.js';
|
|
2
|
+
import { InvalidNotificationDurationError, NotificationService, invalidNotificationDurationFailure, parseNotificationDuration, } from '../services/notification-service.js';
|
|
3
|
+
import { runTelegramCommand, runTelegramWriteCommand } from './telegram-runner.js';
|
|
4
|
+
import { outputFormatConflict } from './types.js';
|
|
5
|
+
export function registerNotificationCommands(app) {
|
|
6
|
+
const notification = app.command('notification')
|
|
7
|
+
.description('Inspect and manage Telegram notification settings');
|
|
8
|
+
notification.command('info')
|
|
9
|
+
.description('Show notification settings for a Telegram chat')
|
|
10
|
+
.argument('<chat>')
|
|
11
|
+
.option('--json')
|
|
12
|
+
.option('--yaml')
|
|
13
|
+
.action(async (chat, _options, command) => {
|
|
14
|
+
await runNotificationAction({
|
|
15
|
+
options: optionsWithGlobals(command),
|
|
16
|
+
command,
|
|
17
|
+
handler: (client) => new NotificationService(client.notifications).info(chat),
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
notification.command('mute')
|
|
21
|
+
.description('Mute notifications for a Telegram chat')
|
|
22
|
+
.argument('<chat>')
|
|
23
|
+
.argument('[duration]', 'Duration such as 30m, 8h, 2d, or forever (default: forever)')
|
|
24
|
+
.option('--json')
|
|
25
|
+
.option('--yaml')
|
|
26
|
+
.action(async (chat, duration, _options, command) => {
|
|
27
|
+
const options = optionsWithGlobals(command);
|
|
28
|
+
const conflict = outputFormatConflict(options);
|
|
29
|
+
if (conflict) {
|
|
30
|
+
await renderResult(conflict, { yaml: true });
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
if (!isValidDuration(duration ?? 'forever')) {
|
|
34
|
+
await renderResult(invalidNotificationDurationFailure(), options);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
await runTelegramWriteCommand(options, (client) => new NotificationService(client.notifications).mute(chat, duration), command);
|
|
38
|
+
});
|
|
39
|
+
notification.command('unmute')
|
|
40
|
+
.description('Unmute notifications for a Telegram chat')
|
|
41
|
+
.argument('<chat>')
|
|
42
|
+
.option('--json')
|
|
43
|
+
.option('--yaml')
|
|
44
|
+
.action(async (chat, _options, command) => {
|
|
45
|
+
await runNotificationAction({
|
|
46
|
+
options: optionsWithGlobals(command),
|
|
47
|
+
command,
|
|
48
|
+
write: true,
|
|
49
|
+
handler: (client) => new NotificationService(client.notifications).unmute(chat),
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
async function runNotificationAction(input) {
|
|
54
|
+
const conflict = outputFormatConflict(input.options);
|
|
55
|
+
if (conflict) {
|
|
56
|
+
await renderResult(conflict, { yaml: true });
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const runner = input.write ? runTelegramWriteCommand : runTelegramCommand;
|
|
60
|
+
await runner(input.options, (client) => input.handler(client), input.command);
|
|
61
|
+
}
|
|
62
|
+
function isValidDuration(duration) {
|
|
63
|
+
try {
|
|
64
|
+
parseNotificationDuration(duration);
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
if (error instanceof InvalidNotificationDurationError)
|
|
69
|
+
return false;
|
|
70
|
+
throw error;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function optionsWithGlobals(command) {
|
|
74
|
+
return command.optsWithGlobals();
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=notification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notification.js","sourceRoot":"","sources":["../../src/commands/notification.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/query.js
CHANGED
|
@@ -14,7 +14,7 @@ export function registerQueryCommands(app) {
|
|
|
14
14
|
.option('-n, --limit <limit>', 'Max results', '50')
|
|
15
15
|
.option('--json')
|
|
16
16
|
.option('--yaml')
|
|
17
|
-
.action(async (keyword, options) => {
|
|
17
|
+
.action(async (keyword, options, command) => {
|
|
18
18
|
await renderQueryResult(options, (service) => service.search({
|
|
19
19
|
keyword,
|
|
20
20
|
chat: options.chat,
|
|
@@ -22,7 +22,7 @@ export function registerQueryCommands(app) {
|
|
|
22
22
|
hours: numberOption(options.hours),
|
|
23
23
|
regex: Boolean(options.regex),
|
|
24
24
|
limit: numberOption(options.limit),
|
|
25
|
-
}));
|
|
25
|
+
}), command);
|
|
26
26
|
});
|
|
27
27
|
app.command('recent')
|
|
28
28
|
.description('Show recently stored messages')
|
|
@@ -32,19 +32,19 @@ export function registerQueryCommands(app) {
|
|
|
32
32
|
.option('-n, --limit <limit>', 'Max messages', '50')
|
|
33
33
|
.option('--json')
|
|
34
34
|
.option('--yaml')
|
|
35
|
-
.action(async (options) => {
|
|
35
|
+
.action(async (options, command) => {
|
|
36
36
|
await renderQueryResult(options, (service) => service.recent({
|
|
37
37
|
chat: options.chat,
|
|
38
38
|
sender: options.sender,
|
|
39
39
|
hours: numberOption(options.hours),
|
|
40
40
|
limit: numberOption(options.limit),
|
|
41
|
-
}));
|
|
41
|
+
}), command);
|
|
42
42
|
});
|
|
43
43
|
app.command('stats')
|
|
44
44
|
.description('Show local message and chat statistics')
|
|
45
45
|
.option('--json')
|
|
46
46
|
.option('--yaml')
|
|
47
|
-
.action(async (options) => renderQueryResult(options, (service) => service.stats()));
|
|
47
|
+
.action(async (options, command) => renderQueryResult(options, (service) => service.stats(), command));
|
|
48
48
|
app.command('top')
|
|
49
49
|
.description('Show the most active message senders')
|
|
50
50
|
.option('-c, --chat <chat>')
|
|
@@ -52,12 +52,12 @@ export function registerQueryCommands(app) {
|
|
|
52
52
|
.option('-n, --limit <limit>', 'Top N senders', '20')
|
|
53
53
|
.option('--json')
|
|
54
54
|
.option('--yaml')
|
|
55
|
-
.action(async (options) => {
|
|
55
|
+
.action(async (options, command) => {
|
|
56
56
|
await renderQueryResult(options, (service) => service.top({
|
|
57
57
|
chat: options.chat,
|
|
58
58
|
hours: numberOption(options.hours),
|
|
59
59
|
limit: numberOption(options.limit),
|
|
60
|
-
}));
|
|
60
|
+
}), command);
|
|
61
61
|
});
|
|
62
62
|
app.command('timeline')
|
|
63
63
|
.description('Show message activity over time')
|
|
@@ -66,19 +66,19 @@ export function registerQueryCommands(app) {
|
|
|
66
66
|
.option('--by <granularity>', 'day or hour', 'day')
|
|
67
67
|
.option('--json')
|
|
68
68
|
.option('--yaml')
|
|
69
|
-
.action(async (options) => {
|
|
69
|
+
.action(async (options, command) => {
|
|
70
70
|
await renderQueryResult(options, (service) => service.timeline({
|
|
71
71
|
chat: options.chat,
|
|
72
72
|
hours: numberOption(options.hours),
|
|
73
73
|
granularity: options.by,
|
|
74
|
-
}));
|
|
74
|
+
}), command);
|
|
75
75
|
});
|
|
76
76
|
app.command('today')
|
|
77
77
|
.description('Show messages stored today')
|
|
78
78
|
.option('-c, --chat <chat>')
|
|
79
79
|
.option('--json')
|
|
80
80
|
.option('--yaml')
|
|
81
|
-
.action(async (options) => renderQueryResult(options, (service) => service.today({ chat: options.chat })));
|
|
81
|
+
.action(async (options, command) => renderQueryResult(options, (service) => service.today({ chat: options.chat }), command));
|
|
82
82
|
app.command('filter')
|
|
83
83
|
.description('Filter locally stored messages by keywords')
|
|
84
84
|
.argument('<keywords>')
|
|
@@ -86,24 +86,25 @@ export function registerQueryCommands(app) {
|
|
|
86
86
|
.option('--hours <hours>')
|
|
87
87
|
.option('--json')
|
|
88
88
|
.option('--yaml')
|
|
89
|
-
.action(async (keywords, options) => {
|
|
89
|
+
.action(async (keywords, options, command) => {
|
|
90
90
|
await renderQueryResult(options, (service) => service.filter({
|
|
91
91
|
keywords,
|
|
92
92
|
chat: options.chat,
|
|
93
93
|
hours: numberOption(options.hours),
|
|
94
|
-
}));
|
|
94
|
+
}), command);
|
|
95
95
|
});
|
|
96
96
|
}
|
|
97
97
|
function numberOption(value) {
|
|
98
98
|
return value == null ? undefined : Number(value);
|
|
99
99
|
}
|
|
100
|
-
async function renderQueryResult(options, handler) {
|
|
101
|
-
const
|
|
100
|
+
async function renderQueryResult(options, handler, command) {
|
|
101
|
+
const effectiveOptions = command == null ? options : mergeOptionsWithGlobals(command, options);
|
|
102
|
+
const conflict = outputFormatConflict(effectiveOptions);
|
|
102
103
|
if (conflict) {
|
|
103
104
|
await renderResult(conflict, { yaml: true });
|
|
104
105
|
return;
|
|
105
106
|
}
|
|
106
|
-
await runWithAccountContext(
|
|
107
|
+
await runWithAccountContext(effectiveOptions, (context) => {
|
|
107
108
|
const service = new QueryService(new MessageDB(context.dbPath));
|
|
108
109
|
try {
|
|
109
110
|
return handler(service);
|
|
@@ -113,4 +114,10 @@ async function renderQueryResult(options, handler) {
|
|
|
113
114
|
}
|
|
114
115
|
});
|
|
115
116
|
}
|
|
117
|
+
function mergeOptionsWithGlobals(command, options) {
|
|
118
|
+
return {
|
|
119
|
+
...command.optsWithGlobals(),
|
|
120
|
+
...options,
|
|
121
|
+
};
|
|
122
|
+
}
|
|
116
123
|
//# sourceMappingURL=query.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/commands/query.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAE,oBAAoB,EAAsB,MAAM,YAAY,CAAA;AACrE,OAAO,EAAE,qBAAqB,EAA8B,MAAM,sBAAsB,CAAA;AAaxF,MAAM,UAAU,qBAAqB,CAAC,GAAY;IAChD,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;SAClB,WAAW,CAAC,2CAA2C,CAAC;SACxD,QAAQ,CAAC,WAAW,CAAC;SACrB,MAAM,CAAC,mBAAmB,CAAC;SAC3B,MAAM,CAAC,uBAAuB,CAAC;SAC/B,MAAM,CAAC,iBAAiB,CAAC;SACzB,MAAM,CAAC,SAAS,CAAC;SACjB,MAAM,CAAC,qBAAqB,EAAE,aAAa,EAAE,IAAI,CAAC;SAClD,MAAM,CAAC,QAAQ,CAAC;SAChB,MAAM,CAAC,QAAQ,CAAC;SAChB,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,OAAmB,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/commands/query.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { createTelegramClient } from '../telegram/client-factory.js';
|
|
2
|
-
import {
|
|
2
|
+
import { runWithAuthenticatedAccountContext } from './account-options.js';
|
|
3
|
+
import { WriteAccessPolicy } from '../services/write-access-policy.js';
|
|
4
|
+
import { isTelegramAuthSessionError } from '../telegram/errors.js';
|
|
3
5
|
const BENIGN_UPDATE_WARNINGS = [
|
|
4
6
|
'pts_before does not match local_pts',
|
|
5
7
|
'local pts not available for postponed updateNewChannelMessage',
|
|
@@ -8,8 +10,8 @@ const BENIGN_UPDATE_WARNINGS = [
|
|
|
8
10
|
'Session is reset',
|
|
9
11
|
'MtprotoSession.resetState',
|
|
10
12
|
];
|
|
11
|
-
export async function runTelegramCommand(options, handler) {
|
|
12
|
-
await
|
|
13
|
+
export async function runTelegramCommand(options, handler, command) {
|
|
14
|
+
await runWithAuthenticatedAccountContext(options, async (context) => {
|
|
13
15
|
const restoreStdoutWarnings = hideBenignUpdateWarnings(process.stdout);
|
|
14
16
|
const restoreStderrWarnings = hideBenignUpdateWarnings(process.stderr);
|
|
15
17
|
let client;
|
|
@@ -33,7 +35,40 @@ export async function runTelegramCommand(options, handler) {
|
|
|
33
35
|
restoreStderrWarnings();
|
|
34
36
|
await client.close().catch(() => undefined);
|
|
35
37
|
}
|
|
36
|
-
});
|
|
38
|
+
}, command);
|
|
39
|
+
}
|
|
40
|
+
export async function runTelegramWriteCommand(options, handler, command) {
|
|
41
|
+
await runWithAuthenticatedAccountContext(options, async (context) => {
|
|
42
|
+
const restoreStdoutWarnings = hideBenignUpdateWarnings(process.stdout);
|
|
43
|
+
const restoreStderrWarnings = hideBenignUpdateWarnings(process.stderr);
|
|
44
|
+
const access = new WriteAccessPolicy().check();
|
|
45
|
+
if (!access.ok) {
|
|
46
|
+
restoreStdoutWarnings();
|
|
47
|
+
restoreStderrWarnings();
|
|
48
|
+
return access;
|
|
49
|
+
}
|
|
50
|
+
let client;
|
|
51
|
+
try {
|
|
52
|
+
client = createTelegramClient(context.sessionPath);
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
restoreStdoutWarnings();
|
|
56
|
+
restoreStderrWarnings();
|
|
57
|
+
return commandFailure('config_error', error);
|
|
58
|
+
}
|
|
59
|
+
try {
|
|
60
|
+
return await handler(client, context);
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
const authError = toAuthSessionError(error, context.account.name);
|
|
64
|
+
return authError ?? commandFailure('telegram_error', error);
|
|
65
|
+
}
|
|
66
|
+
finally {
|
|
67
|
+
restoreStdoutWarnings();
|
|
68
|
+
restoreStderrWarnings();
|
|
69
|
+
await client.close().catch(() => undefined);
|
|
70
|
+
}
|
|
71
|
+
}, command);
|
|
37
72
|
}
|
|
38
73
|
export function hideBenignUpdateWarnings(stream) {
|
|
39
74
|
const write = stream.write;
|
|
@@ -51,7 +86,7 @@ export function hideBenignUpdateWarnings(stream) {
|
|
|
51
86
|
};
|
|
52
87
|
}
|
|
53
88
|
function toAuthSessionError(error, accountName) {
|
|
54
|
-
if (
|
|
89
|
+
if (isTelegramAuthSessionError(error)) {
|
|
55
90
|
return {
|
|
56
91
|
ok: false,
|
|
57
92
|
error: {
|
|
@@ -62,19 +97,6 @@ function toAuthSessionError(error, accountName) {
|
|
|
62
97
|
}
|
|
63
98
|
return null;
|
|
64
99
|
}
|
|
65
|
-
function isAuthKeyUnregistered(error) {
|
|
66
|
-
if (error === null || typeof error !== 'object')
|
|
67
|
-
return false;
|
|
68
|
-
const candidate = error;
|
|
69
|
-
const text = typeof candidate.text === 'string'
|
|
70
|
-
? candidate.text
|
|
71
|
-
: undefined;
|
|
72
|
-
if (text === 'AUTH_KEY_UNREGISTERED')
|
|
73
|
-
return true;
|
|
74
|
-
const code = typeof candidate.code === 'number' ? candidate.code : undefined;
|
|
75
|
-
const message = typeof candidate.message === 'string' ? candidate.message : '';
|
|
76
|
-
return message.includes('AUTH_KEY_UNREGISTERED') && code === 401;
|
|
77
|
-
}
|
|
78
100
|
function commandFailure(code, error) {
|
|
79
101
|
return { ok: false, error: { code, message: errorMessage(error) } };
|
|
80
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telegram-runner.js","sourceRoot":"","sources":["../../src/commands/telegram-runner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"telegram-runner.js","sourceRoot":"","sources":["../../src/commands/telegram-runner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAEpE,OAAO,EAAE,kCAAkC,EAA8B,MAAM,sBAAsB,CAAA;AAErG,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAA;AAIlE,MAAM,sBAAsB,GAAG;IAC7B,qCAAqC;IACrC,+DAA+D;IAC/D,kCAAkC;IAClC,+BAA+B;IAC/B,kBAAkB;IAClB,2BAA2B;CACnB,CAAA;AAEV,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAA8B,EAC9B,OAA2F,EAC3F,OAAiB;IAEjB,MAAM,kCAAkC,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAClE,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACtE,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAEtE,IAAI,MAA6B,CAAA;QACjC,IAAI,CAAC;YACH,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,qBAAqB,EAAE,CAAA;YACvB,qBAAqB,EAAE,CAAA;YACvB,OAAO,cAAc,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;QAC9C,CAAC;QAED,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACjE,OAAO,SAAS,IAAI,cAAc,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;QAC7D,CAAC;gBAAS,CAAC;YACT,qBAAqB,EAAE,CAAA;YACvB,qBAAqB,EAAE,CAAA;YACvB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QAC7C,CAAC;IACH,CAAC,EAAE,OAAO,CAAC,CAAA;AACb,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,OAA8B,EAC9B,OAA2F,EAC3F,OAAiB;IAEjB,MAAM,kCAAkC,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAClE,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACtE,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAEtE,MAAM,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC,KAAK,EAAE,CAAA;QAC9C,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,qBAAqB,EAAE,CAAA;YACvB,qBAAqB,EAAE,CAAA;YACvB,OAAO,MAAM,CAAA;QACf,CAAC;QAED,IAAI,MAA6B,CAAA;QACjC,IAAI,CAAC;YACH,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,qBAAqB,EAAE,CAAA;YACvB,qBAAqB,EAAE,CAAA;YACvB,OAAO,cAAc,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;QAC9C,CAAC;QAED,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACjE,OAAO,SAAS,IAAI,cAAc,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;QAC7D,CAAC;gBAAS,CAAC;YACT,qBAAqB,EAAE,CAAA;YACvB,qBAAqB,EAAE,CAAA;YACvB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QAC7C,CAAC;IACH,CAAC,EAAE,OAAO,CAAC,CAAA;AACb,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,MAA0B;IACjE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;IAC1B,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,KAAiC,EAAE,QAAqC,EAAE,EAA+B,EAAE,EAAE;QAC5H,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAA;QAClF,MAAM,qBAAqB,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;eAC7F,CAAC,QAAQ,CAAC,QAAQ,CAAC,+BAA+B,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAA;QACrG,IAAI,qBAAqB,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAA;IAChD,CAAC,CAAgB,CAAA;IAEjB,OAAO,GAAG,EAAE;QACV,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;IACtB,CAAC,CAAA;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc,EAAE,WAAmB;IAC7D,IAAI,0BAA0B,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE;gBACL,IAAI,EAAE,kCAAkC;gBACxC,OAAO,EAAE,wBAAwB,WAAW,+DAA+D,WAAW,6BAA6B;aACpJ;SACF,CAAA;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,KAAc;IAClD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,CAAA;AACrE,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC/D,CAAC"}
|