@@ -27,7 +27,7 @@ def fetch_db():
2727 shutil .copyfileobj (infile , outfile )
2828
2929
30- def update_db (existing_reader ):
30+ def update_db ():
3131 """
3232 Updates the DB.
3333 """
@@ -38,15 +38,12 @@ def update_db(existing_reader):
3838 fetch_db ()
3939 return geoip2 .database .Reader (PATH )
4040 else :
41- # geoip is good, create a reader or return existing reader
42- if not existing_reader :
43- try :
44- return geoip2 .database .Reader (PATH )
45- except :
46- fetch_db ()
47- return geoip2 .database .Reader (PATH )
48- else :
49- return existing_reader
41+ try :
42+ return geoip2 .database .Reader (PATH )
43+ except :
44+ # issue loading, geo
45+ fetch_db ()
46+ return geoip2 .database .Reader (PATH )
5047 else :
5148 # no geoip file
5249 fetch_db ()
@@ -58,9 +55,12 @@ def check_db(loop):
5855 runs update_db in an executor thread and sets geoip_reader to the result
5956 """
6057 global geoip_reader
61- db = yield from loop .run_in_executor (None , update_db , geoip_reader )
62- if db :
63- geoip_reader = db
58+ if not geoip_reader :
59+ logger .info ("Loading GeoIP database" )
60+ db = yield from loop .run_in_executor (None , update_db , geoip_reader )
61+ logger .info ("Loaded GeoIP database" )
62+ if db :
63+ geoip_reader = db
6464
6565
6666@asyncio .coroutine
@@ -75,7 +75,7 @@ def geoip(text, reply, loop):
7575 global geoip_reader
7676
7777 if not geoip_reader :
78- return "GeoIP database is updating , please wait a minute"
78+ return "GeoIP database is still loading , please wait a minute"
7979
8080 try :
8181 ip = yield from loop .run_in_executor (None , socket .gethostbyname , text )
@@ -95,6 +95,3 @@ def geoip(text, reply, loop):
9595 }
9696
9797 reply ("\x02 Country:\x02 {country} ({cc}), \x02 City:\x02 {city}{region}" .format (** data ))
98-
99- # check the DB
100- asyncio .async (check_db (loop ), loop = loop )
0 commit comments