From 27339728cfdb628ba9276470b98a86eaa4d396b5 Mon Sep 17 00:00:00 2001 From: blank X Date: Fri, 16 Jul 2021 19:47:59 +0700 Subject: [PATCH] Add CSP, seperate CSS file, sbbs and probably more --- .gitignore | 1 + .gitlab-ci.yml | 18 ++++---- gensbbsrss.py | 45 +++++++++++++++++++ public/blogs.html | 29 +++--------- public/index.html | 29 +++--------- public/sbbs/index.html | 24 ++++++++++ .../sbbs/slide-switch-account-speedrun.html | 35 +++++++++++++++ public/style.css | 18 ++++++++ requirements.txt | 1 + 9 files changed, 147 insertions(+), 53 deletions(-) create mode 100644 .gitignore create mode 100644 gensbbsrss.py create mode 100644 public/sbbs/index.html create mode 100644 public/sbbs/slide-switch-account-speedrun.html create mode 100644 public/style.css diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..46aff8f --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +index.xml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ec73d9b..f0c63f4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,11 +1,11 @@ -image: alpine:latest +image: ubuntu:20.04 pages: - stage: deploy - script: - - echo 'Nothing to do...' - artifacts: - paths: - - public - only: - - master + stage: deploy + script: + - python3 -m pip install -r requirements.txt && cd public/sbbs && python3 ../../gensbbsrss.py + artifacts: + paths: + - public + only: + - master diff --git a/gensbbsrss.py b/gensbbsrss.py new file mode 100644 index 0000000..f7857d6 --- /dev/null +++ b/gensbbsrss.py @@ -0,0 +1,45 @@ +import os +from datetime import datetime +from xml.etree import ElementTree +from bs4 import BeautifulSoup + +daydict = {1: 'Mon', 2: 'Tue', 3: 'Wed', 4: 'Thu', 5: 'Fri', 6: 'Sat', 7: 'Sun'} +monthdict = {1: 'Jan', 2: 'Feb', 3: 'Mar', 4: 'Apr', 5: 'May', 6: 'Jun', 7: 'Jul', 8: 'Aug', 9: 'Sep', 10: 'Oct', 11: 'Nov', 12: 'Dec'} + +with open('index.html') as file: + soup = BeautifulSoup(file.read()) + sbbsbase = soup.find('link', rel='canonical')['href'] + +feed = ElementTree.Element('rss', version='2.0') +channel = ElementTree.SubElement(feed, 'channel') +title = ElementTree.SubElement(channel, 'title') +title.text = 'software being broken showcase' +link = ElementTree.SubElement(channel, 'link') +link.text = sbbsbase +description = ElementTree.SubElement(channel, 'description') +description.text = 'just a showcase of software being broken :)' +language = ElementTree.SubElement(channel, 'language') +language.text = 'en-us' +items = [] +for i in os.listdir('.'): + if i in ('index.html', 'index.xml'): + continue + with open(i) as file: + soup = BeautifulSoup(file.read()) + item = ElementTree.Element('item') + title = ElementTree.SubElement(item, 'title') + title.text = soup.h1.string + link = ElementTree.SubElement(item, 'link') + link.text = soup.find('link', rel='canonical')['href'] + guid = ElementTree.SubElement(item, 'guid') + guid.text = f'sbbs/{os.path.splitext(i)[0]}' + description = ElementTree.SubElement(item, 'description') + description.text = str(soup.find('div', class_='content')) + items.append((datetime.fromisoformat(soup.find('meta', {'name': 'created'})['content']), item)) +for date, i in sorted(items, reverse=True, key=lambda i: i[0]): + # http://johnbokma.com/blog/2019/10/09/rfc-822-and-rfc-3339-dates-in-python.html + ctime = date.ctime() + pubdate = ElementTree.SubElement(i, 'pubDate') + pubdate.text = f"{ctime[0:3]}, {date.day:02d} {ctime[4:7]} {date.strftime(' %Y %H:%M:%S %z')}" + channel.append(i) +ElementTree.ElementTree(feed).write('index.xml', 'utf-8') diff --git a/public/blogs.html b/public/blogs.html index 26f43a7..fb4458f 100644 --- a/public/blogs.html +++ b/public/blogs.html @@ -3,33 +3,18 @@ + + + + blankie - blogs that i follow - +

blogs that i follow

-

is this too much

-
home | blogs
+

is this too much

+
home | sbbs | blogs