also clean up mentions that weren't cleaned because of the bridge nick
This commit is contained in:
parent
667a85aa46
commit
d516c1b08e
|
@ -18,6 +18,17 @@ class Command(BaseCommand):
|
||||||
bridge_states = context.states.filter(k1=MarkovState._start1, k2=MarkovState._start2,
|
bridge_states = context.states.filter(k1=MarkovState._start1, k2=MarkovState._start2,
|
||||||
v__regex=r'<.*>')
|
v__regex=r'<.*>')
|
||||||
self._chain_remover(context, bridge_states)
|
self._chain_remover(context, bridge_states)
|
||||||
|
# get states that look like mentions
|
||||||
|
for target in context.markovtarget_set.all():
|
||||||
|
if target.channel.server.additional_addressed_nicks:
|
||||||
|
all_nicks = '|'.join(target.channel.server.additional_addressed_nicks.split('\n') +
|
||||||
|
[target.channel.server.nickname])
|
||||||
|
else:
|
||||||
|
all_nicks = target.channel.server.nickname
|
||||||
|
mention_regex = r'^(({nicks})[:,]|@({nicks}))$'.format(nicks=all_nicks)
|
||||||
|
mention_states = context.states.filter(k1=MarkovState._start1, k2=MarkovState._start2,
|
||||||
|
v__regex=mention_regex)
|
||||||
|
self._chain_remover(context, mention_states)
|
||||||
|
|
||||||
def _chain_remover(self, context, start_states):
|
def _chain_remover(self, context, start_states):
|
||||||
"""Remove a given k from markov states, deleting the found states after rebuilding subsequent states.
|
"""Remove a given k from markov states, deleting the found states after rebuilding subsequent states.
|
||||||
|
|
Loading…
Reference in New Issue