def ok_verse_cb(self, *a): all_verse = self.verse_all_bfr.get_text( self.verse_all_bfr.get_start_iter(), self.verse_all_bfr.get_end_iter(), False ).decode("utf8") verse0 = self.verse_prog_bfr.get_text( self.verse_prog_bfr.get_start_iter(), self.verse_prog_bfr.get_end_iter(), False ).decode("utf8") rawi0 = daw_araby.NAMES[daw_tools.rawi_poem(verse0.strip())] verse1 = self.verse_usr_bfr.get_text( self.verse_usr_bfr.get_start_iter(), self.verse_usr_bfr.get_end_iter(), False ).decode("utf8") if verse1 == u"": return rawi1 = daw_araby.NAMES[daw_tools.rawi_poem(verse1.strip())] first1 = daw_araby.NAMES[verse1.strip()[0]] if first1 != rawi0: daw_customs.erro(self.parent, "البيت يبدأ بحرف غير الذي انتهى به الأول\nحاول مجددا .") return if self.db.is_verse(verse1): if daw_araby.fuzzy_plus(verse1) in daw_araby.fuzzy_plus(all_verse): daw_customs.erro(self.parent, "البيت مستخدم مسبقا\nحاول مجددا .") return else: daw_customs.info(self.parent, "أحسنت") self.verse_all_bfr.insert(self.verse_all_bfr.get_end_iter(), u"\nالمستخدم : " + verse1.strip()) d = int(self.lab_answer_user.get_label()) + 1 self.lab_answer_user.set_label(str(d)) self.next_verse(rawi1) else: daw_customs.erro(self.parent, "البيت غير موجود في قاعدة بيانات البرنامج\nحاول مجددا .") return daw_customs.with_tag(self.verse_all_bfr, self.verse_all_tag, ["البرنامج : "]) self.verse_all.scroll_to_iter(self.verse_all_bfr.get_end_iter(), 0, 1, 1, 1)
def answer_verse_cb(self, *a): verse = self.verse_prog_bfr.get_text( self.verse_prog_bfr.get_start_iter(), self.verse_prog_bfr.get_end_iter(), False ).decode("utf8") rawi = daw_araby.NAMES[daw_tools.rawi_poem(verse.strip())] self.verse_all_bfr.insert(self.verse_all_bfr.get_end_iter(), "\nالمستخدم : لم يجب") self.next_verse(rawi) daw_customs.with_tag(self.verse_all_bfr, self.verse_all_tag, ["البرنامج : "]) self.verse_all.scroll_to_iter(self.verse_all_bfr.get_end_iter(), 0, 1, 1, 1)
def scan_cb(self, *a): v = 0 if self.ishbaa_m.get_active(): v = 1 text = self.verse_dictation_bfr.get_text(self.verse_dictation_bfr.get_start_iter(), self.verse_dictation_bfr.get_end_iter(), False).decode('utf8') if text != '': wazn = daw_scan.writing_wazn(text, v) ls_awzan = daw_scan.meter_verse(wazn) text1 = daw_scan.writing_spoken(text, v) if len(ls_awzan) == 0: daw_customs.erro(self.parent, u''' لم يستطع البرنامج تحديد بحر هذا البيت هل جميع الأحرف المنطوقة مكتوبة في الكتابة العروضية ؟ إن لم تكن ، فقد يكون الخطأ في التشكيل !.''') takti31= daw_scan.writing_scan(text, v) result = u'الكتابة العروضية : '+text1+'\n' result += u'الكتابة التقطيعية : '+takti31+'\n' else: result = u'الكتابة العروضية : '+text1+'\n' result += u'الكتابة التقطيعية : '+ls_awzan[0][4]+'\n' s = 1 if len(ls_awzan) > 1: result += u'هذا الوزن ينتمي لأكثر من بحر فقد يكون : \n'.format(str(s),) for a in ls_awzan: t = a[3].split(' ') if s > 1: result += u'وقد يكون : *****************************************\n'.format(str(s),) result += u'البحر : '+daw_scan.Elbehor[a[1]]+'\n' result += u'الكتابة التفعيلية : '+a[3]+'\n' if a[7] != u'': result += u'******* الصدر *******\n' result += u'التفعيلة الأولى : '+a[10]+'\n' if len(t) != 5 and len(t) != 2: result += u'التفعيلة الثانية : '+a[12]+'\n' if len(t) == 9: result += u'التفعيلة الثالثة : '+a[14]+'\n' result += u'العروض : '+a[6]+'\n' if a[7] != u'': result += u'******* العجز *******\n' if len(t) == 5: result += u'التفعيلة الأولى : '+a[12]+'\n' elif len(t) == 7: result += u'التفعيلة الأولى : '+a[14]+'\n' result += u'التفعيلة الثانية : '+a[16]+'\n' elif len(t) == 9: result += u'التفعيلة الأولى : '+a[16]+'\n' result += u'التفعيلة الثانية : '+a[18]+'\n' result += u'التفعيلة الثالثة : '+a[20]+'\n' if a[7] != u'': result += u'الضرب : '+a[8]+'\n' s += 1 self.view_scan_bfr.set_text(result) daw_customs.with_tag(self.view_scan_bfr, self.title_tag2, [u'الكتابة العروضية :',u'الكتابة التقطيعية :', u'البحر :', u'الكتابة التفعيلية :', u'العروض :', u'الضرب :', u'******* العجز *******', u'التفعيلة الأولى : ', u'التفعيلة الثانية :', u'التفعيلة الثالثة :', u'******* الصدر *******'])
def search_on_page(self, text): self.show_page_help() search_tokens = [] nasse = self.prescript_bfr.get_text(self.prescript_bfr.get_start_iter(), self.prescript_bfr.get_end_iter(),True).split() if text != u'': txt = daw_araby.fuzzy(text) for term in nasse: if txt in daw_araby.fuzzy(term.decode('utf8')): search_tokens.append(term) daw_customs.with_tag(self.prescript_bfr, self.search_tag, search_tokens)
def search_on_page(self, text): self.show_charh() while (Gtk.events_pending()): Gtk.main_iteration() 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 = daw_araby.fuzzy(a) for term in nasse: if txt in daw_araby.fuzzy(term.decode('utf8')): search_tokens.append(term) else: txt = daw_araby.fuzzy(text) for term in nasse: if txt in daw_araby.fuzzy(term.decode('utf8')): search_tokens.append(term) daw_customs.with_tag(self.view_dict_bfr, self.search_tag, search_tokens)
def build(self, font='Simplified Naskh 18'): size = self.parent.get_size() self.width_window = size[0]-240 if self.view_poem.get_allocated_width() > 100: self.width_window = self.view_poem.get_allocated_width() b_a = daw_config.getn('b_abiat')*2 self.font = font self.size_font = int(self.font[-2:]) label = Gtk.Label() label.override_font(Pango.FontDescription(self.font)) if self.naw3 != 5: if daw_tools.is_machtor(self.text_poem): arodh = 1 else: arodh = 0 self.new_poem, self.t = daw_tools.length_Half(self.text_poem, label, self.length, self.size_font, self.width_window, arodh) poem = self.new_poem poem = self.speaker+poem self.view_poem_bfr.set_text(poem) daw_customs.with_tag(self.view_poem_bfr, self.speaker_poem_tag, [self.speaker,]) self.view_poem.override_font(Pango.FontDescription(self.font)) self.view_poem.set_pixels_below_lines((self.size_font*b_a)/3) self.view_poem.set_pixels_above_lines((self.size_font*b_a)/3)
def ok_poet(self, *a): model, i = self.sel_poet.get_selected() if i: id_poet = model.get_value(i,0) list_poems, tarjama = self.db.poems_of_poet(id_poet) self.tarjama_bfr.set_text(tarjama) ls = [tarjama.splitlines(1)[0],] daw_customs.with_tag(self.tarjama_bfr, self.tarjama_tag, ls) self.poems_store.clear() n = self.notebook.get_current_page() if n > 1: self.notebook.set_current_page(daw_config.getn('open')) if len(list_poems) != 0: self.names_list0 = [] self.modelfilter0 = self.poems_store.filter_new() for a in list_poems: i = a[0] rakm = list_poems.index(a, )+1 name = a[1] abiat = a[2] if a[3] != 0: baher = daw_tools.get_name(daw_tools.elbehor, a[3]) else: baher = u'____' if a[4] != 0: rawi = daw_tools.get_name(daw_tools.elrawi, a[4]) else: rawi = u'____' if a[6] != 0: gharadh = daw_tools.get_name(daw_tools.elgharadh, a[6]) else: gharadh = u'____' if a[7] != 0: naw3 = daw_tools.get_name(daw_tools.elnaw3, a[7]) else: naw3 = u'____' self.poems_store.append([i, rakm, name, naw3, baher, gharadh, rawi, abiat]) self.names_list0.append(name) self.theword0 = self.names_list0[:] self.modelfilter0.set_visible_func(self.visible_cb0, self.theword0) self.tree_poems.set_model(self.modelfilter0) lab = ' .: {} :. عدد القصائد : {} ، عدد الأبيات : {}'.format((self.db.name_poet(id_poet)[1]).encode('utf8'), self.db.n_poems_poet(id_poet).decode('utf8'), self.db.n_verses_poet(id_poet).decode('utf8')) self.lab_count.set_label(lab)