self.bad_ua = False
def add_long(self, logentry):
+ self.long_total += 1
if logentry.retcode == 301:
return
- self.long_total += 1
if logentry.request is not None:
self.long_api += 1
if not self.bad_ua:
def add_block(self, logentry):
self.block_total += 1
- def ignores_warnings(self):
- return self.block_total > 5
+ def ignores_warnings(self, wasblocked):
+ return self.block_total > 5 or (wasblocked and self.redirected > 5)
def new_state(self, was_blocked, was_bulked):
if was_blocked:
return None if self.long_total < 20 else 'block'
if self.long_api > BLOCK_UPPER \
or self.short_api > BLOCK_UPPER / 3 \
- or self.short_total == self.redirected:
+ or (self.redirected > 100 and self.short_total == self.redirected):
# client totally overdoing it
return 'block'
if was_bulked:
fd.write(logstr % (' ua block:', ', '.join(uablocked)))
if blocked:
fd.write(logstr % ('new block:', ', '.join(blocked)))
- for k,v in stats.items():
- if v.ignores_warnings() and k not in notlogged and ':' not in k:
- fd.write(logstr % ('Warning ignored:', k))
+ #for k,v in stats.items():
+ # if v.ignores_warnings(k in bl.prevblocks) and k not in notlogged and ':' not in k:
+ # fd.write(logstr % ('Warning ignored:', k))
fd.close()