summaryrefslogtreecommitdiff
path: root/server.rb
blob: fac51d120b6bb1bdca4e0c5b95c41f501442d90d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/usr/bin/env ruby

require 'sinatra'
require 'sinatra/cross_origin'
require 'nanomsg'
require 'zipf'

set :bind, '0.0.0.0'
set :port, 31337

set :allow_origin, :any
set :allow_methods, [:get, :post, :options]
set :allow_credentials, true
set :max_age, "1728000"
set :expose_headers, ['Content-Type']

sock = NanoMsg::PairSocket.new
addr = "ipc:///tmp/dtrain.ipc"
sock.bind addr

input = ReadFile.readlines_strip "model/src.gz"
input_ = Array.new input

get '/' do
  cross_origin
  "Nothing to see here."
end

get '/next' do
  cross_origin
  if params[:example]
    sock.send params[:example].strip
    puts params.to_s
    sock.recv # dummy
  end
  src = input.shift
  if !src
    puts "end of input, sending 'fi'"
    "fi"
  else
    puts "sending source '#{src}' ..."
    sock.send "act:translate ||| #{src}"
    puts "done"
    sleep 1
    puts "waiting for translation ..."
    t = sock.recv
    puts "got translation '#{t}'"
    "#{src}\t#{t}"
  end
end

get '/reset' do
  cross_origin
  input = Array.new input_
  "done"
end