|
|
|
|
|
import os |
|
import logging |
|
|
|
logging.basicConfig(level=logging.INFO) |
|
|
|
|
|
class TokenManager: |
|
def __init__(self, free_tier=True): |
|
self.free_tier_enabled = free_tier |
|
self.user_tokens = {} |
|
|
|
def register_user(self, user_id: str): |
|
if user_id not in self.user_tokens: |
|
self.user_tokens[user_id] = 5 if self.free_tier_enabled else 0 |
|
logging.info(f"[π³] Registered user '{user_id}' with {self.user_tokens[user_id]} tokens.") |
|
|
|
def deduct_token(self, user_id: str) -> bool: |
|
if self.user_tokens.get(user_id, 0) > 0: |
|
self.user_tokens[user_id] -= 1 |
|
logging.info(f"[π»] Deducted token from '{user_id}'. Remaining: {self.user_tokens[user_id]}") |
|
return True |
|
else: |
|
logging.warning(f"[π«] No tokens left for '{user_id}'.") |
|
return False |
|
|
|
def add_tokens(self, user_id: str, amount: int): |
|
self.user_tokens[user_id] = self.user_tokens.get(user_id, 0) + amount |
|
logging.info(f"[β] Added {amount} tokens to '{user_id}'. Total: {self.user_tokens[user_id]}") |
|
|
|
def check_balance(self, user_id: str) -> int: |
|
return self.user_tokens.get(user_id, 0) |
|
|
|
|
|
if __name__ == "__main__": |
|
tm = TokenManager() |
|
tm.register_user("user_001") |
|
print("Balance:", tm.check_balance("user_001")) |
|
tm.deduct_token("user_001") |
|
print("Balance:", tm.check_balance("user_001")) |
|
|