move venv to shared (#1291)
This commit is contained in:
+47
-4
@@ -19,7 +19,7 @@ from dotenv import load_dotenv
|
||||
load_dotenv(dotenv_path=_HERE / ".env")
|
||||
|
||||
# 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.commands import setup_commands # 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)
|
||||
|
||||
|
||||
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
|
||||
async def on_ready():
|
||||
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)")
|
||||
await bot.change_presence(
|
||||
activity=discord.CustomActivity(name="Soon...")
|
||||
)
|
||||
_write_guild_report()
|
||||
await _refresh_presence()
|
||||
asyncio.create_task(_ws_task_loop())
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user