Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def get_ip_insights(ip):
try:
client = geoip2.webservice.Client(os.getenv("MAXMIND_USER"), os.getenv("MAXMIND_KEY"))
insights = client.insights(ip)
except AddressNotFoundError:
insights = None
return insights
def get_unpaywall_events(self, rows=100):
insights_client = geoip2.webservice.Client(os.getenv("MAXMIND_CLIENT_ID"), os.getenv("MAXMIND_API_KEY"))
tar_gz_filename = "today-{}.tsv.gz".format(self.first_day)
execute("rm {}".format(tar_gz_filename), check=False) # clear it if there is already one there
command_template = """curl --no-include -o {} -L -H "X-Papertrail-Token: {}" https://papertrailapp.com/api/v1/archives/{}/download"""
command = command_template.format(tar_gz_filename, os.getenv("PAPERTRAIL_API_KEY"), self.first_day)
execute(command)
if execute("ls -lh {}".format(tar_gz_filename), check=False):
execute("zgrep email=unpaywall@impactstory.org {} > unpaywall_events.txt".format(tar_gz_filename), capture=True, check=False)
else:
# no file. get the files for all the hours instead
execute("rm unpaywall_events.txt", check=False) # clear it if there is already one there, because appending
for hour in range(24):
day_with_hour = "{}-{:02d}".format(self.first_day, hour)