Add one upvote from yourself for own posts and replies

This commit is contained in:
freamon 2024-04-22 16:14:32 +01:00
parent f2eaf5d3b7
commit d49470ab8b
2 changed files with 32 additions and 2 deletions

View file

@ -33,7 +33,7 @@ from app.utils import get_setting, render_template, allowlist_html, markdown_to_
request_etag_matches, return_304, instance_banned, can_create_post, can_upvote, can_downvote, user_filters_posts, \
joined_communities, moderating_communities, blocked_domains, mimetype_from_url, blocked_instances, \
community_moderators, communities_banned_from, show_ban_message, recently_upvoted_posts, recently_downvoted_posts, \
blocked_users
blocked_users, post_ranking
from feedgen.feed import FeedGenerator
from datetime import timezone, timedelta
@ -496,6 +496,7 @@ def add_discussion_post(actor):
post.ap_id = f"https://{current_app.config['SERVER_NAME']}/post/{post.id}"
db.session.commit()
upvote_own_post(post)
notify_about_post(post)
if not community.local_only:
@ -571,6 +572,7 @@ def add_image_post(actor):
post.cross_posts.append(op.id)
db.session.commit()
upvote_own_post(post)
notify_about_post(post)
if not community.local_only:
@ -644,6 +646,7 @@ def add_link_post(actor):
post.cross_posts.append(op.id)
db.session.commit()
upvote_own_post(post)
notify_about_post(post)
if not community.local_only:
@ -717,6 +720,7 @@ def add_video_post(actor):
post.cross_posts.append(op.id)
db.session.commit()
upvote_own_post(post)
notify_about_post(post)
if not community.local_only:
@ -1406,3 +1410,11 @@ def lookup(community, domain):
return redirect('/')
def upvote_own_post(post):
post.score = 1
post.up_votes = 1
post.ranking = post_ranking(post.score, utcnow())
vote = PostVote(user_id=current_user.id, post_id=post.id, author_id=current_user.id, effect=1)
db.session.add(vote)
db.session.commit()
cache.delete_memoized(recently_upvoted_posts, current_user.id)

View file

@ -112,6 +112,15 @@ def show_post(post_id: int):
db.session.add(reply)
db.session.commit()
# upvote own reply
reply.score = 1
reply.up_votes = 1
reply.ranking = confidence(1, 0)
vote = PostReplyVote(user_id=current_user.id, post_reply_id=reply.id, author_id=current_user.id, effect=1)
db.session.add(vote)
cache.delete_memoized(recently_upvoted_post_replies, current_user.id)
reply.ap_id = reply.profile_id()
if current_user.reputation > 100:
reply.up_votes += 1
@ -622,8 +631,16 @@ def add_reply(post_id: int, comment_id: int):
db.session.add(notification)
in_reply_to.author.unread_notifications += 1
db.session.commit()
# upvote own reply
reply.score = 1
reply.up_votes = 1
reply.ranking = confidence(1, 0)
vote = PostReplyVote(user_id=current_user.id, post_reply_id=reply.id, author_id=current_user.id, effect=1)
db.session.add(vote)
cache.delete_memoized(recently_upvoted_post_replies, current_user.id)
reply.ap_id = reply.profile_id()
db.session.commit()
if current_user.reputation > 100:
reply.up_votes += 1
reply.score += 1
@ -736,6 +753,7 @@ def add_reply(post_id: int, comment_id: int):
return redirect(url_for('post.continue_discussion', post_id=post_id, comment_id=reply.parent_id))
else:
form.notify_author.data = True
return render_template('post/add_reply.html', title=_('Discussing %(title)s', title=post.title), post=post,
is_moderator=is_moderator, form=form, comment=in_reply_to, markdown_editor=current_user.is_authenticated and current_user.markdown_editor,
moderating_communities=moderating_communities(current_user.get_id()), mods=mod_list,