Fix error handling.
[redakcja.git] / src / alerts / rules.py
1 import re
2 from django.utils.translation import gettext_lazy as _
3
4
5 class Check:
6     def check_meta(self, meta):
7         return False
8
9
10 class CheckParse(Check):
11     tag = 'parse'
12     description = _('Book parse error.')
13
14
15 class CheckMeta(Check):
16     tag = 'meta'
17     description = _('Metadata parse error.')
18
19
20 class CheckCoverLocal(Check):
21     tag = 'cover-local'
22     description = _('Cover is not local')
23
24     def check_meta(self, meta):
25         print(meta)
26         if meta.cover_source is None:
27             print('no cover_source')
28             return False
29         return not re.match(r'https?://redakcja.wolnelektury.pl/cover/image/', meta.cover_source)
30
31
32 rules = [
33     CheckParse(),
34     CheckMeta(),
35     CheckCoverLocal(),
36 ]
37
38 rules_by_tag = {
39     r.tag: r
40     for r in rules
41 }