mirror of
https://github.com/evennia/evennia.git
synced 2026-03-17 05:16:31 +01:00
53 lines
1.5 KiB
Python
53 lines
1.5 KiB
Python
"""
|
|
Custom manager for ServerConfig objects.
|
|
"""
|
|
from django.db import models
|
|
|
|
|
|
class ServerConfigManager(models.Manager):
|
|
"""
|
|
This ServerConfigManager implements methods for searching
|
|
and manipulating ServerConfigs directly from the database.
|
|
|
|
These methods will all return database objects
|
|
(or QuerySets) directly.
|
|
|
|
ServerConfigs are used to store certain persistent settings for the
|
|
server at run-time.
|
|
|
|
Evennia-specific:
|
|
conf
|
|
|
|
"""
|
|
def conf(self, key=None, value=None, delete=False, default=None):
|
|
"""
|
|
Access and manipulate config values
|
|
"""
|
|
if not key:
|
|
return self.all()
|
|
elif delete is True:
|
|
for conf in self.filter(db_key=key):
|
|
conf.delete()
|
|
elif value is not None:
|
|
conf = self.filter(db_key=key)
|
|
if conf:
|
|
conf = conf[0]
|
|
else:
|
|
conf = self.model(db_key=key)
|
|
conf.value = value # this will pickle
|
|
else:
|
|
conf = self.filter(db_key=key)
|
|
if not conf:
|
|
return default
|
|
return conf[0].value
|
|
|
|
def get_mysql_db_version(self):
|
|
"""
|
|
This is a helper method for getting the version string
|
|
of a mysql database.
|
|
"""
|
|
from django.db import connection
|
|
conn = connection.cursor()
|
|
conn.execute("SELECT VERSION()")
|
|
version = conn.fetchone()
|
|
return version and str(version[0]) or ""
|