28 lines
811 B
Python
28 lines
811 B
Python
from Job import Job
|
|
|
|
import datetime, gzip
|
|
|
|
class GeoIP(Job) :
|
|
|
|
def __init__(self, redis_host=None, copy_cache=False) :
|
|
name = "geoip"
|
|
data = ["https://download.db-ip.com/free/dbip-country-lite-" + datetime.datetime.today().strftime("%Y-%m") + ".mmdb.gz"]
|
|
filename = "geoip.mmdb.gz"
|
|
type = "file"
|
|
super().__init__(name, data, filename, redis_host=redis_host, type=type, regex=regex, copy_cache=copy_cache)
|
|
|
|
def run(self) :
|
|
super().run()
|
|
count = 0
|
|
with gzip.open("/etc/nginx/geoip.mmdb.gz", "rb") as f :
|
|
with open("/tmp/geoip.mmdb", "w") as f2 :
|
|
while True :
|
|
chunk = f.read(8192)
|
|
if not chunk :
|
|
break
|
|
f2.write(chunk)
|
|
count += 1
|
|
shutil.copyfile("/tmp/geoip.mmdb", "/etc/nginx/geoip.mmdb")
|
|
os.remove("/tmp/geoip.mmdb")
|
|
os.remove("/etc/nginx/geoip.mmdb.gz")
|