Пример #1
0
 def search_in_index(self, model, path, i, my_books):
     txt = model.get(i,1)[0]
     text, model0, path0, i0 = my_books
     if asm_araby.fuzzy(text) in asm_araby.fuzzy(txt) and path.compare(path0) > 0: 
         self.tree_books.expand_to_path(path)
         self.tree_books.scroll_to_cell(path)
         self.sel_books.select_path(path)
         return True 
     else:
         return False
Пример #2
0
 def show_term_search(self, *a):
     search_tokens = []
     nasse = self.view_nasse_bfr.get_text(
         self.view_nasse_bfr.get_start_iter(), self.view_nasse_bfr.get_end_iter(), True
     ).split()
     for text in self.ls_term:
         txt = asm_araby.fuzzy(text)
         for term in nasse:
             if txt in asm_araby.fuzzy(term):
                 search_tokens.append(term)
     asm_customs.with_tag(self.view_nasse_bfr, self.view_search_tag, search_tokens, 1, self.view_nasse)
Пример #3
0
 def search_on_page(self, text):
     self.show_page(self.all_in_page[1])
     search_tokens = []
     nasse = self.view_nasse_bfr.get_text(self.view_nasse_bfr.get_start_iter(), 
                                         self.view_nasse_bfr.get_end_iter(),True).split()
     if text == u'': 
         return
     else:
         txt = asm_araby.fuzzy(text)
         for term in nasse: 
             if txt in asm_araby.fuzzy(term):
                 search_tokens.append(term)
     asm_customs.with_tag(self.view_nasse_bfr, self.view_search_tag, search_tokens, 1)
Пример #4
0
 def search_now(self, text):
     search_tokens1 = []
     search_tokens2 = []
     star_iter1 = self.view_nasse_bfr1.get_start_iter()
     end_iter1 = self.view_nasse_bfr1.get_end_iter()
     star_iter2 = self.view_nasse_bfr2.get_start_iter()
     end_iter2 = self.view_nasse_bfr2.get_end_iter()
     self.view_nasse_bfr1.remove_tag_by_name("search1", star_iter1, end_iter1)
     self.view_nasse_bfr2.remove_tag_by_name("search2", star_iter2, end_iter2)
     nasse1 = self.view_nasse_bfr1.get_text(star_iter1, end_iter1, True)
     nasse2 = self.view_nasse_bfr2.get_text(star_iter2, end_iter2, True)
     if text == '': 
         return
     else:
         text = text.strip()
         ls_term = asm_araby.fuzzy(text).split(' ')
     for text in ls_term:
         if len(text) == 1 or text == "ال": continue
         new_term = ''
         for l in text:
             new_term += '({}(\u0651)?([\u064b\u064c\u064d\u064e\u064f\u0650\u0652])?)'.format(l, )
         new_term = new_term.replace('ا', '[اأإؤءئى]')
         new_term = new_term.replace('ه', '[هة]')
         re_term = re.compile('({})'.format(new_term,))
         r_findall1 = re_term.findall(nasse1)
         r_findall2 = re_term.findall(nasse2)
         for r in r_findall1:
             if r[0] not in search_tokens1: search_tokens1.append(r[0])
         for r in r_findall2:
             if r[0] not in search_tokens2: search_tokens2.append(r[0])
     asm_customs.with_tag(self.view_nasse_bfr1, self.view_search_tag1, search_tokens1, 1, self.view_nasse1)
     asm_customs.with_tag(self.view_nasse_bfr2, self.view_search_tag2, search_tokens2, 1, self.view_nasse2)
Пример #5
0
 def search_on_page(self, text):
     self.show_charh()
     search_tokens = []
     nasse = self.view_dict_bfr.get_text(self.view_dict_bfr.get_start_iter(), 
                                         self.view_dict_bfr.get_end_iter(),True).split()
     if text == u'': 
         for a in self.all_term:
             txt = asm_araby.fuzzy(a)
             for term in nasse: 
                 if txt in asm_araby.fuzzy(term):
                     search_tokens.append(term)
     else:
         txt = asm_araby.fuzzy(text)
         for term in nasse: 
             if txt in asm_araby.fuzzy(term):
                 search_tokens.append(term)
     asm_customs.with_tag(self.view_dict_bfr, self.search_tag, search_tokens)
Пример #6
0
 def tardjma(self, text):
     s = '''fuzzy(name) LIKE ? ESCAPE "|"'''
     text = asm_araby.fuzzy(text)
     self.search_tokens = asm_araby.tokenize_search(text)
     l = list(map(lambda s: '%'+s.replace('|', '||').replace('%', '|%')+'%', self.search_tokens))
     if len(l) < 1: return []
     condition = ' AND '.join([s]*len(l))
     self.cur.execute("""SELECT id, name FROM rewat WHERE {}""".format(condition), l)
     tarjama = self.cur.fetchall()
     return tarjama
Пример #7
0
 def author(self, text):
     s = '''fuzzy(lng) LIKE ? ESCAPE "|"'''
     text = asm_araby.fuzzy(text)
     self.search_tokens = asm_araby.tokenize_search(text)
     l = list(map(lambda s: '%'+s.replace('|', '||').replace('%', '|%')+'%', self.search_tokens))
     if len(l) < 1: return []
     condition = ' AND '.join([s]*len(l))
     self.cur.execute("""SELECT authid, auth FROM auth WHERE {}""".format(condition), l)
     authors = self.cur.fetchall()
     return authors
Пример #8
0
 def search(self, text):
     s = '''fuzzy(imlai) LIKE ? ESCAPE "|"'''
     text=asm_araby.fuzzy(text)
     self.search_tokens=asm_araby.tokenize_search(text)
     l = list(map(lambda s: '%'+s.replace('|', '||').replace('%', '|%')+'%', self.search_tokens))
     if len(l) < 1: return []
     condition = ' AND '.join([s]*len(l))
     self.cur.execute("""SELECT sura, aya, page, othmani, imlai, id_binary  FROM Quran WHERE {} LIMIT 50""".format(condition, ), l)
     ayat = self.cur.fetchall()
     return ayat
Пример #9
0
 def search_entry(self, *a):
     text = asm_araby.fuzzy(self.entry_index.get_text())
     if text == '':
         self.scroll_index.show_all()
         self.scroll_search.hide()
     else:
         self.scroll_index.hide()
         titles = self.db.search_index(text)
         self.store_search.clear()
         c = 1
         for a in titles:
             self.store_search.append([a[0], c, a[1], '', 0, 0, '', 0]) 
             c += 1
         self.scroll_search.show_all()
Пример #10
0
 def search_on_active(self, text):
     if text == '': return
     self.store_search.clear()
     self.scroll_index.hide()
     self.scroll_search.show_all()
     phrase = '''fuzzy(nass) LIKE ? ESCAPE "|"'''
     text = asm_araby.fuzzy(text)
     self.search_tokens = asm_araby.tokenize_search(text)
     phrase2 = list(map(lambda phrase: '%'+phrase.replace('|','||').replace('%','|%')+'%', self.search_tokens))
     if len(phrase2) < 1: return []
     condition = ' AND '.join([phrase]*len(phrase2))
     self.db.search(text, self.store_search, condition, phrase2)
     if len(self.store_search) == 0:
         self.hide_search()
         asm_customs.erro(self.parent, 'لا يوجد نتائج')
         return
     self.hp.set_position(200)
Пример #11
0
 def search_now(self, text):
     search_tokens = []
     nasse = self.view_nasse_bfr.get_text(self.view_nasse_bfr.get_start_iter(), 
                                         self.view_nasse_bfr.get_end_iter(),True)
     if text == u'': 
         return
     else:
         text = text.strip()
         ls_term = asm_araby.fuzzy(text).split(u' ')
     for text in ls_term:
         if len(text) == 1 or text == u"ال": continue
         new_term = u''
         for l in text:
             new_term += u'({}(\u0651)?([\u064b\u064c\u064d\u064e\u064f\u0650\u0652])?)'.format(l, )
         new_term = new_term.replace(u'ا', u'[اأإؤءئى]')
         new_term = new_term.replace(u'ه', u'[هة]')
         re_term = re.compile(u'({})'.format(new_term,))
         r_findall = re_term.findall(nasse)
         for r in r_findall:
             if r[0] not in search_tokens: search_tokens.append(r[0])
     asm_customs.with_tag(self.view_nasse_bfr, self.view_search_tag, search_tokens, 1, self.view_nasse)
Пример #12
0
 def search_books(self, text):
     self.cur.execute('SELECT id_book, tit FROM books WHERE fuzzy(tit) LIKE ? LIMIT 100', ('%'+asm_araby.fuzzy(text)+'%', ))
     books = self.cur.fetchall()
     return books
Пример #13
0
 def visible_cb(self, model, itr, data):
     if len(self.theword) == 0: return
     if asm_araby.fuzzy(self.theword[0]) in asm_araby.fuzzy(model.get_value(itr, 2)):
         return True
     else: return False