diff options
author | Star Rauchenberger <fefferburbia@gmail.com> | 2024-12-07 10:33:07 -0500 |
---|---|---|
committer | Star Rauchenberger <fefferburbia@gmail.com> | 2024-12-07 10:33:07 -0500 |
commit | 9681897e9ace534c4559fa9be20aa86af1a42e13 (patch) | |
tree | 85fbe155f6d1db7f8e232dac40be109fa066f9ed /app | |
parent | de217df62df5725450ba7fd0084a00a8ebe24599 (diff) | |
download | thoughts-9681897e9ace534c4559fa9be20aa86af1a42e13.tar.gz thoughts-9681897e9ace534c4559fa9be20aa86af1a42e13.tar.bz2 thoughts-9681897e9ace534c4559fa9be20aa86af1a42e13.zip |
Add daily upvote email like AO3 kudos
Diffstat (limited to 'app')
-rw-r--r-- | app/mailers/vote_mailer.rb | 7 | ||||
-rw-r--r-- | app/models/quote.rb | 4 | ||||
-rw-r--r-- | app/views/vote_mailer/daily_report_email.html.haml | 8 | ||||
-rw-r--r-- | app/views/vote_mailer/daily_report_email.text.erb | 5 |
4 files changed, 24 insertions, 0 deletions
diff --git a/app/mailers/vote_mailer.rb b/app/mailers/vote_mailer.rb new file mode 100644 index 0000000..77ac3d1 --- /dev/null +++ b/app/mailers/vote_mailer.rb | |||
@@ -0,0 +1,7 @@ | |||
1 | class VoteMailer < ApplicationMailer | ||
2 | def daily_report_email | ||
3 | @entries = params[:votes].group_by { |v| "#{v.votable_type}_#{v.votable_id}" }.values | ||
4 | # weird way of getting the admin's email | ||
5 | mail to: User.first.email, subject: "[Four Island] You have upvotes!" | ||
6 | end | ||
7 | end | ||
diff --git a/app/models/quote.rb b/app/models/quote.rb index 518d53b..3301667 100644 --- a/app/models/quote.rb +++ b/app/models/quote.rb | |||
@@ -17,6 +17,10 @@ class Quote < ApplicationRecord | |||
17 | scope :published, -> { where(state: :published) } | 17 | scope :published, -> { where(state: :published) } |
18 | scope :pending, -> { where(state: :pending) } | 18 | scope :pending, -> { where(state: :pending) } |
19 | 19 | ||
20 | def title | ||
21 | "Quote \##{id}" | ||
22 | end | ||
23 | |||
20 | def published_date | 24 | def published_date |
21 | created_at.strftime("%B %d %Y at %I:%M:%S") + created_at.strftime(" %p").downcase + created_at.strftime(" %Z") | 25 | created_at.strftime("%B %d %Y at %I:%M:%S") + created_at.strftime(" %p").downcase + created_at.strftime(" %Z") |
22 | end | 26 | end |
diff --git a/app/views/vote_mailer/daily_report_email.html.haml b/app/views/vote_mailer/daily_report_email.html.haml new file mode 100644 index 0000000..ab54df2 --- /dev/null +++ b/app/views/vote_mailer/daily_report_email.html.haml | |||
@@ -0,0 +1,8 @@ | |||
1 | %p | ||
2 | Users have upvoted content on Four Island in the last day! | ||
3 | %ul | ||
4 | - @entries.each do |entry| | ||
5 | %li | ||
6 | %strong= pluralize(entry.size, "person") | ||
7 | left an upvote on | ||
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 new file mode 100644 index 0000000..22ea368 --- /dev/null +++ b/app/views/vote_mailer/daily_report_email.text.erb | |||
@@ -0,0 +1,5 @@ | |||
1 | Users have upvoted content on Four Island in the last day! | ||
2 | |||
3 | <% @entries.each do |entry| %> | ||
4 | - <%= pluralize(entry.size, "person") %> left an upvote on <%= entry.first.votable.title %> (<%= url_for(entry.first.votable) %>) | ||
5 | <% end %> | ||