move venv to shared (#1291)

This commit is contained in:
NotSoToothless
2026-05-31 01:43:19 -07:00
committed by GitHub
parent c69478166b
commit 016041dc88
3 changed files with 50 additions and 14 deletions
+3 -4
View File
@@ -6,10 +6,9 @@
const DEPLOY_PATH = __dirname; const DEPLOY_PATH = __dirname;
// Reuse SREBOT's venv by default — both bots share BOTS/SHARED and most // Both bots share one venv at BOTS/SHARED/.venv, built from
// runtime deps (discord.py, dotenv, …). Split into TSSBOT/.venv once the // SHARED/requirements.txt (both bots also share BOTS/SHARED for code).
// dep sets diverge meaningfully. const PY_INTERPRETER = `${DEPLOY_PATH}/../SHARED/.venv/bin/python`;
const PY_INTERPRETER = `${DEPLOY_PATH}/../SREBOT/.venv/bin/python`;
module.exports = { module.exports = {
apps: [ apps: [
-6
View File
@@ -1,6 +0,0 @@
# TSSBOT runtime deps — populate as the bot is built out.
# Many shared utilities under BOTS/SHARED/ require the same deps SREBOT uses;
# see ../SREBOT/requirements.txt for reference.
aiosqlite
discord.py
python-dotenv
+47 -4
View File
@@ -19,7 +19,7 @@ from dotenv import load_dotenv
load_dotenv(dotenv_path=_HERE / ".env") load_dotenv(dotenv_path=_HERE / ".env")
# Imported after load_dotenv so env vars are available. # Imported after load_dotenv so env vars are available.
from BOT.storage import init_tss_dbs # noqa: E402 from BOT.storage import init_tss_dbs, STORAGE_DIR # noqa: E402
from BOT.autologging import set_bot as set_autolog_bot # noqa: E402 from BOT.autologging import set_bot as set_autolog_bot # noqa: E402
from BOT.commands import setup_commands # noqa: E402 from BOT.commands import setup_commands # noqa: E402
from tss_ws import listen, _handle_game # noqa: E402 from tss_ws import listen, _handle_game # noqa: E402
@@ -71,13 +71,56 @@ async def _ws_task_loop() -> None:
await asyncio.sleep(10) await asyncio.sleep(10)
def _write_guild_report() -> None:
"""Write TSSBOT's own guild list to the shared storage volume.
Uses a TSS-specific filename so it does not clobber SREBOT's
SREBOT_GUILDS.txt, which lives on the same STORAGE_VOL_PATH volume.
"""
out_path = STORAGE_DIR / "TSSBOT_GUILDS.txt"
with out_path.open("w", encoding="utf-8") as f:
f.write(f"We have logged in as {bot.user} in the following Guilds:\n\n")
for guild in bot.guilds:
created = guild.created_at.strftime("%Y-%m-%d")
f.write(
f" - {guild.name} (id: {guild.id}) | Members: {guild.member_count} | Created: {created}\n"
)
log.info(f"Guild report written to {out_path.resolve()}")
async def _refresh_presence() -> None:
"""Update the bot's Discord presence to show the current guild count."""
guild_total = len(bot.guilds)
await bot.change_presence(
activity=discord.Activity(
type=discord.ActivityType.playing,
name=f"Playing TSS in {guild_total} servers!",
)
)
@bot.event
async def on_guild_join(guild):
log.info(f"joined guild: {guild.name} (id: {guild.id})")
log.info(f"updated total guilds: {len(bot.guilds)}")
_write_guild_report()
await _refresh_presence()
@bot.event
async def on_guild_remove(guild):
log.info(f"removed from guild: {guild.name} (id: {guild.id})")
log.info(f"updated total guilds: {len(bot.guilds)}")
_write_guild_report()
await _refresh_presence()
@bot.event @bot.event
async def on_ready(): async def on_ready():
log.info(f"logged in as {bot.user} (id={bot.user.id if bot.user else '?'})") log.info(f"logged in as {bot.user} (id={bot.user.id if bot.user else '?'})")
log.info(f"connected to {len(bot.guilds)} guild(s)") log.info(f"connected to {len(bot.guilds)} guild(s)")
await bot.change_presence( _write_guild_report()
activity=discord.CustomActivity(name="Soon...") await _refresh_presence()
)
asyncio.create_task(_ws_task_loop()) asyncio.create_task(_ws_task_loop())