Exemple #1
0
    def get_results(self):
        """
        Fetches the results via the form.

        Returns an empty list if there's no query to search with.
        """
        query = self.query

        if not (self.form.is_valid() and query):
            return self.form.no_query_found()

        #Replace letter ё --> е
        query = replace_special(query)

        # save the query to statistic
        if 'page' not in self.request.GET and query:
            rows = SearchLogger.objects.filter(text=query).update(counter=F('counter')+1)
            if not rows:
                SearchLogger.objects.create(text=query)
        
        translited_query = force_unicode(translify(query))
        detranslited_query = force_unicode(detranslify(query))
        
        sqs = self.searchqueryset().filter_and(SQ(content=detranslited_query) | SQ(content=translited_query) | SQ(content=query))
        
        #sqs = self.searchqueryset().auto_query(query)
        
        if self.load_all:
            sqs = sqs.load_all()
        
        return sqs
Exemple #2
0
    def post(self, request):
        data, errors = RequestSchema().load(request.data)

        errand_boy_transport = UNIXSocketTransport()
        out, err, returncode = errand_boy_transport.run_cmd("wkhtmltopdf -V")

        translified_text = translify(data["text_for_translite"])

        result = {
            "type":
            str(data["type"]),
            "type_value":
            str(data["type"].value),
            "payment_method":
            str(data["payment_method"]),
            "payment_method_value":
            str(data["payment_method"].value),
            "wkhtml":
            out,
            "slug":
            slugify(data["text_for_slug"]),
            "translite":
            translified_text,
            "detranslite":
            detranslify(translified_text),
            "plural_first":
            get_plural(data["int_for_plural"],
                       ("клиенту", "клиентам", "клиентам")),
            "plural_second":
            get_plural(data["int_for_plural"], "секунду,секунды,секунд"),
        }

        return render(request, "test.html", result)
def detranslify(text):
    """Detranslify russian text"""
    try:
        res = translit.detranslify(text)
    except Exception, err:
        # because filter must die silently
        res = default_value % {'error': err, 'value': text}
def detranslify(text):
    """Detranslify russian text"""
    try:
        res = translit.detranslify(text)
    except Exception, err:
        # because filter must die silently
        res = default_value % {'error': err, 'value': text}
Exemple #5
0
def detranslify(stext):
    """Detranslify russian text"""
    try:
        ures = translit.detranslify(stext)
        res = pseudo_str(ures, encoding, default_uvalue)
    except Exception, err:
        # because filter must die silently
        res = default_value % {"error": err, "value": stext}
def detranslify(stext):
    """Detranslify russian text"""
    try:
        ures = translit.detranslify(stext)
        res = pseudo_str(ures, encoding, default_uvalue)
    except Exception, err:
        # because filter must die silently
        res = default_value % {'error': err, 'value': stext}
Exemple #7
0
def detranslify(stext):
    """Detranslify russian text"""
    try:
        res = utils.provide_str(
            translit.detranslify(stext),
            encoding,
            default=default_uvalue)
    except Exception, err:
        # because filter must die silently
        res = default_value % {'error': err, 'value': stext}
Exemple #8
0
def str_handler(in_string):
    """Обработчик строк. Удаление лишних символов, детранслитерация, нормализация(приведение к инфинитиву).

    Keyword arguments:
    in_string -- строка для обработки

    """
    tokens = tokenizers.simple_word_tokenize(re.sub('[!?,.%]', '', in_string))
    new_string = ''
    for word_in in tokens:
        if re.search(latin_pattern, word_in):
            word_in = translit.detranslify(word_in)
        new_string += morph.parse(word_in)[0].normal_form + ' '
    return new_string
Exemple #9
0
    def get_results(self):
        """
        Fetches the results via the form.

        Returns an empty list if there's no query to search with.
        """
        if not (self.form.is_valid() and self.form.cleaned_data['q']):
            return self.form.no_query_found()

        query = self.form.cleaned_data['q']


        #Replace letter ё --> е
        query = replace_special(query)

        # save the query to statistic
        if 'page' not in self.request.GET and query:
            rows = SearchLogger.objects.filter(text=query).update(counter=F('counter')+1)
            if not rows:
                SearchLogger.objects.create(text=query)
        
        if self.detranslify:
            #Check latin letters and detranslit them
            query_rus = detranslify(query)

            if query != query_rus:
                query = "%s %s" % (query, query_rus,)
                
        sqs = self.searchqueryset().auto_query(query)
        
        #=======================================================================
        # if query:
        #    sqs = self.searchqueryset().filter(title=query)
        # else:
        #    sqs = self.searchqueryset().all()
        #=======================================================================

        #for word in iter(set(query.split())):
        #    sqs = sqs.filter_or(title=word).filter_or(text=word)

        if self.load_all:
            sqs = sqs.load_all()
        
        return sqs
Exemple #10
0
from pytils import translit

# простая траслитерация/детранслитерация
# обратите внимание на то, что при транслитерации вход - unicode,
# выход - str, а в детранслитерации -- наоборот
#

print translit.translify(u"Это тест и ничего более")
#-> Eto test i nichego bolee

print translit.translify(
    u"Традиционно сложные для транслитерации буквы - подъезд, щука")
#-> Traditsionno slozhnyie dlya transliteratsii bukvyi - pod`ezd, schuka

# и теперь пытаемся вернуть назад... (понятно, что Э и Е получаются одинаково)
print translit.detranslify("Eto test i nichego bolee")
#-> Ето тест и ничего более

print translit.detranslify(
    "Traditsionno slozhnyie dlya transliteratsii bukvyi - pod`ezd, schuka")
#-> Традиционно сложные для транслитерации буквы - подъезд, щука

# и пригодные для url и названий каталогов/файлов транслиты
# dirify и slugify -- синонимы, действия абсолютно идентичны
print translit.slugify(
    u"Традиционно сложные для транслитерации буквы - подъезд, щука")
#-> traditsionno-slozhnyie-dlya-transliteratsii-bukvyi-podezd-schuka

# обратного преобразования, понятно, нет :)
Exemple #11
0
        out = s
    else:
        out = s.encode('UTF-8')
    print(out)

# простая траслитерация/детранслитерация
# обратите внимание на то, что при транслитерации вход - unicode,
# выход - str, а в детранслитерации -- наоборот
#

print_(translit.translify("Это тест и ничего более"))
#-> Eto test i nichego bolee

print_(translit.translify("Традиционно сложные для транслитерации буквы - подъезд, щука"))
#-> Traditsionno slozhnyie dlya transliteratsii bukvyi - pod`ezd, schuka

# и теперь пытаемся вернуть назад... (понятно, что Э и Е получаются одинаково)
print_(translit.detranslify("Eto test i nichego bolee"))
#-> Ето тест и ничего более

print_(translit.detranslify("Traditsionno slozhnyie dlya transliteratsii bukvyi - pod`ezd, schuka"))
#-> Традиционно сложные для транслитерации буквы – подЪезд, щука


# и пригодные для url и названий каталогов/файлов транслиты
# dirify и slugify -- синонимы, действия абсолютно идентичны
print_(translit.slugify("Традиционно сложные для транслитерации буквы - подъезд, щука"))
#-> traditsionno-slozhnyie-dlya-transliteratsii-bukvyi-podezd-schuka

# обратного преобразования, понятно, нет :)