feat: telegram channel audio & podcast support (#5785)

This commit is contained in:
notofoe 2020-10-04 04:27:35 +08:00 committed by GitHub
parent 394532dc8c
commit 5505fbf9d5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 34 additions and 3 deletions

View File

@ -21,6 +21,10 @@ module.exports = async (ctx) => {
description: $('.tgme_channel_info_description').text(),
link: resourceUrl,
allowEmpty: true,
itunes_author: $('.tgme_channel_info_header_title').text(),
image: $('.tgme_page_photo_image > img').attr('src'),
item:
list &&
list
@ -136,6 +140,26 @@ module.exports = async (ctx) => {
return messageVideos;
};
/* audio */
const messageAudioUrl = item.find('audio.tgme_widget_message_voice').length ? item.find('audio.tgme_widget_message_voice').attr('src') : '';
const messageAudioText = item.find('audio.tgme_widget_message_voice').length ? `<audio src="${item.find('audio.tgme_widget_message_voice').attr('src')}"></audio>` : '';
const messageAudioDuration = () => {
if (item.find('.tgme_widget_message_voice_duration').length) {
const durationInMmss = item.find('.tgme_widget_message_voice_duration').text();
const p = durationInMmss.split(':');
let second = 0,
minute = 1;
while (p.length > 0) {
second += minute * parseInt(p.pop(), 10);
minute *= 60;
}
return second.toString();
} else {
return '';
}
};
/* link preview */
const linkPreview = () => {
const linkPreviewSite = item.find('.link_preview_site_name').length ? `<b>${item.find('.link_preview_site_name').text()}</b><br>` : '';
@ -162,6 +186,9 @@ module.exports = async (ctx) => {
/* attachment */
const attachmentTitle = item.find('.tgme_widget_message_document_title').length ? item.find('.tgme_widget_message_document_title').text() + ' / ' + item.find('.tgme_widget_message_document_extra').text() : '';
/* pubDate */
const pubDate = new Date(item.find('.tgme_widget_message_date time').attr('datetime')).toUTCString();
/* message text & title */
const messageTextObject = item.find('.tgme_widget_message_bubble > .tgme_widget_message_text');
let messageText = '',
@ -175,16 +202,20 @@ module.exports = async (ctx) => {
} else if (attachmentTitle !== '') {
messageTitle = attachmentTitle;
} else {
messageTitle = '无题';
messageTitle = pubDate;
}
}
return {
title: mediaTag() + messageTitle,
description: fwdFrom() + replyContent() + messageText + linkPreview() + messageImgs + messageVideos(),
pubDate: new Date(item.find('.tgme_widget_message_date time').attr('datetime')).toUTCString(),
description: fwdFrom() + replyContent() + messageAudioText + messageText + linkPreview() + messageImgs + messageVideos(),
pubDate: pubDate,
link: item.find('.tgme_widget_message_date').attr('href'),
author: item.find('.tgme_widget_message_from_author').text(),
enclosure_url: messageAudioUrl,
enclosure_length: messageAudioDuration(),
enclosure_type: 'audio/ogg',
};
})
.get()