viktorstrate
c7ee506189
Improve media download
...
Allow downloading of media when no content-length is provided because of compression.
2020-11-16 12:40:06 +01:00
viktorstrate
897706b54a
Update dependencies
2020-11-13 09:19:49 +01:00
viktorstrate
74581ee090
Cleanup media routes and media_name generation
2020-10-30 17:14:09 +01:00
stz184
53b323640f
Fixes viktorstrate/photoview#71
...
In order to prevent SQL injections and , reveal information about the database tables avoid passing MySQL functions as GQL sorting parameters, I refactored the FormatSQL() function.
Additionally, the old approach with using regex to filter the orderBy parameter was not effective and prevented using column.table annotations.
2020-10-13 18:27:28 +03:00
stz184
f14bdd6b3f
Fixes viktorstrate/photoview#71
...
Regex changed in order to actually allow ordering by columns annotated as table.column
2020-10-11 18:17:49 +03:00
viktorstrate
940e48fee3
Enable http compression for API
2020-10-04 16:34:47 +02:00
viktorstrate
4fe0608194
Setup cache headers for photo routes
2020-09-30 14:08:30 +02:00
viktorstrate
b5e640c1bd
Add graphql query for getting media from an array of ids
...
- Add keyboard navigation when presenting images in map view
2020-09-27 20:52:09 +02:00
viktorstrate
db64d3eb1b
Merge branch 'master' into geographic-map-page
2020-09-27 20:08:43 +02:00
Viktor Strate Kløvedal
a0ee666616
Merge pull request #76 from stz184/favorites-checkobox-on-photos-and-album-page-viktorstrate/photoview#6
...
Fixes viktorstrate/photoview#6
2020-09-27 18:34:46 +02:00
viktorstrate
0a314b8e1d
Add geojson graphql endpoint, work on mapbox
2020-09-27 00:46:01 +02:00
viktorstrate
534b95edcb
Set defaults for new migrations,
...
to ensure updating photoview is seemless
2020-09-25 19:31:35 +02:00
viktorstrate
b133a1846c
Fix bug with max worker jobs
...
Fix bug where it was possible to set max scanner worker jobs to 0,
resulting in the scanner not processing any jobs.
2020-09-25 19:21:03 +02:00
viktorstrate
bbff25973e
Fix bug where max_concurrent_tasks for...
...
scanner queue would be initialized to 0.
2020-09-24 17:52:53 +02:00
viktorstrate
44a00c7415
Move setup of executable workers to function
...
- Fix startup crash if no site_info row was found
2020-09-23 14:34:26 +02:00
viktorstrate
d09bb3b99e
Fix database compatibility issues with arm ( #88 )
...
- Change max key-length of username to 128
- Fix minor syntax error
2020-09-23 13:18:46 +02:00
viktorstrate
9861788ce7
Update gqlgen to v0.13.0 and regenerate
2020-09-22 09:46:35 +02:00
dependabot[bot]
0a50e6ed79
api (gomod): bump github.com/vektah/gqlparser/v2 in /api
...
Bumps [github.com/vektah/gqlparser/v2](https://github.com/vektah/gqlparser ) from 2.0.1 to 2.1.0.
- [Release notes](https://github.com/vektah/gqlparser/releases )
- [Commits](https://github.com/vektah/gqlparser/compare/v2.0.1...v2.1.0 )
Signed-off-by: dependabot[bot] <support@github.com>
2020-09-21 19:50:21 +00:00
viktorstrate
9c9807ecc9
Add admin setting to change max concurrent workers
2020-09-21 21:32:30 +02:00
viktorstrate
05380354e3
Setup periodic scan background runner
2020-09-21 12:34:56 +02:00
viktorstrate
167ff4b8c4
Update periodic scanner value from UI
2020-09-21 11:50:39 +02:00
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