mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-19 07:07:27 +00:00
refactor: share telegram voice send path
This commit is contained in:
@@ -345,14 +345,16 @@ async function deliverMediaReply(params: {
|
|||||||
logFallback: logVerbose,
|
logFallback: logVerbose,
|
||||||
});
|
});
|
||||||
if (useVoice) {
|
if (useVoice) {
|
||||||
await params.onVoiceRecording?.();
|
const sendVoiceMedia = async (
|
||||||
try {
|
requestParams: typeof mediaParams,
|
||||||
|
shouldLog?: (err: unknown) => boolean,
|
||||||
|
) => {
|
||||||
const result = await sendTelegramWithThreadFallback({
|
const result = await sendTelegramWithThreadFallback({
|
||||||
operation: "sendVoice",
|
operation: "sendVoice",
|
||||||
runtime: params.runtime,
|
runtime: params.runtime,
|
||||||
thread: params.thread,
|
thread: params.thread,
|
||||||
requestParams: mediaParams,
|
requestParams,
|
||||||
shouldLog: (err) => !isVoiceMessagesForbidden(err),
|
shouldLog,
|
||||||
send: (effectiveParams) =>
|
send: (effectiveParams) =>
|
||||||
params.bot.api.sendVoice(params.chatId, file, { ...effectiveParams }),
|
params.bot.api.sendVoice(params.chatId, file, { ...effectiveParams }),
|
||||||
});
|
});
|
||||||
@@ -360,6 +362,10 @@ async function deliverMediaReply(params: {
|
|||||||
firstDeliveredMessageId = result.message_id;
|
firstDeliveredMessageId = result.message_id;
|
||||||
}
|
}
|
||||||
markDelivered(params.progress);
|
markDelivered(params.progress);
|
||||||
|
};
|
||||||
|
await params.onVoiceRecording?.();
|
||||||
|
try {
|
||||||
|
await sendVoiceMedia(mediaParams, (err) => !isVoiceMessagesForbidden(err));
|
||||||
} catch (voiceErr) {
|
} catch (voiceErr) {
|
||||||
if (isVoiceMessagesForbidden(voiceErr)) {
|
if (isVoiceMessagesForbidden(voiceErr)) {
|
||||||
const fallbackText = params.reply.text;
|
const fallbackText = params.reply.text;
|
||||||
@@ -400,18 +406,7 @@ async function deliverMediaReply(params: {
|
|||||||
const noCaptionParams = { ...mediaParams };
|
const noCaptionParams = { ...mediaParams };
|
||||||
delete noCaptionParams.caption;
|
delete noCaptionParams.caption;
|
||||||
delete noCaptionParams.parse_mode;
|
delete noCaptionParams.parse_mode;
|
||||||
const result = await sendTelegramWithThreadFallback({
|
await sendVoiceMedia(noCaptionParams);
|
||||||
operation: "sendVoice",
|
|
||||||
runtime: params.runtime,
|
|
||||||
thread: params.thread,
|
|
||||||
requestParams: noCaptionParams,
|
|
||||||
send: (effectiveParams) =>
|
|
||||||
params.bot.api.sendVoice(params.chatId, file, { ...effectiveParams }),
|
|
||||||
});
|
|
||||||
if (firstDeliveredMessageId == null) {
|
|
||||||
firstDeliveredMessageId = result.message_id;
|
|
||||||
}
|
|
||||||
markDelivered(params.progress);
|
|
||||||
const fallbackText = params.reply.text;
|
const fallbackText = params.reply.text;
|
||||||
if (fallbackText?.trim()) {
|
if (fallbackText?.trim()) {
|
||||||
await sendTelegramVoiceFallbackText({
|
await sendTelegramVoiceFallbackText({
|
||||||
|
|||||||
Reference in New Issue
Block a user