This repository has been archived on 2021-04-24. You can view files and clone it, but cannot push or open issues or pull requests.
Mikubot/plugins/plex.lua

106 lines
2.2 KiB
Lua
Raw Normal View History

2016-02-25 15:25:50 +01:00
do
local makeOurDate = function(dateString)
local pattern = "(%d+)%-(%d+)%-(%d+)"
local year, month, day = dateString:match(pattern)
if month == "00" then
return year
elseif day == "00" then
return month..'.'..year
else
return day..'.'..month..'.'..year
end
end
local function get_plex(query)
local token = cred_data.plex_token
local baseurl = 'http://yagyuu.local:32400' --replace it with yours
2016-02-25 15:25:50 +01:00
local response_body = {}
local request_constructor = {
url = baseurl..'/search?query='..query..'&X-Plex-Token='..token,
method = "GET",
sink = ltn12.sink.table(response_body),
headers = {
Accept = "application/json"
}
}
local ok, response_code, response_headers, response_status_line = http.request(request_constructor)
local data = json:decode(table.concat(response_body))._children[1]
local title = data.title
if data.parentIndex then
season = 'S'..data.parentIndex
else
season = ''
end
if data.index then
episode = 'E'..data.index
else
episode = ''
end
if data.grandparentTitle then
from = ' (aus '..data.grandparentTitle..' ['..season..episode..']'..') '
else
from = ''
end
2016-02-25 15:25:50 +01:00
if data.originalTitle then
origtitle = '\nOriginal: '..data.originalTitle
else
origtitle = ''
end
if data.studio then
studio = '\nStudio: '..data.studio
else
studio = ''
end
if data.originallyAvailableAt then
date = '\nAusstrahlung: '..makeOurDate(data.originallyAvailableAt)
else
date = ''
end
if data.contentRating then
fsk = '\nAltersfreigabe: '..data.contentRating
else
fsk = ''
end
if data.rating then
rating = '\nBewertung: '..data.rating
else
rating = ''
end
local desc = '\n\nBeschreibung: '..data.summary
local pic = baseurl..data.thumb
local text = title..from..origtitle..studio..date..fsk..rating..desc..'\n'
2016-02-25 15:25:50 +01:00
return text, pic
end
local function run(msg, matches)
local query = matches[1]
local query = string.gsub(query, ":", '%%3A' )
local query = string.gsub(query, " ", '+' )
local text, pic = get_plex(query)
local receiver = get_receiver(msg)
local file = download_to_file(pic)
send_photo(receiver, file, ok_cb, false)
return text
end
return {
description = "",
usage = "",
patterns = {"^/plex (.*)$"},
run = run
}
end