16 个版本
0.2.5 | 2023年12月4日 |
---|---|
0.2.4 | 2023年9月22日 |
0.1.0 | 2023年9月6日 |
#824 在 命令行工具
每月168 次下载
95KB
2K SLoC
Clineup
Clineup(发音为"clean up")是"CLI"(命令行界面)和"clean up"的结合。
它是一个基于 Rust 的 CLI 工具,旨在提供实用的可编程媒体整理。
受 Elodie 启发,但有一些不同和额外的功能。
- 多个反向地理编码 API
- 多个变量回退
- 能够复制/移动或创建符号链接
- 用 Rust 编写
安装
cargo(推荐)
cargo install clineup
从发布版下载二进制文件
您可以从 发布页面 下载您平台预构建的二进制文件。
例如,对于 Linux,您可以使用以下命令
curl -L https://github.com/antscloud/clineup/releases/download/<clineup-version>/clineup-<clineup-version>-linux-x86_64.tar.gz | tar -xz -C <where-you-want-to-install-it>
不要忘记将其添加到您的 PATH 中,这样您就可以在任何地方使用它
docker
docker run -v <ABSOLUTE-PATH-OF-YOUR-SOURCE-FOLDER>:/source -v <ABSOLUTE-PATH-OF-YOUR-DESTINATION-FOLDER>:/destination antscloud/clineup --source /source --destination /destination [YOUR-OPTIONS-HERE]
用法
Clineup
Utility tool for organizing media
USAGE:
clineup [FLAGS] [OPTIONS] --destination <DESTINATION> --source <SOURCE>
FLAGS:
--drop-duplicates
Drop duplicates depending on the strategy
- Copy : Do not copy the duplicates
- Symlink : Do not symlink the duplicates
- Move : Do not move the duplicates
--dry-run
Performs a dry run without actually moving or renaming any files
--dry-run-number-of-files
Specifies the number of files to be processed by the dry run
--folder-format
Specifies the folder format to create
--gps-optimization
Round the lat ang long to 1 decimal places. It becomes less accurate (about 1 kilometer) but can save a lot
of API calls.
-h, --help
Prints help information
--recursive
Performs the organization process recursively on subdirectories
-V, --version
Prints version information
-v
Sets the log level to increase verbosity
OPTIONS:
--destination <DESTINATION>
Specifies the destination directory where the organized photos will be stored
--exclude-extension <EXTENSION>
Excludes photos with the specified file extensions
--exclude-regex <EXCLUDE-REGEX>
The regex is matched against the full path of the file, including the parent folders.
For example, to exclude all files containing 'IMG', use the regex '.*IMG.*
--extension <EXTENSION>
Filters photos based on file extensions
--filename-format <filename-format>
Specifies the filename format to create
--include-regex <INCLUDE-REGEX>
The regex is matched against the full path of the file, including the parent folders.
For example, to include all files containing 'IMG', use the regex '.*IMG.*
--nominatim-email <nominatim-email>
Email to use for nominatim API. This is mandatory following the nominatim usage policy
--reverse-geocoding <reverse-geocoding>
Reverse geocoding provider to use [possible values: nominatim]
--size-greater <SIZE>
Filters photos greater than the specified size. Use 'KB', 'MB', 'GB', 'TB' or 'PB'
--size-lower <SIZE>
Filters photos lower than the specified size. Use 'KB', 'MB', 'GB', 'TB' or 'PB'
--source <SOURCE>
Specifies the source directory or file to be organized
--strategy <strategy>
Specifies the organization strategy [default: copy] [possible values: copy, symlink, move]
标签
标签 | 含义 |
---|---|
%year | 修改日期的年份 |
%month | 修改日期的月份 |
%day | 修改日期的日期 |
%width | 媒体宽度 |
%height | 媒体高度 |
%camera_model | 相机型号 |
%camera_brand | 相机品牌 |
%country | 照片拍摄的国家 |
%state | 照片拍摄所在的州 |
%county | 照片拍摄所在的县 |
%municipality | 照片拍摄所在的城市 |
%city | 照片拍摄所在的城市 |
%original_folder | 媒体所在的原始文件夹 |
%original_filename | 媒体的原始文件名 |
%ctimeyear | 媒体创建日期的年份 |
%ctimemonth | 媒体创建日期的月份 |
%ctimeday | 媒体创建日期的日期 |
%mtimeyear | 媒体修改日期的年份 |
%mtimemonth | 媒体修改日期的月份 |
%mtimeday | 媒体修改日期的日期 |
语法
要遵守的语法如下
-
直接占位符:您可以直接使用 % 符号后跟标签名称,如 %year 或 %month。
-
转义占位符:如果您想转义标签并防止意外解释,可以使用大括号{}。例如,{%year}_{%month}将被视为独立的占位符%year和%month。
-
后备占位符:您可以使用管道|符号为占位符定义后备值。如果主标签未找到,库将自动尝试下一个后备标签,依此类推。如果所有后备标签都失败,库将使用指定的后备字符串。例如,{%year|%camera_brand|Unknown year}将尝试%year,然后%camera_brand,如果两者都失败,它将使用后备字符串"Unknown year"。
示例
{%year}/{%month|Custom month}/%camera_brand/{%city|Unknown city}
可以替换为以下方式
2023/08/SomeBrand/Paris
2023/08/SomeBrand/Unknown city
2023/08/Unknown camera brand/Unknown city
Unknown year/Custom month/Unknown camera brand/Unknown city
- 等等
待办事项
- 实现其他逆向地理编码服务
- 添加事件占位符
- 文件排除或包含模式
- 添加测试
- 添加TOML配置文件
依赖关系
~10–24MB
~374K SLoC