// Плагин для программы MobileBalance: http://mtsoft.ru/mobilebalance/
//
// Инструкция по использованию:
// 1. зайти в настройки программы MobileBalance, перейти на закладку "Плагины: Операторы", добавить плагин.
// 2. После этого перейти на закладку "Телефоны" и в качестве оператора выбрать оператора с названием, указанным ниже.
//
// FullName : Домжилсервис (вода)
// ShortName : ВодаДЖС
// Version : 3.1
// Author : Oleg Chervyakov
// Descript : Домжилсервис
function main(){
var p = 0;
// Разбираем файл с новыми показаниями
ngvs=nhvs=0;
document.location="http://home/meters.txt?" + new Date();
if(!external.WaitBrowser) return;
response.pages[p++]=external.source;
html=document.body.outerHTML;
regexp=/ГВС: (\d+)/;
if (res=regexp.exec(html))
{
ngvs=res[1];
};
regexp=/ХВС: (\d+)/;
if (res=regexp.exec(html))
{
nhvs=res[1];
};
response.AnyString="Новые показания: " + nhvs + "/" + ngvs;
// Заходим на главную страницу
var url="https://api.sm-center.ru/dgservicnew/auth/login";
xmlhttp = external.getXmlHttp();
xmlhttp.open('POST', url, false);
xmlhttp.setRequestHeader('Content-Type', 'application/json');
xmlhttp.send('{phone: "' + request.loginValue + '", password: "' + request.passwValue + '"}');
if(xmlhttp.status != 200)
{
return;
}
// Собираем данные
var url="https://api.sm-center.ru/dgservicnew/Accounting/Info";
xmlhttp = external.getXmlHttp();
xmlhttp.open('GET', url, false);
xmlhttp.send(null);
if(xmlhttp.status != 200)
{
return;
}
// Информацию успешно получили. Преобразуем ее в JSON-объект
eval("var info = "+xmlhttp.responseText);
response.UserName = info.Data[0].Address;
response.LicSchet = info.Data[0].Ident;
response.Balance = -info.Data[0].Sum;
// Собираем показания
var url="https://api.sm-center.ru/dgservicnew/Meters/List";
xmlhttp = external.getXmlHttp();
xmlhttp.open('GET', url, false);
xmlhttp.send(null);
if(xmlhttp.status != 200)
{
return;
}
// Информацию успешно получили. Преобразуем ее в JSON-объект
eval("var info = "+xmlhttp.responseText);
gvs = tgvs = info.Data[0].Values[0].Value;
hvs = thvs = info.Data[1].Values[0].Value;
// Вводим новые показания ГВС
d = new Date().getDate();
if ((d >= 15) && (d <= 25) && ((ngvs > tgvs) || (nhvs > thvs))) {
gvsid = info.Data[0].ID;
hvsid = info.Data[1].ID;
if (ngvs > tgvs) {
var url="https://api.sm-center.ru/dgservicnew/Meters/SaveMeterValue";
xmlhttp = external.getXmlHttp();
xmlhttp.open('POST', url, false);
xmlhttp.setRequestHeader('Content-Type', 'application/json; charset=utf-8');
xmlhttp.send('{MeterId: ' + gvsid + ', Value: ' + ngvs + '}');
if(xmlhttp.status != 200)
{
response.TarifPlanv = 'gvs.html.status = ' + xmlhttp.status;
return;
}
}
if (nhvs > thvs) {
var url="https://api.sm-center.ru/dgservicnew/Meters/SaveMeterValue";
xmlhttp = external.getXmlHttp();
xmlhttp.open('POST', url, false);
xmlhttp.setRequestHeader('Content-Type', 'application/json; charset=utf-8');
xmlhttp.send('{MeterId: ' + hvsid + ', Value: ' + nhvs + '}');
if(xmlhttp.status != 200)
{
response.TarifPlan = 'hvs.html.status = ' + xmlhttp.status;
return;
}
}
response.TarifPlan="ХВС/ГВС: " + thvs + "/" + tgvs + " (+)";
} else {
response.TarifPlan="ХВС/ГВС: " + thvs + "/" + tgvs;
}
};
main();
|