Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam

Пикабу Игры +1000 бесплатных онлайн игр

Тайна Самоцветов: Ключ Сокровищ - Три в ряд

Казуальные, Три в ряд, Головоломки

Играть

Отель Эмили. Пасьянс

Карточные, Казуальные, Головоломки

Играть
Это idle-игра стратегия о рыцарях, исследованиях, крафте и сражениях, которая предоставляет пользователям расслабляющий опыт. Игра не требует концентрации и идеально подходит, когда вам нужно сделать перерыв или отдохнуть.

Герои Мини-Королевства

Кликер, Стратегии, Мидкорные

Играть
Веселая аркада с Печенькой для новогоднего настроения. Объезжайте препятствия, а подарки, варежки, конфеты и прочие приятности не объезжайте: они помогут набрать очки и установить новый рекорд.

Сноуборд

Спорт, Аркады, На ловкость

Играть
Погрузись в мир куриных перестрелок! Хватай пушку и пусть только перья останутся на месте твоих врагов!

Чикен Страйк

Шутер, Экшены, Для мальчиков

Играть

Топ прошлой недели

  • Oskanov Oskanov 8 постов
  • alekseyJHL alekseyJHL 6 постов
  • XpyMy XpyMy 1 пост
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Новости Пикабу Помощь Кодекс Пикабу Реклама О компании
Команда Пикабу Награды Контакты О проекте Зал славы
Промокоды Скидки Работа Курсы Блоги
Купоны Biggeek Купоны AliExpress Купоны М.Видео Купоны YandexTravel Купоны Lamoda
Мобильное приложение

Командная оболочка bash

С этим тегом используют

Linux IT Программирование Все
81 пост сначала свежее
58
netko2
netko2
3 года назад
GNU/Linux

Проигрывание аудио файлов и роликов с youtube с управлением скриптами⁠⁠

Эта статья прежде всего о возможностях систем linux, хотя

практическая ценность приведенных примеров тоже имеет место.

Статья предназначена для новичков в Линукс.

Чтобы творчески переработать скрипты под свою систему нужно

минимальное представление о программировании.


Используемые программы:

mpv # Плеер, переработанный и дополненый mplayer

i3blocks-1.4 # Панель для i3

xfce4-terminal # Быстрый эмулятор терминала.

утилиты:

xsel # Работа с буфером обмена из командной строки

socat # Работа с сокетами из командной строки

notify-send # Простые уведомления из bash. Удобно использовать для отладки

в тех местах, где скрипт выполняется не в терминале.


Итак, есть рабочий компьютер, на котором переодически играет музыка. Это либо

mp3 - файлы, либо youtube-ролики. Задача -- управление проигрыванием с панели.

С нее и начну. Панель i3blocks применяется с тайловым менеджером окон i3.

Принцип ее работы очень прост. С определенным интервалом она выполняет скрипты

или программы и результат их работы выводит на панель. Кроме того, программа

выполняет скрипт по нажатию клавиш мыши и передает эти нажатия скрипту.


Воспроизведение. Для него я использовал плеер mpv, переработанную версию

mplayer'а. Его достоинства -- умеет воспроизводить ролики youtube (с помощью

youtube-dl) и управляется через socket, то, что мне нужно.


Чтобы mpv принимал команды через socket, ему нужно задать опцию при запуске

или записать её в конфигурации.

--input-ipc-server=~/.config/mpv/socket - для командной строки

input-ipc-server=~/.config/mpv/socket - для файла конфигурации mpv.conf


Для добавления youtube-роликов я использую буфер обмена. С определенным

интервалом скрипт будет просматривать буфер обмена и если в нем будет

ссылка на ролик youtube, он будет добавлять его в плейлист плейера.

Итак, нужно 4 скрипта. Проигрывание/пауза, вперед, назад и скрипт для работы с буфером обмена.

Все скрипты должны выводить свои "кнопки", если mpv запущен.

Скрипты должны иметь разрешение на запуск, кто забыл: chmod +x scriptname

Проигрывание аудио файлов и роликов с youtube с управлением скриптами Linux, Командная оболочка bash, Длиннопост

Скрипты prev и next отличаются лишь строкой вывода и командой mpv. Привожу

prev:

Проигрывание аудио файлов и роликов с youtube с управлением скриптами Linux, Командная оболочка bash, Длиннопост

Для i3blocks config

[prev] # Имя скрипта (нужно сделать его запускаемым, chmod +x prev)

interval=10 # Интервал не может быть нулевым, ставим не слишком малый, с потолка.

[play_pause]

interval=5# Запускается раз в 5 секунд.

[next]

interval=10


Итак, теперь, если запустить mpv ~/mymusic/*mp3 или

mpv --input-ipc-server=~/.config/mpv/socket ~/mymusic/*mp3

то воспроизведением можно будет управлять с панели.

Теперь приступим к видео с youtube. i3blocks будет запускать скрипт раз в

секунду, а тот будет проверять буфер на предмет соответствия ссылке на

youtube. Проверять будем sed'ом.

Проигрывание аудио файлов и роликов с youtube с управлением скриптами Linux, Командная оболочка bash, Длиннопост

Если кому-то нужно расписать команду sed - спрашивайте в комментариях.

Нужно добавить в ~/.config/i3blocks/config:

[mappendlst]

interval=3


Перезапуск i3 mod+shift+r и можно пользоваться.


PS. Ну и для тех, кто пользуется i3 и i3blocks, но еще не освоился там, добавлю.

i3blocks позволяет запускать скрипт по сигналам unix. Это удобно использовать

для индикатора раскладки клавиатуры.

В i3blocks config пишем

[lang]

signal=10

Сам lang:

s = $(xset -q |sed -n '8 s/12\: Group 2\: \+\(on\|off\?\).\+/\1/p')

if [ $s == "on" ]; then

echo "RU"

else

echo "EN"

fi

В i3/config

bindcode 105 exec pkill -SIGRTMIN+10 i3blocks # 105 - Код правого Control'a.

# pkill - отправить сигнал процессу

Узнать код своего переключателя - xev


Вопросы, замечания и предложения приветствуются.


К сожалению, pikabu не умеет в форматирование, пришлось делать скриншоты, а сами файлы тут:

https://disk.yandex.ru/d/vpEy-S1J_9aUzQ


Полезные вещи:

Advanced Bash Scripting Guide pdf - Почти все для bash scripting.

https://mpv.io/manual/stable/#command-interface Другие полезные команды для mpv.

Показать полностью 3
[моё] Linux Командная оболочка bash Длиннопост
13
1
hunterpav
3 года назад
Лига программистов

Моргенштерн 24/7 - 100 часов online⁠⁠

Моргенштерн 24/7 - 100 часов online Программирование, Компьютерная графика, Программист, IT, Командная оболочка bash, Ffmpeg, Видео, Длиннопост


Вступление.


Начну с того что я программист и немного увлекаюсь музыкой, развлекаюсь, так сказать.

Не так давно создал канал для своего творчества. Так сложилось что в лекции Анны Виленской мне понравился один момент и я выложил у себя его на канале.. В итоге это понравилось не только мне, но и еще более 600 человек. Больше 18к просмотров и 60 комментариев.. Действительно квартер здОрово сыграл!

Так сложилось что моя деятельность давно в какой-то степени связана с трансляциями и я решил запустить стрим в поддержку квартета.

Теперь по теме.

Запустил трансляцию на базе Orange pi zero 2

У меня на ней работает Home Assistant и node red с домашней автоматизацией.

Дополнительная трансляция по нагрузке ресурсов почти не заметна, поэтому мне совершенно не сложно ее содержать))

Моргенштерн 24/7 - 100 часов online Программирование, Компьютерная графика, Программист, IT, Командная оболочка bash, Ffmpeg, Видео, Длиннопост

И вот сечас уже 100 часов непрерывного воспроизведения записи квартета)



Технологии.


1. Сначала я в figma нарисовал графику

Моргенштерн 24/7 - 100 часов online Программирование, Компьютерная графика, Программист, IT, Командная оболочка bash, Ffmpeg, Видео, Длиннопост

2. Потом в Davinci Resolve смонтировал статический видик, во Fusion добавил минимальную анимацию

Моргенштерн 24/7 - 100 часов online Программирование, Компьютерная графика, Программист, IT, Командная оболочка bash, Ffmpeg, Видео, Длиннопост

3. Далее я использовал wkhtmltoimage для получения картинки с о страницы патреон

wkhtmltoimage --crop-h 84 --crop-w 255 --crop-x 387 --crop-y 1139 --format png https://www.patreon.com/San4eZMusic patreon.png

4. Для рассчета количества часов использовал обычные возможности bash и для отрисовки числа использую gm convert (GraphicsMagick)

#!/bin/sh
st=1641823547
cur=$(date +%s)
sec=$(($cur-$st))
hours=$(($sec/60/60))
gm convert -size 280x170 xc:white -font "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf" -pointsize 100 -fill red -gravity center -draw "text 0,0 \"$hours\"" h_count.png

5. И последнее - ffmpeg для склейки видео и картинок + стрима в youtube



Вывод.


Очень легко организовать стрим с минимальными затратами ресурсов.

Еще раз инструменты которые я использовал:

1) Orange pi zero 2

2) Figma

3) Davinci Resolve 17

4) wkhtmltoimage

5) GraphicsMagick

6) ffmpeg


Если вам интересна эта тема и вы не знакомы с какими-то из этих инструментов - очень рекоммендую с ними познакомиться)

Если будут какие-нибудь вопросы или предложения - пишите, с радостью обсудим))



P.S. Если вы программист или у вас просто хороший доход, пожалуйста, поддержите музыкантов) они стараются для нас и они действительно это очень круто делают! https://www.patreon.com/San4eZMusic

Показать полностью 3 2
[моё] Программирование Компьютерная графика Программист IT Командная оболочка bash Ffmpeg Видео Длиннопост
19
3650
ypuH0TEPAnEBT
ypuH0TEPAnEBT
3 года назад
IT-юмор

Легко же!⁠⁠

Легко же!
IT юмор Скриншот Командная оболочка bash
129
10
lobster1029
4 года назад

Telegram бот без явного использования сервера⁠⁠

Всем привет!

Сегодня на примере двух простых ботов для телеграм я хочу показать возможность реализации функций без использования сервера.

Для этого можно воспользоваться так называемыми бессерверными вычислениями, например

https://cloud.google.com/functions или https://cloud.yandex.ru/services/functions.

Я буду использовать сервис от яндекса.


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


Делать я буду бота который озвучивает сообщения  при помощи сервиса от того же яндекса: https://cloud.yandex.ru/services/speechkit и бота который делает цветные фотографии из Ч/Б при помощи сервиса от mail.ru https://mcs.mail.ru/vision/, несмотря на то что основная цель данного сервиса - распознавание образов, этот сервис имеет функцию улучшения изображений https://mcs.mail.ru/help/ru_RU/manage-vision/vision-image-ap....


В первую очередь нам необходимо создать аккаунт в Yandex Cloud (или Google Cloud, если вдруг кто-то захочет повторить процесс там), подробно данную процедуру я описывать не буду, там ничего сложного.

После создания аккаунта заходим в консоль: https://console.cloud.yandex.ru и в левом меню переходим в пункт Cloud Functions, создаем функцию и придумываем ей имя.

После этого нам предлагают выбрать язык

Telegram бот без явного использования сервера Telegram, Бот, Программирование, Командная оболочка bash, Синтез речи, Колоризация, Видео, Длиннопост

Как видите, выбор большой. Я же не буду искать лёгкий путей и выберу Bash.


После этого мы попадаем в редактор.

Telegram бот без явного использования сервера Telegram, Бот, Программирование, Командная оболочка bash, Синтез речи, Колоризация, Видео, Длиннопост

В настройках в нижней части мы будем добавлять переменные окружения для хранения там, например, API ключа от бота. Также желательно увеличить таймаут, так как процесс синтеза речи или обработки фотографий может быть не быстрым.

Важно: После каждого изменения необходимо в правой части экрана нажимать на кнопку "Создать версию". В документации https://cloud.yandex.ru/docs/functions/ может почитать детальную информацию по каждому языку и посмотреть примеры.

Telegram бот без явного использования сервера Telegram, Бот, Программирование, Командная оболочка bash, Синтез речи, Колоризация, Видео, Длиннопост

Так выглядит моё окно редактора с полностью готовой функцией.

Код функции:

#!/bin/bash
# Ответ со статусом 200, оставляем из примера
echo '{
"statusCode": 200,
"body": {}
}'
# Запросы в функцию попадают через stdin, чтобы его получить достаточно вызвать команду `cat`
# Сервис, помимо тела запроса, присылает много дополнительной информации, а сам запрос лежит по ключу body
REQUEST=$(cat | jq -r '.body') # В переменную REQUEST достаём весь запрос от telegram
MESSAGE=$(echo $REQUEST | jq -r '.message') # Достаем структуру message
CHAT_ID=$(echo $MESSAGE | jq -r '.chat.id') # Внутри находим id чата для того чтобы отправить туда сообщение
TEXT=$(echo $MESSAGE | jq -r '.text') # Берём текст сообщения который будем озвучивать
# Cоздаём токен яндекса
# Для этого обязательно в настройках внизу должен быть подключен сервисный аккаунт
IAM_TOKEN=$(yc iam create-token)
FILE="/tmp/$(date +%s).ogg" # Названия временного файла, в виде текущей даты в секундах
# Отправляем текст на синтез и результат записываем во временный файл
curl -s -X POST -H "Authorization: Bearer ${IAM_TOKEN}" \
--data-urlencode "text=${TEXT}" \
-d "voice=alena&lang=ru-RU&folderId=${FOLDER_ID}" \
"https://tts.api.cloud.yandex.net/speech/v1/tts:synthesize" > $FILE
# Полученный файл отправляем в telegram
curl -s https://api.telegram.org/bot${BOT_API_KEY}/sendVoice -F "voice=@${FILE}" -F "chat_id=${CHAT_ID}" > /dev/null
# Удаляем файл
rm $FILE > /dev/null

В переменных окружения указан API ключ от бота который выдаётся при его создании.

И указан FOLDER_ID необходимый для работы синтеза речи, подробнее тут: https://cloud.yandex.ru/docs/speechkit/quickstart


Теперь осталось перейти в обзор функции сделать её публичной и скопировать ссылку для вебхука. Ссылку для вебхука я устанавливал командой:

curl https://api.telegram.org/bot<API_KEY>/setWebhook -F "url=https://functions.yandexcloud.net/d..."

<API_KEY> - заменить на токен бота, а в url= соответсвенно ваша ссылка.

Telegram бот без явного использования сервера Telegram, Бот, Программирование, Командная оболочка bash, Синтез речи, Колоризация, Видео, Длиннопост

На этом всё, бот должен работать. Проверяем:

Для создание второго бота проделываем всю ту же процедуру, но на этот раз, для использования сервиса обработки фотографий, нам необходимо зарегестрироваться ещё и на сайте https://mcs.mail.ru, и получить там токен для использования его в API.

Готовая функция  выглядит так:

Telegram бот без явного использования сервера Telegram, Бот, Программирование, Командная оболочка bash, Синтез речи, Колоризация, Видео, Длиннопост

Не обращайте внимания на подсветку кода, из-за сложного синтаксиса в 11 строке всё ломается. В переменных окружения как и в прошлый раз указан API ключ бота и API ключ от mail.ru.


Код целиком:

#!/bin/bash
echo '{
"statusCode": 200,
"body": {}
}'
REQUEST=$(cat | jq -r '.body')
MESSAGE=$(echo $REQUEST | jq -r '.message')
CHAT_ID=$(echo $MESSAGE | jq -r '.chat.id')
PHOTO=$(echo $MESSAGE | jq -r '(.photo | .[-1]) // (select(.document) | .document | select(.mime_type | contains("image"))) // false')
if [[ "$PHOTO" == "false" ]]; then
exit
fi
FILE_ID=$(echo $PHOTO | jq -r '.file_id')
FILE_PATH=$(curl -s https://api.telegram.org/bot${BOT_API_KEY}/getFile -F "file_id=${FILE_ID}" | jq -r '.result.file_path')
FILE="/tmp/$(date +%s)"
curl -s https://api.telegram.org/file/bot${BOT_API_KEY}/${FILE_PATH} > $FILE
COLORIZED_FILE="/tmp/$(date +%s)-colorized.jpg"
curl -s "https://smarty.mail.ru/api/v1/photo/improve?oauth_provider=m...{MCS_OAUTH_TOKEN}" \
-F file_0=@${FILE} -F meta='{"images":[{"name":"file_0"}], "mode":["improve"]}' |\
jq -r '.body.improve[0] | .colorized_improved // .colorized' | base64 --decode > $COLORIZED_FILE
curl -s \
https://api.telegram.org/bot${BOT_API_KEY}/sendPhoto \
-F "photo=@${COLORIZED_FILE}" \
-F "chat_id=${CHAT_ID}" > /dev/null
rm $FILE > /dev/null
rm $COLORIZED_FILE > /dev/null

Результат работы: 
Telegram бот без явного использования сервера Telegram, Бот, Программирование, Командная оболочка bash, Синтез речи, Колоризация, Видео, Длиннопост

Ещё пример колоризации:

Telegram бот без явного использования сервера Telegram, Бот, Программирование, Командная оболочка bash, Синтез речи, Колоризация, Видео, Длиннопост
Telegram бот без явного использования сервера Telegram, Бот, Программирование, Командная оболочка bash, Синтез речи, Колоризация, Видео, Длиннопост

Фотографии взяты из последних постов на пикабу по тегу черно-белое фото


P.S. Приведённый мной код хоть и работает, но представляет из себя определенную субстанция, так как в нём нет абсолютно никаких обработок ошибок и т.п. Единственное что есть - это проверка того что присланный файл это фотография, во втором боте.


P.S №2. Ссылки на ботов не оставляю так как использованные сервисы по синтезу речи и колоризации фотографий платные,  хоть и очень дешёвые. С тарифами можно ознакомится на соответствующих сайтах.  Кому любопытно попробовать синтез речи, на сайте https://cloud.yandex.ru/services/speechkit есть такая возможность.  А колоризация доступна на сайте: https://9may.mail.ru/restoration/ , но не уверен что используются одни и те же алогритмы.

Показать полностью 8 1
[моё] Telegram Бот Программирование Командная оболочка bash Синтез речи Колоризация Видео Длиннопост
3
DELETED
4 года назад
Скриншоты комментов

"Здраствуйте, это канал об аниме?"⁠⁠

"Здраствуйте, это канал об аниме?" Скриншот, Аниме, Командная оболочка bash, Комментарии на Пикабу

#comment_173814778

Показать полностью 1
Скриншот Аниме Командная оболочка bash Комментарии на Пикабу
13
DELETED
4 года назад

Добавление алиасов в Ubuntu⁠⁠

В файл .bash_profile добавляем строку по образцу:

alias emptytrash="rm -rf ~/.local/share/Trash/files/*"

Где emptytrash - имя алиаса.


В терминале:

source .bash_profile

Готово! Теперь после ввода emptytrash будет очищаться корзина.


Если вы используете zsh, то вместо .bash_profile - вносите изменения в .zshrc.

---
https://t.me/s/filimonovvadim

https://vk.com/filimonovvadim

[моё] Alias Ubuntu Linux Командная оболочка bash IT Программирование Линуксоиды Текст
11
59
Hulkmaster
Hulkmaster
5 лет назад
IT-юмор

Программисты, а как выглядит ваш скрипт начала работы?⁠⁠

Программисты, а как выглядит ваш скрипт начала работы? Командная оболочка bash, Программирование
Программисты, а как выглядит ваш скрипт начала работы? Командная оболочка bash, Программирование
[моё] Командная оболочка bash Программирование
12
0
defurniture
defurniture
5 лет назад
Программирование на python

Raspberry pi zero w и arduino⁠⁠

Вот думаю, почему бы не запилить какой нибудь +- глобальный проект используя  raspberry pi zero w с его возможностью использовать python для работы с  gpio пинами и arduino? Малинка может спокойно взять на себя большинство вычислений, а ардуинка будет просто посредником. Есть конечно платы использующие огрызок python похожий на версию для ms-dos но это не серьёзно. Даже уже примерно наметил первый проект: python скрипт потихоньку парсит маки клиентов в сети(Если так низя можно использовать костыль в виде bash скрипта который будет писать маки в файл), а при подключении, моего в данном случае, телефона - открывать дверь или включать пк.

PS Автору 9 лет и у него уже давно поплыли мозги и держатся только на костылях))

Python Командная оболочка bash Raspberry pi Arduino Текст
35
Посты не найдены
О Нас
О Пикабу
Контакты
Реклама
Сообщить об ошибке
Сообщить о нарушении законодательства
Отзывы и предложения
Новости Пикабу
RSS
Информация
Помощь
Кодекс Пикабу
Награды
Команда Пикабу
Бан-лист
Конфиденциальность
Правила соцсети
О рекомендациях
Наши проекты
Блоги
Работа
Промокоды
Игры
Скидки
Курсы
Зал славы
Mobile
Мобильное приложение
Партнёры
Промокоды Biggeek
Промокоды Маркет Деливери
Промокоды Яндекс Путешествия
Промокоды М.Видео
Промокоды в Ленте Онлайн
Промокоды Тефаль
Промокоды Сбермаркет
Промокоды Спортмастер
Постила
Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии