Commit Graph

14 Commits

Author SHA1 Message Date
treamz
c65b3f5006 HEIC в /compress, конструктор «Картинки → PDF», белый фон зон загрузки и табов
HEIC:
- lib/image.js — openImage(): HEIC (HEVC) через heic-decode (libheif WASM), т.к. sharp
  декодирует только AV1-HEIF; непрозрачная альфа отбрасывается
- compress: общий encodeImage(); формат «оригинала» по содержимому (metadata), а не по MIME;
  HEIC/BMP в режиме «Оригинал» → JPEG с расширением .jpg

Картинки → PDF (/pdf):
- /pdf/fromImages переписан: любые форматы вкл. HEIC, порядок/повторы/поворот страниц,
  размер листа (по картинке/A4/A3/A5/Letter), ориентация, поля, качество, имя файла;
  повторы встраиваются один раз; нетронутые JPEG/PNG — байт-в-байт
- /pdf/thumb — серверные миниатюры для HEIC/TIFF (свой мягкий лимитер)
- UI-конструктор: сетка с превью, drag&drop, сортировка, массовый поворот, прогресс загрузки
- старая вкладка была нерабочей (поле files вместо images) и требовала загрузки PDF
- SVG не принимается (librsvg + внешние ссылки)
- фикс: потерянная обёртка panel-watermark ломала вложенность stepConfig
- фикс: pdfIcon недоступен из inline onerror

UI: белый фон (--surface-800) у зон загрузки, неактивных табов, опций и карточек
(compress, pdf, video, converter, formatter, sanitizer, parser)
2026-09-22 20:37:48 +03:00
treamz
dabc26d70f Sync prod: owner-реестр результатов, общая фабрика лимитов, crash-guard ffmpeg/gs, водяной знак PDF
Незакоммиченная работа сессии 2026-09-05 (уже на проде):
- lib/owner.js — реестр владельцев файлов-результатов, owner-check во всех download-роутах (IDOR)
- lib/limits.js — createLimiter(): skip для админа, ipKeyGenerator (фикс ERR_ERL_KEY_GEN_IPV6)
- video: обработчики 'error' у ffmpeg/ffprobe (spawn ENOENT больше не роняет сервер), таймауты
- pdf: runGhostscript/gsUnavailable, водяной знак с кириллицей (fontkit + TTF)
- снятие лимитов размера/количества для админа в pdf/video
- журнал сессии docs/sessions/2026-09-05-0231.md
2026-09-22 20:37:39 +03:00
treamz
87f8c55da0 Sync prod working changes: new tools (regex/favicon), queue/session/storage/ws libs, video/compress/pdf/redirects updates 2026-07-24 16:45:55 +03:00
treamz
7a260c040d Video: estimates update on format change (AVI ~35% larger, MKV ~5%) 2026-03-22 12:22:57 +03:00
treamz
8bec976d3c Video compress: add output format selector (MP4/AVI/MKV)
- Compress panel now has format buttons before quality
- Backend uses selected format for compress output
- Format sent in API body for compress mode
- User can compress + convert format in one step
2026-03-22 12:10:01 +03:00
treamz
dcf5717154 Video: frontend shows 1GB limit for admin, 200MB for users 2026-03-22 12:05:52 +03:00
treamz
f16a2ac32d Add Yandex Metrika to all 19 pages, clean dashboard about stats 2026-03-22 11:56:07 +03:00
treamz
06d9adf7d5 Fix duplicate badges, custom logout modal, cache bust v3
- Remove duplicate badges on md, parser, placeholder pages
- Custom logout modal (blur overlay, confirm/cancel buttons)
- Replace native confirm() with styled modal
- Cache bust shared.js?v=3
2026-03-22 10:47:51 +03:00
treamz
89345551ef Unified headers: centered with badge tags on all 12 tool pages
- All pages: centered header with animated badge (format tags)
- Badge format: colored dot + tech tags (PNG·JPG·WebP etc)
- Updated descriptions to be more detailed
- Consistent style across compress, video, http, redirects, password,
  pdf, parser, md, sanitizer, converter, formatter, placeholder
2026-03-22 10:45:38 +03:00
treamz
26f122c4fe Cache bust: shared.js?v=2 on all pages to force sidebar refresh 2026-03-22 10:43:50 +03:00
treamz
6aca7e9e47 Video: async conversion with live progress polling
- /convert now returns immediately, ffmpeg runs in background
- Client polls /progress every second for live progress %
- Progress endpoint returns downloadUrl/outputSize when done
- UI shows real-time percentage during conversion
2026-03-22 00:20:04 +03:00
treamz
7f2a6f208f Video: upload progress bar with percentage (XMLHttpRequest) 2026-03-22 00:18:10 +03:00
treamz
69ec8f4ede UI: light theme default, remove free mentions, fix scroll animation
- Default theme: light (was dark)
- Removed all бесплатно/free/навсегда mentions across all pages
- Landing: title, hero badge, hero text, CTA button, advantages, footer CTA
- Dashboard: hero text, about section, stats
- Register: subtitle
- Fixed scroll-hint animation (was bouncing infinitely, now static)
- Removed class=dark from all 18 HTML files (theme managed by JS)
2026-03-22 00:10:12 +03:00
treamz
44c85f6e44 Add video converter: convert, compress, extract audio, GIF
- New tool: /video with 4 modes (convert formats, compress, extract audio, GIF)
- Backend: ffmpeg-based processing with progress tracking
- Supports MP4, WebM, MOV, AVI, MKV input, up to 200MB
- Frontend: drag-drop upload, mode tabs, progress bar, download
- Added to sidebar, dashboard (Images category), WA_CATEGORIES
- Total tools: 14
2026-03-21 23:28:11 +03:00