Beispiel #1
0
def update_linkbacks(mode):
    """
    Update titles of pages that link to the instance
    @param mode: 1 update page titles of new linkbacks
                 2 update page titles of old linkbacks
                 3 update manually set page titles
                 4 detect and disable broken linkbacks
    """
    if mode in (1, 2, 3):
        if mode == 1:
            urls_and_titles = get_urls_and_titles(CFG_WEBLINKBACK_PAGE_TITLE_STATUS['NEW'])
        elif mode == 2:
            urls_and_titles = get_urls_and_titles(CFG_WEBLINKBACK_PAGE_TITLE_STATUS['OLD'])
        elif mode == 3:
            urls_and_titles = get_urls_and_titles(CFG_WEBLINKBACK_PAGE_TITLE_STATUS['MANUALLY_SET'])

        for (url, title, manual_set, broken_count) in urls_and_titles: # pylint: disable=W0612
            new_title = get_title_of_page(url)
            # Only accept valid titles
            if new_title != None:
                update_url_title(url, new_title)

    elif mode == 4:
        urls_and_titles = get_urls_and_titles()
        for (url, title, manual_set, broken_count) in urls_and_titles: # pylint: disable=W0612
            new_title = get_title_of_page(url)
            # Broken one detected
            if new_title == None:
                increment_broken_count(url)
                if broken_count + 1 == CFG_WEBLINKBACK_BROKEN_COUNT:
                    set_url_broken(url)
Beispiel #2
0
def update_linkbacks(mode):
    """
    Update titles of pages that link to the instance
    @param mode: 1 update page titles of new linkbacks
                 2 update page titles of old linkbacks
                 3 update manually set page titles
                 4 detect and disable broken linkbacks
    """
    if mode in (1, 2, 3):
        if mode == 1:
            urls_and_titles = get_urls_and_titles(
                CFG_WEBLINKBACK_PAGE_TITLE_STATUS['NEW'])
        elif mode == 2:
            urls_and_titles = get_urls_and_titles(
                CFG_WEBLINKBACK_PAGE_TITLE_STATUS['OLD'])
        elif mode == 3:
            urls_and_titles = get_urls_and_titles(
                CFG_WEBLINKBACK_PAGE_TITLE_STATUS['MANUALLY_SET'])

        for (url, title, manual_set, broken_count) in urls_and_titles:  # pylint: disable=W0612
            new_title = get_title_of_page(url)
            # Only accept valid titles
            if new_title != None:
                update_url_title(url, new_title)

    elif mode == 4:
        urls_and_titles = get_urls_and_titles()
        for (url, title, manual_set, broken_count) in urls_and_titles:  # pylint: disable=W0612
            new_title = get_title_of_page(url)
            # Broken one detected
            if new_title == None:
                increment_broken_count(url)
                if broken_count + 1 == CFG_WEBLINKBACK_BROKEN_COUNT:
                    set_url_broken(url)
    def test_create_linkback2(self):
        """weblinkback - create linkback with URL title"""
        recid = 42
        argd = {'url': 'URL',
                'title': 'My title',
                'excerpt': CFG_WEBLINKBACK_SUBSCRIPTION_DEFAULT_ARGUMENT_NAME,
                'blog_name': 'Test Blog',
                'id': CFG_WEBLINKBACK_SUBSCRIPTION_DEFAULT_ARGUMENT_NAME,
                'source': CFG_WEBLINKBACK_SUBSCRIPTION_DEFAULT_ARGUMENT_NAME,
                }

        linkbackid = create_trackback(recid, argd['url'], argd['title'], argd['excerpt'], argd['blog_name'], argd['id'], argd['source'], self.user_info)
        self.assertEqual(10 + self._max_id_lnkENTRY, linkbackid)

        linkback = get_all_linkbacks(recid=recid)[5]
        self.assertEqual(linkbackid, linkback[0])
        self.assertEqual(argd['url'], linkback[1])
        self.assertEqual(recid, linkback[2])
        self.assertEqual(CFG_WEBLINKBACK_TYPE['TRACKBACK'], linkback[4])
        self.assertEqual(CFG_WEBLINKBACK_STATUS['PENDING'], linkback[5])

        url = CFG_SITE_URL + '/%s/42/linkbacks/' % CFG_SITE_RECORD
        expected_texts = ('Linkbacks to review: 6', 'Linkbacks: 0')
        for text in expected_texts:
            self.assertEqual([], test_web_page_content(url,
                                                       username='******',
                                                       expected_text=text))

        approve_linkback(linkbackid, self.user_info)

        linkback = get_all_linkbacks(recid=recid)[5]
        self.assertEqual(linkbackid, linkback[0])
        self.assertEqual(argd['url'], linkback[1])
        self.assertEqual(recid, linkback[2])
        self.assertEqual(CFG_WEBLINKBACK_TYPE['TRACKBACK'], linkback[4])
        self.assertEqual(CFG_WEBLINKBACK_STATUS['APPROVED'], linkback[5])

        url_titles = self.get_all_from_table("lnkENTRYURLTITLE")
        self.assertEqual(1, len(url_titles))
        self.assertEqual(argd['url'], url_titles[0][1])
        self.assertEqual(argd['title'], url_titles[0][2])
        self.assertEqual(1, url_titles[0][3])
        self.assertEqual(argd['title'], get_url_title(argd['url']))

        self.assertEqual(0, len(get_urls_and_titles(CFG_WEBLINKBACK_PAGE_TITLE_STATUS['OLD'])))
        self.assertEqual(0, len(get_urls_and_titles(CFG_WEBLINKBACK_PAGE_TITLE_STATUS['NEW'])))
        self.assertEqual(1, len(get_urls_and_titles(CFG_WEBLINKBACK_PAGE_TITLE_STATUS['MANUALLY_SET'])))

        url = CFG_SITE_URL + '/%s/42/linkbacks/' % CFG_SITE_RECORD
        expected_texts = ('Linkbacks to review: 5', 'Linkbacks: 1')
        for text in expected_texts:
            self.assertEqual([], test_web_page_content(url,
                                                       username='******',
                                                       expected_text=text))