mirror of
https://github.com/migatu/conjurer.git
synced 2026-07-14 21:38:38 +00:00
fix: voice_recognition uses constants for credentials and paths
The cog did its own netrc read from a hardcoded /home/pi/.netrc at import time, crashing on any other host. Now: - constants.py: ASSEMBLYAI_API_KEY resolved like every other token (env ASSEMBLYAI_API_KEY -> netrc machine 'assemblyai' at CONJURER_NETRC_FILE); new TRANSCRIPTS_PATH (env CONJURER_TRANSCRIPTS_PATH, defaults next to the log file, created by the runtime layout) - voice_recognition_commands.py: drop the hardcoded netrc read and transcript dir; when the key is missing raise a clear RuntimeError so the guarded loader disables ONLY this cog with a readable reason - bot.env.example: document ASSEMBLYAI_API_KEY Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
import asyncio
|
||||
import logging
|
||||
import netrc
|
||||
import time
|
||||
import wave
|
||||
|
||||
@@ -9,11 +8,17 @@ import discord
|
||||
from discord.ext import commands, tasks, voice_recv
|
||||
from discord.opus import Decoder as OpusDecoder
|
||||
|
||||
# Replace with your API key
|
||||
NETRC_FILE = "/home/pi/.netrc"
|
||||
netrc_mod = netrc.netrc(NETRC_FILE)
|
||||
authTokens = netrc_mod.authenticators("assemblyai")
|
||||
aai.settings.api_key = authTokens[2]
|
||||
from constants import ASSEMBLYAI_API_KEY, TRANSCRIPTS_PATH
|
||||
|
||||
# Credentials come from constants (env ASSEMBLYAI_API_KEY, or the 'assemblyai'
|
||||
# machine in the netrc at CONJURER_NETRC_FILE). Raising here means the guarded
|
||||
# extension loader logs the reason and disables ONLY this cog.
|
||||
if not ASSEMBLYAI_API_KEY:
|
||||
raise RuntimeError(
|
||||
"AssemblyAI API key not configured (netrc machine 'assemblyai' or "
|
||||
"ASSEMBLYAI_API_KEY env) - voice recognition stays disabled"
|
||||
)
|
||||
aai.settings.api_key = ASSEMBLYAI_API_KEY
|
||||
|
||||
discord.opus._load_default()
|
||||
CHANNELS = OpusDecoder.CHANNELS
|
||||
@@ -23,7 +28,7 @@ SAMPLING_RATE = OpusDecoder.SAMPLING_RATE
|
||||
# rotate file after there is 0.5s between last received pcm for user.
|
||||
# delete messsages after user disconnect
|
||||
|
||||
LOCATION = "/home/pi/Conjurer/transcripts/"
|
||||
LOCATION = TRANSCRIPTS_PATH
|
||||
|
||||
|
||||
class CommunicationObject:
|
||||
|
||||
Reference in New Issue
Block a user