• un utilisateur poste un mark sur blogmarks
    • si besoin (par rapport à la fraicheur voulue) on ajoute dans la file d'attente (table bm_screenshots)
      • id du lien, date de demande, date de génération, url de l'image, status (ok, en cours, ko), tentatives
        • id : int 11
        • link : int 11
        • created : datetime
        • generated : datetime
        • url de l'image : varchar 255
        • status : enum
        • tentatives : tinyint
  • on lit un mark sur l'interface
    • on va chercher la widget adequat
      • si c'est une image, l'url du dernier screenshot ok pour ce lien dans la table bm_screenshots
  • on a un démon qui s'occupe de gérer la file d'attente et de générer les screenshots
    • stockage sur le disque identique à l'ancien selon date de génération
      • si on détecte que ça foire (taille inférieur à 1000 octets , 2x la même taille de suite)
        • on fais un test sur la mire pour voir si le serveur de screenshot répond normalement
          • si oui : on incrémente tentative, si tentative = X, on passe le status à "ko"
      • technologie : cron/PHP, indépendant de bm-core
  • conversion de l'ancien modèle vers le nouveau
    • bm_links attachés aux marks
    • pour chaque mark :
      • convertir le lien screenshot vers bm_screenshots
      • supprimer la colonne screenshots et les enregistrements dans bm_links
  • méthode $link->getWidget() image (loading - moins d'1 minute, 404, ok) ou flash (mp3)