~stefanor/ibid/dict-uniq-460504

« back to all changes in this revision

Viewing changes to ibid/plugins/url.py

  • Committer: Stefano Rivera
  • Date: 2009-10-19 14:03:24 UTC
  • mfrom: (760.2.2 url-memory-454768)
  • Revision ID: stefano@rivera.za.net-20091019140324-xbzifm6wgj3qqqut
Don't try and parse non-HTML as HTML. Removes memory leak
https://code.launchpad.net/~stefanor/ibid/url-memory-454768/+merge/13539

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
from datetime import datetime
2
2
from httplib import BadStatusLine
3
3
from urllib import urlencode
4
 
from urllib2 import urlopen, HTTPRedirectHandler, build_opener, HTTPError, HTTPBasicAuthHandler, install_opener
 
4
from urllib2 import urlopen, HTTPRedirectHandler, build_opener, HTTPError, \
 
5
    HTTPBasicAuthHandler, install_opener
5
6
import logging
6
7
import re
7
8
 
44
45
        "Posts a URL to delicious.com"
45
46
 
46
47
        date = datetime.utcnow()
47
 
        title = self._get_title(url)
 
48
        try:
 
49
            title = self._get_title(url)
 
50
        except HTTPError:
 
51
            return
48
52
 
49
53
        con_re = re.compile(r'!n=|!')
50
54
        connection_body = con_re.split(event.sender['connection'])
74
78
            'extended' : event.message['raw'],
75
79
            }
76
80
 
77
 
        self._set_auth(username,password)
 
81
        self._set_auth(username, password)
78
82
        posturl = 'https://api.del.icio.us/v1/posts/add?' + urlencode(data, 'utf-8')
79
83
 
80
84
        try:
94
98
            etree = get_html_parse_tree(url, None, headers, 'etree')
95
99
            title = etree.findtext('head/title')
96
100
            return title
 
101
        except HTTPError, e:
 
102
            raise
97
103
        except Exception, e:
98
104
            log.debug(u"Error determining title for %s: %s", url, unicode(e))
99
105
            return url