[Модуль] Telegram (telegram)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Аватара пользователя
Eraser
Сообщения: 1085
Зарегистрирован: Вт окт 21, 2014 7:31 pm
Откуда: Киров
Благодарил (а): 14 раз
Поблагодарили: 869 раз
Контактная информация:

Re: Модуль "Telegram"

Сообщение Eraser » Ср апр 13, 2016 10:02 am

"Bot can't send messages to the bot"
никак не получится https://core.telegram.org/bots/faq#what ... my-bot-get
Connect ---- Telegram
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!! :D
Аватара пользователя
m-malva
Сообщения: 291
Зарегистрирован: Чт фев 26, 2015 1:38 am
Откуда: Санкт-Петербург
Благодарил (а): 16 раз
Поблагодарили: 66 раз
Контактная информация:

Re: Модуль "Telegram"

Сообщение m-malva » Пн апр 18, 2016 4:23 pm

Уважаемый Eraser
Подскажите почему так происходит?
В шаблонах есть шаблон "Найди фильм"
он запускает скрипт
СпойлерПоказать

Код: Выделить всё

$kino=$params['kino'];

say ("Ищу фильм ".$kino." в домашних базах",3);

//соединяемся с mysql
include_once("./config.php");
$connect_to_db = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD)
      or die("Could not connect: " . mysql_error());

// подключаемся к базе данных
mysql_select_db("db_terminal",$connect_to_db)
      or die("Could not select DB: " . mysql_error());

mysql_query ("SET NAMES utf8");//Устанавливаем кодировку

// значения поиск по похожему
$sql="SELECT * FROM `video_list` WHERE `name` LIKE '%$kino%'";

// выбираем из таблицы
$result=mysql_query($sql,$connect_to_db)
      or die(mysql_error());
//Проверяем "есть че"
if(mysql_num_rows($result)){

while($arr=mysql_fetch_array($result)) {
      $o=gg("Folder01.skan_dir").'\\'.$arr['name']; 
     $mediafile="smb:".str_replace('\\','/', $o);
}
}else{
     echo "не нашла".$kino;
 return;
}

//отправка в Коди
say ("Сейчас ".gg("XBMC.statusText")." ".gg("XBMC.status"));
     echo "нашла ".$mediafile;
if (gg("NobodyHomeMode.active")=="1"){
   say("Так, как дома никого нет, видеофайл пока помещу в отложенный запуск",3);
   SetGlobal("XBMC.playafter",$mediafile);
}else{
 if (gg("XBMC.Online")=="1"){
  say ("Отправляю в медиаплеер ".gg("XBMC.statusText"),5);
  $url="http://".gg("XBMC.IP").":".gg("XBMC.Port")."/jsonrpc?request={%22jsonrpc%22:%222.0%22,%22method%22:%22Player.Open%22,%22params%22:{%22item%22:{%22file%22:%22".urlencode($mediafile)."%22}},%22id%22:1}";
  fopen($url, 'r'); 
 }else{
  $hw_comp = getGlobal('XBMC.MAC');
  $comp_name = getGlobal('XBMC.statusText');
  rs("WakeOnLAN",array("hw_comp"=>$hw_comp, "comp_name"=>$comp_name ));  
  say("Видеофайл пока помещу в отложенный запуск",5);
  SetGlobal("XBMC.playafter",$mediafile); 
 }
} 
выполнение которого подтверждается в чате и в Telegram
СпойлерПоказать
Снимок1.JPG
Снимок1.JPG (38.09 КБ) 10080 просмотров
если я еще раз вызову скрипт то отправка в Telegram не происходит
СпойлерПоказать
Снимок2.JPG
Снимок2.JPG (24.57 КБ) 10080 просмотров
после третьего вызова в Telegram перестает работать как на отправку так и на прием
При этом Алиса нормально отрабатывает все что вводится локально
СпойлерПоказать
Снимок3.JPG
Снимок3.JPG (53.66 КБ) 10080 просмотров
Отваливается модуль только при выполнении этого скрипта (правда он единственный у меня с запросом к бд)
Аватара пользователя
m-malva
Сообщения: 291
Зарегистрирован: Чт фев 26, 2015 1:38 am
Откуда: Санкт-Петербург
Благодарил (а): 16 раз
Поблагодарили: 66 раз
Контактная информация:

Re: Модуль "Telegram"

Сообщение m-malva » Пн апр 18, 2016 4:26 pm

в истории событий
СпойлерПоказать
Снимок.JPG
Снимок.JPG (87 КБ) 10075 просмотров
Куда копать? Помогите
Аватара пользователя
Eraser
Сообщения: 1085
Зарегистрирован: Вт окт 21, 2014 7:31 pm
Откуда: Киров
Благодарил (а): 14 раз
Поблагодарили: 869 раз
Контактная информация:

Re: Модуль "Telegram"

Сообщение Eraser » Пн апр 18, 2016 4:50 pm

возможно проблема в rs("WakeOnLAN",array("hw_comp"=>$hw_comp, "comp_name"=>$comp_name ));
За это сообщение автора Eraser поблагодарил:
m-malva (Вт апр 19, 2016 10:18 am)
Рейтинг: 1.16%
Connect ---- Telegram
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!! :D
Аватара пользователя
m-malva
Сообщения: 291
Зарегистрирован: Чт фев 26, 2015 1:38 am
Откуда: Санкт-Петербург
Благодарил (а): 16 раз
Поблагодарили: 66 раз
Контактная информация:

Re: Модуль "Telegram"

Сообщение m-malva » Вт апр 19, 2016 10:23 am

Eraser писал(а):возможно проблема в rs("WakeOnLAN",array("hw_comp"=>$hw_comp, "comp_name"=>$comp_name ));
да спасиб. похоже в нем.

но почему WakeOnLAN останавливает работу модуля?
СпойлерПоказать

Код: Выделить всё

$comp_name = $params['comp_name'];
$hw_comp = $params['hw_comp'];

say('Пытаюсь включить '.$comp_name,1);

magicPacket($hw_comp);


function magicPacket($mac,$addr='255.255.255.255',$socket_number=7) {

    //split up the mac address based upon the colons in the string
        $addr_byte = explode(':', $mac);
        $hw_addr = '';

    for ($a=0; $a <6; $a++) 
        $hw_addr .=chr(hexdec($addr_byte[$a])); //convert the hex to its decimal equivalent, encode as a character, and repeat 16 times
        
        $msg = str_repeat(chr(255),6); //FF in decimal is 255, which is then encoded as a char as with our mac address
    for ($a = 1; $a <= 16; $a++) 
        $msg .= $hw_addr;

        $s = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);  //create our socket

        if ($s == false) {
                         say('У меня не получается включить, ошибка создания сокета',1);
                        echo "Error creating socket!\n";
                        echo "Error code is '".socket_last_error($s)."'- " . socket_strerror(socket_last_error($s));
                        return false;
          }

        else {
          // setting a broadcast option to socket:
          //$opt_ret = socket_set_option($s, 1, 6, TRUE);
          $opt_ret = socket_set_option($s,SOL_SOCKET,SO_BROADCAST,true);
          if($opt_ret <0) {
            echo "setsockopt() failed, error: " . strerror($opt_ret) ."\n";
            return false;
            }
       if(socket_sendto($s, $msg, strlen($msg), 0, $addr,$socket_number)) {
            socket_close($s);
            return true;
            }

          else {
            return false;
            }
          }
        } 
Аватара пользователя
Eraser
Сообщения: 1085
Зарегистрирован: Вт окт 21, 2014 7:31 pm
Откуда: Киров
Благодарил (а): 14 раз
Поблагодарили: 869 раз
Контактная информация:

Re: Модуль "Telegram"

Сообщение Eraser » Вт апр 26, 2016 10:41 pm

Обновление

Команды с параметрами (пример wget http://....., название команды wget, и в обработчике из $text выделяются предаваемые параметры)
В настройки добавлен параметр Debug - расширенная информация по запросам к серверу Telegram
Connect ---- Telegram
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!! :D
Аватара пользователя
m-malva
Сообщения: 291
Зарегистрирован: Чт фев 26, 2015 1:38 am
Откуда: Санкт-Петербург
Благодарил (а): 16 раз
Поблагодарили: 66 раз
Контактная информация:

Re: Модуль "Telegram"

Сообщение m-malva » Чт апр 28, 2016 10:24 am

Уважаемый Eraser.
А почему не добавили стикеры, файлы, и все остальные функции?
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: Модуль "Telegram"

Сообщение skysilver » Чт апр 28, 2016 10:31 am

Ребята, подкиньте идей, кто как использует этот модуль. Какие команды реализуете? О чем оповещаете? А то фантазии что-то не хватает. ))
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Аватара пользователя
Eraser
Сообщения: 1085
Зарегистрирован: Вт окт 21, 2014 7:31 pm
Откуда: Киров
Благодарил (а): 14 раз
Поблагодарили: 869 раз
Контактная информация:

Re: Модуль "Telegram"

Сообщение Eraser » Чт апр 28, 2016 10:34 am

m-malva писал(а):Уважаемый Eraser.
А почему не добавили стикеры, файлы, и все остальные функции?
никто не просил, а мне как-то пока не надо было :)
добавлю
а какие остальные функции?
Connect ---- Telegram
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!! :D
Аватара пользователя
Eraser
Сообщения: 1085
Зарегистрирован: Вт окт 21, 2014 7:31 pm
Откуда: Киров
Благодарил (а): 14 раз
Поблагодарили: 869 раз
Контактная информация:

Re: Модуль "Telegram"

Сообщение Eraser » Чт апр 28, 2016 10:36 am

skysilver писал(а):Ребята, подкиньте идей, кто как использует этот модуль. Какие команды реализуете? О чем оповещаете? А то фантазии что-то не хватает. ))
как пример по команде, Алиса мне высылает изображение с вебкамеры

Код: Выделить всё

echo $chat_id;

$url = "http://192.168.0.111:8765/picture/1/current/";
$img = "/var/www/files/webcam1.jpg";

$data = file_get_contents($url);
$handle = fopen($img, "w");
fwrite($handle, $data);
fclose($handle);

include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$telegram_module->sendImageToUser($chat_id,$img);
echo "send\n";
 
Последний раз редактировалось Eraser Чт апр 28, 2016 10:57 am, всего редактировалось 1 раз.
Connect ---- Telegram
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!! :D
Ответить