Esempio n. 1
0
 def setUp(self):
     if not self.api_key:
         with open(os.path.join(os.path.dirname(__file__), '../../api-key'),'rt') as f:
             self.api_key = f.read()[:36]
     baseriotapi.print_calls(False)
     baseriotapi.set_region('euw')
     baseriotapi.set_api_key(self.api_key)
Esempio n. 2
0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("-key",
                        type=str,
                        required=True,
                        help="API key to use for scraping")
    parser.add_argument("-region",
                        type=str,
                        required=True,
                        help="API region to use for scraping")
    parser.add_argument("-db",
                        type=str,
                        required=False,
                        help="Path to DB folder (default \"matches\")")
    parser.add_argument(
        "-chunk",
        type=int,
        required=False,
        help="Max number of matches per chunk file (default 50)")
    parser.add_argument("-ids",
                        type=str,
                        required=True,
                        help="Path to match id file")
    args = parser.parse_args()

    baseriotapi.set_region(args.region)
    baseriotapi.set_api_key(args.key)
    baseriotapi.set_rate_limit(1000, 10)
    baseriotapi.print_calls(True)
    baseriotapi.get_match = auto_retry(baseriotapi.get_match)

    db = args.db if args.db else "matches"
    chunk = args.chunk if args.chunk else 50

    scrape_matches(db, args.ids, chunk)
Esempio n. 3
0
 def setUp(self):
     if not self.api_key:
         with open(os.path.join(os.path.dirname(__file__), '../../api-key'),
                   'rt') as f:
             self.api_key = f.read()[:36]
     baseriotapi.print_calls(False)
     baseriotapi.set_region('euw')
     baseriotapi.set_api_key(self.api_key)
Esempio n. 4
0
def setup_riot_api(conf):
    cassioepia = conf['cassiopeia']
    baseriotapi.set_api_key(cassioepia['api_key'])
    baseriotapi.set_region(cassioepia['region'])

    limits = cassioepia.get('rate_limits', None)
    if limits is not None:
        if isinstance(limits[0], (list, tuple)):
            baseriotapi.set_rate_limits(*limits)
        else:
            baseriotapi.set_rate_limit(limits[0], limits[1])

    baseriotapi.print_calls(cassioepia.get('print_calls', False))
Esempio n. 5
0
def setup_riot_api(conf):
    cassioepia = conf['cassiopeia']
    baseriotapi.set_api_key(cassioepia['api_key'])
    baseriotapi.set_region(cassioepia['region'])

    limits = cassioepia.get('rate_limits', None)
    if limits is not None:
        if isinstance(limits[0], (list, tuple)):
            baseriotapi.set_rate_limits(*limits)
        else:
            baseriotapi.set_rate_limit(limits[0], limits[1])

    baseriotapi.print_calls(cassioepia.get('print_calls', False))
Esempio n. 6
0
    secret_token='e6f52c2d50feb7278e91aec9f516776db173c577',
)



# Set API key
# Lets cassi handle riot api rate limits. But does this work per instance of this app (if many ppl are using website at same time) or globally? is this the best place
# for this, or should this be under the relevant url routes?
riotapi.set_region('na')
riotapi.print_calls(True)
riotapi.set_api_key(API_KEY)
riotapi.set_rate_limits((9, 10), (480, 600))
riotapi.set_load_policy(LoadPolicy.lazy)

baseriotapi.set_region('na')
baseriotapi.print_calls(True)
baseriotapi.set_api_key(API_KEY)
baseriotapi.set_rate_limits((9, 10), (480, 600))


def auto_retry(api_call_method):
    """ A decorator to automatically retry 500s (Service Unavailable) and skip 400s (Bad Request) or 404 (Not Found). """
    def call_wrapper(*args, **kwargs):
        try:
            return api_call_method(*args, **kwargs)
        except APIError as error:
            # Try Again Once
            if error.error_code in [500]:
                try:
                    print("Got a 500, trying again...")
                    return api_call_method(*args, **kwargs)