55 lines
1.4 KiB
Python
55 lines
1.4 KiB
Python
import sys
|
|
import os
|
|
|
|
import requests
|
|
import datetime
|
|
import arrow
|
|
import json
|
|
|
|
from simplejson.errors import JSONDecodeError
|
|
|
|
from django.core.management.base import BaseCommand
|
|
from rowers.models import BlogPost
|
|
from django.utils import timezone
|
|
|
|
PY3K = sys.version_info >= (3, 0)
|
|
|
|
|
|
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:
|
|
_ = BlogPost.objects.all().delete()
|
|
|
|
for postdata in blogs_json[0:3]:
|
|
title = postdata['title']['rendered']
|
|
link = postdata['link']
|
|
date = timezone.now()
|
|
|
|
blogpost = BlogPost(
|
|
link=link,
|
|
date=date,
|
|
title=title
|
|
)
|
|
|
|
blogpost.save()
|
|
|
|
self.stdout.write(self.style.SUCCESS(
|
|
'Successfully processed blog posts'))
|