· 5 years ago · Sep 09, 2020, 09:10 AM
1const Telegraf = require('telegraf')
2const request = require('request');
3const schedule = require('node-schedule');
4const extra = require('telegraf/extra');
5
6const markup = extra.markdown();
7const bot = new Telegraf('#TELEGRAM BOT API KEY#');
8
9var headers = {
10 'Connection': 'keep-alive',
11 'Pragma': 'no-cache',
12 'Cache-Control': 'no-cache',
13 'Accept': 'application/json, text/plain, */*',
14 'X-Requested-With': 'XMLHttpRequest',
15 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36',
16 'Content-Type': 'application/json;charset=UTF-8',
17 'Origin': 'https://isogd.mos.ru',
18 'Sec-Fetch-Site': 'same-origin',
19 'Sec-Fetch-Mode': 'cors',
20 'Referer': 'https://isogd.mos.ru/isogd-portal/document/searchResult/all',
21 'Accept-Encoding': 'gzip, deflate, br',
22 'Accept-Language': 'ru,en;q=0.9,ru-RU;q=0.8,en-US;q=0.7',
23 'Cookie': '_ym_uid=1488277738665329607; mos_id=CllGxli7/1hI5gTbEn68AgA=; mos_user_segment=default; _ga=GA1.2.77090035.1489666895; auth_login=; _ym_d=1577347365'
24};
25
26var dataString = '{"page":0,"sort":"documentDate desc,","documentStatusCode":["ACTIVE","EXPIRED"],"cadastralNumbers":["#КАДАСТРОВЫЙ НОМЕР ДЛЯ ОТСЛЕЖИВАНИЯ#"]}';
27
28var options = {
29 url: 'https://isogd.mos.ru/isogd-portal/isogd-solr-api/search/ext',
30 method: 'POST',
31 headers: headers,
32 body: dataString
33};
34
35function check(error, response, body) {
36 if (!error && response.statusCode == 200) {
37 var message_timeout = 0;
38 var data = JSON.parse(body);
39 data = data.response.docs.reverse();
40 data.forEach(function(item) {
41 loaded == false && archive.push(item.id);
42 if (loaded && archive.indexOf(item.id) == -1) {
43 archive.push(item.id);
44 var message = '';
45 message+= '? *' + item.objectName + '*\n\n';
46 message+= '? ' + (item.hasOwnProperty('documentName') ? item.documentName : 'Корректировка') + '\n';
47 message+= '? ' + item.documentDate + '\n';
48 message+= '?️ ' + item.objectAddress + (item.hasOwnProperty('postAddress') ? (' / ' + item.postAddress) : '');
49 setTimeout(function() {
50 bot.telegram.sendMessage('@bot_username', message, markup);
51 }, message_timeout);
52 message_timeout+= 5000;
53 }
54 });
55 loaded = true;
56 }
57}
58
59var archive = [];
60var loaded = false;
61
62request(options, check);
63
64var j = schedule.scheduleJob('35 * * * *', function(){
65 console.log('updated');
66 console.log(archive);
67 request(options, check);
68});