Commit graph

979 commits

Author SHA1 Message Date
James Pine 6cd3d76def wip 2024-05-24 01:31:40 -07:00
ameer2468 9d47af8bd1
[MOB-95] Tags support & more (#2494)
* tags support wip

* Mob: tags in explorer, ui adjustments, add filter based on search click and more

* Fix tags scroll on filters

* Set heights so UI updates correctly

* Update Tags.tsx

* remove console logs

* remove console logs

* Update Locations.tsx

* type

* Update locations.rs

* make tags abit smaller

* list view visual improvements

* Remove plus
2024-05-17 15:55:29 +00:00
Consoli 26b6baffb6
Extend indexer rules with .gitignore when available (#2459)
* Extend indexer rules with `.gitignore` when available

* Make indexer accounts for valid git  repos when reading ignore files

* Ignore poorly formatted gitignore rules

* Reduce allocation in gitignore indexer rules

* Fix tests for gitignore indexer rules

* Remove code duplication

* Remove double call to git rules

* Improve doc for todo

* rustfmt

* Skip star rules that matches a negated pattern when parsing gitignore

* Skip conflicting glob rules

* Rename and remove print

* Make git ignore indexer consider multiple paths

* Use gix_ignore to handle gitignore rules

* Fix gitignore patterns relative to git repo

* Git indexer also consider nested repos

* Create a dedicated type for rules coming from git

* Consider every gitignore file inside a git repo

* Add IgnoredByGit to interface

* Add Gitignore system IndexerRule to allow front-end to toggle GitIgnoreRules
 - Make IndexerRules names unique
 - CLippy fmt

* Fix migration concat

---------

Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>
2024-05-17 06:28:12 +00:00
Vítor Vasconcellos f847b76154
Fix login in Tauri v2 (#2493) 2024-05-16 14:23:34 +00:00
Jamie Pine 1eb98cea67
Added Peer screen (#2484)
better peers
2024-05-15 00:48:06 +00:00
Jamie Pine 0ccc038900
More important docs! (#2317)
* docs

* docs

* doc

* revert

* revert

* move actions to arch

* docs

* docssss

* typo

* duplicate

* fix date

* x

* jobs

* jobs

* Update jobs.mdx

Co-authored-by: 0xBA5E64 <26796481+0xBA5E64@users.noreply.github.com>

* Update jobs.mdx

Co-authored-by: 0xBA5E64 <26796481+0xBA5E64@users.noreply.github.com>

* Update libraries.mdx

Co-authored-by: 0xBA5E64 <26796481+0xBA5E64@users.noreply.github.com>

* Update spaces.mdx

Co-authored-by: 0xBA5E64 <26796481+0xBA5E64@users.noreply.github.com>

* Update spaces.mdx

Co-authored-by: 0xBA5E64 <26796481+0xBA5E64@users.noreply.github.com>

* Update spaces.mdx

Co-authored-by: 0xBA5E64 <26796481+0xBA5E64@users.noreply.github.com>

* Update introduction.mdx

Co-authored-by: 0xBA5E64 <26796481+0xBA5E64@users.noreply.github.com>

* Update clouds.mdx

Co-authored-by: 0xBA5E64 <26796481+0xBA5E64@users.noreply.github.com>

* Update clouds.mdx

Co-authored-by: 0xBA5E64 <26796481+0xBA5E64@users.noreply.github.com>

* Update clouds.mdx

Co-authored-by: 0xBA5E64 <26796481+0xBA5E64@users.noreply.github.com>

* Update importing-photos.mdx

Co-authored-by: 0xBA5E64 <26796481+0xBA5E64@users.noreply.github.com>

* Update interface.mdx

Co-authored-by: 0xBA5E64 <26796481+0xBA5E64@users.noreply.github.com>

* Update jobs.mdx

Co-authored-by: 0xBA5E64 <26796481+0xBA5E64@users.noreply.github.com>

* Update library-setup.mdx

Co-authored-by: 0xBA5E64 <26796481+0xBA5E64@users.noreply.github.com>

* Update locations.mdx

Co-authored-by: 0xBA5E64 <26796481+0xBA5E64@users.noreply.github.com>

* Update quick-preview.mdx

Co-authored-by: 0xBA5E64 <26796481+0xBA5E64@users.noreply.github.com>

* Update quick-preview.mdx

Co-authored-by: 0xBA5E64 <26796481+0xBA5E64@users.noreply.github.com>

* changes

* stuff

* fix

* rag stuff wip

* Update docs/product/guides/importing-photos.mdx

Co-authored-by: 0xBA5E64 <26796481+0xBA5E64@users.noreply.github.com>

* del

* fixed typos/changed wording for some docs

---------

Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>
Co-authored-by: 0xBA5E64 <26796481+0xBA5E64@users.noreply.github.com>
Co-authored-by: myung03 <matthewyungisworking@gmail.com>
2024-05-15 00:47:00 +00:00
Vítor Vasconcellos 50f554d5e5
Fix front-end error when selecting multiple files with inspector open (#2486)
- Fix humanizeSize returning value as original (which was simply plain wrong), replace it with the original bytes
 - Restore plural to humanizeSize, but only when converting object to string
 - Fix float number to BigInt conversion in humanizeSize possibly causing an error (now it truncates the value)
 - Remove unused profile.release from `apps/desktop/src-tauri/Cargo.toml`, repo's main Cargo.toml profile overrides it
 - Update `packageManager` and remove conflicting `engineStrict` entry from package.json
 - Remove `prefer-symlinked-executables` from `.npmrc`, linked bug was fixed
2024-05-14 07:06:07 +00:00
Jamie Pine 8bfcf58a0d
[ENG-1778] Total library size statistic (#2477)
* it

* migration

* fix error msg

* fix error msg actually tho

* fix

* ts errors
2024-05-13 22:02:49 +00:00
Brendan Allan d3ce2e8917
use prisma-client-rust main branch (#2471)
* use primsa-client-rust main branch

* remove as i64
2024-05-10 15:54:34 +00:00
Vítor Vasconcellos 0d451d6d90
Improve Thumbnail quality + fixes (#2467)
* Improve Thumbnail quality
 - Increase thumbnail size to 1024
 - Increse webp quality to 60%

* Fix thumbnails reactivity for ephemeral files

* Fix negative BigInt convertion

* Fix overflow in javascript

---------

Co-authored-by: Ericson Soares <ericson.ds999@gmail.com>
2024-05-09 05:48:43 +00:00
Vítor Vasconcellos e797b02e65
Media metadata extraction & Thumbnailer rework (#2285)
* initial ffprobe commit

* Working slim down version ffprobe

* Auto format ffprobe and deps source

* Remove show_pixel_formats logic
- Fix do_bitexact incorrect check in main after last changes
- Fix some clangd warning

* Remove show_* and print_format options and their respective logic

* Rework ffprobe into simple_ffprobe
- Simplify ffprobe logic into a simple program that gather and print a media file metadata

* Reduce the amount of ffmpeg log messages while generating thumbnails

* Fix completly wrong comments

* mend

* Start modeling ffmpeg extracted metadata on schema
 - Start porting ffprobe code to rust
 - Rename some references to media_data to exif_data

* Finish modeling media info data
 - Add MediaProgram, MediaStream, MediaCodec, MediaVideoProps, MediaAudioProps, MediaSubtitleProps to Schema
 - Fix simple_ffproble to use its custom print_codec, instead of ffmpeg's impl

* Add relation between MediaInfo and FilePath
 - Remove shared properties from MediaInfo and related structs
 - Implement Iterator for FFmpegDict

* Fix and update schema

* Data models and start populating MediaInfo in rust

* Finish populating media info, chapters and program

* Improve FFmpegFormatContext data raw pointer access
 - Implement stream data gathering

* Impl FFmpegCodecContext, retrieve codec information
 - Improve some unsafe pointer uses
 - Impl from FFmpegFormatContext to MediaInfo conversion

* Fix FFmpegDict Drop

* Fix some crago warnings

* Impl retrieval of video props
 - Fix C char* to Rust String convertion

* Impl retrieval of audio and subtitle props
 - Fill props for MediaCodec

* Remove simple_ffprobe now that the Rust impl is done

* Fix schema to match actually retrieved media info
 - Fix import some FFmpeg constants instead of directly using values

* Rework movie_decoder
 - Re-implement create_scale_string and add support anamorphic video
 - Improve C pointer access for FFmpegFormatContext and FFmpegCodecContext
 - Use newer FFmpeg abstractions in movie_decoder

* Fix incorrect props when initializing MovieDecoder

* Remove unecessary lifetimes

* Added more native wrappers for some FFmpeg native objects used in movie_decoder

* Remove FFmpegPacket
 - Some more improvements to movie_decoder

* WIP

* Some small fixes

* More fixes
Rename movie_decoder to frame_decoder
Remove more references to film_strips

* fmt

* Fix duplicate migration for job error changes

* fix rebase

* Solving segfaults, fuck C lang

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

* Update rust to version 1.77
 - Pin rust version with rust-toolchain.toml
 - Change from dtolnay/rust-toolchain to IronCoreLabs/rust-toolchain for rust-toolchain support
 - Remove unused function and imports
 - Replace most CString uses with new c literal string

* More segfault solving and other minor fixes

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

* Fix ffmpeg rotation filter breaking portrait video thumbnails #2150
 - Plus some other misc fixes

* Auto format

* Retrieve video/audio metadata on frontend

* Auto format

* First draft on ffmpeg data save on db

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

* Fix some incorrect changes to prisma schema

* Some fixes for the FFmpegData schema
 - Expand logic to save FFmpegData to db

* A ton of things

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

* Integrating ffmpeg media data in jobs and API

* Rspc can't BigInt

* 🙄

* Add initial ffmpeg metadata entries to Inspector
 - Fix ephemeral metadata api to match the files metadata api call

* Fix Inspector not showing ffmpeg metadata

* Add bitrate, start time and chapters video metadata to Inspector
- Fix backend BigInt conversion incorrectly using i32 instead of u32
- Change FFmpegFormatContext/FFmpegMetaData bit_rate to i64
- Rename byteSize to humanizeSize
- Expand humanizeSize logic to allow handling bits and Binary units
- Move capitalize to @sd/client utils

* Solving some issues

* Fix ffmpeg probe getting incorrect stream id and breaking database unique constraint
 - Fix humanizeSize breaking when receiving floating numbers
 - Fix incorrect equality in StatCard
 - Fix unhandled error in Dialog when trying to remove an unknown dialog

* fmt

* small improvements
 - Remove some unecessary recursion_limit directive
 - Remove unused app_image releated functions
 - Fix metadata query enabled flag

* Add migration for ffmpeg media data

* Fix cypress test

* Requested changes

* Implement feedback
 - Update locale keys for all languages
 - Add pnpm command to update all language keys

* Fix thumb reactivity in non indexed locations

---------

Co-authored-by: Ericson Soares <ericson.ds999@gmail.com>
Co-authored-by: Vítor Vasconcellos <HeavenVolkoff@users.noreply.github.com>
2024-05-09 02:20:28 +00:00
Utku 7cd33727b3
[MOB-35] Explorer sort by (#2387)
* pnpm

* hide search on some screens

* translations

* move shared order stuff to @sd/client

* some ideas

* wip - redesign otw

* Merge remote-tracking branch 'origin' into mob-35-explorer-sort-by

* header adjustments and more

---------

Co-authored-by: Jamie Pine <32987599+jamiepine@users.noreply.github.com>
Co-authored-by: ameer2468 <33054370+ameer2468@users.noreply.github.com>
2024-05-07 22:12:09 +00:00
Vítor Vasconcellos 81c2b8bf51
Improve prod bundle size (#2447)
Greatly improve production build size, now prod builds are 1/3 of the size
 - Main spacedrive binary went from ~120M to ~40M
 - Add more optimize options for rust prod build
 - Improve vite settings for front-end prod build
 - Improve lossless compression of PNGs
 - Don't include videos in bundles when they are not used
 - Don't generate/bundle sourcemap for prod builds
2024-05-07 19:32:34 +00:00
Oscar Beaumont a238760c88
[ENG-1690] Upgrade to Tauri 2.0 (#2433)
* Most of it

* Cleanup menu

* fixes

* Fixed linux compilation, still not working though, as the app panic on start

* Add dialog permissions

* fix search keybind

* Fix linux
∙  - Disable linux-ipc-protocol feature, as that is causing panics due to trying to access some WebKit internal structures outside the main thread

* Update to Ubuntu 22.04, new tauri doesn't support ubuntu 20.04
>  - Add note to download page about deb's distro support

* Remove gen/schemas

* Update linux dependencies in setup.sh

* Fix linux deps again
 - Enable rt-tokio-crypto-rust feature in secret-service so clippy stops complaining

* Clippy + auto fmt

* Fix cache-factory
 - Create a devtools feature for desktop app, which is enabled by default on dev builds

* Fix minor error in patchTauri.mjs

* Fix some envvars that have been renamed on tauri v2

* Dont change the secrets

* Add missing linux dependency

---------

Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>
2024-05-07 08:36:50 +00:00
Artsiom Voitas d338593fba
Added more translation keys to the app (#2442)
* added more translation keys

* added more keys

* added a lot of additional translation for every language available

* more translations

* fixed keys spelling
2024-05-02 14:06:09 +00:00
ameer2468 b29deff592
[MOB-68] Search (#2434)
* wip: search plugin query & save

* wip

* wip mob search

* mob search - explorer filtering & support name, extension search

* Mobile search

* cleanup

* code improvements & type to search all locations

* Update Search.tsx

* ts

* code doc and type tweak

* lint

* move onSuccess
2024-05-01 21:52:14 +00:00
nikec 958692771d
[ENG-578] Resizable sidebar (#2425)
* v1

* Update pnpm-lock.yaml

* Update store.ts

* Update index.tsx

* fix animation

* toggle_sidebar

* locales
2024-05-01 14:35:09 +00:00
Vítor Vasconcellos e4b0aedf64
Auto format/lint and revert some changes made to CI (#2429)
Revert some changes made to CI in #2412
 - Auto lint and format
2024-05-01 13:59:16 +00:00
Brendan Allan ce669f203c
Basic sync backfill dialog (#2405)
* basic sync backfill dialog

* only call enableSync once

* rename sync enable to backfill

* disallow closing dialog
2024-04-30 04:42:44 +00:00
Oscar Beaumont ce5e285c2f
Remove normalised cache (#2390)
* yeetus

* fix

* a

* fix

* todo

* fix library stuff

---------

Co-authored-by: Jamie Pine <32987599+jamiepine@users.noreply.github.com>
2024-04-30 00:36:39 +00:00
Vítor Vasconcellos 9384bade61
Revert OpenDAL for ephemeral location (#2399)
* Revert "OpenDAL - Ephemeral Locations (#2283)"

This reverts commit 2848782e8e.

* Format

* Fix some diff problems
2024-04-26 00:29:55 +00:00
Jamie Pine ab46cffa11
Reactive file identification (#2396)
* yes

* Explain mysterious if

* Use id alias just for consistency reasons

* yes

* Rust fmt

* fix ts

---------

Co-authored-by: Ericson "Fogo" Soares <ericson.ds999@gmail.com>
Co-authored-by: Utku Bakir <74243531+utkubakir@users.noreply.github.com>
2024-04-25 21:37:25 +00:00
Jamie Pine b1ffbee9b1
Fix thumbnail generation reactivity (#2392)
fix
2024-04-25 16:14:43 +00:00
Oscar Beaumont ae6c49b0ba
Improved p2p settings (#2379)
improved p2p settings
2024-04-24 08:43:30 +00:00
Oscar Beaumont 959ccdfd98
Reintroduce P2P Settings (#2365)
* redo backend to be less cringe

* fixed up
2024-04-22 12:43:44 +00:00
Oscar Beaumont 52c5c2bfe7
Show errors creating P2P listeners on startup (#2372)
* do it

* fix accuracy

* `useRef` as god intended
2024-04-22 10:28:35 +00:00
ameer2468 d689e7e58a
[ENG-1750] Update context menu colors (#2369)
update context menu colors
2024-04-21 14:28:27 +00:00
Oscar Beaumont 947354f6c0
Remove files over p2p feature (#2364)
* goodbye

* types

* a
2024-04-20 03:21:20 +00:00
Brendan Allan 663d1e9f1e
Group create and initial update operations into Create (#2329)
* ignore update after delete in sync

* Group create and initial update operations into Create

* fix ts

* fix sync generator

* fix sync debug route

* oops
2024-04-18 03:53:16 +00:00
Utku 544f275e49
[ENG-1695] Global setting for explorer views (#2333)
* why do i translate everytime i open the app

* default explorer settings
2024-04-17 02:02:06 +00:00
Oscar Beaumont e77a475e61
Date header is not working (#2321)
* wip

* more

* bindings

* show date taken

* improve date lookup and include placeholder

* date taken

---------

Co-authored-by: nikec <nikec.job@gmail.com>
2024-04-15 12:53:11 +00:00
Oscar Beaumont 8be59659d8
DB Vacuum Button (#2312)
* Do the thing

* Retry

* fix types

---------

Co-authored-by: Brendan Allan <brendonovich@outlook.com>
2024-04-12 18:15:56 +00:00
Brendan Allan effee2140d
Tag preferences (#2313)
* tag preferences

* types
2024-04-12 10:17:46 +00:00
Oscar Beaumont 2848782e8e
OpenDAL - Ephemeral Locations (#2283)
* `sd-indexer` crate

* more wip

* wip

* fix

* IndexerRules + error handling

* wip

* Fix it

* Thumbnailer

* Link locations

* Workaround rspc's requiring `Sync` for streams.

* I hate this

* Sorting

* fix

* fix

* fix paths

* Fix double file extension

* Fix thumbnailer

* Clippy

* Fix indexer rules

* fix

* lockfile
2024-04-12 06:51:51 +00:00
Arnab Chakraborty 66063d22c2
[ENG-1365] Move to Trash (#2318)
* Working System Trash Connection

* small changes and prettier

---------

Co-authored-by: Utku Bakir <74243531+utkubakir@users.noreply.github.com>
2024-04-12 05:01:37 +00:00
Brendan Allan 785dd74297
fix types (#2316) 2024-04-12 03:02:42 +00:00
Ericson "Fogo" Soares 67554c89b3
[ENG-1724] Introduce scan state for location (#2302)
Done
2024-04-10 16:19:59 +00:00
Brendan Allan 504242f97e
[ENG-1723] better sync status (#2299)
* better sync status

* cleanup
2024-04-09 03:14:51 +00:00
Ericson "Fogo" Soares 6b760b0b2a
[ENG-1628] Write new indexer with the task system (#2161)
* Moving file-path-helper to a sub-crate on core

* Parallel walker tested and working

* Change inner core crate names to sd-core-* naming scheme

* Moving stuff around

* Save and Update tasks for the new indexer job

* Some initial drafts on the new job system

* More drafts on job system

* Changing walker task to a more explicit state machine
Also drafting more of job system

* More drafting on job resume

* Completed the draft on job system inner workings

* New job context abstraction to decouple library stuff from job system

* Properly use composition on task dispatcher

* First draft on indexer job

* Job serialization

* Handling ancestors in the distributed walker for indexer

* Saving computed directories sizes on a location to db

* Enable a way to check if jobs are running in a location

* Progress reporting on indexer job

* Reorganizing modules

* Shallow indexer

* Rust fmt

* Attempting windows CI fix

* Attempting windows CI fix again

* Attempting windows CI fix again
2024-04-08 14:32:44 +00:00
Arnab Chakraborty 20d9878968
Disable Labeler (#2288)
* Disable Labeler

* Auto format and lint

* Comment out regen labels context menu entry

* Comment out some more labels references

---------

Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>
2024-04-05 19:41:11 +00:00
Brendan Allan f168b5e45d
Better search (#2262)
* Revert "Revert "remove fixed filters" (#2261)"

This reverts commit 5b40cefe37.

* search sources

* only set default filters if no filters

* key saved search page on id and use raw search as searchbar default

* fix crate versions

* put media view filters in a dedicated hook

* remove ts-reset

* add comment about <Inner>

* generics!

* cleanup

* search paths/objects switch (#2278)

* feature flag target switcher

* use useZodParams in saved search route
2024-04-05 15:40:46 +00:00
Arnab Chakraborty 888ab5639b
[ENG-1483] Right Click -> New File (#2276)
* feat: Right Click -> New File

Creates an empty file called `Untitled` and adds `(1) -> (n)` for n number of files with the same `Untitled` name.

* feat: Seperate into Text File and Empty File

* chore: `cargo fmt`

* fix: Forgot to type convert to String

* feat: Working creation

* fix: i18n changes

* More i18n

* All added tags now translated

* With proper types checking now!

* Fix types

* chore: formatting
2024-04-04 04:20:31 +00:00
ameer2468 21a0ec0869
[ENG-1699] Pin Job manager (#2264)
* wip

* minor cleanup

* Update Popover.tsx

* remove prop
2024-03-29 16:48:05 +00:00
nikec 2f5271e453
[ENG-1215] List view size customisation (#2254)
* base

* calculate line height on demand

* fix max update

* fix max update on resize

* read types directly

* sizing

* better size handling

* also handle text box padding on demand
2024-03-27 15:15:07 +00:00
nikec b776e4c55c
[ENG-1696] Fix Asian characters text wrapping (#2253)
no wrap
2024-03-27 10:27:23 +00:00
Utku 9a1cdf1dca
Fix all the weird eslint warnings (#2245)
* actually fix the weird lint errors

* Prettier auto-format

---------

Co-authored-by: ameer2468 <33054370+ameer2468@users.noreply.github.com>
Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>
2024-03-26 20:46:44 +00:00
Brendan Allan 94ca18925d
[ENG-1691] Sync status subscription (#2246)
* sync status subscription

* clippy
2024-03-26 07:26:37 +00:00
Vítor Vasconcellos e5b57aa0ea
New test: Add location (#2222)
* New test: Add location
 - Add script to download some test files to allows tests to have a stable path for creating locations
 - Improve onboarding test
 - Add custom Cypress commands for fastOnboarding and deleteLibrary
 - Add some documentation related to tests to CONTRIBUTING.md
 - Update some deps

* Download small test-data for Cypress CI

* Replace globstar with find to make it compatible with bash 3.x

* Fix react too many re-renders
 - add-location test should now pass successfully

* Make job model task text match less flaky

* Check if we were redirected to onboarding after Library was deleted
 - Check if sidebar entry was created after adding a location
 - Put route regex's into a separate file
 - Make onboarding test ensure that no Library exists before running

* Enable test retries
 - Log cypress default config during test run

* Run tests under webkit
 - Pass CI envvar to tests to ensure correct cypress config

* Attempt fix CI config again

* Remove single use checkUrlIsLibrary function
2024-03-23 21:24:16 +00:00
ameer2468 e148028e2f
[MOB-75] New screens, design fixes, and more (#2229)
* WIP: categories screen, design updates, and more

* redesigned import modal, android ui fixes, and more

* more ui fixes and improvements

* more ui tweaks and updates

* change color

* pnpm-lock

* Update LocationSettings.tsx

* Update BrowseTags.tsx

* eslint

* Update pnpm-lock.yaml

* Update pnpm-lock.yaml

* Update BrowseTags.tsx
2024-03-22 14:12:30 +00:00
Oscar Beaumont f2477d47d9
Remove IdentityOrRemoteIdentity (#2220)
* wip

* wip

* fix migrations

* fix

* Fix Prisma migrations + fire new app migration

---------

Co-authored-by: jake <77554505+brxken128@users.noreply.github.com>
2024-03-22 01:18:50 +00:00