revert changes

This commit is contained in:
Akamaru 2015-09-12 21:55:04 +02:00
parent f20a60afeb
commit 0d79c4ce88

View File

@ -1,41 +1,3 @@
feedparser = (loadfile "./libs/feedparser.lua")()
local function unescape_for_rss(str)
-- Character encoding
str = string.gsub(str, "|", "|")
str = string.gsub(str, "‹", "")
str = string.gsub(str, "&lt;", "<")
str = string.gsub(str, "&gt;", ">")
str = string.gsub(str, "&#39;", "'")
str = string.gsub(str, "&#8217;", "'")
str = string.gsub(str, "&ndash;", "")
str = string.gsub(str, "&raquo;", "»")
str = string.gsub(str, "&#187;", "»")
str = string.gsub(str, "&#8211;", "")
str = string.gsub(str, "&#8220;", "")
str = string.gsub(str, "&#8221;", "")
str = string.gsub(str, "&#8364;", "")
str = string.gsub(str, "&#223;", "ß")
-- Ä Ö Ü
str = string.gsub(str, "&auml;", "ä")
str = string.gsub(str, "&Auml;", "Ä")
str = string.gsub(str, "&#228;", "ä")
str = string.gsub(str, "&#196;", "Ä")
str = string.gsub(str, "&ouml;", "ö")
str = string.gsub(str, "&Ouml;", "Ö")
str = string.gsub(str, "&#246;", "ö")
str = string.gsub(str, "&#214;", "Ö")
str = string.gsub(str, "&uuml;", "ü")
str = string.gsub(str, "&Uuml;", "Ü")
str = string.gsub(str, "&#252;", "ü")
str = string.gsub(str, "&#220;", "Ü")
-- str = string.gsub( str, '&#(%d+);', function(n) return string.char(n) end ) <- There is a bug, but I don't know!?
str = string.gsub( str, '&#x(%d+);', function(n) return string.char(tonumber(n,16)) end )
str = string.gsub( str, '&amp;', '&' ) -- Be sure to do this after all others
return str
end
local function get_base_redis(id, option, extra) local function get_base_redis(id, option, extra)
local ex = '' local ex = ''
if option ~= nil then if option ~= nil then
@ -65,7 +27,7 @@ local function get_rss(url, prot)
res, code = https.request(url) res, code = https.request(url)
end end
if code ~= 200 then if code ~= 200 then
return nil, "Fehler beim Erreichen von " .. url return nil, 'Fehler beim Erreichen von ' .. url
end end
local parsed = feedparser.parse(res) local parsed = feedparser.parse(res)
if parsed == nil then if parsed == nil then
@ -130,14 +92,14 @@ end
local function unsubscribe(id, n) local function unsubscribe(id, n)
if #n > 3 then if #n > 3 then
return "Du kannst nicht mehr als drei Feeds abonnieren!" return 'Du kannst nicht mehr als drei Feeds abonnieren!'
end end
n = tonumber(n) n = tonumber(n)
local uhash = get_base_redis(id) local uhash = get_base_redis(id)
local subs = redis:smembers(uhash) local subs = redis:smembers(uhash)
if n < 1 or n > #subs then if n < 1 or n > #subs then
return "Abonnement-ID zu hoch!" return 'Abonnement-ID zu hoch!'
end end
local sub = subs[n] local sub = subs[n]
local lhash = get_base_redis(sub, "subs") local lhash = get_base_redis(sub, "subs")
@ -161,7 +123,6 @@ local function cron()
local keys = redis:keys(get_base_redis("*", "subs")) local keys = redis:keys(get_base_redis("*", "subs"))
for k,v in pairs(keys) do for k,v in pairs(keys) do
local base = string.match(v, "rss:(.+):subs") -- Get the URL base local base = string.match(v, "rss:(.+):subs") -- Get the URL base
--print('RSS: '..base)
local prot = redis:get(get_base_redis(base, "protocol")) local prot = redis:get(get_base_redis(base, "protocol"))
local last = redis:get(get_base_redis(base, "last_entry")) local last = redis:get(get_base_redis(base, "last_entry"))
local url = prot .. "://" .. base local url = prot .. "://" .. base
@ -171,16 +132,12 @@ local function cron()
end end
local newentr = get_new_entries(last, parsed.entries) local newentr = get_new_entries(last, parsed.entries)
local subscribers = {} local subscribers = {}
local text = '' -- Send one message per feed with the latest entries local text = '' -- Send only one message with all updates
for k2, v2 in pairs(newentr) do for k2, v2 in pairs(newentr) do
local title = v2.title or 'Kein Titel' local title = v2.title or 'No title'
local link = v2.link or v2.id or 'Kein Link' local link = v2.link or v2.id or 'No Link'
if v2.content then --text = string.gsub(text, "\n", "")
content = string.sub(unescape_for_rss(v2.content:gsub("%b<>", "")), 1, 250) .. '...' text = text .. '[RSS] '.. title .. '\n(' .. link .. ')\n\n'
else
content = string.sub(unescape_for_rss(v2.summary:gsub("%b<>", "")), 1, 250) .. '...'
end
text = text .. '[RSS] '.. title .. '\n'..content..'\n\n(' .. link .. ')\n\n'
end end
if text ~= '' then if text ~= '' then
local newlast = newentr[1].id local newlast = newentr[1].id