From 0d79c4ce883bfd05dc47041b3364f41c668c4a60 Mon Sep 17 00:00:00 2001 From: Akamaru Date: Sat, 12 Sep 2015 21:55:04 +0200 Subject: [PATCH] revert changes --- plugins/rss.lua | 59 +++++++------------------------------------------ 1 file changed, 8 insertions(+), 51 deletions(-) diff --git a/plugins/rss.lua b/plugins/rss.lua index 65cd90f..2aa8e4d 100644 --- a/plugins/rss.lua +++ b/plugins/rss.lua @@ -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, "<", "<") - str = string.gsub(str, ">", ">") - str = string.gsub(str, "'", "'") - str = string.gsub(str, "’", "'") - str = string.gsub(str, "–", "–") - str = string.gsub(str, "»", "»") - str = string.gsub(str, "»", "»") - str = string.gsub(str, "–", "–") - str = string.gsub(str, "“", "“") - str = string.gsub(str, "”", "”") - str = string.gsub(str, "€", "€") - str = string.gsub(str, "ß", "ß") - - -- Ä Ö Ü - str = string.gsub(str, "ä", "ä") - str = string.gsub(str, "Ä", "Ä") - str = string.gsub(str, "ä", "ä") - str = string.gsub(str, "Ä", "Ä") - str = string.gsub(str, "ö", "ö") - str = string.gsub(str, "Ö", "Ö") - str = string.gsub(str, "ö", "ö") - str = string.gsub(str, "Ö", "Ö") - str = string.gsub(str, "ü", "ü") - str = string.gsub(str, "Ü", "Ü") - str = string.gsub(str, "ü", "ü") - str = string.gsub(str, "Ü", "Ü") - -- 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, '&', '&' ) -- Be sure to do this after all others - return str -end - local function get_base_redis(id, option, extra) local ex = '' if option ~= nil then @@ -65,7 +27,7 @@ local function get_rss(url, prot) res, code = https.request(url) end if code ~= 200 then - return nil, "Fehler beim Erreichen von " .. url + return nil, 'Fehler beim Erreichen von ' .. url end local parsed = feedparser.parse(res) if parsed == nil then @@ -130,14 +92,14 @@ end local function unsubscribe(id, n) if #n > 3 then - return "Du kannst nicht mehr als drei Feeds abonnieren!" + return 'Du kannst nicht mehr als drei Feeds abonnieren!' end n = tonumber(n) local uhash = get_base_redis(id) local subs = redis:smembers(uhash) if n < 1 or n > #subs then - return "Abonnement-ID zu hoch!" + return 'Abonnement-ID zu hoch!' end local sub = subs[n] local lhash = get_base_redis(sub, "subs") @@ -161,7 +123,6 @@ local function cron() local keys = redis:keys(get_base_redis("*", "subs")) for k,v in pairs(keys) do local base = string.match(v, "rss:(.+):subs") -- Get the URL base - --print('RSS: '..base) local prot = redis:get(get_base_redis(base, "protocol")) local last = redis:get(get_base_redis(base, "last_entry")) local url = prot .. "://" .. base @@ -171,16 +132,12 @@ local function cron() end local newentr = get_new_entries(last, parsed.entries) 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 - local title = v2.title or 'Kein Titel' - local link = v2.link or v2.id or 'Kein Link' - if v2.content then - content = string.sub(unescape_for_rss(v2.content:gsub("%b<>", "")), 1, 250) .. '...' - 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' + local title = v2.title or 'No title' + local link = v2.link or v2.id or 'No Link' + --text = string.gsub(text, "\n", "") + text = text .. '[RSS] '.. title .. '\n(' .. link .. ')\n\n' end if text ~= '' then local newlast = newentr[1].id