ggload / app /services /reverse /utils /statsig.py
f2d90b38's picture
Upload 120 files
8cdca00 verified
"""
Statsig ID generator for reverse interfaces.
"""
import base64
import random
import string
from app.core.logger import logger
from app.core.config import get_config
class StatsigGenerator:
"""Statsig ID generator for reverse interfaces."""
@staticmethod
def _rand(length: int, alphanumeric: bool = False) -> str:
"""Generate random string."""
chars = (
string.ascii_lowercase + string.digits
if alphanumeric
else string.ascii_lowercase
)
return "".join(random.choices(chars, k=length))
@staticmethod
def gen_id() -> str:
"""
Generate Statsig ID.
Returns:
Base64 encoded ID.
"""
dynamic = get_config("app.dynamic_statsig")
# Dynamic Statsig ID
if dynamic:
logger.debug("Generating dynamic Statsig ID")
if random.choice([True, False]):
rand = StatsigGenerator._rand(5, alphanumeric=True)
message = f"e:TypeError: Cannot read properties of null (reading 'children['{rand}']')"
else:
rand = StatsigGenerator._rand(10)
message = (
f"e:TypeError: Cannot read properties of undefined (reading '{rand}')"
)
return base64.b64encode(message.encode()).decode()
# Static Statsig ID
logger.debug("Generating static Statsig ID")
return "ZTpUeXBlRXJyb3I6IENhbm5vdCByZWFkIHByb3BlcnRpZXMgb2YgdW5kZWZpbmVkIChyZWFkaW5nICdjaGlsZE5vZGVzJyk="
__all__ = ["StatsigGenerator"]