mirror of
https://github.com/reddit-archive/reddit.git
synced 2026-04-27 03:00:12 -04:00
Move POST_friend notifications to a system messages lib.
This commit is contained in:
@@ -64,6 +64,7 @@ from r2.lib.scraper import str_to_image
|
||||
from r2.controllers.api_docs import api_doc, api_section
|
||||
from r2.lib.search import SearchQuery
|
||||
from r2.controllers.oauth2 import OAuth2ResourceController, require_oauth2_scope
|
||||
from r2.lib.system_messages import notify_user_added
|
||||
|
||||
from r2.models import wiki
|
||||
from r2.lib.merge import ConflictException
|
||||
@@ -643,33 +644,8 @@ class ApiController(RedditController, OAuth2ResourceController):
|
||||
jquery("#" + type + "-table").show(
|
||||
).find("table").insert_table_rows(user_row)
|
||||
|
||||
if type != 'friend' and (type != 'banned' or
|
||||
friend.has_interacted_with(container)):
|
||||
msg = strings.msg_add_friend.get(type)
|
||||
subj = strings.subj_add_friend.get(type)
|
||||
if msg and subj and friend.name != c.user.name:
|
||||
# fullpath with domain needed or the markdown link
|
||||
# will break
|
||||
if isinstance(container, Subreddit):
|
||||
title = "%s: %s" % (container.path.rstrip("/"),
|
||||
container.title)
|
||||
else:
|
||||
title = container.title
|
||||
d = dict(url = container.path,
|
||||
title = title)
|
||||
msg = msg % d
|
||||
subj = subj % d
|
||||
if type == 'banned':
|
||||
from_sr = True
|
||||
sr = container
|
||||
else:
|
||||
from_sr = False
|
||||
sr = None
|
||||
item, inbox_rel = Message._new(c.user, friend, subj, msg,
|
||||
ip, from_sr=from_sr, sr=sr)
|
||||
|
||||
queries.new_message(item, inbox_rel)
|
||||
|
||||
if new:
|
||||
notify_user_added(type, c.user, friend, container)
|
||||
|
||||
@validatedForm(VGold(),
|
||||
friend = VExistingUname('name'),
|
||||
|
||||
@@ -91,22 +91,6 @@ string_dict = dict(
|
||||
finished_trials = _("it's too late to change your vote on these things (the verdict has been issued):"),
|
||||
more_info_link = _("visit [%(link)s](%(link)s) for more information"),
|
||||
|
||||
msg_add_friend = dict(
|
||||
friend = None,
|
||||
moderator = _("you have been added as a moderator to [%(title)s](%(url)s)."),
|
||||
contributor = _("you have been added as an approved submitter to [%(title)s](%(url)s)."),
|
||||
banned = _("you have been banned from posting to [%(title)s](%(url)s)."),
|
||||
traffic = _('you have been added to the list of users able to see [traffic for the sponsored link "%(title)s"](%(traffic_url)s).')
|
||||
),
|
||||
|
||||
subj_add_friend = dict(
|
||||
friend = None,
|
||||
moderator = _("you are a moderator"),
|
||||
contributor = _("you are an approved submitter"),
|
||||
banned = _("you've been banned"),
|
||||
traffic = _("you can view traffic on a promoted link")
|
||||
),
|
||||
|
||||
sr_messages = dict(
|
||||
empty = _('you have not subscribed to any reddits.'),
|
||||
subscriber = _('below are the reddits you have subscribed to'),
|
||||
|
||||
84
r2/r2/lib/system_messages.py
Normal file
84
r2/r2/lib/system_messages.py
Normal file
@@ -0,0 +1,84 @@
|
||||
# The contents of this file are subject to the Common Public Attribution
|
||||
# License Version 1.0. (the "License"); you may not use this file except in
|
||||
# compliance with the License. You may obtain a copy of the License at
|
||||
# http://code.reddit.com/LICENSE. The License is based on the Mozilla Public
|
||||
# License Version 1.1, but Sections 14 and 15 have been added to cover use of
|
||||
# software over a computer network and provide for limited attribution for the
|
||||
# Original Developer. In addition, Exhibit A has been modified to be consistent
|
||||
# with Exhibit B.
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
|
||||
# the specific language governing rights and limitations under the License.
|
||||
#
|
||||
# The Original Code is reddit.
|
||||
#
|
||||
# The Original Developer is the Initial Developer. The Initial Developer of
|
||||
# the Original Code is reddit Inc.
|
||||
#
|
||||
# All portions of the code written by reddit are Copyright (c) 2006-2012 reddit
|
||||
# Inc. All Rights Reserved.
|
||||
###############################################################################
|
||||
|
||||
from pylons import request
|
||||
from pylons.i18n import _
|
||||
|
||||
from r2.models import Message
|
||||
from r2.lib.db import queries
|
||||
|
||||
|
||||
user_added_messages = {
|
||||
"moderator": {
|
||||
"pm": {
|
||||
"subject": _("you are a moderator"),
|
||||
"msg": _("you have been added as a moderator to [%(title)s](%(url)s)."),
|
||||
},
|
||||
},
|
||||
"contributor": {
|
||||
"pm": {
|
||||
"subject": _("you are an approved submitter"),
|
||||
"msg": _("you have been added as an approved submitter to [%(title)s](%(url)s)."),
|
||||
},
|
||||
},
|
||||
"banned": {
|
||||
"pm": {
|
||||
"subject": _("you've been banned"),
|
||||
"msg": _("you have been banned from posting to [%(title)s](%(url)s)."),
|
||||
},
|
||||
},
|
||||
"traffic": {
|
||||
"pm": {
|
||||
"subject": _("you can view traffic on a promoted link"),
|
||||
"msg": _('you have been added to the list of users able to see [traffic for the sponsored link "%(title)s"](%(traffic_url)s).'),
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
def notify_user_added(rel_type, author, user, target):
|
||||
msgs = user_added_messages.get(rel_type)
|
||||
if not msgs:
|
||||
return
|
||||
|
||||
srname = target.path.rstrip("/")
|
||||
d = {
|
||||
"url": srname,
|
||||
"title": "%s: %s" % (srname, target.title),
|
||||
"author": "/u/" + author.name,
|
||||
"user": "/u/" + user.name,
|
||||
}
|
||||
|
||||
if "pm" in msgs and author != user:
|
||||
subject = msgs["pm"]["subject"] % d
|
||||
msg = msgs["pm"]["msg"] % d
|
||||
if rel_type == "banned":
|
||||
if not user.has_interacted_with(target):
|
||||
return
|
||||
|
||||
item, inbox_rel = Message._new(author, user, subject, msg, request.ip,
|
||||
sr=target, from_sr=True)
|
||||
else:
|
||||
item, inbox_rel = Message._new(author, user, subject, msg, request.ip)
|
||||
|
||||
queries.new_message(item, inbox_rel)
|
||||
|
||||
Reference in New Issue
Block a user