Sleepless tech | Евгений J – Telegram
Sleepless tech | Евгений J
788 subscribers
485 photos
80 videos
1 file
214 links
DIY, web, coffee
Автоматизирую все и вся, ремонтирую что сломалось, трачу время на just-for-fun проекты. Пишу про хардвар и софтвар и не только.

http://jem-space.ru

Связь со мной: @jem_jem
Донаты на припой и хостинги: https://bit.ly/2MKcRoJ
Download Telegram
Напечатал насадку для машинки на 2 мм, которой не было в комплекте. Сидит отлично. Тесты прошла)

https://www.thingiverse.com/thing:2992585
Кстати, ребят. Хотелось бы поближе познгакомиться с аудиторией, поэтому проведу небольшой опрос. Я занимаюсь...
Anonymous Poll
5%
hardware разработкой
56%
software разработкой
5%
3d печатью
27%
всем подряд
24%
чем-то другим
This media is not supported in your browser
VIEW IN TELEGRAM
Сегодня печатаю держатель для ключа. Как вариант хочу прифигачить туда же ключ таблетку. Посмотрим на сколько это будет удобно.
So stylish))
Так вот зачем я 5 лет учился на инженера.
Работаю из эпицентра бардака и хаоса. Всем хорошего начала недели!✌️
Друг заказал Raspberry Pi4. Выглядит довольно неплохо.

На борту 8 Гигов RAM и поддержка 4к дисплеев.
Привет! ✌️
Вчера допилил прототип бота, который постит сообщения из каналов Telegram в каналы Icq New. Это будет самый бесполезный бот (потому что Icq New - дно). В процессе разработки решил немного поменять стек и съел собаку на javanoscript-state-machine (https://github.com/jakesgordon/javanoscript-state-machine).

Предварительные итоги:
👎 Icq не умеет в ReplyKeyboard, только InlineKeyboard (т. е. кнопки на самом сообщении, не на клавиатуре)
👎 Готовые решения для icq ботов на JS пока довольно ущербны и приходится допиливать функционал при помощи обычных запросов к API
🔥Для Telegram ботов офигенно подходит telegraf.js (https://telegraf.js.org/#/) и странно, что я до сих пор его не пробовал. Весь функционал бота я наклепал за вечер. У telegraf уже есть встроенная state machine, c которой довольно просто работать
📌Плохо называть переходы и состояния для javanoscript-state-machine одинаково (из за этого можно потерять пол дня, пытаясь понять почему твой экшн вызывается дважды)
Урок 1 - ожоги 2 степени.
Мне тут кстати пара вопросов пришло о том, чем отличаются reply keyboard от inline keyboard. На картинках слева reply, справа - inline.

Прикол еще в том, что при использовании юзером inline кнопок, боту для ответа на его сообщение нужно использовать другой метод - answerCallbackQuery (что мешает унификации и минимализации кода).

Если использовать обычный sendText, то будет постоянно крутиться спиннер на кнопке, пока не отвалится по таймауту
Продолжаю использовать свои навыки и 3d принтер, чтобы создавать вещи за гранью воображения 😂

Удобная штука для владельцев котов. Ей ещё кстати и зубную пасту можно выдавливать из тюбиков)
На днях решил тут запилить склейку видосов на Node.js + FFMPEG (чтобы делать подборки на youtube). Как обычно думаешь, что задача плевая на пару часов, в итоге в 2 ночи куришь мануалы по FFMPEG и гуглишь ошибки.
Файлы были формата mp4 и как оказалось проблема была в разных битрейтах видео. В общем проще все конвертировать в mpeg и клеить так.

Плюс запилил бота @fun18fun_bot, котором можно скормить ссылку на видос и он потом попадет в подборку.
К сожалению клеит пока только Tik Tok видосы (можно кидать в меня помидоры), потом может придумаю как coubы обрабатывать.

Пилотный прогон можно глянуть тут https://www.youtube.com/watch?v=gxRdVCtL1Fg
А еще узнал забавный хак для работы с spawn в Node.js (spawn - запускает дочерний процесс, что как раз нужно чтобы вызвать ffmpeg).

Синтаксис spawn такой:

spawn('ls', ['-lh', '/usr']);

т е команда (ls) как первый аргумент и параметры в массиве(['-lh', '/usr’]).

Но если параметр должен быть в кавычках как строка, например для случая сложного фильтра для ffmpeg:
ffmpeg -i video.mpeg -lavfi '[0:v]scale=ih*16/9:-1,boxblur=luma_radius=min(h\\,w)....'

то ее нужно вынести в переменную и только потом указать в массиве:

let filter = '[0:v]scale=ih*16/9:-1,boxblur=luma_radius=min(h\\,w)....'
spawn("ffmpeg", ["-i", "video.mpeg", "-lavfi", filter ])

Какая-то магия, но работает)