@tcortega/twitter-scraper
Version:
Twitter Scraper & Media Downloader. Scrape info from any tweet.
33 lines (24 loc) • 1.04 kB
text/typescript
import { ITemporaryMediaObject } from '../typings';
export class Mapper {
public static mapMediaObject(mediaObj: any): ITemporaryMediaObject {
const mediaUrlList: any = [];
for (let media of mediaObj) {
if (media.type === 'video') {
return Mapper.mapMediaObjectForVideos(media);
}
mediaUrlList.push(Mapper.mapMediaObjectForImages(media));
}
return { isImage: true, media_url: mediaUrlList } as ITemporaryMediaObject;
}
public static mapMediaObjectForVideos(media: any): ITemporaryMediaObject {
let validVariants = media.video_info.variants.filter((x: any) => x.hasOwnProperty('bitrate'));
// Sorting by bitrate ascendingly
validVariants = validVariants.sort((a: any, b: any) => {
return b.bitrate - a.bitrate;
});
return { isVideo: true, media_url: validVariants } as ITemporaryMediaObject;
}
public static mapMediaObjectForImages(media: any) {
return { url: media.media_url_https, content_type: 'img/jpg' };
}
}