-
Notifications
You must be signed in to change notification settings - Fork 0
/
server.rb
63 lines (57 loc) · 1.51 KB
/
server.rb
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
58
59
60
61
62
require 'sinatra'
require 'json'
require_relative "lib/geocode_helper"
require 'find'
require 'exifr'
require 'tilt/haml'
set :bind, '0.0.0.0'
before '/' do
end
get '/scan' do
content_type :html
dir = Dir.pwd + '/public/images'
image_list = {}
Find.find(dir) do |file|
if file =~ /.jpg$/i
begin
shortname = file.split("/").last
longitude = EXIFR::JPEG.new(file).gps.longitude
latitude = EXIFR::JPEG.new(file).gps.latitude
GH = Geocode_helper.new latitude, longitude
image_list[file] = {:longitude => longitude, :latitude => latitude, :name => shortname, :info => GH.get_address_data.inspect}
rescue
puts "rescued"
end
end
puts image_list.inspect
end
haml :show_pics, :locals => {:list => image_list}
end
get '/' do
content_type :json
data = {
:status => "OK",
:timestamp => Time.now.to_s
}
if params["latitude"] and params["longitude"]
data[:latitude] = params["latitude"]
data[:longitude] = params["longitude"]
GH = Geocode_helper.new params["latitude"], params["longitude"]
data[:address_data] = GH.get_address_data
end
data.to_json
end
post '/' do
content_type :json
data = {
:status => "OK",
:timestamp => Time.now.to_s
}
if params["latitude"] and params["longitude"]
data[:latitude] = params["latitude"]
data[:longitude] = params["longitude"]
GH = Geocode_helper.new params["latitude"], params["longitude"]
data[:address_data] = GH.get_address_data
end
data.to_json
end