Commit Graph

65 Commits

Author SHA1 Message Date
Cédric Leporcq eba6fc991b Add --ignore-tags option 2021-07-31 22:08:21 +02:00
Cédric Leporcq 98f4947917 Add --filter-by-ext option 2021-07-31 22:06:54 +02:00
Cédric Leporcq 2e84888c59 Add day_begins config option 2021-07-31 22:06:54 +02:00
Cédric Leporcq fc1f4343b0 Add sort command 2021-07-31 22:06:33 +02:00
Cédric Leporcq de1dacc837 Various fix 2021-07-31 08:09:10 +02:00
Cédric Leporcq 3af848a162 Change get_all_files behaviour 2021-07-31 08:09:10 +02:00
Cédric Leporcq cb8a4cd24e Refactoring media class 2021-07-31 08:09:10 +02:00
Cédric Leporcq 6b2d2b31c3 Add dry-run action 2021-07-31 08:09:10 +02:00
Cédric Leporcq 04f2ac6738 Change hash_db and location_db storage location to target directory 2021-07-31 08:09:10 +02:00
Cédric Leporcq 21ed551a54 Discard python 2.7 compatibility 2021-07-31 08:09:10 +02:00
Cédric Leporcq 0363fd4302 Add %folder tag 2021-07-18 13:44:58 +02:00
Cédric Leporcq f181c618b3 Metadata changes are made in dest files instead of source files 2021-07-18 13:44:58 +02:00
Cédric Leporcq df0bf3c28e Fix tests 2021-07-18 13:44:58 +02:00
Cédric Leporcq da764e94e6 Change date taken behaviour and use datetime format 2021-07-18 13:44:57 +02:00
Cédric Leporcq 42b1f4ecd4 load config as global variable 2021-06-18 06:51:30 +02:00
Arian Maleki afacb969e8
Enhance filesystem.process_file get_metadata cache performance. (#353)
Reduce exiftool calls by using a metadata object cache. 
Enable single exiftool subprocess to elimate spawing exiftool for each image.
2020-02-24 15:46:02 -08:00
Arian Maleki d8cee15f32 Optimize exiftool calls by adding an ExifTool singleton in pyexiftool library (#352)
This fix results in a 10x performance improvement [1] enabling a single exiftool subprocess to elimate spawing exiftool for each image.

Closes #350 #347 

[1] https://github.com/jmathai/elodie/issues/350#issuecomment-573412006
2020-01-13 23:04:33 -08:00
Michael Wong 75e65901a9 Add --exclude-regex parameter to exclude directories on import #340 (#342)
The `--exclude-regex` parameter and `[Exclusions]` config section lets you pass in a regular expression to match against file source file paths and ignore.
2019-10-27 20:19:51 -07:00
Jaisen Mathai 3ad6c0db35
Fix issue where photos without EXIF were not using the correct date for folder or file names #330 (#331)
Fixes #330

Fixes a bug in the code where media.set_original_name() would set the mtime of a photo and then use the newly set mtime for generating the folder and file name.
2019-07-29 23:51:10 -07:00
Jaisen Mathai 12c17c9cac Add a plugin to upload photos to Google Photos (#319)
Fixes #315.

This PR aims to address the [recent changes](https://www.blog.google/products/photos/simplifying-google-photos-and-google-drive/) in Google Photos + Google Drive where syncing between the two is no longer supported.

It works by uploading photos as part of the import process to add a copy of every photo in your library to Google Photos. Google Drive is not required for this plugin to work.

This plugin lets you have all your photos in Google Photos without relying on Google Drive. You can use another cloud storage service like iCloud or Dropbox or no cloud storage at all.

- [x] Add tests for `after()` plugin methods.
- [x] Add support for storage/async support.
- [x] Include plugins into code coverage.
- [x] Sweep code and clean up and add comments.
2019-07-12 01:44:57 -07:00
Jaisen Mathai 7c3ea1e1d7
Create an extendable plugin framework #315 #316 (#318)
This commit introduces the initial version of a plugin framework with tests and sample plugins. This helps address #315 and closes #316.
2019-07-04 02:57:10 -07:00
Andrew DeMaria 92605764f8 Add configuration to optionally capitalize file names (#313)
This commit adds a `capitalization` field under `[File]` in `config.ini` which allows file names to be capitalized.
2019-06-12 14:27:03 -07:00
Matt Carey 2e2c103cfb Fix issue #252 to not modify original source files on import (#272) 2019-02-04 14:20:39 -08:00
Jaisen Mathai 5b07386e2c
Add support for customizing file name via config file. #107 #110 #111 (#225) 2019-01-23 01:06:48 +05:30
Jaisen Mathai 69937ca1a3
Add support for a %custom placeholder for more complex folder names than %location or %date provide #279 (#283) 2019-01-18 16:48:32 -08:00
Jaisen Mathai 4cd91e9f2d
Add support for camera make and model in directory path #254 (#255) 2017-11-14 23:14:26 -08:00
Adam Candy fbc7b04ef2 Fix bug so process_file will set access time on destination instead of source. Closes #237 (#238) 2017-08-06 14:29:34 -07:00
Ove Stavnås e5e811b215 Fix bug with fallback values in full_path variables in config.ini (#234)
* Add test for gh-234

* Force flush of cached configs in test
2017-08-06 14:26:28 -07:00
Jaisen Mathai 9be5ab13fc Skip copying file if source is identical to destination. #210 (#211)
This prevents a zero byte file from being written
2017-04-12 23:42:44 -07:00
Jaisen Mathai e3123872c4 Add fallback folder support when configuring folder hierarchy. #199 (#209)
* add test
2017-04-12 23:33:18 -07:00
Jaisen Mathai 74d8675b20 Add support for multiple levels of folders. #199 (#205)
* Use original name from EXIF instead of parsing assumed file name format. #107
* Updates to docs and code
2017-03-30 19:43:34 +05:30
Jaisen Mathai f7be8f323f Use original name from EXIF instead of parsing assumed file name format. #107 (#202) 2017-03-16 23:43:47 -07:00
Jaisen Mathai 0864f58a12 Add original file name methods to text and media class #186 (#187) 2017-01-22 00:19:44 -08:00
Jaisen Mathai 4a7df2d57d Add improved copy method for large files #173 (#189) 2017-01-21 21:21:03 -08:00
Terence Eden cd5ba92b0b Support user defined folder structure (#5) (#160)
* Custom date directories
* Add config module to parse ini files
* Add method/tests to get a customizable folder path
* Cache path definition
* Initial working version of custom paths
* Add Directory values in sample config
* Refactoring location parsing logic and adding tests
* Remove unused functions
* Add documentation to parse_mask_for_location
* Remove commented out code
* Add tests for migrating old location db to new
2017-01-02 20:58:52 -08:00
Jaisen Mathai 64773655d2 Convert FileSystem.get_all_files to be a generator function 2016-12-19 21:59:58 -08:00
Jaisen Mathai a1d3cb35fc Add log module and tests 2016-11-09 20:07:44 -08:00
Jaisen Mathai 852850d2e6 gh-145 Fix configparser unit test error for python 2 and 3 2016-11-07 20:47:16 -08:00
Jaisen Mathai ea34ccbf6c gh-139 Update logic to set file access/modify time 2016-10-21 20:16:25 -07:00
Daniel Dräs f00d8b8744 gh-139 added change requests 2016-10-21 17:17:00 -07:00
Daniel Dräs 56847511b9 gh-139 Add files via upload
added hours, minutes and seconds
2016-10-21 17:16:36 -07:00
Daniel Dräs 54f3fac155 gh-139 Target Directory on NAS 2016-10-21 17:16:22 -07:00
zserg af36de091e Python 3 compartibility added 2016-08-21 17:58:13 +03:00
Aaron Barnes 63ead49bcb gh-84 Do not attempt to process an invalid file 2016-02-14 21:28:13 +13:00
zserg 91e886163e core and photo_tests fixed 2016-01-26 22:01:05 +03:00
Nathan Ostgard cfe82012b0 gh-70 Adding Sphinx docs 2016-01-09 09:44:39 -08:00
Fabrice Laporte b01b611d26 fix pyflakes warnings reported in non-test files 2016-01-02 18:34:43 +01:00
Jaisen Mathai 60c4acc1b3 gh-58 Fix all pep8 issues reported in non-test files 2016-01-01 23:25:59 -08:00
Jaisen Mathai 3a916aa589 Closes gh-21 Add all tests for FileSystem class and test photo files 2015-12-01 01:03:00 -08:00
Jaisen Mathai 0a72ef481e gh-21 Initial unit tests for FileSystem.create_directory method 2015-12-01 01:03:00 -08:00