import datetime from django.core.exceptions import ObjectDoesNotExist from django.template.defaultfilters import striptags from django.core.mail import EmailMessage from django.conf import settings from links.models import Link import requests import json def sync_pinboard_links(): PB_URL = "https://api.pinboard.in/v1/posts/all?results=70&format=json" r = requests.get(PB_URL, auth=((settings.PIN_USER, settings.PIN_PASS))) links = json.loads(r.text) for link in links: try: # check to see if link exists row = Link.objects.get(link_id=link['hash']) print("already have" + row.title) except ObjectDoesNotExist: l, created = Link.objects.get_or_create( title=link['description'], url=link['href'], description=link['extended'], pub_date=datetime.datetime.strptime(link['time'], "%Y-%m-%dT%H:%M:%SZ"), status=0 ) if created: print(l.title) for t in link['tags'].split(" "): l.tags.add(t) email_link(l) def email_link(link): """ Sends an imported link to Gmail (never hurts to have backups) """ subject = link.title body = "%s\n\n%s\n\n\nvisit site:%s\n" % (link.title, link.description, link.url) msg = EmailMessage(subject, striptags(body), 'sng@luxagraf.net', ['luxagraf+links@gmail.com']) msg.send() msg = EmailMessage(subject, striptags(body), 'sng@luxagraf.net', ['sng+links@luxagraf.net']) msg.send()