This commit is contained in:
tommy aka doge 2022-06-04 23:39:49 -04:00
parent 3f56293ccb
commit cfddd9b260
3 changed files with 102 additions and 0 deletions

6
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,6 @@
{
"robloxLsp.diagnostics.globals": [
"goto",
"nd"
]
}

View File

@ -0,0 +1,96 @@
local discordia=require('discordia')
local commands=require('./../commands.lua')
discordia.extensions()
local io = io
function split(s,d)
local t,c,i={},'',0
for k in s:gmatch('.') do
i=i+1
if k==d and string.sub(s,i+1)~='' then
t[#t+1]=c
c=''
goto continue
end
c=c..k
::continue::
end
t[#t+1]=c
return t
end
function clearTmp()
for file in io.popen([[dir "./tmp" /b]]):lines() do os.remove('./tmp/'..file) end
end
commands:Add('yt',{},"wip", function(t)
clearTmp()
local args = t.args
local message = t.message
if args[1] then
if args[1]:match('?v=([%w-_]+)') or args[1]:match('youtu.be/([%w-_]+)') then
local id=args[1]:match('?v=([%w-_]+)') or args[1]:match('youtu.be/([%w-_]+)')
message:reply('Attempting to download song ID='..id)
local filepath = ''
local name
local s=io.popen('ytdl.exe -x --audio-format mp3 --output "./tmp/%(title)s - %(uploader)s.%(ext)s" '..id)
if s then
repeat
a = split(io.popen([[dir "./tmp" /b]]):read('*all'),'\n')
for _,v in next,a do
if v:sub(#v-3)=='.mp3' then
print(v)
filepath=v
break
end
end
until filepath:sub(#filepath-3)=='.mp3'
if filepath then
message:reply('Found file: '..filepath)
message:reply({file='./tmp/'..filepath})
os.remove('./tmp/'..filepath)
else
message:reply('Error downloading song (this is not supposed to happen)')
end
else
message:reply('Error downloading song')
end
else
message:reply('Invalid URL')
end
else
message:reply('No URL provided')
end
end)
commands:Add('sc',{},"wip", function(t)
clearTmp()
local args = t.args
local message = t.message
if args[1] then
if args[1]:match('https://soundcloud.com/[%w-_]+/[%w-_]+') then
local link=args[1]:match('https://soundcloud.com/[%w-_]+/[%w-_]+')
message:reply('Attempting to download song from <'..link..'>')
local filepath
local s=io.popen('ytdl.exe -o "./tmp/%(title)s - %(uploader)s.%(ext)s" '..link)
if s then
repeat
local name = io.popen([[dir "./tmp" /b]]):read('*all')
filepath = name:sub(1,name:len()-1)
until filepath:sub(#filepath-3)=='.mp3'
if filepath then
message:reply('Found file: '..filepath)
message:reply({file='./tmp/'..filepath})
os.remove('./tmp/'..filepath)
else
message:reply('Error downloading song (this is not supposed to happen)')
end
else
message:reply('Error downloading song')
end
else
message:reply('Invalid URL')
end
else
message:reply('No URL provided')
end
end)

BIN
ytdl.exe Normal file

Binary file not shown.