team4alfanous team mailing list archive
-
team4alfanous team
-
Mailing list archive
-
Message #00082
[Branch ~team4alfanous/alfanous/alfanous-git] Rev 275: remove alfanous-json.py (it's a duplicated copy of alfanous_json.py)
------------------------------------------------------------
revno: 275
git commit: 3d52f0f2bc75a12e8c37e01841f6a2131f900304
committer: Assem Chelli <assem.ch@xxxxxxxxx>
timestamp: Sat 2012-06-23 18:34:26 +0100
message:
remove alfanous-json.py (it's a duplicated copy of alfanous_json.py)
removed:
src/alfanous-cgi/alfanous-json.py
--
lp:alfanous
https://code.launchpad.net/~team4alfanous/alfanous/alfanous-git
Your team Alfanous team is subscribed to branch lp:alfanous.
To unsubscribe from this branch go to https://code.launchpad.net/~team4alfanous/alfanous/alfanous-git/+edit-subscription
=== removed file 'src/alfanous-cgi/alfanous-json.py'
--- src/alfanous-cgi/alfanous-json.py 2012-06-07 20:04:43 +0000
+++ src/alfanous-cgi/alfanous-json.py 1970-01-01 00:00:00 +0000
@@ -1,355 +0,0 @@
-#!/usr/bin/python
-# -*- coding: UTF-8 -*-
-
-
-## Copyright (C) 2009-2012 Assem Chelli <assem.ch [at] gmail.com>
-
-## This program is free software: you can redistribute it and/or modify
-## it under the terms of the GNU Affero General Public License as published by
-## the Free Software Foundation, either version 3 of the License, or
-## (at your option) any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-## GNU Affero General Public License for more details.
-
-## You should have received a copy of the GNU Affero General Public License
-## along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-
-"""
-@author: assem chelli
-@contact: assem.ch [at] gmail.com
-@license: AGPL
-
-
-@todo: add ID of requester for better experience
-@todo: multithreading server-clients
-
-
-"""
-
-
-
-
-
-
-
-import cgi,cgitb,sys,urllib,re,json
-from sys import path
-from os import chdir,curdir,environ
-
-#cgitb.enable()
-form = cgi.FormContentDict()
-
-
-
-path.append("alfanous.egg/alfanous")
-
-
-
-
-from alfanous.main import *
-from alfanous.dynamic_ressources.arabicnames_dyn import ara2eng_names as Fields
-
-
-
-import gettext;
-gettext.bindtextdomain("alfanous", "./locale");
-gettext.textdomain("alfanous");
-_=gettext.gettext
-n_ = gettext.ngettext
-
-
-
-
-
-aratable = {"sura":u"السورة", "aya_id":u"الآية", "aya":u"نص الآية"}
-ara = lambda key:aratable[key] if aratable.has_key(key) else key
-
-kword = re.compile(u"[^,،]+")
-keywords = lambda phrase: kword.findall(phrase)
-
-def Gword_tamdid(aya):
- """ add a tamdid to lafdh aljalala to eliminate the double vocalization """
- return aya.replace(u"لَّه", u"لَّـه").replace(u"لَّه", u"لَّـه")
-
-PERPAGE=10
-
-Translations={ u'ghomshei': u'Mahdi Elahi Ghomshei-Persian', u'indonesian': u'Bahasa Indonesia-Indonesian', u'noghmani': u'Noghmani-tt', u'korkut': u'Besim Korkut-Bosnian', u'makarem': u'Ayatollah Makarem Shirazi-Persian', u'osmanov': u'M.-N.O. Osmanov-Russian', u'amroti': u'Maulana Taj Mehmood Amroti-sd', u'ozturk': u'Prof. Yasar Nuri Ozturk-Turkish', u'shakir': u'Mohammad Habib Shakir-English', u'muhiuddinkhan': u'Maulana Muhiuddin Khan-bn', u'arberry': u'Arthur John Arberry-English', u'irfan_ul_quran': u'Maulana Doctor Tahir ul Qadri-ur', u'jalandhry': u'Jalandhry-ur', u'porokhova': u'V. Porokhova-Russian', u'kuliev': u'E. Kuliev-Russian', u'transliteration-en': u'Transliteration-English', u'pickthall': u'Mohammed Marmaduke William Pickthall-English', u'ansarian': u'Hussain Ansarian-Persian'}
-
-
-Recitations={
- u'Mishary Rashid Alafasy': u'http://www.versebyversequran.com/data/Alafasy_128kbps',
- u'Ahmed_ibn_Ali_al-Ajamy (From QuranExplorer.com)': u'http://www.versebyversequran.com/data/Ahmed_ibn_Ali_al-Ajamy_64kbps_QuranExplorer.Com',
- u'Abdullah Basfar': u'http://www.everyayah.com/data/Abdullah_Basfar_192kbps',
- u'Menshawi (external source)': u'http://www.everyayah.com/data/Menshawi_32kbps',
- u'AbdulBasit AbdusSamad (Murattal style)': u'http://www.versebyversequran.com/data/Abdul_Basit_Murattal_192kbps',
- u'AbdulBasit AbdusSamad (From QuranExplorer.com)': u'http://www.versebyversequran.com/data/AbdulSamad_64kbps_QuranExplorer.Com',
- u'Hani Rifai': u'http://www.everyayah.com/data/Hani_Rifai_192kbps',
- u'Muhammad Ayyoub': u'http://www.everyayah.com/data/Muhammad_Ayyoub_128kbps',
- u'Husary': u'http://www.everyayah.com/data/Husary_128kbps',
- u'Hudhaify': u'http://www.everyayah.com/data/Hudhaify_128kbps',
- u'Abu Bakr Ash-Shaatree': u'http://www.versebyversequran.com/data/Abu Bakr Ash-Shaatree_128kbps',
- u'Ibrahim_Walk': u'http://www.everyayah.com/data/English/Ibrahim_Walk_192kbps_TEST',
- u'Husary Mujawwad': u'http://www.everyayah.com/data/Husary_128kbps_Mujawwad',
- u'Saood bin Ibraaheem Ash-Shuraym': u'http://www.everyayah.com/data/Saood bin Ibraaheem Ash-Shuraym_128kbps',
- u'Saad Al Ghamadi': u'http://www.everyayah.com/data/Ghamadi_40kbps',
- u'Muhammad Ayyoub (external source)': u'http://www.everyayah.com/data/Muhammad_Ayyoub_32kbps'}
-
-
-
-
-
-
-
-def suggest(query):
- """ return suggestions """
- try:
- text=json.dumps(QSE.suggest_all(unicode(query.replace("\\",""), 'utf8')).items())
- except Exception:
- text ="null"
- return text
-
-
-def results(query, sortedby="score", fields=["sura", "aya_id", "aya"],page=1,highlight="css",recitation="Mishary Rashid Alafasy",translation="None"):
- """
- return the results as json
- @param fields : fields enabled to be shown
- @return : the results with the type specified
- """
- res, termz = QSE.search_all(unicode(query.replace("\\",""), 'utf8') ,limit=1000, sortedby=sortedby)
- terms = [term[1] for term in list(termz)]
- #pagination
- page=int(page)
- startpage =(page-1)*PERPAGE
- endpage=(page)*PERPAGE
- end=endpage if endpage<len(res) else len(res)
- start=startpage if startpage<len(res) else -1
- reslist=[] if end==0 or start==-1 else list(res)[start:end]
-
-
- output={}
-
- if True:
- H=lambda X:QSE.highlight(X, terms,highlight) if highlight!="none" and X else X if X else u"-----"
- N=lambda X:X if X else 0
- output["runtime"]="%2.5f" % res.runtime
- output["suggestions"]= QSE.suggest_all(unicode(query.replace("\\",""), 'utf8')).items()
- #print terms
- words_output={}
- matches=0
- docs=0
- cpt=1;
- for term in termz :
- if term[0]=="aya":
-
- if term[2]:
- matches+=term[2]
- docs+=term[3]
- words_output[str(cpt)]={"word":term[1],"nb_matches":term[2],"nb_ayas":term[3]}
- cpt+=1
-
- words_output["global"]={"nb_words":cpt-1,"nb_matches":matches}
- output["words"]=words_output;
-
- #translations
- trad_query=u"( 0"
- for r in reslist :
- trad_query+=" OR gid:"+unicode(r["gid"])+u" "
- trad_query+=" )"+u" AND id:"+unicode(translation)
- trad_res=TSE.find_extended(trad_query, "gid")
- trad_text={}
- for tr in trad_res:
- trad_text[tr["gid"]]=tr["text"]
-
-
- output["interval"]={"start":start+1,"end":end,"total":len(res)}
- cpt = startpage
- output["ayas"]={}
- for r in reslist :
- cpt += 1
- output["ayas"][str(cpt)]={
-
- "aya":{
- "id":r["aya_id"],
- "text": Gword_tamdid(H(r["aya_"]) ),
- "text_uthmani": Gword_tamdid(H(r["uth_"]) ),
- "traduction": trad_text[r["gid"]] if (translation!="None" and translation) else None,
- "recitation":Recitations[recitation].encode("utf-8")+ "/" + "%03d%03d.mp3" % (r["sura_id"],r["aya_id"]),
- #precedent aya
- #next aya
-
- },
-
-
-
- "sura":{
- "name":keywords(r["sura"])[0],
- "id":r["sura_id"],
- "type":r["sura_type"],
- "order":r["sura_order"],
- "stat":{
- "ayas":r["s_a"],
- "words":N(r["s_w"]),
- "godnames":N(r["s_g"]),
- "letters":N(r["s_l"])
- }
-
- },
-
-
-
-
- "position":
- {
- "manzil":r["manzil"],
- "hizb":r["hizb"],
- "rubu":r["rub"]%4,
- "page":r["page"]
- },
-
- "theme":{
- "chapter": r["chapter"],
- "topic": r["topic"],
- "subtopic":r["subtopic"]
- },
-
- "stat":{
- "words":N(r["a_w"]),
- "letters":N(r["a_l"]),
- "godnames":N(r["a_g"])
- } ,
-
- "sajda": {
- "exist":(r["sajda"]==u"نعم"),
- "type":r["sajda_type"] if (r["sajda"]==u"نعم") else None,
- "id":N(r["sajda_id"]) if (r["sajda"]==u"نعم") else None,
- }
- }
-
-
- return json.dumps(output)
-
-
-
-
-#
-def about():
- return json.dumps(
- {
- "engine":"Alfanous",
- "version": "0.1",
- "author": "Assem chelli",
- "contact": "assem.ch@xxxxxxxxx" ,
- "wiki" : "http://wiki.alfanous.org/doku.php?id=json_web_service",
- "visits4search":visits4search()
-
- }
- )
-
-def salam():
- print unicode(json.dumps([u"سلام"].decode("utf-8") ));
-
-
-def visits4search():
- f=open("visits.cpt","r+")
- cpt=int(f.readline())
- cpt+=1
- f=open("visits.cpt","w+")
- f.write(str(cpt))
- return cpt
-
-
-
-
-
-
-
-
-
-
-
-QSE = QuranicSearchEngine("./indexes/main/")
-TSE=TraductionSearchEngine("./indexes/extend/")
-
-
-
-
-if form.has_key("suggest"):
- print "Content-Type: application/json; charset=utf-8"
- #Allow cross domain XHR
- print 'Access-Control-Allow-Origin: *'
- print 'Access-Control-Allow-Methods: GET'
- print
-
- print suggest(form["suggest"][0])
-
-elif form.has_key("search") :
- print "Content-Type: application/json; charset=utf-8"
- #Allow cross domain XHR
- print 'Access-Control-Allow-Origin: *'
- print 'Access-Control-Allow-Methods: GET'
- print
-
- visits4search()
-
- if form.has_key("sortedby"):
- sortedby = form["sortedby"][0]
- else: sortedby = "score"
- if form.has_key("page"):
- page = form["page"][0]
- else: page = 1
- if form.has_key("recitation"):
- recitation = form["recitation"][0]
- else:
- recitation = "Mishary Rashid Alafasy"
- if form.has_key("highlight"):
- highlight = form["highlight"][0]
- else: highlight = "css"
- if form.has_key("translation"):
- translation = form["translation"][0]
- else: translation = "None"
- if form.has_key("fuzzy"):
- QSE = FuzzyQuranicSearchEngine("./indexes/main/")
-
- print results(form["search"][0], sortedby=sortedby, highlight=highlight, recitation=recitation,page=page,translation=translation)
-
-elif form.has_key("list"):
- print "Content-Type: application/json; charset=utf-8"
- #Allow cross domain XHR
- print 'Access-Control-Allow-Origin: *'
- print 'Access-Control-Allow-Methods: GET'
- print
-
- if form["list"][0]=="translations":
- print json.dumps(Translations)
- elif form["list"][0]=="recitations":
- print json.dumps(Recitations)
- elif form["list"][0]=="information":
- print about()
- elif form["list"][0]=="fields":
- print json.dumps(Fields)
- else:
- print "choose <b>list=translations | recitations | information | fields</b>"
-
-
-else:
- print "Content-Type: text/html; charset=utf-8\n\n"
- print
-
- print """
- This is the <a href='http://json.org/'>JSON</a> output system of <a href="http://wiki.alfanous.org">Alfanous</a> project .This feature is in Alpha test and the Json schema may be it's not stable . We are waiting for real feadbacks and suggestions to improve its efficacity,quality and stability. To contact the author ,please send a direct email to <b> assem.ch[at]gmail.com</b> or to the mailing list <b>alfanous [at] googlegroups.com</b>
- <br/><br/> For more details visit the page of this service <a href="http://wiki.alfanous.org/doku.php?id=json_web_service">here</a>
- """
-
-
-
-##tests
-#a=suggest("الحم")
-#print results("الحمد")
-
-
-
-