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
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(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}
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}
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
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
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 # обратного преобразования, понятно, нет :)
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 # обратного преобразования, понятно, нет :)