const axios = require('@/utils/axios'); const cheerio = require('cheerio'); module.exports = async (ctx) => { const username = ctx.params.username; const { data } = await axios.get(`https://t.me/s/${username}`); const $ = cheerio.load(data); const list = $('.tgme_widget_message_wrap'); ctx.state.data = { title: $('.tgme_channel_info_header_title').text() + ' - Telegram 频道', description: $('.tgme_channel_info_description').text(), link: `https://t.me/s/${username}`, item: list && list .map((index, item) => { item = $(item); let img = ''; const generateImg = (selector) => { if (item.find(selector).length) { return ``; } return ''; }; img += generateImg('.tgme_widget_message_photo_wrap'); img += generateImg('.link_preview_image'); let video = ''; if (item.find('.tgme_widget_message_video').length) { video += ``; } return { title: item.find('.tgme_widget_message_text').length ? item.find('.tgme_widget_message_text').text() : '无题', description: (item.find('.tgme_widget_message_text').length ? item.find('.tgme_widget_message_text').html() + '

' : '') + img + video, pubDate: new Date(item.find('.tgme_widget_message_date time').attr('datetime')).toUTCString(), link: item.find('.tgme_widget_message_date').attr('href'), author: item.find('.tgme_widget_message_from_author').text(), }; }) .get(), }; };