move venv to shared (#1291)
This commit is contained in:
+3
-4
@@ -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: [
|
||||||
|
|||||||
@@ -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
@@ -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())
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user