(Useful for subclass extension.)
'''
- first_run = not hasattr(self.conn_setup, 'nickname')
- prefix = 'nickname'
- if first_run or (nickname and nickname != self.conn_setup.nickname):
- verb = ('set' if first_run
- else f'changed from "{self.conn_setup.nickname}"')
+ if nickname:
self.conn_setup.nickname = nickname
- self._log(f'{prefix} {verb} to "{nickname}"', stream=STREAM_ALL)
- if first_run or nick_confirmed != self.nick_confirmed:
- self.nick_confirmed = nick_confirmed
- if not first_run:
- self._log(
- f'{prefix} {"" if nick_confirmed else "un"}confirmed')
+ self.nick_confirmed = nick_confirmed
def close(self) -> None:
'Close both recv Loop and socket.'
return self._new_window(stream)
def update(self, **kwargs) -> bool:
- 'Apply settings in kwargs, follow represntation update triggres.'
- for k, v in kwargs.items():
- setattr(self, k, v)
+ 'Apply settings in kwargs, follow representation update triggers.'
+ to_change = {}
+ for key, new_value in kwargs.items():
+ old_value = getattr(self, key)
+ if new_value != old_value:
+ to_change[key] = (old_value, new_value)
+ for key, vals in to_change.items():
+ self.log(msg=f'changing {key}: [{vals[0]}] -> [{vals[1]}]',
+ stream=STREAM_SERVER)
+ setattr(self, key, vals[1])
tainteds = False
- if _PrivmsgPromptWidget.prefix_update_keys() & set(kwargs.keys()):
+ if _PrivmsgPromptWidget.prefix_update_keys() | set(to_change):
for win in [w for w in self.windows
if isinstance(w, _PrivmsgWindow)]:
self._prompt_update(win)