1
Fork 0
Commit Graph

275 Commits

Author SHA1 Message Date
viktorstrate 679dc70340 Prepare for periodic scan intervals
Add setting to database, and to graphql api
2020-09-20 22:19:25 +02:00
stz184 23d9d27764 Merge branch 'master' of github.com:viktorstrate/photoview into favorites-checkobox-on-photos-and-album-page-viktorstrate/photoview#6 2020-09-11 22:00:27 +03:00
viktorstrate 66beadee0c Update api dependencies 2020-09-07 17:04:15 +02:00
stz184 75e43aae80 Merge branch 'master' of github.com:viktorstrate/photoview into favorites-checkobox-on-photos-and-album-page-viktorstrate/photoview#6 2020-09-07 13:08:25 +03:00
stz184 d7e6ab9cf3 Fixes viktorstrate/photoview#6
- Added favorites toggle on both Album and Photos page
- When the favorites are viewed, the URL changes
- Removed unused variable activeImage
- Added match.params propTypes to AlbumPage component
2020-09-07 13:04:14 +03:00
viktorstrate f2493c80a5 Fix small bug where CleanupMedia...
would not remove old media if the album
did not contain any media at all but only sub-albums
2020-08-15 13:58:03 +02:00
viktorstrate 8e7c43798a Rotate images properly
This fixes #64 where some thumbnail images
would not have the correct orientation.
2020-08-15 12:24:54 +02:00
viktorstrate e59ff9cbde Fix NewMediaFromRows 2020-08-15 11:59:44 +02:00
viktorstrate e0ab77b158 Use file modTime instead of changeTime...
to determine the date_shot value of pictures.
This value is cross-platform,and probably a
better representation for the date_shot
2020-08-14 12:20:14 +02:00
viktorstrate 78b415871d Add date information to media
This closes #61
2020-08-12 13:04:41 +02:00
viktorstrate cdb4089f19 Ignore hidden media files
This closes #57
2020-08-12 12:31:13 +02:00
viktorstrate 020321959d Show file size for media downloads
This closes #63
2020-08-11 22:34:42 +02:00
viktorstrate 849f2f25bf Add fileSize to media_url database entries 2020-08-11 22:18:15 +02:00
viktorstrate b52595fe46 Save gps coordinates from exif
This closes #62
2020-08-11 14:46:23 +02:00
viktorstrate 91a6b4de08 Merge database migrations...
...in preparation of v1.0.0. This fixes #60
2020-08-11 14:31:04 +02:00
viktorstrate 01bec379c7 Move `deleteOldUserAlbums` function to `cleanup_media.go` 2020-08-03 19:39:39 +02:00
stz184 e89c84f45f When a photo is deleted or moved on the file system, the coresponding cache folder and database record are deleted.
fixes #56
2020-07-24 20:50:17 +03:00
viktorstrate 3e4b232b1e Update migration to support mariadb 10.5.2 and newer
To support the database configuration used in docker-compose.example.yml
2020-07-15 10:45:33 +02:00
viktorstrate 07477ea789 Remove debug log 2020-07-13 18:15:23 +02:00
viktorstrate 82b18f0e9b Cleanup + add video format 2020-07-13 18:01:31 +02:00
viktorstrate 21f66b9e62 Use cookie based auth for shares with password 2020-07-13 17:51:53 +02:00
viktorstrate f669812efb Use cookies for authentication instead of header
This replaces the current implementation
where a bearer header holds the auth-token.
Now the same token is being sent using a cookie instead.
This greatly simplifies fetching resources (images and video),
since the header is sent along implicitly with each request.
2020-07-12 18:52:48 +02:00
viktorstrate d681d1538c Cleanup regarding video support 2020-07-12 14:31:50 +02:00
viktorstrate 0e9d37ca77 Add video metadata 2020-07-12 14:17:49 +02:00
viktorstrate b34115cab0 Start on video integration with web ui 2020-07-11 16:42:27 +02:00
viktorstrate f537b1d608 Add video route (still unprotected) 2020-07-11 15:57:58 +02:00
viktorstrate 990a592fcc Expose media_type to graphql
- Make video thumbnail accessible from graphql
2020-07-11 14:21:10 +02:00
viktorstrate 9e5480188b add media_type column to media table in database 2020-07-11 14:05:06 +02:00
viktorstrate 0eb0319fa8 Generate video thumbnails 2020-07-11 13:39:11 +02:00
viktorstrate 26a5c5ac29 Encode videos for web using ffmpeg 2020-07-11 13:13:31 +02:00
viktorstrate 0ab6048151 Fix scanner 2020-07-10 18:57:27 +02:00
viktorstrate b510e14ecd Rename resolvers/photo.go to media.go 2020-07-10 18:52:18 +02:00
viktorstrate cacfb5edde Fix share pages 2020-07-10 18:35:37 +02:00
viktorstrate df80802cab Huge refactor: rename photo to media
To prepare for video support

Migrate database rename tables and columns:
- photo to media
- photo_url to media_url
- photo_exif to media_exif

- Update api accordingly
2020-07-10 14:26:19 +02:00
viktorstrate 3564866f41 Start on video processing 2020-07-10 12:58:11 +02:00
viktorstrate 7caad82059 Add ffmpeg worker and supported video formats 2020-07-09 15:07:39 +02:00
viktorstrate b4bdd522dc Make sure path hash is added consistently
The path_hash attribute is added after the path attribute,
to make it consistent with `002_photo.up.sql`
2020-06-30 15:53:29 +02:00
viktorstrate f2bcdf883f Update path hash database migrations 2020-06-30 15:35:45 +02:00
stz184 642afe4966 scanner_user.go uses hashes now 2020-06-24 13:52:40 +03:00
stz184 e70da6bb26 Merge remote-tracking branch 'upstream/master' into use-hash-instead-of-full-path-to-avoid-key-length-maximum 2020-06-24 13:42:43 +03:00
stz184 f88fa33e5f InnoDB has a maximum index length of 767 bytes for tables that use COMPACT or REDUNDANT row format, so for utf8mb3 or utf8mb4 columns, you can index a maximum of 255 or 191 characters, respectively.
That's why I created a new column storing a MD5 hash of the path and made it unique. The MD5 hash has only 32 characters and can be generated natively in MySQL and MariaDB. It helps us to avoid maximum key length and in the same time enforce unique photo and album paths.

- Added path_hash column to photo and album tables
- Added down migration file for 005_utf8_migration (just for consistency)
- Added PathHash field to Album and Photo struct
- album_scanner.go and photo_scanner.goo perform checks by MD5 hash now
2020-06-24 11:43:20 +03:00
viktorstrate fba41918f4 Fix formatting error 2020-06-23 17:02:44 +02:00
viktorstrate 66a4288ec9 Throttle queue notifications 2020-06-23 16:46:38 +02:00
viktorstrate 23461ee707 Fix bugs and improvements
- Fix a deadlock in the scanner cache
- Cleanup error messages and logs
2020-06-23 16:42:02 +02:00
viktorstrate e57a6f3dc0 Make sure not only new photos are scanned
Fix a small bug where a photo was marked as processed when it wasn't
2020-06-23 15:23:20 +02:00
viktorstrate 11c3a92373 Reintregrate notifications with scanner 2020-06-23 15:13:07 +02:00
viktorstrate cc1eadaef4 Fix queue tests 2020-06-23 14:10:03 +02:00
viktorstrate 95f4df4b7d Start to integrate new scanner system with api 2020-06-23 00:40:47 +02:00
viktorstrate a22d002146 Major rework of scanner 2020-06-22 23:52:41 +02:00
viktorstrate 41d3b1879a Update api dependencies 2020-06-22 22:01:55 +02:00
viktorstrate 666ecef4b3 Refactor scanner
- Move scanner cache to its own file
- Move album scanner related code to its own file
2020-06-22 21:52:53 +02:00
viktorstrate 2f4212eeab Start on scanner queue + add some tests 2020-06-22 18:02:21 +02:00
viktorstrate 5d1c2f7134 Implement favorite resolver 2020-06-19 15:34:52 +02:00
viktorstrate b289b25e34 Start on photo favorite 2020-06-17 18:00:58 +02:00
viktorstrate fef27c5640 Add login page for protected shares 2020-06-14 20:56:48 +02:00
viktorstrate 79be996985 Detect if share token is password protected 2020-06-14 18:28:12 +02:00
viktorstrate f6f6eb8bfa Prepare back-end for token password 2020-06-14 18:02:46 +02:00
viktorstrate bbb6e2eca2 Add set password from share dropdown in sidebar 2020-06-14 15:07:07 +02:00
viktorstrate d213a42869 Add supported raw formats by darktable 2020-05-17 22:32:31 +02:00
viktorstrate b077f77c89 Make darktable run in parallel
by using different config directories for each photo
2020-05-17 21:49:29 +02:00
viktorstrate 14f6f8f000 Fix error when encoding raw photos
where path contains spaces
2020-05-17 21:28:42 +02:00
viktorstrate ad7ff8d39d Fix executable worker arguments 2020-05-17 16:08:58 +02:00
viktorstrate 40265a18f7 Integrate executable worker, still working on darktable 2020-05-15 16:36:02 +02:00
viktorstrate 76ade24041 start on executable worker 2020-05-15 15:23:21 +02:00
viktorstrate 0754e600b7 Make EncodeImageJPEG a method of EncodeImageData 2020-05-14 15:17:23 +02:00
viktorstrate a4b37a392f Split up process_photo into encode + process 2020-05-14 14:35:08 +02:00
viktorstrate 4d57d43011 Determine image type by file extension 2020-05-13 15:28:50 +02:00
viktorstrate 5a5c06fb32 Extract filetypes into its own type 2020-05-13 15:05:02 +02:00
viktorstrate deb2fd9f4f Improve mysql connection retry on ping fail 2020-04-30 15:00:18 +02:00
viktorstrate ff0ea48aca Add defaults for more env variables in Dockerfile
Add defaults for:
- API_LISTEN_IP
- API_LISTEN_PORT
- SERVE_UI
2020-04-30 14:59:29 +02:00
viktorstrate 43f5d85078 Don't show an error when scanning an empty file
Reference #32
2020-04-17 13:15:31 +02:00
viktorstrate d5227a4ce3 Make sure that photo directory for user exists
If user directory doesn't exist anymore report an error notification.
2020-04-16 11:23:34 +02:00
viktorstrate 6e420dff41 Recover if EXIF decoding panics (#33)
This fixes #33 where a curtain image would cause the goexif2 library to
panic.

Now instead of crashing the entire program, it recovers and instead
prints an error to the console and ignores the EXIF data for that image.
2020-04-16 11:02:33 +02:00
Viktor Strate Kløvedal 9819280fc9
Merge pull request #28 from BkSouX/master
Close database properly if database connection failed or an error occured
2020-04-15 21:14:24 +02:00
viktorstrate c5dd3debe5 Add missing new dependency + cleanup 2020-04-15 20:52:08 +02:00
Bruno Sousa e39349963b use log.Panicf instead of just panic 2020-04-15 16:20:09 +02:00
Bruno Sousa c64b4d0d39 make SetupDatabase returns an error and use PingContext with timeout 2020-04-15 16:18:51 +02:00
viktorstrate afb0428c2d Add username to scanner notifications 2020-04-15 11:27:34 +02:00
viktorstrate b254f3abaa Implement ScanAll resolver 2020-04-15 11:21:16 +02:00
viktorstrate 4e388c430c Fix image EXIF orientation bug
Fix a bug where an image couldn't be scanned if the EXIF data were
missing the orientation field.

This resolves #29
2020-04-15 10:58:10 +02:00
BkSouX 11ea1c13bd api - miss import 2020-04-14 20:04:39 +02:00
BkSouX d256a31842 api - panic instead of fatal when issue with the database migration 2020-04-14 20:00:06 +02:00
viktorstrate 399cb295f2 Move spa handler to a separate file 2020-04-06 22:21:58 +02:00
viktorstrate b4676af3c1 Rewrite environment variable configurations 2020-04-06 22:16:25 +02:00
viktorstrate 48520a7d2d Further work on single docker container
- Add proper .dockerignore
- Fix photo prefix
- Print public endpoint when server starts
- Discard API_LISTEN_PORT
2020-04-05 18:54:13 +02:00
viktorstrate 48e2fd66a4 Merge remote-tracking branch 'origin/master' into prefix 2020-04-05 18:44:06 +02:00
Viktor Strate Kløvedal 8ad1e11015
Sql 4 bytes utf (#17)
Update UTF migration to use 4 bytes unicode
2020-03-13 20:21:49 +01:00
viktorstrate 7b3f016a0f Add replace debounce with throttle
Update dependencies
2020-03-12 13:26:11 +01:00
viktorstrate bdec205031 Cleanup + debounce scanner notifications 2020-03-12 12:55:53 +01:00
viktorstrate 179ec5283b Implement proper photo rotation based on exif data 2020-03-12 12:30:55 +01:00
viktorstrate a65a7bc289 Migrate all database tables to use utf8
Before this, photos and albums with special characters,
would result in a scanner error and would not be imported properly.
2020-03-10 19:03:40 +01:00
viktorstrate 5b5ac5bbbd Scanner - delete missing photos from database 2020-03-10 18:30:23 +01:00
viktorstrate 4e5b5624de Add paths for albums to the web ui
Only fetch album paths by authorized user
2020-03-07 17:07:01 +01:00
viktorstrate fc4639a293 Add album path resolver 2020-03-07 16:19:27 +01:00
viktorstrate ebe1220520 Skip hidden folders, this closes #13 2020-03-07 15:34:32 +01:00
viktorstrate a5fc15af45 Fix security bug regarding search
...that let users search for albums and photos made by other users
2020-03-05 20:46:50 +01:00
viktorstrate ec7a7adf43 Different small improvements to search
- Make photos link to its album
- Implement Photo -> Album resolver
- Highlight query in search
- Hide search bar when not logged in
2020-03-05 20:34:30 +01:00
viktorstrate c30f5a833a Add search resolver to api 2020-03-05 11:53:42 +01:00
viktorstrate 5cee5d8dea Add TIFF support, this closes #3 2020-03-02 16:32:24 +01:00
Brandon Davis 4661bae48d One dockerfile to rule them all 2020-02-29 20:06:18 -05:00