Potlatch 0.10b

This commit is contained in:
Richard Fairhurst 2008-07-31 22:48:12 +00:00
parent 8dbaf76e7c
commit b0f0a2627d
2 changed files with 27 additions and 12 deletions

View file

@ -22,11 +22,6 @@
# return(-2,"message") <-- also asks the user to e-mail me # return(-2,"message") <-- also asks the user to e-mail me
# #
# To write to the Rails log, use RAILS_DEFAULT_LOGGER.info("message"). # To write to the Rails log, use RAILS_DEFAULT_LOGGER.info("message").
#
# == To do
#
# - Check authentication
# - Check the right things are being written to the database!
class AmfController < ApplicationController class AmfController < ApplicationController
require 'stringio' require 'stringio'
@ -73,6 +68,7 @@ class AmfController < ApplicationController
when 'getrelation'; results[index]=AMF.putdata(index,getrelation(args[0].to_i)) when 'getrelation'; results[index]=AMF.putdata(index,getrelation(args[0].to_i))
when 'getway_old'; results[index]=AMF.putdata(index,getway_old(args[0].to_i,args[1].to_i)) when 'getway_old'; results[index]=AMF.putdata(index,getway_old(args[0].to_i,args[1].to_i))
when 'getway_history'; results[index]=AMF.putdata(index,getway_history(args[0].to_i)) when 'getway_history'; results[index]=AMF.putdata(index,getway_history(args[0].to_i))
when 'getnode_history'; results[index]=AMF.putdata(index,getnode_history(args[0].to_i))
when 'putway'; r=putway(renumberednodes,*args) when 'putway'; r=putway(renumberednodes,*args)
renumberednodes=r[3] renumberednodes=r[3]
if r[1] != r[2] if r[1] != r[2]
@ -83,7 +79,7 @@ class AmfController < ApplicationController
when 'findrelations'; results[index]=AMF.putdata(index,findrelations(*args)) when 'findrelations'; results[index]=AMF.putdata(index,findrelations(*args))
when 'deleteway'; results[index]=AMF.putdata(index,deleteway(args[0],args[1].to_i)) when 'deleteway'; results[index]=AMF.putdata(index,deleteway(args[0],args[1].to_i))
when 'putpoi'; results[index]=AMF.putdata(index,putpoi(*args)) when 'putpoi'; results[index]=AMF.putdata(index,putpoi(*args))
when 'getpoi'; results[index]=AMF.putdata(index,getpoi(args[0].to_i)) when 'getpoi'; results[index]=AMF.putdata(index,getpoi(*args))
end end
end end
@ -192,15 +188,30 @@ class AmfController < ApplicationController
[0, id, points, old_way.tags, old_way.version] [0, id, points, old_way.tags, old_way.version]
end end
# Find history of a way. Returns an array of previous versions. # Find history of a way. Returns 'way', id, and
# an array of previous versions.
def getway_history(wayid) #:doc: def getway_history(wayid) #:doc:
history = Way.find(wayid).old_ways.collect do |old_way| history = Way.find(wayid).old_ways.reverse.collect do |old_way|
user = old_way.user.data_public? ? old_way.user.display_name : 'anonymous' user = old_way.user.data_public? ? old_way.user.display_name : 'anonymous'
[old_way.version, old_way.timestamp.strftime("%d %b %Y, %H:%M"), old_way.visible ? 1 : 0, user] uid = old_way.user.data_public? ? old_way.user.id : 0
[old_way.version, old_way.timestamp.strftime("%d %b %Y, %H:%M"), old_way.visible ? 1 : 0, user, uid]
end end
[history] ['way',wayid,history]
end
# Find history of a node. Returns 'node', id, and
# an array of previous versions.
def getnode_history(nodeid) #:doc:
history = Node.find(nodeid).old_nodes.reverse.collect do |old_node|
user = old_node.user.data_public? ? old_node.user.display_name : 'anonymous'
uid = old_node.user.data_public? ? old_node.user.id : 0
[old_node.timestamp.to_i, old_node.timestamp.strftime("%d %b %Y, %H:%M"), old_node.visible ? 1 : 0, user, uid]
end
['node',nodeid,history]
end end
# Get a relation with all tags and members. # Get a relation with all tags and members.
@ -427,8 +438,12 @@ class AmfController < ApplicationController
# #
# Returns array of id, long, lat, hash of tags. # Returns array of id, long, lat, hash of tags.
def getpoi(id) #:doc: def getpoi(id,timestamp) #:doc:
n = Node.find(id) if timestamp>0 then
n = OldNode.find(id, :conditions=>['UNIX_TIMESTAMP(timestamp)=?',timestamp])
else
n = Node.find(id)
end
if n if n
return [n.id, n.lon, n.lat, n.tags_as_hash] return [n.id, n.lon, n.lat, n.tags_as_hash]

Binary file not shown.