mirror of
https://github.com/solero/houdini.git
synced 2025-04-26 08:36:27 +00:00
Give servers and nicknames basic locale support
This commit is contained in:
parent
7de38bcf18
commit
23b0838c81
@ -5,6 +5,7 @@ import config
|
|||||||
|
|
||||||
from houdini.houdini import Houdini
|
from houdini.houdini import Houdini
|
||||||
from houdini import ConflictResolution
|
from houdini import ConflictResolution
|
||||||
|
from houdini import Language
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
logger = logging.getLogger('houdini')
|
logger = logging.getLogger('houdini')
|
||||||
@ -21,6 +22,8 @@ if __name__ == '__main__':
|
|||||||
help='Cache expiry (seconds)', type=int)
|
help='Cache expiry (seconds)', type=int)
|
||||||
parser.add_argument('-P', '--plugins', action='store',
|
parser.add_argument('-P', '--plugins', action='store',
|
||||||
nargs='*', help='Plugins to load')
|
nargs='*', help='Plugins to load')
|
||||||
|
parser.add_argument('-l', '--language', action='store', help='Houdini language',
|
||||||
|
choices=['En', 'Fr', 'Pt', 'Es', 'De', 'Ru'])
|
||||||
|
|
||||||
boot_modes = parser.add_mutually_exclusive_group()
|
boot_modes = parser.add_mutually_exclusive_group()
|
||||||
boot_modes.add_argument('-W', '--world', action='store_true', help='Run server in world mode')
|
boot_modes.add_argument('-W', '--world', action='store_true', help='Run server in world mode')
|
||||||
@ -115,11 +118,12 @@ if __name__ == '__main__':
|
|||||||
if server['World']:
|
if server['World']:
|
||||||
server.update({
|
server.update({
|
||||||
'Id': args.id or config.servers[args.server]['Id'],
|
'Id': args.id or config.servers[args.server]['Id'],
|
||||||
|
'Language': getattr(Language, args.language) if args.language else config.servers[args.server]['Language'],
|
||||||
'Capacity': args.capacity or config.servers[args.server]['Capacity'],
|
'Capacity': args.capacity or config.servers[args.server]['Capacity'],
|
||||||
'CacheExpiry': args.cache_expiry or config.servers[args.server]['CacheExpiry']
|
'CacheExpiry': args.cache_expiry or config.servers[args.server]['CacheExpiry']
|
||||||
})
|
})
|
||||||
|
|
||||||
server['logging'] = logging
|
server['Logging'] = logging
|
||||||
|
|
||||||
factory_instance = Houdini(args.server,
|
factory_instance = Houdini(args.server,
|
||||||
database=database,
|
database=database,
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
from houdini import ConflictResolution
|
from houdini import ConflictResolution
|
||||||
|
from houdini import Language
|
||||||
|
|
||||||
database = {
|
database = {
|
||||||
'Address': 'localhost',
|
'Address': 'localhost',
|
||||||
@ -39,6 +40,7 @@ servers = {
|
|||||||
'Id': '100',
|
'Id': '100',
|
||||||
'Address': '0.0.0.0',
|
'Address': '0.0.0.0',
|
||||||
'Port': 9875,
|
'Port': 9875,
|
||||||
|
'Language': Language.En,
|
||||||
'World': True,
|
'World': True,
|
||||||
'Capacity': 200,
|
'Capacity': 200,
|
||||||
'CacheExpiry': 3600,
|
'CacheExpiry': 3600,
|
||||||
|
@ -15,7 +15,7 @@ class ConflictResolution(enum.Enum):
|
|||||||
Exception = 2
|
Exception = 2
|
||||||
|
|
||||||
|
|
||||||
class Language(enum.Enum):
|
class Language(enum.IntEnum):
|
||||||
En = 1
|
En = 1
|
||||||
Pt = 2
|
Pt = 2
|
||||||
Fr = 4
|
Fr = 4
|
||||||
|
@ -66,6 +66,9 @@ class Penguin(db.Model):
|
|||||||
rejection_de = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
rejection_de = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
||||||
rejection_ru = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
rejection_ru = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
||||||
|
|
||||||
|
def safe_nickname(self, language_bitmask):
|
||||||
|
return self.nickname if self.approval & language_bitmask else "P" + str(self.id)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def approval(self):
|
def approval(self):
|
||||||
return int('{}{}0{}{}{}{}'.format(self.approval_ru * 1, self.approval_de * 1, self.approval_es * 1,
|
return int('{}{}0{}{}{}{}'.format(self.approval_ru * 1, self.approval_de * 1, self.approval_es * 1,
|
||||||
|
@ -45,7 +45,7 @@ class Penguin(Spheniscidae):
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def nickname(self):
|
def nickname(self):
|
||||||
return self.data.nickname if self.data.approval else "P" + self.data.id
|
return self.data.safe_nickname(self.server.server_config['Language'])
|
||||||
|
|
||||||
async def load(self):
|
async def load(self):
|
||||||
if self.data:
|
if self.data:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user