Sep. 5th, 2017

dlinyj: (Default)
Самовыковырялся в кинотеатр, и сходил на наименее говённый, по моему мнению, фильм: "Бабушка лёгкого поведения". В первую очередь из-за Реввы и Глюкозы. Больших ожиданий от фильма не было, думал очередная рядовая средней паршивости комедия. В сути так и есть, но надо сказать, что уж куда я бука в последнее время, - местами ржал в голос.



Из приятных моментов, практически весь фильм снимали в моём районе Ясенево. Дом престарелых - это усадьба Узкое, а место где бабками обмен производился - это Зона отдыха «Битца». Немного в разных местах района, но тем не менее в пешей доступности друг от друга.
Рекомендовать фильм не могу, но четвёрку твёрдую ему поставлю. Особо доставила Глюкоза и хороший юмор, а так же очень хитро там обыгран вопрос древнейшей и самой гонимой нации. Примерно так же, как я тут сформулировал её название - деликатно, но и так всё ясно.
dlinyj: (Default)
После сборки обработать напильником.

Понадобился мне под одну задачку телеграмный бот. Как оказалось не так страшен чёрт, как его малюют. Можно за часок набросать бота, хотя для управления умного дома, хоть для управления шатлом. На питоне писать не хотелось по ряду причин. Одна из которых, как не смешно звучит - переносимость кода. К питону надо ставить дополнительные либы, которые ухудшают его переносимость, особенно на встраиваемые системы, так что тут пока что рулит си и php.


Есть расчудесный проект сишного телеграмного бота https://github.com/smartnode/telebot/ . В принципе за 20 минут у меня он завёлся, минут сорок ковыряний левой пяткой я научился отправлять изображения и отвечать на сообщения. Короче, штука всем распрекрасна и уже казалось, что разверзлись врата рая и можно мутить управление шатлом, но ждал вселенский облом...

Мне понадобилось скачивать передаваемые картинки, файлы и прочую шолупень. Не только отсылать (что оказалось как два пальца об асфальт), но и получать и тут я лососнул тунца. Собстна говоря код, для получения файла примитивно прост (если я верно понял всё API). Я не поленился прошерстить весь код, чтобы понять логику работы. И родил такого монстра:

if (message->photo[1].file_size > 0) {
  char file_id[TELEBOT_FILE_ID_SIZE];
  strcpy(file_id,message->photo[1].file_id);
  ret = telebot_download_file(file_id, "photos/file_7.jpg");
  if (ret != TELEBOT_ERROR_NONE) {
   printf("Failed to download file: %d \n", ret);
  }
 }



Если перевести с программерского на русский, то мы определяем что структура сообщения имеет в поле фото не нулевой размер, и после чего пытаемся скачать его с помощью команды telebot_download_file(file_id, "photos/file_7.jpg"); в файл photos/file_7.jpg . Но, увы и ах, болт с левой резьбой.

Отладкой дошерстил до функции json_object_object_get_ex (obj, "file_path", &file_path) , которая является библиотечной и тут заткнулся. Так как надо уже мануалить работу функций. Толковых мануалов на работу апи, как и примеров нет, или по крайне мере я не смог нагуглить. Задал вопрос автору, но чуйка мне подсказывает, что он останется без ответа, а жаль... В общем, хорошая тема, но либо лыжи не едут, либо что-то не так делаю.

January 2026

S M T W T F S
    123
456 78910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 22nd, 2026 08:08 am
Powered by Dreamwidth Studios