about summary refs log tree commit diff stats
path: root/app
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2024-12-07 16:11:31 -0500
committerStar Rauchenberger <fefferburbia@gmail.com>2024-12-07 16:11:31 -0500
commit222dbaf5c23b41eabb75a83784bd4d110e981547 (patch)
treeb62c594df5c41e5d3e3ee38d6a543adb1daa8539 /app
parenta996f3bd05fc480247fd112f23fa3e67f7d5d7b5 (diff)
downloadthoughts-222dbaf5c23b41eabb75a83784bd4d110e981547.tar.gz
thoughts-222dbaf5c23b41eabb75a83784bd4d110e981547.tar.bz2
thoughts-222dbaf5c23b41eabb75a83784bd4d110e981547.zip
Daily upvote email now includes details about webmention likes
Diffstat (limited to 'app')
-rw-r--r--app/helpers/votes_helper.rb32
-rw-r--r--app/mailers/vote_mailer.rb2
-rw-r--r--app/views/vote_mailer/daily_report_email.html.haml4
-rw-r--r--app/views/vote_mailer/daily_report_email.text.erb2
4 files changed, 37 insertions, 3 deletions
diff --git a/app/helpers/votes_helper.rb b/app/helpers/votes_helper.rb new file mode 100644 index 0000000..169d7bf --- /dev/null +++ b/app/helpers/votes_helper.rb
@@ -0,0 +1,32 @@
1module VotesHelper
2
3 def voters_list(votes, html = false)
4 voters = votes.select {|v| !v.liker_url.nil?}.map do |v|
5 if html
6 tag.strong(link_to v.liker_name, v.liker_url)
7 else
8 "#{v.liker_name} (#{v.liker_url})"
9 end
10 end
11
12 anons = votes.select {|v| v.liker_url.nil?}.size
13 if anons > 0
14 if voters.empty? && anons == 1
15 if html
16 voters << tag.strong("A guest")
17 else
18 voters << "A guest"
19 end
20 else
21 if html
22 voters << tag.strong(pluralize(anons, "guest"))
23 else
24 voters << pluralize(anons, "guest")
25 end
26 end
27 end
28
29 to_sentence(voters)
30 end
31
32end
diff --git a/app/mailers/vote_mailer.rb b/app/mailers/vote_mailer.rb index 77ac3d1..90d2868 100644 --- a/app/mailers/vote_mailer.rb +++ b/app/mailers/vote_mailer.rb
@@ -1,4 +1,6 @@
1class VoteMailer < ApplicationMailer 1class VoteMailer < ApplicationMailer
2 helper :votes
3
2 def daily_report_email 4 def daily_report_email
3 @entries = params[:votes].group_by { |v| "#{v.votable_type}_#{v.votable_id}" }.values 5 @entries = params[:votes].group_by { |v| "#{v.votable_type}_#{v.votable_id}" }.values
4 # weird way of getting the admin's email 6 # weird way of getting the admin's email
diff --git a/app/views/vote_mailer/daily_report_email.html.haml b/app/views/vote_mailer/daily_report_email.html.haml index ab54df2..33458f1 100644 --- a/app/views/vote_mailer/daily_report_email.html.haml +++ b/app/views/vote_mailer/daily_report_email.html.haml
@@ -3,6 +3,6 @@
3%ul 3%ul
4 - @entries.each do |entry| 4 - @entries.each do |entry|
5 %li 5 %li
6 %strong= pluralize(entry.size, "person") 6 = voters_list(entry, html: true)
7 left an upvote on 7 upvoted
8 = link_to entry.first.votable.title, entry.first.votable, style: "font-weight: bold; font-style: italic" 8 = link_to entry.first.votable.title, entry.first.votable, style: "font-weight: bold; font-style: italic"
diff --git a/app/views/vote_mailer/daily_report_email.text.erb b/app/views/vote_mailer/daily_report_email.text.erb index 22ea368..5fc0b31 100644 --- a/app/views/vote_mailer/daily_report_email.text.erb +++ b/app/views/vote_mailer/daily_report_email.text.erb
@@ -1,5 +1,5 @@
1Users have upvoted content on Four Island in the last day! 1Users have upvoted content on Four Island in the last day!
2 2
3<% @entries.each do |entry| %> 3<% @entries.each do |entry| %>
4- <%= pluralize(entry.size, "person") %> left an upvote on <%= entry.first.votable.title %> (<%= url_for(entry.first.votable) %>) 4- <%= voters_list(entry) %> upvoted <%= entry.first.votable.title %> (<%= url_for(entry.first.votable) %>)
5<% end %> 5<% end %>