add removing follows
This commit is contained in:
parent
aa9257cf1b
commit
988be48a84
5 changed files with 1066 additions and 519 deletions
|
@ -347,6 +347,7 @@ class Notification(Base):
|
|||
read = Column(Boolean, default=False)
|
||||
followsender = Column(Integer)
|
||||
unfollowsender = Column(Integer)
|
||||
removefollowsender = Column(Integer)
|
||||
blocksender = Column(Integer)
|
||||
unblocksender = Column(Integer)
|
||||
|
||||
|
|
|
@ -672,6 +672,29 @@ def unfollow_user(username, v):
|
|||
|
||||
return {"message": "User unfollowed!"}
|
||||
|
||||
@app.post("/remove_follow/<username>")
|
||||
@auth_required
|
||||
def remove_follow(username, v):
|
||||
target = get_user(username)
|
||||
|
||||
# check for existing follow
|
||||
follow = g.db.query(Follow).options(lazyload('*')).filter_by(user_id=target.id, target_id=v.id).first()
|
||||
|
||||
if not follow: return {"message": "Follower removed!"}
|
||||
|
||||
g.db.delete(follow)
|
||||
|
||||
g.db.flush()
|
||||
v.stored_subscriber_count = g.db.query(Follow.id).options(lazyload('*')).filter_by(target_id=v.id).count()
|
||||
g.db.add(v)
|
||||
|
||||
existing = g.db.query(Notification).options(lazyload('*')).filter_by(removefollowsender=v.id, user_id=target.id).first()
|
||||
if not existing: send_unfollow_notif(v.id, target.id, f"@{v.username} has removed your follow!")
|
||||
|
||||
g.db.commit()
|
||||
|
||||
return {"message": "Follower removed!"}
|
||||
|
||||
|
||||
@app.route("/uid/<id>/pic/profile")
|
||||
@limiter.exempt
|
||||
|
|
|
@ -1,5 +1,12 @@
|
|||
{% extends "default.html" %}
|
||||
{% block content %}
|
||||
<script>
|
||||
function removeFollower(event, username) {
|
||||
post_toast('/remove_follow/' + username);
|
||||
let table = document.getElementById("followers-table");
|
||||
table.removeChild(event.target.parentElement.parentElement);
|
||||
}
|
||||
</script>
|
||||
<pre></pre>
|
||||
<h5>@{{u.username}}'s followers</h5>
|
||||
<pre></pre>
|
||||
|
@ -8,14 +15,22 @@
|
|||
<tr>
|
||||
<th style="font-weight: bold">#</th>
|
||||
<th style="font-weight: bold">Name</th>
|
||||
{% if v.id == u.id %}
|
||||
<th style="font-weight: bold"></th>
|
||||
{% endif %}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="followers-table">
|
||||
{% for user in users %}
|
||||
<tr>
|
||||
<td style="font-weight: bold">{{loop.index}}</td>
|
||||
<td><a style="color:#{{user.namecolor}}; font-weight:bold;" href="/@{{user.username}}"><img loading="lazy" src="/uid/{{user.id}}/pic/profile" class="profile-pic-20 mr-1"><span {% if user.patron %}class="patron" style="background-color:#{{user.namecolor}};"{% endif %}>{{user.username}}</span></a></td>
|
||||
{% if v.id == u.id %}
|
||||
<td><div class="btn btn-danger" onclick="removeFollower(event, '{{user.username}}')">Remove follow</div></td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{% endblock %}
|
1496
schema.sql
1496
schema.sql
File diff suppressed because it is too large
Load diff
50
seed-db.sql
50
seed-db.sql
|
@ -1,28 +1,28 @@
|
|||
INSERT INTO public.badge_defs VALUES (12, 'Gold Recruiter', 'Recruited 100 friends to join Drama', 'recruit-100.webp', 1, 'v.referral_count>=100 and v.referral_count <=999');
|
||||
INSERT INTO public.badge_defs VALUES (11, 'Silver Recruiter', 'Recruited 10 friends to join Drama', 'recruit-10.webp', 1, 'v.referral_count>=10 and v.referral_count <= 99');
|
||||
INSERT INTO public.badge_defs VALUES (10, 'Bronze Recruiter', 'Recruited 1 friend to join Drama', 'recruit-1.webp', 1, 'v.referral_count>=1 and v.referral_count<9');
|
||||
INSERT INTO public.badge_defs VALUES (58, 'Diamond Recruiter', 'Recruited 1000 friends to join Drama', 'recruit-1000.webp', 1, 'v.referral_count >= 1000');
|
||||
INSERT INTO public.badge_defs VALUES (25, 'Footpig', 'Contributed at least $100/month', 'patron-5.webp', 3, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (61, 'Lab Rat', 'Helped test features in development', 'labrat.webp', 3, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (63, 'Balls', 'I wrote carp on my balls as a sign of submission', 'carpballs.webp', 3, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (4, 'White Hat', 'Responsibly reported a security issue', 'whitehat.webp', 3, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (2, 'Verified Email', 'Verified Email', 'mail.webp', 1, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (6, 'Beta User', 'Joined during open beta', 'beta.webp', 4, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (15, 'Idea Maker', 'Had a good idea for Drama which was implemented by the developers', 'idea.webp', 3, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (3, 'Code Contributor', 'Contributed to Drama source code', 'git.webp', 3, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (1, 'Alpha User', 'Joined during open alpha', 'alpha.webp', 4, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (18, 'Artisan', 'Contributed to Drama artwork', 'art.webp', 3, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (27, 'Lolcow', 'Beautiful and valid milk provider', 'lolcow.webp', 3, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (21, 'Paypig', 'Contributed at least $5/month', 'patron-1.webp', 3, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (22, 'Renthog', 'Contributed at least $10/month', 'patron-2.webp', 3, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (23, 'Landchad', 'Contributed at least $20/month', 'patron-3.webp', 3, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (24, 'Terminally online turboautist', 'Contributed at least $50/month', 'patron-4.webp', 3, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (28, 'Rich Bich', 'Contributed $500', 'patron-8.webp', 3, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (7, 'Bug Finder', 'Found a bug', 'sitebreaker.webp', 3, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (60, 'Unironically Retarded', 'Demonstrated a wholesale inability to read the room', 'retarded.webp', 3, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (26, 'Agendaposter', 'Forced to use the agendaposter theme', 'agendaposter.webp', 1, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (17, 'Marsey Artisan', 'Contributed a Marsey emoji ✨', 'marseybadge-1.webp', 3, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (16, 'Marsey Master', 'Contributed 10 (or more!!!!) Marsey emojis ✨', 'marseybadge-2.webp', 3, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (12, 'Gold Recruiter', 'Recruited 100 friends to join Drama', 'recruit-100.webp', 1, 1, 'v.referral_count>=100 and v.referral_count <=999');
|
||||
INSERT INTO public.badge_defs VALUES (11, 'Silver Recruiter', 'Recruited 10 friends to join Drama', 'recruit-10.webp', 1, 1, 'v.referral_count>=10 and v.referral_count <= 99');
|
||||
INSERT INTO public.badge_defs VALUES (10, 'Bronze Recruiter', 'Recruited 1 friend to join Drama', 'recruit-1.webp', 1, 1, 'v.referral_count>=1 and v.referral_count<9');
|
||||
INSERT INTO public.badge_defs VALUES (58, 'Diamond Recruiter', 'Recruited 1000 friends to join Drama', 'recruit-1000.webp', 1, 1, 'v.referral_count >= 1000');
|
||||
INSERT INTO public.badge_defs VALUES (25, 'Footpig', 'Contributed at least $100/month', 'patron-5.webp', 3, 1, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (61, 'Lab Rat', 'Helped test features in development', 'labrat.webp', 3, 1, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (63, 'Balls', 'I wrote carp on my balls as a sign of submission', 'carpballs.webp', 3, 1, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (4, 'White Hat', 'Responsibly reported a security issue', 'whitehat.webp', 3, 1, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (2, 'Verified Email', 'Verified Email', 'mail.webp', 1, 1, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (6, 'Beta User', 'Joined during open beta', 'beta.webp', 4, 1, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (15, 'Idea Maker', 'Had a good idea for Drama which was implemented by the developers', 'idea.webp', 3, 1, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (3, 'Code Contributor', 'Contributed to Drama source code', 'git.webp', 3, 1, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (1, 'Alpha User', 'Joined during open alpha', 'alpha.webp', 4, 1, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (18, 'Artisan', 'Contributed to Drama artwork', 'art.webp', 3, 1, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (27, 'Lolcow', 'Beautiful and valid milk provider', 'lolcow.webp', 3, 1, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (21, 'Paypig', 'Contributed at least $5/month', 'patron-1.webp', 3, 1, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (22, 'Renthog', 'Contributed at least $10/month', 'patron-2.webp', 3, 1, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (23, 'Landchad', 'Contributed at least $20/month', 'patron-3.webp', 3, 1, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (24, 'Terminally online turboautist', 'Contributed at least $50/month', 'patron-4.webp', 3, 1, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (28, 'Rich Bich', 'Contributed $500', 'patron-8.webp', 3, 1, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (7, 'Bug Finder', 'Found a bug', 'sitebreaker.webp', 3, 1, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (60, 'Unironically Retarded', 'Demonstrated a wholesale inability to read the room', 'retarded.webp', 3, 1, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (26, 'Agendaposter', 'Forced to use the agendaposter theme', 'agendaposter.webp', 1, 1, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (17, 'Marsey Artisan', 'Contributed a Marsey emoji ✨', 'marseybadge-1.webp', 3, 1, NULL);
|
||||
INSERT INTO public.badge_defs VALUES (16, 'Marsey Master', 'Contributed 10 (or more!!!!) Marsey emojis ✨', 'marseybadge-2.webp', 3, 1, NULL);
|
||||
|
||||
insert into public.award_relationships(id,user_id,kind) values(1,1,'shit');
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue