Exemplo n.º 1
0
 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)
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
    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'******* الصدر *******'])
Exemplo n.º 4
0
 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)
Exemplo n.º 5
0
 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)
Exemplo n.º 6
0
 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)
Exemplo n.º 7
0
 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)