diff --git a/config/env/torrents.js b/config/env/torrents.js index a17ecfa3..7aa1c981 100644 --- a/config/env/torrents.js +++ b/config/env/torrents.js @@ -330,11 +330,25 @@ module.exports = { action: { makerCreate: {title: 'TITLE_MAKER_CREATE', content: 'CONTENT_MAKER_CREATE', enable: true}, vipStatusChanged: {title: 'TITLE_VIP_CHANGED_ADD', content: 'CONTENT_VIP_CHANGED_ADD', enable: true}, + hnrWarningAddByAnnounce: {title: 'TITLE_HNR_WARNING_ADD', content: 'CONTENT_HNR_WARNING_ADD', enable: true}, hnrWarningRemoveByAnnounce: {title: 'TITLE_HNR_WARNING_REMOVE', content: 'CONTENT_HNR_WARNING_REMOVE', enable: true}, + forumTopicNewReply: {title: 'TITLE_FORUM_NEW_TOPIC_REPLY', content: 'CONTENT_FORUM_NEW_TOPIC_REPLY', enable: true}, forumTopicThumbsUp: {title: 'TITLE_FORUM_TOPIC_THUMBS_UP', content: 'CONTENT_FORUM_TOPIC_THUMBS_UP', enable: true}, - forumReplyThumbsUp: {title: 'TITLE_FORUM_REPLY_THUMBS_UP', content: 'CONTENT_FORUM_REPLY_THUMBS_UP', enable: true} + forumReplyThumbsUp: {title: 'TITLE_FORUM_REPLY_THUMBS_UP', content: 'CONTENT_FORUM_REPLY_THUMBS_UP', enable: true}, + forumTopicDeleted: {title: 'TITLE_FORUM_TOPIC_DELETED', content: 'CONTENT_FORUM_TOPIC_DELETED', enable: true}, + forumReplyDeleted: {title: 'TITLE_FORUM_REPLY_DELETED', content: 'CONTENT_FORUM_REPLY_DELETED', enable: true}, + forumBecomeModerator: {title: 'TITLE_FORUM_BECOME_MODERATOR', content: 'CONTENT_FORUM_BECOME_MODERATOR', enable: true}, + + torrentNewComment: {title: 'TITLE_TORRENT_NEW_COMMENT', content: 'CONTENT_TORRENT_NEW_COMMENT', enable: true}, + torrentCommentDeleted: {title: 'TITLE_TORRENT_COMMENT_DELETED', content: 'CONTENT_TORRENT_COMMENT_DELETED', enable: true}, + torrentThumbsUp: {title: 'TITLE_TORRENT_THUMBS_UP', content: 'CONTENT_TORRENT_THUMBS_UP', enable: true}, + torrentReviewed: {title: 'TITLE_TORRENT_REVIEWED', content: 'CONTENT_TORRENT_REVIEWED', enable: true}, + torrentDeleted: {title: 'TITLE_TORRENT_DELETED', content: 'CONTENT_TORRENT_DELETED', enable: true}, + torrentVipChanged: {title: 'TITLE_TORRENT_VIP_CHANGED', content: 'CONTENT_TORRENT_VIP_CHANGED', enable: true}, + torrentHnRChanged: {title: 'TITLE_TORRENT_HNR_CHANGED', content: 'CONTENT_TORRENT_HNR_CHANGED', enable: true}, + torrentSaleChanged: {title: 'TITLE_TORRENT_SALE_CHANGED', content: 'CONTENT_TORRENT_SALE_CHANGED', enable: true} } }, diff --git a/modules/core/client/app/trans-string-en.js b/modules/core/client/app/trans-string-en.js index 8719a429..923e0247 100644 --- a/modules/core/client/app/trans-string-en.js +++ b/modules/core/client/app/trans-string-en.js @@ -1299,13 +1299,22 @@ CONTENT_HNR_WARNING_REMOVE: '### H&R warning removed! \n Congratulate, your h&r warning ont torrent [{{torrent_file_name}}](/torrents/{{torrent_id}}) already clean up.', TITLE_FORUM_NEW_TOPIC_REPLY: 'Topic in forum has new reply', - CONTENT_FORUM_NEW_TOPIC_REPLY: '### New reply! \n :collision: Your posted topic in forum [{{topic_title}}](/forums/{{forum_id}}/{{topic_id}}#{{reply_id}}) has new reply by user [{{by_name}}](/userinfo/{{by_id}})', + CONTENT_FORUM_NEW_TOPIC_REPLY: '### New reply! \n :collision: Your posted topic in forum [{{topic_title}}](/forums/{{forum_id}}/{{topic_id}}#{{reply_id}}) has new reply by user [{{by_name}}](/userinfo/{{by_id}}).', TITLE_FORUM_TOPIC_THUMBS_UP: 'Topic in forum was be thumbs up', - CONTENT_FORUM_TOPIC_THUMBS_UP: '### Thumbs up! \n :+1: Your posted topic [{{topic_title}}](/forums/{{forum_id}}/{{topic_id}}) in forum was be thumbs up by user [{{by_name}}](/userinfo/{{by_id}})', + CONTENT_FORUM_TOPIC_THUMBS_UP: '### Thumbs up! \n :+1: Your posted topic [{{topic_title}}](/forums/{{forum_id}}/{{topic_id}}) in forum was be thumbs up by user [{{by_name}}](/userinfo/{{by_id}}).', TITLE_FORUM_REPLY_THUMBS_UP: 'Reply in forum was be thumbs up', - CONTENT_FORUM_REPLY_THUMBS_UP: '### Thumbs up! \n :+1: Your posted reply of topic [{{topic_title}}](/forums/{{forum_id}}/{{topic_id}}#{{reply_id}}) in forum was be thumbs up by user [{{by_name}}](/userinfo/{{by_id}})' + CONTENT_FORUM_REPLY_THUMBS_UP: '### Thumbs up! \n :+1: Your posted reply of topic [{{topic_title}}](/forums/{{forum_id}}/{{topic_id}}#{{reply_id}}) in forum was be thumbs up by user [{{by_name}}](/userinfo/{{by_id}}).', + + TITLE_FORUM_TOPIC_DELETED: 'Topic in forum was deleted', + CONTENT_FORUM_TOPIC_DELETED: 'Your posted topic [{{topic_title}}](/forums/{{forum_id}}/{{topic_id}}) in forum was deleted by user [{{by_name}}](/userinfo/{{by_id}}).', + + TITLE_FORUM_REPLY_DELETED: 'Reply in forum was deleted', + CONTENT_FORUM_REPLY_DELETED: 'Your posted reply of topic [{{topic_title}}](/forums/{{forum_id}}/{{topic_id}}#{{reply_id}}) in forum was deleted by user [{{by_name}}](/userinfo/{{by_id}}).', + + TITLE_FORUM_BECOME_MODERATOR: 'You have become the forum moderator', + CONTENT_FORUM_BECOME_MODERATOR: '### Congratulate! \n :clap: You have become the forum [{{forum_name}}](/forums/{{forum_id}}) moderator, Thank you for your contribution.' } }; diff --git a/modules/core/client/app/trans-string-zh.js b/modules/core/client/app/trans-string-zh.js index b6f4f51f..7d203440 100644 --- a/modules/core/client/app/trans-string-zh.js +++ b/modules/core/client/app/trans-string-zh.js @@ -1291,7 +1291,7 @@ CONTENT_VIP_CHANGED_ADD: '### 恭喜! \n 您的 Vip 状态已改变, 您的 Vip 将结束于: **{{vip_end_at | date: "yyyy-MM-dd HH:mm"}}** :four_leaf_clover:', TITLE_MAKER_CREATE: '资源制作小组已建立', - CONTENT_MAKER_CREATE: '管理员已为您创建资源制作小组 **-={{maker_group_name}}=-** , 您现在是该小组的创建人, 感谢您为 **{{site_name}}** 所做的贡献! :100:', + CONTENT_MAKER_CREATE: '管理员已为您创建资源制作小组 **-={{maker_group_name}}=-** , 您现在是该小组的创建人, 感谢您为 **{{site_name}}** 做出贡献! :100:', TITLE_HNR_WARNING_ADD: '新的 H&R 警告', CONTENT_HNR_WARNING_ADD: '### H&R 警告! \n 您刚刚得到一个 h&r 警告在种子 [{{torrent_file_name}}](/torrents/{{torrent_id}}), 您需要继续做种, 这个警告会在该种分享率大于 {{hnr_ratio}} 或做种时间大于 {{hnr_days}} 天时自动清除,您也可以从这里 [warning list](/status/warning) 使用系统积分手动清除.', @@ -1299,13 +1299,22 @@ CONTENT_HNR_WARNING_REMOVE: '### H&R 警告已移除! \n 恭喜您, 您在种子 [{{torrent_file_name}}](/torrents/{{torrent_id}}) 上的 h&r 警告已经移除.', TITLE_FORUM_NEW_TOPIC_REPLY: '论坛主题有了新回复', - CONTENT_FORUM_NEW_TOPIC_REPLY: '### 新回复! \n :collision: 您在论坛发表的主题 [{{topic_title}}](/forums/{{forum_id}}/{{topic_id}}) 有了一个新回复来自用户 [{{by_name}}](/userinfo/{{by_id}})', + CONTENT_FORUM_NEW_TOPIC_REPLY: '### 新回复! \n :collision: 您在论坛发表的主题 [{{topic_title}}](/forums/{{forum_id}}/{{topic_id}}) 有了一个新回复来自用户 [{{by_name}}](/userinfo/{{by_id}})。', TITLE_FORUM_TOPIC_THUMBS_UP: '论坛主题被点赞', - CONTENT_FORUM_TOPIC_THUMBS_UP: '### 点赞! \n :+1: 您在论坛发表的主题 [{{topic_title}}](/forums/{{forum_id}}/{{topic_id}}) 收到一个点赞来自用户 [{{by_name}}](/userinfo/{{by_id}})', + CONTENT_FORUM_TOPIC_THUMBS_UP: '### 点赞! \n :+1: 您在论坛发表的主题 [{{topic_title}}](/forums/{{forum_id}}/{{topic_id}}) 收到一个点赞来自用户 [{{by_name}}](/userinfo/{{by_id}})。', TITLE_FORUM_REPLY_THUMBS_UP: '论坛回复被点赞', - CONTENT_FORUM_REPLY_THUMBS_UP: '### 点赞! \n :+1: 您在论坛主题 [{{topic_title}}](/forums/{{forum_id}}/{{topic_id}}#{{reply_id}}) 发表的回复收到一个点赞来自用户 [{{by_name}}](/userinfo/{{by_id}})' + CONTENT_FORUM_REPLY_THUMBS_UP: '### 点赞! \n :+1: 您在论坛主题 [{{topic_title}}](/forums/{{forum_id}}/{{topic_id}}#{{reply_id}}) 发表的回复收到一个点赞来自用户 [{{by_name}}](/userinfo/{{by_id}})。', + + TITLE_FORUM_TOPIC_DELETED: '论坛主题被删除', + CONTENT_FORUM_TOPIC_DELETED: '您在论坛发表的主题 [{{topic_title}}](/forums/{{forum_id}}/{{topic_id}}) 被管理员用户 [{{by_name}}](/userinfo/{{by_id}}) 删除.', + + TITLE_FORUM_REPLY_DELETED: '论坛回复被删除', + CONTENT_FORUM_REPLY_DELETED: '您在论坛主题 [{{topic_title}}](/forums/{{forum_id}}/{{topic_id}}#{{reply_id}}) 发表的回复被管理员用户 [{{by_name}}](/userinfo/{{by_id}}) 删除.', + + TITLE_FORUM_BECOME_MODERATOR: '恭喜您成为论坛版主', + CONTENT_FORUM_BECOME_MODERATOR: '### 恭喜! \n :clap: 您已成为论坛 [{{forum_name}}](/forums/{{forum_id}}) 的版主, 感谢您为论坛做出贡献.' } }; diff --git a/modules/forums/server/controllers/forums.admin.server.controller.js b/modules/forums/server/controllers/forums.admin.server.controller.js index 8ad456e3..ae5ff1f5 100644 --- a/modules/forums/server/controllers/forums.admin.server.controller.js +++ b/modules/forums/server/controllers/forums.admin.server.controller.js @@ -12,6 +12,9 @@ var path = require('path'), Topic = mongoose.model('Topic'), async = require('async'); +var serverMessage = require(path.resolve('./config/lib/server-message')); +var serverNoticeConfig = config.meanTorrentConfig.serverNotice; + /** * create a forum * @param req @@ -103,6 +106,14 @@ exports.addModerator = function (req, res) { }); } else { res.json(forum); + + //add server message + if (serverNoticeConfig.action.forumBecomeModerator.enable) { + serverMessage.addMessage(mu._id, serverNoticeConfig.action.forumBecomeModerator.title, serverNoticeConfig.action.forumBecomeModerator.content, { + forum_name: forum.name, + forum_id: forum._id + }); + } } }); } diff --git a/modules/forums/server/controllers/forums.server.controller.js b/modules/forums/server/controllers/forums.server.controller.js index 755f118b..40ebad50 100644 --- a/modules/forums/server/controllers/forums.server.controller.js +++ b/modules/forums/server/controllers/forums.server.controller.js @@ -716,6 +716,17 @@ exports.deleteTopic = function (req, res) { $inc: {topics: -1} }).exec(); + //add server message + if (serverNoticeConfig.action.forumTopicDeleted.enable && !topic.user._id.equals(req.user._id)) { + serverMessage.addMessage(topic.user._id, serverNoticeConfig.action.forumTopicDeleted.title, serverNoticeConfig.action.forumTopicDeleted.content, { + topic_title: topic.title, + forum_id: topic.forum, + topic_id: topic._id, + by_name: req.user.displayName, + by_id: req.user._id + }); + } + //create trace log traceLogCreate(req, traceConfig.action.forumDeleteTopic, { forum: forum._id, @@ -843,6 +854,7 @@ exports.updateReply = function (req, res) { exports.deleteReply = function (req, res) { var forum = req.forum; var topic = req.topic; + var replyUid = undefined; topic._replies.forEach(function (r) { if (r._id.equals(req.params.replyId)) { @@ -853,6 +865,7 @@ exports.deleteReply = function (req, res) { }); } + replyUid = r.user._id; topic._replies.pull(r); topic.replyCount--; topic.save(function (err) { @@ -871,6 +884,18 @@ exports.deleteReply = function (req, res) { $inc: {replyCount: -1} }).exec(); + //add server message + if (serverNoticeConfig.action.forumReplyDeleted.enable && !replyUid.equals(req.user._id)) { + serverMessage.addMessage(replyUid, serverNoticeConfig.action.forumReplyDeleted.title, serverNoticeConfig.action.forumReplyDeleted.content, { + topic_title: topic.title, + forum_id: topic.forum, + topic_id: topic._id, + reply_id: req.params.replyId, + by_name: req.user.displayName, + by_id: req.user._id + }); + } + //create trace log traceLogCreate(req, traceConfig.action.forumDeleteReply, { forum: forum._id,