sql/update_db_0_19_to_0_20.py
author ymh <ymh.work@gmail.com>
Fri, 20 May 2011 14:52:11 +0200
changeset 123 b2950d1357b7
parent 72 47e0f0eef1cc
permissions -rw-r--r--
Added tag V00.35 for changeset 323ef8841211
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
72
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
import sys, os, os.path, time, tempfile, uuid
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
import json
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
from django.core.management import setup_environ
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
from blinkster import settings
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
import lxml.etree
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
setup_environ(settings)
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
from ldt.ldt_utils.models import Media, Content
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
fp = open(os.path.join(os.path.dirname(os.path.abspath(__file__)),"update_db_0_19_to_0_20_content.json"), "r")
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
content_list = json.load(fp)
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
for content_src in content_list:
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
    #load iri
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
    #get iri path
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
    iri_path = os.path.join(settings.MEDIA_ROOT,"media/ldt",content_src['fields']['iri'])
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
    iri_doc = lxml.etree.parse(iri_path)
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
    
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
    duration = int(iri_doc.xpath("/iri/body/medias/media[@id='video']/video/@dur")[0])
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
    src = unicode(iri_doc.xpath("/iri/body/medias/media[@id='video']/video/@src")[0])
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
    media_list = Media.objects.filter(src=src)
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
    if(len(media_list) > 0):
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
        media = media_list[0]
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
    else:
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
        media = Media(src=src)
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
    media.update_date=content_src['fields']['update_date']
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
    media.creation_date=content_src['fields']['creation_date']
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
    media.title = content_src['fields']['title']
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
    media.description = content_src['fields']['description']
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
    media.duration = duration
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
    
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
    media.save()
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
    iri_id = content_src['fields']['iri_id']
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
    content_list = Content.objects.filter(iri_id=iri_id)
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
    
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
    if(len(content_list)>0):
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
        content = content_list[0]
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
    else:
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
        content = Content(iri_id=iri_id)
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
        
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
    content.iriurl = content_src['fields']['iri']
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
    content.title = content_src['fields']['title']
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
    content.description = content_src['fields']['description']
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
    content.duration = duration
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
    content.media_obj = media
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
                      
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
    content.save()
47e0f0eef1cc update blinkster
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54