Private
Public Access
1
0
Files
rowsandall/rowers/management/commands/getblogposts.py
2020-07-12 09:05:08 +02:00

58 lines
1.5 KiB
Python

#!/srv/venv/bin/python
import sys
import os
import requests
import datetime
import arrow
import json
from simplejson.errors import JSONDecodeError
PY3K = sys.version_info >= (3,0)
from django.core.management.base import BaseCommand
from rowers.models import BlogPost
class Command(BaseCommand):
def handle(self, *args, **options):
blogs_json = []
try:
response = requests.get(
'https://analytics.rowsandall.com/wp-json/wp/v2/posts?per_page=3')
if response.status_code == 200:
try:
blogs_json = response.json()
except JSONDecodeError:
try:
blogs_json = json.loads(response.text)
except JSONDecodeError:
blogs_json = []
else:
blogs_json = []
except ConnectionError:
pass
if blogs_json:
result = BlogPost.objects.all().delete()
for postdata in blogs_json[0:3]:
title = postdata['title']['rendered']
link = postdata['link']
datetime = postdata['date']
datetime = arrow.get(datetime).datetime
date = datetime.date()
blogpost = BlogPost(
link=link,
date=date,
title=title
)
blogpost.save()
self.stdout.write(self.style.SUCCESS(
'Successfully processed blog posts'))