Remove image upload flags
This commit is contained in:
@@ -9,8 +9,6 @@ export enum Features {
|
|||||||
ImportContactsOnboardingDisable = 'import_contacts:onboarding:disable',
|
ImportContactsOnboardingDisable = 'import_contacts:onboarding:disable',
|
||||||
ImportContactsSettingsDisable = 'import_contacts:settings:disable',
|
ImportContactsSettingsDisable = 'import_contacts:settings:disable',
|
||||||
LiveNowBetaDisable = 'live_now_beta:disable',
|
LiveNowBetaDisable = 'live_now_beta:disable',
|
||||||
ImageUploadsHighResolution = 'image_uploads:high_resolution',
|
|
||||||
ImageUploadsBlobSize2mbEnabled = 'image_uploads:blob_size_2mb:enabled',
|
|
||||||
GroupChatsEnable = 'group_chats:enable',
|
GroupChatsEnable = 'group_chats:enable',
|
||||||
GroupChatsHasBeenReleased = 'group_chats:has_been_released',
|
GroupChatsHasBeenReleased = 'group_chats:has_been_released',
|
||||||
DmsNewMessageComposerEnable = 'dms:new_message_composer:enable',
|
DmsNewMessageComposerEnable = 'dms:new_message_composer:enable',
|
||||||
|
|||||||
+2
-21
@@ -51,16 +51,10 @@ interface PostOpts {
|
|||||||
langs?: string[]
|
langs?: string[]
|
||||||
}
|
}
|
||||||
|
|
||||||
type FeatureFlags = {
|
|
||||||
highResolutionImages?: boolean
|
|
||||||
increasedBlobSizeLimit?: boolean
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function post(
|
export async function post(
|
||||||
agent: BskyAgent,
|
agent: BskyAgent,
|
||||||
queryClient: QueryClient,
|
queryClient: QueryClient,
|
||||||
opts: PostOpts,
|
opts: PostOpts,
|
||||||
featureFlags?: FeatureFlags,
|
|
||||||
) {
|
) {
|
||||||
const thread = opts.thread
|
const thread = opts.thread
|
||||||
opts.onStateChange?.(t`Processing...`)
|
opts.onStateChange?.(t`Processing...`)
|
||||||
@@ -97,7 +91,6 @@ export async function post(
|
|||||||
queryClient,
|
queryClient,
|
||||||
draft,
|
draft,
|
||||||
opts.onStateChange,
|
opts.onStateChange,
|
||||||
featureFlags,
|
|
||||||
)
|
)
|
||||||
let labels: $Typed<ComAtprotoLabelDefs.SelfLabels> | undefined
|
let labels: $Typed<ComAtprotoLabelDefs.SelfLabels> | undefined
|
||||||
if (draft.labels.length) {
|
if (draft.labels.length) {
|
||||||
@@ -257,7 +250,6 @@ async function resolveEmbed(
|
|||||||
queryClient: QueryClient,
|
queryClient: QueryClient,
|
||||||
draft: PostDraft,
|
draft: PostDraft,
|
||||||
onStateChange: ((state: string) => void) | undefined,
|
onStateChange: ((state: string) => void) | undefined,
|
||||||
featureFlags?: FeatureFlags,
|
|
||||||
): Promise<
|
): Promise<
|
||||||
| $Typed<AppBskyEmbedImages.Main>
|
| $Typed<AppBskyEmbedImages.Main>
|
||||||
| $Typed<AppBskyEmbedVideo.Main>
|
| $Typed<AppBskyEmbedVideo.Main>
|
||||||
@@ -268,13 +260,7 @@ async function resolveEmbed(
|
|||||||
> {
|
> {
|
||||||
if (draft.embed.quote) {
|
if (draft.embed.quote) {
|
||||||
const [resolvedMedia, resolvedQuote] = await Promise.all([
|
const [resolvedMedia, resolvedQuote] = await Promise.all([
|
||||||
resolveMedia(
|
resolveMedia(agent, queryClient, draft.embed, onStateChange),
|
||||||
agent,
|
|
||||||
queryClient,
|
|
||||||
draft.embed,
|
|
||||||
onStateChange,
|
|
||||||
featureFlags,
|
|
||||||
),
|
|
||||||
resolveRecord(agent, queryClient, draft.embed.quote.uri),
|
resolveRecord(agent, queryClient, draft.embed.quote.uri),
|
||||||
])
|
])
|
||||||
if (resolvedMedia) {
|
if (resolvedMedia) {
|
||||||
@@ -297,7 +283,6 @@ async function resolveEmbed(
|
|||||||
queryClient,
|
queryClient,
|
||||||
draft.embed,
|
draft.embed,
|
||||||
onStateChange,
|
onStateChange,
|
||||||
featureFlags,
|
|
||||||
)
|
)
|
||||||
if (resolvedMedia) {
|
if (resolvedMedia) {
|
||||||
return resolvedMedia
|
return resolvedMedia
|
||||||
@@ -323,7 +308,6 @@ async function resolveMedia(
|
|||||||
queryClient: QueryClient,
|
queryClient: QueryClient,
|
||||||
embedDraft: EmbedDraft,
|
embedDraft: EmbedDraft,
|
||||||
onStateChange: ((state: string) => void) | undefined,
|
onStateChange: ((state: string) => void) | undefined,
|
||||||
featureFlags?: FeatureFlags,
|
|
||||||
): Promise<
|
): Promise<
|
||||||
| $Typed<AppBskyEmbedExternal.Main>
|
| $Typed<AppBskyEmbedExternal.Main>
|
||||||
| $Typed<AppBskyEmbedImages.Main>
|
| $Typed<AppBskyEmbedImages.Main>
|
||||||
@@ -339,10 +323,7 @@ async function resolveMedia(
|
|||||||
const images: AppBskyEmbedImages.Image[] = await Promise.all(
|
const images: AppBskyEmbedImages.Image[] = await Promise.all(
|
||||||
imagesDraft.map(async (image, i) => {
|
imagesDraft.map(async (image, i) => {
|
||||||
logger.debug(`Compressing image #${i}`)
|
logger.debug(`Compressing image #${i}`)
|
||||||
const {path, width, height, mime} = await compressImage(image, {
|
const {path, width, height, mime} = await compressImage(image)
|
||||||
highResolution: featureFlags?.highResolutionImages,
|
|
||||||
increasedBlobSizeLimit: featureFlags?.increasedBlobSizeLimit,
|
|
||||||
})
|
|
||||||
logger.debug(`Uploading image #${i}`)
|
logger.debug(`Uploading image #${i}`)
|
||||||
const res = await uploadBlob(agent, path, mime)
|
const res = await uploadBlob(agent, path, mime)
|
||||||
return {
|
return {
|
||||||
|
|||||||
+3
-11
@@ -13,7 +13,6 @@ import {
|
|||||||
} from 'expo-image-manipulator'
|
} from 'expo-image-manipulator'
|
||||||
import {nanoid} from 'nanoid/non-secure'
|
import {nanoid} from 'nanoid/non-secure'
|
||||||
|
|
||||||
import {POST_IMG_MAX} from '#/lib/constants'
|
|
||||||
import {getImageDim} from '#/lib/media/manip'
|
import {getImageDim} from '#/lib/media/manip'
|
||||||
import {openCropper} from '#/lib/media/picker'
|
import {openCropper} from '#/lib/media/picker'
|
||||||
import {type PickerImage} from '#/lib/media/picker.shared'
|
import {type PickerImage} from '#/lib/media/picker.shared'
|
||||||
@@ -202,19 +201,12 @@ export function resetImageManipulation(
|
|||||||
return img
|
return img
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function compressImage(
|
export async function compressImage(img: ComposerImage): Promise<PickerImage> {
|
||||||
img: ComposerImage,
|
|
||||||
options?: {
|
|
||||||
highResolution?: boolean
|
|
||||||
increasedBlobSizeLimit?: boolean
|
|
||||||
},
|
|
||||||
): Promise<PickerImage> {
|
|
||||||
const source = img.transformed || img.source
|
const source = img.transformed || img.source
|
||||||
const highResolution = options?.highResolution ?? false
|
|
||||||
|
|
||||||
let attempts = 0
|
let attempts = 0
|
||||||
let maxDimension = highResolution ? 4000 : POST_IMG_MAX.width
|
let maxDimension = 4000
|
||||||
let maxBytes = options?.increasedBlobSizeLimit ? 2000000 : POST_IMG_MAX.size
|
let maxBytes = 2000000
|
||||||
|
|
||||||
let minQualityPercentage = 0
|
let minQualityPercentage = 0
|
||||||
let maxQualityPercentage = 101 // exclusive
|
let maxQualityPercentage = 101 // exclusive
|
||||||
|
|||||||
@@ -877,24 +877,12 @@ export const ComposePost = ({
|
|||||||
try {
|
try {
|
||||||
logger.info(`composer: posting...`)
|
logger.info(`composer: posting...`)
|
||||||
postUri = (
|
postUri = (
|
||||||
await apilib.post(
|
await apilib.post(agent, queryClient, {
|
||||||
agent,
|
thread: filteredThread,
|
||||||
queryClient,
|
replyTo: replyTo?.uri,
|
||||||
{
|
onStateChange: setPublishingStage,
|
||||||
thread: filteredThread,
|
langs: currentLanguages,
|
||||||
replyTo: replyTo?.uri,
|
})
|
||||||
onStateChange: setPublishingStage,
|
|
||||||
langs: currentLanguages,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
highResolutionImages: ax.features.enabled(
|
|
||||||
ax.features.ImageUploadsHighResolution,
|
|
||||||
),
|
|
||||||
increasedBlobSizeLimit: ax.features.enabled(
|
|
||||||
ax.features.ImageUploadsBlobSize2mbEnabled,
|
|
||||||
),
|
|
||||||
},
|
|
||||||
)
|
|
||||||
).uris[0]
|
).uris[0]
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
Reference in New Issue
Block a user