mirror of
https://github.com/LuanRT/YouTube.js.git
synced 2026-06-21 21:42:25 +00:00
* dev: add response types * dev: refactor `Parser#parseResponse()` * dev: update YouTube parsers * dev: update YouTube Music classes * dev: update YouTube Kids classes * dev: update core classes * dev(Parser): fix some inconsistencies * chore: update docs * chore: update docs x2 * fix: export response types * chore(docs): update parser example
30 lines
1.0 KiB
TypeScript
30 lines
1.0 KiB
TypeScript
import type Actions from '../../core/Actions.js';
|
|
import Feed from '../../core/Feed.js';
|
|
import ItemSection from '../classes/ItemSection.js';
|
|
import BrowseFeedActions from '../classes/BrowseFeedActions.js';
|
|
import type { IBrowseResponse } from '../types/ParsedResponse.js';
|
|
import type { ApiResponse } from '../../core/Actions.js';
|
|
|
|
// TODO: make feed actions usable
|
|
class History extends Feed<IBrowseResponse> {
|
|
sections: ItemSection[];
|
|
feed_actions: BrowseFeedActions;
|
|
|
|
constructor(actions: Actions, data: ApiResponse | IBrowseResponse, already_parsed = false) {
|
|
super(actions, data, already_parsed);
|
|
this.sections = this.memo.getType(ItemSection);
|
|
this.feed_actions = this.memo.getType(BrowseFeedActions).first();
|
|
}
|
|
|
|
/**
|
|
* Retrieves next batch of contents.
|
|
*/
|
|
async getContinuation(): Promise<History> {
|
|
const response = await this.getContinuationData();
|
|
if (!response)
|
|
throw new Error('No continuation data found');
|
|
return new History(this.actions, response, true);
|
|
}
|
|
}
|
|
|
|
export default History; |