script/dlproject.py
changeset 0 2a447b707b65
equal deleted inserted replaced
-1:000000000000 0:2a447b707b65
       
     1 #!/usr/bin/env python
       
     2 
       
     3 import requests
       
     4 from lxml import etree
       
     5 import sys
       
     6 import zipfile
       
     7 import re
       
     8 import slugify
       
     9 
       
    10 
       
    11 project_id = sys.argv[1]
       
    12 
       
    13 dlurl = "http://ldt.iri.centrepompidou.fr/ldtplatform/ldt/space/ldt/project/" + project_id
       
    14 
       
    15 r = requests.get(dlurl)
       
    16 
       
    17 ldt_root = etree.fromstring(r.content)
       
    18 
       
    19 project_title = ldt_root.find("project").get("title")
       
    20 
       
    21 #create zipfile
       
    22 if project_title:
       
    23     basename = slugify.slugify(project_title)
       
    24 else:
       
    25     basename = project_id
       
    26 zf = zipfile.ZipFile(basename+".zip", "w")
       
    27 try:
       
    28     for i,media_node in enumerate(ldt_root.iterfind("medias/media")):
       
    29         iri_url = media_node.get("src")
       
    30         r_iri = requests.get(iri_url)
       
    31         iriname = "iri/%s_%d.iri" % (basename, i)
       
    32         zf.writestr(basename+"/"+iriname, r_iri.content)
       
    33         media_node.set("src", iriname)
       
    34         media_node.set("video", "")
       
    35     zf.writestr(basename+'/'+basename+".ldt", etree.tostring(ldt_root, xml_declaration=True, encoding='utf-8'))
       
    36 finally:
       
    37     zf.close()