[project] name = "williambutcherbot" version = "0.1.0" description = "A Telegram Bot for group management and more." readme = "README.md" requires-python = ">=3.12" dependencies = [ "aiohttp~=3.14.1", "aiofiles~=23.2.1", "ffmpeg-python~=0.2.0", "gTTS~=2.5.1", "dnspython==2.6.1", "future~=1.0.0", "googletrans~=4.0.0rc1", "motor~=3.6", "pymongo~=4.15", "pillow~=12.3.0", "cryptography~=45.0", "qrcode~=8.2", "psutil~=5.9.8", "pykeyboard~=0.1.5", "python-arq~=6.0.7", "requests~=2.33.0", "search-engine-parser~=0.6.8", "speedtest-cli~=2.1.3", "TgCrypto~=1.2.5", "uvloop~=0.19.0", "yt-dlp~=2026.6.9", "bs4~=0.0.2", "python-dotenv~=1.2.2", "feedparser~=6.0.12", "pyromod~=3.1.6", "fuzzysearch~=0.7.3", "img2pdf~=0.5.1", "telegraph~=2.2.0", "pytz~=2024.1", ] [dependency-groups] dev = [ "mongomock-motor>=0.0.35", "pytest>=8.3.4", "pytest-asyncio>=0.25.2", "ruff>=0.9.0", ] [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"] [tool.ruff] line-length = 100 target-version = "py312" # The upstream bot predates Ruff. Keep the migration baseline focused on the # admin, points, giveaway, and integration surfaces changed by this fork. include = [ "launcher.py", "sample_config.py", "tests/**/*.py", "wbb/admin/**/*.py", "wbb/services/**/*.py", "wbb/modules/admin_panel.py", "wbb/modules/admin_web.py", "wbb/modules/business_assistant.py", "wbb/modules/chat_watcher.py", "wbb/modules/giveaway.py", "wbb/modules/karma.py", "wbb/modules/points.py", "wbb/modules/teacher_directory.py", "wbb/modules/technician_services.py", "wbb/utils/dbadmin.py", "wbb/utils/dbassistant.py", "wbb/utils/dbdirectory.py", "wbb/utils/dbgiveaway.py", "wbb/utils/dbpoints.py", "wbb/utils/dbservice.py", "wbb/web_admin.py", ] [tool.ruff.lint] select = ["E", "F", "I", "UP", "B", "ASYNC"] ignore = ["E501"]