views.py 3.77 KB
Newer Older
Sylvain Coulange's avatar
Sylvain Coulange committed
1
2
from django.shortcuts import render, HttpResponseRedirect
from static.scripts import textPhonographer as txtphono
3
from .models import Phonograph, Data, Entree, commitData
4
5
from django.http import JsonResponse
import json
Sylvain Coulange's avatar
Sylvain Coulange committed
6
import spacy
7
import subprocess
8
import re
9

10
nlpFr = spacy.load('fr')
Sylvain Coulange's avatar
Sylvain Coulange committed
11
nlpEn = spacy.load("en_core_web_sm")
12
logFile = "../logs/dico_frwiktionary-20200301_v2.log"
Sylvain Coulange's avatar
Sylvain Coulange committed
13
14

def redirApp(request):
Sylvain Coulange's avatar
Sylvain Coulange committed
15
    return HttpResponseRedirect('/')
Sylvain Coulange's avatar
Sylvain Coulange committed
16
17

def main(request):
18
19
    data = Data()
    data.update = updateTime()
Sylvain Coulange's avatar
Sylvain Coulange committed
20
21
    return render(request, 'coloriseur.html', {'data': data})

22
23
24
25
def colorize(request):
    colis = json.loads(request.body)
    text = colis['inText']
    lang = colis['lang']
Sylvain Coulange's avatar
Sylvain Coulange committed
26
27
28
29
    if lang == "fr":
        nlpText = nlpFr(text)
    elif lang == "en":
        nlpText = nlpEn(text)
30
31
32
33
34
35
36
37
38
39
40
    outText = []

    for token in nlpText:
        sdl = re.findall(r'\r\n',token.text)
        print("sdl =",sdl)
        if len(sdl) > 0:
            for s in sdl:
                print("Saut de ligne.")
                outText.append('§')
        else:
            print("Mot en entrée :",token.text)
Sylvain Coulange's avatar
Sylvain Coulange committed
41
42
43
44
            if lang == "en":
                result = txtphono.mimi(token.text,lang)
            else:
                result = txtphono.mimi(token.text,lang)
45
46
47
48
49
            print(result)
        
            phonographieList = []
            for r in result:      
                phonographie = []
Sylvain Coulange's avatar
Sylvain Coulange committed
50
                for i in r[0]:
51
52
53
54
                    ph = {}
                    ph['phon'] = i[0]
                    ph['graph'] = i[1]
                    phonographie.append(ph)
Sylvain Coulange's avatar
Sylvain Coulange committed
55
                phonographieList.append((phonographie,r[1],r[2],r[3]))
56
57
58
59
60
61
            outText.append(phonographieList)
    rep = {
        'outText': outText
    }
    return JsonResponse(rep)

62
63
def updateTime():
    upd = str(subprocess.check_output(["git", "log", "-1", "--format=%cd", "--date=short"]))
64
    #ver = str(subprocess.check_output(["git", "rev-list", "--all", "--count"]))
Sylvain Coulange's avatar
Sylvain Coulange committed
65
    return 'Version 4.0 (mis à jour le '+upd[2:-3]+')'
Sylvain Coulange's avatar
Sylvain Coulange committed
66

67
68
69
def main0(request):
    data = Data()
    data.text = ''
Sylvain Coulange's avatar
Sylvain Coulange committed
70
    data.pphh = [[[]]]
71
    data.update = updateTime()
Sylvain Coulange's avatar
Sylvain Coulange committed
72
    data.colorType = 'sw'
73
    data.defaultBg = 'black'
74
75
76
    return render(request, 'coloriseur.html', {'data': data})


Sylvain Coulange's avatar
Sylvain Coulange committed
77
78
def dicoView(request):
    data = Entree()
79
    data.update = updateTime()
80
    data.lenDic = txtphono.getLenDic()
81
    data.logStat = txtphono.getLogStat()
Sylvain Coulange's avatar
Sylvain Coulange committed
82
83
    return render(request, 'editDico.html', {'data': data})

84
85
86
87
88
89
90
def dicoReq(request):
    listeEntrees = []
    mot = request.GET.get('mot', None)
    trans = request.GET.get('trans', None)
    motCond = request.GET.get('motCond', None)
    transCond = request.GET.get('transCond', None)
    
Sylvain Coulange's avatar
Sylvain Coulange committed
91
    rep = {
Sylvain Coulange's avatar
Sylvain Coulange committed
92
        "listeEntrees" : txtphono.getEntryByWord(m=mot,mc=motCond,t=trans,tc=transCond,lang='fr')
Sylvain Coulange's avatar
Sylvain Coulange committed
93
94
95
96
97
98
99
100
101
102
    }
    return JsonResponse(rep)

def get_client_ip(request):
    x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
    if x_forwarded_for:
        ip = x_forwarded_for.split(',')[0]
    else:
        ip = request.META.get('REMOTE_ADDR')
    return ip
103

Sylvain Coulange's avatar
Sylvain Coulange committed
104
105
106
107
108
def editEntry(request):
    mot = request.GET.get('mot', None)
    transList = request.GET.get('transList', None)
    ipCli = get_client_ip(request)
    rep = {
Sylvain Coulange's avatar
Sylvain Coulange committed
109
        'reponse': txtphono.modifEntry(ipCli,mot,transList,'fr')
Sylvain Coulange's avatar
Sylvain Coulange committed
110
111
    }
    return JsonResponse(rep)
Sylvain Coulange's avatar
Sylvain Coulange committed
112

113
def newEntry(request):
114
115
116
117
    mot = request.GET.get('mot', None)
    trans = request.GET.get('trans', None)
    ipCli = get_client_ip(request)
    rep = {
Sylvain Coulange's avatar
Sylvain Coulange committed
118
        'reponse': txtphono.addEntry(ipCli,mot,trans,'fr')
119
120
121
    }
    return JsonResponse(rep)

122
123
124
125
def supprEntry(request):
    mot = request.GET.get('mot', None)
    ipCli = get_client_ip(request)
    rep = {
Sylvain Coulange's avatar
Sylvain Coulange committed
126
        'reponse': txtphono.delEntry(ipCli,mot,'fr')
127
128
129
    }
    return JsonResponse(rep)

130
def getLog(request):
Sylvain Coulange's avatar
Sylvain Coulange committed
131
    rep = txtphono.sendMeLogPlease('fr')
132
    return JsonResponse(rep)