K1ndWha1e and Claude Opus 5.5
4c9184aeb2
Чтение тэгов без обложки: с диска только нужные текстовые фреймы, у APIC — лишь признак
...
read_book_tags читал тэг целиком вместе с картинкой (у книг с обложкой 3 МБ — 3 МБ на файл
при каждом открытии книги). Теперь фреймы читаются по одному, обложка и ненужные фреймы
пропускаются; тэг с unsynchronisation (v2.3) — целиком, как раньше. Тест: на тэге с обложкой
3 МБ выделяется меньше 1 МБ, теги и has_cover те же.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 17:26:44 +03:00
K1ndWha1e and Claude Opus 5.5
dc13ae43b8
Меньше памяти на тэгах с обложкой: фрейм заполняется прямо в массиве, тэг собирается в буфер нужного размера, «только тэг» пишется без копии, буферы — free()
...
parsed.frames << frame клонировал срезы буфера (raw, apic) — у обложки 3 МБ это +5,7 МБ на файл.
Замер на тэге 2,9 МБ: чтение 8,6 → 2,9 МБ выделений, запись 11,6 → 5,8 МБ.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 11:26:29 +03:00
K1ndWha1e and Claude Opus 5.5
71b838e7d4
Frame снова @[heap]: баг кодогенерации V master (heap-структура из generic-функции в []T) исправлен в 03e12f3
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-10 19:43:22 +03:00
K1ndWha1e and Claude Opus 5.5
a76bbe18f1
*чтение: пустые или испорченные («�») название, альбом и автор в ID3v2 берутся из ID3v1 (старые файлы хранят там cp1251)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-09 21:58:08 +03:00
K1ndWha1e and Claude Opus 5.5
a3e244205a
*повторная запись: если новый тэг помещается на место старого — переписывается только он, аудио не трогается; запас в тэге 4 КБ
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-09 21:07:45 +03:00
K1ndWha1e and Claude Opus 5.5
b037345b7b
*write_book_tags_report: переписан ли файл на месте и почему нет (запасная замена новым файлом больше не молчит)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-09 20:17:31 +03:00
K1ndWha1e and Claude Opus 5.5
a6b4f0fbcf
*перезапись тэгов на месте: файл сохраняет inode (Audiobookshelf опознаёт файлы по inode, замена через mv путала его библиотеку)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-09 00:10:40 +03:00
K1ndWha1e and Claude Opus 5.5
1e686ba304
*перезапись тэгов сохраняет владельца и права исходного файла (файлы библиотеки на NAS)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-08 20:50:49 +03:00
K1ndWha1e and Claude Opus 5.5
d85b105d1c
*тестовые mp3 в репозитории, чтобы тесты запускались из клона
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-08 15:21:34 +03:00
K1ndWha1e and Claude Opus 5.5
8a03ad3cd4
*добавлен API для аудиокниг (metadata/audiobook.v): TCOM, TIT1, COMM, TXXX, APIC, запись в файл без ID3v2, cp1251, потоковая перезапись
...
*публичные функции перехватывают панику (recover) и возвращают ошибку, проверка размера тэга
*совместимость с V master: iconv больше не обрезает NUL, у Frame убран @[heap] (баг кодогенерации)
*тесты test/audiobook_test.v
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-08 15:17:53 +03:00
K1ndWha1e
078e68efa8
*исправление ошибок: двой перезаписи, исправление записи с BOM, добавлена проверка в insert_tags_into_audio
2026-10-07 23:24:01 +03:00
K1ndWha1e
ffa8d80875
*всё работает
2026-10-07 23:03:27 +03:00
K1ndWha1e
aa04fd4df0
*исправления по считыванию данных без BOM
...
*добавлены работающие тесты
2026-09-29 23:26:34 +03:00
K1ndWha1e
d03f6214aa
*небольшие исправления
2026-09-26 00:23:48 +03:00
K1ndWha1e
c06ef69c67
*исправлена запись новых тегов и apic
2026-09-26 00:13:48 +03:00
K1ndWha1e
abab08f133
*многое сделано, не помню что
2026-09-25 21:57:30 +03:00
K1ndWha1e
fdc72ae653
*добавлено получение закодированного тэга
2026-07-18 22:14:05 +03:00
K1ndWha1e
4196efa9a6
*небольшие оптимизации
...
*добавлен метод encode_frame
*подправлена структура Frame
2026-07-17 23:55:22 +03:00
K1ndWha1e
18ac12f3b5
*небольшой рефакторинг
...
*добавлен метод encode_size для Frame
2026-07-12 00:26:27 +03:00
K1ndWha1e
81034325a1
первый коммит
2026-07-11 20:46:19 +03:00