def check(self, uid, name): nick = Nick.find_by_name(name) if nick and (nick.account or nick.account_alias): self.service.msg( uid, "이 닉네임은 이미 오징어 IRC 네트워크에 등록되어 있는 닉네임입니다. 계정의 주인이시라면 \x02/msg {} 로그인\x02 을, 주인이 아니시라면 지금 닉네임을 다른 것으로 바꿔 주세요.", self.service.name, )
def execute(self, user, name): if name is None: name = user.nick session = Session() nick = Nick.find_by_name(name) if nick is None: self.service.msg(user, '\x02{}\x02 계정에 \x02{}\x02 닉네임이 등록되어 있지 않습니다.', user.account.name.name, name) elif user.account.name is nick: self.service.msg(user, '\x02{}\x02 닉네임이 해당 계정의 기본 닉네임으로 지정되어 있어 제거할 수 없습니다. 기본 닉네임을 수정해주세요.', name) else: account = user.account account.aliases.remove(nick) session.delete(nick) session.commit() self.service.msg(user, '\x02{}\x02 계정에서 \x02{}\x02 닉네임을 제거했습니다.', user.account.name.name, name)
def execute(self, user): session = Session() if len(user.account.aliases) >= 5: self.service.msg(user, '\x02{}\x02 계정에 등록할 수 있는 닉네임 제한을 초과했습니다 (5개).', user.account.name.name) return if Nick.find_by_name(user.nick): self.service.msg(user, '이미 등록되어 있는 닉네임입니다.') return nick = Nick() nick.name = user.nick nick.last_use = datetime.now() account = user.account account.aliases.append(nick) session.commit() self.service.msg(user, '\x02{}\x02 계정에 \x02{}\x02 닉네임을 추가했습니다.', user.account.name.name, nick.name)
def execute(self, user, new_name): session = Session() nick = Nick.find_by_name(new_name) if nick: if nick is user.account.name: self.service.msg(user, '\x02{}\x02 계정의 대표 닉네임이 이미 \x02{}\x02 입니다.', user.account.name.name, new_name) return elif nick in user.account.aliases: old_name = user.account.name.name account = user.account account.aliases.append(user.account.name) account.aliases.remove(nick) account.name = nick session.commit() user.metadata['accountname'] = user.account.name.name self.service.writeserverline('METADATA {} accountname :{}', user.uid, user.account.name.name) self.service.msg(user, '\x02{}\x02 계정의 대표 닉네임이 \x02{}\x02 로 변경되었습니다.', old_name, new_name) return self.service.msg(user, '\x02{}\x02 계정에 \x02{}\x02 닉네임이 존재하지 않습니다. \x02/msg {} 그룹\x02 명령을 이용해 해당 닉네임을 계정에 추가해보세요.', user.account.name.name, new_name, self.service.name)
def execute(self, user, email, password): session = Session() if Nick.find_by_name(user.nick): self.service.msg(user, '해당 닉네임 \x02{}\x02 은 이미 오징어 IRC 네트워크에 등록되어 있습니다.', user.nick) return nick = Nick() nick.name = user.nick nick.last_use = datetime.now() account = Account() account.email = email account.name = nick account.password = password account.last_login = datetime.now() session.add(account) session.commit() self.service.msg(user, '해당 닉네임 \x02{}\x02 의 계정 등록이 완료되었습니다. 앞으로 \x02/msg {} 로그인 {}\x02 명령을 통해 로그인할 수 있습니다. 지금 로그인 해보세요.', nick.name, self.service.name, password)
def execute(self, user, name, password): if user.account is not None: self.service.msg(user, '이미 \x02{}\x02 계정으로 로그인되어 있습니다.', user.account.name.name) return if name is None: name = user.nick session = Session() nick = Nick.find_by_name(name) if nick: account = nick.account or nick.account_alias if account.password == password: nick.last_use = datetime.now() account.last_login = datetime.now() session.commit() self.service.msg(user, '환영합니다! \x02{}\x02 계정으로 로그인되었습니다.', account.name.name) self.service.writeserverline('METADATA {} accountname :{}', user.uid, account.name.name) if account.vhost is not None: self.service.writesvsuserline('CHGHOST {} {}', user.uid, account.vhost) user.metadata['accountname'] = account.name.name return self.service.msg(user, '등록되지 않은 계정이거나 잘못된 비밀번호입니다. 계정명이나 비밀번호를 모두 제대로 입력했는지 다시 한번 확인해주세요.')