🧩 A Python library for solving riddles using repixify.com API
- 🔄 Synchronous and asynchronous API
- 🔑 Automatic key extraction
- 🎭 Random User-Agent support
- 🚀 Easy to use
pip install riddles-solver
# Install all dependencies
playwright install# For asynchronous client
pip install riddles-solver[async]
# For User-Agent generation
pip install riddles-solver[user-agent]
# For development
pip install riddles-solver[dev]import riddles_solver
# Automatic key extraction
key = riddles_solver.get_key()
print(f"Your key: {key}")import riddles_solver
# Create client
client = riddles_solver.Client(key="a1b2c3d4e5f6789012345678901234567890abcdef")
# Solve riddles
answer = client.solve("2+2")
print(answer) # 4
answer = client.solve("What has keys but no locks?")
print(answer) # Pianoimport asyncio
import riddles_solver
async def main():
# Create asynchronous client
async with riddles_solver.AsyncClient(key="a1b2c3d4e5f6789012345678901234567890abcdef") as client:
# Solve one riddle
answer = await client.solve("2+2")
print(answer)
# Solve multiple riddles in parallel
riddles = ["2+2", "2+2*2", "What is the capital of France?"]
answers = await client.solve_batch(riddles)
for riddle, answer in zip(riddles, answers):
print(f"{riddle} = {answer}")
asyncio.run(main())# Basic usage
client = riddles_solver.Client(key="your_key")
# With custom User-Agent
client = riddles_solver.Client(
key="your_key",
user_agent="Custom User Agent"
)
# Solve riddle
answer = client.solve("your riddle")# Create client
async_client = riddles_solver.AsyncClient(key="your_key")
# Solve one riddle
answer = await async_client.solve("riddle")
# Batch solving
riddles = ["riddle1", "riddle2", "riddle3"]
answers = await async_client.solve_batch(riddles)
# Don't forget to close the session
await async_client.close()
# Or use context manager
async with riddles_solver.AsyncClient(key="your_key") as client:
answer = await client.solve("riddle")# Programmatically
key = riddles_solver.get_key()
# Via CLI
# riddles-get-keyAfter installation, a command-line utility is available:
# Get a new key
riddles-get-key
# Or
python -m riddles_solver.cliimport asyncio
import riddles_solver
async def demo():
print("🔑 Getting key...")
key = riddles_solver.get_key()
if not key:
print("❌ Failed to get key")
return
print(f"✅ Key obtained: {key}")
# Synchronous client
print("\n🔄 Synchronous solving:")
sync_client = riddles_solver.Client(key=key)
answer = sync_client.solve("2+2")
print(f"2+2 = {answer}")
# Asynchronous client
print("\n⚡ Asynchronous solving:")
async with riddles_solver.AsyncClient(key=key) as async_client:
riddles = ["2+2*2", "What is the capital of Russia?", "10-5"]
answers = await async_client.solve_batch(riddles)
for riddle, answer in zip(riddles, answers):
print(f"{riddle} = {answer}")
if __name__ == "__main__":
asyncio.run(demo())# Run tests
pytest
# With coverage
pytest --cov=riddles_solver# Clone repository
git clone https://github.com/Towux/riddles_solver.git
cd riddles_solver
# Install in development mode
pip install -e .[dev]
# Code formatting
black riddles_solver/
# Type checking
mypy riddles_solver/This project is licensed under the MIT License - see the LICENSE file for details.
If you have questions or issues:
- Check Issues
- Create a new Issue if you don't find a solution
- Describe the problem in as much detail as possible