Beispiel #1
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, 1)):
         return True
     else:
         return False
Beispiel #2
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
Beispiel #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)
Beispiel #4
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)
Beispiel #5
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
Beispiel #6
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
Beispiel #7
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()
Beispiel #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
Beispiel #9
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)
Beispiel #10
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)
Beispiel #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)
Beispiel #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