Name generator/formatter (#897)

* Squash services migrations

* Add name to example service to allow it to be used in tests

* Add name formatter to services

* Add documentation
This commit is contained in:
Basraah
2017-10-11 12:34:31 +10:00
committed by GitHub
parent b95bb9aa6a
commit ef37cb3ea5
45 changed files with 518 additions and 33 deletions

View File

@@ -18,6 +18,7 @@ class DiscordService(ServicesHook):
self.name = 'discord'
self.service_ctrl_template = 'services/discord/discord_service_ctrl.html'
self.access_perm = 'discord.access_discord'
self.name_format = '{character_name}'
def delete_user(self, user, notify_user=False):
logger.debug('Deleting user %s %s account' % (user, self.name))

View File

@@ -6,6 +6,7 @@ from django.core.exceptions import ObjectDoesNotExist
from allianceauth.notifications import notify
from allianceauth.celery import app
from allianceauth.services.hooks import NameFormatter
from .manager import DiscordOAuthManager, DiscordApiBackoff
from .models import DiscordUser
@@ -102,7 +103,7 @@ class DiscordTasks:
character = user.profile.main_character
logger.debug("Updating user %s discord nickname to %s" % (user, character.character_name))
try:
DiscordOAuthManager.update_nickname(user.discord.uid, character.character_name)
DiscordOAuthManager.update_nickname(user.discord.uid, DiscordTasks.get_nickname(user))
except Exception as e:
if self:
logger.exception("Discord nickname sync failed for %s, retrying in 10 mins" % user)
@@ -126,3 +127,8 @@ class DiscordTasks:
@classmethod
def disable(cls):
DiscordUser.objects.all().delete()
@staticmethod
def get_nickname(user):
from .auth_hooks import DiscordService
return NameFormatter(DiscordService(), user).format_name()