RSS-flöde

Kort om att lägga till RSS-flöden

25 juni 2019 - -

Titta på det nya RSS-flödet! Det var väldigt enkelt. Formatet beskrivs på www.rssboard.org/rss-specification. Jag började läsa, men kom av mig och drog ner rfeed istället. Det fanns för Python-3 i Python Package Index. Exemplet det har verkar inte helt validera, men det säkert inte nåt problem för de flesta RSS-läsare (det funkade i min Chrome-plugin).

Här är i princip hela koden (det var lite små omskrivningar på några andra ställen också):

# From SO https://stackoverflow.com/questions/4389572/how-to-fetch-a-non-ascii-url-with-python-urlopen:
def urlEncodeNonAscii(b):
    return re.sub('[\x80-\xFF]', lambda c: '%%%02x' % ord(c.group(0)), b)
def iriToUri(iri):
    parts= urllib.parse.urlparse(iri)
    return urllib.parse.urlunparse(
        part if parti==1 else urlEncodeNonAscii(part)
        for parti, part in enumerate(parts)
    )
def build_feed(posts):
  def build_rfeed_item(post):
    link = iriToUri(BASE_URL + "/posts/" + get_post_url(post.title))
    return rfeed.Item(
        title = post.title,
        link = link,
        description = post.description,
        author = "alex@email_som_inte_funkar.com",
        guid = rfeed.Guid(link),
        pubDate = datetime.datetime(post.date.year, post.date.month, post.date.day,
                                    00, 00))
  return rfeed.Feed(
    title = "Alkanero",
    link = BASE_URL,
    description = "Ställe på internet där Alex halv-anonymt skriver av sig",
    language = "sv",
    lastBuildDate = datetime.datetime.now(),
    items = [build_rfeed_item(post) for post in posts]
  )
def generate_rss_xml(posts):
  with open("feed.xml", "w") as f:
    f.write(build_feed(posts).rss())

Det ska finnas en RSS-ikon i övre högra hörnet nu.