mgbam commited on
Commit
4ae8332
Β·
verified Β·
1 Parent(s): 6ce167c

Update monetization/token_manager.py

Browse files
Files changed (1) hide show
  1. monetization/token_manager.py +41 -0
monetization/token_manager.py CHANGED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # token_manager.py - Manages monetization via Hugging Face tokens or Stripe
2
+
3
+ import os
4
+ import logging
5
+
6
+ logging.basicConfig(level=logging.INFO)
7
+
8
+ # Simple paywall using Hugging Face tokens or credits
9
+ class TokenManager:
10
+ def __init__(self, free_tier=True):
11
+ self.free_tier_enabled = free_tier
12
+ self.user_tokens = {} # user_id -> tokens
13
+
14
+ def register_user(self, user_id: str):
15
+ if user_id not in self.user_tokens:
16
+ self.user_tokens[user_id] = 5 if self.free_tier_enabled else 0
17
+ logging.info(f"[πŸ’³] Registered user '{user_id}' with {self.user_tokens[user_id]} tokens.")
18
+
19
+ def deduct_token(self, user_id: str) -> bool:
20
+ if self.user_tokens.get(user_id, 0) > 0:
21
+ self.user_tokens[user_id] -= 1
22
+ logging.info(f"[πŸ”»] Deducted token from '{user_id}'. Remaining: {self.user_tokens[user_id]}")
23
+ return True
24
+ else:
25
+ logging.warning(f"[🚫] No tokens left for '{user_id}'.")
26
+ return False
27
+
28
+ def add_tokens(self, user_id: str, amount: int):
29
+ self.user_tokens[user_id] = self.user_tokens.get(user_id, 0) + amount
30
+ logging.info(f"[βž•] Added {amount} tokens to '{user_id}'. Total: {self.user_tokens[user_id]}")
31
+
32
+ def check_balance(self, user_id: str) -> int:
33
+ return self.user_tokens.get(user_id, 0)
34
+
35
+ # Example
36
+ if __name__ == "__main__":
37
+ tm = TokenManager()
38
+ tm.register_user("user_001")
39
+ print("Balance:", tm.check_balance("user_001"))
40
+ tm.deduct_token("user_001")
41
+ print("Balance:", tm.check_balance("user_001"))