MBucari
505c614210
Code Cleanup
...
Remove unused parameters
Remove unnecessary casts
Make fields readonly
Order modifiers
Format document
Sort usings
Remove unnecessary nullable directive
Apply namespace preferences (file-level)
2026-05-04 21:10:28 -06:00
Michael Bucari-Tovo
df531de255
Update Avalonia to v12
...
Avalonia 12 uses compiled bindings by default. Converted all remaining reflection bindings into compiled bindings,
Fixed binding errors
2026-05-04 21:08:26 -06:00
rmcrackan
274cbf37ca
Merge pull request #1755 from Jo-Be-Co/Conditional-output-on-format-templates
...
#1754 Conditional output on format templates
2026-04-20 21:59:02 -04:00
Jo-Be-Co
417e654799
#1754 Conditional output on format templates
2026-04-20 23:15:54 +02:00
Jo-Be-Co
fa64be7ad0
fixed typoo ;-)
2026-04-20 22:41:34 +02:00
Jo-Be-Co
e3508b2998
rebased and small fixes
2026-04-20 22:06:40 +02:00
Jo-Be-Co
30809fb38d
fixed quoting errors in format-strings
2026-04-20 21:38:45 +02:00
Jo-Be-Co
c1e9911ade
Small fixes on auto checks
2026-04-20 18:43:33 +02:00
Jo-Be-Co
962a5055b2
Fixed PR comments
2026-04-20 18:07:17 +02:00
Jo-Be-Co
dc353aa7e5
Merge branch 'master' into bifunctions
2026-04-17 08:50:53 +02:00
Jo-Be-Co
d5258b7e64
fixed merge collision
2026-04-17 08:46:52 +02:00
Jo-Be-Co
c72e5a3568
fixed matching of first property
2026-04-14 02:48:03 +02:00
Jo-Be-Co
c1b8cc894a
add mathematical symbols
2026-04-14 00:41:22 +02:00
Jo-Be-Co
56c15d3108
add checks on lists
2026-04-14 00:38:41 +02:00
Jo-Be-Co
810ea90770
introduce cmp tag as check with two operands
2026-04-14 00:30:34 +02:00
Jo-Be-Co
a010da5251
#1714 Convert the evaluation of the 'is' tag into two-parameter logic
2026-04-13 01:39:16 +02:00
Jo-Be-Co
b4f48cb54c
Extend <language> and <locale> tags to allow different outputs like ISO-codes or names in different languages
2026-04-10 09:43:11 +02:00
Jo-Be-Co
fc92c633e1
No made up format for minutes as .NET already knows how to format them.
...
User documentation needs to follow.
2026-03-26 03:12:24 +01:00
Jo-Be-Co
3c71cb10b2
some minor fixes
2026-03-26 03:10:43 +01:00
Jo-Be-Co
6b26280aa8
Get formats for properties in given form to the formatters by no unescaping them in advance.
2026-03-25 14:23:03 +01:00
Jo-Be-Co
14d8bb2205
As stated in the "Naming Templates" documentation, support custom formatters on numbers.
...
Only trim spaces on tags where they are disruptive.
2026-03-25 02:34:32 +01:00
Jo-Be-Co
6d2b0b952d
- Inspect exception on regexp timeout
...
- special tests for checks with whitespace
- Escaping allows whitespace at the edges
2026-03-24 00:18:40 +01:00
Jo-Be-Co
fb277cff81
Faulty regex patterns will throw InvalidOperationException during evaluation.
2026-03-23 15:29:32 +01:00
Jo-Be-Co
dbd5af8ab0
QS second part:
...
Made Evaluate() more resilient.
Added tests to CommonFormatters.
2026-03-22 22:22:02 +01:00
Jo-Be-Co
02b9b4fa1c
QS updates:
...
- fixed documentation
- regexp-checks running with timeout and culture-invariant matching
- changed check-building in ConditionalTagCollection to use NonNull parameters. So no warnings occure.
- add tests for <!is ...> and escaped chars
2026-03-22 19:18:55 +01:00
Jo-Be-Co
7ecd571364
Corrections to documentation and comments.
2026-03-22 13:55:28 +01:00
Jo-Be-Co
32f3e6a886
Introduces the slice() format directive
2026-03-22 13:55:27 +01:00
Jo-Be-Co
e477c29890
New tags <minutes>, <tag> and <if abridged->...<-if abridged>
2026-03-22 13:55:27 +01:00
Jo-Be-Co
a8621699c1
Add numerical checks for conditional tag.
...
- numbers are compared with their value
- strings are compared by checking the length
- Collections are evaluated on cheking their size
2026-03-22 13:55:27 +01:00
Jo-Be-Co
cd9a070784
Allow two step formatting to get checkable values and not only single stringa
...
Introduce <is-> Tag. Like <has-> but with additional check on content.
Retrieve objects instead of string for conditions
Pass undefined formats as null instead of empty strings
2026-03-22 13:55:26 +01:00
Jo-Be-Co
d8ce7cc9b0
Formats are now escapable and the evaluation of HasValue has been transformed into a configuration parameter.
2026-03-22 13:55:26 +01:00
Jo-Be-Co
1d6d4ff9ac
GetTagExpression uses Dictionary for capture names from Regexes
2026-03-22 13:55:26 +01:00
Jo-Be-Co
db3a810f47
Regular Expressions with capture names on coments
2026-03-22 13:55:26 +01:00
Jo-Be-Co
812e0c3b60
Format details on fields specified in format. Introduce by colon.
...
Use dictionaries for field access and sorting.
Added sorting to series lists.
2026-03-22 13:55:25 +01:00
Jo-Be-Co
d161bdfaeb
Introduce culture parameter for formatting.
2026-03-22 13:55:24 +01:00
Jo-Be-Co
a6aa14c7f8
Collect formatters into CommonFormatters
2026-03-22 13:55:24 +01:00
Jo-Be-Co
7dd55a2545
Refactorings
2026-03-22 13:55:24 +01:00
Michael Bucari-Tovo
3ab1edc076
Code Cleanup
...
Make fields readonly
Remove unnecessary casts
Format document
Remove unnecessary usings
Sort usings
Use file-level namespaces
Order modifiers
2026-02-05 12:48:44 -07:00
Michael Bucari-Tovo
d67692355f
Enable project-wide nullable reference types
...
Added DB migration for nullable types.
2026-02-05 12:43:05 -07:00
Michael Bucari-Tovo
ce92e79cd8
Fix SaferEnumerateFiles creating too manu open file handles ( #1565 )
...
Using the EnumerationOptions overload of EnumerateFiles() serves the same function as the previous manual implementation.
2026-01-21 10:34:59 -07:00
Michael Bucari-Tovo
647eb8b9d9
Use MemoryPool
2026-01-13 11:35:59 -07:00
Michael Bucari-Tovo
3948e25c99
Add file move progress
2026-01-12 14:34:52 -07:00
Michael Bucari-Tovo
3fa805d51f
Verify correct Serilog parameters used ( #1536 )
2026-01-07 15:10:54 -07:00
MBucari
e850465ec1
Add more null safety
...
Enable project-wide nullable on LibationUiBase and LibationAvalonia
Explicitly parallelize unit tests
2025-12-30 13:17:11 -07:00
Mbucari
a7e9479eab
Fix file utility modifying file extension using replacement character
...
The file extension should not be subject to renaming. #1483
2025-12-06 10:40:02 -07:00
MBucari
4c5fdf05f5
Add "Download split by chapters" context menu item ( #1436 )
...
All processables are now created with an instance of Configuration, and they use that instance's settings.
Added Configuration.CreateEphemeralCopy() to clone Configuration without persistence.
2025-12-01 23:23:47 -07:00
MBucari
c34b1e752e
Update dependencies
2025-12-01 20:40:34 -07:00
MBucari
fde78f4167
Update to .NET 10
...
- Update all project runtime targets
- Update all dependencies
- NOTE: Using Npgsql.EntityFrameworkCore.PostgreSQL RTM build from MyGet
- Delete unused pubxml files (they were made redundant by recent workflow changes)
- Replace Libation.sln with Libation.slnx
2025-11-20 15:56:47 -07:00
MBucari
ce2b81036f
Add license and settings overrides to LibationCli
...
- Add `LIBATION_FILES_DIR` environment variable to specify LibationFiles directory instead of appsettings.json
- OptionsBase supports overriding setting
- Added `EphemeralSettings` which are loaded from Settings.json once and can be modified with the `--override` command parameter
- Added `get-setting` command
- Prints (editable) settings and their values. Prints specified settings, or all settings if none specified
- `--listEnumValues` option will list all names for a speficied enum-type settings. If no setting names are specified, prints all enum values for all enum settings.
- Prints in a text-based table or bare with `-b` switch
- Added `get-license` command which requests a content license and prints it as a json to stdout
- Improved `liberate` command
- Added `-force` option to force liberation without validation.
- Added support to download with a license file supplied to stdin
- Improve startup performance when downloading explicit ASIN(s)
- Fix long-standing bug where cover art was not being downloading
2025-11-19 23:47:41 -07:00
Michael Bucari-Tovo
65d24ce223
Fix NRE in FileSystemTest when Books dir is invalid ( #1435 )
2025-11-17 10:54:25 -07:00