feat: endorsement badge icon only
parent
06843812c8
commit
fdd5949a74
|
@ -1,5 +1,9 @@
|
|||
# Changelog
|
||||
|
||||
# 0.21.1
|
||||
|
||||
Allow to display endorsement badge without text
|
||||
|
||||
# 0.21.0
|
||||
|
||||
* Added rebuttals
|
||||
|
|
|
@ -4,6 +4,7 @@ from sqlalchemy.orm import aliased
|
|||
from fediseer.classes.instance import Guarantee, Endorsement
|
||||
from flask import make_response
|
||||
from sqlalchemy import func
|
||||
from fediseer import enums
|
||||
|
||||
class GuaranteeBadge(Resource):
|
||||
|
||||
|
@ -31,10 +32,16 @@ class GuaranteeBadge(Resource):
|
|||
return response
|
||||
|
||||
class EndorsementBadge(Resource):
|
||||
get_parser = reqparse.RequestParser()
|
||||
get_parser.add_argument("Client-Agent", default="unknown:0:unknown", type=str, required=False, help="The client name and version.", location="headers")
|
||||
get_parser.add_argument("style", required=False, default=enums.BadgeStyle.FULL.name, type=str, help=f"The style the text should take. 'FULL' (default) means icon, text and counter. 'ICON' means just icon and counter.", location="args")
|
||||
|
||||
@api.expect(get_parser)
|
||||
def get(self, domain):
|
||||
'''Retrieve Endorsement Badge SVG
|
||||
'''
|
||||
self.args = self.get_parser.parse_args()
|
||||
style = enums.BadgeStyle[self.args.style]
|
||||
query = db.session.query(
|
||||
Instance.domain,
|
||||
func.count(Endorsement.id) # Count the number of endorsements
|
||||
|
@ -47,9 +54,9 @@ class EndorsementBadge(Resource):
|
|||
)
|
||||
endorsements = query.first()
|
||||
if endorsements is None:
|
||||
svg = generate_endorsements_badge(domain, 0)
|
||||
svg = generate_endorsements_badge(domain, 0, style)
|
||||
else:
|
||||
svg = generate_endorsements_badge(domain, endorsements[1])
|
||||
svg = generate_endorsements_badge(domain, endorsements[1], style)
|
||||
response = make_response(svg)
|
||||
response.headers['Content-Type'] = 'image/svg+xml'
|
||||
return response
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
from pybadges import badge
|
||||
from loguru import logger
|
||||
from fediseer import enums
|
||||
import base64
|
||||
|
||||
with open('fediseer/assets/crossed-chains.svg', 'rb') as file:
|
||||
|
@ -32,14 +33,17 @@ def generate_guarantee_badge(domain: str, guarantor: str):
|
|||
)
|
||||
return guarantee_badge
|
||||
|
||||
def generate_endorsements_badge(domain: str, count: int):
|
||||
def generate_endorsements_badge(domain: str, count: int, style: enums.BadgeStyle = enums.BadgeStyle.FULL):
|
||||
left_color = "DarkSlateGray "
|
||||
right_color = "DarkOliveGreen"
|
||||
right_text=str(count)
|
||||
left_text = "Endorsements"
|
||||
if style == enums.BadgeStyle.ICON:
|
||||
left_text = ''
|
||||
if count == 0:
|
||||
right_color = "DarkRed"
|
||||
endorsements_badge = badge(
|
||||
left_text="Endorsements",
|
||||
left_text=left_text,
|
||||
right_text=right_text,
|
||||
left_color=left_color,
|
||||
right_color=right_color,
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
FEDISEER_VERSION = "0.22.0"
|
||||
FEDISEER_VERSION = "0.22.1"
|
||||
SUPPORTED_SOFTWARE = {
|
||||
"lemmy",
|
||||
"mastodon",
|
||||
|
|
|
@ -33,3 +33,7 @@ class InstanceState(enum.Enum):
|
|||
class InstanceFlags(enum.Enum):
|
||||
RESTRICTED = 0
|
||||
MUTED = 1
|
||||
|
||||
class BadgeStyle(enum.Enum):
|
||||
FULL = 0
|
||||
ICON = 1
|
||||
|
|
Loading…
Reference in New Issue