|
|
|
|
@ -2,13 +2,12 @@
|
|
|
|
|
|
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
|
|
|
|
|
|
use Illuminate\Http\Request;
|
|
|
|
|
use App\Follower;
|
|
|
|
|
use App\Http\Resources\ImportStatus;
|
|
|
|
|
use App\Models\ImportPost;
|
|
|
|
|
use App\Services\ImportService;
|
|
|
|
|
use App\Services\StatusService;
|
|
|
|
|
use App\Http\Resources\ImportStatus;
|
|
|
|
|
use App\Follower;
|
|
|
|
|
use App\User;
|
|
|
|
|
use Illuminate\Http\Request;
|
|
|
|
|
|
|
|
|
|
class ImportPostController extends Controller
|
|
|
|
|
{
|
|
|
|
|
@ -38,7 +37,7 @@ class ImportPostController extends Controller
|
|
|
|
|
'min_follower_count' => config('import.instagram.permissions.min_follower_count'),
|
|
|
|
|
],
|
|
|
|
|
|
|
|
|
|
'allowed' => $this->checkPermissions($request, false)
|
|
|
|
|
'allowed' => $this->checkPermissions($request, false),
|
|
|
|
|
];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -119,12 +118,14 @@ class ImportPostController extends Controller
|
|
|
|
|
->exists();
|
|
|
|
|
|
|
|
|
|
if ($exists) {
|
|
|
|
|
$errors[] = "Duplicate post detected. Skipping...";
|
|
|
|
|
$errors[] = 'Duplicate post detected. Skipping...';
|
|
|
|
|
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$exts = $c->map(function ($m) {
|
|
|
|
|
$fn = last(explode('/', $m['uri']));
|
|
|
|
|
|
|
|
|
|
return last(explode('.', $fn));
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
@ -142,7 +143,7 @@ class ImportPostController extends Controller
|
|
|
|
|
return [
|
|
|
|
|
'uri' => $m['uri'],
|
|
|
|
|
'title' => $this->formatHashtags($m['title'] ?? ''),
|
|
|
|
|
'creation_timestamp' => $m['creation_timestamp'] ?? null
|
|
|
|
|
'creation_timestamp' => $m['creation_timestamp'] ?? null,
|
|
|
|
|
];
|
|
|
|
|
})->toArray();
|
|
|
|
|
|
|
|
|
|
@ -156,7 +157,7 @@ class ImportPostController extends Controller
|
|
|
|
|
$ip->metadata = $c->map(function ($m) {
|
|
|
|
|
return [
|
|
|
|
|
'uri' => $m['uri'],
|
|
|
|
|
'media_metadata' => isset($m['media_metadata']) ? $m['media_metadata'] : null
|
|
|
|
|
'media_metadata' => isset($m['media_metadata']) ? $m['media_metadata'] : null,
|
|
|
|
|
];
|
|
|
|
|
})->toArray();
|
|
|
|
|
|
|
|
|
|
@ -184,6 +185,7 @@ class ImportPostController extends Controller
|
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
|
$errors[] = $e->getMessage();
|
|
|
|
|
\Log::error('Import error: '.$e->getMessage());
|
|
|
|
|
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -191,7 +193,7 @@ class ImportPostController extends Controller
|
|
|
|
|
return [
|
|
|
|
|
'success' => true,
|
|
|
|
|
'msg' => 'Successfully imported '.$successCount.' posts',
|
|
|
|
|
'errors' => $errors
|
|
|
|
|
'errors' => $errors,
|
|
|
|
|
];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -219,10 +221,13 @@ class ImportPostController extends Controller
|
|
|
|
|
'required',
|
|
|
|
|
'file',
|
|
|
|
|
$mimes,
|
|
|
|
|
'max:' . config_cache('pixelfed.max_photo_size')
|
|
|
|
|
]
|
|
|
|
|
'max:'.config_cache('pixelfed.max_photo_size'),
|
|
|
|
|
],
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
$localFs = config('filesystems.default') === 'local';
|
|
|
|
|
$disk = $localFs ? 'local' : config('filesystems.default');
|
|
|
|
|
|
|
|
|
|
foreach ($request->file('file') as $file) {
|
|
|
|
|
$extension = $file->getClientOriginalExtension();
|
|
|
|
|
|
|
|
|
|
@ -230,17 +235,16 @@ class ImportPostController extends Controller
|
|
|
|
|
$safeFilename = preg_replace('/[^a-zA-Z0-9_.-]/', '_', $originalName);
|
|
|
|
|
$fileName = $safeFilename.'.'.$extension;
|
|
|
|
|
|
|
|
|
|
$file->storeAs('imports/' . $request->user()->id . '/', $fileName);
|
|
|
|
|
$file->storeAs('imports/'.$request->user()->id.'/', $fileName, $disk);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ImportService::getImportedFiles($request->user()->profile_id, true);
|
|
|
|
|
|
|
|
|
|
return [
|
|
|
|
|
'msg' => 'Success'
|
|
|
|
|
'msg' => 'Success',
|
|
|
|
|
];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private function determinePostType($exts)
|
|
|
|
|
{
|
|
|
|
|
if ($exts->count() > 1) {
|
|
|
|
|
@ -277,6 +281,7 @@ class ImportPostController extends Controller
|
|
|
|
|
$originalName = implode('.', $parts);
|
|
|
|
|
|
|
|
|
|
$safeFilename = preg_replace('/[^a-zA-Z0-9_.-]/', '_', $originalName);
|
|
|
|
|
|
|
|
|
|
return $safeFilename.'.'.$extension;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|