دليل استخدام بندورة - أشكال ألوان/ملحقة عميل بندورة لمؤسسة أشكال ألوان

من ويكي أضِف
اذهب إلى التنقل اذهب إلى البحث

This copy is kept for backup/historical reasons, if you want to see an up-to-date/maintained copy of it, you probably want to look at

https://github.com/ashkalalwanlibrary/pandora_client_ashkalalwan

 
'''
    ashkalalwan.py - pandora_client plugin

    custom parse_path for pandora_client to parse musereen archive paths in the form

    /SRC/Year/Project/Item Title/Author/Type/MVI_123.AVI


'''
import re
import ox

def example_path(client):
    return '\t' + '/SRC/Year/Project/Item Title/Author/Type/MVI_123.AVI'

def parse_path(client, path):
    '''
        args:
            client - Client instance
            path   - path without volume prefix 
        return:
            return None if file is ignored, dict with parsed item information otherwise
    '''
    m = re.compile('^(?P<src>.+?)/(?P<year>\d{4}(-\d{4})?|NA)/(?P<project>.+?)/(?P<workname>.+?)/(?P<by>.+?)/(?P<type>.+?)/[^/]*').match(path)
    if not m:
        return None
    info = m.groupdict()
    date = '%s' % (info['year'])
    for key in info:
        if info[key]:
            info[key] = info[key].replace('_', ' ')

    source= "%s"% (info['src'])
    by = "%s" % (info['by'])
    by = by.replace(u"\u061b",";").split(";")
    i = 0
    for key in by:
        flname = key.replace(u"\u060c",",").split(",")
        if len(flname) > 1:
            key = "%s %s" % (flname[1],flname[0])
        key = re.sub(" {2,}"," ",key)
        key = re.sub("^ ","",key)
        by[i] = key
        i = i + 1

    title = "%s (%s) by %s" % (info['workname'],
        info['type']," & ".join(by))
    r = {
        'source': source,
        'by': by,
        'project': info['project'],
        'date': date,
        'taxon': info['type'],
        'title': title,
    }
    _info = ox.movie.parse_path(path)
    for key in ('extension', 'type'):
        r[key] = _info[key]
    return r