50 lines
1.6 KiB
Python
50 lines
1.6 KiB
Python
import requests
|
|
from mgs import MGSPiracy
|
|
from argparse import ArgumentParser
|
|
from jstate import JState
|
|
|
|
if __name__ == '__main__':
|
|
# parse arguments
|
|
parser = ArgumentParser()
|
|
parser.add_argument('--state-file', required=True)
|
|
parser.add_argument('--token', help='Telegram bot token', required=True)
|
|
parser.add_argument('--chat-id', type=int, help='Telegram chat id (with bot)', required=True)
|
|
parser.add_argument('--from', type=int, default=1, help='First page', dest='_from')
|
|
parser.add_argument('--to', type=int, default=5, help='Last page')
|
|
parser.add_argument('--domains', nargs='+', required=True)
|
|
args = parser.parse_args()
|
|
|
|
# get recent cases
|
|
mgs = MGSPiracy(from_page=args._from, to_page=args.to)
|
|
cases = mgs.get_cases()
|
|
|
|
# read state
|
|
jst = JState(args.state_file, default=dict(cases=[]))
|
|
data = jst.read()
|
|
|
|
# loop through cases
|
|
results = []
|
|
for case in cases:
|
|
if case['statement_number'] in data['cases']:
|
|
continue
|
|
|
|
matched = False
|
|
for mydomain in args.domains:
|
|
if mydomain in case['decision_text']:
|
|
matched = True
|
|
results.append('%s found in %s' % (mydomain, case['statement_number']))
|
|
data['cases'].append(case['statement_number'])
|
|
|
|
if matched:
|
|
break
|
|
|
|
# remember found cases
|
|
jst.write(data)
|
|
|
|
# if found anything, send to telegram
|
|
if results:
|
|
text = 'new mos-gorsud findings:\n'.join(results)
|
|
r = requests.post('https://api.telegram.org/bot%s/sendMessage' % args.token, data={
|
|
'chat_id': args.chat_id,
|
|
'text': text
|
|
}) |