oxdbarchive/oxdbarchive/cache.py

88 lines
2.2 KiB
Python

# -*- coding: utf-8 -*-
# vi:si:et:sw=4:sts=4:ts=4
import os
from os.path import abspath, exists, join, dirname, basename
import shutil
from glob import glob
import Image
from StringIO import StringIO
from scrapeit.utils import read_url
cache_root = join(dirname(abspath(__file__)), 'cache')
img_extension = "jpg"
frame_cache_root = join(cache_root, 'frame')
def loadFile(f_name):
f = open(f_name)
data = f.read()
f.close()
return data
def saveFile(f_name, data):
f = open(f_name, 'w')
f.write(data)
f.close()
def loadStaticFile(fname):
return loadFile(join(dirname(abspath(__file__)), "static", fname))
def loadFrame(afile, position):
position = basename(position).replace(':', '.')
frame = join(afile.frameFolder, '%s.%s' % (position, img_extension))
if not exists(frame):
afile.extractFrame(position)
if exists(frame):
return loadFile(frame)
return ''
def loadFlvClip(afile, position):
position = basename(position).replace(':', '.')
positions = position.split(';')
if len(positions) > 1:
position = positions[0]
outpoint = positions[1]
else:
outpoint = -1
flash = join(afile.frameFolder, '%s.%s' % (position, 'flv'))
if not exists(flash):
afile.extractFlvClip(position, outpoint)
if exists(flash):
return loadFile(flash)
return ''
def loadOggClip(afile, position):
position = basename(position).replace(':', '.')
positions = position.split(';')
if len(positions) > 1:
position = positions[0]
outpoint = positions[1]
else:
outpoint = -1
clip = join(afile.frameFolder, '%s.%s' % (position, 'ogv'))
if not exists(clip):
afile.extractOggClip(position, outpoint)
if exists(clip):
return loadFile(clip)
return ''
def loadTimeline(afile):
timeline = afile.timelineFile
if not exists(timeline):
afile.extractTimeline()
if exists(timeline):
return loadFile(timeline)
return ''
def loadStil(afile, position):
still = afile.stillFile
still.replace('.png', '%s.png' % position)
if not exists(still):
afile.extractStill(position)
if exists(still):
return loadFile(still)
return ''