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)
def show_page(self, id_page): self.all_in_page = self.db.get_text_body(id_page)#rowid, id, text, part, page, hno, sora, aya, na if asm_config.getn('tashkil') == 0: now_text = asm_araby.stripHarakat(self.all_in_page[2]) else: now_text = self.all_in_page[2] self.has_commment(id_page) titles = self.db.titles_page(self.all_in_page[1]) ch = self.stack.get_visible_child_name() if ch == "n1": self.view_nasse_bfr2.set_text(now_text) self.view_nasse_bfr2.insert(self.view_nasse_bfr2.get_end_iter(), " \n") try: asm_customs.with_tag(self.view_nasse_bfr2, self.view_title_tag2, titles) except: pass else: self.view_nasse_bfr1.set_text(now_text) self.view_nasse_bfr1.insert(self.view_nasse_bfr1.get_end_iter(), " \n") try: asm_customs.with_tag(self.view_nasse_bfr1, self.view_title_tag1, titles) except: pass self.is_tafsir(self.all_in_page) self.current_id = self.all_in_page[0] self.ent_page.set_text(str(self.all_in_page[4])) self.ent_part.set_text(str(self.all_in_page[3])) text = self.parent.entry_search.get_text() if len(text) >= 2 and text != "ال": self.search_now(text) if len(self.opened_old) == 0: self.opened_old.append(id_page) elif id_page != self.opened_old[-1]: self.opened_old.append(id_page) self.stack.show_all() self.scroll_nasse1.get_vadjustment().set_value(0.0) self.scroll_nasse2.get_vadjustment().set_value(0.0)
def show_page(self, id_page): self.all_in_page = self.db.get_text_body(id_page)#rowid, id, text, part, page, hno, sora, aya, na self.view_nasse_bfr.set_text(self.all_in_page[2]) titles = self.db.titles_page(self.all_in_page[1]) asm_customs.with_tag(self.view_nasse_bfr, self.view_title_tag, titles) self.is_tafsir(self.all_in_page) self.current_id = self.all_in_page[0] text = self.parent.entry_search.get_text() if len(text) >= 2 and text != u"ال": self.search_now(text) self.show_term_search()
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)
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)
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)
def show_term_search(self, *a): search_tokens = [] nasse0 = self.view_nasse_bfr.get_text(self.view_nasse_bfr.get_start_iter(), self.view_nasse_bfr.get_end_iter(),True) for text in self.ls_term: 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(nasse0) for r in r_findall: try: if r[0] not in search_tokens: search_tokens.append(r[0]) except: pass asm_customs.with_tag(self.view_nasse_bfr, self.view_search_tag, search_tokens, 1, self.view_nasse)
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)
def show_tarjama(self, *a): model, i = self.sel_tarjama.get_selected() if i: id_rawi = model.get_value(i,0) rawi = self.db.show_rawi(id_rawi) rawa_anhe_txt = u'' for t in rawi[3].split(' '): if t in self.rawa_anhe.keys(): rawa_anhe_txt += re.sub(t, self.rawa_anhe[t], t) text = u'''الاسم : {} المولد : {} الوفاة : {} الطبقة : {} الرواة عنه : {} : {} الرتبة عند الحافظ : {} الرتبة عند الذهبي : {}'''.format(rawi[1], rawi[6], rawi[7], rawi[2], rawi[3], rawa_anhe_txt, rawi[4], rawi[5]) text = re.sub("F", u'صحابي رضي الله عنه', text) text = re.sub("G", u'الثانية ، كبار التابعين', text) text = re.sub("H", u'الثالثة ، الوسطى من التابعين', text) text = re.sub("I", u'الرابعة ، تلي الوسطى من التابعين', text) text = re.sub("J", u'الخامسة ، صغار التابعين', text) text = re.sub("K", u'السادسة ، الذين عاصروا صغار التابعين', text) text = re.sub("L", u'السابعة ، كبار أتباع التابعين', text) text = re.sub("M", u'الثامنة ، الوسطى من أتباع التابعين', text) text = re.sub("N", u'التاسعة ، صغار أتباع التابعين', text) text = re.sub("O", u'العاشرة ، كبار الآخذين عن تبع الأتباع', text) text = re.sub("P", u'الحادية عشرة ، الوسطى من الآخذين عن تبع الأتباع', text) text = re.sub("Q", u'الثانية عشرة ، صغار الآخذين عن تبع الأتباع', text) text = re.sub("<", u'<', text) text = re.sub(">", u'>', text) text = re.sub(""", u'"', text) text = re.sub("W", u'صلى الله عليه وسلم', text) text = re.sub(u"1 :", u'الأولى ،', text) self.view_tarjama_bfr.set_text(text) asm_customs.with_tag(self.view_tarjama_bfr, self.view_tarjama_tag, self.tags)
def ok_index(self, *a): model, i = self.sel_index.get_selected() if i: p = model.get_path(i) if model.iter_has_child(i) : if self.tree_index.row_expanded(p): self.tree_index.collapse_row(p) else: self.tree_index.expand_row(p, False) id_page = model.get_value(i, 0) tit = model.get_value(i, 1) if self.current_id < id_page: self.stack.set_transition_type(self.style_browse_next) elif self.current_id > id_page: self.stack.set_transition_type(self.style_browse_prev) elif self.current_id == id_page: return self.show_page(id_page) ch = self.stack.get_visible_child_name() if ch == "n1": self.stack.set_visible_child_name("n2") asm_customs.with_tag(self.view_nasse_bfr1, self.title_select_tag1, [tit,], 0, self.view_nasse1) else: self.stack.set_visible_child_name("n1") asm_customs.with_tag(self.view_nasse_bfr2, self.title_select_tag2, [tit,], 0, self.view_nasse2) GObject.timeout_add(200, self.reset_event)