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
viktorstrate
e0ada51b6b
Decrease max open connections to 80
2020-02-29 10:03:56 +01:00
viktorstrate
8ac9d50cb0
Increase MaxOpenConnections to db to 120
2020-02-29 10:00:11 +01:00
viktorstrate
67fabd1de4
Fix graphql query for share pages
...
Properly close rows in scanner
2020-02-29 09:21:41 +01:00
viktorstrate
2af47b2381
Properly close sql rows
2020-02-28 20:57:46 +01:00
viktorstrate
2f97dcff0c
Improve scanner reliability
2020-02-27 16:26:53 +01:00
viktorstrate
458b6fb49c
Improve scanner - first scan, then process
2020-02-26 21:23:13 +01:00
viktorstrate
440814564c
Improve notifications
2020-02-26 19:44:47 +01:00
viktorstrate
ecd1447deb
Fix exif throwing error if no was found
2020-02-24 23:56:28 +01:00
viktorstrate
96ec3663b1
Continue on exif parser error
2020-02-24 23:45:02 +01:00
viktorstrate
b10c607f3a
Add exif parsing
2020-02-24 23:30:08 +01:00
viktorstrate
890e36b7a8
Fix bug when filtering and limiting a query
2020-02-24 09:59:20 +01:00
viktorstrate
d27c20e041
Improve stability of scanner
2020-02-23 18:00:08 +01:00
viktorstrate
39f68e4d8a
Support PHOTO_CACHE env variable
2020-02-23 12:43:45 +01:00
viktorstrate
1e92432b07
Make scanner proceed on error
2020-02-23 11:59:57 +01:00
viktorstrate
1e115400a4
Fix sql bug and add recursive query for album thumbnails
2020-02-22 14:29:41 +01:00
viktorstrate
1dc2221524
Add change password support
2020-02-22 14:05:33 +01:00
viktorstrate
92b6beef2f
Fix dockerfile
2020-02-21 23:02:50 +01:00
viktorstrate
e00a5553f7
Add download support
2020-02-21 22:42:39 +01:00
viktorstrate
37aea1fb3a
Improve logging
2020-02-21 21:00:40 +01:00
viktorstrate
935dc5b55e
Work on notifications + custom logger
2020-02-21 20:51:50 +01:00
viktorstrate
2d15e7c41f
Add authentication for websockets
2020-02-21 17:53:04 +01:00
viktorstrate
b2a8fd09f9
Work towards subscriptions
...
- Replace chi with gorilla/mux
- Write custom CORS rules
- Start on notification subscriptions
2020-02-21 16:50:50 +01:00
viktorstrate
f57388e276
Use crypto/rand for improved security
2020-02-21 12:13:49 +01:00
viktorstrate
39dd89eec2
Secure public photos with the "public token"
2020-02-21 12:05:28 +01:00
viktorstrate
fb62363cb8
Protect photos from public access
2020-02-20 17:31:41 +01:00
viktorstrate
ce11d5201b
Improve myAlbums query
2020-02-20 17:14:11 +01:00
viktorstrate
8f0489c706
Enable api devMode to secure endpoint in prod
2020-02-19 22:28:21 +01:00
viktorstrate
39afd67130
Show all root albums instead of the single path
...
Improve sql connection error messages
2020-02-19 22:04:38 +01:00
viktorstrate
b8f960f058
Add docker support for new api
2020-02-19 21:33:28 +01:00
viktorstrate
a87e9fc56d
Add user management to api
2020-02-16 12:22:00 +01:00
viktorstrate
108de3d6b8
Add service-worker
2020-02-15 23:29:03 +01:00
viktorstrate
3376fbe13b
Work on settings page
2020-02-15 22:13:02 +01:00
viktorstrate
f1ce85dcb5
Set max sql connections + improve user register
2020-02-14 14:29:41 +01:00
viktorstrate
64e702790f
Make scanner generate high-res jpg
...
If original image format is not supported in browser
2020-02-14 13:31:44 +01:00
viktorstrate
9361e85397
Cache scanned album directories
2020-02-12 18:45:58 +01:00
viktorstrate
4af6be17d8
Improve scanner cleanup to take user into account
2020-02-12 18:19:16 +01:00
viktorstrate
a2d0509cad
Update scanner to delete removed files
2020-02-12 18:10:52 +01:00
viktorstrate
d50a15be90
Work on scanner + add launch.json for vscode
2020-02-11 23:35:35 +01:00
viktorstrate
0f7f703982
Further work on shares
2020-02-11 15:36:12 +01:00
viktorstrate
687b4f4f7f
Work on shares
2020-02-11 14:32:35 +01:00
viktorstrate
6e72caf2f0
Improve integration with ui
2020-02-10 12:05:58 +01:00
viktorstrate
a3a4dda286
Work on share tokens
2020-02-09 21:25:33 +01:00
viktorstrate
963acf11e8
Add album thumbnail to graphql
2020-02-09 16:16:41 +01:00
viktorstrate
e6593ee7f3
Working on integrating backend with ui
2020-02-09 15:26:59 +01:00
viktorstrate
d50b8034d1
Work on photo serving and processing
2020-02-09 14:21:53 +01:00
viktorstrate
9a8701ecd0
Improve image processing
2020-02-09 12:53:21 +01:00
viktorstrate
517286ff38
Setup initial setup wizard
2020-02-05 16:49:51 +01:00
viktorstrate
c2a5b5d2f3
Add album resolver
2020-02-05 16:14:21 +01:00
viktorstrate
43e214b5d0
Work on photo resolver
2020-02-05 14:51:46 +01:00
viktorstrate
e877242fef
Setup CORS
2020-02-05 13:15:23 +01:00
viktorstrate
9cf455f699
Add support for cr2 raw format
2020-02-02 21:44:09 +01:00
viktorstrate
11896a246e
Work on image processing
2020-02-02 18:18:38 +01:00
viktorstrate
d81e945b68
Start on image proccessing
2020-02-02 00:29:42 +01:00
viktorstrate
a57c111630
Work on scanner
2020-02-01 17:58:45 +01:00
viktorstrate
e2049bd6e5
Add sql tables for photos and albums
2020-02-01 14:52:27 +01:00
viktorstrate
9892366143
Refactor gqlgen
2020-02-01 00:08:23 +01:00
viktorstrate
51fbe8a2d5
Implement authorization
2020-01-31 23:30:34 +01:00
viktorstrate
9d734af5e2
Implement access token
2020-01-31 18:51:24 +01:00
viktorstrate
0518c0e360
Add user signup
2020-01-31 17:36:48 +01:00
viktorstrate
8a69b1a82c
Setup database migration
2020-01-31 15:22:58 +01:00
viktorstrate
3a730fea36
Update env files and move to postgres
2020-01-30 15:10:01 +01:00
viktorstrate
494d880771
Start on mysql
2020-01-30 14:49:39 +01:00
viktorstrate
9d95b7bead
Start on graphql in go
2020-01-30 14:28:14 +01:00
viktorstrate
9c59e69a66
Move old api folder
2020-01-30 13:49:28 +01:00
viktorstrate
13f758a18b
Update dependencies
2020-01-19 22:25:03 +01:00
viktorstrate
6f926771ba
Update packages
2020-01-16 10:44:35 +01:00
viktorstrate
e965187ed6
Add install guide to readme
...
Update dependencies
2019-08-30 16:27:24 +02:00
viktorstrate
44e8a0481e
Add docker-compose with proxy
2019-08-30 15:43:24 +02:00
viktorstrate
c8d02392f2
Fix scanner notification bug
...
where notifications would not be sent
2019-08-23 22:19:50 +02:00
viktorstrate
2a58f0b5ab
Secure graphql endpoint
...
add option to scan individual users photos
2019-08-23 22:14:12 +02:00
viktorstrate
25a00e93f1
Remove test errors from scanner
2019-08-23 00:47:29 +02:00
viktorstrate
fa063d3363
Fix typo bug in scanAlbum
2019-08-23 00:46:04 +02:00
viktorstrate
3c51a23a50
Improve message system
2019-08-23 00:33:10 +02:00
viktorstrate
b28dd4750f
Remove redundant code from scanUser
2019-08-21 21:52:19 +02:00
viktorstrate
69d112e599
Catch processImage errors
...
To continue of some images failed to process
2019-08-21 20:06:02 +02:00
viktorstrate
7238953d38
Fix dateShot bug in processImage
2019-08-21 19:14:23 +02:00
viktorstrate
e5688bdee8
Improve scanner
2019-08-21 18:20:43 +02:00
viktorstrate
108f6c2d0c
Add download option to sidemenu for photos
2019-08-21 16:17:45 +02:00
viktorstrate
a5513e3343
Hash passwords with bcrypt
2019-08-20 16:37:15 +02:00
viktorstrate
bafb33cf43
Work on sharing
2019-08-17 22:46:18 +02:00
viktorstrate
afcd6cf0ed
Disable production includes, as they remove filters
...
A better solution is needed
2019-08-16 22:51:37 +02:00
viktorstrate
aeade9f284
Add volumes to docker-compose
2019-08-16 22:42:59 +02:00
viktorstrate
6d998a392f
Add prop types and fix eslint issues
2019-08-16 14:02:01 +02:00
viktorstrate
c3ccb93380
Add eslint to check syntax
2019-08-16 13:25:50 +02:00
viktorstrate
27765a9c96
Album share
2019-08-15 21:17:44 +02:00
viktorstrate
c6fcba4083
Completely change sidebar structure + Further work towards sharing
2019-08-15 18:32:49 +02:00
viktorstrate
54f5750ab5
Work on sharing + some security hardening
2019-08-14 23:57:07 +02:00
viktorstrate
c3d65c66ea
Change license to GPL v3
...
All further development of this project
will be licensed uner the general public license v. 3
2019-08-12 16:22:54 +02:00
viktorstrate
52ca60e240
Fix bug where iso is not parsed at a number
2019-08-11 15:44:05 +02:00
viktorstrate
7bc29c3ec7
Fix a dangling neo4j session
2019-08-11 15:18:28 +02:00
viktorstrate
d72a65be53
Scanner now scans one album at a time
2019-08-11 15:07:01 +02:00
viktorstrate
fe370003c4
Fix url bug
2019-08-10 18:21:58 +02:00
viktorstrate
891af5f2ba
Fix variable undefined error
2019-08-10 17:59:49 +02:00
viktorstrate
5521c65c66
Small cleanup
2019-08-10 17:50:21 +02:00
viktorstrate
c3cb98fdaa
Change env variables in API
2019-08-10 17:47:53 +02:00
viktorstrate
11586209bf
Try to fix subscriptions not working in docker
2019-08-10 17:38:43 +02:00
viktorstrate
d9ba92aaa5
Improve presentview performance
2019-08-10 17:15:17 +02:00
viktorstrate
0496a65f9c
Only scan web compatiable image formats
2019-08-10 16:42:27 +02:00
viktorstrate
50bdc86ab0
Secure photos with header, rather than cookies. Now docker-compose works
2019-08-09 17:41:25 +02:00
viktorstrate
de7a6446f8
Fix docker bugs + improvements
2019-08-01 23:57:00 +02:00
viktorstrate
a5d9923584
Update packages
2019-08-01 23:03:30 +02:00
viktorstrate
999d5fa321
Add change password option for admins
2019-08-01 22:58:33 +02:00
viktorstrate
ab278a5a99
Add user management in settings
2019-07-31 16:23:25 +02:00
viktorstrate
e0f6d8fa0b
Add settings panel
2019-07-31 12:30:00 +02:00
viktorstrate
01b90b2fa0
Add initial setup wizard
2019-07-31 00:55:48 +02:00
viktorstrate
7639a10d82
Start on initial wizard
2019-07-30 00:41:41 +02:00
viktorstrate
c70cc402b0
Add docker support
2019-07-29 23:39:38 +02:00
viktorstrate
53415714c2
Add EXIF to sideview
2019-07-24 20:56:15 +02:00
viktorstrate
7c714449f9
Add sorting and filters
2019-07-23 22:38:41 +02:00
viktorstrate
3560c2cae8
Enable graphql filtering
2019-07-23 18:37:13 +02:00
viktorstrate
148756d786
Mark as album if contains subalbums
2019-07-23 18:23:53 +02:00
viktorstrate
1ed7dccae4
Correctly cleanup albums from cache
2019-07-23 18:05:15 +02:00
viktorstrate
672d335160
Properly delete images from cache
2019-07-23 17:49:45 +02:00
viktorstrate
df0f2e9140
Refactor scanner into multiple files
2019-07-21 22:51:51 +02:00
viktorstrate
7a54fc9bc9
Move photourl to database
2019-07-21 17:16:43 +02:00
viktorstrate
208cbda19a
Scanner delete albums when not found locally
2019-07-21 14:15:52 +02:00
viktorstrate
6aa5200f95
Refactor scanner
2019-07-20 21:38:08 +02:00
viktorstrate
034b85e1f7
Add right sidebar
2019-07-19 21:39:51 +02:00
viktorstrate
1d5ca69701
Layout and scanner improvements
2019-07-18 22:33:18 +02:00
viktorstrate
705aaeba0e
Working on animations
2019-07-18 17:41:13 +02:00
viktorstrate
f0bf1c2dc4
Scanner work + image processing
2019-07-16 18:31:48 +02:00
viktorstrate
286cfa992b
Prepare to implement scanner
2019-07-13 15:50:59 +02:00
viktorstrate
02e657328f
Add semantic ui, refactoring
2019-07-07 23:53:07 +02:00
viktorstrate
1604827f35
Frontend login finished
2019-07-07 15:54:39 +02:00
viktorstrate
d3f9ed8116
Work towards authentication
2019-07-05 00:36:32 +02:00