diff --git a/files/assets/images/badges/1.webp b/files/assets/images/badges/1.webp deleted file mode 100644 index 71ff6f89f..000000000 Binary files a/files/assets/images/badges/1.webp and /dev/null differ diff --git a/files/assets/images/badges/10.webp b/files/assets/images/badges/10.webp deleted file mode 100644 index 0cfaf1a2d..000000000 Binary files a/files/assets/images/badges/10.webp and /dev/null differ diff --git a/files/assets/images/badges/100.webp b/files/assets/images/badges/100.webp deleted file mode 100644 index c7c74772b..000000000 Binary files a/files/assets/images/badges/100.webp and /dev/null differ diff --git a/files/assets/images/badges/101.webp b/files/assets/images/badges/101.webp deleted file mode 100644 index 4d0836ac7..000000000 Binary files a/files/assets/images/badges/101.webp and /dev/null differ diff --git a/files/assets/images/badges/102.webp b/files/assets/images/badges/102.webp deleted file mode 100644 index 2b7a20db0..000000000 Binary files a/files/assets/images/badges/102.webp and /dev/null differ diff --git a/files/assets/images/badges/103.webp b/files/assets/images/badges/103.webp deleted file mode 100644 index 86e51a54e..000000000 Binary files a/files/assets/images/badges/103.webp and /dev/null differ diff --git a/files/assets/images/badges/104.webp b/files/assets/images/badges/104.webp deleted file mode 100644 index 31b90c2aa..000000000 Binary files a/files/assets/images/badges/104.webp and /dev/null differ diff --git a/files/assets/images/badges/105.webp b/files/assets/images/badges/105.webp deleted file mode 100644 index 41ac7d02a..000000000 Binary files a/files/assets/images/badges/105.webp and /dev/null differ diff --git a/files/assets/images/badges/107.webp b/files/assets/images/badges/107.webp deleted file mode 100644 index 6ac7fa06a..000000000 Binary files a/files/assets/images/badges/107.webp and /dev/null differ diff --git a/files/assets/images/badges/108.webp b/files/assets/images/badges/108.webp deleted file mode 100644 index ecb76c84c..000000000 Binary files a/files/assets/images/badges/108.webp and /dev/null differ diff --git a/files/assets/images/badges/109.webp b/files/assets/images/badges/109.webp deleted file mode 100644 index 57000c4ec..000000000 Binary files a/files/assets/images/badges/109.webp and /dev/null differ diff --git a/files/assets/images/badges/11.webp b/files/assets/images/badges/11.webp deleted file mode 100644 index d8dd54a19..000000000 Binary files a/files/assets/images/badges/11.webp and /dev/null differ diff --git a/files/assets/images/badges/110.webp b/files/assets/images/badges/110.webp deleted file mode 100644 index b4069031b..000000000 Binary files a/files/assets/images/badges/110.webp and /dev/null differ diff --git a/files/assets/images/badges/111.webp b/files/assets/images/badges/111.webp deleted file mode 100644 index 3d7c5d28d..000000000 Binary files a/files/assets/images/badges/111.webp and /dev/null differ diff --git a/files/assets/images/badges/112.webp b/files/assets/images/badges/112.webp deleted file mode 100644 index 7bdc7e8a6..000000000 Binary files a/files/assets/images/badges/112.webp and /dev/null differ diff --git a/files/assets/images/badges/113.webp b/files/assets/images/badges/113.webp deleted file mode 100644 index cbcad083f..000000000 Binary files a/files/assets/images/badges/113.webp and /dev/null differ diff --git a/files/assets/images/badges/114.webp b/files/assets/images/badges/114.webp deleted file mode 100644 index a2012bafd..000000000 Binary files a/files/assets/images/badges/114.webp and /dev/null differ diff --git a/files/assets/images/badges/115.webp b/files/assets/images/badges/115.webp deleted file mode 100644 index 0abd8073b..000000000 Binary files a/files/assets/images/badges/115.webp and /dev/null differ diff --git a/files/assets/images/badges/116.webp b/files/assets/images/badges/116.webp deleted file mode 100644 index a60de48e1..000000000 Binary files a/files/assets/images/badges/116.webp and /dev/null differ diff --git a/files/assets/images/badges/117.webp b/files/assets/images/badges/117.webp deleted file mode 100644 index 909607533..000000000 Binary files a/files/assets/images/badges/117.webp and /dev/null differ diff --git a/files/assets/images/badges/118.webp b/files/assets/images/badges/118.webp deleted file mode 100644 index 306900a96..000000000 Binary files a/files/assets/images/badges/118.webp and /dev/null differ diff --git a/files/assets/images/badges/119.webp b/files/assets/images/badges/119.webp deleted file mode 100644 index e8cb72105..000000000 Binary files a/files/assets/images/badges/119.webp and /dev/null differ diff --git a/files/assets/images/badges/12.webp b/files/assets/images/badges/12.webp deleted file mode 100644 index 58102a9d7..000000000 Binary files a/files/assets/images/badges/12.webp and /dev/null differ diff --git a/files/assets/images/badges/120.webp b/files/assets/images/badges/120.webp deleted file mode 100644 index 6a673e436..000000000 Binary files a/files/assets/images/badges/120.webp and /dev/null differ diff --git a/files/assets/images/badges/121.webp b/files/assets/images/badges/121.webp deleted file mode 100644 index 3cf094fea..000000000 Binary files a/files/assets/images/badges/121.webp and /dev/null differ diff --git a/files/assets/images/badges/122.webp b/files/assets/images/badges/122.webp deleted file mode 100644 index fcfad9ec0..000000000 Binary files a/files/assets/images/badges/122.webp and /dev/null differ diff --git a/files/assets/images/badges/123.webp b/files/assets/images/badges/123.webp deleted file mode 100644 index 83b88c2eb..000000000 Binary files a/files/assets/images/badges/123.webp and /dev/null differ diff --git a/files/assets/images/badges/124.webp b/files/assets/images/badges/124.webp deleted file mode 100644 index 1c2dfbd41..000000000 Binary files a/files/assets/images/badges/124.webp and /dev/null differ diff --git a/files/assets/images/badges/125.webp b/files/assets/images/badges/125.webp deleted file mode 100644 index de8abc121..000000000 Binary files a/files/assets/images/badges/125.webp and /dev/null differ diff --git a/files/assets/images/badges/126.webp b/files/assets/images/badges/126.webp deleted file mode 100644 index 5e840fdb1..000000000 Binary files a/files/assets/images/badges/126.webp and /dev/null differ diff --git a/files/assets/images/badges/127.webp b/files/assets/images/badges/127.webp deleted file mode 100644 index 54981b8a2..000000000 Binary files a/files/assets/images/badges/127.webp and /dev/null differ diff --git a/files/assets/images/badges/128.webp b/files/assets/images/badges/128.webp deleted file mode 100644 index 03a0eb6a6..000000000 Binary files a/files/assets/images/badges/128.webp and /dev/null differ diff --git a/files/assets/images/badges/129.webp b/files/assets/images/badges/129.webp deleted file mode 100644 index 755c0bda1..000000000 Binary files a/files/assets/images/badges/129.webp and /dev/null differ diff --git a/files/assets/images/badges/130.webp b/files/assets/images/badges/130.webp deleted file mode 100644 index a8585a3a5..000000000 Binary files a/files/assets/images/badges/130.webp and /dev/null differ diff --git a/files/assets/images/badges/131.webp b/files/assets/images/badges/131.webp deleted file mode 100644 index ce9e3796a..000000000 Binary files a/files/assets/images/badges/131.webp and /dev/null differ diff --git a/files/assets/images/badges/132.webp b/files/assets/images/badges/132.webp deleted file mode 100644 index 2278f5e7c..000000000 Binary files a/files/assets/images/badges/132.webp and /dev/null differ diff --git a/files/assets/images/badges/133.webp b/files/assets/images/badges/133.webp deleted file mode 100644 index f6a409d26..000000000 Binary files a/files/assets/images/badges/133.webp and /dev/null differ diff --git a/files/assets/images/badges/15.webp b/files/assets/images/badges/15.webp deleted file mode 100644 index 292120626..000000000 Binary files a/files/assets/images/badges/15.webp and /dev/null differ diff --git a/files/assets/images/badges/16.webp b/files/assets/images/badges/16.webp deleted file mode 100644 index a08947fce..000000000 Binary files a/files/assets/images/badges/16.webp and /dev/null differ diff --git a/files/assets/images/badges/17.webp b/files/assets/images/badges/17.webp deleted file mode 100644 index b4102c941..000000000 Binary files a/files/assets/images/badges/17.webp and /dev/null differ diff --git a/files/assets/images/badges/18.webp b/files/assets/images/badges/18.webp deleted file mode 100644 index bb5a134f1..000000000 Binary files a/files/assets/images/badges/18.webp and /dev/null differ diff --git a/files/assets/images/badges/21.webp b/files/assets/images/badges/21.webp deleted file mode 100644 index d1bb5f1d4..000000000 Binary files a/files/assets/images/badges/21.webp and /dev/null differ diff --git a/files/assets/images/badges/22.webp b/files/assets/images/badges/22.webp deleted file mode 100644 index 106dbf403..000000000 Binary files a/files/assets/images/badges/22.webp and /dev/null differ diff --git a/files/assets/images/badges/23.webp b/files/assets/images/badges/23.webp deleted file mode 100644 index b36384d89..000000000 Binary files a/files/assets/images/badges/23.webp and /dev/null differ diff --git a/files/assets/images/badges/24.webp b/files/assets/images/badges/24.webp deleted file mode 100644 index a97570479..000000000 Binary files a/files/assets/images/badges/24.webp and /dev/null differ diff --git a/files/assets/images/badges/25.webp b/files/assets/images/badges/25.webp deleted file mode 100644 index acf5b93f1..000000000 Binary files a/files/assets/images/badges/25.webp and /dev/null differ diff --git a/files/assets/images/badges/26.webp b/files/assets/images/badges/26.webp deleted file mode 100644 index 11be6076c..000000000 Binary files a/files/assets/images/badges/26.webp and /dev/null differ diff --git a/files/assets/images/badges/27.webp b/files/assets/images/badges/27.webp deleted file mode 100644 index 4ae292f78..000000000 Binary files a/files/assets/images/badges/27.webp and /dev/null differ diff --git a/files/assets/images/badges/28.webp b/files/assets/images/badges/28.webp deleted file mode 100644 index db74ca5d0..000000000 Binary files a/files/assets/images/badges/28.webp and /dev/null differ diff --git a/files/assets/images/badges/3.webp b/files/assets/images/badges/3.webp deleted file mode 100644 index a96d27d0d..000000000 Binary files a/files/assets/images/badges/3.webp and /dev/null differ diff --git a/files/assets/images/badges/4.webp b/files/assets/images/badges/4.webp deleted file mode 100644 index 83da13c17..000000000 Binary files a/files/assets/images/badges/4.webp and /dev/null differ diff --git a/files/assets/images/badges/59.webp b/files/assets/images/badges/59.webp deleted file mode 100644 index d8b41c3ea..000000000 Binary files a/files/assets/images/badges/59.webp and /dev/null differ diff --git a/files/assets/images/badges/6.webp b/files/assets/images/badges/6.webp deleted file mode 100644 index cc32afa2c..000000000 Binary files a/files/assets/images/badges/6.webp and /dev/null differ diff --git a/files/assets/images/badges/60.webp b/files/assets/images/badges/60.webp deleted file mode 100644 index 717b9c9e1..000000000 Binary files a/files/assets/images/badges/60.webp and /dev/null differ diff --git a/files/assets/images/badges/61.webp b/files/assets/images/badges/61.webp deleted file mode 100644 index 327df13ef..000000000 Binary files a/files/assets/images/badges/61.webp and /dev/null differ diff --git a/files/assets/images/badges/62.webp b/files/assets/images/badges/62.webp deleted file mode 100644 index 2220ba529..000000000 Binary files a/files/assets/images/badges/62.webp and /dev/null differ diff --git a/files/assets/images/badges/63.webp b/files/assets/images/badges/63.webp deleted file mode 100644 index b25491c70..000000000 Binary files a/files/assets/images/badges/63.webp and /dev/null differ diff --git a/files/assets/images/badges/64.webp b/files/assets/images/badges/64.webp deleted file mode 100644 index 57d366a02..000000000 Binary files a/files/assets/images/badges/64.webp and /dev/null differ diff --git a/files/assets/images/badges/65.webp b/files/assets/images/badges/65.webp deleted file mode 100644 index 9c576bfb0..000000000 Binary files a/files/assets/images/badges/65.webp and /dev/null differ diff --git a/files/assets/images/badges/66.webp b/files/assets/images/badges/66.webp deleted file mode 100644 index ce002723e..000000000 Binary files a/files/assets/images/badges/66.webp and /dev/null differ diff --git a/files/assets/images/badges/67.webp b/files/assets/images/badges/67.webp deleted file mode 100644 index 688a44de5..000000000 Binary files a/files/assets/images/badges/67.webp and /dev/null differ diff --git a/files/assets/images/badges/68.webp b/files/assets/images/badges/68.webp deleted file mode 100644 index e7e8fa005..000000000 Binary files a/files/assets/images/badges/68.webp and /dev/null differ diff --git a/files/assets/images/badges/69.webp b/files/assets/images/badges/69.webp deleted file mode 100644 index cf8b5a0b2..000000000 Binary files a/files/assets/images/badges/69.webp and /dev/null differ diff --git a/files/assets/images/badges/7.webp b/files/assets/images/badges/7.webp deleted file mode 100644 index 956eff229..000000000 Binary files a/files/assets/images/badges/7.webp and /dev/null differ diff --git a/files/assets/images/badges/70.webp b/files/assets/images/badges/70.webp deleted file mode 100644 index 9245d3a05..000000000 Binary files a/files/assets/images/badges/70.webp and /dev/null differ diff --git a/files/assets/images/badges/71.webp b/files/assets/images/badges/71.webp deleted file mode 100644 index 878dd7043..000000000 Binary files a/files/assets/images/badges/71.webp and /dev/null differ diff --git a/files/assets/images/badges/72.webp b/files/assets/images/badges/72.webp deleted file mode 100644 index 67377f840..000000000 Binary files a/files/assets/images/badges/72.webp and /dev/null differ diff --git a/files/assets/images/badges/73.webp b/files/assets/images/badges/73.webp deleted file mode 100644 index 1a792d075..000000000 Binary files a/files/assets/images/badges/73.webp and /dev/null differ diff --git a/files/assets/images/badges/74.webp b/files/assets/images/badges/74.webp deleted file mode 100644 index b75837c8b..000000000 Binary files a/files/assets/images/badges/74.webp and /dev/null differ diff --git a/files/assets/images/badges/75.webp b/files/assets/images/badges/75.webp deleted file mode 100644 index 8d1b5d192..000000000 Binary files a/files/assets/images/badges/75.webp and /dev/null differ diff --git a/files/assets/images/badges/76.webp b/files/assets/images/badges/76.webp deleted file mode 100644 index b769212d9..000000000 Binary files a/files/assets/images/badges/76.webp and /dev/null differ diff --git a/files/assets/images/badges/77.webp b/files/assets/images/badges/77.webp deleted file mode 100644 index ef8d20e22..000000000 Binary files a/files/assets/images/badges/77.webp and /dev/null differ diff --git a/files/assets/images/badges/78.webp b/files/assets/images/badges/78.webp deleted file mode 100644 index 690333b29..000000000 Binary files a/files/assets/images/badges/78.webp and /dev/null differ diff --git a/files/assets/images/badges/79.webp b/files/assets/images/badges/79.webp deleted file mode 100644 index 1a39ecd64..000000000 Binary files a/files/assets/images/badges/79.webp and /dev/null differ diff --git a/files/assets/images/badges/80.webp b/files/assets/images/badges/80.webp deleted file mode 100644 index a9ee221ff..000000000 Binary files a/files/assets/images/badges/80.webp and /dev/null differ diff --git a/files/assets/images/badges/81.webp b/files/assets/images/badges/81.webp deleted file mode 100644 index 56d8142d8..000000000 Binary files a/files/assets/images/badges/81.webp and /dev/null differ diff --git a/files/assets/images/badges/83.webp b/files/assets/images/badges/83.webp deleted file mode 100644 index 3ae8c1a7b..000000000 Binary files a/files/assets/images/badges/83.webp and /dev/null differ diff --git a/files/assets/images/badges/84.webp b/files/assets/images/badges/84.webp deleted file mode 100644 index 3ce17e1e2..000000000 Binary files a/files/assets/images/badges/84.webp and /dev/null differ diff --git a/files/assets/images/badges/85.webp b/files/assets/images/badges/85.webp deleted file mode 100644 index 01303976a..000000000 Binary files a/files/assets/images/badges/85.webp and /dev/null differ diff --git a/files/assets/images/badges/86.webp b/files/assets/images/badges/86.webp deleted file mode 100644 index 70508ddfc..000000000 Binary files a/files/assets/images/badges/86.webp and /dev/null differ diff --git a/files/assets/images/badges/87.webp b/files/assets/images/badges/87.webp deleted file mode 100644 index 4b2357401..000000000 Binary files a/files/assets/images/badges/87.webp and /dev/null differ diff --git a/files/assets/images/badges/88.webp b/files/assets/images/badges/88.webp deleted file mode 100644 index 01e508561..000000000 Binary files a/files/assets/images/badges/88.webp and /dev/null differ diff --git a/files/assets/images/badges/89.webp b/files/assets/images/badges/89.webp deleted file mode 100644 index 7f2b13a42..000000000 Binary files a/files/assets/images/badges/89.webp and /dev/null differ diff --git a/files/assets/images/badges/90.webp b/files/assets/images/badges/90.webp deleted file mode 100644 index b01465ab4..000000000 Binary files a/files/assets/images/badges/90.webp and /dev/null differ diff --git a/files/assets/images/badges/91.webp b/files/assets/images/badges/91.webp deleted file mode 100644 index 5cbb84566..000000000 Binary files a/files/assets/images/badges/91.webp and /dev/null differ diff --git a/files/assets/images/badges/92.webp b/files/assets/images/badges/92.webp deleted file mode 100644 index 63611d8c0..000000000 Binary files a/files/assets/images/badges/92.webp and /dev/null differ diff --git a/files/assets/images/badges/93.webp b/files/assets/images/badges/93.webp deleted file mode 100644 index 7e572ca63..000000000 Binary files a/files/assets/images/badges/93.webp and /dev/null differ diff --git a/files/assets/images/badges/94.webp b/files/assets/images/badges/94.webp deleted file mode 100644 index d1e063054..000000000 Binary files a/files/assets/images/badges/94.webp and /dev/null differ diff --git a/files/assets/images/badges/95.webp b/files/assets/images/badges/95.webp deleted file mode 100644 index 937801838..000000000 Binary files a/files/assets/images/badges/95.webp and /dev/null differ diff --git a/files/assets/images/badges/96.webp b/files/assets/images/badges/96.webp deleted file mode 100644 index 584f033df..000000000 Binary files a/files/assets/images/badges/96.webp and /dev/null differ diff --git a/files/assets/images/badges/97.webp b/files/assets/images/badges/97.webp deleted file mode 100644 index 99fc27ada..000000000 Binary files a/files/assets/images/badges/97.webp and /dev/null differ diff --git a/files/assets/images/badges/98.webp b/files/assets/images/badges/98.webp deleted file mode 100644 index 082d83d75..000000000 Binary files a/files/assets/images/badges/98.webp and /dev/null differ diff --git a/files/assets/images/badges/99.webp b/files/assets/images/badges/99.webp deleted file mode 100644 index ecbb00fd2..000000000 Binary files a/files/assets/images/badges/99.webp and /dev/null differ diff --git a/files/assets/images/badges/2.webp b/files/assets/images/badges/verified_email.webp similarity index 100% rename from files/assets/images/badges/2.webp rename to files/assets/images/badges/verified_email.webp diff --git a/files/classes/badges.py b/files/classes/badges.py index 7befde335..c8ca3d90a 100644 --- a/files/classes/badges.py +++ b/files/classes/badges.py @@ -1,38 +1,49 @@ -from sqlalchemy import * +from dataclasses import dataclass + +from sqlalchemy.sql.schema import Column, ForeignKey, Index +from sqlalchemy.sql.sqltypes import Integer, String from sqlalchemy.orm import relationship from files.classes.base import Base from files.helpers.lazy import lazy from files.helpers.config.const import * from files.helpers.assetcache import assetcache_path -class BadgeDef(Base): - __tablename__ = "badge_defs" - __table_args__ = ( - UniqueConstraint('name', name='badge_def_name_unique'), - ) +@dataclass(frozen=True, kw_only=True, slots=True) +class BadgeDef: + id: str + name: str + description: str - id = Column(Integer, primary_key=True, autoincrement=True) - name = Column(String, nullable=False) - description = Column(String) +BADGES: list[BadgeDef] = [ + BadgeDef( + id="unknown", + name="Unknown Badge", + description="Please report this if you see it! :x" + ), + BadgeDef( + id="verified_email", + name="Verified Email", + description="Verified Email" + ), +] - def __repr__(self): - return f"<{self.__class__.__name__}(id={self.id})>" +BADGES_DICT: dict[str, BadgeDef] = {badge.id:badge for badge in BADGES} class Badge(Base): - __tablename__ = "badges" user_id = Column(Integer, ForeignKey('users.id'), primary_key=True) - badge_id = Column(Integer, ForeignKey('badge_defs.id'), primary_key=True) + badge_id = Column(String, nullable=False) description = Column(String) url = Column(String) Index('badges_badge_id_idx', badge_id) user = relationship("User", viewonly=True) - badge = relationship("BadgeDef", - primaryjoin="foreign(Badge.badge_id) == remote(BadgeDef.id)", - lazy="joined", innerjoin=True, viewonly=True) + + @property + def badge(self) -> BadgeDef: + return BADGES_DICT.get(self.badge_id, BADGES_DICT['unknown']) def __repr__(self): return f"<{self.__class__.__name__}(user_id={self.user_id}, badge_id={self.badge_id})>" diff --git a/files/mail/__init__.py b/files/mail/__init__.py index 51a3a0f9c..8768a0e2e 100644 --- a/files/mail/__init__.py +++ b/files/mail/__init__.py @@ -76,8 +76,8 @@ def activate(v): user.email = email user.is_activated = True - if not any(b.badge_id == 2 for b in user.badges): - mail_badge = Badge(user_id=user.id, badge_id=2) + if not user.has_badge("verified_email"): + mail_badge = Badge(user_id=user.id, badge_id="verified_email") g.db.add(mail_badge) g.db.flush() send_notification(user.id, f"@AutoJanny has given you the following profile badge:\n\n![]({mail_badge.path})\n\n{mail_badge.name}") diff --git a/files/routes/awards.py b/files/routes/awards.py index e1add71d9..355eae4ba 100644 --- a/files/routes/awards.py +++ b/files/routes/awards.py @@ -54,32 +54,6 @@ def buy(v, award): if v.coins < price: abort(400, "Not enough coins.") v.coins -= price v.coins_spent += price - if v.coins_spent >= 1000000 and not v.has_badge(73): - new_badge = Badge(badge_id=73, user_id=v.id) - g.db.add(new_badge) - g.db.flush() - send_notification(v.id, f"@AutoJanny has given you the following profile badge:\n\n![]({new_badge.path})\n\n{new_badge.name}") - elif v.coins_spent >= 500000 and not v.has_badge(72): - new_badge = Badge(badge_id=72, user_id=v.id) - g.db.add(new_badge) - g.db.flush() - send_notification(v.id, f"@AutoJanny has given you the following profile badge:\n\n![]({new_badge.path})\n\n{new_badge.name}") - elif v.coins_spent >= 250000 and not v.has_badge(71): - - new_badge = Badge(badge_id=71, user_id=v.id) - g.db.add(new_badge) - g.db.flush() - send_notification(v.id, f"@AutoJanny has given you the following profile badge:\n\n![]({new_badge.path})\n\n{new_badge.name}") - elif v.coins_spent >= 100000 and not v.has_badge(70): - new_badge = Badge(badge_id=70, user_id=v.id) - g.db.add(new_badge) - g.db.flush() - send_notification(v.id, f"@AutoJanny has given you the following profile badge:\n\n![]({new_badge.path})\n\n{new_badge.name}") - elif v.coins_spent >= 10000 and not v.has_badge(69): - new_badge = Badge(badge_id=69, user_id=v.id) - g.db.add(new_badge) - g.db.flush() - send_notification(v.id, f"@AutoJanny has given you the following profile badge:\n\n![]({new_badge.path})\n\n{new_badge.name}") g.db.add(v) diff --git a/files/routes/login.py b/files/routes/login.py index d8111f739..cc96b5fde 100644 --- a/files/routes/login.py +++ b/files/routes/login.py @@ -321,26 +321,6 @@ def sign_up_post(v): g.db.add(new_user) g.db.flush() - if ref_id: - ref_user = g.db.query(User).filter_by(id=ref_id).one_or_none() - - if ref_user: - if ref_user.referral_count and not ref_user.has_badge(10): - new_badge = Badge(user_id=ref_user.id, badge_id=10) - g.db.add(new_badge) - g.db.flush() - send_notification(ref_user.id, f"@AutoJanny has given you the following profile badge:\n\n![]({new_badge.path})\n\n{new_badge.name}") - if ref_user.referral_count >= 10 and not ref_user.has_badge(11): - new_badge = Badge(user_id=ref_user.id, badge_id=11) - g.db.add(new_badge) - g.db.flush() - send_notification(ref_user.id, f"@AutoJanny has given you the following profile badge:\n\n![]({new_badge.path})\n\n{new_badge.name}") - if ref_user.referral_count >= 100 and not ref_user.has_badge(12): - new_badge = Badge(user_id=ref_user.id, badge_id=12) - g.db.add(new_badge) - g.db.flush() - send_notification(ref_user.id, f"@AutoJanny has given you the following profile badge:\n\n![]({new_badge.path})\n\n{new_badge.name}") - check_for_alts(new_user.id) if email: send_verification_email(new_user)