diff options
Diffstat (limited to 'app/links/retriever.py')
-rw-r--r-- | app/links/retriever.py | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/app/links/retriever.py b/app/links/retriever.py new file mode 100644 index 0000000..f876405 --- /dev/null +++ b/app/links/retriever.py @@ -0,0 +1,111 @@ +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 utils.strutils import safestr,unquotehtml +from links.models import Link +from utils import pinboard + +def sync_pinboard_links(): + """ + sync bookmarks from my pinboard account + + dependancies: python-pinboard https://github.com/mgan59/python-pinboard/ + """ + p = pinboard.open(settings.PIN_USER, settings.PIN_PASS) + dupe = False + links = p.posts(count=30) + for link in links: + try: + #check to see if link exists + row = Link.objects.get(link_id=safestr(link['hash'])) + except ObjectDoesNotExist: + l, created = Link.objects.get_or_create( + title = link['description'], + link_id = safestr(link['hash']), + url = safestr(link['href']), + description = safestr(link['extended']), + rating = "3", + pub_date = datetime.datetime.strptime(link['time'], "%Y-%m-%dT%H:%M:%SZ"), + status = 0 + ) + print l.title + if created: + print l.title + for t in link['tags']: + l.tags.add(t) + email_link(l) + +''' +def sync_delicious_links(*args, **kwargs): + b = delicious.get_all(settings.DELICIOUS_USER, settings.DELICIOUS_PASS) + dupe = False + for post in b: + taglist = [] + try: + row = Link.objects.get(magnolia_id=safestr(post['hash'])) + # If the row exists already, set the dupe flag + dupe = True + except ObjectDoesNotExist: + #f = copy_file(safestr(post.findtext('screenshot')), safestr(info['id'])) + #fake the image since delicious doesn't offer them + local_image_url = "%s/%s.jpg" %(safestr(datetime.datetime.today().strftime("%b").lower()), safestr(post['hash'])) + tags = str(post['tag']).split(" ") + for tag in tags: + taglist.append(tag) + for tag in taglist: + if tag == '2lux': + status = 1 + break + else: + status = 0 + descr = markdown.markdown(unquotehtml(safestr(post['extended'])), safe_mode = False) + l, created = Link.objects.get_or_create( + title = post['description'], + magnolia_id = safestr(post['hash']), + url = safestr(post['href']), + description = descr, + screen_url = local_image_url, + #fake the rating since delicious doesn't offer such things + rating = "3", + pub_date = datetime.datetime.strptime(post['time'], "%Y-%m-%dT%H:%M:%SZ"), + status = status, + enable_comments = True, + tags = ", ".join(t for t in taglist if t != "2lux") + ) + + email_link(l) + if l.status == 1: + pass + #post_to_tumblr(l) + #send_to_deliciousfb(l) + if(dupe): + break + + +''' + +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() + +''' +def send_to_delicious(link): + del_tags = '' + tags = link.tags.split(',') + for tag in tags: + del_tags += tag.strip().replace(' ','_')+' ' + delicious.add(settings.DELICIOUS_USER, settings.DELICIOUS_PASS, link.url, link.title, tags = del_tags, extended = striptags(link.description), dt =safestr(link.pub_date), replace="no") + +'''
\ No newline at end of file |