From f1689b5ff38adb88267bc9706227e23b4e443336 Mon Sep 17 00:00:00 2001 From: aNNiMON Date: Thu, 2 Feb 2023 17:16:32 +0200 Subject: [PATCH] Bump gradle and dependencies versions, remove proguard task --- README.md | 21 +++++++++++-- README_ru.md | 27 +++++++++++++--- build.gradle | 39 +++--------------------- gradle/wrapper/gradle-wrapper.properties | 2 +- proguard.pro | 29 ------------------ 5 files changed, 45 insertions(+), 73 deletions(-) delete mode 100644 proguard.pro diff --git a/README.md b/README.md index d6f147c..ddb6de0 100644 --- a/README.md +++ b/README.md @@ -8,9 +8,15 @@ In the configuration file `imagetagger.json` you can declare a directory for ima ## Shortcuts - - `Left/Right` — previous/next image - - `Enter` — creates/updates .txt file with tags - - `F3` — change background color +- `Left/Right` — previous/next image +- `Enter` — creates/updates .txt file with tags +- `F3` — change background color + +## Filtration + +To filter input images you can set a filter. + +For example: `"filter": "+morning"` will show files containing `morning` tag, `"filter": "-morning"` — files not containing `morning` tag ## Actual applying tag to image @@ -25,3 +31,12 @@ for i in *.jpg; do exiftool -q -overwrite_original -@ "$i.txt" "$i"; done rem CMD for /f "delims=" %f in ('dir /b "*.jpg"') do exiftool -q -overwrite_original -@ "%~nxf.txt" "%f" ``` + +The program requires Java 11 to run. + + +## Changelog + +**1.1** +- Added an ability to set modifiers Ctrl/Alt: `Ctrl+Alt+s`, `Ctrl+Alt+S`. +- `F3` for changing background color diff --git a/README_ru.md b/README_ru.md index d04c818..0066df0 100644 --- a/README_ru.md +++ b/README_ru.md @@ -1,32 +1,49 @@ +# Image Tagger + Программа для удобного тегирования фотографий. Чтобы не назначать каждой фотографии большое количество тегов за раз, теги разбиваются на группы. Например, по времени суток. Далее, тегу назначается определённая клавиша. Например, утро - 1, день - 2, вечер - 3, ночь - 4. Запускаем программу и быстренько пробегаем по всем фотографиям, нажимая соответствующие клавиши и назначая только этот набор тегов. Затем можно определить другие теги и так же продолжить тегирование. -**Настройка** +## Настройка + Настройка осуществляется в файле `imagetagger.json`. + В `dir` указываем путь к папке с фотографиями, в `tags` — группы тегов и их кнопки, в `profile` — название для набора тегов, который хотите применять. В `sort` можно указать желаемую сортировку. По умолчанию, стоит сортировка по дате, но можно сортировать по имени файла (`"sort": "name"`) или по количеству тегов (`"sort": "tags.count"`). В `cache` можно указать максимальное количество элементов для кэширования в памяти и разрешение, до которого будут уменьшаться фотографии, если они больше заданного. Рекомендую устанавливать здесь значения не больше разрешения монитора. Либо, если на весь экран не планируете разворачивать окно программы, то можно указать ещё меньше. -**Управление** +## Управление + - `Влево/вправо` — предыдущее/следующее изображение - `Enter` — записать теги в текстовый файл - `F3` — изменить цвет фона -**Фильтрация** +## Фильтрация + Есть возможность фильтрации. Например, если в Мурманске живёт друг Петя, то для того, чтобы отметить фотографии с ним, можно задать фильтр: + ``` "filter": "+Мурманск" ``` -**Запись тегов в jpg** +## Запись тегов в jpg + Для записи тегов непосредственно в jpg, можно воспользоваться [ExifTool](https://exiftool.org/) и простой однострочной командой: + ```bash # Bash for i in *.jpg; do exiftool -q -overwrite_original -@ "$i.txt" "$i"; done ``` + ```cmd rem CMD for /f "delims=" %f in ('dir /b "*.jpg"') do exiftool -q -overwrite_original -@ "%~nxf.txt" "%f" ``` -Для работы программы нужна Java 11 или выше. \ No newline at end of file +Для работы программы нужна Java 11 или выше. + + +**История изменений** + +**1.1** + - Добавлена возможность назначать модификаторы Ctrl/Alt: `Ctrl+Alt+s`, `Ctrl+Alt+S`. + - `F3` для смены яркости фона. \ No newline at end of file diff --git a/build.gradle b/build.gradle index 2ef472e..8289488 100644 --- a/build.gradle +++ b/build.gradle @@ -1,58 +1,27 @@ -buildscript { - repositories { - mavenCentral() - } - dependencies { - classpath 'net.sf.proguard:proguard-gradle:6.2.2' - } -} - plugins { id 'java' id 'application' - id "com.github.johnrengelman.shadow" version "5.2.0" + id "com.github.johnrengelman.shadow" version "7.0.0" } group 'com.annimon' -version '1.0-SNAPSHOT' +version '1.2-SNAPSHOT' mainClassName = 'com.annimon.imagetagger.Main' -def archiveName = "${rootProject.name}" -def shadowFileName = "$archiveName-all.jar" -def proguardFileName = "$archiveName-proguard.jar" shadowJar { mergeServiceFiles() - archiveFileName = shadowFileName -} - -task proguard(dependsOn: shadowJar, type: proguard.gradle.ProGuardTask) { - configuration "$rootProject.projectDir/proguard.pro" - injars "${file(jar.destinationDirectory)}/$shadowFileName" - outjars "${file(jar.destinationDirectory)}/$proguardFileName" - - // Automatically handle the Java version of this build. - if (System.getProperty('java.version').startsWith('1.')) { - // Before Java 9, the runtime classes were packaged in a single jar file. - libraryjars "${System.getProperty('java.home')}/lib/rt.jar" - } else { - // As of Java 9, the runtime classes are packaged in modular jmod files. - def jmods = files { file("${System.getProperty('java.home')}/jmods").listFiles() } - jmods.each { - libraryjars it, jarfilter: '!**.jar', filter: '!module-info.class' - } - } } repositories { mavenCentral() } -ext.jacksonVersion = '2.12.0' +ext.jacksonVersion = '2.14.2' dependencies { implementation "com.fasterxml.jackson.core:jackson-core:$jacksonVersion" implementation "com.fasterxml.jackson.core:jackson-annotations:$jacksonVersion" implementation "com.fasterxml.jackson.core:jackson-databind:$jacksonVersion" - implementation 'com.github.ben-manes.caffeine:caffeine:2.8.8' + implementation 'com.github.ben-manes.caffeine:caffeine:3.1.2' testImplementation 'junit:junit:4.13.1' } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 4d9ca16..070cb70 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/proguard.pro b/proguard.pro deleted file mode 100644 index a5bf165..0000000 --- a/proguard.pro +++ /dev/null @@ -1,29 +0,0 @@ --keepattributes Signature,InnerClasses --keepattributes *Annotation* - --keep class com.annimon.imagetagger.beans.** { *; } --keep class com.github.benmanes.caffeine.cache.** { *; } - -# Jackson 2 --keep class com.fasterxml.jackson.databind.ObjectMapper { - public protected ; -} --dontwarn com.fasterxml.jackson.databind.** --keepclassmembers class * { - @com.fasterxml.jackson.annotation.* *; -} - -# Java --keepclasseswithmembers public class * { - public static void main(java.lang.String[]); -} --keepclassmembers enum * { - public static **[] values(); - public static ** valueOf(java.lang.String); -} --keep class * extends javax.swing.plaf.ComponentUI { - public static javax.swing.plaf.ComponentUI createUI(javax.swing.JComponent); -} --keepclasseswithmembers,includedescriptorclasses,allowshrinking class * { - native ; -}