Subversion Repositories navi

Rev

Rev 283 | Rev 287 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
46 szabot 1
#!/usr/bin/python
2
# -*- coding: utf-8 -*-
176 muzer 3
#    This file is part of Tsim Apiak.
4
#
5
#    Tsim Apiak is free software: you can redistribute it and/or modify
6
#    it under the terms of the GNU General Public Licence as published by
7
#    the Free Software Foundation, either version 3 of the Licence, or
8
#    (at your option) any later version.
9
#
10
#    In addition to this, you must also comply with clause 4 of the
11
#    Apache Licence, version 2.0, concerning attribution. Where there
12
#    is a contradiction between the two licences, the GPL
13
#    takes preference.
14
#
186 szabot 15
#    Tsim Apiak is distributed in the hope that it will be useful,
176 muzer 16
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
17
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18
#    GNU General Public License for more details.
19
#
20
#    You should have received a copy of the GNU General Public License
21
#    along with Tsim Apiak.  If not, see <http://www.gnu.org/licenses/>.
46 szabot 22
 
176 muzer 23
 
283 muzer 24
import mysql.connector as mysql
46 szabot 25
 
26
def getnavilist():
27
    ret = []
283 muzer 28
    db = mysql.connect(host="127.0.0.1", db="navi", user="navi", passwd="navi")
29
    cur = db.cursor(dictionary=True)
30
    cur.execute("""
103 szabot 31
    SELECT *
46 szabot 32
    FROM `metaWords`
275 muzer 33
    WHERE partOfSpeech <> 'num.' AND partOfSpeech <> 'prefix' AND partOfSpeech <> 'affix'
283 muzer 34
    ORDER BY CHAR_LENGTH(navi) DESC""")
35
    for row in cur:
284 muzer 36
        if row["infixes"] and row["infixes"] != "NULL": # yeah seriously
37
            ret.append({"id": row["id"], "navi": row["navi"].replace("+", "").replace("-", ""), "infix": row["infixes"].lower(), "type": row["partOfSpeech"]})
65 szabot 38
        else:
284 muzer 39
            ret.append({"id": row["id"], "navi": row["navi"].replace("+", "").replace("-", ""), "infix": row["navi"].lower(), "type": row["partOfSpeech"]})
283 muzer 40
    cur.close()
46 szabot 41
    db.close()
42
    return ret
43
 
283 muzer 44
def getaffixlists():
45
    ret = ([], [], [])
46
    db = mysql.connect(host="127.0.0.1", db="navi", user="navi", passwd="navi")
47
    cur = db.cursor(dictionary=True)
48
    cur.execute("""
49
    SELECT *
50
    FROM `metaInfixes`
51
    ORDER BY CHAR_LENGTH(navi) DESC""")
52
    for row in cur:
53
        if row["navi"] and row["navi"][0] == "-":
54
            ret[2].append({"id": row["id"], "navi": row["navi"].replace("-", ""), "gloss": row["shorthand"].upper()})
55
        elif row["navi"] and row["navi"][-1] in ("-", "+"):
56
            ret[0].append({"id": row["id"], "navi": row["navi"].replace("-", ""), "gloss": row["shorthand"].upper()})
57
        else:
284 muzer 58
            if not row["position"] or row["position"] == "NULL":
283 muzer 59
                # not actually an affix
60
                continue
61
            ret[1].append({"id": row["id"], "navi": row["navi"].replace("-", ""), "gloss": row["shorthand"].upper(), "position": int(row["position"])})
62
    cur.close()
63
    db.close()
64
    return ret
65
 
246 szabot 66
def translate(wid, language):
235 muzer 67
    ret = None
283 muzer 68
    db = mysql.connect(host="127.0.0.1", db="navi", user="navi", passwd="navi")
69
    cur = db.cursor(dictionary=True)
70
    cur.execute("""
136 muzer 71
    SELECT *
72
    FROM `localizedWords`
283 muzer 73
    WHERE id = %s AND languageCode = %s""", (wid, language))
74
    for row in cur:
136 muzer 75
        ret = row["localized"]
139 szabot 76
        break
235 muzer 77
    if ret == None:
78
        return u"ERROR: WORD NOT LOCALISED"
136 muzer 79
    db.close()
176 muzer 80
    return ret