mirror of
https://github.com/LuanRT/YouTube.js.git
synced 2026-07-03 09:35:05 +00:00
refactor: rewrite Comments Section logic (#88)
* 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
This commit is contained in:
25
lib/parser/contents/classes/comments/AuthorCommentBadge.js
Normal file
25
lib/parser/contents/classes/comments/AuthorCommentBadge.js
Normal file
@@ -0,0 +1,25 @@
|
||||
'use strict';
|
||||
|
||||
class AuthorCommentBadge {
|
||||
type = 'AuthorCommentBadge';
|
||||
|
||||
#data;
|
||||
|
||||
constructor(data) {
|
||||
this.icon_type = data.icon.iconType;
|
||||
this.tooltip = data.iconTooltip;
|
||||
|
||||
// *** For consistency
|
||||
this.tooltip === 'Verified' &&
|
||||
(this.style = 'BADGE_STYLE_TYPE_VERIFIED') &&
|
||||
(data.style = 'BADGE_STYLE_TYPE_VERIFIED');
|
||||
|
||||
this.#data = data;
|
||||
}
|
||||
|
||||
get orig_badge() {
|
||||
return this.#data;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = AuthorCommentBadge;
|
||||
15
lib/parser/contents/classes/comments/CommentActionButtons.js
Normal file
15
lib/parser/contents/classes/comments/CommentActionButtons.js
Normal file
@@ -0,0 +1,15 @@
|
||||
'use strict';
|
||||
|
||||
const Parser = require('../..');
|
||||
|
||||
class CommentActionButtons {
|
||||
type = 'CommentActionButtons';
|
||||
|
||||
constructor(data) {
|
||||
this.like_button = Parser.parse(data.likeButton);
|
||||
this.dislike_button = Parser.parse(data.dislikeButton);
|
||||
this.reply_button = Parser.parse(data.replyButton);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = CommentActionButtons;
|
||||
15
lib/parser/contents/classes/comments/CommentReplies.js
Normal file
15
lib/parser/contents/classes/comments/CommentReplies.js
Normal file
@@ -0,0 +1,15 @@
|
||||
'use strict';
|
||||
|
||||
const Parser = require('../..');
|
||||
|
||||
class CommentReplies {
|
||||
type = 'CommentReplies';
|
||||
|
||||
constructor(data) {
|
||||
this.contents = Parser.parse(data.contents);
|
||||
this.view_replies = Parser.parse(data.viewReplies);
|
||||
this.hide_replies = Parser.parse(data.hideReplies);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = CommentReplies;
|
||||
19
lib/parser/contents/classes/comments/CommentSimplebox.js
Normal file
19
lib/parser/contents/classes/comments/CommentSimplebox.js
Normal file
@@ -0,0 +1,19 @@
|
||||
'use strict';
|
||||
|
||||
const Parser = require('../..');
|
||||
const Thumbnail = require('../Thumbnail');
|
||||
const Text = require('../Text');
|
||||
|
||||
class CommentSimplebox {
|
||||
type = 'CommentSimplebox';
|
||||
|
||||
constructor(data) {
|
||||
this.submit_button = Parser.parse(data.submitButton);
|
||||
this.cancel_button = Parser.parse(data.cancelButton);
|
||||
this.author_thumbnails = Thumbnail.fromResponse(data.authorThumbnail);
|
||||
this.placeholder = new Text(data.placeholderText);
|
||||
this.avatar_size = data.avatarSize;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = CommentSimplebox;
|
||||
Reference in New Issue
Block a user