async def _messageedit(self, sl_ev: slack.MessageEdit) -> None: if not sl_ev.is_changed: return try: yelldest = b'#' + (await self.sl_client.get_channel(sl_ev.channel)).name.encode('utf8') except KeyError: yelldest = b'' source = (await self.sl_client.get_user(sl_ev.previous.user)).name.encode('utf8') previous = await self.parse_message(sl_ev.previous.text, source, yelldest) current = await self.parse_message(sl_ev.current.text, source, yelldest) diffmsg = slack.Message( text=seddiff(sl_ev.previous.text, sl_ev.current.text), channel=sl_ev.channel, user=sl_ev.previous.user, thread_ts=sl_ev.previous.thread_ts ) await self._message(diffmsg)
def diffmsg(self) -> Message: m = dump(self.current) m['text'] = seddiff(self.previous.text, self.current.text) return load(m, Message)
def diffmsg(self) -> Message: return Message( text=seddiff(self.previous.text, self.current.text), channel=self.channel, user=self.current.user, )
def test_partials(self): assert seddiff('vado a dormire al mare', 'vado a nuotare al mare') == 's/dormire/nuotare/' assert seddiff('ciae a tutti', 'ciao a tutti') == 's/ciae/ciao/' assert seddiff('ciae å tutti', 'ciao a tutti') == 's/ciae å/ciao a/'
def test_full_replace(self): assert seddiff('vado al mare', 'dormo la sera') == 's/vado al mare/dormo la sera/' assert seddiff('ciae å tuttï', 'ciao a tutti') == 's/ciae å tuttï/ciao a tutti/'
def test_no_diff(self): assert seddiff('ciao', 'ciao') == '' assert seddiff('', '') == '' assert seddiff('la la', 'la la') == ''
def test_no_crash(self): seddiff('', 'lalala') seddiff('lalala', 'lalala') seddiff('lalala', '') seddiff('lalala', 'lalala allelolela') seddiff('lalala allelolela', 'allelolela') seddiff('lalala allelolela', 'lalala')
def test_append(self): assert seddiff('XYZ', 'XYZ (meaning "bla bla bla")') == 's/$/(meaning "bla bla bla")/'
def test_insertion(self): assert seddiff('il numero dei fili', 'il numero massimo dei fili') == 's/numero dei/numero massimo dei/' assert seddiff('mangio del formaggio e pere', 'mangio del formaggio con le pere') == 's/formaggio e pere/formaggio con le pere/' assert seddiff('mangio del formaggio e pere per cena', 'mangio del formaggio con le pere per cena') == 's/formaggio e pere/formaggio con le pere/' assert seddiff('mare blu', 'il mare blu') == 's/mare/il mare/' assert seddiff('mare, blu', 'il mare, blu') == 's/mare/il mare/'