示例#1
0
def main():

    banner()


    '''
    command line option parser
    '''

    option_parser = optparse.OptionParser()

    option_parser.usage = \
        """
        search_register.py -e [email] [options]
        search_register.py -c [cellphone] [options]"""

    option_parser.add_option('-e', '--email', dest='email', action='store',default=None)
    option_parser.add_option('-c', '--cellphone', dest='cellphone', action='store',default=None)
    option_parser.add_option('-t', '--thread', dest='thread', action='store', default=1,help="")

    """
    parse options
    """
    (options, args) = option_parser.parse_args()

    """
    new logger object
    """
    logger = Logger(5)

    """
    specific the search type (email or cellphone)
    """
    email = options.email
    cellphone = options.cellphone



    if email:
        task_list = Tasktable('email').tasklist
        target = email
        query_method = "email"
    else:
        if cellphone:
            task_list = Tasktable('cellphone').tasklist
            target = cellphone
            query_method = "cellphone"
        else:
            option_parser.error("must specify email OR cellphone")
            return


    logger.info("search websites registered using "+query_method
                +":"+target)


    spider = Spider(task_list,target,query_method,logger)
    spider.controller()
示例#2
0
class Harvester:

    # API Endpoints
    _BASE_URL_PATH = 'https://na1.api.riotgames.com/lol'
    _CHALLENGER_PATH = _BASE_URL_PATH + '/league/v3/challengerleagues/by-queue/'
    _MATCH_PATH = _BASE_URL_PATH + '/match/v3/'
    _SUMMONER_PATH = _BASE_URL_PATH + '/summoner/v3/summoners/'

    # Total matches to fetch
    TOTAL_MATCHES = 1000

    def __init__(self):
        # Load config for defaults & key
        self.config_manager = Config().get_instance()
        self.api_key = self.config_manager.get_api_key()
        self.logger = Logger()

    def make_request(self, path, payload=None):
        """
        Make request to Riot API Developer endpoint with optional data
        :param path: endpoint to query
        :param payload: optional parameters to send with the request
        :return:
        """
        try:
            if payload is None:
                payload = {'api_key': self.api_key}
            else:
                payload['api_key'] = self.api_key
            response = requests.get(path, params=payload)
            self.logger.info(path + str(response))
            response.raise_for_status()
            return response.json()
        except requests.exceptions.RequestException:
            return None

    def get_challenger_path(self):
        return self._CHALLENGER_PATH

    def get_match_path(self):
        return self._MATCH_PATH

    def get_summoner_path(self):
        return self._SUMMONER_PATH

    def get_total_matches(self):
        return self.TOTAL_MATCHES