viktorstrate
b590413e76
Fix share media not working with postgres
...
This closes #265
2021-03-23 14:04:44 +01:00
Kjeldgaard
1f9f6ebf9a
Use exiftool for parsing exif data
...
Use exiftool to parse exif metadata.
Signed-off-by: Kjeldgaard <Kjeldgaard@users.noreply.github.com>
2021-03-20 00:26:05 +01:00
viktorstrate
a14b12b8d4
Fix bug where DetectFaces would be called with the wrong media.
...
This happend because the go routine did not capture the media variable,
and so the it would change before the go routine could start
and call the DetectFaces function.
2021-03-16 22:27:27 +01:00
viktorstrate
3ae92086cd
Pass database as argument to individual face_detector functions
...
This allows the face detector to use transactions,
such that faces can be detected on media that has not
been fully commited yet.
This solves #214
2021-03-16 18:26:51 +01:00
viktorstrate
ba16fc1caa
Fix postgres errors + fix search results without thumbnails
...
This closes #241
2021-03-12 14:26:51 +01:00
viktorstrate
3d9ae530af
Load shared albums recursively
...
This solves #143 and #229
2021-03-03 15:55:55 +01:00
viktorstrate
2c98827db5
Make photoview work without providing the PHOTOVIEW_PUBLIC_ENDPOINT environment variable
2021-03-01 22:03:57 +01:00
viktorstrate
26996b45e5
Reload faces if albums or media is deleted
2021-02-27 16:39:04 +01:00
viktorstrate
d4552c7724
Fix sql compatiability bug
2021-02-26 21:53:14 +01:00
viktorstrate
14c97d49c1
Fix sql compatiability bug
2021-02-26 21:51:00 +01:00
viktorstrate
7bdf02b726
Fix bug where one user would load another users image faces
2021-02-26 21:49:01 +01:00
viktorstrate
91d94ecc82
Fix bug related to faces feature
2021-02-26 21:30:09 +01:00
viktorstrate
51123ed8b4
Order people by number of photos of them
2021-02-26 20:19:20 +01:00
viktorstrate
8290d51aae
Add pagination for people
2021-02-25 20:39:24 +01:00
viktorstrate
7fab8287a2
Add API pagination for faces
2021-02-25 18:48:59 +01:00
viktorstrate
eaad404f55
Fix new Docker runtime errors
2021-02-22 21:14:15 +01:00
viktorstrate
3eb3435f08
Add DetachImageFaces resolver
2021-02-22 18:14:31 +01:00
viktorstrate
20251dedd6
Add UI to move faces between face groups
2021-02-20 22:43:07 +01:00
viktorstrate
a3e5346501
Properly configure face gallery
2021-02-20 14:45:43 +01:00
viktorstrate
5368b4bae0
Various improvements to faces UI
2021-02-19 23:30:43 +01:00
viktorstrate
bdd2318afc
Implement recognizeUnlabeledFaces
2021-02-19 19:24:31 +01:00
viktorstrate
00fceea4db
Work on face merge ui
2021-02-19 17:49:41 +01:00
viktorstrate
6b48ac9a16
Add schemas for face related mutations
2021-02-17 13:50:32 +01:00
viktorstrate
de46f89f5d
Show face circles in sidebar
2021-02-16 17:13:08 +01:00
viktorstrate
c3eda0feab
Start on UI for faces
2021-02-16 12:41:34 +01:00
viktorstrate
67b812ed21
Add graphql resolver for faces
2021-02-16 12:01:10 +01:00
viktorstrate
e4df1fb706
Save face rectangles to database
2021-02-16 11:27:28 +01:00
viktorstrate
abb80ae425
Start on face detection
2021-02-15 17:35:28 +01:00
viktorstrate
529444561b
Fix timeline date ordering
2021-02-14 11:40:13 +01:00
viktorstrate
dfc89123f6
Fix bug where an unauthorized request could crash the server
2021-02-14 11:19:29 +01:00
viktorstrate
7c603cb4df
Fix various Postgres specific errors
2021-02-14 11:04:38 +01:00
viktorstrate
1ba45dbe09
Fix SQL errors for Timeline view,
...
when using Postgres or Sqlite. Closes #194
2021-02-14 10:11:10 +01:00
viktorstrate
926aa3de3d
Cleanup graphql schema, and general refactoring
...
- Separate graphql `filter` into `paginate` and `order`
- Remove GalleryGroups, replaced by TimelineGallery
- Fix Apollo cache such that sorting works again
2021-02-13 15:08:05 +01:00
viktorstrate
a9edb148f1
Start on infinite scroll pagination
2021-02-12 17:44:32 +01:00
Viktor Strate Kløvedal
ce3090394b
Add dataloaders to combine database queries ( #190 )
...
See also https://gqlgen.com/reference/dataloaders/
2021-02-07 22:17:33 +01:00
viktorstrate
54a83a4dc6
Make thumbnails optional
...
to prevent app from crashing when in the middle of scanning
2021-02-07 18:13:08 +01:00
viktorstrate
4fdb9357ea
Add favorites filter for timeline
2021-02-07 17:13:27 +01:00
viktorstrate
214c4e8be4
Fix panic when scanning
2021-02-04 22:06:49 +01:00
viktorstrate
ddd2cad1a3
Add query resolver for timeline view
2021-02-04 19:02:51 +01:00
András Maróy
be83849bee
Implement postgres support
2021-01-31 17:07:29 +01:00
stz184
f723bda7c5
Fixes photoview/issues#168
...
- Migrated mediaGeoJson resolver to GORM
- Fixed issue loading media list in MediaList() function
- Fixed typo in the column "gps_lonitude" (renamed to "gps_longitude")
2021-01-29 01:23:40 +02:00
viktorstrate
fbebb13d28
Don't transcode web compatible video formats.
...
This relates to the following issues #131 #169 #173
2021-01-27 18:00:37 +01:00
viktorstrate
a4f5d26197
Fix search
2021-01-26 14:34:28 +01:00
viktorstrate
2c6701b4b3
Fix filtering favorites
2021-01-26 14:27:43 +01:00
viktorstrate
2d54847fed
Refactor DeleteUser resolver
...
- Use tx inside transaction
- Use .Clear() to delete all albums at once,
to prevent unnecessary database hits.
2021-01-24 17:25:43 +01:00
stz184
b176694d2b
* Fixes photoview/photoview#168
...
Fixed issue deleting existing users.
2021-01-24 17:20:31 +01:00
viktorstrate
c88b8ed873
fix bug regarding thumbnail urls
2021-01-22 22:36:58 +01:00
viktorstrate
5e137392e1
avoid unnecessary sql queries
2021-01-22 09:35:54 +01:00
viktorstrate
2c230d917a
Further gorm attributes cleanup
2021-01-19 18:35:19 +01:00
viktorstrate
fc515aa375
Cleanup gorm model attributes + add indexes
2021-01-19 17:31:37 +01:00
viktorstrate
de35a06014
Add db resolver for media.exif
2021-01-19 16:46:15 +01:00
viktorstrate
107da91700
Refactor handling of environment variables
2021-01-17 16:50:48 +01:00
viktorstrate
50d0aa0efb
Disable multithreaded scanners for sqlite
...
as it's not reliable
2021-01-17 13:08:44 +01:00
viktorstrate
fcdb5b4e7b
Work on sqlite support
2021-01-17 12:45:23 +01:00
viktorstrate
a1a14286d6
Properly clean up when a user <-> album relation is deleted
2021-01-06 17:28:06 +01:00
viktorstrate
59048c8416
Fix various small errors regarding database change
...
- Fix media sidebar
- Fix Albums page
- Fix media and album shares
2021-01-02 23:07:44 +01:00
viktorstrate
d78cef300a
Finish add/remove root paths
2020-12-31 00:37:11 +01:00
viktorstrate
c198e68daf
Hook up UI to add and remove multiple root paths for each user
2020-12-30 18:36:26 +01:00
viktorstrate
96546f6556
Add resolvers for user albums and root_albums
2020-12-27 20:07:54 +01:00
viktorstrate
aeb05bca49
get initial scanner up and running
2020-12-22 01:14:43 +01:00
viktorstrate
732ccd05ab
restructure user <-> albums relations in database
2020-12-20 17:10:00 +01:00
viktorstrate
d815472458
Simplify search query a little
2020-12-19 09:45:43 +01:00
stz184
e5cb91532a
implicitly join on the Album table
2020-12-19 01:07:43 +02:00
stz184
3ce4ab02cc
Migrated the search to gorm
2020-12-19 00:50:29 +02:00
viktorstrate
b38d7ab29a
Fix periodic scanner
...
and small bug related to user resolver
2020-12-17 23:21:51 +01:00
viktorstrate
907894dda3
Merge branch 'master' into v2.0.0
2020-12-17 23:18:00 +01:00
viktorstrate
4cd822f068
Update gomod to reflect repo transfer
2020-12-17 22:51:43 +01:00
viktorstrate
2903670255
Migrate album and media sharing
2020-12-17 22:29:24 +01:00
viktorstrate
092cbdb872
Migrate FormatSQL
2020-12-17 21:32:13 +01:00
viktorstrate
4f370deab9
Merge remote-tracking branch 'origin/master' into v2.0.0
2020-12-10 12:30:10 +01:00
Vladimir Ivanov
6adc79001c
Photo duplication detection ( #148 )
...
* Fixes viktorstrate/photoview#8
- Added new property CounterpartPath to Media struct to hold the path to the counterpart JPEG file (if any)
- Added new MediaType method isBasicSupportedisBasicTypeSupported()
- Added new function isFileExists() to minimize the code duplication
* Fixes viktorstrate/photoview#8
- Chaned CounterpartPath definition from string to *string
- Added new helper method FileExtensions()
- Simplified the logic inside scanForRawCounterpartFile() and scanForCompressedCounterpartFile() functions, reducing the code duplication
* Fixes viktorstrate/photoview#8
- Added debug to fileExists() function
* Cleanup fileExists logging
Co-authored-by: viktorstrate <viktorstrate@gmail.com>
2020-12-09 11:40:37 +01:00
viktorstrate
f0d580116b
Improve album and media resolvers
2020-12-08 16:24:08 +01:00
viktorstrate
b13873f48d
Fix error that caused infinite CPU loop
2020-12-06 16:54:19 +01:00
viktorstrate
98f13d76e6
Replace database, work on scanning
2020-11-30 21:29:49 +01:00
viktorstrate
364521958b
Fix site_info, replace ID type in graphql queries
2020-11-30 16:42:13 +01:00
viktorstrate
31da5e1c07
Replace database, initial setup now works
2020-11-28 21:49:33 +01:00
viktorstrate
e42ac2436b
Replace database, resolve all build-time errors
2020-11-28 21:29:31 +01:00
viktorstrate
d3ebecc3b5
Replace database, mostly user related
2020-11-28 17:31:19 +01:00
viktorstrate
22e328b94b
Replace database, mostly share token
2020-11-27 16:02:10 +01:00
viktorstrate
2b966aa672
Replace database, mostly media and video
2020-11-26 20:48:04 +01:00
viktorstrate
177ae91500
Replace database, mostly video
2020-11-25 23:06:47 +01:00
viktorstrate
cc5d323b2a
Replace database, mostly process photo
2020-11-24 11:46:49 +01:00
viktorstrate
2e9aa29258
Replace database, mostly media related
2020-11-23 20:43:00 +01:00
viktorstrate
3c23f82330
Replace database, mostly album related
2020-11-23 19:59:01 +01:00
viktorstrate
27b2f95a7b
Start on migrating database integration to gorm
2020-11-23 19:39:44 +01:00
sean borg
11d67c9ae9
Add sidecar path & hash to DB
2020-11-21 11:54:01 +00: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
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
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
9861788ce7
Update gqlgen to v0.13.0 and regenerate
2020-09-22 09:46:35 +02: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
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
e59ff9cbde
Fix NewMediaFromRows
2020-08-15 11:59:44 +02:00
viktorstrate
78b415871d
Add date information to media
...
This closes #61
2020-08-12 13:04:41 +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
82b18f0e9b
Cleanup + add video format
2020-07-13 18:01:31 +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
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
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
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
11c3a92373
Reintregrate notifications with scanner
2020-06-23 15:13:07 +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
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
b254f3abaa
Implement ScanAll resolver
2020-04-15 11:21:16 +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
7b3f016a0f
Add replace debounce with throttle
...
Update dependencies
2020-03-12 13:26:11 +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
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
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
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
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