Пример #1
0
    def getWebMentions(self):
        if 'webmention_io' not in self.conf:
            return False
        wio = WebmentionIO(self.conf['webmention_io']['token'])
        last_id = self.status['webmention_io']['last_id']
        print 'last id = %s' % last_id
        ret = wio.linksToDomain(urlparse(self.conf['blog']['url'])[1]) #domain of blog url
        if not ret:
            print wio.error
            return False

        i = 1
        for mention in ret['links']:
            if mention['id'] > self.status['webmention_io']['last_id']:
                self.status['webmention_io']['last_id'] = mention['id']

                print 
                print '%02d Webmention.io ID: %s' % (i, mention['id'] )
                print '    Source: %s' % mention['source']
                print '    Target: %s' % mention['target']
                print '    Verification Date: %s' % mention['verified_date']

                # Now use UrlInfo to get some more information about the source.
                # Most web apps showing webmentions, will probably do something 
                # like this.
                info = UrlInfo(mention['source'])
                print '    Source URL info:'
                print '        Title: %s' % info.title()
                print '        Pub Date: %s' % info.pubDate()
                print '        in-reply-to: %s' % info.inReplyTo()
                print '        Author image: %s' % info.image()

                x = self.normalizeUrl(mention['target'])
                data = self.readUrlDb(x)
                data['webmention_io'][mention['id']] = {
                    'source': str(mention['source']),
                    'target': str(mention['target']),
                    'verified_date': str(mention['verified_date']),
                    'source_title': str(info.title()),
                    'source_pub_date': str(info.pubDate()),
                    'source_in_reply_to': str(info.inReplyTo()),
                    'source_image': str(info.image()),
                    'source_image_local': self.cacheImage(info.image()),
                    'source_snippet': info.snippetWithLink(mention['target'])
                    }
                self.writeUrlDb(data)
                self.touchBucket3PostByURL(x)
                i += 1
        self.writeInfoDb()
Пример #2
0
 def test_linksToDomain(self):
     mock_domain = 'example.com'
     webmention_io = WebmentionIO()
     links = webmention_io.linksToDomain(mock_domain)
     self.assertEqual(links, False)