DOMICA Team

:: Блог - Спутниковое телевидение :: :: ВКонтакте - Спутниковое телевидение:: :: Одноклассники - Спутниковое телевидение:: :: FACEBOOK - Спутниковое телевидение::

Автор Тема: Просмотр подписки карты +++ на экране ТВ (Oscam + Wicardd)  (Прочитано 8253 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Andr705

    Оффлайн

  • Опытный
  • ******
  • Сообщений: 87
  • Статус: +40/-0
  • Пол: Мужской
  • Forum
  • Mой ресивер: Dream-800Hd Dream-800HD SE
посмотрел , что есть в wicardd
тут очень скудно представлена подписка - только последняя активная подписка показывается ,если она есть
так же пока не знаю как привязаться к классу подписки , в wicardd она только перечисляется строкой в форме:
дата начала - дата окончания
но нет ключевого слова типа:  class
у меня карта +++ класс E3
пока использовал данное ключевое слово , чтобы скопировать строчку подписки

скрипт получается вот такой:
Код: Извините, но гости не могут просматривать ссылки. Регистрация или Логин
#!/bin/sh

# проверяем наличие карты в слоте
# http://192.168.0.9:8081/

wget -q -O /tmp/card_status.tmp http://127.0.0.1:8081

if grep -q "Down" /tmp/card_status.tmp ;
then echo " NO CARD IN SLOT"

else
 
# информация о карте находится по адресу: http://127.0.0.1:8081/reader0

# копируем информацию о карте с web-интерфейс wicardd в файл card_status.tmp :
wget -q -O /tmp/card_status.tmp http://127.0.0.1:8081/reader0

# ------------------ debug help commands ---------------------
# удаляем все html-tags:
# sed -e 's/<[^>]*>//g' /tmp/card_status.tmp > /tmp/card.info
# переносим ключевые слова на новые строки:
# sed 's/karta-ntv/\nkarta-ntv/g' < /tmp/card.info | sed -n 2p | sed 's/UA/\nUA/g' | sed 's/Provider/\nProvider/g' | sed 's/id/\nid/g' | sed 's/SA/\nSA/g' | sed 's/E3/\nE3/g' > /tmp/card.info2
# ------------------------------------------------------------


# общая команда:

sed -e 's/<[^>]*>//g' < /tmp/card_status.tmp | sed 's/MainStatistics/\nMainStatistics/g' | sed 's/karta-ntv/\nkarta-ntv/g' | sed 's/CAID/\nCAID/g' | sed 's/UA/\nUA/g' | sed 's/Provider/\nProvider/g' | sed 's/E3/\nE3/g' | sed 's/Back//g' | sed 's/WiCard dev./\nWiCardd dev./g' | sed '2d' > /tmp/card.info
cat /tmp/card.info

fi

rm -rf /tmp/card_status.tmp
rm -rf /tmp/card.info

exit 0


если подписка не автивна , она вообще не показыается в Web интерфейсе Wicardd

вот прикреплен файл zip папки /usr/script
привязал долгое нажатие синей кнопки через HotKey на оба скрипта (это позволяет сделать Hotkey)
и теперь по нажатию вызывается меню , где показаны оба скрипта - теперь выбираешь какой надо и вперед
« Последнее редактирование: 08 марта 2015, 15:13:49 от Andr705 »

Andr705

    Оффлайн

  • Опытный
  • ******
  • Сообщений: 87
  • Статус: +40/-0
  • Пол: Мужской
  • Forum
  • Mой ресивер: Dream-800Hd Dream-800HD SE
вот версия для оскама , прикрутил проверку запущен ли оскам , чтобы не выполнять дальше скрипт

немного еще команды подправил и уменьшил ....

Код: Извините, но гости не могут просматривать ссылки. Регистрация или Логин
#!/bin/sh


# проверяем запущен ли Oscam и Web-Interface
if wget -s -q http://127.0.0.1:8888 2> /dev/null  ;

  # если Oscam запущен , тогда продолжаем выполнение команд и проверяем наличие карты в слоте
  then
 
   # копируем HTML-файл экран Status с web-интерфес Oscam:
   wget -q -O /tmp/card_status.tmp http://127.0.0.1:8888/status.html

    # проверяем наличие карты в слоте и ее состояние (CARD OK , NEEDINIT , OFF , ERROR)
    if grep -q "CARDOK" /tmp/card_status.tmp ;
 
     then

      # копируем HTML-файл (wget) экран Entitlements for card с web-интерфес Oscam (http://127.0.0.1:8888/entitlements.html?label=card-ntv%2b)
      # полученную информацию выводим в консоль (-O -) , делает это тихо (-q) и делает это один раз (-t 1)
      # далее убираем HTML-tags (sed -e 's/<[^>]*>//g')
      # выбираем только одну строку с ключевым словом "type:" с помощью команды grep и конечный результат сохраням в файл /tmp/card.tmp
      wget -O - -q -t 1 "http://127.0.0.1:8888/entitlements.html?label=card-ntv%2b" | sed -e 's/<[^>]*>//g' | grep -w 'type:' > /tmp/card.tmp

      # редактируем файл /tmp/card.tmp с помощью команды sed , с опцией "-e" позволяет выполнять несколько команде в одной строке
      # теперь можно убрать оставшийся один символ "->" перед ключевым словом "type:" и сделать переносы остальных ключевых слов на новую строку
      # кое-где понадобиться перенос с пробелами для лучшего выравнивания инфы
      sed -e 's/->//' -e 's/caid/\ncaid/g' -e 's/provider/\nprovider/g' -e 's/sa/\n             sa/g' -e 's/class/\nclass/g' /tmp/card.tmp  > /tmp/card.info

      # заменяет файл /tmp/ecm.info на экране Управление ЭМУ:
      # sed -e 's/<[^>]*>//g' /tmp/card.tmp | grep -w 'type:' | tr -d '>' | sed 's/'-type:'/'type:'/g' | sed 's/caid/\ncaid/g' | sed 's/provider/\nprovider/g' | sed 's/sa/\n             sa/g' | sed 's/class/\nclass/g' > /tmp/ecm.info

      # печатаем на экран (это для user sсriрt) на экране Управления ЭМУ:
      # если скрипт будет использован для замены файла ecm.info , тогда закоментировать строку для печати
      cat /tmp/card.info

       # если в Web-if карта еще не готова , тогда на Web будет состояние карты NEEDINIT
       elif grep -q "NEEDINIT" /tmp/card_status.tmp ;

        then
       
         # замена файла /tmp/ecm.info
         # echo "INIT CARD - PLS TRY AGAIN IN FEW SEC" > /tmp/ecm.info
         # печатать на экране ТВ для user sсriрt
         echo "INIT CARD - PLS TRY AGAIN IN FEW SEC"

           # если в Web-if карта не найдена , тогда на Web будет состояние карты OFF
           elif grep -q "OFF" /tmp/card_status.tmp ;
             
            then

             # замена файла /tmp/ecm.info
             # echo "NO CARD IN UPPER SLOT"  > /tmp/ecm.info
             # печатать на экране ТВ для user sсriрt
             echo "NO CARD IN UPPER SLOT"

               # если карты неправильно стартанула или вообще не определилась , тогда в Web-IF будет ERROR
               # а также будет слова ERROR в логах ниже
               else
               
                # замена файла /tmp/ecm.info
                # echo "NO CARD IN UPPER SLOT"  > /tmp/ecm.info
                # печатать на экране ТВ для user sсriрt
                echo "NO CARD IN UPPER SLOT"

    fi


else

# если Oscam не запущен , печаем об этом и прерываем дальнейшее выполнение скрипта (fi)
echo "OSCAM OR WEB-IF NOT IN USE - PLS START OSCAM OR WEB-IF"

fi

# для debug разкоментировать rm команду , чтобы были видны временные файлы
rm -rf /tmp/card_status.tmp
rm -rf /tmp/card.tmp
rm -rf /tmp/card.info


exit 0


 

:: спутниковые ресиверы ::