about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorHailey <me@haileyok.com>2024-04-17 12:49:22 -0700
committerGitHub <noreply@github.com>2024-04-17 12:49:22 -0700
commit410f155988285e621d4c3891848bcbe70b890f38 (patch)
tree61bca6a94da4063273a7e5538df65e51a6e4ad4b /src
parenta2df81416b4a9e4538e3a6d44917e3914294ab1f (diff)
downloadvoidsky-410f155988285e621d4c3891848bcbe70b890f38.tar.zst
Cleanup files after upload on native (#3597)
* cleanup images after uploading from the composer

cleanup external embed images as well

cleanup files after upload

add `expo-file-system`

* remove test log

* await

* Revert "await"

This reverts commit 771814b40ce1395cac4f56853d8a9e793ca92c2f.

* just log an error if it throws
Diffstat (limited to 'src')
-rw-r--r--src/lib/api/index.ts31
1 files changed, 25 insertions, 6 deletions
diff --git a/src/lib/api/index.ts b/src/lib/api/index.ts
index 5fb7fe50e..cc86ce33c 100644
--- a/src/lib/api/index.ts
+++ b/src/lib/api/index.ts
@@ -1,6 +1,7 @@
+import {deleteAsync} from 'expo-file-system'
 import {
-  AppBskyEmbedImages,
   AppBskyEmbedExternal,
+  AppBskyEmbedImages,
   AppBskyEmbedRecord,
   AppBskyEmbedRecordWithMedia,
   AppBskyFeedThreadgate,
@@ -11,13 +12,14 @@ import {
   RichText,
 } from '@atproto/api'
 import {AtUri} from '@atproto/api'
-import {isNetworkError} from 'lib/strings/errors'
-import {LinkMeta} from '../link-meta/link-meta'
-import {isWeb} from 'platform/detection'
-import {ImageModel} from 'state/models/media/image'
-import {shortenLinks} from 'lib/strings/rich-text-manip'
+
 import {logger} from '#/logger'
 import {ThreadgateSetting} from '#/state/queries/threadgate'
+import {isNetworkError} from 'lib/strings/errors'
+import {shortenLinks} from 'lib/strings/rich-text-manip'
+import {isNative, isWeb} from 'platform/detection'
+import {ImageModel} from 'state/models/media/image'
+import {LinkMeta} from '../link-meta/link-meta'
 
 export interface ExternalEmbedDraft {
   uri: string
@@ -117,6 +119,15 @@ export async function post(agent: BskyAgent, opts: PostOpts) {
       const {width, height} = image.compressed || image
       logger.debug(`Uploading image`)
       const res = await uploadBlob(agent, path, 'image/jpeg')
+
+      if (isNative) {
+        try {
+          deleteAsync(path)
+        } catch (e) {
+          console.error(e)
+        }
+      }
+
       images.push({
         image: res.data.blob,
         alt: image.altText ?? '',
@@ -171,6 +182,14 @@ export async function post(agent: BskyAgent, opts: PostOpts) {
             encoding,
           )
           thumb = thumbUploadRes.data.blob
+
+          try {
+            if (isNative) {
+              deleteAsync(opts.extLink.localThumb.path)
+            }
+          } catch (e) {
+            console.error(e)
+          }
         }
       }