-download_to_file in paar Plugins entfernt -Antworte auf Nachrichten -Stabilitätsverbesserungen
		
			
				
	
	
		
			46 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
local spotify = {}
 | 
						|
 | 
						|
spotify.triggers = {
 | 
						|
  "open.spotify.com/track/([A-Za-z0-9-]+)",
 | 
						|
  "play.spotify.com/track/([A-Za-z0-9-]+)"
 | 
						|
}
 | 
						|
 | 
						|
local BASE_URL = 'https://api.spotify.com/v1'
 | 
						|
 | 
						|
function spotify:get_track_data(track)
 | 
						|
  local url = BASE_URL..'/tracks/'..track
 | 
						|
  local res,code  = https.request(url)
 | 
						|
  if code ~= 200 then return nil end
 | 
						|
  local data = json.decode(res)
 | 
						|
  return data
 | 
						|
end
 | 
						|
 | 
						|
function spotify:send_track_data(data, msg)
 | 
						|
  local name = data.name
 | 
						|
  local album = data.album.name
 | 
						|
  local artist = data.artists[1].name
 | 
						|
  local preview = data.preview_url
 | 
						|
  local milliseconds = data.duration_ms
 | 
						|
	
 | 
						|
  -- convert s to mm:ss
 | 
						|
  local totalseconds = math.floor(milliseconds / 1000)
 | 
						|
  local duration = makeHumanTime(totalseconds)
 | 
						|
	
 | 
						|
  local text = '<b>'..name..'</b> von <b>'..artist..'</b> aus dem Album <b>'..album..'</b> <i>('..duration..')</i>'
 | 
						|
  if preview then
 | 
						|
    utilities.send_typing(msg.chat.id, 'upload_audio')
 | 
						|
    utilities.send_audio(msg.chat.id, preview, 'Aus dem Album "'..album..'"\nLänge: '..duration, msg.message_id, 30, artist, name)
 | 
						|
  else
 | 
						|
    utilities.send_reply(msg, text, 'HTML')
 | 
						|
  end
 | 
						|
end
 | 
						|
 | 
						|
function spotify:action(msg, config, matches)
 | 
						|
  local data = spotify:get_track_data(matches[1])
 | 
						|
  if not data then utilities.send_reply(msg, config.errors.connection) return end
 | 
						|
  spotify:send_track_data(data, msg)
 | 
						|
  return
 | 
						|
end
 | 
						|
 | 
						|
return spotify
 |