Commit Graph
556 Commits
Author SHA1 Message Date
Michael f2cdd0a71c feat: implement new reel creation page with video, music, text, and publishing workflow. 2026-01-22 12:53:36 +01:00
Michael 973bf5186c feat: Replace Jamendo with FreeSound API for Reel music 2026-01-22 12:31:30 +01:00
Michael c6ecb195ef fix: Add empty state message for music step when Jamendo not configured 2026-01-22 12:17:50 +01:00
Michael 4903aa5555 fix: Improve Reel text generation and add FFmpeg settings - Fix generate-text to use productInfo as ProductInfo object - Add FFmpeg API configuration section in Settings page - Add /api/ffmpeg/config GET/POST routes 2026-01-22 12:07:58 +01:00
Michael c2c2fef62f fix: Configure Jamendo service at startup with demo client ID 2026-01-22 12:01:39 +01:00
Michael 3d494d4056 feat: Add Facebook Reels with music and text overlay - Add ffmpeg.ts service for Docker FFmpeg API integration - Add jamendo.ts service for royalty-free music search - Add publishReel methods to facebook.ts - Add reels API routes (music search, AI text generation, create/preview) - Add new-reel.tsx frontend with 4-step workflow - Add 'reel' type to postTypeEnum - Update navigation with Nouveau Reel link 2026-01-22 11:57:27 +01:00
Michael 7b39b34afb fix(analytics): auto-heal token status on successful sync 2026-01-21 16:19:58 +01:00
Michael c37a56b366 fix: reset token status on update and suppress metric errors 2026-01-21 16:14:08 +01:00
Michael 566782fa82 chore(debug): add verbose logging for analytics token validation 2026-01-21 16:09:21 +01:00
Michael ad22aea55e fix(analytics): handle expired tokens gracefully to prevent 500 errors 2026-01-21 16:03:30 +01:00
Michael 1f76a72100 docs: Update task.md with recent fixes 2026-01-20 14:42:26 +01:00
Michael 1bdbbfaa88 fix(server): Unify encryption logic in TokenManager to match storage service 2026-01-20 14:40:01 +01:00
Michael 54033ed6ed fix(server): Auto-expire invalid Facebook tokens on sync failure 2026-01-20 14:37:08 +01:00
Michael 8c911f0fb1 fix(analytics): Improve error handling and partial extraction 2026-01-20 14:35:45 +01:00
Michael f8db96084b feat(i18n): Translate analytics to French 2026-01-20 14:27:17 +01:00
Michael 4c06e5951d feat(db): Add automated safe migration on startup 2026-01-20 14:03:58 +01:00
Michael 60e89cb2bf fix(deploy): Remove blocking auto-migration from docker-compose 2026-01-20 14:00:51 +01:00
Michael e7e9a2fb1b fix(build): Resolve circular dependencies and type errors 2026-01-20 13:56:45 +01:00
Michael f8ddb44e38 feat(analytics): Implement Analytics Dashboard and Token Management 2026-01-20 13:49:24 +01:00
Michael b38f082d6e fix: télécharger l'image avant traitement Sharp pour les stories avec texte 2026-01-20 11:34:59 +01:00
Michael 4f8bab176a fix: génération automatique de la clé de chiffrement au lancement Docker 2026-01-20 11:10:22 +01:00
Michael 4b779838b3 Fix: Pre-process Facebook story images with sharp to correct EXIF orientation 2026-01-14 09:34:42 +01:00
Michael 509e36a05e fix: auto-rotate images based on EXIF orientation for Facebook stories 2026-01-12 13:50:28 +01:00
Michael 6c299b954a fix: auto-rotate images based on EXIF data 2026-01-07 20:51:56 +01:00
Michael 55c2bfdeb7 fix: add trust proxy for nginx reverse proxy support 2026-01-07 15:02:40 +01:00
Michael 633875e8ec feat(security): implement security fixes - Add AES-256-GCM encryption for Facebook/Instagram tokens - Add helmet for HTTP security headers - Add rate limiting (5 login attempts, 100 req/15min) - Add file upload validation (50MB max, MIME type whitelist) - Secure SQL console endpoint (disabled in production) - Enforce SESSION_SECRET in production 2026-01-07 14:57:36 +01:00
LogiFlow c3660f811b Merge pull request #107 from R0m1k3/dev
Dev
2025-12-30 13:07:40 +01:00
Michael 65b2e39af2 Resolve merge conflict in emojiRenderer.ts 2025-12-30 13:07:08 +01:00
Michael ba618bfe79 feat: Introduce EmojiRenderer service for canvas, enabling text rendering with Twemoji emojis, caching, and wrapping. 2025-12-30 13:03:11 +01:00
Michael 6b88b3ad02 fix: downgrade canvas dependency from ^3.2.0 to ^2.11.2 2025-12-23 11:30:21 +01:00
Michael 4e209ac367 feat: implement client-side emoji parsing for display and server-side emoji rendering to canvas. 2025-12-23 11:18:07 +01:00
Michael 6be8bbf628 feat: add script to reproduce emoji rendering to a PNG image file. 2025-12-04 14:27:48 +01:00
LogiFlow 6a8bbd5e2f Merge pull request #106 from R0m1k3/claude/analyze-codebase-01XdqnCRHEvL9VWeHDNGVPkA
Claude/analyze codebase 01 xdqn crh ev l9 v we hdngv pk a
2025-11-29 13:32:41 +01:00
Claude 3cc72fb80d chore: Ajouter dépendance @twemoji/api pour support emojis 2025-11-29 12:27:13 +00:00
Claude 88d5a56b01 fix: Utiliser cache local pour les emojis dans les stories Facebook
Problème: Les emojis s'affichaient comme des codes hexadécimaux (01F, 4E2, ABC)
dans les stories Facebook car le serveur ne pouvait pas télécharger les images
depuis les CDN externes (jsDelivr, Twemoji).

Solution: Système de cache local à 3 niveaux
1. **Cache mémoire**: Les emojis déjà chargés restent en RAM
2. **Cache disque**: Les emojis téléchargés sont sauvegardés dans server/assets/emoji/
3. **Téléchargement à la demande**: Si un emoji n'existe pas localement, il est téléchargé une seule fois puis réutilisé

Avantages:
- ✅ Les emojis ne sont téléchargés qu'une seule fois
- ✅ Temps de chargement ultra-rapide après le premier téléchargement
- ✅ Fonctionne même si le CDN est temporairement indisponible
- ✅ Pas besoin de pré-télécharger tous les emojis (3000+ fichiers)
- ✅ Les emojis utilisés fréquemment sont mis en cache

Les emojis devraient maintenant s'afficher correctement comme de vraies
images colorées dans les stories Facebook, pas comme des codes hexadécimaux !
2025-11-29 12:26:06 +00:00
LogiFlow 54725c7088 Merge pull request #105 from R0m1k3/claude/analyze-codebase-01XdqnCRHEvL9VWeHDNGVPkA
feat: Ajouter versions mobiles complètes pour toutes les pages
2025-11-29 12:01:44 +01:00
Claude ad97da0f50 feat: Ajouter versions mobiles complètes pour toutes les pages
Implémentation d'un système responsive robuste avec détection automatique
du type d'appareil et switch transparent entre versions desktop et mobile.

## Nouvelles fonctionnalités

### 1. Hook de détection mobile (useIsMobile)
- Détection via media query (max-width: 768px)
- Validation supplémentaire via user agent
- Support des changements dynamiques de taille d'écran
- Hook useDeviceType pour détection granulaire (mobile/tablet/desktop)

### 2. Composant ResponsiveRoute
- Switch automatique entre versions desktop/mobile
- Lazy loading des composants pour performances optimales
- Factory function createResponsiveRoute pour création facile
- Suspense avec fallback de chargement

### 3. Pages mobiles optimisées (10 pages)
**Pages créées :**
- dashboard.tsx - Tableau de bord
- new-post.tsx - Création de posts (interface tactile optimisée)
- calendar.tsx - Calendrier
- media.tsx - Bibliothèque de médias
- image-editor.tsx - Éditeur d'images
- pages.tsx - Gestion des pages sociales
- ai.tsx - Assistant IA (admin)
- settings.tsx - Paramètres (admin)
- users-admin.tsx - Gestion utilisateurs (admin)
- sql.tsx - Administration SQL (admin)

**Optimisations mobiles appliquées :**
- Layout en colonne unique (au lieu de multi-colonnes)
- Boutons tactiles : min-height 44-52px (Apple guidelines)
- Grilles adaptées (2 colonnes au lieu de 3 pour médias)
- Navigation simplifiée avec menu hamburger
- Dialogs en plein écran (95vw sur mobile)
- Tables converties en cards empilées
- Boutons d'action en colonne au lieu de ligne
- Padding et espacement optimisés pour petits écrans
- Typographie réduite (text-2xl au lieu de 3xl)
- Touch-manipulation sur zones interactives
- Bottom fixed buttons pour actions principales
- Inputs full-width avec min-height 48px

### 4. Routing automatique
- App.tsx modifié pour utiliser createResponsiveRoute
- Détection transparente du device
- Lazy loading de toutes les routes
- Aucun changement d'URL entre versions

## Performances

- Code splitting automatique (lazy loading)
- Seule la version nécessaire est chargée
- Cache des composants chargés
- Réduction de la taille du bundle initial

## Tests à effectuer

1. Rétrécir la fenêtre du navigateur < 768px
2. Utiliser les DevTools mobile
3. Tester sur un vrai appareil mobile
4. Vérifier que toutes les fonctionnalités marchent

Les utilisateurs bénéficient maintenant d'une expérience optimale sur mobile !
2025-11-29 10:59:41 +00:00
LogiFlow c21562e2b0 Merge pull request #104 from R0m1k3/claude/analyze-codebase-01XdqnCRHEvL9VWeHDNGVPkA
Analyze and understand application codebase
2025-11-29 11:38:41 +01:00
Claude 4506c2b7c4 fix: Corriger l'affichage des emojis dans les stories Facebook
Problème: Les emojis s'affichaient comme des carrés bizarres dans les
stories publiées sur Facebook (alors que la prévisualisation fonctionnait).

Cause: Le téléchargement des images emoji depuis le CDN Twemoji par défaut
échouait lors de la génération de l'image de story côté serveur.

Solution:
1. Utilisation d'un CDN plus fiable (jsDelivr) au lieu du CDN Twemoji par défaut
2. Ajout d'une logique de retry (3 tentatives avec exponential backoff)
3. Ajout d'un timeout de 10 secondes pour éviter les blocages
4. Meilleure gestion des erreurs avec logs détaillés
5. Cache des emojis téléchargés pour améliorer les performances

Les emojis devraient maintenant s'afficher correctement dans les stories
Facebook publiées depuis l'application.
2025-11-29 10:35:09 +00:00
Claude 53054ccd87 debug: Ajouter des logs détaillés pour diagnostiquer le problème d'emojis
Ajout de logs pour tracer:
- Le parsing des emojis (combien détectés, URLs générées)
- Le téléchargement des images (succès/échec, codes HTTP)
- Le rendu final (succès/erreur avec détails)

Cela permettra d'identifier si le problème vient de:
- URLs Twemoji incorrectes
- Échec de téléchargement depuis le CDN
- Problème de chargement/décodage de l'image
2025-11-29 10:27:01 +00:00
Claude 50d5c77f8d fix: Corriger l'alignement vertical des emojis dans les stories Facebook
Le problème était causé par un calcul incorrect du positionnement des emojis
lorsque textBaseline est défini à 'middle'. Le code calculait la position comme
si le baseline était en mode standard (alphabetic), ce qui décalait les emojis
verticalement.

Changement: emojiY = y - (emojiSize / 2) au lieu de y - fontSize * 0.8
Cela centre correctement l'emoji autour du point Y qui représente le centre
du texte en mode 'middle'.
2025-11-29 10:23:55 +00:00
LogiFlow 7068ea1af3 Merge pull request #103 from R0m1k3/dev
Dev
2025-11-22 14:58:19 +01:00
michaelschal f321f6f108 Saved progress at the end of the loop
Replit-Commit-Author: Agent
Replit-Commit-Session-Id: ae4037a0-2a6f-4530-9bac-79b543286bda
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: 94d7dace-4d77-42db-8565-34dfd88cd679
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/397bca8c-984f-43ff-841a-10897aeb8140/ae4037a0-2a6f-4530-9bac-79b543286bda/ltYxoh9
2025-11-22 11:14:33 +00:00
michaelschal 2c2e3822f6 Correctly display the Euro symbol with product prices
Fix an issue where the Euro symbol was misplaced when saving product images, ensuring it appears after the price consistently.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: ae4037a0-2a6f-4530-9bac-79b543286bda
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
Replit-Commit-Event-Id: e8c912ba-b86c-4da3-954c-070906550761
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/397bca8c-984f-43ff-841a-10897aeb8140/ae4037a0-2a6f-4530-9bac-79b543286bda/ltYxoh9
2025-11-22 11:13:41 +00:00
LogiFlow 2a9c29bc6b Merge pull request #102 from R0m1k3/dev
Dev
2025-11-21 15:42:10 +01:00
michaelschal a2f4e1f257 Saved progress at the end of the loop
Replit-Commit-Author: Agent
Replit-Commit-Session-Id: ae4037a0-2a6f-4530-9bac-79b543286bda
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: 892370e9-6ea6-4344-ae64-8d119f873d26
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/397bca8c-984f-43ff-841a-10897aeb8140/ae4037a0-2a6f-4530-9bac-79b543286bda/vfGybfs
2025-11-21 14:40:17 +00:00
michaelschal 82aec54759 Add full emoji rendering support for story posts
Implement backend service for converting emojis to images and frontend component for displaying them, ensuring consistent rendering across previews and published stories.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: ae4037a0-2a6f-4530-9bac-79b543286bda
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
Replit-Commit-Event-Id: 33403db6-05eb-4e2b-9d54-1aea2f9fac5b
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/397bca8c-984f-43ff-841a-10897aeb8140/ae4037a0-2a6f-4530-9bac-79b543286bda/vfGybfs
2025-11-21 14:39:57 +00:00
michaelschal f2ba034fc4 Improve story preview by displaying emojis correctly
Integrates Twemoji library into the PreviewModal component to render emojis as images, ensuring accurate visual representation of posts.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: ae4037a0-2a6f-4530-9bac-79b543286bda
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
Replit-Commit-Event-Id: f14eb440-b642-488d-9a57-924557db0bc4
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/397bca8c-984f-43ff-841a-10897aeb8140/ae4037a0-2a6f-4530-9bac-79b543286bda/JcM96XE
2025-11-21 14:34:29 +00:00
michaelschal 86ac089fb2 Add a component to display emojis correctly in previews
Create a new React component that parses and renders text with emojis as Twemoji images, ensuring consistency between preview and final output.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: ae4037a0-2a6f-4530-9bac-79b543286bda
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
Replit-Commit-Event-Id: e41fe0af-9a57-474c-998a-d509286b7711
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/397bca8c-984f-43ff-841a-10897aeb8140/ae4037a0-2a6f-4530-9bac-79b543286bda/JcM96XE
2025-11-21 14:33:58 +00:00
michaelschal e596fa298d Add emoji rendering to improve post preview accuracy
Install `twemoji` and implement `emojiUtils.ts` to parse and render emojis correctly in the post preview, ensuring consistency with actual published content.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: ae4037a0-2a6f-4530-9bac-79b543286bda
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
Replit-Commit-Event-Id: 605c7efc-6cfc-498b-bf39-42e925354f36
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/397bca8c-984f-43ff-841a-10897aeb8140/ae4037a0-2a6f-4530-9bac-79b543286bda/JcM96XE
2025-11-21 14:33:42 +00:00