aboutsummaryrefslogtreecommitdiff
path: root/blog/generate.py
blob: 09c2320695b70eb3c775454354492c03b74d7f91 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#! /usr/bin/python3

"""
A script to generate html from the rss feed
"""

import xml.etree.ElementTree as et

# Generates a html table for the article
# I use table layout because fuck you
def make_article_table(article_info, article):
    html_text = """
    <table border="1" width="60%">
        <tr><td><h2>{title}</h2>--- {date}</td></tr>
        <tr><td>{article}</td></tr>
    </table>
    """

    html_text = html_text.format(
        title=article_info["title"],
        date=article_info["pubDate"],
        article=article
    )
    
    return html_text

def main():
    tree = et.parse("feed.xml")
    root = tree.getroot()
    channel = root[0]

    template = ""

    # Open html template
    with open("template.html", "r") as fp:
        template = fp.read()

    article_html = ""

    # Get articles from rss
    for item in channel.findall("item"):
        article_info = {
            "title": item.find("title").text,
            "pubDate": item.find("pubDate").text
        }
        
        article = item.find("description").text

        # Remove article tags.
        article = article[article.find("<article>")+9::]
        article = article[:article.find("</article>"):]
        article_html += make_article_table(article_info, article)

    # Format the articles into the html
    template = template.format(articles=article_html)
    print(template)

if __name__ == "__main__":
    main()