Exemplo n.º 1
0
def bst_weblinkback_updater(mode):
    """
    Update linkbacks
    @param mode: 1 delete rejected, broken and pending linkbacks whose URLs is on blacklist
                 2 update page titles of new linkbacks
                 3 update page titles of old linkbacks
                 4 update manually set page titles
                 5 detect and disable broken linkbacks
    @type mode: int
    """
    mode = int(mode)
    if mode == 1:
        write_message("Starting to delete rejected and pending linkbacks URLs on blacklist")
        delete_linkbacks_on_blacklist()
        write_message("Completed to delete rejected and pending linkbacks URLs on blacklist")
    elif mode == 2:
        write_message("Starting to update the page titles of new linkbacks")
        update_linkbacks(1)
        write_message("Completed to update the page titles of new linkbacks")
    elif mode == 3:
        write_message("Starting to update the page titles of old linkbacks")
        update_linkbacks(2)
        write_message("Completed to update the page titles of old linkbacks")
    elif mode == 4:
        write_message("Starting to update manually set page titles")
        update_linkbacks(3)
        write_message("Completed to update manually set page titles")
    elif mode == 5:
        write_message("Starting to detect and disable broken linkbacks")
        update_linkbacks(4)
        write_message("Completed to detect and disable broken linkbacks")
Exemplo n.º 2
0
def bst_weblinkback_updater(mode):
    """
    Update linkbacks
    @param mode: 1 delete rejected, broken and pending linkbacks whose URLs is on blacklist
                 2 update page titles of new linkbacks
                 3 update page titles of old linkbacks
                 4 update manually set page titles
                 5 detect and disable broken linkbacks
    @type mode: int
    """
    mode = int(mode)
    if mode == 1:
        write_message(
            "Starting to delete rejected and pending linkbacks URLs on blacklist"
        )
        delete_linkbacks_on_blacklist()
        write_message(
            "Completed to delete rejected and pending linkbacks URLs on blacklist"
        )
    elif mode == 2:
        write_message("Starting to update the page titles of new linkbacks")
        update_linkbacks(1)
        write_message("Completed to update the page titles of new linkbacks")
    elif mode == 3:
        write_message("Starting to update the page titles of old linkbacks")
        update_linkbacks(2)
        write_message("Completed to update the page titles of old linkbacks")
    elif mode == 4:
        write_message("Starting to update manually set page titles")
        update_linkbacks(3)
        write_message("Completed to update manually set page titles")
    elif mode == 5:
        write_message("Starting to detect and disable broken linkbacks")
        update_linkbacks(4)
        write_message("Completed to detect and disable broken linkbacks")
        def test_update_manually_set_page_titles(self):
            """weblinkback - test update manually set page titles"""
            self.assertNotEqual([], test_web_page_content(CFG_SITE_URL + '/%s/41/linkbacks/sendtrackback?url=http://www.google.au&title=Google' % CFG_SITE_RECORD, username='******'))
            self.assertNotEqual([], test_web_page_content(CFG_SITE_URL + '/%s/41/linkbacks/sendtrackback?url=http://www.google.at' % CFG_SITE_RECORD, username='******'))
            self.assertNotEqual([], test_web_page_content(CFG_SITE_URL + '/%s/41/linkbacks/sendtrackback?url=http://www.google.co.za&title=Google' % CFG_SITE_RECORD, username='******'))

            p = patch('invenio.weblinkback.get_title_of_page', get_title_of_page_mock1)
            p.start()
            update_linkbacks(3)
            url_titles = self.get_all_from_table("lnkENTRYURLTITLE")
            self.assertEqual(get_title_of_page_mock1(), url_titles[0][2])
            self.assertEqual("", url_titles[1][2])
            self.assertEqual(get_title_of_page_mock1(), url_titles[2][2])
            p.stop()
def bst_weblinkback_updater(mode):
    """
    Update linkbacks
    @param mode: 1 delete rejected, broken and pending linkbacks whose URLs is on blacklist
                 2 update page titles of new linkbacks
                 3 update page titles of old linkbacks
                 4 update manually set page titles
                 5 detect and disable broken linkbacks
                 6 send notification email for all pending linkbacks
    @type mode: int
    """
    mode = int(mode)
    if mode == 1:
        write_message(
            "Starting to delete rejected and pending linkbacks URLs on blacklist"
        )
        delete_linkbacks_on_blacklist()
        write_message(
            "Completed to delete rejected and pending linkbacks URLs on blacklist"
        )
    elif mode == 2:
        write_message("Starting to update the page titles of new linkbacks")
        update_linkbacks(1)
        write_message("Completed to update the page titles of new linkbacks")
    elif mode == 3:
        write_message("Starting to update the page titles of old linkbacks")
        update_linkbacks(2)
        write_message("Completed to update the page titles of old linkbacks")
    elif mode == 4:
        write_message("Starting to update manually set page titles")
        update_linkbacks(3)
        write_message("Completed to update manually set page titles")
    elif mode == 5:
        write_message("Starting to detect and disable broken linkbacks")
        update_linkbacks(4)
        write_message("Completed to detect and disable broken linkbacks")
    elif mode == 6:
        write_message("Starting to send notification email")
        send_pending_linkbacks_notification(CFG_WEBLINKBACK_TYPE['TRACKBACK'])
        write_message("Completed to send notification email")
def bst_weblinkback_updater(mode):
    """
    Update linkbacks
    @param mode: 1 delete rejected, broken and pending linkbacks whose URLs is on blacklist
                 2 update page titles of new linkbacks
                 3 update page titles of old linkbacks
                 4 update manually set page titles
                 5 detect and disable broken linkbacks
                 6 send notification email for all pending linkbacks
    @type mode: int
    """
    mode = int(mode)
    if mode == 1:
        write_message("Starting to delete rejected and pending linkbacks URLs on blacklist")
        delete_linkbacks_on_blacklist()
        write_message("Completed to delete rejected and pending linkbacks URLs on blacklist")
    elif mode == 2:
        write_message("Starting to update the page titles of new linkbacks")
        update_linkbacks(1)
        write_message("Completed to update the page titles of new linkbacks")
    elif mode == 3:
        write_message("Starting to update the page titles of old linkbacks")
        update_linkbacks(2)
        write_message("Completed to update the page titles of old linkbacks")
    elif mode == 4:
        write_message("Starting to update manually set page titles")
        update_linkbacks(3)
        write_message("Completed to update manually set page titles")
    elif mode == 5:
        write_message("Starting to detect and disable broken linkbacks")
        update_linkbacks(4)
        write_message("Completed to detect and disable broken linkbacks")
    elif mode == 6:
        write_message("Starting to send notification email")
        send_pending_linkbacks_notification(CFG_WEBLINKBACK_TYPE["TRACKBACK"])
        write_message("Completed to send notification email")
        def test_detect_and_disable_broken_linkbacks(self):
            """weblinkback - test detect and disable broken linkbacks"""
            self.assertNotEqual([], test_web_page_content(CFG_SITE_URL + '/%s/41/linkbacks/sendtrackback?url=http://www.google.au&title=Google' % CFG_SITE_RECORD, username='******'))
            self.assertNotEqual([], test_web_page_content(CFG_SITE_URL + '/%s/41/linkbacks/sendtrackback?url=http://www.google.at' % CFG_SITE_RECORD, username='******'))
            self.assertNotEqual([], test_web_page_content(CFG_SITE_URL + '/%s/41/linkbacks/sendtrackback?url=http://www.google.co.za&title=GoogleCOZA' % CFG_SITE_RECORD, username='******'))
            self.assertNotEqual([], test_web_page_content(CFG_SITE_URL + '/%s/41/linkbacks/sendtrackback?url=http://www.google.co.za&title=Google' % CFG_SITE_RECORD, username='******'))

            run_sql("""INSERT INTO lnkENTRYURLTITLE (url, title, manual_set, broken_count)
                          VALUES
                          (%s, %s, %s, %s)
                    """, ("http://www.google.de", "Google DE", 0, 3))

            p = patch('invenio.weblinkback.get_title_of_page', get_title_of_page_mock_broken)
            p.start()
            update_linkbacks(4)
            url_titles = self.get_all_from_table("lnkENTRYURLTITLE")
            linkback_entries = self.get_all_from_table("lnkENTRY")
            self.assertEqual("Google", url_titles[0][2])
            self.assertEqual(1, url_titles[0][4])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['PENDING'], linkback_entries[0][5])
            self.assertEqual("", url_titles[1][2])
            self.assertEqual(1, url_titles[1][4])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['PENDING'], linkback_entries[1][5])
            self.assertEqual("GoogleCOZA", url_titles[2][2])
            self.assertEqual(1, url_titles[2][4])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['PENDING'], linkback_entries[2][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['PENDING'], linkback_entries[3][5])
            self.assertEqual("Google DE", url_titles[3][2])
            self.assertEqual(4, url_titles[3][4])

            update_linkbacks(4)
            url_titles = self.get_all_from_table("lnkENTRYURLTITLE")
            linkback_entries = self.get_all_from_table("lnkENTRY")
            self.assertEqual("Google", url_titles[0][2])
            self.assertEqual(2, url_titles[0][4])
            self.assertEqual(0, url_titles[0][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['PENDING'], linkback_entries[0][5])
            self.assertEqual("", url_titles[1][2])
            self.assertEqual(2, url_titles[1][4])
            self.assertEqual(0, url_titles[1][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['PENDING'], linkback_entries[1][5])
            self.assertEqual("GoogleCOZA", url_titles[2][2])
            self.assertEqual(2, url_titles[2][4])
            self.assertEqual(0, url_titles[2][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['PENDING'], linkback_entries[2][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['PENDING'], linkback_entries[3][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['BROKEN'], url_titles[3][2])
            self.assertEqual(5, url_titles[3][4])
            self.assertEqual(1, url_titles[3][5])

            update_linkbacks(4)
            url_titles = self.get_all_from_table("lnkENTRYURLTITLE")
            linkback_entries = self.get_all_from_table("lnkENTRY")
            self.assertEqual("Google", url_titles[0][2])
            self.assertEqual(3, url_titles[0][4])
            self.assertEqual(0, url_titles[0][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['PENDING'], linkback_entries[0][5])
            self.assertEqual("", url_titles[1][2])
            self.assertEqual(3, url_titles[1][4])
            self.assertEqual(0, url_titles[1][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['PENDING'], linkback_entries[1][5])
            self.assertEqual("GoogleCOZA", url_titles[2][2])
            self.assertEqual(3, url_titles[2][4])
            self.assertEqual(0, url_titles[2][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['PENDING'], linkback_entries[2][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['PENDING'], linkback_entries[3][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['BROKEN'], url_titles[3][2])
            self.assertEqual(5, url_titles[3][4])
            self.assertEqual(1, url_titles[3][5])
            p.stop()

            p = patch('invenio.weblinkback.get_title_of_page', get_title_of_page_mock1)
            p.start()
            update_linkbacks(1)
            url_titles = self.get_all_from_table("lnkENTRYURLTITLE")
            linkback_entries = self.get_all_from_table("lnkENTRY")
            self.assertEqual("Google", url_titles[0][2])
            self.assertEqual(3, url_titles[0][4])
            self.assertEqual(0, url_titles[0][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['PENDING'], linkback_entries[0][5])
            self.assertEqual(get_title_of_page_mock1(), url_titles[1][2])
            self.assertEqual(0, url_titles[1][4])
            self.assertEqual(0, url_titles[1][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['PENDING'], linkback_entries[1][5])
            self.assertEqual("GoogleCOZA", url_titles[2][2])
            self.assertEqual(3, url_titles[2][4])
            self.assertEqual(0, url_titles[2][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['PENDING'], linkback_entries[2][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['PENDING'], linkback_entries[3][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['BROKEN'], url_titles[3][2])
            self.assertEqual(5, url_titles[3][4])
            self.assertEqual(1, url_titles[3][5])

            approve_linkback(4 + self._max_id_lnkENTRY, self.user_info)

            update_linkbacks(3)
            url_titles = self.get_all_from_table("lnkENTRYURLTITLE")
            linkback_entries = self.get_all_from_table("lnkENTRY")
            self.assertEqual(get_title_of_page_mock1(), url_titles[0][2])
            self.assertEqual(0, url_titles[0][4])
            self.assertEqual(0, url_titles[0][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['PENDING'], linkback_entries[0][5])
            self.assertEqual(get_title_of_page_mock1(), url_titles[1][2])
            self.assertEqual(0, url_titles[1][4])
            self.assertEqual(0, url_titles[1][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['PENDING'], linkback_entries[1][5])
            self.assertEqual(get_title_of_page_mock1(), url_titles[2][2])
            self.assertEqual(0, url_titles[2][4])
            self.assertEqual(0, url_titles[2][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['PENDING'], linkback_entries[2][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['APPROVED'], linkback_entries[3][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['BROKEN'], url_titles[3][2])
            self.assertEqual(5, url_titles[3][4])
            self.assertEqual(1, url_titles[3][5])
            p.stop()

            p = patch('invenio.weblinkback.get_title_of_page', get_title_of_page_mock_broken)
            p.start()
            update_linkbacks(4)
            url_titles = self.get_all_from_table("lnkENTRYURLTITLE")
            linkback_entries = self.get_all_from_table("lnkENTRY")
            self.assertEqual(get_title_of_page_mock1(), url_titles[0][2])
            self.assertEqual(1, url_titles[0][4])
            self.assertEqual(0, url_titles[0][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['PENDING'], linkback_entries[0][5])
            self.assertEqual(get_title_of_page_mock1(), url_titles[1][2])
            self.assertEqual(1, url_titles[1][4])
            self.assertEqual(0, url_titles[1][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['PENDING'], linkback_entries[1][5])
            self.assertEqual(get_title_of_page_mock1(), url_titles[2][2])
            self.assertEqual(1, url_titles[2][4])
            self.assertEqual(0, url_titles[2][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['PENDING'], linkback_entries[2][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['APPROVED'], linkback_entries[3][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['BROKEN'], url_titles[3][2])
            self.assertEqual(5, url_titles[3][4])
            self.assertEqual(1, url_titles[3][5])

            reject_linkback(1 + self._max_id_lnkENTRY, self.user_info)
            reject_linkback(3 + self._max_id_lnkENTRY, self.user_info)

            update_linkbacks(4)
            url_titles = self.get_all_from_table("lnkENTRYURLTITLE")
            linkback_entries = self.get_all_from_table("lnkENTRY")
            self.assertEqual(get_title_of_page_mock1(), url_titles[0][2])
            self.assertEqual(2, url_titles[0][4])
            self.assertEqual(0, url_titles[0][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['REJECTED'], linkback_entries[0][5])
            self.assertEqual(get_title_of_page_mock1(), url_titles[1][2])
            self.assertEqual(2, url_titles[1][4])
            self.assertEqual(0, url_titles[1][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['PENDING'], linkback_entries[1][5])
            self.assertEqual(get_title_of_page_mock1(), url_titles[2][2])
            self.assertEqual(2, url_titles[2][4])
            self.assertEqual(0, url_titles[2][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['REJECTED'], linkback_entries[2][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['APPROVED'], linkback_entries[3][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['BROKEN'], url_titles[3][2])
            self.assertEqual(5, url_titles[3][4])
            self.assertEqual(1, url_titles[3][5])

            update_linkbacks(4)
            url_titles = self.get_all_from_table("lnkENTRYURLTITLE")
            linkback_entries = self.get_all_from_table("lnkENTRY")
            self.assertEqual(get_title_of_page_mock1(), url_titles[0][2])
            self.assertEqual(3, url_titles[0][4])
            self.assertEqual(0, url_titles[0][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['REJECTED'], linkback_entries[0][5])
            self.assertEqual(get_title_of_page_mock1(), url_titles[1][2])
            self.assertEqual(3, url_titles[1][4])
            self.assertEqual(0, url_titles[1][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['PENDING'], linkback_entries[1][5])
            self.assertEqual(get_title_of_page_mock1(), url_titles[2][2])
            self.assertEqual(3, url_titles[2][4])
            self.assertEqual(0, url_titles[2][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['REJECTED'], linkback_entries[2][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['APPROVED'], linkback_entries[3][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['BROKEN'], url_titles[3][2])
            self.assertEqual(5, url_titles[3][4])
            self.assertEqual(1, url_titles[3][5])

            update_linkbacks(4)
            url_titles = self.get_all_from_table("lnkENTRYURLTITLE")
            linkback_entries = self.get_all_from_table("lnkENTRY")
            self.assertEqual(get_title_of_page_mock1(), url_titles[0][2])
            self.assertEqual(4, url_titles[0][4])
            self.assertEqual(0, url_titles[0][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['REJECTED'], linkback_entries[0][5])
            self.assertEqual(get_title_of_page_mock1(), url_titles[1][2])
            self.assertEqual(4, url_titles[1][4])
            self.assertEqual(0, url_titles[1][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['PENDING'], linkback_entries[1][5])
            self.assertEqual(get_title_of_page_mock1(), url_titles[2][2])
            self.assertEqual(4, url_titles[2][4])
            self.assertEqual(0, url_titles[2][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['REJECTED'], linkback_entries[2][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['APPROVED'], linkback_entries[3][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['BROKEN'], url_titles[3][2])
            self.assertEqual(5, url_titles[3][4])
            self.assertEqual(1, url_titles[3][5])

            update_linkbacks(4)
            url_titles = self.get_all_from_table("lnkENTRYURLTITLE")
            linkback_entries = self.get_all_from_table("lnkENTRY")
            self.assertEqual(CFG_WEBLINKBACK_STATUS['BROKEN'], url_titles[0][2])
            self.assertEqual(5, url_titles[0][4])
            self.assertEqual(1, url_titles[0][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['BROKEN'], linkback_entries[0][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['BROKEN'], url_titles[1][2])
            self.assertEqual(5, url_titles[1][4])
            self.assertEqual(1, url_titles[1][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['BROKEN'], linkback_entries[1][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['BROKEN'], url_titles[2][2])
            self.assertEqual(5, url_titles[2][4])
            self.assertEqual(1, url_titles[2][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['BROKEN'], linkback_entries[2][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['BROKEN'], linkback_entries[3][5])
            self.assertEqual(CFG_WEBLINKBACK_STATUS['BROKEN'], url_titles[3][2])
            self.assertEqual(5, url_titles[3][4])
            self.assertEqual(1, url_titles[3][5])
            p.stop()