Beispiel #1
0
 def sh_cr_nass_sup(self,text, is_fuzzy=0, pos=-1, direction=1 ,limit=10000):
     if is_fuzzy:
         s = '''fuzzy_normalize(book.nass) LIKE ? ESCAPE "|"'''
         text=fuzzy.normalize(text)
     else: s = '''book.nass LIKE ? ESCAPE "|"'''
     self.search_tokens=fuzzy.tokenize_search(text)
     l = map(lambda s: '%'+s.replace('|','||').replace('%','|%')+'%',self.search_tokens)
     if len(l) < 1: return []
     condition = ' AND '.join([s]*len(l))
     if direction < 0: 
         orde = "ORDER BY book.rowid DESC" 
         op = "<"
     else: 
         order = ""
         op = ">"
     if pos >= 0: condition = 'book.id %s %d AND %s' % (op,pos,condition)
     self.cr.execute("""SELECT book.id FROM pages AS book WHERE %s %s LIMIT %d """ % (condition, order, limit), l)
     a = self.cr.fetchall()
     r = []
     for i in a:
         j = i[0]
         k = bisect.bisect(self.toc_ids,j)-1
         if k < 0: k = 0
         try: h = self.toc_uniq[k]
         except: h = [1,1,'......']
         r.append((j, h[2]))
         self.search_pos = j
     return r
Beispiel #2
0
 def search(self,text, is_fuzzy=0, pos=-1, direction=1 ,limit=10000):
     if pos!=self.search_pos or text!=self.search_text: self.search_pos=pos; pos-=1
     else: self.search_pos=pos
     self.search_text=text
     self.search_is_fuzzy=is_fuzzy
     if is_fuzzy:
         s='''fuzzy_normalize(book.nass) LIKE ? ESCAPE "|"'''
         text=fuzzy.normalize(text)
     else: s='''book.nass LIKE ? ESCAPE "|"'''
     self.search_tokens=fuzzy.tokenize_search(text)
 
     l=map(lambda s: '%'+s.replace('|','||').replace('%','|%')+'%',self.search_tokens)
     if len(l)<1: return []
     
     condition=' AND '.join([s]*len(l))
     if direction<0: order="ORDER BY book.rowid DESC"; op="<"
     else: order=""; op=">"
     if pos>=0: condition='book.id %s %d AND %s' % (op,pos,condition)
     self.__c.execute("""SELECT book.id FROM b%d AS book WHERE %s %s LIMIT %d """ % (self.__book_id, condition, order, limit), l)
     #c.execute("""SELECT book.id, toc.tit FROM b2023 AS book left JOIN t2023 AS toc USING ( id ) where %s group by book.id limit %d,%d;""" % (condition,limit*page,limit))
     a=self.__c.fetchall()
     r=[]
     for i in a:
         j=i[0]
         k=bisect.bisect(self.__toc_ids,j)-1
         if k<0: k=0
         try: h=self.__toc_uniq[k]
         except: h = [1,1,'......']
         r.append((j, h[2]))
         self.search_pos=j
     return r
Beispiel #3
0
 def tafsir(self,nass):
     text = '"'+nass+'"'
     j = 0 
     __cn = sqlite3.connect('data/quran.db', isolation_level=None)
     __c=__cn.cursor()
     _c=__cn.cursor()
     __cn.create_function('fuzzy_normalize',1,fuzzy.normalize)
     s='''fuzzy_normalize(imlai) LIKE ? ESCAPE "|"'''
     text=fuzz(fuzzy.normalize(text))
     self.search_tokens=fuzzy.tokenize_search(text)
     l=map(lambda s: '%'+s.replace('|','||').replace('%','|%')+'%',self.search_tokens)
     if len(l)<1: return []
     self.condition=' AND '.join([s]*len(l))  
     __c.execute("""SELECT id FROM Quran WHERE %s""" % (self.condition), l)
     a = __c.fetchall()
     if len(a) == 0 : dlg('لاتوجد نتائج');return
     for s in range(len(a)):
         while (gtk.events_pending()): gtk.main_iteration()
         gt = a[s][0]
         isr = (gt/512)+1
         iya = gt-((isr-1)*512)
         g1= self.page_quran(isr , iya+1)
         j = j+1
         _c.execute("""SELECT sura_name FROM suranames""")
         b = _c.fetchall()
         g2 = str(b[isr-1][0])
         self.store.append([g1,g2,None,None,None,None,None,None])
         self.modtf(self.store[0][0])
Beispiel #4
0
 def sh_cr_nass(self,text, is_fuzzy=0):
     if is_fuzzy:
         s = '''fuzzy_normalize(book.nass) LIKE ? ESCAPE "|"'''
         text=fuzzy.normalize(text)
     else: s = '''book.nass LIKE ? ESCAPE "|"'''
     self.search_tokens=fuzzy.tokenize_search(text)
     l = map(lambda s: '%'+s.replace('|','||').replace('%','|%')+'%',self.search_tokens)
     if len(l) < 1: return []
     condition = ' AND '.join([s]*len(l))
     self.cr.execute("""SELECT book.id FROM pages AS book WHERE %s""" % (condition), l)
     a = self.cr.fetchall()
     r = []
     for i in a:
         j = i[0]
         try: h = self.sh_get_title(j)
         except: h = '......'
         r.append((j, h))
     return r
Beispiel #5
0
 def tardjma(self,nass):
     cn_r = sqlite3.connect('data/rewat',isolation_level=None)
     cn_r.create_function('fuzzy_normalize',1,fuzzy.normalize)
     cr_r = cn_r.cursor()
     text = '"'+nass+'"'
     s='''fuzzy_normalize(name) LIKE ? ESCAPE "|"'''
     text=fuzzy.normalize(text)
     self.search_tokens=fuzzy.tokenize_search(text)
     l=map(lambda s: '%'+s.replace('|','||').replace('%','|%')+'%',self.search_tokens)
     if len(l)<1: return []
     condition=' AND '.join([s]*len(l))
     cr_r.execute("""SELECT * FROM rewat WHERE %s""" % (condition), l)
     trj = cr_r.fetchall()
     if len(trj) == 0 : dlg('لاتوجد نتائج');return
     self.store.clear()
     self.modtr(trj[0])
     for a in range(len(trj)):
         self.store.append([a,trj[a][1],trj[a][2],trj[a][3],trj[a][4],trj[a][5],trj[a][6],trj[a][7]])
Beispiel #6
0
 def mefrada(self,nass):
     cn_r = sqlite3.connect('data/me3djam',isolation_level=None)
     cn_r.create_function('fuzzy_normalize',1,fuzzy.normalize)
     cr_r = cn_r.cursor()
     text = u''+nass
     s='''fuzzy_normalize(tit) LIKE ? ESCAPE "|"'''
     text = fuzz(fuzzy.normalize(text))
     self.search_tokens = fuzzy.tokenize_search(text)
     l = map(lambda s: '%'+s.replace('|','||').replace('%','|%')+'%',self.search_tokens)
     if len(l) < 1: return []
     condition = ' OR '.join([s]*len(l))
     cr_r.execute("""SELECT * FROM titles WHERE %s""" % (condition), l)
     mef = cr_r.fetchall()
     if len(mef) == 0 : dlg('لاتوجد نتائج');return
     self.store.clear()
     self.modmf(mef[0][0],mef[0][1])
     for a in range(len(mef)):
         while (gtk.events_pending()): gtk.main_iteration()
         self.store.append([a,mef[a][1],mef[a][0],None,None,None,None,None])