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_links();
|
||||||
this.initialize_post_image_resize_to_window_link();
|
this.initialize_post_image_resize_to_window_link();
|
||||||
this.initialize_similar();
|
this.initialize_similar();
|
||||||
|
this.initialize_view_count();
|
||||||
|
|
||||||
if (Danbooru.meta("always-resize-images") === "true") {
|
if (Danbooru.meta("always-resize-images") === "true") {
|
||||||
$("#image-resize-to-window-link").click();
|
$("#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() {
|
$(document).ready(function() {
|
||||||
|
|||||||
@@ -1,4 +1,20 @@
|
|||||||
module PostsHelper
|
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)
|
def resize_image_links(post, user)
|
||||||
links = []
|
links = []
|
||||||
|
|
||||||
|
|||||||
@@ -14,6 +14,9 @@
|
|||||||
<li>Source: <%= post_source_tag(post) %></li>
|
<li>Source: <%= post_source_tag(post) %></li>
|
||||||
<li>Rating: <%= post.pretty_rating %></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>
|
<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>
|
<li>Favorites: <span id="favcount-for-post-<%= post.id %>"><%= post.fav_count %></span>
|
||||||
<% if CurrentUser.is_gold? %>
|
<% if CurrentUser.is_gold? %>
|
||||||
<%= link_to "Show »".html_safe, "#", :id => "show-favlist-link" %>
|
<%= 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>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<%= post_view_count_js %>
|
||||||
|
|
||||||
<% content_for(:page_title) do %>
|
<% content_for(:page_title) do %>
|
||||||
<%= @post.presenter.humanized_essential_tag_string %> - <%= Danbooru.config.app_name %>
|
<%= @post.presenter.humanized_essential_tag_string %> - <%= Danbooru.config.app_name %>
|
||||||
<% end %>
|
<% end %>
|
||||||
@@ -158,6 +160,10 @@
|
|||||||
<meta property="og:description" content="<%= @post.presenter.humanized_tag_string %>">
|
<meta property="og:description" content="<%= @post.presenter.humanized_tag_string %>">
|
||||||
<meta property="og:image" content="http://<%= Danbooru.config.hostname %><%= @post.large_file_url %>">
|
<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 -->
|
<!-- Twitter properties -->
|
||||||
<% if @post.twitter_card_supported? %>
|
<% if @post.twitter_card_supported? %>
|
||||||
<meta name="twitter:card" content="photo">
|
<meta name="twitter:card" content="photo">
|
||||||
|
|||||||
@@ -347,5 +347,17 @@ module Danbooru
|
|||||||
|
|
||||||
def twitter_api_secret
|
def twitter_api_secret
|
||||||
end
|
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
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user