diff --git a/app/assets/stylesheets/specific/posts.css.scss b/app/assets/stylesheets/specific/posts.css.scss
index 8876aedb7..9ccdc65a4 100644
--- a/app/assets/stylesheets/specific/posts.css.scss
+++ b/app/assets/stylesheets/specific/posts.css.scss
@@ -171,12 +171,14 @@ div#c-post-versions {
color: green;
text-decoration: none;
margin-right: 0.5em;
+ word-wrap: break-word
}
del, del a {
color: red;
text-decoration: line-through;
margin-right: 0.5em;
+ word-wrap: break-word
}
}
}
diff --git a/app/controllers/legacy_controller.rb b/app/controllers/legacy_controller.rb
index b74125c93..1c4ea040b 100644
--- a/app/controllers/legacy_controller.rb
+++ b/app/controllers/legacy_controller.rb
@@ -3,6 +3,14 @@ class LegacyController < ApplicationController
@post_set = PostSets::Post.new(tag_query, params[:page], params[:limit])
@posts = @post_set.posts
end
+
+ def users
+ @users = User.search(params).limit(100)
+ end
+
+ def tags
+ @tags = Tag.search(params).limit(100)
+ end
private
def tag_query
diff --git a/app/models/post_version.rb b/app/models/post_version.rb
index ab8fcf2c3..4ff91cbc5 100644
--- a/app/models/post_version.rb
+++ b/app/models/post_version.rb
@@ -97,4 +97,7 @@ class PostVersion < ActiveRecord::Base
PostVersion.where("post_id = ? and id < ?", post_id, id).order("id desc").first
end
+ def truncated_source
+ source.gsub(/^http:\/\//, "").sub(/\/.+/, "")
+ end
end
diff --git a/app/models/tag.rb b/app/models/tag.rb
index 7ff5b5581..7d9ed82f5 100644
--- a/app/models/tag.rb
+++ b/app/models/tag.rb
@@ -3,6 +3,19 @@ class Tag < ActiveRecord::Base
after_save :update_category_cache
has_one :wiki_page, :foreign_key => "name", :primary_key => "title"
+ module ApiMethods
+ def to_legacy_json
+ return {
+ "name" => name,
+ "id" => id,
+ "created_at" => created_at.strftime("%Y-%m-%d %H:%M"),
+ "count" => post_count,
+ "type" => category,
+ "ambiguous" => false
+ }.to_json
+ end
+ end
+
class CategoryMapping
Danbooru.config.reverse_tag_category_mapping.each do |value, category|
define_method(category.downcase) do
@@ -399,6 +412,7 @@ class Tag < ActiveRecord::Base
end
end
+ include ApiMethods
extend CountMethods
extend ViewCountMethods
include CategoryMethods
diff --git a/app/models/user.rb b/app/models/user.rb
index e32c478de..56f6f2a5c 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -411,6 +411,15 @@ class User < ActiveRecord::Base
options[:except] += hidden_attributes
super(options, &block)
end
+
+ def to_legacy_json
+ return {
+ "name" => name,
+ "id" => id,
+ "level" => level,
+ "created_at" => created_at.strftime("%Y-%m-%d %H:%M")
+ }.to_json
+ end
end
module SearchMethods
@@ -446,6 +455,10 @@ class User < ActiveRecord::Base
q = scoped
return q if params.blank?
+ if params[:name]
+ q = q.name_matches(params[:name])
+ end
+
if params[:name_matches]
q = q.name_matches(params[:name_matches])
end
diff --git a/app/views/legacy/tags.xml.erb b/app/views/legacy/tags.xml.erb
new file mode 100644
index 000000000..071f28936
--- /dev/null
+++ b/app/views/legacy/tags.xml.erb
@@ -0,0 +1,6 @@
+
+
+ <% @tags.each do |tag| %>
+
+ <% end %>
+
diff --git a/app/views/legacy/users.json.erb b/app/views/legacy/users.json.erb
new file mode 100644
index 000000000..296d0b8e0
--- /dev/null
+++ b/app/views/legacy/users.json.erb
@@ -0,0 +1 @@
+[<%= @users.map {|x| x.to_legacy_json}.join(", ").html_safe %>]
diff --git a/app/views/legacy/users.xml.erb b/app/views/legacy/users.xml.erb
new file mode 100644
index 000000000..fe0dcb2c1
--- /dev/null
+++ b/app/views/legacy/users.xml.erb
@@ -0,0 +1,6 @@
+
+
+ <% @users.each do |user| %>
+
+ <% end %>
+
diff --git a/config/routes.rb b/config/routes.rb
index dd97da9fd..1aa057829 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -236,9 +236,13 @@ Danbooru::Application.routes.draw do
match "/post_tag_history" => redirect {|params, req| "/post_versions?page=#{req.params[:page]}"}
match "/post_tag_history/index" => redirect {|params, req| "/post_versions?page=#{req.params[:page]}"}
+ match "/tag/index.xml", :controller => "legacy", :action => "tags", :format => "xml"
+ match "/tag/index.json", :controller => "legacy", :action => "tags", :format => "json"
match "/tag" => redirect {|params, req| "/tags?page=#{req.params[:page]}"}
match "/tag/index" => redirect {|params, req| "/tags?page=#{req.params[:page]}"}
+ match "/user/index.xml", :controller => "legacy", :action => "users", :format => "xml"
+ match "/user/index.json", :controller => "legacy", :action => "users", :format => "json"
match "/user" => redirect {|params, req| "/users?page=#{req.params[:page]}"}
match "/user/index" => redirect {|params, req| "/users?page=#{req.params[:page]}"}