ShrinkUrl: Improve error messages when opening the database.

This commit is contained in:
Valentin Lorentz 2021-03-09 23:13:16 +01:00
parent 36800ed4bc
commit ce03729f20

View File

@ -48,12 +48,23 @@ class CdbShrunkenUrlDB(object):
def __init__(self, filename): def __init__(self, filename):
self.dbs = {} self.dbs = {}
cdb = conf.supybot.databases.types.cdb cdb = conf.supybot.databases.types.cdb
def register_service(service):
services = list(conf.supybot.plugins.ShrinkUrl.default.validStrings)
services.append('Expand')
for service in services:
dbname = filename.replace('.db', service.capitalize() + '.db') dbname = filename.replace('.db', service.capitalize() + '.db')
try:
self.dbs[service] = cdb.connect(dbname) self.dbs[service] = cdb.connect(dbname)
for service in conf.supybot.plugins.ShrinkUrl.default.validStrings: except OSError as e:
register_service(service) log.error(
register_service('Expand') 'ShrinkUrl: Can not open database %s: %s',
dbname, e)
raise KeyError("Could not open %s" % dbname)
except:
log.exception(
'ShrinkUrl: Can not read database %s (data corruption?)',
dbname)
raise KeyError("Could not open %s" % dbname)
def get(self, service, url): def get(self, service, url):
return self.dbs[service][url] return self.dbs[service][url]