summaryrefslogtreecommitdiff
path: root/app/links/retriever.py
blob: bcbc8fa6c7460a76a1da5fbbee84b933f9a1c0d9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
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")
    
'''