Exemplo n.º 1
0
def generate_text_object(obj, db, q, config):
    philo_id = list(obj.philo_id)
    while philo_id[-1] == 0:
        philo_id.pop()
    text_object = {"query": dict([i for i in q]), "philo_id": ' '.join([str(i) for i in philo_id])}
    text_object['prev'] = ' '.join(obj.prev.split()[:7][:philo_slices[obj.philo_type]])
    text_object['next'] = ' '.join(obj.next.split()[:7][:philo_slices[obj.philo_type]])
    metadata_fields = {}
    for metadata in db.locals['metadata_fields']:
        if db.locals['metadata_types'][metadata] == "doc":
            metadata_fields[metadata] = obj[metadata]
    text_object['metadata_fields'] = metadata_fields
    citation_hrefs = citation_links(db, config, obj)
    citation = biblio_citation(obj, citation_hrefs)
    text_object['citation'] = citation
    text = get_text_obj(obj, config, q, db.locals['word_regex'])
    text_object['text'] = text
    return text_object
Exemplo n.º 2
0
def generate_text_object(obj, db, q, config, note=False):
    philo_id = list(obj.philo_id)
    while philo_id[-1] == 0:
        philo_id.pop()
    text_object = {"query": dict([i for i in q]), "philo_id": ' '.join([str(i) for i in philo_id])}
    text_object['prev'] = neighboring_object_id(db, obj.prev)
    text_object['next'] = neighboring_object_id(db, obj.next)
    metadata_fields = {}
    for metadata in db.locals['metadata_fields']:
        if db.locals['metadata_types'][metadata] == "doc":
            metadata_fields[metadata] = obj[metadata]
    text_object['metadata_fields'] = metadata_fields
    citation_hrefs = citation_links(db, config, obj)
    citation = biblio_citation(obj, citation_hrefs)
    text_object['citation'] = citation
    text, imgs = get_text_obj(obj, config, q, db.locals['word_regex'], note=note)
    text_object['text'] = text
    text_object['imgs'] = imgs
    return text_object
Exemplo n.º 3
0
def generate_toc_object(obj, db, q, config):
    """This function fetches all philo_ids for div elements within a doc"""
    toms_object = nav_query(obj, db)
    text_hierarchy = []
    for i in toms_object:
        if i['philo_name'] == '__philo_virtual' and i["philo_type"] != "div1":
            continue
        elif i['word_count'] == 0:
            continue
        else:
            philo_id = i['philo_id']
            philo_type = i['philo_type']
            display_name = ""
            if i['philo_name'] == "front":
                display_name = "Front Matter"
            elif i['philo_name'] == "note":
                continue
            else:
                display_name = i['head']
                if display_name:
                    display_name = display_name.strip()
                if not display_name:
                    if i["type"] and i["n"]:
                        display_name = i['type'] + " " + i["n"]
                    else:
                        display_name = i["head"] or i['type'] or i['philo_name'] or i['philo_type']
                        if display_name == "__philo_virtual":
                            display_name = i['philo_type']
            display_name = display_name[0].upper() + display_name[1:]
            link = f.make_absolute_object_link(config, philo_id.split()[:philo_slices[philo_type]])
            philo_id = ' '.join(philo_id.split()[:philo_slices[philo_type]])
            toc_element = {"philo_id": philo_id, "philo_type": philo_type, "label": display_name, "href": link}
            text_hierarchy.append(toc_element)
    metadata_fields = {}
    for metadata in db.locals['metadata_fields']:
        if db.locals['metadata_types'][metadata] == "doc":
            metadata_fields[metadata] = obj[metadata]
    citation_hrefs = citation_links(db, config, obj)
    citation = biblio_citation(obj, citation_hrefs)
    toc_object = {"query": dict([i for i in q]), "philo_id": obj.philo_id, "toc": text_hierarchy, "metadata_fields": metadata_fields,
                  "citation": citation}
    return toc_object