--- 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()