Fix for Instagram's changed N1 data

This commit is contained in:
Cadence Ember 2020-04-17 01:15:21 +12:00
parent ebae7f57c3
commit d66d12e7da
No known key found for this signature in database
GPG Key ID: 128B99B1B74A6412
2 changed files with 23 additions and 2 deletions

View File

@ -166,8 +166,12 @@ class TimelineEntry extends TimelineBaseMethods {
if (this.getType() !== constants.symbols.TYPE_GALLERY) {
return this.children = [new TimelineChild(this.data)]
}
// Fetch children if needed
if (!this.data.edge_sidecar_to_children) {
/** @type {import("../types").Edges<import("../types").GraphChildN1>|import("../types").Edges<import("../types").GraphChildVideoN3>} */
// @ts-ignore
const children = this.data.edge_sidecar_to_children
// It's a gallery, so we may need to fetch its children
// We need to fetch children if one of them is a video, because N1 has no video_url.
if (!children || !children.edges.length || children.edges.some(edge => edge.node.is_video && !edge.node.video_url)) {
await this.update()
}
// Create children

View File

@ -194,9 +194,26 @@
* @typedef {TimelineEntryN1 & GraphSidecarN1Diff} GraphSidecarN1
*
* @typedef GraphSidecarN1Diff
* @property {Edges<GraphChildN1>} edge_sidecar_to_children
* @property {"GraphSidecar"} __typename
*/
/**
* @typedef GraphChildN1
* @property {string} __typename
* @property {string} id
* @property {string} shortcode interestingly, each child of a post has a different shortcode.
* @property {Dimensions} dimensions
* @property {string} display_url
* @property {any} gating_info todo: discover
* @property {any} fact_check_overall_rating todo: discover
* @property {any} fact_check_information todo: discover
* @property {string} media_preview base64 of something
* @property {BasicOwner} owner
* @property {boolean} is_video
* @property {string} accessibility_caption
*/
/**
* @typedef TimelineEntryN2
* @property {string} __typename