我一直在尝试永久地在线托管我的Discord Bot。尽管所有的语音通道(Musik命令)都不再起作用,但它并没有太大变化。
我的requirements.txt文件包括: 不和谐 ,youtube_dl ,ffmpeg
在Build日志上,它确实安装了它们,没有任何问题,Bot很快就在日志上上线了。 为了您的兴趣:我使用Github将我的代码推送到Heroku(它已连接到Github)。
TELESCOPE_ENABLED=true
上面只是一个示例代码,我的一个音乐命令看起来像这样。
在这里我所有的导入内容都可以在我的本地PC上运行
global voice
channel = ctx.message.author.voice.channel
voice = get(client.voice_clients, guild=ctx.guild)
if voice and voice.is_connected():
await voice.move_to(channel)
else:
voice = await channel.connect()
song_there = os.path.isfile("song.mp3")
try:
if song_there:
os.remove("song.mp3")
queues.clear()
except PermissionError:
return
ydl_opts = {
'format': 'bestaudio/best',
'quiet': True,
'postprocessors': [{
'key': 'FFmpegExtractAudio',
'preferredcodec': 'mp3',
'preferredquality': '192',
}],
}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
ydl.download([url])
for file in os.listdir("./"):
if file.endswith(".mp3"):
name = file
os.rename(file, "song.mp3")
def my_after(error):
coro = voice.disconnect()
for file in os.listdir("./"):
if file.endswith(".mp3"):
os.remove("song.mp3")
fut = asyncio.run_coroutine_threadsafe(coro, client.loop)
try:
fut.result()
except:
pass
voice.play(discord.FFmpegPCMAudio('song.mp3'), after=my_after)
voice.source = discord.PCMVolumeTransformer(voice.source)
voice.source.volume = 0.10
我知道youtube_dl和ffmpegPCMAudio下载并将音频文件(如代码中所示)保存在Queue文件夹中。但是我如何实现/将其转移到Heroku以使其可执行?
答案 0 :(得分:1)
首先,您需要在Heroku上拥有4个buildpack,以确保一切正常(您的APP>设置> buildpacks )。
然后检查您的 requirements.txt 中是否包含所有这些内容:
将此添加到您的代码中。
import ctypes
import ctypes.util
如果您尝试了所有操作,请在错误消息中注释此答案,我会尽力帮助您,但请首先尝试。
制作一个名为 Aptfile 的新文件(与制作文件 Procfile 的方法相同,因此在CMD中: echo> Aptfile 。然后将其粘贴内部:
libopus0
git
libopus-dev
libssl-dev
libffi-dev
libsodium-dev
:repo:ppa:mc3man/xerus-media -y
答案 1 :(得分:0)
在Heroku的“设置”标签下,添加以下构建包
library(forecast)
library(hts)
htsqpass.ts <- ts(rnorm(100), start=2015, frequency=12)
quar<-rep(c("1", "2", "3", "4"), each = 12)
mth<-rep(c("April","August","December","February","January","July","June","March","May","November","September","October"), each=4)
rownames(mth) <- c("Quarter", "Month")
x <- gts(abc, groups = gc)
x
https://github.com/jonathanong/heroku-buildpack-ffmpeg-latest.git
https://github.com/kitcast/buildpack-ffmpeg.git
https://github.com/alevfalse/heroku-buildpack-ffmpeg.git
https://github.com/Crazycatz00/heroku-buildpack-libopus.git
重新部署您的机器人,然后查看它是否有效