From 01b445f6ea41aa5ee1e904eee6ab56155db384bb Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 6 Mar 2025 04:49:33 -0700 Subject: [PATCH] Update AccountImports, add webp support --- app/Console/Commands/TransformImports.php | 6 +++--- app/Http/Controllers/ImportPostController.php | 2 ++ config/import.php | 3 +++ resources/assets/components/AccountImport.vue | 17 ++++++++++------- 4 files changed, 18 insertions(+), 10 deletions(-) diff --git a/app/Console/Commands/TransformImports.php b/app/Console/Commands/TransformImports.php index f3caf9102..c1af7ce11 100644 --- a/app/Console/Commands/TransformImports.php +++ b/app/Console/Commands/TransformImports.php @@ -109,11 +109,11 @@ class TransformImports extends Command $status->caption = $caption; $status->type = $ip->post_type; - $status->scope = 'unlisted'; - $status->visibility = 'unlisted'; + $status->scope = 'public'; + $status->visibility = 'public'; $status->id = $idk['id']; $status->created_at = now()->parse($ip->creation_date); - $status->save(); + $status->saveQuietly(); foreach ($ip->media as $ipm) { $fileName = last(explode('/', $ipm['uri'])); diff --git a/app/Http/Controllers/ImportPostController.php b/app/Http/Controllers/ImportPostController.php index 84f230622..47456b2b3 100644 --- a/app/Http/Controllers/ImportPostController.php +++ b/app/Http/Controllers/ImportPostController.php @@ -29,6 +29,8 @@ class ImportPostController extends Controller 'allow_video_posts' => config('import.instagram.allow_video_posts'), + 'allow_image_webp' => config('import.instagram.allow_image_webp') && str_contains(config_cache('pixelfed.media_types'), 'image/webp'), + 'permissions' => [ 'admins_only' => config('import.instagram.permissions.admins_only'), 'admin_follows_only' => config('import.instagram.permissions.admin_follows_only'), diff --git a/config/import.php b/config/import.php index f754da490..58ab4afe6 100644 --- a/config/import.php +++ b/config/import.php @@ -24,6 +24,9 @@ return [ // Allow video posts to be imported 'allow_video_posts' => env('PF_IMPORT_IG_ALLOW_VIDEO_POSTS', true), + // Allow webp posts to be imported + 'allow_image_webp' => env('PF_IMPORT_IG_ALLOW_IMAGE_WEBP', true), + 'permissions' => [ // Limit to admin accounts only 'admins_only' => env('PF_IMPORT_IG_PERM_ADMIN_ONLY', false), diff --git a/resources/assets/components/AccountImport.vue b/resources/assets/components/AccountImport.vue index 7c50ff6f2..f2b1ed193 100644 --- a/resources/assets/components/AccountImport.vue +++ b/resources/assets/components/AccountImport.vue @@ -107,7 +107,7 @@

{{ selectedPostsCounter }} posts selected for import

- +
@@ -233,7 +233,7 @@ return { page: 1, step: 1, - toggleLimit: 100, + toggleLimit: 300, config: {}, showDisabledWarning: false, showNotAllowedWarning: false, @@ -375,11 +375,14 @@ } let res = json.filter(j => { let ids = j.media.map(m => m.uri).filter(m => { - if(this.config.allow_video_posts == true) { - return m.endsWith('.png') || m.endsWith('.jpg') || m.endsWith('.mp4'); - } else { - return m.endsWith('.png') || m.endsWith('.jpg'); + const supportedFormats = ['.png', '.jpg']; + if (this.config.allow_video_posts) { + supportedFormats.push('.mp4'); + } + if (this.config.allow_image_webp) { + supportedFormats.push('.webp'); } + return supportedFormats.some(format => m.endsWith(format)); }); return ids.length; }).filter(j => { @@ -621,7 +624,7 @@ }, handleSelectAll() { - let medias = this.postMeta.slice(0, 100); + let medias = this.postMeta.slice(0, this.toggleLimit); for (var i = medias.length - 1; i >= 0; i--) { let m = medias[i]; this.toggleSelectedPost(m);