картинки в телеграмм

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Аватара пользователя
m-malva
Сообщения: 291
Зарегистрирован: Чт фев 26, 2015 1:38 am
Откуда: Санкт-Петербург
Благодарил (а): 16 раз
Поблагодарили: 66 раз
Контактная информация:

картинки в телеграмм

Сообщение m-malva » Пн янв 09, 2017 9:51 pm

чтоб не было такой после праздничной скукоты и тишины на форуме )
report_v.png
report_v.png (44.33 КБ) 7325 просмотров
photo_2017-01-09_17-43-16.jpg
photo_2017-01-09_17-43-16.jpg (60.59 КБ) 7325 просмотров
photo_2017-01-09_17-43-27.jpg
photo_2017-01-09_17-43-27.jpg (62.59 КБ) 7325 просмотров

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

rs(stiker_v, array('stickerbody' => 'текст сообщения'));
 
сама картинка
скрипт info_v
СпойлерПоказать

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

$stickerbody = $params['stickerbody'];

  define('WIDTH', 230);
  define('HEIGHT', 230);

  $image = imagecreatetruecolor(WIDTH,HEIGHT)
  or die('Cannot create image');
  $image = imageCreateFromPng("C:/_majordomo/htdocs/images/report_v.png");

// Шрифт текста
$font = './cms/font/impact.ttf';

// Размер шрифта
$font_size = 16;

$colorfont="0x7749c8";

// Ширина области для вывода текста
$width_text = 140;


$align = "center";

$text =  $stickerbody;

// Заливаем изображение цветом
//imagefill($image, 1, 1, 0xFFF729);

// Разбиваем наш текст на массив слов
$arr = explode(' ', $text);

// Возращенный текст с нужными переносами строк, пока пустая
$ret = "";

// Перебираем наш массив слов
foreach($arr as $word)
    {
        // Временная строка, добавляем в нее слово
        $tmp_string = $ret.' '.$word;
        
        // Получение параметров рамки обрамляющей текст, т.е. размер временной строки 
        $textbox = imagettfbbox($font_size, 0, $font, $tmp_string);
        
        // Если временная строка не укладывается в нужные нам границы, то делаем перенос строки, иначе добавляем еще одно слово
        if($textbox[2] > $width_text)
            $ret.=($ret==""?"":"\n").$word;
        else
            $ret.=($ret==""?"":" ").$word;
    }    

        // Разбиваем снова на массив строк уже подготовленный текст
        $arr = explode("\n", $ret);
        
        // Расчетная высота смещения новой строки
        $height_tmp = 0;
        
        //Выводить будем построчно с нужным смещением относительно левой границы
        foreach($arr as $str)
            {
                // Размер строки 
                $testbox = imagettfbbox($font_size, 0, $font, $str);
                
                // Рассчитываем смещение
                if($align=="center")
                    $left_x = round(($width_text - ($testbox[2] - $testbox[0]))/2);
                else
                    $left_x = round($width_text - ($testbox[2] - $testbox[0]));
                    
                // Накладываем текст на картинку с учетом смещений
                imagettftext($image, $font_size ,0 , 15 + $left_x, 35 + $height_tmp, $colorfont, $font, $str); // 50 - это отступы от края
                
                // Смещение высоты для следующей строки
                $height_tmp = $height_tmp + 20;
            }



  header('Content-type: image/png');
  imagepng($image);
  imagedestroy($image);
 
отправить картинку
скрипт stiker_v
СпойлерПоказать

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

    $stickerbody = $params['stickerbody'];
    $url='127.0.0.1/objects/?script=info_v&stickerbody='.urlencode($stickerbody);
    //генерим и скачиваем картинку
    $png="./cached/alice/stiker_v.png";
      $dest_file = @fopen($png, "w");
      $resource = curl_init();
      curl_setopt($resource, CURLOPT_URL, $url);
      curl_setopt($resource, CURLOPT_FILE, $dest_file);
      curl_setopt($resource, CURLOPT_HEADER, 0);
      curl_exec($resource);
      curl_close($resource);
      fclose($dest_file);
     //отправляем картинку в телеграмм
     include_once(DIR_MODULES . 'telegram/telegram.class.php');
    $telegram_module = new telegram();
    $telegram_module->sendImageToAll('C:/_majordomo/htdocs/cached/alice/stiker_v.png');
 
За это сообщение автора m-malva поблагодарили (всего 3):
Eraser (Пн янв 09, 2017 10:51 pm) • Amarok (Вт янв 10, 2017 7:08 am) • avp8853 (Ср янв 24, 2018 3:00 pm)
Рейтинг: 3.49%
Аватара пользователя
Eraser
Сообщения: 1085
Зарегистрирован: Вт окт 21, 2014 7:31 pm
Откуда: Киров
Благодарил (а): 14 раз
Поблагодарили: 873 раза
Контактная информация:

Re: картинки в телеграмм

Сообщение Eraser » Пн янв 09, 2017 10:51 pm

:) интересное решение!
За это сообщение автора Eraser поблагодарил:
Smolalex (Вт янв 10, 2017 4:51 pm)
Рейтинг: 1.16%
Connect ---- Telegram
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!! :D
C_3AXAPOB
Сообщения: 510
Зарегистрирован: Ср июн 08, 2016 4:17 pm
Благодарил (а): 124 раза
Поблагодарили: 101 раз

Re: картинки в телеграмм

Сообщение C_3AXAPOB » Вт янв 10, 2017 11:06 am

А как график получить в телеграмме?
Orange pi pc plus, megaD-2561, Xiaomi
--------------------------------------------------
http://connect.smartliving.ru/profile/908
Аватара пользователя
m-malva
Сообщения: 291
Зарегистрирован: Чт фев 26, 2015 1:38 am
Откуда: Санкт-Петербург
Благодарил (а): 16 раз
Поблагодарили: 66 раз
Контактная информация:

Re: картинки в телеграмм

Сообщение m-malva » Вт янв 10, 2017 12:04 pm

C_3AXAPOB писал(а):А как график получить в телеграмме?
а в чем сложность?
построить/скачать график и закинуть как картинку.
СпойлерПоказать
photo_2017-01-10_11-58-47.jpg
photo_2017-01-10_11-58-47.jpg (67.25 КБ) 7226 просмотров
СпойлерПоказать

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

if (!function_exists('file_download')) {
 function file_download ($file, $url) {
 //скачиваем картинку
  $dest_file = @fopen($file, "w");
  $resource = curl_init();
  curl_setopt($resource, CURLOPT_URL, $url);
  curl_setopt($resource, CURLOPT_FILE, $dest_file);
  curl_setopt($resource, CURLOPT_HEADER, 0);
  curl_exec($resource);
  curl_close($resource);
  fclose($dest_file);
  return("Файл успешно загружен."); 
 }
}

$url="http://127.0.0.1/jpgraph/?p=narodmon_34797.value&type=1d&width=420&&title=Temp VO";
$file="./cached/Temp/TempVO.png";
file_download ($file, $url);

$img="C:/_majordomo/htdocs/cached/Temp/TempVO.png";
rs('SendTelegram',array('img'=>$img));
За это сообщение автора m-malva поблагодарили (всего 2):
C_3AXAPOB (Вт янв 10, 2017 12:22 pm) • Smolalex (Вт янв 10, 2017 4:51 pm)
Рейтинг: 2.33%
Smolalex
Сообщения: 110
Зарегистрирован: Вт апр 29, 2014 9:16 pm
Благодарил (а): 7 раз
Поблагодарили: 13 раз

Re: картинки в телеграмм

Сообщение Smolalex » Вт янв 10, 2017 5:08 pm

Красота!!! Новый 2017 год сделает MajorDomo Сергея лидирющим в области программного обеспечения всех мировых умных домов.В самом деле очень интересно. Но хотелось бы для Linux тоже. В частности ttf font. Может оформить это как отдельный модуль? В котором можно было бы выбирать, что отправлять в Telegram с отдельным расписанием и выбором свойств объектов. Надеюсь Сергей поможет. Это как я думаю отдельная большая ветвь.
Аватара пользователя
m-malva
Сообщения: 291
Зарегистрирован: Чт фев 26, 2015 1:38 am
Откуда: Санкт-Петербург
Благодарил (а): 16 раз
Поблагодарили: 66 раз
Контактная информация:

Re: картинки в телеграмм

Сообщение m-malva » Вт янв 10, 2017 5:17 pm

Smolalex писал(а):Может оформить это как отдельный модуль?
Зачем делать из простого сложное?
создайте скрипт и в планировщик

например вот такой стикер система присылает мне в 15:00
или если я спрашиваю "как дела"
photo_2017-01-10_17-11-08.jpg
photo_2017-01-10_17-11-08.jpg (15.24 КБ) 7181 просмотр
Smolalex
Сообщения: 110
Зарегистрирован: Вт апр 29, 2014 9:16 pm
Благодарил (а): 7 раз
Поблагодарили: 13 раз

Re: картинки в телеграмм

Сообщение Smolalex » Вт янв 10, 2017 5:18 pm

Чесно говоря пока сам не совсем понимаю как унифицировать Ваше детище, аккуратно вписать в имеющююся систему. Быстро приходит решение выбор сообщений Алисы(в лог, говорить...). Добавить Telegram. Но вывод графиков и других событий...Может модуль SAY не только говорящим сделать, а еще и Telegram-ным, с выводом графиков и слипа домашней страницы, на которой выведены все актуальные параметры.
Аватара пользователя
m-malva
Сообщения: 291
Зарегистрирован: Чт фев 26, 2015 1:38 am
Откуда: Санкт-Петербург
Благодарил (а): 16 раз
Поблагодарили: 66 раз
Контактная информация:

Re: картинки в телеграмм

Сообщение m-malva » Вт янв 10, 2017 5:22 pm

а такой если протечка
photo_2017-01-10_17-18-28.jpg
photo_2017-01-10_17-18-28.jpg (20.68 КБ) 7178 просмотров
Smolalex
Сообщения: 110
Зарегистрирован: Вт апр 29, 2014 9:16 pm
Благодарил (а): 7 раз
Поблагодарили: 13 раз

Re: картинки в телеграмм

Сообщение Smolalex » Вт янв 10, 2017 5:25 pm

Согласен, что проще делать скриптик, но если мне 57 лет и из них я 35 лет занимался разработкой и программированием, хотя не совсем в области WEB , но мне уже хочется делать Copy Past. Не хочу спорить, всегда болел только за удобство пользователя. Совсем не лень мною движет, а желание сделать удобный интерфейс для современных User-ов.
Smolalex
Сообщения: 110
Зарегистрирован: Вт апр 29, 2014 9:16 pm
Благодарил (а): 7 раз
Поблагодарили: 13 раз

Re: картинки в телеграмм

Сообщение Smolalex » Вт янв 10, 2017 5:35 pm

Честно, я тащусь от разработки Сергея. Я периодически писал, что Сергей создал не умный дом, а серьезрый инструмент, который надо двигать во все сферы нашей жизнедеятельности. Я бы рассматривал данный инструмент как ПО для банков и т.п. естественно для внутренного пользования. Любая транзакция может контролироваться, я уже не говорю о температурных и санкционных режимах серверных и т.п. любой кабинет руководителя. Возможно я мечтатель, но Сергей создал то, о чем я всегда мечтал и нет предела совершенству. Спасибо тебе Сергей огромное.
Ответить