Import feed into Nikola
This commit is contained in:
parent
72fc5289ec
commit
f80b7de2d8
|
@ -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:
|
||||||
|
|
|
@ -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()
|
Loading…
Reference in New Issue