store post view counts in reportbooru/fetch view counts from reportbooru #2128
This commit is contained in:
@@ -25,6 +25,7 @@
|
||||
this.initialize_post_image_resize_links();
|
||||
this.initialize_post_image_resize_to_window_link();
|
||||
this.initialize_similar();
|
||||
this.initialize_view_count();
|
||||
|
||||
if (Danbooru.meta("always-resize-images") === "true") {
|
||||
$("#image-resize-to-window-link").click();
|
||||
@@ -529,6 +530,25 @@
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Danbooru.Post.initialize_view_count = function() {
|
||||
if ($("#views-for-post").length) {
|
||||
$("#views-for-post-li").hide();
|
||||
var current_post_id = $("meta[name=post-id]").attr("content");
|
||||
$.ajax({
|
||||
url: Danbooru.meta("report-server") + "/hits/pv-" + current_post_id,
|
||||
success: function(data) {
|
||||
$("#views-for-post").html(data);
|
||||
$("#views-for-post-li").show();
|
||||
},
|
||||
dataType: "text"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Danbooru.Post.set_view_count = function(count) {
|
||||
$("#views-for-post").html(count);
|
||||
}
|
||||
})();
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
@@ -1,4 +1,20 @@
|
||||
module PostsHelper
|
||||
def post_view_count_js
|
||||
return nil unless Danbooru.config.enable_view_counts
|
||||
|
||||
if action_name == "index"
|
||||
return nil
|
||||
elsif action_name == "show"
|
||||
key = "show-#{params[:id]}"
|
||||
value = session.id
|
||||
digest = OpenSSL::Digest.new("sha256")
|
||||
sig = OpenSSL::HMAC.hexdigest(digest, Danbooru.config.shared_remote_key, "#{key},#{value}")
|
||||
return render("posts/partials/show/view_count", key: key, value: value, sig: sig)
|
||||
end
|
||||
|
||||
return nil
|
||||
end
|
||||
|
||||
def resize_image_links(post, user)
|
||||
links = []
|
||||
|
||||
|
||||
@@ -14,6 +14,9 @@
|
||||
<li>Source: <%= post_source_tag(post) %></li>
|
||||
<li>Rating: <%= post.pretty_rating %></li>
|
||||
<li>Score: <span id="score-for-post-<%= post.id %>"><%= post.score %></span> <% if CurrentUser.is_gold? %>(<span id="vote-links-for-post-<%= post.id %>">vote <%= link_to "up", post_votes_path(:post_id => post.id, :score => "up"), :remote => true, :method => :post %>/<%= link_to "down", post_votes_path(:post_id => post.id, :score => "down"), :remote => true, :method => :post %></span><%= link_to "unvote", unvote_post_path(post), :remote => true, :method => :put, :id => "unvote-link-for-post-#{post.id}", :class => "unvote-post-link" %>)<% end %></li>
|
||||
<% if Danbooru.config.enable_view_counts %>
|
||||
<li id="views-for-post-li">Views: <span id="views-for-post"><em>loading...</em></span></li>
|
||||
<% end %>
|
||||
<li>Favorites: <span id="favcount-for-post-<%= post.id %>"><%= post.fav_count %></span>
|
||||
<% if CurrentUser.is_gold? %>
|
||||
<%= link_to "Show »".html_safe, "#", :id => "show-favlist-link" %>
|
||||
|
||||
9
app/views/posts/partials/show/_view_count.html.erb
Normal file
9
app/views/posts/partials/show/_view_count.html.erb
Normal file
@@ -0,0 +1,9 @@
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
$.post("<%= Danbooru.config.report_server %>/hits", {
|
||||
key: "<%= key %>",
|
||||
value: "<%= value %>",
|
||||
sig: "<%= sig %>"
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@@ -139,6 +139,8 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<%= post_view_count_js %>
|
||||
|
||||
<% content_for(:page_title) do %>
|
||||
<%= @post.presenter.humanized_essential_tag_string %> - <%= Danbooru.config.app_name %>
|
||||
<% end %>
|
||||
@@ -158,6 +160,10 @@
|
||||
<meta property="og:description" content="<%= @post.presenter.humanized_tag_string %>">
|
||||
<meta property="og:image" content="http://<%= Danbooru.config.hostname %><%= @post.large_file_url %>">
|
||||
|
||||
<% if Danbooru.config.enable_view_counts %>
|
||||
<meta name="report-server" content="<%= Danbooru.config.report_server %>">
|
||||
<% end %>
|
||||
|
||||
<!-- Twitter properties -->
|
||||
<% if @post.twitter_card_supported? %>
|
||||
<meta name="twitter:card" content="photo">
|
||||
|
||||
@@ -347,5 +347,17 @@ module Danbooru
|
||||
|
||||
def twitter_api_secret
|
||||
end
|
||||
|
||||
def shared_remote_key
|
||||
"blah blah blah blah blah blah"
|
||||
end
|
||||
|
||||
def report_server
|
||||
"https://isshiki.donmai.us"
|
||||
end
|
||||
|
||||
def enable_view_counts
|
||||
false
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user