예제 #1
0
    def execute(self):
        """
        Execute the installation or production logic.
        """

        replacement_production = {
            'to_replace': [
                'official_status_index', 'official_down_status',
                'official_up_status', 'adblock', 'auto_continue',
                'command_before_end', 'custom_ip', 'days_between_db_retest',
                'debug', 'domain', 'generate_hosts', 'header_printed',
                'to_filter', 'less', 'logs', 'plain_list_domain', 'quiet',
                'referer', 'seconds_before_http_timeout', 'share_logs',
                'show_execution_time', 'show_percentage', 'split_files',
                'travis', 'travis_autosave_minutes', 'travis_autosave_commit',
                'travis_autosave_final_commit', 'unified_file', 'link_to_repo',
                'iana_server', 'current_datetime', 'number_of_tested',
                'number_of_up', 'number_of_down', 'number_of_invalid',
                'http_code_status', 'http_code', 'cleaned_done', 'current_dir'
            ]
        }

        replacement_installation = {
            'current_dir': r"current_dir = '%%current_dir%%'"
        }

        replacement_list = {}

        if self.production:
            replacement_list = replacement_production
        else:
            replacement_list = replacement_installation

            if self.data_to_install is not None:
                replacement_list.update(self.data_to_install)

        script = Helpers.File(self.file_to_install).read()

        for to_replace in replacement_list:
            if to_replace == 'to_replace' or to_replace == 'to_install':
                for variable in replacement_list[to_replace]:

                    if to_replace == 'to_install':
                        replacement = variable + ' = ' + \
                            str(replacement_list[to_replace][variable])
                    else:
                        replacement = variable + ' = ' + \
                            self.default_values()[variable]

                    script = Helpers.Regex(script,
                                           variable + ' = .*',
                                           replace_with=replacement,
                                           occurences=1).replace()
            else:
                replacement = to_replace + ' = ' + \
                    self.default_values()[to_replace]

                script = Helpers.Regex(script,
                                       replacement_list[to_replace],
                                       replace_with=replacement,
                                       occurences=1).replace()

        Helpers.File(self.file_to_install).write(script, True)

        if not Settings.quiet:
            print(Settings.done)
예제 #2
0
    def referer(cls, extension):
        """
        Return the referer for the given extension.

        :pram extension: A string, a valid domain extension.
        """

        from PyFunceble import Lookup

        manual_server = {
            'aaa': 'whois.nic.aaa',
            'abb': 'whois.nic.abb',
            'able': 'whois.nic.able',
            'accenture': 'whois.nic.accenture',
            'aetna': 'whois.nic.aetna',
            'aig': 'whois.nic.aig',
            'americanexpress': 'whois.nic.americanexpress',
            'amex': 'whois.nic.amex',
            'amica': 'whois.nic.amica',
            'amsterdam': 'whois.nic.amsterdam',
            'analytics': 'whois.nic.analytics',
            'aramco': 'whois.nic.aramco',
            'athleta': 'whois.nic.athleta',
            'audible': 'whois.nic.audible',
            'author': 'whois.nic.author',
            'aws': 'whois.nic.aws',
            'axa': 'whois.nic.axa',
            'azure': 'whois.nic.azure',
            'baby': 'whois.nic.baby',
            'banamex': 'whois.nic.banamex',
            'bananarepublic': 'whois.nic.bananarepublic',
            'baseball': 'whois.nic.baseball',
            'bharti': 'whois.nic.bharti',
            'bing': 'whois.nic.bing',
            'bloomberg': 'whois.nic.bloomberg',
            'bm': 'whois.afilias-srs.net',
            'book': 'whois.nic.book',
            'booking': 'whois.nic.booking',
            'bot': 'whois.nic.bot',
            'bz': 'whois.afilias-grs.net',
            'buzz': 'whois.nic.buzz',
            'call': 'whois.nic.call',
            'calvinklein': 'whois.nic.calvinklein',
            'caravan': 'whois.nic.caravan',
            'cartier': 'whois.nic.cartier',
            'cbn': 'whois.nic.cbn',
            'cbre': 'whois.nic.cbre',
            'cd': 'chois.nic.cd',
            'chase': 'whois.nic.chase',
            'circle': 'whois.nic.circle',
            'cisco': 'whois.nic.cisco',
            'citadel': 'whois.nic.citadel',
            'citi': 'whois.nic.citi',
            'citic': 'whois.nic.citic',
            'cm': 'whois.netcom.cm',
            'coupon': 'whois.nic.coupon',
            'crown': 'whois.nic.crown',
            'crs': 'whois.nic.crs',
            'fj': 'whois.usp.ac.fj',
            'ga': 'whois.my.ga',
            'gh': 'whois.nic.gh',
            'kw': 'whois.nic.kw',
            'lc': 'whois2.afilias-grs.net',
            'lk': 'whois.nic.lk',
            'microsoft': 'whois.nic.microsoft',
            'nyc': 'whois.nic.nyc',
            'ps': 'whois.pnina.ps',
            'ren': 'whois.nic.ren',
            'rw': 'whois.ricta.org.rw',
            'shop': 'whois.nic.shop',
            'sl': 'whois.nic.sl',
            'stream': 'whois.nic.stream',
            'tokyo': 'whois.nic.tokyo',
            'uno': 'whois.nic.uno',
            'za': 'whois.registry.net.za'
        }

        if extension in manual_server:
            return manual_server[extension]
        else:
            whois_record = Lookup().whois(Settings.iana_server,
                                          'hello.' + extension, 10)

            if whois_record is not None:
                regex_referer = r'(refer:)\s+(.*)'

                if Helpers.Regex(whois_record,
                                 regex_referer,
                                 return_data=False).match():
                    return Helpers.Regex(whois_record,
                                         regex_referer,
                                         return_data=True,
                                         group=2).match()
            return None
예제 #3
0
    def referer(cls, extension):
        """
        Return the referer for the given extension.

        :pram extension: A string, a valid domain extension.
        """

        from PyFunceble import Lookup

        manual_server = {
            'aaa': 'whois.nic.aaa',
            'abb': 'whois.nic.abb',
            'able': 'whois.nic.able',
            'accenture': 'whois.nic.accenture',
            'aetna': 'whois.nic.aetna',
            'aig': 'whois.nic.aig',
            'americanexpress': 'whois.nic.americanexpress',
            'amex': 'whois.nic.amex',
            'amica': 'whois.nic.amica',
            'amsterdam': 'whois.nic.amsterdam',
            'analytics': 'whois.nic.analytics',
            'aramco': 'whois.nic.aramco',
            'athleta': 'whois.nic.athleta',
            'audible': 'whois.nic.audible',
            'author': 'whois.nic.author',
            'bm': 'whois.afilias-srs.net',
            'bz': 'whois.afilias-grs.net',
            'cd': 'chois.nic.cd',
            'cm': 'whois.netcom.cm',
            'fj': 'whois.usp.ac.fj',
            'ga': 'whois.my.ga',
            'lc': 'whois2.afilias-grs.net',
            'lk': 'whois.nic.lk',
            'nyc': 'whois.nic.nyc',
            'ps': 'whois.pnina.ps',
            'ren': 'whois.nic.ren',
            'rw': 'whois.ricta.org.rw',
            'shop': 'whois.nic.shop',
            'sl': 'whois.nic.sl',
            'stream': 'whois.nic.stream',
            'tokyp': 'whois.nic.tokyo',
            'uno': 'whois.nic.uno',
            'za': 'whois.registry.net.za'
        }

        if extension in manual_server:
            return manual_server[extension]
        else:
            whois_record = Lookup().whois(Settings.iana_server,
                                          'hello.' + extension, 10)

            if whois_record is not None:
                regex_referer = r'(refer:)\s+(.*)'

                if Helpers.Regex(whois_record,
                                 regex_referer,
                                 return_data=False).match():
                    return Helpers.Regex(whois_record,
                                         regex_referer,
                                         return_data=True,
                                         group=2).match()
            return None