Commit Graph

231 Commits

Author SHA1 Message Date
Brendan Allan
f1b61dbc3d Cloud connection (#1842)
* actual cloud connection wow

* Preliminary cloud library joining

* remove dev overrides

* add back library caching

* re-enable vendored openssl
2023-11-30 07:39:39 +00:00
jake
c79c190c78 [ENG-1426] Apply clippy --fix with moderate lints (#1779)
* chore(clippy): fix

* chore: formatting

* fix: add cfg back to macos crate

* remove cfg to see if clippy works

* Restore macOS crate level conditional compilation

* More warns fixing

---------

Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>
Co-authored-by: Ericson Fogo Soares <ericson.ds999@gmail.com>
2023-11-28 17:50:11 +00:00
Brendan Allan
908a13130c [ENG-1435] Saved Searches (#1810)
* saved search CRUD (not perfect)

* saved search settings page

* minor improvements

* fix search filter text apply

* serach in setting

* reduce new tab flicker

* fix tab delete index

* temporarily remove hover effect from applied filters

* fix types

* fix progress

* fix double-add for inOrNotIn

* no more saved searches settings page

* redirect on saved search delete

* cleaner

* fix filter checkbox double fire

* types

---------

Co-authored-by: Utku Bakir <74243531+utkubakir@users.noreply.github.com>
2023-11-25 00:16:26 +00:00
Ericson "Fogo" Soares
f662bf7594 [ENG-1398] Make thumbnailer parallelism configurable (#1780)
* Removing migrator

* Adding serde_repr dep

* Generalizing version manager

* Updating library config to use version manager

* Updating node config to use version manager

* Updating stuff to use new configs

* More async

* Library manager errors

* Node and thumbnailer preferences

* Small warning on prep

* Upgrading batch construction for thumbnailer

* Updating thumb version file to new version manager

* Configurable parallelism for thumbnailer

* Integration with frontend and refresh batch

Co-authored-by: Vítor Vasconcellos <HeavenVolkoff@users.noreply.github.com>

---------

Co-authored-by: Vítor Vasconcellos <HeavenVolkoff@users.noreply.github.com>
2023-11-23 11:23:32 +00:00
Vítor Vasconcellos
f3ad0d7513 Pin rust to 1.73 (Workaround Internal Compiler Error) (#1796)
* Pin rust to 1.73
- Clippy fixes

* Don't install cargo-watch on CI
2023-11-17 22:47:06 +00:00
Jamie Pine
27f077ea0b [ENG-1269] Search options (#1561)
* search options start

* small progress

* more

* bunch of stuff

* semi functioning filters

* cleanup setup api

* progress

* remove filters

* hooked up to query epic moment

* fix

* move db stuff to specific modules

* in/notIn for some fields

* generate ts

* big gains

* working filter options for locations, tags and kind

* working search query

* perfect fixed filters

* saved searches lol

* merge error

* saved searches via api

* better routing

* [ENG-1338] Fix fresh Spacedrive install failing to start due to attempting to query a nonexistent Library (#1649)

Fix Spacedrive failing to start due to attempting to query a nonexistent Library
 - Rename useShoudRedirect to useRedirectToNewLocations
 - Improve behaviour for the immedite redirection after adding a new location

* Show hidden files false by default (#1652)

bool

* fix remove filter in list

* tweaks

* fix nav buttons

* unify MediaData search handling

* cleanup saved search writing

* Add left top bar portals for tags and search + fixed media view on tags

* added search to filter dropdown

* render cycle improvements

* hotfix

* wip

* Refactor with Brendan, but this is a WIP and the search query no longer works

Co-authored-by: Brendan Allan <Brendonovich@users.noreply.github.com>

* progress

* fix location/$id page

* fix tags too

Co-authored-by: Brendan Allan <Brendonovich@users.noreply.github.com>

* 3rd refactor lol

epic style

* half-done with enum-ification of SearchFilterArgs

* broken fixed filters but working inNotIn filters

* search name + extension kinda working

* hidden filter

* fixed filters working??

* deferred search value

* extensions works

* filtered search items mostly working

* tweaks

* stacked approach working for non-search filters

* move to Explorer/Search

* actually use filterArgs in queries

things actually work properly now

* added new icons from Mint

* goof

* cleanup types, filters and mutation logic

* actually use search value

* remove overview from sidebar

* don't shrink LibrariesDropdown ga

* remove overview from sidebar and default to /network

---------

Co-authored-by: Brendan Allan <brendonovich@outlook.com>
Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>
Co-authored-by: Brendan Allan <Brendonovich@users.noreply.github.com>
2023-11-17 06:58:44 +00:00
Brendan Allan
031ac7b670 [ENG-1276] move assigned tags to top of tag assign list (#1768)
* move assigned tags to top of tag assign list

* sort tags by most recently assigned

* console.log

* error boundary
2023-11-14 09:35:50 +00:00
Oscar Beaumont
5705f40aae [ENG-1333] Display active P2P listeners (#1644)
* wip

* share the actual port

* fixes

* wip: remove it

* cargo fmt

* thanks @niikeec
2023-11-13 07:02:03 +00:00
Oscar Beaumont
561eacfb6e [ENG-1201] P2P Error Handling (#1705)
* squash

* wip

* wip

* wip

* wip

* finish it up
2023-11-13 06:58:01 +00:00
Oscar Beaumont
395e0ee3da [ENG-1344] Limit node name length (#1730)
limit length
2023-11-04 09:16:15 +00:00
Ericson "Fogo" Soares
f23e0b13c6 [ENG-1181] File System actions for Ephemeral Files (#1677)
* Backend side

* Rust fmt

* Removing uneeded duplicate files rspc route

* Create folder for ephemeral files

* Ephemeral delete files

* First draft on copy, cut and delete, still buggy

* Fixing copy function and updating async-channel dep

* Rename and some fixes
2023-11-03 17:06:34 +00:00
Brendan Allan
c91ccff37d [ENG-443] Allow folders to be tagged (#1712)
* allow folders to be tagged

* remove bruh

* custom useAssignItems hook

* fix types
2023-11-01 05:23:56 +00:00
Oscar Beaumont
02775921ef [ENG-1318, ENG-1199, ENG-931, ENG-1046] Ability to disable mDNS discovery (#1620)
* let me create pr

* a whole lotta changes

* split `p2p_manager.rs` into smaller files

* the arcpocalypse is over

* minor generic cleanup

* wip removing 'MetadataManager'

* more wip

* wip: i am changing branch

* discovery2 -> discovery

* make it somewhat compile

* more wip

* wip: reassembling manager stream

* state more goodly

* wip

* more wip

* removing generic from sd_p2p::Manager

* reassemble networked libraries

* wip: hooking back up mDNS

* multi-flume wip

* contain bad code to a single file

* p2p_manager_actor + split handlers into file per operation

* cleanup after restructure

* cleaning up more

* wip: reenable resync

* wip: remote identity in connection payload

* track connected clients (required for `service.rs`)

* a big ass iterator

* working towards finishing `service.rs`

* service shutdown

* hook up listen channel in service

* fix address resolution

* merge nlm stuff into LibrariesService

* finish library to service mapping

* less footguns in p2p - seal `PeerId`

* fix previous pr

* p2p state rspc query

* send node events to the frontend

* minor

* wip

* more worky, less crashy

* make spacedrop work + debug state

* fix mdns expiry

* clippy

* other clippy

* remove old tests

* add tests back

---------

Co-authored-by: Brendan Allan <brendonovich@outlook.com>
2023-10-30 08:24:04 +00:00
Utku
bf93d97874 Fix mobile onboarding (#1670)
* attempts

* expo stop using spaces pls

* attempt

* you used to work without this sir

* fixed

* use serde instead of specta

* remove `serde(default`) and update bindings

* fix mobile

* fix types

---------

Co-authored-by: jake <77554505+brxken128@users.noreply.github.com>
2023-10-26 17:38:15 +00:00
Ericson "Fogo" Soares
033e61ac33 [ENG-1320 | ENG-1340] Separate thumbnails FS location by library | Make the thumbnails actor report back its progress (#1656)
* Renaming error type on ffmpeg subcrate

* Version manager overhaul

* Reworked thumbnail actor

* Updating sharding scheme

* New migration system for thumbnails

* Updating search to new actor

* Updating custom_uri to new thumbnail improvements

* Updating library to new thumbnail stuff

* LibraryId type alias

* Updating indexer to new thumbnail actor

* Updating watcher to new thumbnail actor

* Update location manager to use LibraryId type alias

* Updating location metadata to new LibraryId type alias

* New LocationPubId type alias

* Updating ephemeral walker to new thumbnail stuff

* Updating media processor to new thumbnail actor

* New thumbnailer actor state manager

* Introducing the concept of job phases

* Segregating the thumbnailer actor worker fn

* Fixes on job pausing

* Processing batches with progress reporting

* Updated actor

* Updated media processor

* Small tweaks

* Updating non indexed walker

* Changing a UI string
2023-10-26 04:48:29 +00:00
jake
cc72f54c3d [ENG-1210] Navigate to location after adding it (#1454)
* remove annoying log

* return location id on creation

* add checkbox to open new location once it's been added

* redirect if checkbox was true and a location id was provided, and update bindings

* add `new()` for `MissingFieldError`

* return location id on location relink

* working, clean redirecting

* accordion closing tag

* navigate to location after adding

* chore: remove erroneous `{' '}`

* multiple location redirect support

* oops missed check

* cleanup

* fix bad merge

---------

Co-authored-by: ameer2468 <33054370+ameer2468@users.noreply.github.com>
2023-10-20 21:01:13 +00:00
nikec
ace3527bfc [ENG-1305] "Add Locations" onboarding flow (#1611)
* locations onboarding flow

* optional

* Backend for default location on library creation

* Rust fmt

* Enhancing error handling and introducing more resilience

* Removing .spacedrive metadata on library deletion

* Rust fmt again

* default to videos

---------

Co-authored-by: Ericson Fogo Soares <ericson.ds999@gmail.com>
2023-10-19 03:18:36 +00:00
Oscar Beaumont
f67b7e807a [ENG-1291] enable/disable P2P & configurable port (#1609)
* it works pog

* UI for when networking is disabled

* Fix Clippy issues

* clippy tings
2023-10-18 03:52:54 +00:00
Oscar Beaumont
a7ad24c641 [ENG-625] Spacedrop improvements (#1447)
* Fist fight with the abstraction

* Prevent opening multiple Spacedrop dialogues

* Infinite renders = infinite power

* Comment be gone

* Spacedrop multiple files

* correlate connection id's

* fixes

* thanks Typescript

* Clippy errors + fix cfg's from main
2023-10-17 04:31:42 +00:00
Jamie Pine
3709ab4883 [END-1309] Fix explorer query invalidation (#1604)
fix
2023-10-17 03:54:41 +00:00
Ericson "Fogo" Soares
bfe5a65949 [ENG-1267] Move thumbnails generation away from media processor (#1585)
* New vscode task to start developing

* Updating db in case of library updates just in case

* Done

* Forgot to remove some debug logs

* Rust fmt

* Saving thumbnails processing state on app shutdown

* bruh
2023-10-17 02:09:36 +00:00
Brendan Allan
25fa1f0974 [ENG-1255] Feedback popover with new API (#1532)
* feedback popover with new api

* allow unauthed feedback

* add login information

* allow no auth

* fix hooks

* remove emoji on reset

* show cancel on left of login button
2023-10-13 08:08:07 +00:00
Ericson "Fogo" Soares
996361f081 [ENG-1160] Opening a location while indexing causes a lot of jobs to be spawned (#1554)
Solved, but missing a frontend error message
2023-10-13 02:47:13 +00:00
Ericson "Fogo" Soares
bc0f4787bd [ENG-1222] udevadm doesn't exist in Docker container (#1471)
* Changing how we watch for volumes

* Small nitpick
2023-10-11 05:59:15 +00:00
jake
078490cdd5 [ENG-1143] Media View sort by date taken (#1390)
* clippy -_-

* migrations

* alter the migration so it just renames the `dimensions` field (no db re-creation required)

* remove confusing semver addition for `libheif-sys`

* remove warning on the migration as it's just a rename

* add sort opts for resolution and date image was truly taken

* major serde ckeanup & add epoch_time and pixel_count

* rename, cleanup et optimise

* clippy

* ignore this mess

* bindings

* add explanation to schema

* comment out dt test

* better comment and WIP time

* cleanup rust

* failed timezone attempt

* remove image resolution as a sort by option

* update schema (and rename the dimensions table instead of dropping it)

* just show raw date

* add comments and update bindings

* fix migration hopefully

* fix broken migration

---------

Co-authored-by: Jamie Pine <32987599+jamiepine@users.noreply.github.com>
Co-authored-by: Jamie Pine <ijamespine@me.com>
Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>
2023-10-11 00:58:59 +00:00
Jamie Pine
01dbc2caf7 [ENG-864] Create directory (#1458)
* folder

* wrote function

* Abstracting duplicate on file name

* Spliting between ephemeral and indexed

* Now with more type safety

* Forgot to prep

* location + path based

* bruh

* link frontend + error toast

* strip main separator

* dumb

* bruh

* create directory

Co-authored-by: Brendan Allan <Brendonovich@users.noreply.github.com>

* make some reactivity happen

---------

Co-authored-by: Ericson Fogo Soares <ericson.ds999@gmail.com>
Co-authored-by: Brendan Allan <brendonovich@outlook.com>
Co-authored-by: Brendan Allan <Brendonovich@users.noreply.github.com>
2023-10-11 00:47:56 +00:00
jake
fb8af0832b [ENG-1096] Image Conversions (#1364)
* derive `Type` on `*Extension`

* update `image`, `webp` and add `rspc::Error` support to the `sd-images` crate

* rename function for verbosity

* cleanup clippy allows and use scaling fn for svg conversions

* remove dead comment

* specify `generic` image extensions and add fn to enumerate all compatible extensions

* re-exports and inline hot provided method

* another inline on a provided method

* `formatter` -> `handler` and return an explicit error if the extension isn't supported, and add `convert_image()`

* `get_ext()` inlined helper fn

* add mutation for conversion and query for getting all supported extensions

* fix `svg` scaling and generation

* update bindings

* rm old const

* temporary test for all exts

* verbosity and no manual drop

* remove dbg test

* big enum and remove `cur` extension as `image` doesn't support it

* add huge extension enum

* hopefully get path from file path id and location id

* main merge fix

* chore: update toml and lockfile

* security: update webp

* comment entire crypto crate for build times

* add bincode, huge enum and custom ser/de

* Revert "comment entire crypto crate for build times"

This reverts commit 458addaad6.

* lockfile

* theoretically working ser/de

* add svg scaling

* fix pdf matching bug and use options

* move image scaling fn

* major consts overhaul with good ser/de

* disable heif checking for now due to new trait api

* make the generic handler truly generic

* fix pdf types

* fix pdf scaling so that it's 120dpi A4 paper size by default - height/aspect res are maintained

* heavy cleanup

* note to myself

* bindings & update core to use the scaling fn from the images crate (reducing code dupes)

* move vulnerable `aovec` to be a dev dep so it stays out of release builds (it's only used in tests)

* remoev exif crate from the core as it's handled in a sep. crate

* silence a clippy warning and update lockfile

* lower the maximum file size a slight amount

* bindings and minor dep bumps

* Some improvements

---------

Co-authored-by: Ericson Fogo Soares <ericson.ds999@gmail.com>
2023-10-10 02:57:37 +00:00
nikec
0d837d2317 [ENG-1138] Fix list view thumb flicker (#1436)
* rename

* don't forget the table

* Update RenameTextBox.tsx
2023-10-09 13:44:31 +00:00
Jamie Pine
ed751a46d0 [ENG-944] Sidebar UX Improvements (#1270)
* - added local section to sidebar
- added spacedrop screen, showing local peers
- added placeholder network screen
-removed unused swift package
- created a watcher for system volumes to invalidate ui when drives are added/removed

* clouds

* fix more imports

* see more

* open location if volume is location

* gen assets

* remove log

* [ENG-939, ENG-1173] PDF Thumbnails (#1242)

* sd-pdf

* Process PDF blocking render inside a spawn_blocking
 - Load a single global Pdfium instance

* Migrate pdf thumb logic to sd-images
 - Replace block_in_place with spawn_blocking
 - Only load LibHeif once
 - Allow thumbnailer (both indexed and non-indexed locations) to process documents
 - Disable loading pdf viewer in Inspection in favour of loading it's thumbnail

* Try to load pdfium lib from absolute path

* Revert removed import due to rebase

* Small nitpick and some warnings

---------

Co-authored-by: Ericson Fogo Soares <ericson.ds999@gmail.com>

* [ENG-888] Media view should show current folder downward (#1437)

* Done but ugly

* layout

* Now with a select

---------

Co-authored-by: ameer2468 <33054370+ameer2468@users.noreply.github.com>

* add cool folder thing to inspector + stuff

* fix text color

* fix lock

* fix typescript

* fix ts

---------

Co-authored-by: Utku Bakir <74243531+utkubakir@users.noreply.github.com>
Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>
Co-authored-by: Ericson Fogo Soares <ericson.ds999@gmail.com>
Co-authored-by: ameer2468 <33054370+ameer2468@users.noreply.github.com>
Co-authored-by: Brendan Allan <brendonovich@outlook.com>
2023-10-09 10:11:23 +00:00
jake
968e37afcd [ENG-1176] Append (x) to the end of files instead of overwriting (#1425)
* append ` (x)` to files when duplicating, renaming or pasting instead of overwriting

* cleanup commented code

* fix renames

* rustfmt

* remove unused item

* Small tech debts and some nitpicks

* Bug with appending number on duplicates

* A bug on my new impl

---------

Co-authored-by: Ericson Fogo Soares <ericson.ds999@gmail.com>
2023-10-07 11:59:58 +00:00
Ericson "Fogo" Soares
97a86a9fbb [ENG-888] Media view should show current folder downward (#1437)
* Done but ugly

* layout

* Now with a select

---------

Co-authored-by: ameer2468 <33054370+ameer2468@users.noreply.github.com>
2023-10-06 20:46:26 +00:00
Oscar Beaumont
9c6e418e0f [ENG-982] Can't load original after renaming (#1430)
* we need new invalidation system

* clippy

---------

Co-authored-by: jake <77554505+brxken128@users.noreply.github.com>
2023-10-05 04:35:11 +00:00
Brendan Allan
861cfb8b40 Use actual oauth clients + ship ids and secrets (#1415)
* use actual oauth clients + ship ids and secrets

* re-enable features

* use prod as default api url
2023-10-02 09:36:43 +00:00
nikec
cb320f2d04 [ENG-1131] File path hidden filter (#1398)
hidden filter
2023-09-28 18:52:35 +00:00
Ericson "Fogo" Soares
54c1223256 [ENG-1081] Ignore the case of extensions when matching (#1394)
Done
2023-09-28 17:04:07 +00:00
Brendan Allan
3109601fda Desktop + Web auth flow (#1378)
* initial login session route

* auth works!

* auth on web is dummy easy

* load api url from envs

* SpacedriveAccount + oauth

* use verification url

* heif

* better env handling

* error handling

* handle config write error

* add logout config write error
2023-09-28 16:55:46 +00:00
Brendan Allan
3f1ea3df10 [ENG-1132] Disable pagination for ordering by file path size (#1365)
* disable pagination for order by size

* disable 'take' when paginating on size
2023-09-22 10:12:30 +00:00
Ericson "Fogo" Soares
5005c50e23 [ENG-1116] Distinct job manager for library (#1363)
Done
2023-09-21 11:10:56 +00:00
Ericson "Fogo" Soares
9076709314 [ENG-1076] Opening a sub dir closes the app (#1349)
Fix
2023-09-14 02:52:50 +00:00
Brendan Allan
4b60ff2e08 [ENG-1023] Change location path from settings page (#1301)
* update location path in db

* remove + add location watcher if path is changed

---------

Co-authored-by: Ericson "Fogo" Soares <ericson.ds999@gmail.com>
2023-09-08 11:46:16 +00:00
Ericson "Fogo" Soares
f8033d1842 [ENG-941] Jobs running in another library do not appear in the job manager (#1306)
* Fetching job reports from all libraries
Some clippy warnings
pnpm format

* Reverting expects to unwraps
2023-09-07 04:15:31 +00:00
Oscar Beaumont
5a0d0396d0 [ENG-566] Stream files through P2P (#1282)
* Add range to `SpaceblockRequest`

* Determine if file should be served from P2P

* Feature flag serveFromP2P + fix `ServeFrom` logic

* wip: yeet files over P2P

* Just work, argh

* restore backend feature flags after restart

* cleanup
2023-09-06 07:22:04 +00:00
Oscar Beaumont
251703104c [ENG-1036] Fix library rename (#1300)
* Fix Library Rename + `RwLock` on `LibraryConfig`

* Input width fix

* cleanup

---------

Co-authored-by: ameer2468 <33054370+ameer2468@users.noreply.github.com>
2023-09-06 01:01:18 +00:00
Brendan Allan
2d1ce9af03 [ENG-1078] Fix pagination (#1299)
* fix 'load more' breaking

* paginate all paginated queries by model id

* arrays start at 0 stupid
2023-09-05 08:11:04 +00:00
jake
a92d6c2faf [ENG-1039] Apply hard clippy lints to the entire ffmpeg crate (#1281)
* apply clippy lints to the entire ffmpeg crate in hopes of making it safer

* wording

* revert the prisma changes

* fix typo

Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>

* fix another typo

Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>

* remove so many `#[must_use]`s

* fix bad merge and hopefully clippy

* clippy please work i beg

* make HEIF_EXTENSIONS always available

---------

Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>
Co-authored-by: Brendan Allan <brendonovich@outlook.com>
2023-09-05 07:35:26 +00:00
Brendan Allan
e7fbdb479c [ENG-999] Order aware pagination (#1283)
* correct types

* remove optional override

* handle group_directories properly

* throw errors if is_dir is null

* disable size ordering

* usePathsInfiniteQuery

* implement for objects too

* cleanup
2023-09-04 12:38:09 +00:00
Ericson "Fogo" Soares
3b8541ef54 [ENG-1028] Media data for ephemeral locations (#1287)
Introducing new getEphemeralMediaData
Fixing some minor stuff
Running pnpm format

Co-authored-by: jake <77554505+brxken128@users.noreply.github.com>
2023-09-04 08:28:45 +00:00
Ericson "Fogo" Soares
7ace99cf1c [ENG-1063] Actually regenerate thumbnails on Regen Thumbnails button (#1288)
Done

Co-authored-by: jake <77554505+brxken128@users.noreply.github.com>
2023-09-02 23:15:41 +00:00
Ericson "Fogo" Soares
39549ef74c [ENG-953] Zero-byte files occasionally receive a random thumbnail (#1280)
* Better handling empty files

* windows bruh
2023-08-31 01:42:54 +00:00
Oscar Beaumont
e591516aff [ENG-401] Spacedrop betterer (#1273)
* Spacedrop progress on `useP2PEvents`

* Spacedrop Tauri file picker for saving

* Prompt for save location when closing dialog

* quick maths

* Spacedrop progress

* Spacedrop cancellation

* Move accept/cancel dialog to toast

* Toast when rejecting transfer

* yeet

* `useEffect` more like `useBug`
2023-08-30 08:07:23 +00:00