···44 BlobRef
55} from "@atproto/api";
6677-import { logger } from "../logger/logger";
88-97import {
108 EmbeddedMedia,
119 PostRecordImpl
1210} from "./types";
1111+import { logger } from "../logger/logger";
1212+131314141515export class BlueskyClient {
+1-1
src/bluesky/types/EmbeddedMedia.ts
···11-import { VideoEmbed } from "./VideoEmbed";
21import { ImagesEmbed } from "./ImagesEmbed";
22+import { VideoEmbed } from "./VideoEmbed";
3344export type EmbeddedMedia = VideoEmbed | ImagesEmbed;
+1
src/bluesky/types/ImagesEmbed.ts
···11import { AppBskyEmbedImages } from "@atproto/api";
22+23import { ImageEmbed } from "./ImageEmbed";
3445export interface ImagesEmbed extends AppBskyEmbedImages.Main {
+1
src/bluesky/types/PostRecord.ts
···11import { AppBskyFeedPost, Facet } from "@atproto/api";
22+23import { EmbeddedMedia } from "./EmbeddedMedia";
3445export interface PostRecord extends Partial<AppBskyFeedPost.Record> {}
+2-1
src/config.ts
···11+import path from 'path';
22+13import * as dotenv from 'dotenv';
22-import path from 'path';
3445dotenv.config();
56
+2-1
src/image/image.ts
···11+import byteSize from "byte-size";
12import sharp from "sharp";
22-import byteSize from "byte-size";
33+34import { logger } from "../logger/logger";
45import { Ratio } from "../media";
56
+1-1
src/logger/logger.ts
···11-import { pino } from 'pino';
21import * as dotenv from 'dotenv';
22+import { pino } from 'pino';
3344// Get env varables from .env
55dotenv.config();
···11-import { MediaProcessorFactory } from "../interfaces/MediaProcessorFactory";
22-import { ProcessStrategy } from "../interfaces/ProcessStrategy";
31import { Media, VideoMedia, ImageMedia } from "../InstagramExportedPost";
42import { MediaProcessResult } from "../MediaProcessResult";
53import { InstagramImageProcessor } from "./InstagramImageProcessor";
64import { InstagramVideoProcessor } from "./InstagramVideoProcessor";
75import { getMimeType as getVideoMimeType } from "../../video/video";
66+import { MediaProcessorFactory } from "../interfaces/MediaProcessorFactory";
77+import { ProcessStrategy } from "../interfaces/ProcessStrategy";
8899/**
1010 * Processor factory that handles images and video.
+2-2
src/media/processors/InstagramImageProcessor.ts
···11+import { getImageMimeType, getImageSize } from "../../image";
12import { logger } from "../../logger/logger";
22-import { ImageMediaProcessingStrategy } from "../interfaces/ImageMediaProcessingStrategy";
33import { ImageMedia, Media } from "../InstagramExportedPost";
44+import { ImageMediaProcessingStrategy } from "../interfaces/ImageMediaProcessingStrategy";
45import { MediaProcessResult, ImageMediaProcessResultImpl } from "../MediaProcessResult";
55-import { getImageMimeType, getImageSize } from "../../image";
66import { getMediaBuffer } from "../utils";
7788/**
+2-2
src/media/processors/InstagramMediaProcessor.ts
···11import { logger } from "../../logger/logger";
22-import { ProcessedPost, ProcessedPostImpl } from "../ProcessedPost";
32import { InstagramExportedPost, Media, ImageMedia, VideoMedia } from "../InstagramExportedPost";
33+import { DefaultMediaProcessorFactory } from "./DefaultMediaProcessorFactory";
44import { InstagramPostProcessingStrategy } from "../interfaces/InstagramPostProcessingStrategy";
55import { MediaProcessorFactory } from "../interfaces/MediaProcessorFactory";
66-import { DefaultMediaProcessorFactory } from "./DefaultMediaProcessorFactory";
66+import { ProcessedPost, ProcessedPostImpl } from "../ProcessedPost";
7788const MAX_IMAGES_PER_POST = 4;
99const POST_TEXT_LIMIT = 300;
+2-2
src/media/processors/InstagramVideoProcessor.ts
···11import { logger } from "../../logger/logger";
22-import { VideoMediaProcessingStrategy } from "../interfaces/VideoMediaProcessingStrategy";
22+import { getVideoDimensions, getMimeType as getVideoMimeType, validateVideo } from "../../video/video";
33import { VideoMedia } from "../InstagramExportedPost";
44+import { VideoMediaProcessingStrategy } from "../interfaces/VideoMediaProcessingStrategy";
45import { MediaProcessResult, VideoMediaProcessResultImpl } from "../MediaProcessResult";
55-import { getVideoDimensions, getMimeType as getVideoMimeType, validateVideo } from "../../video/video";
66import { getMediaBuffer } from "../utils";
7788const POST_TEXT_LIMIT = 300;
+2-1
src/media/utils.ts
···11import FS from "fs";
22+33+import { Media } from "./InstagramExportedPost";
24import { logger } from "../logger/logger";
33-import { Media } from "./InstagramExportedPost";
4556/**
67 * Decode JSON Data into an Object.
+2-1
src/video/video.ts
···11+import ffprobe from "@ffprobe-installer/ffprobe";
12import ffmpeg from "fluent-ffmpeg";
22-import ffprobe from "@ffprobe-installer/ffprobe";
33+34import { logger } from "../logger/logger";
45import { Ratio } from "../media";
56// Configure ffmpeg to use ffprobe