From d0ffc55b652d9a5e7458709a1f1f15d721db2959 Mon Sep 17 00:00:00 2001 From: neingeist Date: Fri, 13 Oct 2006 21:02:35 +0000 Subject: [PATCH] Better feed now --- neinomat-radio-chaotica | 30 ++++++++++++++++++++++++---- neinomat-radio-chaotica.templates.rb | 23 +++++++++++++++++---- neinomat.lib.rb | 2 +- 3 files changed, 46 insertions(+), 9 deletions(-) diff --git a/neinomat-radio-chaotica b/neinomat-radio-chaotica index c68aa1b..8de3349 100755 --- a/neinomat-radio-chaotica +++ b/neinomat-radio-chaotica @@ -16,6 +16,7 @@ require "#{$0}.templates.rb" #---------------------------------------------------------------------------- # Some helper functions +# Get HEAD info from an URL def head(url) uri = URI.parse(url) @@ -24,6 +25,16 @@ def head(url) end end +# Q&D text-to-html +def to_html(text) + html = text.clone + + html.gsub!(/(http:\/\/\S*)/, '\1') + html.gsub!(/\n/, "
") + + html +end + #---------------------------------------------------------------------------- # Get episodes from wiki @@ -34,19 +45,26 @@ episodes = [] @wiki.article(template).what_links_here.each do |page| # puts page # DEBUG - if erste_sendung = parse_template(page, template)["erste_sendung"] + episode_info = parse_template(page, template) + if erste_sendung = episode_info["erste_sendung"] episode = { "title" => page, "url" => @wiki.full_article_url(page), "discussion" => @wiki.full_article_url("Diskussion:#{page}"), - "enclosure_url" => parse_template(page, template)["download"], + "enclosure_url" => episode_info["download"].chomp, "date" => Date.today(), # fallback + + "description" => episode_info["beschreibung"] || "", + "summary" => episode_info["beschreibung"] || "", } + # Check problem fields + MediaWiki::logger.warn "Field beschreibung in #{episode["url"]} empty" if episode["description"] == "" + # Get a real date erste_sendung.gsub!(/\s*um\s*\d+:\d+$/,"") if erste_sendung !~ /^[0-9]{2}\.[0-9]{2}\.[0-9]{4}.*$/ - $stderr.puts "Field '#{erste_sendung}' in #{episode["url"]} looks funny, fall back to today." + MediaWiki::logger.warn "Field erste_sendung='#{erste_sendung}' in #{episode["url"]} looks funny, fall back to today." else episode["date"] = Date.parse(datum2isodate(erste_sendung)) end @@ -57,12 +75,16 @@ episodes = [] episode["length"] = head["content-length"] episode["type"] = head["content-type"] + # More foo + episode["summary"] = episode["summary"] + ERB.new(TPL_SUMMARY_ADD).result(binding) + episode["content:encoded"] = to_html(episode["summary"]) + # We just assume that the episode's length is an hour or so episode["duration"] = "00:59:59" episodes.push(episode) end - # $stderr.puts "DEBUG: Only crawling one episode"; break + #MediaWiki::logger.warn "DEBUG: Only crawling one episode"; break end # Sort episodes, starting with last diff --git a/neinomat-radio-chaotica.templates.rb b/neinomat-radio-chaotica.templates.rb index 1178fe6..1932dff 100755 --- a/neinomat-radio-chaotica.templates.rb +++ b/neinomat-radio-chaotica.templates.rb @@ -32,6 +32,9 @@ TPL_RSS = ' ein podcast der sendungen des entropia e.v., chaos computer club karlsruhe auf querfunk, 104.8 mhz ein podcast der sendungen des entropia e.v., chaos computer club karlsruhe auf querfunk, 104.8 mhz + +infos zur sendung unter: +http://entropia.de/wiki/Radio_Chaotica @@ -52,14 +55,14 @@ TPL_ITEM = ' <%= CGI::escapeHTML(episode["title"]) %> <%= episode["url"] %> - <%= CGI::escapeHTML(episode["title"]) %> + <%= CGI::escapeHTML(episode["description"]) %> Talk Radio " length="<%= episode["length"] %>" type="<%= episode["type"] %>" /> <%= episode["url"] %> <%= episode["pubdate"] %> <%= episode["discussion"] %> - <%= CGI::escapeHTML(episode["title"]) %> + <%= CGI::escapeHTML(episode["content:encoded"]) %> radio@entropia.de @@ -67,7 +70,19 @@ TPL_ITEM = ' Entropia e.V. Karlsruhe entropia,karlsruhe,ccc,hacking,computer,technology,society,chaosradio,chaos,politics <%= episode["duration"] %> - <%= CGI::escapeHTML(episode["title"]) %> - <%= CGI::escapeHTML(episode["title"]) %> + + <%= CGI::escapeHTML(episode["description"]) %> + + <%= CGI::escapeHTML(episode["summary"]) %> ' +TPL_SUMMARY_ADD = ' + +Weitere Informationen zur Sendung gibt es unter: +<%= episode["url"] %> + +Ihr habt Fragen und Anregungen? Hinterlasst sie uns auf der Diskussionsseite zur Sendung oder per Mail an radio@entropia.de: +<%= episode["discussion"] %> + +Weitere Sendungen findet ihr hier: Radio Chaotica. Wir senden (fast ;-) jeden 3. Montag im Monat um 16:00 Uhr live auf Querfunk 104,8 MHz im Raum Karlsruhe. Für alle, die Querfunk nicht über UKW empfangen können, existiert auch der Querfunk Live-Stream (http://www.querfunk.de/live.html) oder natürlich unser Podcast - den ihr gerade lest oder hört :-) +' diff --git a/neinomat.lib.rb b/neinomat.lib.rb index fcc6f4a..c6e0095 100644 --- a/neinomat.lib.rb +++ b/neinomat.lib.rb @@ -1,5 +1,5 @@ def parse_template(title, template) - template_re = Regexp.new("\\\{\\\{" + template + "(.*?)\\\}\\\}") + template_re = Regexp.new("\\\{\\\{" + template + "(.*?)\\\}\\\}", Regexp::MULTILINE) fields = {}