Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. #!/bin/bash
  2.  
  3. # номер телефона:
  4. PHONE=380921234567
  5. # пароль от Системы самообслуживания:
  6. PASS=11223344
  7. # ежесуточный лимит в МБ:
  8. LIM=232
  9. # ежесуточный тариф в копейках:
  10. TARIFF=264
  11. # пустые сообщения
  12. MESSAGE2=""
  13. MESSAGE3=""
  14.  
  15.  
  16. # номер текущего месяца в Системе
  17. RP=$(expr \( $(date +%y) - 2 \) \* 12 + $(date +%m))
  18.  
  19. # получаем страницу
  20. PAGE=$(curl -s -d "X_Username=$PHONE&X_Password=$PASS" \
  21. --url "http://my.people.net.ua/TSU/WWW/ACCOUNT_INFO/?sid=details&rp=$RP&grp=on")
  22.  
  23. # код возврата команды curl, ошибка при ненулевом значении
  24. # значит, не удалось загрузить страницу
  25. ERR1=$?
  26.  
  27. if [ $ERR1 -gt 0 ]
  28. then
  29.     MESSAGE="Не удалось войти в Систему"
  30. else
  31.     # текущая дата
  32.     DATE=$(date +%d.%m.%Y)
  33.  
  34.     # количество потраченных МБ по Системе
  35.     MB=$(echo "$PAGE" | grep -A 2 $DATE | tail -n 1 | grep -o '[0-9]*')
  36.  
  37.     # код возврата команды grep, ошибка при ненулевом значении
  38.     # значит, не удалось получить информацию со страницы
  39.     ERR2=$?
  40.  
  41.     if [ $ERR2 -gt 0 ]
  42.     then
  43.         MESSAGE="Не удалось получить информацию"
  44.     else
  45.         # получаем строку с ppp0, маскируем возможное сообщение об ошибке
  46.         PPP0=$(grep -e "ppp0" /proc/net/dev 2>/dev/null)
  47.         # код возврата команды grep, ошибка при ненулевом значении
  48.         # значит, не удалось найти строку
  49.         ERR3=$?
  50.  
  51.         if [ $ERR3 -gt 0 ]
  52.         then
  53.             # Интерфейс PPP0 неактивен
  54.             PPPtraf=0
  55.             # пометка, что используются только данные Системы
  56.             NOTEss="по СС"
  57.         else
  58.             # пометка, что используются данные Системы и текущие
  59.             NOTEss="тек.+СС"
  60.             PPPright=$(echo $PPP0 | cut -d ":" -f 2 | sed 's/ \+/ /g')
  61.            
  62.             # первое число
  63.             PPP1=$(echo $PPPright | cut -d " " -f 1)
  64.            
  65.             # девятое число
  66.             PPP9=$(echo $PPPright | cut -d " " -f 9)
  67.            
  68.             # суммарный (входящий и исходящий) текущий трафик в МБ
  69.             PPPtraf=$(expr \( $PPP1 + $PPP9 \) / 1024 / 1024 + 1)
  70.         fi
  71.  
  72.         # суммарный трафик по системе и текущий
  73.         MBall=$(expr $MB + $PPPtraf)
  74.  
  75.         # остаток трафика
  76.         OST=$(expr $LIM - $MBall)
  77.  
  78.         MESSAGE="На сегодня осталось: $OST МБ (${NOTEss})"
  79.  
  80.     fi
  81. fi
  82.  
  83.  
  84. # вторым заходом получаем количество денег на счету
  85. PAGE2=$(curl -s -d "X_Username=$PHONE&X_Password=$PASS" \
  86. --url "http://my.people.net.ua/TSU/WWW/ACCOUNT_INFO/?sid=bills&rp=$RP")
  87.  
  88. # код возврата команды curl, ошибка при ненулевом значении
  89. # значит, не удалось загрузить страницу
  90. ERR4=$?
  91.  
  92. if [ $ERR4 -eq 0 ]
  93. then
  94.     # число со страницы
  95.     MONEY=$(echo "$PAGE2" | grep -A 5 $(date +%d.%m.%Y) | tail -n 1 | cut -d ">" -f 2 | cut -d "<" -f 1)
  96.     # в копейках (удаляем точку)
  97.     MONEYkop=$(echo "$MONEY" | sed -e 's/\.//')
  98.  
  99.     if [ $MONEYkop -lt 0 ]
  100.     then
  101.         MESSAGE="Услуга недоступна. Пополните счет!"
  102.     else
  103.         # на сколько дней осталось денег
  104.         DAYS=$(expr $MONEYkop / $TARIFF)
  105.  
  106.         # массив с формами слова
  107.         day=( день дня дней )
  108.  
  109.         # высчитываем форму слова
  110.         n=$DAYS
  111.         (( plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2) ))
  112.  
  113.         MESSAGE2="Денег: $MONEY грн. (на $DAYS ${day[$plural]})"
  114.  
  115.         MESSAGE3="Пополнять: "$(date --utc --date "1970-01-01 $(expr $(date --utc +%s) + \( $DAYS + 1 \) \* 86400) sec" "+%d.%m.%Y")" г."
  116.     fi
  117. fi
  118.  
  119. notify-send "PeopleNet" "$MESSAGE\n$MESSAGE2\n$MESSAGE3" -i "$HOME/peoplenet/pn.png"