mirror of
https://github.com/LuanRT/YouTube.js.git
synced 2026-06-19 12:31:17 +00:00
* feat: add core comments section classes * chore: update type declarations * chore: fix linter warnings * style: fix linter * chore: update tests * chore(tests): fix typo * chore(tests): fix typo x2 * fix(tests): `getReplies()` method is only present in `CommentThread` and not `Comment` * chore(tests): fix comment id path * chore(tests): remove outdated code * chore(tests): fix results path * chore: enforce code style * chore: update type declarations * docs: add examples and documentation * chore(docs): fix paths * chore(docs): fix more paths * chore(docs): fix `Comments.js` path * chore(docs): fix typo * chore(docs): mention example file * chore(examples): fix imports * chore(examples): fix typo
26 lines
948 B
JavaScript
26 lines
948 B
JavaScript
'use strict';
|
|
|
|
class NotificationItem {
|
|
static parse(data) {
|
|
return data.map((item) => this.parseItem(item)).filter((item) => item);
|
|
}
|
|
|
|
static parseItem(item) {
|
|
if (item.notificationRenderer) {
|
|
const notification = item.notificationRenderer;
|
|
|
|
return {
|
|
title: notification?.shortMessage?.simpleText,
|
|
sent_time: notification?.sentTimeText?.simpleText,
|
|
timestamp: notification.notificationId,
|
|
channel_name: notification?.contextualMenu?.menuRenderer?.items[1]?.menuServiceItemRenderer?.text?.runs[1]?.text || 'N/A',
|
|
channel_thumbnail: notification?.thumbnail?.thumbnails[0],
|
|
video_thumbnail: notification?.videoThumbnail?.thumbnails[0],
|
|
video_url: notification.navigationEndpoint.watchEndpoint ? `https://youtu.be/${notification.navigationEndpoint.watchEndpoint.videoId}` : 'N/A',
|
|
read: notification.read
|
|
};
|
|
}
|
|
}
|
|
}
|
|
|
|
module.exports = NotificationItem; |