#!/bin/bash
# номер телефона:
PHONE=380921234567
# пароль от Системы самообслуживания:
PASS=11223344
# ежесуточный лимит в МБ:
LIM=232
# ежесуточный тариф в копейках:
TARIFF=264
# пустые сообщения
MESSAGE2=""
MESSAGE3=""
# номер текущего месяца в Системе
RP=$(expr \\( $(date +%y) - 2 \\) \\* 12 + $(date +%m))
# получаем страницу
PAGE=$(curl -s -d "X_Username=$PHONE&X_Password=$PASS" \\
--url "http://my.people.net.ua/TSU/WWW/ACCOUNT_INFO/?sid=details&rp=$RP&grp=on")
# код возврата команды curl, ошибка при ненулевом значении
# значит, не удалось загрузить страницу
ERR1=$?
if [ $ERR1 -gt 0 ]
then
MESSAGE="Не удалось войти в Систему"
else
# текущая дата
DATE=$(date +%d.%m.%Y)
# количество потраченных МБ по Системе
MB=$(echo "$PAGE" | grep -A 2 $DATE | tail -n 1 | grep -o \'[0-9]*\')
# код возврата команды grep, ошибка при ненулевом значении
# значит, не удалось получить информацию со страницы
ERR2=$?
if [ $ERR2 -gt 0 ]
then
MESSAGE="Не удалось получить информацию"
else
# получаем строку с ppp0, маскируем возможное сообщение об ошибке
PPP0=$(grep -e "ppp0" /proc/net/dev 2>/dev/null)
# код возврата команды grep, ошибка при ненулевом значении
# значит, не удалось найти строку
ERR3=$?
if [ $ERR3 -gt 0 ]
then
# Интерфейс PPP0 неактивен
PPPtraf=0
# пометка, что используются только данные Системы
NOTEss="по СС"
else
# пометка, что используются данные Системы и текущие
NOTEss="тек.+СС"
PPPright=$(echo $PPP0 | cut -d ":" -f 2 | sed \'s/ \\+/ /g\')
# первое число
PPP1=$(echo $PPPright | cut -d " " -f 1)
# девятое число
PPP9=$(echo $PPPright | cut -d " " -f 9)
# суммарный (входящий и исходящий) текущий трафик в МБ
PPPtraf=$(expr \\( $PPP1 + $PPP9 \\) / 1024 / 1024 + 1)
fi
# суммарный трафик по системе и текущий
MBall=$(expr $MB + $PPPtraf)
# остаток трафика
OST=$(expr $LIM - $MBall)
MESSAGE="На сегодня осталось: $OST МБ (${NOTEss})"
fi
fi
# вторым заходом получаем количество денег на счету
PAGE2=$(curl -s -d "X_Username=$PHONE&X_Password=$PASS" \\
--url "http://my.people.net.ua/TSU/WWW/ACCOUNT_INFO/?sid=bills&rp=$RP")
# код возврата команды curl, ошибка при ненулевом значении
# значит, не удалось загрузить страницу
ERR4=$?
if [ $ERR4 -eq 0 ]
then
# число со страницы
MONEY=$(echo "$PAGE2" | grep -A 5 $(date +%d.%m.%Y) | tail -n 1 | cut -d ">" -f 2 | cut -d "<" -f 1)
# в копейках (удаляем точку)
MONEYkop=$(echo "$MONEY" | sed -e \'s/\\.//\')
if [ $MONEYkop -lt 0 ]
then
MESSAGE="Услуга недоступна. Пополните счет!"
else
# на сколько дней осталось денег
DAYS=$(expr $MONEYkop / $TARIFF)
# массив с формами слова
day=( день дня дней )
# высчитываем форму слова
n=$DAYS
(( plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2) ))
MESSAGE2="Денег: $MONEY грн. (на $DAYS ${day[$plural]})"
MESSAGE3="Пополнять: "$(date --utc --date "1970-01-01 $(expr $(date --utc +%s) + \\( $DAYS + 1 \\) \\* 86400) sec" "+%d.%m.%Y")" г."
fi
fi
notify-send "PeopleNet" "$MESSAGE\\n$MESSAGE2\\n$MESSAGE3" -i "$HOME/peoplenet/pn.png"