diff --git a/applications/user.moon b/applications/user.moon index efeb62a..fcbf053 100644 --- a/applications/user.moon +++ b/applications/user.moon @@ -374,3 +374,25 @@ class MoonRocksUser extends lapis.Application @flow("followings")\unfollow_object unfollowed_user, "subscription" redirect_to: @url_for unfollowed_user + + [weekly_digest: "/users/weekly_digest"]: require_login capture_errors_404 => + import Modules from require "models" + + weekly_favorites_followings_query = db.query "select object_id, count(*) from followings + where object_type = 1 and created_at >= current_date - interval '7' day + group by object_id order by count(*) desc limit 5" + + @weekly_favorites = {} + + for following in *weekly_favorites_followings_query + table.insert @weekly_favorites, Modules\find following.object_id + + Users\include_in @weekly_favorites, "user_id" + +-- render: true + + UserDigest = require "emails.user_digest" + UserDigest\send @, @current_user.email, { + current_user: @current_user, + weekly_favorites: @weekly_favorites + } diff --git a/emails/user_digest.moon b/emails/user_digest.moon index 0733081..d0efc14 100644 --- a/emails/user_digest.moon +++ b/emails/user_digest.moon @@ -1,6 +1,10 @@ +WeeklyFavoriteModules = require "widgets.base" class UserDigest extends require "emails.base" subject: => "LuaRocks Digest" content: => - h2 "Hello #{@user\name_for_display!}, here is your weekly digest from LuaRocks, enjoy!" + h2 "Hello #{@current_user\name_for_display!}, here is your weekly digest from LuaRocks, enjoy!" + + p "The more popular modules from this week!" + WeeklyFavoriteModules weekly_favorites: @weekly_favorites diff --git a/widgets/weekly_favorite_modules.moon b/widgets/weekly_favorite_modules.moon new file mode 100644 index 0000000..e25524d --- /dev/null +++ b/widgets/weekly_favorite_modules.moon @@ -0,0 +1,5 @@ +class WeeklyFavoriteModules extends require "widgets.page" + inner_content: => + p "The more popular modules from this week!" + @render_modules @weekly_favorites +