This commit is contained in:
NikolajDanger
2021-02-01 15:14:11 +01:00
parent d1b2e822ba
commit 945c66e849

View File

@ -1,4 +1,4 @@
import requests, imdb, discord, json, math, time
import requests, imdb, discord, json, math, time, asyncio
from funcs import logThis
radarrURL = "http://localhost:7878/api/v3/"
@ -163,12 +163,15 @@ class BedreNetflix():
await channel.send("Something went wrong")
logThis(str(r.status_code)+" "+r.reason)
async def downloading(self,ctx):
#Generates a list of all torrents and returns formatted list and whether all torrents are downloaded
async def genDownloadList(self):
logThis("Generating torrent list")
response = requests.get(qbittorrentURL+"torrents/info")
torrentList = response.json()
message = []
allDownloaded = True
for torrent in torrentList:
torrentName = torrent["name"]
@ -179,6 +182,8 @@ class BedreNetflix():
torrentName = torrentName[:27]+"..."
if torrent["size"] == 0:
downloadedRatio = 0
elif torrent["amount_left"] == 0:
downloadedRatio = 1
else:
downloadedRatio = min(torrent["downloaded"]/torrent["size"],1)
progressBar = "|"+(""*math.floor(downloadedRatio*20))
@ -210,7 +215,35 @@ class BedreNetflix():
if not (downloadedRatio == 1 and torrent["added_on"] < time.time()-86400):
message.append(torrentInfo)
if downloadedRatio < 1: allDownloaded = False
messageText = "```"+"\n".join(message)+"```"
if messageText == "``````":
messageText = "There are no torrents downloading right. If the torrent you're looking for was added more than 24 hours ago, it might already be on Bedre Netflix."
await ctx.send(messageText)
return messageText, allDownloaded
async def downloading(self,ctx):
messageText, allDownloaded = await self.genDownloadList()
updatesLeft = 20
messageText = messageText[:-3]+"\nThis message will update once a minute for "+str(updatesLeft)+" more minutes\n```"
oldMessage = await ctx.send(messageText)
while ((not allDownloaded) and updatesLeft > 0):
await asyncio.sleep(60)
updatesLeft -= 1
messageText, allDownloaded = await self.genDownloadList()
messageText = messageText[:-3]+"\nThis message will update once a minute for "+str(updatesLeft)+" more minutes\n```"
await oldMessage.edit(content = messageText)
messageText, allDownloaded = await self.genDownloadList()
if allDownloaded:
messageText = messageText[:-3]+"\nThis message will not update because all torrents are downloaded.\n```"
logThis("All torrents are downloaded")
else:
messageText = messageText[:-3]+"\nThis message will not update anymore\n```"
logThis("The message updated 20 times")
await oldMessage.edit(content = messageText)