Exemplo n.º 1
0
def get_top_players():
    res = app.get_cache("top_players")
    if res == None:
        top = User.get_top_players()
        res = "".join("<li>%s [%s]</li>" % p for p in top)
        app.set_cache("top_players", res)
    return res
Exemplo n.º 2
0
def article_json(id=None):
    data = karp_query('query', {'q': "extended||and|url|equals|%s" % (id)})
    if data['hits']['total'] == 1:
        page = jsonify(data['hits']['hits'][0]['_source'])
        return set_cache(page)
    data = karp_query('query',
                      {'q': "extended||and|id.search|equals|%s" % (id)})
    if data['hits']['total'] == 1:
        page = jsonify(data['hits']['hits'][0]['_source'])
        return set_cache(page)
Exemplo n.º 3
0
def author(result=None):
    set_language_switch_link("articleauthor_index")
    rule = request.url_rule
    lang = 'sv' if 'sv' in rule.rule else 'en'
    # Try to get authorinfo in correct language (with Swedish as fallback)
    firstname = result.split(", ")[-1].strip()
    lastname = result.split(", ")[0].strip()
    authorinfo = authors_dict.get(firstname + " " + lastname)
    if authorinfo:
        authorinfo = [
            authorinfo.get(lang, authorinfo.get("sv")),
            [
                helpers.markdown_html(i)
                for i in authorinfo.get("publications", [])
            ]
        ]
    query = "extended||and|artikel_forfattare_fornamn.lowerbucket|equals|%s||and|artikel_forfattare_efternamn.lowerbucket|equals|%s" % (
        firstname.encode("UTF-8"), lastname.encode("UTF-8"))
    page = computeviews.searchresult(result,
                                     name='articleauthor',
                                     query=query,
                                     imagefolder='authors',
                                     authorinfo=authorinfo,
                                     show_lang_switch=False)
    return set_cache(page)
Exemplo n.º 4
0
def keyword_index():
    infotext = helpers.get_infotext("keyword", request.url_rule.rule)
    set_language_switch_link("keyword_index")
    lang = 'sv' if 'sv' in request.url_rule.rule else 'en'
    pagename = 'keyword'
    art = check_cache(pagename, lang=lang)
    if art is not None:
        return art

    if lang == "en":
        reference_list = []
        queryfield = "nyckelord_eng"
    else:
        # Fix list with references to be inserted in results
        reference_list = static_info.keywords_reference_list
        [ref.append("reference") for ref in reference_list]
        queryfield = "nyckelord"

    art = computeviews.bucketcall(queryfield=queryfield,
                                  name='keyword',
                                  title='Keywords',
                                  infotext=infotext,
                                  alphabetical=True,
                                  insert_entries=reference_list,
                                  description=helpers.get_shorttext(infotext))
    return set_cache(art,
                     name=pagename,
                     lang=lang,
                     no_hits=app.config['CACHE_HIT_LIMIT'])
Exemplo n.º 5
0
def activity(result=None):
    page = computeviews.searchresult(result,
                                     name='activity',
                                     searchfield='verksamhetstext',
                                     imagefolder='activities',
                                     title=result)
    return set_cache(page)
Exemplo n.º 6
0
def award(result=None):
    page = computeviews.searchresult(result,
                                     name='award',
                                     searchfield='prisbeskrivning',
                                     imagefolder='award',
                                     searchtype='equals')
    return set_cache(page)
Exemplo n.º 7
0
def institution_index():
    # There are no links to this page, but might be wanted later on
    # Exists only to support institution/<result> below
    set_language_switch_link("institution_index")
    page = computeviews.bucketcall(queryfield='prisbeskrivning',
                                   name='award',
                                   title='Institution',
                                   infotext='')
    return set_cache(page)
Exemplo n.º 8
0
def empty_article():
    set_language_switch_link("article_empty")
    rule = request.url_rule
    if 'sv' in rule.rule:
        content = u"""Den här kvinnan saknas än så länge."""
    else:
        content = u"""This entry does not exist yet."""
    page = render_template('page.html', content=content)
    return set_cache(page)
Exemplo n.º 9
0
def start():
    page = check_cache("start")
    if page is not None:
        return page
    infotext = helpers.get_infotext("start", request.url_rule.rule)
    set_language_switch_link("index")
    page = render_template('start.html',
                           title="Svenskt kvinnobiografiskt lexikon",
                           infotext=infotext,
                           description=helpers.get_shorttext(infotext))
    return set_cache(page)
Exemplo n.º 10
0
def award_index():
    # There are no links to this page, but might be wanted later on
    # Exists only to support award/<result> below
    set_language_switch_link("award_index")
    pagename = 'award'
    art = check_cache(pagename)
    if art is not None:
        return art
    art = computeviews.bucketcall(queryfield='prisbeskrivning',
                                  name='award',
                                  title='Award',
                                  infotext='')
    return set_cache(art, name=pagename, no_hits=app.config['CACHE_HIT_LIMIT'])
Exemplo n.º 11
0
def more_women():
    page = check_cache("morewoman")
    if page is not None:
        return page
    infotext = helpers.get_infotext("more-women", request.url_rule.rule)
    set_language_switch_link("more-women")
    page = render_template('more_women.html',
                           women=static_info.more_women,
                           infotext=infotext,
                           linked_from=request.args.get('linked_from'),
                           title=gettext("More women"))
    return set_cache(page,
                     name="morewoman",
                     no_hits=len(static_info.more_women))
Exemplo n.º 12
0
def contact():
    set_language_switch_link("contact")

    # Set suggestion checkbox
    if request.args.get('suggest') == 'true':
        mode = "suggestion"
    else:
        mode = "other"
    page = render_template("contact.html",
                           title=gettext("Contact"),
                           headline=gettext("Contact SKBL"),
                           form_data={},
                           mode=mode)
    return set_cache(page)
Exemplo n.º 13
0
def search():
    set_language_switch_link("search")
    search = request.args.get('q', '').encode('utf-8')
    pagename = 'search' + urllib.quote(search)

    page = check_cache(pagename)
    if page is not None:
        return page

    advanced_search_text = ''
    if search:
        show = ','.join(
            ['name', 'url', 'undertitel', 'undertitel_eng', 'lifespan'])
        karp_q = {
            'highlight': True,
            'size': app.config['SEARCH_RESULT_SIZE'],
            'show': show
        }
        if '*' in search:
            search = re.sub('(?<!\.)\*', '.*', search)
            karp_q['q'] = "extended||and|anything|regexp|%s" % search
        else:
            karp_q['q'] = "extended||and|anything|contains|%s" % search

        data = karp_query('minientry', karp_q, mode='skbl')
        with app.open_resource("static/pages/advanced-search/%s.html" %
                               (g.language)) as f:
            advanced_search_text = f.read()
        karp_url = "https://spraakbanken.gu.se/karp/#?mode=skbl&advanced=false&hpp=25&extended=and%7Cnamn%7Cequals%7C&searchTab=simple&page=1&search=simple%7C%7C" + search.decode(
            "utf-8")
    else:
        data = {"hits": {"total": 0, "hits": []}}
        karp_url = ""
        search = u'\u200b'.encode('utf8')

    t = render_template(
        'list.html',
        headline="",
        subheadline=gettext('Hits for "%s"') % search.decode("UTF-8"),
        hits_name=data["hits"],
        hits=data["hits"],
        advanced_search_text=advanced_search_text.decode("UTF-8"),
        search=search.decode("UTF-8"),
        alphabetic=True,
        karp_url=karp_url,
        more=data["hits"]["total"] > app.config["SEARCH_RESULT_SIZE"],
        show_lang_switch=False)

    return set_cache(t, name=pagename, no_hits=data["hits"]["total"])
Exemplo n.º 14
0
def article_index(search=None):
    # search is only used by links in article text

    set_language_switch_link("article_index")
    search = search or request.args.get('search')
    if search is not None:
        search = search.encode("UTF-8")
        data, id = find_link(search)
        if id:
            # only one hit is found, redirect to that page
            page = redirect(url_for('article_' + g.language, id=id))
            return set_cache(page)
        elif data["hits"]["total"] > 1:
            # more than one hit is found, redirect to a listing
            page = redirect(url_for('search_' + g.language, q=search))
            return set_cache(page)
        else:
            # no hits are found redirect to a 'not found' page
            return render_template(
                'page.html',
                content=gettext('Contents could not be found!')), 404

    art = computeviews.compute_article()
    return set_cache(art)
Exemplo n.º 15
0
def article(id=None):
    rule = request.url_rule
    if 'sv' in rule.rule:
        lang = "sv"
    else:
        lang = "en"
    pagename = 'article_' + id
    page = check_cache(pagename, lang=lang)
    if page is not None:
        return page
    data = karp_query('query', {'q': "extended||and|url|equals|%s" % (id)})
    if data['hits']['total'] == 0:
        data = karp_query('query',
                          {'q': "extended||and|id.search|equals|%s" % (id)})
    set_language_switch_link("article_index", id)
    page = show_article(data, lang)
    return set_cache(page, name=pagename, lang=lang, no_hits=1)
Exemplo n.º 16
0
def keyword(result=None):
    lang = 'sv' if 'sv' in request.url_rule.rule else 'en'
    if lang == "en":
        page = computeviews.searchresult(result,
                                         'keyword',
                                         'nyckelord_eng',
                                         'keywords',
                                         lang=lang,
                                         show_lang_switch=False)
    else:
        page = computeviews.searchresult(result,
                                         'keyword',
                                         'nyckelord',
                                         'keywords',
                                         lang=lang,
                                         show_lang_switch=False)
    # the page is memcached by searchrelust
    return set_cache(page)
Exemplo n.º 17
0
def organisation(result=None):
    title = request.args.get('title')

    lang = 'sv' if 'sv' in request.url_rule.rule else 'en'
    if lang == "en":
        page = computeviews.searchresult(result,
                                         'organisation',
                                         'id',
                                         'organisations',
                                         title=title,
                                         lang=lang,
                                         show_lang_switch=False)
    else:
        page = computeviews.searchresult(result,
                                         'organisation',
                                         'id',
                                         'organisations',
                                         title=title,
                                         lang=lang,
                                         show_lang_switch=False)
    return set_cache(page)
Exemplo n.º 18
0
def place(place=None):
    pagename = urllib.quote('place_' + place.encode('utf8'))
    art = check_cache(pagename)
    if art is not None:
        return art
    lat = request.args.get('lat')
    lon = request.args.get('lon')
    set_language_switch_link("place_index", place)
    hits = karp_query('query', {
        'q':
        "extended||and|plats.searchraw|equals|%s" % (place.encode('utf-8'))
    })
    no_hits = hits['hits']['total']
    if no_hits > 0:
        page = render_template('placelist.html',
                               title=place,
                               lat=lat,
                               lon=lon,
                               headline=place,
                               hits=hits["hits"])
    else:
        page = render_template('page.html',
                               content=gettext('Contents could not be found!'))
    return set_cache(page, name=pagename, no_hits=no_hits)
Exemplo n.º 19
0
def submit_contact_form():
    return set_cache(computeviews.compute_contact_form())
Exemplo n.º 20
0
def biographies():
    page = serve_static_page("biographies", gettext("Older biographies"))
    return set_cache(page)
Exemplo n.º 21
0
def organisation_index():
    return set_cache(computeviews.compute_organisation())
Exemplo n.º 22
0
def institution(result=None):
    page = computeviews.searchresult(result,
                                     name='institution',
                                     searchfield='utbildningsinstitution',
                                     title=result)
    return set_cache(page)
Exemplo n.º 23
0
def activity_index():
    return set_cache(computeviews.compute_activity())
Exemplo n.º 24
0
def authors():
    infotext = helpers.get_infotext("articleauthor", request.url_rule.rule)
    set_language_switch_link("articleauthor_index")
    return set_cache(
        computeviews.compute_artikelforfattare(
            infotext=infotext, description=helpers.get_shorttext(infotext)))
Exemplo n.º 25
0
def about_skbl():
    page = serve_static_page("about-skbl", gettext("About SKBL"))
    return set_cache(page)
Exemplo n.º 26
0
def place_index():
    return set_cache(computeviews.compute_place())