lib/rewritten/server.rb in rewritten-0.1.0 vs lib/rewritten/server.rb in rewritten-0.2.0
- old
+ new
@@ -76,10 +76,15 @@
when 'zset'
Resque.redis.zrange(key, start, start + 20)
end
end
+ def extract_translations
+ text = params[:translations] or ""
+ text.split("\n").map(&:strip).reject(&:empty?)
+ end
+
def show_args(args)
Array(args).map { |a| a.inspect }.join("\n")
end
def worker_hosts
@@ -171,16 +176,45 @@
show 'translations'
end
get "/new" do
+ @translations = []
show "new"
end
+ get "/edit" do
+ @old_to = @to = params[:to]
+ @translations = Rewritten.get_all_translations(@to)
+ show "edit"
+ end
+
+ post "/edit" do
+
+ @old_to = params[:old].strip
+ @to = params[:to].strip
+ @translations = extract_translations
+
+ if @to != '' and @translations.size > 0
+
+ # delete old translations
+ Rewritten.remove_all_translations(@old_to)
+ # create new translations
+ Rewritten.add_translations(@to, @translations)
+
+ redirect u("/to?to=#{escape(@to)}")
+ else
+ show "edit"
+ end
+
+ end
+
post "/translations" do
- if params[:from]!='' && params[:to]!=''
- Rewritten.add_translation(params[:from], params[:to])
+ @to = params[:to].strip
+ @translations = extract_translations
+ if @to != '' && @translations.size > 0
+ Rewritten.add_translations(@to, @translations)
redirect u('translations')
else
show "new"
end
end
@@ -188,29 +222,43 @@
get "/to" do
translations = Rewritten.list_range(params[:to], 0, -1)
show "to"
end
+ get "/cleanup" do
+ # find keys that have no target
+ @from_without_tos= []
+ Rewritten.redis.lrange("froms", 0, -1).each do |from|
+ if Rewritten.redis.get("from:#{from}").empty?
+ @from_without_tos << from
+ end
+ end
+
+ show "cleanup"
+ end
+
get "/delete" do
@from = params[:from]
@to = params[:to]
show "delete"
end
post '/delete' do
-
from = params[:from]
to = params[:to]
-
Rewritten.remove_translation(from, to)
+ redirect u("/")
+ end
- if Rewritten.num_translations(to) > 0
- redirect u("/to?to=#{escape(to)}")
- else
- redirect u("/")
- end
+ get "/delete_all" do
+ @to = params[:to]
+ show "delete_all"
+ end
+ post "/delete_all" do
+ Rewritten.remove_all_translations(params[:to])
+ redirect u("/")
end
get "/hits" do
show "hits"
end
@@ -223,13 +271,12 @@
Rewritten.redis.del("hits")
redirect u("/hits")
end
def self.tabs
- #@tabs ||= ["Overview", "Working", "Failed", "Queues", "Workers", "Stats"]
@tabs ||= ["Translations", "Hits"]
end
-
+
end
end