pause,unpausable

remotes/1693045480750635534/spooky-22
Aevann1 2021-10-23 17:57:25 +02:00
parent 4a905496da
commit 5ed72c3e47
7 changed files with 143 additions and 25 deletions

View File

@ -76,6 +76,8 @@ class User(Base):
newtabexternal = Column(Boolean, default=True)
oldreddit = Column(Boolean, default=True)
nitter = Column(Boolean)
mute = Column(Boolean)
unmutable = Column(Boolean)
frontsize = Column(Integer, default=25)
controversial = Column(Boolean, default=False)
bio = Column(String)

View File

@ -213,6 +213,22 @@ if SITE_NAME == "Drama":
"color": "text-success",
"price": 10000
},
"pause": {
"kind": "pause",
"title": "Pause",
"description": "Gives the recipient the ability to pause profile anthems.",
"icon": "fas fa-volume-mute",
"color": "text-danger",
"price": 20000
},
"unpausable": {
"kind": "unpausable",
"title": "Unpausable",
"description": "Makes the profile anthem of the recipient unpausable.",
"icon": "fas fa-volume",
"color": "text-success",
"price": 40000
},
}
else:
AWARDS = {
@ -256,4 +272,20 @@ else:
"color": "text-black",
"price": 1000
},
"pause": {
"kind": "pause",
"title": "Pause",
"description": "Gives the recipient the ability to pause profile anthems.",
"icon": "fas fa-volume-mute",
"color": "text-danger",
"price": 20000
},
"unpausable": {
"kind": "unpausable",
"title": "Unpausable",
"description": "Makes the profile anthem of the recipient unpausable.",
"icon": "fas fa-volume",
"color": "text-success",
"price": 40000
},
}

View File

@ -131,6 +131,24 @@ def shop(v):
"owned": 0,
"price": 10000
},
"pause": {
"kind": "pause",
"title": "Pause",
"description": "Gives the recipient the ability to pause profile anthems.",
"icon": "fas fa-volume-mute",
"color": "text-danger",
"owned": 0,
"price": 20000
},
"unpausable": {
"kind": "unpausable",
"title": "Unpausable",
"description": "Makes the profile anthem of the recipient unpausable.",
"icon": "fas fa-volume",
"color": "text-success",
"owned": 0,
"price": 40000
},
}
else:
AWARDS = {
@ -179,6 +197,24 @@ def shop(v):
"owned": 0,
"price": 1000
},
"pause": {
"kind": "pause",
"title": "Pause",
"description": "Gives the recipient the ability to pause profile anthems.",
"icon": "fas fa-volume-mute",
"color": "text-danger",
"owned": 0,
"price": 20000
},
"unpausable": {
"kind": "unpausable",
"title": "Unpausable",
"description": "Makes the profile anthem of the recipient unpausable.",
"icon": "fas fa-volume",
"color": "text-success",
"owned": 0,
"price": 40000
},
}
for useraward in g.db.query(AwardRelationship).filter(AwardRelationship.user_id == v.id, AwardRelationship.submission_id == None, AwardRelationship.comment_id == None).all(): AWARDS[useraward.kind]["owned"] += 1
@ -280,7 +316,22 @@ def buy(v, award):
"color": "text-success",
"price": 10000
},
"pause": {
"kind": "pause",
"title": "Pause",
"description": "Gives the recipient the ability to pause profile anthems.",
"icon": "fas fa-volume-mute",
"color": "text-danger",
"price": 20000
},
"unpausable": {
"kind": "unpausable",
"title": "Unpausable",
"description": "Makes the profile anthem of the recipient unpausable.",
"icon": "fas fa-volume",
"color": "text-success",
"price": 40000
},
}
else:
AWARDS = {
@ -324,6 +375,22 @@ def buy(v, award):
"color": "text-black",
"price": 1000
},
"pause": {
"kind": "pause",
"title": "Pause",
"description": "Gives the recipient the ability to pause profile anthems.",
"icon": "fas fa-volume-mute",
"color": "text-danger",
"price": 20000
},
"unpausable": {
"kind": "unpausable",
"title": "Unpausable",
"description": "Makes the profile anthem of the recipient unpausable.",
"icon": "fas fa-volume",
"color": "text-success",
"price": 40000
},
}
if award not in AWARDS: abort(400)
@ -458,6 +525,10 @@ def award_post(pid, v):
author.customtitle = filter_title(new_name)
if len(author.customtitle) > 1000: abort(403)
author.flairchanged = time.time() + 86400
elif kind == "pause":
author.mute = True
elif kind == "unpausable":
author.unmutable = True
post.author.received_award_count += 1
g.db.add(post.author)
@ -565,7 +636,9 @@ def award_comment(cid, v):
author.customtitle = filter_title(new_name)
if len(author.customtitle) > 1000: abort(403)
author.flairchanged = time.time() + 86400
elif kind == "pause": author.mute = True
elif kind == "unpausable": author.unmutable = True
c.author.received_award_count += 1
g.db.add(c.author)

View File

@ -55,7 +55,7 @@
<tr>
<td><i class="{{a['icon']}} {{a['color']}}" style="font-size: 30px"></i></td>
<td style="font-weight: bold">{{a['title']}}</td>
<td><input type="number" class="form-control" name="{{a['kind']}}" value="0" placeholder="enter amount" /></td>
<td><input type="number" class="form-control" name="{{a['kind']}}" value="0" placeholder="Enter amount..." /></td>
</tr>
{% endfor %}
</table>

View File

@ -76,7 +76,7 @@
@media (min-width: 767.98px) {
.award-columns {
column-count: 5 !important;
column-count: 6 !important;
}
}
</style>

View File

@ -63,7 +63,7 @@
{% set kind = a['kind'] %}
<td style="font-weight: bold">
<a class="d-flex btn btn-success {% if v.coins < a['price'] %}disabled{% endif %}" href="javascript:void(0)" onclick="post_toast('/buy/{{kind}}')"><span class="m-auto">Buy</span></a>
{% if v.procoins and kind not in ["agendaposter","grass"] %}<a class="d-flex marseybux btn btn-success {% if v.procoins < a['price'] %}disabled{% endif %}" href="javascript:void(0)" onclick="post_toast('/buy/{{kind}}?mb=true')"><span class="m-auto">Buy with Marseybux</span></a>{% endif %}
{% if v.procoins and kind not in ["agendaposter","grass","pause","unpausable"] %}<a class="d-flex marseybux btn btn-success {% if v.procoins < a['price'] %}disabled{% endif %}" href="javascript:void(0)" onclick="post_toast('/buy/{{kind}}?mb=true')"><span class="m-auto">Buy with Marseybux</span></a>{% endif %}
</td>
</tr>
{% endfor %}

View File

@ -66,6 +66,24 @@
{% if u.song %}
var audio = new Audio('/songs/{{u.id}}');
audio.loop=true;
{% if not u.unmutable %}
function pause() {
audio.pause();
document.getElementById("pause1").classList.toggle("d-none");
document.getElementById("play1").classList.toggle("d-none");
document.getElementById("pause2").classList.toggle("d-none");
document.getElementById("play2").classList.toggle("d-none");
}
function play() {
audio.play();
document.getElementById("pause1").classList.toggle("d-none");
document.getElementById("play1").classList.toggle("d-none");
document.getElementById("pause2").classList.toggle("d-none");
document.getElementById("play2").classList.toggle("d-none");
}
{% endif %}
window.addEventListener( 'load', function() {
audio.play();
@ -74,28 +92,9 @@
}, {once : true});
});
{% if not u.unmutable %}
function pause() {
audio.pause();
document.getElementById("pause").classList.toggle("d-none");
document.getElementById("play").classList.toggle("d-none");
}
function play() {
audio.play();
document.getElementById("pause").classList.toggle("d-none");
document.getElementById("play").classList.toggle("d-none");
}
{% endif %}
{% endif %}
</script>
{% if not u.unmutable %}
<a id="pause" class="btn btn-secondary" href="javascript:void(0)" onclick="pause()">Pause</a>
<a id="play" class="btn btn-secondary d-none" href="javascript:void(0)" onclick="play()">Play</a>
{% endif %}
<div class="row d-none d-md-block">
<div class="col px-0">
<div class="jumbotron jumbotron-fluid jumbotron-guild d-none d-md-block" style="background-image: url({{u.banner_url}})">
@ -256,6 +255,12 @@
<a href="/settings/profile" class="btn btn-secondary">Edit profile</a>
<a href="/views" class="btn btn-secondary">Profile views</a>
{% endif %}
{% if v and v.mute and not u.unmutable %}
<a id="pause1" class="btn btn-secondary" href="javascript:void(0)" onclick="pause()">Pause anthem</a>
<a id="play1" class="btn btn-secondary d-none" href="javascript:void(0)" onclick="play()">Play anthem</a>
{% endif %}
{% if v and v.id != u.id and v.admin_level > 1 %}
<br><br>
<div class="body d-lg-flex border-bottom">
@ -463,7 +468,13 @@
{% if v and v.id == u.id %}
<a href="/settings/profile" class="btn btn-secondary ">Edit profile</a>
<a href="/views" class="btn btn-secondary">Profile views</a>
{% endif %}
{% endif %}
{% if v and v.mute and not u.unmutable %}
<a id="pause2" class="btn btn-secondary" href="javascript:void(0)" onclick="pause()">Pause anthem</a>
<a id="play2" class="btn btn-secondary d-none" href="javascript:void(0)" onclick="play()">Play anthem</a>
{% endif %}
{% if v and v.id != u.id %}
{% if u.id != 995 %}<a id="button-unsub2" class="btn btn-secondary {% if not is_following %}d-none{% endif %}" href="javascript:void(0)" onclick="post_toast2('/unfollow/{{u.username}}','button-unsub2','button-sub2')">Unfollow</a>{% endif %}
<a id="button-sub2" class="btn btn-primary {% if is_following or u.is_nofollow or u.is_blocked %}d-none{% endif %}" href="javascript:void(0)" onclick="post_toast2('/follow/{{u.username}}','button-unsub2','button-sub2')">Follow</a>