Import feed into Nikola

This commit is contained in:
Remi Rampin 2017-07-18 18:17:45 -04:00
parent 72fc5289ec
commit f80b7de2d8
2 changed files with 56 additions and 0 deletions

View File

@ -2,12 +2,16 @@ image: registry.gitlab.com/paddy-hack/nikola
test: test:
script: script:
- pip3 install python-dateutil feedparser
- ./import_feed.py
- nikola build - nikola build
except: except:
- master - master
pages: pages:
script: script:
- pip3 install python-dateutil feedparser
- ./import_feed.py
- nikola build - nikola build
artifacts: artifacts:
paths: paths:

52
import_feed.py Executable file
View File

@ -0,0 +1,52 @@
#!/usr/bin/env python3
import dateutil.parser
import io
import feedparser
import re
from urllib.parse import urlparse
def main():
non_slug_chars = re.compile(r'[^a-zA-Z0-9-_]')
# Get feed
for d in feed['entries']:
# Generate file name
url = urlparse(d['link']).path
slug = url
while non_slug_chars.match(slug[0]):
slug = slug[1:]
slug = non_slug_chars.sub('_', slug)
file_name = 'scholarship/%s.html' % slug
# Parse date
date = dateutil.parser.parse(d['date'])
# Open output file
with io.open(file_name, 'w', encoding='utf-8') as fp:
fp.write(u"""\
<!--
.. title: {title}
.. slug: {slug}
.. date: {date}
.. link: {link}
.. description:
-->
<!DOCTYPE html>
<html lang="en">
<body>
<p>{text}</p>
""".format(title=d['title'].strip(), slug=slug,
date=date.strftime('%Y-%m-%d %H:%M:%S'),
link=d['link'].strip(),
text=d['summary'].strip()))
if __name__ == '__main__':
main()