FilterRename app
FilterRename is a bulk renaming tool, based on the concept of filters as small operations to perform over sections of the full filename logically organized in targets, like name, extension, path, full_path. These filters can also be organized in macros and recall some specific metadata in mp3, jpg, and pdf files to create the final filename.
- Name:FilterRename
- Language:Ruby
- Type:CLI Application
- License:GPL v.3
- Platform:Linux
- Requirements:Ruby
- First release:1.0.0 (March 16, 2020)
- Current release:1.1.0 (September 23, 2022)
- Links:
Main Features
- Represents a filename as targets to operate on, allowing to focus only on the parts to rename;
- New targets can be defined at runtime or depending from the filetype;
- Support a preview mode and a dry-run mode;
- Support for mp3 tags in read/write mode;
- Support for pdf metadata in read mode;
- Support for image metadata in read mode;
- Filters can operate on the full text, single words (defined by the word_separator config), and numbers;
- When a file exists it shows the different hash digests to know whether or not they are identical;
- Can define group of filters as macros in the config file;
- Can define a dictionary of words to replace.
Installation
From Rubygems
$ gem install filter_rename
Changelog
Version 1.1.0 (September 23, 2022)
- Fixed the error on the cached file hash calculation in dry_run mode;
- Fixed the hash visualization of the destination file in the file_hash method;
- Improved the tag selection and displaying in the changed_tags message;
- Fixed the 'track' tag attribution;
- Added the JoinNumbers filter;
- Fixed the JoinWords filter;
- Added Rspec tests for some FilterWord filters;
- Added CopyOccurrenceTo, DeleteOccurrence, MoveOccurrenceTo, ReplaceOccurrence filters;
- Fixed AppendNumberTo, CopyNumberTo, MoveNumberTo filters;
- Added the FilterOccurrence among the basic classes;
- Refactored the IndexedParams module and the FilterWord and FilterNumber classes, moving
- Added the PrependWordFrom filter;
- Refactored the filtered_number methods removing obsolete params, fixed AppendWordTo, reimplemented SwapNumber filter;
- Added the number_separator filter config variable;
- Added FilterBase#current_target, refactored and moved into IndexedParams the string_to_loop and self_targeted? methods, extended the changes from FilterWord to FilterNumber class refactoring the loop_number method too;
- Added the get_numbers method to the String class;
- Refactored the FilterWord filters to integrate the last FilterWord changes;
- Added the return_filtered_word and string_to_loop methods to FilterWord class to alter the returned string and the target string to modify;
- Refactored the IndexedPArams to provide params and parames_expanded accessors to loops, FilterWord updated;
- Added the ability to refer separated index values for Word and Number based filters;
- Added LowercaseWord filter;
- Added UppercaseWord filter;
- Added the file hash display underneath the file exists error message;
- Fixed the message to show in the apply operation when the filename exists;
- Added the CapitalizeWord filter;
- Added the genre_s tag;
- Fixed the File not found error for file starting with white space char;
- Fixed the append_issue macro;
- Improved the filtered_regexp parameter, the separated matches instead of a single string;
- Improved the camels_to_words macro;
- Fixed the backreference for capturing groups;
- Added AddNumberFrom filter;
- Created the FilterRegexp class for filters based on Regular Expressions and refactored the filters involved;
- Fixed the nil string assignment error;
- Updated to indexed_params method in SwapWords and WrapWords filters.
Version 1.0.0 (March 16, 2020)
- First public release
Leave a Comment