do

  -- Base search URL
  local BASE_URL = 'http://pleer.com/mobile/search?q='

  -- Base download URL
  local BASE_DL_URL = 'http://pleer.com/mobile/files_mobile/'

  local htmlparser = require 'htmlparser'

  -- Provide download link
  local function getDownloadLink(id)
    return BASE_DL_URL .. id .. '.mp3'
  end

  local function getLyrics(q)
    local b, c = http.request(BASE_URL .. URL.escape(q))
    if c ~= 200 then
     return "Oops! Netzwerkfehler!"
    end

    local root = htmlparser.parse(b)
    local tracks = root('.track')
    local output = ''

    -- If no tracks found
    if #tracks < 1 then
        return 'Nichts gefunden!'
    end

    for i, track in pairs(tracks) do

        -- Track id
        local trackId = track.id

	-- Remove that starting 't' in the id of element
        trackId = trackId:sub(2)

        -- Parse track
        track = track:getcontent()
        track = htmlparser.parse(track)

        -- Track artist
        local artist = track:select('.artist')[1]
        artist = unescape_html(artist:getcontent())

        -- Track title 
        local title = track:select('.title')[1]
        title = unescape_html(title:getcontent())

        -- Track time
        local time = track:select('.time')[1]
        time = time:getcontent()
        time = time:sub(-5)

        -- Track specs
        local specs = track:select('.specs')[1]
        specs = specs:getcontent()
        specs = specs:split(',')
	-- Size
        local size = specs[1]:trim()
	-- Bitrate
        local bitrate = specs[2]:trim()

	-- Generate an awesome, well formated output
        output = output .. i .. '. ' .. artist .. ' - ' .. title .. '\n'
        .. '🕚 ' .. time .. ' | ' .. ' 🎧 ' .. bitrate .. ' | ' .. ' 📎  ' .. size .. '\n'
        .. '💾 : ' .. getDownloadLink(trackId) .. '\n\n'
    end

    return output
  end

  local function run(msg, matches)
    return getLyrics(matches[1])
  end

  return {
    description = 'Search and get music from pleer',
    usage = {'/music','/musik'},
    patterns = {'^/music (.*)$','^/musik (.*)$'},
    run = run
}

end