* move truncate function to separate file to reuse it
* truncate image descriptions
* show image description limit in UI
* correctly treat null
Co-authored-by: nullobsi <me@nullob.si>
* make truncate Unicode-aware
The strings that truncate returns should now be valid Unicode.
PostgreSQL also counts Unicode Code Points instead of bytes so this
should be correct.
* move truncate to internal, validate in API
Truncating could also be done in src/services/drive/add-file.ts or
src/services/drive/upload-from-url.ts but those would also affect
local images. But local images should result in a hard error if the
image comment is too long.
* avoid overwriting
Co-authored-by: nullobsi <me@nullob.si>