SellerOfHorrors

SellerOfHorrors

// Контакты для связи // Telegram: @The_Seller_of_horrors E-mail: i@pmtkachev.pro
Пикабушник
Дата рождения: 31 июля
519 рейтинг 33 подписчика 8 подписок 13 постов 7 в горячем
Награды:
5 лет на Пикабу
1

GenEraser Bot. Добавление оплаты на примере ЮКасса

Доброго времени суток! Сегодня расскажу о боте, который создавал больше для себя, а также для тестирования оплаты в телеграм. GenEraser Bot - бот, который имеет две функции:

1. Удалять фон с изображений.

2. Генерировать изображение (на основе модели Kandinsky 3.0)

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

Начинаем с того, что выбираем платежную систему, через которую будем производить платежи и регистрируемся там. Я выбрал ЮКасса. Осуществляем обработку платежей в коде.

Бота пишу с использованием библиотеки pyTelegramBotAPI, для начала нам нужно создать счет на оплату, для этого я создал отдельную функцию send_invoice, в котором создается счёт.

main.py

GenEraser Bot. Добавление оплаты на примере ЮКасса Бот, Программирование, Python, Telegram бот, IT, Длиннопост

функция send_invoice()

в ней мы уже вызываем метод bot.send_invoice, который имеет такие параметры:

chat.id - id чата с текущим пользователем

title - название платежа

description - описание платежа

invoice_payload - payload платежа

provider_token -токен платёжной системы, покажу позже, как мы его получим

currency - валюта

prices - цена, где label - название, amount - цена, в самой маленькой единице валюты, например, у меня в копейках, так как валюта рубль

start_parameter - параметры платежа (произвольная строка)

Итак, когда пользователь подтвердит платёж, Telegram пришлёт вам webhook с Update, который содержит объект PreCheckoutQuery. На этот запрос нужно ответить в течение 10 секунд, вызвав метод answerPreCheckoutQuery. (Из документации ЮКасса).

main.py

GenEraser Bot. Добавление оплаты на примере ЮКасса Бот, Программирование, Python, Telegram бот, IT, Длиннопост

обработка запроса

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

main.py

GenEraser Bot. Добавление оплаты на примере ЮКасса Бот, Программирование, Python, Telegram бот, IT, Длиннопост

обработка успешного платежа

На этом моменте с кодом мы разобрались, теперь покажу, как получить токен для платежной системы.

Переходим в телеграм в @botfather. Там выбираем своего бота, кнопка "Payments":

GenEraser Bot. Добавление оплаты на примере ЮКасса Бот, Программирование, Python, Telegram бот, IT, Длиннопост

Нажимаем на кнопку

Выбираем нужную систему для оплаты, у меня это ЮКасса:

GenEraser Bot. Добавление оплаты на примере ЮКасса Бот, Программирование, Python, Telegram бот, IT, Длиннопост

ЮКасса

Коннектимся, если нужно протестировать систему, выбираем ТЕСТ, если уже есть готовый магазин на сервисе ЮКасса, то выбираем LIVE. Магазин должен работать по API в документации от ЮКасса это подробно описано.

GenEraser Bot. Добавление оплаты на примере ЮКасса Бот, Программирование, Python, Telegram бот, IT, Длиннопост

Дальше, вас перебросит в бота от ЮКассы, где вы должны дать доступ к своим данным. Даём доступ и возвращаемся в @BotFather, имеем тот самый платёжный токен.

GenEraser Bot. Добавление оплаты на примере ЮКасса Бот, Программирование, Python, Telegram бот, IT, Длиннопост

Токен

Как раз его нужно скопировать и вставить в наш код. На этом всё, всем хорошего кодинга, а я буду браться за свой новый пет-проект.

Следите за новостями, подписывайтесь на мой телеграм-канал. Заходите на мой сайт, там много интересного.

P.S. Кому интересно, бота можно глянуть по ссылке.

Код на GitFlic

Показать полностью 7
3

Inform Bot Обновление

Приветствую в своём блоге, сегодня я расскажу вам о своём небольшом проекте. Недавно я уже писал, про этого бота, это был первый проект такого плана. До этого я никогда раньше не писал ботов, поэтому этот проект, так называемая, "проба пера") В этом обновлении я добавил базу данных к боту, вместо файла json. Сейчас мы попробуем разобрать весь код подробнее.

Структура проекта:

-data/

- - - - -db.db

-.env

-bot.py

-btns.py

-db_tool.py

-parse_func.py

-requirements.txt

Немного расскажу о структуре проекта, имеем папку data/ в ней лежит файл базы данных db.db, БД использовал SQLite, она отлично подошла для такого небольшого проекта.

Файл .env содержит переменные окружения, там у нас записан токен бота, токен Open Weather Map и директория, из которой подтягивается БД.

Файл bot.py содержит основной код программы, btns.py - кнопки для бота решил поместить в отдельный файл, чтобы разгрузить основной.

Файл db_tool.py содержит функции для работы с базой данных, parse_func.py - функции парсинга данных.

Файл requirements.txt - зависимости.

Код

Теперь покажу немного кода. Весь код будет доступен по ссылке, здесь покажу только основные моменты.

bot.py

Inform Bot Обновление Python, Telegram бот, Программирование, Бот, Длиннопост
Inform Bot Обновление Python, Telegram бот, Программирование, Бот, Длиннопост

Функция для проверки событий в другом потоке

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

Inform Bot Обновление Python, Telegram бот, Программирование, Бот, Длиннопост

В коде есть замечание, я получаю текущее время и прибавляю к нему timedelta, это из-за часовых поясов, у меня на сервере -3 от Москвы.

Inform Bot Обновление Python, Telegram бот, Программирование, Бот, Длиннопост

Функция для получения значений, записанных в БД и отправка пользователю

Inform Bot Обновление Python, Telegram бот, Программирование, Бот, Длиннопост

Запускаем бота и поток с проверкой времени

Inform Bot Обновление Python, Telegram бот, Программирование, Бот, Длиннопост

Обрабатываем команду /start

Дальше идёт обработка текстовых сообщений пользователя, а именно какие кнопки были нажаты

Inform Bot Обновление Python, Telegram бот, Программирование, Бот, Длиннопост

для примера кнопка настроек

Inform Bot Обновление Python, Telegram бот, Программирование, Бот, Длиннопост

Запускаем бесконечную прослушку бота

С основными моментами в файле bot.py, вроде всё.

btns.py

Inform Bot Обновление Python, Telegram бот, Программирование, Бот, Длиннопост

Кнопки в отдельном файле

Больше всего было интересно работать с БД, написал функции для работы с ней.

db_tool.py

Inform Bot Обновление Python, Telegram бот, Программирование, Бот, Длиннопост

Вот пример функции для получения значений по chat_id пользователя

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

Про парсинг писать особо нечего, ибо там все просто, кому интересно, можете глянуть код на GitFlic.

Пишите, что было бы интересно ещё добавить в сводку, а также предлагайте, что можно улучшить в коде.

P.S. Вы знали, что у нас есть российский аналог GitHub? Я не знал, а теперь знаю, так что проекты буду там свои выкладывать отныне. Поддержим российского производителя))

P.P.S. Подписывайтесь на мой телеграм канал. Попробовать бота: @pytginform_bot.

Показать полностью 10
1

BlackBerry Passport в 2025. Часть 2

Всем привет! Сегодня мы поговорим немного о том, как чувствует себя BB Passport в 2025 году. Сразу ответим себе на вопрос, а возможно ли? Как основным вряд-ли, как вторым вполне. Но если Вы неискушенный пользователь, и нужно Вам только позвонить и проверить почту, то да сможете использовать его как основной девайс.

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

Автономность

Начну, пожалуй с основного фактора для меня, это то, сколько держит заряд девайс. При моём использовании девайса хватает на 3 световых дня, что очень неплохой показатель для батареи в 3400 mAh. Но тут ремарка, чаще всего у меня телефон лежит в режиме ожидания, пару-тройку раз в день проверяю почту и открываю телеграм. Главный минус это скорость зарядки, заряжается сабж очень медленно, почти 3 часа, что для меня не очень удобно, приходится ставить телефон на зарядку на ночь, сейчас мне это непривычно, мой Samsung за час заряжается, к слову.

BlackBerry Passport в 2025. Часть 2 Blackberry Passport, Blackberry, Мобильные телефоны, Смартфон, Ретротехника, Ретро-обзор, Длиннопост

Автономность

Внешний вид

Думаю, если говорить о внешнем виде, то тут будет субъективно. Мне Passport очень нравится, выглядит он необычно и до сих пор современно. Клавиатура 3 ряда, скорее минус, так как привычнее обычная qwerty, а к этой приходится немного привыкать. Да он широкий, но не высокий и спокойно помещается в карман, не смотря на габариты.

BlackBerry Passport в 2025. Часть 2 Blackberry Passport, Blackberry, Мобильные телефоны, Смартфон, Ретротехника, Ретро-обзор, Длиннопост

BlackBerry Passport

Приложения

Количество приложений очень ограниченное для 2025 года. Очень много нужных приложений нет, спасает в некоторых случаях поддержка андроид приложений версии до 4.3. Для общения есть Telegram X и Kate Mobile (VK). Вк не ставил, поэтому не могу сказать, как оно работает. Телеграм работает нормально, да есть подвисания, но пользоваться можно. Браузер стоит moz://a какой-то очень старой версии, что-то по-быстрому нагуглить можно, но большинство сайтов открывает либо очень долго, либо вообще не открывает. Для навигации можно использовать приложение Magic Earth, работает вполне неплохо, маршрут построить можно и даже по нему проехать (испытано). В общем всё, не густо, конечно, но имеем, что имеем.

BlackBerry Passport в 2025. Часть 2 Blackberry Passport, Blackberry, Мобильные телефоны, Смартфон, Ретротехника, Ретро-обзор, Длиннопост

Magic Earth

Еще немного фишек

Про удобство печати, здесь спорно, но скорее это из-за разметки клавиатуры. Она, кстати, имеет сенсорный слой, проведя по ней можно и экран листать и указатель при наборе текста удобно двигать. На самом деле возможностей при наборе очень много, про все и не вспомнишь. Еще понравилось, как реализован графический пароль, раньше я такого нигде не видел.

BlackBerry Passport в 2025. Часть 2 Blackberry Passport, Blackberry, Мобильные телефоны, Смартфон, Ретротехника, Ретро-обзор, Длиннопост

Графический пароль

Что по итогу: девайс очень крутой и необычный, но в современных реалиях ему, конечно, очень тяжело, поэтому сейчас собираю на BlackBerry KeyONE он уже на Android 8, там хоть как-то можно жить, хотелось бы, конечно KEY2, но он стоит как самолет. Спасибо!

P.S. Если есть конкретный вопрос, задавайте в комментариях.

P.P.S. Подписывайтесь на мой канал в телеграм, я выкладываю там интересные посты с моего сайта.

Показать полностью 4
10

BlackBerry Passport - назад в 2014. Часть 1

Дорого времени суток! Сегодня у нас распаковка восстановленного BlackBerry Passport с одного известного китайского магазина. Предлагаю вам отправиться с этой распаковкой в 2014 год.

BlackBerry Passport - назад в 2014. Часть 1 Blackberry Passport, Blackberry, Распаковка, Длиннопост

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

BlackBerry Passport - назад в 2014. Часть 1 Blackberry Passport, Blackberry, Распаковка, Длиннопост

На момент заказа, это был самый дешёвый вариант, дешевле, чем у перепуков с одной известной площадки объявлений. Искал на многих торговых площадках, в итоге цена составила 8500р.

BlackBerry Passport - назад в 2014. Часть 1 Blackberry Passport, Blackberry, Распаковка, Длиннопост

Считаю, что на сегодня это адекватная цена, если думаете иначе, попробуйте посмотреть на известной площадке объявлений.

BlackBerry Passport - назад в 2014. Часть 1 Blackberry Passport, Blackberry, Распаковка, Длиннопост

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

BlackBerry Passport - назад в 2014. Часть 1 Blackberry Passport, Blackberry, Распаковка, Длиннопост
BlackBerry Passport - назад в 2014. Часть 1 Blackberry Passport, Blackberry, Распаковка, Длиннопост

Ребёнок оценил и вы оцените 😉

BlackBerry Passport - назад в 2014. Часть 1 Blackberry Passport, Blackberry, Распаковка, Длиннопост
Показать полностью 6
2

Как я телеграм-бота писал

*** ДИСКЛЕЙМЕР ***
Весь код написан лично мной, без, как это сейчас модно, чат гпт и прочих конструкторов!

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

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

Данного бота было достаточно, чтобы пощупать весь процесс создания.

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

С какими проблемами я столкнулся:

во-первых, мне нужно было, чтобы любой пользователь мог пользоваться ботом, и за каждым пользователем сохранялись определённые настройки бота. Было решение создать базу данных, но подумал, что не так уж и много данных у меня, чтобы базу подключать. Выбрал json файл. Решено.

Как я телеграм-бота писал Telegram, Бот, Программирование, Python

Так мы открываем импровизированную БД

Как я телеграм-бота писал Telegram, Бот, Программирование, Python

Так сохраняем, если были изменения

Во-вторых, а это было самое сложное для меня, отправка уведомлений по времени, каждому пользователю. Здесь пришлось подумать, есть библиотека "schedule" она позволяет выполнять определённую функцию в определённое время.

Как я телеграм-бота писал Telegram, Бот, Программирование, Python

Так мы заставляем каждую минуту запускать функцию. Запуск в отдельном потоке.

Написал функцию, которая сверяет текущее время и время, которые установили себе пользователи, если есть совпадения отправляет настроенное сообщение. Решено.

Как я телеграм-бота писал Telegram, Бот, Программирование, Python

Функция проверки времени.

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

Вот ссылка на первую версию бота, кому интересно, можно глянуть весь код там. Второю версия пока не выкладывал.

P.S. Бот функционирует. Доступен в поиске телеграм по: @pytginform_bot

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

Показать полностью 3
34

Santa Run 2023 - Python 3.10 + Pygame 2.1

Два года назад от нечего делать решил создать игру. Это было перед новым 2021 годом, поэтому и тематика была новогодняя, и игра очень простая. Вы играете за Санту и собираете подарочки. При этом скорость постоянно увеличивается, дабы добавить немного сложности)

Что-то очень сложное и качественное на python очень сложно написать, но для простеньких игр можно побаловаться.

Так вот в 2021 году игра выглядела так:


Но мы сейчас не о ней. Как это модно сейчас, я выпустил ремейк) Немного поправил код, накатил нормальный графоний. Получилось лучше. В целом, были проблемы, которые решались довольно быстро, но это мелочи.

Ремейк 2023 года:


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

Код на GitHub

Показать полностью 1
24

TMNT Fight NES переработка меню и коллизии

Всех приветствую! Надолго я пропал и ничего не выкладывал, обстоятельства так сложились. Почти не занимался игрой, было много дел. Я женился)) Поздравления принимаются)


Кароч, дела разобрал, стало полегче. Можно и покодить. Честно, не сразу разобрался в своем коде спустя пару месяцев)


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


Не нравится громоздкость кода и его нелаконичность, но после завершения проекта займусь именно красотой кода. Сейчас делаю по принципу работает и ладно)

Вот видосик по классике:

Код на GitHub

Отличная работа, все прочитано!