src/hdalab/services.py
changeset 492 19220d52bce7
parent 462 df8b3b49e81c
child 618 cb8b833ad122
--- a/src/hdalab/services.py	Fri Mar 06 18:12:15 2015 +0100
+++ b/src/hdalab/services.py	Sun Mar 08 14:53:52 2015 +0100
@@ -5,12 +5,20 @@
 @author: ymh
 '''
 import logging
+import os
 
+from django.conf import settings
+from django.core.urlresolvers import reverse
 from django.db import transaction
 
 from hdalab.models.renkan import HdalabRenkanStateTransition
 
 
+from subprocess import check_call
+
+
+
+
 logger = logging.getLogger(__name__)
 
 @transaction.atomic
@@ -22,3 +30,42 @@
         hda_renkan.state = state
         hda_renkan.save()
         
+
+def renkan_capture_preview(hdalab_renkan):
+    #get last state date or last modification date
+    #states are ordered by ts
+    folder_date = hdalab_renkan.renkan.modification_date
+    states = hdalab_renkan.states
+    state = None
+    if states.count() > 0:
+        state = states.all()[0]
+    if state:
+        folder_date =  state.ts
+
+    rel_export_path_dir = "thumbnails/renkan/%04d/%02d/%02d" % (folder_date.year, folder_date.month, folder_date.day)
+    export_path_dir = os.path.join(settings.MEDIA_ROOT,rel_export_path_dir)
+    export_filename = "%s.png" % hdalab_renkan.renkan.rk_id
+    
+    export_path = os.path.join(export_path_dir, export_filename)
+    rel_export_path = os.path.join(rel_export_path_dir, export_filename)
+    
+    if not os.path.exists(export_path_dir):
+        os.makedirs(export_path_dir)
+        
+    preview_dim = getattr(settings, 'RENKAN_PREVIEW_DIM', (500,500))
+    preview_wait = getattr(settings, 'RENKAN_PREVIEW_WAIT', 5000)
+
+    preview_args = [
+        getattr(settings,'RENKAN_PREVIEW_PHANTOMJS_PATH','phantomjs'),
+        os.path.join(os.path.dirname(os.path.abspath(__file__)),'scripts/capture-phantomjs.js'),
+        "%s%shdalab%s?rk_id=%s" % (settings.WEB_URL, settings.BASE_URL, reverse('renkan_full'),hdalab_renkan.renkan.rk_id),
+        export_path,
+        "--width=%d" % preview_dim[0],
+        "--height=%d" % preview_dim[1],
+        "--wait=%d" % preview_wait
+    ]
+    check_call(preview_args)
+    
+    hdalab_renkan.renkan.image = rel_export_path
+    hdalab_renkan.renkan.save()
+