From 7b2c2d60b388d9f021f102b2a4ec7d28a7b4d068 Mon Sep 17 00:00:00 2001 From: David Beniamine <david.beniamine@tetras-libre.fr> Date: Mon, 25 May 2020 18:13:15 +0200 Subject: [PATCH] WIP unl.ru connecteur Template not finished (imported from unl2rdf) --- src/app/app.py | 34 ++++++++++ src/app/templates/text2unl.html | 110 ++++++++++++++++++++++++++++++++ 2 files changed, 144 insertions(+) create mode 100644 src/app/templates/text2unl.html diff --git a/src/app/app.py b/src/app/app.py index da0a6d3..d0f0f13 100644 --- a/src/app/app.py +++ b/src/app/app.py @@ -6,6 +6,7 @@ from flask import render_template import tempfile from subprocess import Popen, PIPE, STDOUT import os +import requests app = Flask(__name__) @@ -28,6 +29,18 @@ def unl2rdf(): return render_template('unl2rdf.html', unl=unl, output=output) +@app.route('/text2unl', methods=['GET', 'POST']) +def text2unl(): + if request.method == 'POST': + text = request.form['text'] + language = request.form['language'] + output = {'unl': convertTextToUnl(text, language)} + else: + text = None + output = None + return render_template('text2unl.html', text=text, output=output) + + def convertUnl(unl, outputs): res = {} @@ -79,3 +92,24 @@ def convertUnl(unl, outputs): res['svg'] = 'Error : no dot file' return res + + +def convertTextToUnl(text, language): + url = "http://unl.ru/etap-cgi/etap-cgi-old/cgiunl.exe" + + data = { + 'DOMAIN': 'SPORT', + 'password': 'guest', + 'TAGERROR': 'NO', + 'username': 'UNL_guest', + 'conversion': 'true', + 'language': language, + 'data': text, + 'outputmode': 'text', + 'coding': 'utf-8', + 'translate': 'Process' + } + + r = requests.post(url, data) + # Remove garbage before first '[' + return ''.join(r.text.partition('[')[1:]) diff --git a/src/app/templates/text2unl.html b/src/app/templates/text2unl.html new file mode 100644 index 0000000..fd2067e --- /dev/null +++ b/src/app/templates/text2unl.html @@ -0,0 +1,110 @@ +{% extends "base.html" %} +{% block title %}Text 2 unl demo{% endblock %} +{% block content %} +{% if not text %} +<form action="{{request.path}}" method="POST"> + <h1>Enter some text here I will convert it unsing unl.ru for you</h1> + <div class="form-group row"> + <div class="col-12 col-md-8"> + <h2>Text</h3> + <textarea class="form-control" name="unl" cols="120" rows="30" > +The black cat and the white cat are eating. + </textarea> + </div> + <div class="col-4"> + <h3>Settings</h2> + <ul> + <li><label><input type="radio" name="language" value="en" checked>English</label></li> + <li><label><input type="radio" name="language" value="ru">Russian</label></li> + </ul> + <button class="btn btn-primary" type="submit">Submit</button> + </div> + </div> +</form> +{% else %} +<div class="row"> + {% if output['error'] %} + <div class='col-12 md-6'> + <h2> Error </h2> + <pre> + {{ output['error'] }} + </pre> + </div> + {% endif %} + + {% if output['unl'] %} + <div class='col-12 md-6'> + <h2> Unl </h2> + <div class='row justify-content-center'> + <div class='col-3'> + <button class="btn btn-primary" type="button" onclick="download('text.ttl', 'svg', 'html', + 'image/svg+xml')">Download image <i class="fas fa-download" + ></i></button> + </div> + <div class='col-3'> + <button class="btn btn-primary" type="button" onclick="download('graph.dot', 'dot', 'text', + 'text/plain;charset=utf-8')">Download source <i class="fas + fa-download" ></i></button> + </div> + <div class='col-3'> + <button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#svg" aria-expanded="true" aria-controls="svg">Toggle image</button> + </div> + <div class='col-3'> + <button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#dotdiv" aria-expanded="false" aria-controls="dotdiv">Toggle source</button> + </div> + </div> + <div id='svg' class='collapse show'> + {{ output['svg'] | safe }} + </div> + <div id='dotdiv' class='collapse'> + <pre> + <code id='dot'> + {{ output['dot'] }} + </code> + </pre> + </div> + </div> + {% endif %} + + {% if output['rdf'] %} + <div class='col-12 md-6'> + <h2> RDF </h2> + <div class='row justify-content-center'> + <div class='col-3'> + <button class="btn btn-primary" type="button" onclick="download('out.ttl', 'rdf', 'text', 'application/x-turtle')">Download RDF <i class="fas fa-download" ></i></button> + </div> + <div class='col-3'> + <button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#rdf" aria-expanded="true" aria-controls="rdf">Toggle RDF</button> + </div> + </div> + + <pre> + <code id='rdf' class='collapse show'> + {{ output['rdf'] }} + </code> + </pre> + </div> + {% endif %} + + <div class='col-12 md-6'> + <h2> UNL </h2> + <div class='row justify-content-center'> + <div class='col-3'> + <button class="btn btn-primary" type="button" onclick="download('in.unl', 'unl', 'text', 'text/plain;charset=utf-8')">Download UNL <i class="fas fa-download" ></i></button> + </div> + <div class='col-3'> + <button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#unl" aria-expanded="true" aria-controls="unl">Toggle UNL</button> + </div> + </div> + + + <pre> + <code id='unl' class='collapse show'> + {{ unl }} + </code> + </pre> + </div> + +</div> +{% endif %} +{% endblock %} -- GitLab