mirror of
https://gitlab.com/SIGBUS/nyaa.git
synced 2024-12-22 19:40:00 +00:00
comments can be added+removed. gravatar for user avatar
This commit is contained in:
parent
9bd71af1b2
commit
fee55c1792
|
@ -129,7 +129,7 @@ class DisabledSelectField(SelectField):
|
|||
class CommentForm(FlaskForm):
|
||||
comment = TextAreaField('Make a comment', [
|
||||
Length(max=255, message='Comment must be at most %(max)d characters long.'),
|
||||
Required()
|
||||
DataRequired()
|
||||
])
|
||||
|
||||
is_anonymous = BooleanField('Anonymous')
|
||||
|
|
|
@ -392,6 +392,15 @@ class User(db.Model):
|
|||
]
|
||||
return all(checks)
|
||||
|
||||
def gravatar_url(self):
|
||||
# from http://en.gravatar.com/site/implement/images/python/
|
||||
size = 40
|
||||
# construct the url
|
||||
gravatar_url = 'https://www.gravatar.com/avatar/' + \
|
||||
hashlib.md5(self.email.encode('utf-8').lower()).hexdigest() + '?'
|
||||
gravatar_url += urllib.parse.urlencode({'d': config.DEFAULT_AVATAR_URL, 's': str(size)})
|
||||
return gravatar_url
|
||||
|
||||
@property
|
||||
def ip_string(self):
|
||||
if self.last_login_ip:
|
||||
|
|
|
@ -615,7 +615,7 @@ def submit_comment(torrent_id):
|
|||
current_user_id = None
|
||||
else:
|
||||
current_user_id = flask.g.user.id
|
||||
|
||||
|
||||
comment = models.Comment(
|
||||
torrent=torrent_id,
|
||||
user_id=current_user_id,
|
||||
|
@ -626,6 +626,7 @@ def submit_comment(torrent_id):
|
|||
|
||||
return flask.redirect(flask.url_for('view_torrent', torrent_id=torrent_id))
|
||||
|
||||
|
||||
@app.route('/view/<int:torrent_id>/delete_comment/<int:comment_id>')
|
||||
def delete_comment(torrent_id, comment_id):
|
||||
if flask.g.user is not None and flask.g.user.is_admin:
|
||||
|
@ -633,8 +634,8 @@ def delete_comment(torrent_id, comment_id):
|
|||
db.session.commit()
|
||||
else:
|
||||
flask.abort(403)
|
||||
|
||||
return flask.redirect(flask.url_for('view_torrent', torrent_id=torrent_id))
|
||||
|
||||
return flask.redirect(flask.url_for('view_torrent', torrent_id=torrent_id))
|
||||
|
||||
|
||||
@app.route('/view/<int:torrent_id>/edit', methods=['GET', 'POST'])
|
||||
|
@ -792,6 +793,34 @@ def _create_user_class_choices(user):
|
|||
|
||||
return default, choices
|
||||
|
||||
# Modified from: http://flask.pocoo.org/snippets/33/
|
||||
@app.template_filter()
|
||||
def timesince(dt, default='just now'):
|
||||
"""
|
||||
Returns string representing "time since" e.g.
|
||||
3 minutes ago, 5 hours ago etc.
|
||||
Date and time (UTC) are returned if older than 1 day.
|
||||
"""
|
||||
|
||||
now = datetime.utcnow()
|
||||
diff = now - dt
|
||||
|
||||
periods = (
|
||||
(diff.days, 'day', 'days'),
|
||||
(diff.seconds / 3600, 'hour', 'hours'),
|
||||
(diff.seconds / 60, 'minute', 'minutes'),
|
||||
(diff.seconds, 'second', 'seconds'),
|
||||
)
|
||||
|
||||
if diff.days >= 1:
|
||||
return dt.strftime('%Y-%m-%d %H:%M UTC')
|
||||
else:
|
||||
for period, singular, plural in periods:
|
||||
|
||||
if period >= 1:
|
||||
return '%d %s ago' % (period, singular if period == 1 else plural)
|
||||
|
||||
return default
|
||||
|
||||
# #################################### STATIC PAGES ####################################
|
||||
@app.route('/rules', methods=['GET'])
|
||||
|
|
BIN
nyaa/static/img/avatar/default.png
Normal file
BIN
nyaa/static/img/avatar/default.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.6 KiB |
Loading…
Reference in a new issue