Commit graph

352 commits

Author SHA1 Message Date
Michael Mayer
5262cce647 Thumbnails code clean-up 2019-05-14 10:28:21 +02:00
Michael Mayer
40b7c33198 Fix for thumbnail size: fit_3840 instead of fit_3540 2019-05-13 21:22:16 +02:00
Michael Mayer
34b14c7099 Additional fix for running thumb unit tests on CI 2019-05-13 19:11:40 +02:00
Michael Mayer
1fc73e7285 Potential fix for running thumb unit tests on CI
testdata/ could not be found
2019-05-13 18:57:38 +02:00
Michael Mayer
dc4536b249 Improve thumbnail rendering and indexing performance 2019-05-13 18:01:50 +02:00
Theresa Gresch
f154c27b1c Change map and resampling for improved color indexing 2019-05-12 14:31:01 +02:00
Theresa Gresch
dc67f8ccb2 Merge branch 'develop' of /Users/theresa/Development/graciousgrey/photoprismRepo/photoprism with conflicts. 2019-05-12 13:03:18 +02:00
Michael Mayer
1125ba2da4 exif.RegisterParsers() should only be called once 2019-05-12 09:44:20 +02:00
Michael Mayer
a612609854 Thumbnail cache warm-up for demo 2019-05-09 07:48:41 +02:00
Michael Mayer
c5e2783b8d Upgrade Go to 1.12.5, improve Makefile and add chromium-browser 2019-05-09 06:18:22 +02:00
Michael Mayer
55c19635c9 Update inline comment regarding the use of Context 2019-05-06 23:41:49 +02:00
Michael Mayer
0ddef3a02d Rename context package to config and fsutil to util 2019-05-06 23:18:10 +02:00
Michael Mayer
cf8d4ce29b Remove syscall.Kill from context Shutdown() 2019-05-06 22:13:35 +02:00
Michael Mayer
1e6f41b417 Improve image classification performance and logging in debug mode 2019-05-04 17:34:51 +02:00
Michael Mayer
d83e81b49b Graceful web and database server shutdown; add log-level flag 2019-05-04 13:29:32 +02:00
Michael Mayer
ff09f76bc5 Add PhotoTag model to weight photo tags based on confidence and source 2019-05-04 11:50:19 +02:00
Michael Mayer
e148e7af46 Add ColorPerception struct and improve Color() tests, see #7
Since we're not using the very same colors as material design anymore,
MaterialColor was renamed to IndexedColor.
2019-05-04 11:27:33 +02:00
Michael Mayer
e565195f23 Add config flag for read-only mode, see #56 2019-05-04 09:11:33 +02:00
Michael Mayer
7074faabe0 Additional airport image for testing, see #7 2019-05-04 07:19:02 +02:00
Michael Mayer
5d80af8434 Add static testdata for color indexing and image classification, see #7
Images are scaled down to ~331px. Filenames contain object and color.
2019-05-04 07:10:39 +02:00
Michael Mayer
868e1b80b9 Use reflection and yaml.Unmarshal() for configuration, see #66 2019-05-04 05:25:00 +02:00
Michael Mayer
bd60b5d398 Remove deprecated PerceptualHashSize const 2019-05-04 01:24:43 +02:00
Michael Mayer
3389b5115e Use hash to keep TensorFlow model up to date 2019-05-04 00:53:02 +02:00
Michael Mayer
3589a410c2 Add test.jpg fixture for fsutil package 2019-05-03 18:58:33 +02:00
Michael Mayer
71adb35cff Remove test and frontend packages; app and test context refactoring 2019-05-03 18:57:28 +02:00
Michael Mayer
6cba9d061f Remove unnecessary getter prefix
See https://golang.org/doc/effective_go.html#Getters
2019-05-02 17:26:44 +02:00
Michael Mayer
3315b87305 Use logrus for logging 2019-05-02 14:10:05 +02:00
Michael Mayer
8289de2746 Improve logging and set optional password for built-in TiDB server 2019-05-01 14:54:11 +02:00
Michael Mayer
818019a7ec Use nasnet mobile instead of inception v1 for image classification 2019-04-30 13:17:01 +02:00
Michael Mayer
a82696f067 Move color, luminance and saturation to files table 2019-04-29 21:54:36 +02:00
Michael Mayer
b079882354 Slow test refactoring (now using testing.Short()) 2019-04-29 20:09:17 +02:00
Michael Mayer
900e8c5e23 Color extraction: Add saturation value 2019-04-29 17:12:24 +02:00
Michael Mayer
5e1210c508 Add luminance and monochrome return values to MediaFile.Colors() 2019-04-29 01:59:57 +02:00
Sebastian Kunert
6267118acf Fix broken tensorflow test (#107)
* Fix broken tensorflow test

* Introduce rounding to fix tests
2019-04-28 11:09:25 +02:00
Michael Mayer
2e418d6e1e Fix API photo like / unlike test (failed existing photos), see #79 2019-04-26 04:25:00 +02:00
Michael Mayer
bc208c378c Set max length for file name to 512 chars because of utf8mb4, see #106 2019-04-26 04:13:50 +02:00
Michael Mayer
2f15ca2c59 Reduce length for file names to 2048 chars to fix error on CI, see #106 2019-04-26 02:44:57 +02:00
Michael Mayer
ffc64cceb0 Use 3x3 thumbnail for color indexing #7
Other implementations were unstable due to the use of random numbers.
This seems to be fast and also enables us to search specific parts
of an image. 16 colors are indexed (Material Design).
2019-04-26 02:22:53 +02:00
Michael Mayer
94205f0113 Models: Allow 4096 chars for file names, fix #106 2019-04-25 03:52:25 +02:00
Michael Mayer
b294ad10b3 Fix TestMediaFile_GetColors_Slow test 2019-04-18 20:16:09 +02:00
Sebastian Kunert
48a9f78cb3 Improve color indexing by using k-means clustering (#103)
* First commit for color-improvements

* Use k-means for prominent color detection

* Remove debugging code

* Add color checks to tests

* Add additional test for color names
2019-04-18 17:27:08 +02:00
Michael Mayer
57d5d2a183 OpenStreetmap: PlaceID now uint instead of string
API seems to have changed.
2019-04-18 06:58:35 +02:00
Vedhavyas Singareddi
4edfc4fa4c error chacks and minor api refactoring (#92)
* error chacks and minor api refactoring

* consistant naming
2019-01-15 14:00:42 +01:00
Vedhavyas Singareddi
74dc8be598 Fix/defer leaks (#91)
* fix defer leaks
* go mod tidy
2019-01-13 00:45:22 +01:00
Michael Mayer
95b041e25f Add error handling for ExpandedFilename(), see #89 2019-01-03 05:45:54 +01:00
Michael Mayer
e9425329f1 Add SqlServerPassword() and HttpServerPassword() to Config, see #16 2018-12-26 11:40:20 +01:00
Michael Mayer
e37a674e94 Improve thumbnail error messages, see #50 2018-12-26 11:40:20 +01:00
Michael Mayer
a3377dc8e8 Rename tidb to internal for database configuration, see #50 2018-12-26 11:40:20 +01:00
Michael Mayer
579c1272a7 Change order of values in config command, see #50 2018-12-26 11:40:20 +01:00
Michael Mayer
77c101a504 Move version command to the bottom, see #50 2018-12-21 04:40:45 +01:00
Michael Mayer
9e887be2d6 Add version command, see #50 2018-12-21 04:32:17 +01:00
Michael Mayer
5345ad37a2 Move server flags to global config, see #50 2018-12-21 04:17:22 +01:00
Michael Mayer
b300d5540c Remove todo comment, see #50 2018-12-21 04:07:36 +01:00
Michael Mayer
35ce40dfa1 Move ServerPath() up, see #50 2018-12-21 04:06:15 +01:00
Michael Mayer
cc44c3e580 Move favicons to server public directory, see #50 2018-12-21 04:05:14 +01:00
Michael Mayer
a6e4944821 Rename HTTP server paths in config, see #50 2018-12-21 03:44:38 +01:00
Michael Mayer
2050ba61b4 Rename Config.GetFaviconsPath() to FaviconsPath(), see #50 2018-12-21 03:41:07 +01:00
Michael Mayer
e87bf84532 Rename Config.GetTemplatesPath() to TemplatesPath(), see #50 2018-12-21 03:40:19 +01:00
Michael Mayer
3f2156a8fa Rename Config.GetDatabasePath() to SqlServerPath(), see #50 2018-12-21 03:39:10 +01:00
Michael Mayer
a7b6ea8936 Rename Config.GetServerAssetsPath() to ServerAssetsPath(), see #50 2018-12-21 03:33:56 +01:00
Michael Mayer
7d6c3d83b7 Rename Config.GetTensorFlowModelPath() to TensorFlowModelPath(), see #50 2018-12-21 03:25:50 +01:00
Michael Mayer
7fde545fe7 Rename Config.GetAssetsPath() to AssetsPath(), see #50 2018-12-21 03:25:09 +01:00
Michael Mayer
628c598f08 Rename Config.GetThumbnailsPath() to ThumbnailsPath(), see #50 2018-12-21 03:24:22 +01:00
Michael Mayer
3462257cce Rename Config.GetCachePath() to CachePath(), see #50 2018-12-21 03:23:47 +01:00
Michael Mayer
a3d9c61c42 Rename Config.GetDarktableCli() to DarktableCli(), see #50 2018-12-21 03:23:05 +01:00
Michael Mayer
32444bde18 Rename Config.GetExportPath() to ExportPath(), see #50 2018-12-21 03:22:25 +01:00
Michael Mayer
1a4815fd51 Rename Config.GetImportPath() to ImportPath(), see #50 2018-12-21 03:21:49 +01:00
Michael Mayer
c1219799da Rename Config.GetOriginalsPath() to OriginalsPath(), see #50 2018-12-21 03:21:21 +01:00
Michael Mayer
b365a2ce57 Rename Config.GetDatabaseDsn() to DatabaseDsn(), see #50 2018-12-21 03:19:25 +01:00
Michael Mayer
3eb61dff47 Rename Config.GetDatabaseDriver() to DatabaseDriver, see #50 2018-12-21 03:18:43 +01:00
Michael Mayer
ef2719e21e Rename Config.GetServerMode() to HttpServerMode, see #50 2018-12-21 03:18:01 +01:00
Michael Mayer
f0c947ddfb Rename Config.GetServerPort() to HttpServerPort, see #50 2018-12-21 03:16:50 +01:00
Michael Mayer
49793a3706 Rename server-* to http-*, see #50 2018-12-21 03:11:06 +01:00
Michael Mayer
cde4eb5d92 Rename serverIP and serverPort to httpServer*, see #50 2018-12-21 03:06:48 +01:00
Michael Mayer
149e9f15d7 Rename Config.GetServerIP() and HttpServerHost(), see #50 2018-12-21 03:03:59 +01:00
Michael Mayer
62d75f74f2 Rename Config.DbServerIP() and DbServerPort() to SqlServer*, see #50 2018-12-21 03:02:34 +01:00
Michael Mayer
d4aada7f86 Rename Config.IsDebug() to Debug(), see #50 2018-12-21 02:49:45 +01:00
Michael Mayer
6872cff3dc Rename Config.GetAppVersion() and GetAppCopyright() to AppAppVersion() and AppCopyright(), see #50 2018-12-21 02:47:44 +01:00
Michael Mayer
9efbbbfe90 Rename Config.GetAppName() to AppName(), see #50 2018-12-21 02:44:34 +01:00
Michael Mayer
37fe1d093e Rename Config.GetConfigFile() to ConfigFile(), see #50 2018-12-21 02:43:44 +01:00
Michael Mayer
c639a81c90 Rename GetDb() to Db() in comments, see #50 2018-12-21 02:39:31 +01:00
Michael Mayer
40fae6a28f Rename Config.GetClientConfig() to ClientConfig(), see #50 2018-12-21 02:38:39 +01:00
Michael Mayer
0f12aac73b Rename Config.GetDb() to Db(), see #50 2018-12-21 02:37:16 +01:00
Michael Mayer
9e4c134e29 Fixed inline comments 2018-12-21 02:00:22 +01:00
Michael Mayer
d2ba33d5f4 Improve error message for lat/long missing #80 2018-12-21 02:00:22 +01:00
Michael Mayer
43b860801c Proof-of-concept for using TiDB instead of MySQL #60 2018-12-18 18:38:30 +01:00
Michael Mayer
11ca54da3b Add logs for location indexing #80 2018-12-18 18:13:44 +01:00
Michael Mayer
52c82e610d Change fixture download file name to test.zip 2018-12-11 07:22:11 +01:00
Michael Mayer
f92830eb83 Change fixture data URL to our own download server 2018-12-11 07:11:00 +01:00
Joey Zou
c5ff44692f HTTP status code change (#78)
DislikePhoto and LikePhoto should return http.StatusOK (200) instead of http.StatusAccepted (202)
2018-12-07 13:48:15 +01:00
Michael Mayer
2e746c833c Code clean-up #58 2018-11-18 19:18:19 +01:00
Michael Mayer
9872cfaa50 Add ConfigCommand test #58
- Includes refactoring of existing packages to enable testing of commands
2018-11-17 13:57:19 +01:00
Michael Mayer
86a6dda0e0 Run "make fmt" #58 2018-11-17 12:29:01 +01:00
Michael Mayer
bb36226b59 Expected status for like and dislike is accepted (202) #58 2018-11-17 08:37:31 +01:00
Michael Mayer
cdf9d9293d Add test stubs and helper functions for package api #58 2018-11-17 08:28:50 +01:00
Michael Mayer
f7404f838b Fix slow tests and improve test output (colorized) #58 2018-11-17 06:56:43 +01:00
Michael Mayer
fb91ce9a06 Move utils and test config to separate packages #58 2018-11-17 06:21:39 +01:00
Michael Mayer
f3129097cf Fix Inception model name in download script #70 2018-11-17 02:49:25 +01:00
Michael Mayer
8063ba39ac Move slow tests to *_slow_test.go #58
- Added a new make target: test-fast
- To execute all test, you have to use -tags=slow
2018-11-14 23:51:17 +01:00
Michael Mayer
c5ee0fee48 Add darktable development docker image #62
- Improved build scripts and Dockerfile
- broadwayd can be used as display server for darktable or other GTK based software
2018-11-12 06:58:39 +01:00
Michael Mayer
8ac8658cc2 Lowercase fields for Config and added documentation #50 2018-11-09 21:11:52 +01:00
Michael Mayer
dd26ee0dca Use functions for all config values #50
Why? See https://github.com/photoprism/photoprism/issues/50#issuecomment-433856358
2018-11-09 20:48:23 +01:00
Michael Mayer
2cce8ded84 Moved all server assets to subdirectory #55 2018-11-09 19:25:58 +01:00
Michael Mayer
53dfd1647a Preparation for using an embedded database #55 2018-11-09 19:06:03 +01:00
Michael Mayer
90d73e4a61 Fixed default value for database DSN #58 2018-11-09 13:18:12 +01:00
Michael Mayer
133c7964ad Add tensorflow model and test file to development image #39 2018-11-08 16:41:14 +01:00
Michael Mayer
ac31141669 Smaller docker images with multi-stage build #39 2018-11-08 10:56:11 +01:00
Michael Mayer
a4d6f810d6 Added inline documentation #14 2018-11-06 19:02:03 +01:00
Michael Mayer
3e3327ade3 Added link to wiki / developer guide, see #12 2018-11-06 11:10:57 +01:00
Michael Mayer
4a33d430e9 Fixed formatting for api inline docs, see #12 2018-11-06 10:43:59 +01:00
Michael Mayer
e66e9e4f69 Improved REST route docs, see #12
Hard to test locally as godoc -http ":80" doesn't seem to work outside the GOPATH
2018-11-06 10:28:44 +01:00
Michael Mayer
5868d4e664 Added REST route as a first step to document API, see #12 2018-11-06 09:56:40 +01:00
Gergely Brautigam
b202bb6cc7 Refactoring the photoprism package #53
* Started refactoring the photoprism package.

* A lot of more comments and eliminating utils.

* Fixed search.

* See #50 The great refactor -- Refactor config to YAML, Add Docs, Revise exported fields
2018-11-01 17:01:45 +01:00
Michael Mayer
6a2af16d1c Using goimports for formatting imports #50 2018-10-31 07:14:33 +01:00
Philipp Knobel
00f79b2d01 First implementation of liking a photo (#48)
First implementation of liking a photo
2018-10-31 03:33:18 +01:00
Carlos Vazquez
00abbf1af5 Adds basic documentation for internal packages (#43)
* Added basic documentation wireframe for api, commands, and forms.

* Added doc.go
2018-10-31 02:42:54 +01:00
Michael Mayer
479acc06ab Changed edited postfix from "edit%d" to "edited_%d" 2018-10-09 16:48:10 +02:00
Michael Mayer
b9f1fe930b Added TakenAtChanged flag 2018-10-08 20:03:00 +02:00
Michael Mayer
b1e2ac17bd Save() instead of Update() must be used for updating rows 2018-09-27 15:16:37 +02:00
Michael Mayer
7640cae26b Mark files are missing, when they are not found 2018-09-27 12:10:19 +02:00
Michael Mayer
340d9ea799 Don't show missing files in search results by default 2018-09-27 09:44:06 +02:00
Michael Mayer
10859ee695 Moved perceptual hash from photo to file model; code clean-up (go fmt)
- Files might show different details of the full photo
2018-09-27 08:59:53 +02:00
Michael Mayer
c5481a177d Added fields for house nr, street and suburb to location 2018-09-26 15:00:12 +02:00
Michael Mayer
2ae77b7686 Refactored REST API (renamed package to api) 2018-09-24 21:14:15 +02:00
Michael Mayer
bbab05f9db Added additional photo meta data like aperture, lens and camera make; smaller perceptive hash; implemented stub for single photo view 2018-09-24 19:07:43 +02:00
Michael Mayer
13426caba2 Added country name and text wrap to photo search detail view 2018-09-24 11:48:52 +02:00
Michael Mayer
16a89c84c0 Refactoring: Separate file for each REST route and changed thumbnail URL 2018-09-24 11:27:46 +02:00
Michael Mayer
034495d75c Refactoring: Separate file for each command 2018-09-24 09:53:16 +02:00
Michael Mayer
5a2c717030 Using simpler sha1 hash for improved indexing performance (not relevant for security) 2018-09-24 09:02:00 +02:00
Michael Mayer
4ac3b2a602 Implemented detail view proof-of-concept for photo search 2018-09-19 20:15:46 +02:00
Michael Mayer
d7e4531231 Indexer now sets country (guess when there there is no location) 2018-09-19 11:16:18 +02:00
Michael Mayer
122f7a8641 Added countries table 2018-09-19 09:20:57 +02:00
Michael Mayer
ce5869d213 Code clean-up (go fmt) 2018-09-19 00:56:54 +02:00
Michael Mayer
d3ef7abb54 Experimental filters for category and country (photo search) 2018-09-19 00:53:39 +02:00
Michael Mayer
39ab854672 Implemented infinite scrolling and improved search API 2018-09-18 23:24:19 +02:00
Michael Mayer
6b7b5bf186 Improved logging for thumbnail generation 2018-09-18 22:02:50 +02:00
Michael Mayer
e4998d1046 Code clean-up 2018-09-18 21:42:33 +02:00
Michael Mayer
d50e36b213 Indexer now re-indexes existing files 2018-09-18 21:15:54 +02:00
Michael Mayer
4119170587 MediaFile.GetRelatedFiles() now returns shorter filenames first 2018-09-18 20:03:43 +02:00
Michael Mayer
0c39f51a86 Using relative path for file names in database 2018-09-18 19:23:40 +02:00
Michael Mayer
0148096c86 Importer now instantly converts and indexes files 2018-09-18 18:36:12 +02:00
Michael Mayer
de494fb8f8 Fixed Config.CreateDirectories() 2018-09-18 16:34:08 +02:00
Michael Mayer
1af143d806 Changed assertion for c.Debug in test 2018-09-18 15:49:35 +02:00
Michael Mayer
c0c8c26d11 Fixed TestConfig_SetValuesFromFile 2018-09-18 15:28:23 +02:00
Michael Mayer
5e12c48de2 Renamed server-ip to server-host 2018-09-18 15:18:54 +02:00
Michael Mayer
eec90acce3 Improved docker-compose config for production environments 2018-09-18 14:42:49 +02:00
Michael Mayer
a02b144b96 Additional photo jpeg files get editN suffix instead of vN (N = 1,2,3,...) 2018-09-18 14:05:56 +02:00
Michael Mayer
361123b125 Indexer now indexes files in correct order and with better performance 2018-09-18 12:44:22 +02:00
Michael Mayer
9096d87aca Using defaults from flag config if no value was set 2018-09-18 10:06:26 +02:00
Michael Mayer
da77a1230e Code clean-up (go fmt) 2018-09-17 18:40:57 +02:00
Michael Mayer
d925d59e67 Moved gorm models to separate package 2018-09-16 19:09:40 +02:00
Michael Mayer
78d9484d81 Directory clean-up: Moved source code to internal/ and config files to configs/ 2018-09-14 14:04:03 +02:00