diff -r ac5270714d2c -r 61c3ffd94f11 src/core/wp_utils.py --- a/src/core/wp_utils.py Mon Jun 24 09:21:38 2013 +0200 +++ b/src/core/wp_utils.py Tue Jun 25 00:00:03 2013 +0200 @@ -6,6 +6,13 @@ import logging logger = logging.getLogger(__name__) +site = None + +def __get_site(): + global site + if site is None: + site = wiki.Wiki(settings.WIKIPEDIA_API_URL) #@UndefinedVariable + return site def normalize_term(term): @@ -135,34 +142,18 @@ term_label_normalized = normalize_term(term_label) # We get the wikipedia references for the tag_label # We get or create the tag object + global site - term = None - if term_uri is not None and Term.objects.filter(uri=term_uri).exists(): - term = Term.objects.get(uri=term_uri) - else: - for t in Term.objects.filter(normalized_label__iexact=term_label_normalized, lang=term_lang, thesaurus=thesaurus): - if term is None or t.url_status != TERM_URL_STATUS_DICT['null_result']: - term = t - if term.url_status != TERM_URL_STATUS_DICT['null_result']: - break + + term, created = Term.objects.get_or_create(uri=term_uri, defaults = {'label':term_label, 'thesaurus':thesaurus, 'normalized_label':term_label_normalized, 'lang' : term_lang}) - if term is None: - term = Term(label=term_label, thesaurus=thesaurus, normalized_label=term_label_normalized, uri=term_uri, lang = term_lang) - created = True - else: - created = False - - site = wiki.Wiki(settings.WIKIPEDIA_API_URL) #@UndefinedVariable - if created: - - wikipedia_revision_id = process_term(site, term, label=wp_label_transform(term_label_normalized)) - + wikipedia_revision_id = process_term(__get_site(), term, label=wp_label_transform(term_label_normalized)) term_label_obj = TermLabel(label=term_label, term=term, lang=term_lang) term_label_obj.save() elif term.wikipedia_pageid and not skip_wp_query: - wp_res = query_wikipedia_title(site, pageid=term.wikipedia_pageid) + wp_res = query_wikipedia_title(__get_site(), pageid=term.wikipedia_pageid) wikipedia_revision_id = wp_res['revision_id'] term.wikipedia_revision_id = wikipedia_revision_id term.save()