Внедрение Python в шаблон Zennoposter + Шаблон "Парсинг Tg с отложенной публикацией в Vk по API"

Регистрация
23.03.2015
Сообщения
1 246
Благодарностей
801
Баллы
113
131481


Здравы буде, бояре!

Тему, как было бы здорово если бы Zennoposter поддерживал Python, неоднократно обсуждали на форуме. Но, к сожалению, поддержки "из коробки" пока нет. А зачем «нам из коробки»? мы же Зеноводы, нам подойдут и костыли! Вот про эти костыли и пойдёт речь.
Тем более, с текущим уровнем развития искусственного интеллекта, это можно сделать довольно легко без особых навыков.

О чём это я

В данной статье мы с вами рассмотрим, как вынести часть логики шаблона в скрипт на Python конвертировав его в консольную программу.

А конкретнее:
  • Написание нужного python кода с помощью ИИ
  • Доработка python кода для работы с ключами с помощью ИИ
  • Компиляция python кода в exe файл
  • Внедрение нашего кода в логику шаблона (Запуск как консольной программы)
Данная статья не является особо технической. Я не буду подробно рассказывать как вручную редактировать код, чтобы переменная принимала значение из флага. 90% действий с кодом будет делать нейросеть. Так что справиться даже новичок. Но чем лучше вы понимаете структуру кода, тем проще вам будет.

Сразу к делу

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

Для начала нам нужен скрипт на Python. Подойдёт практически любой скрипт. Вы можете написать его сами, скачать в интернете или написать при помощи искусственного интеллекта. Лучше брать небольшие клочки кода, которые выполняют определённую задачу: обрезка видео, обработка изображения, принятие почты и многое, многое другое.

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

К сожалению, я не обладаю достаточными знаниями Python чтобы написать подобный код самостоятельно (точнее, могу написать, но очень медленно), поэтому за меня это сделала нейросеть Deepseek.
промт выглядел следующим образом:

Ты программист на python c опытом 15 лет

Давай напишем парсер телеграмм каналов на пайтон с использованием библиотеки Телетон.
Алгоритм.
1- Проверка авторизации.
1.1 если авторизация слетела или нет файла сессии, авторизируемся с помощью номера телефона и кода из приложения. сохраняем сессию
2- Выводи уведомление о успешной авторизации
3- Переходим в целевую группу для парсинга. id канала "-1002145717737"
4- Парсим посты за последние 7 дней
4.1- в посте обязательно должен быть текст и картинка или текст и видео или текст и видео и картинка. Максимум 1 видео на пост.
4.2- id спаршеных постов записывать в текстовый файл с именем формата:"blackList_id Канала.txt". Перед запуском скрипта проверять существование файла и создавать в случае отсутствия.
4.3- фото и видео скачивать в папку "download". Перед запуском скрипта проверять существование папки и создавать в случае отсутствия.
4.4- фото и видео сохранять в формате "тип файла-номер_id канала.расширение". Пример:"img-1_1002145717737.jpg, img-2_1002145717737.jpg, img-3_1002145717737.jpg, video-1_1002145717737.mp4, video-2_1002145717737.mp4 и т.д."
4.5- Результаты парсинга класть в excel таблицу. столбец A - дата публикации поста, B - текст поста, C - относительный путь до медиа контента1(фото или видео) на диске, D - относительный путь до медиа контента2(фото или видео) на диске и т.д.
Дополнение: используй свой опыт и сделай обработку возможных ошибок. Информацию о ключевых выводи в лог. Игнорируй рекламные посты
.


Дальше проверяем скрипт на работоспособность и в случае проблем или неточностей просим нейросеть его поправить.
Для работы с Python я использую редактор PyCharm. Если вы ни разу с ним не работали, не расстраивайтесь, в видео я покажу как с ним работать.

После того как вы добились стабильной работы скрипта, нужно сделать так, чтобы Зинаида Павловна могла передавать переменные в наш пайтон скрипт. Поэтому нам надо сделать так, чтобы пайтон принимал в виде ключей те переменные, которые мы хотим ему передавать из Zennoposter.
В нашем примере я буду передавать в скрипт: Telegram ID API, hashAPI и ID группы для парсинга. Поэтому я попрошу нейросеть переделать наш скрип так, чтобы он принимал значения этих примененных в виде входных ключей.

Мой запрос выглядел следующим образом:
Переделай код на python так чтобы значение переменных API_ID, API_HASH, CHANNEL_ID передавались из флагов при запуске скрипта
Обновляем код в PyCharm и проверяем работу:

python main.py --channel-id -1002145717737 --api-id YOUR_API_ID --api-hash YOUR_API_HASH
131240

После того как мы убедились в корректности работы нам нужно компилировать наш скрипт в exe файл. Для этого нам понадобится библиотека «pyinstaller». Установить её можно следующей командой: pip install pyinstaller
131241


После установки библиотеки нужно выполнить команду: pyinstaller --onefile main.py
131242


По завершению в папке с нашим проектом появится папка «dist», где и будет наш main.exe файл. Этот файл мы будем запускать как консольное приложение в нашем шаблоне Zennoposter.

Теперь переходим в ProjectMaker и в нашем шаблоне создаём кубик «Запустить консольное приложение». В качестве приложения выбираем наш exe файл, в качестве параметров передаём нужные нам ключи.
131243


После выполнения нашего кубика мы с помощью обработки текста убеждаемся. что скрипт закончил работу успешно.
По результатам работы нашего примера у нас получилось таблица с текстом постов и путями к медиафайлам. Дальше мы совсем этим можем поступать по своему усмотрению. В данном примере мы будем публиковать отложенные посты в группе ВК. Работать будем с помощью Vk API

Алгоритм действий:
  • Получаем дату, когда будет опубликован последний запланированный пост
  • Прибавляем к этой дате 3 часа
  • Берём из таблицы данные для поста
  • Планируем пост.
  • И так по кругу
В публикации отложенных постов в Вк через API есть нюанс, отсутствует отложенная публикация видео. То есть, если вы планируете пост с видео и загружаете это видео, то видео становится доступно в момент загрузки.

Полезные ссылки:
ИИ Deepseek тут
Pycharm тут
Получение Telegram API ID / Hash тут

Видео


альтернативная ссылка
 

Вложения

Последнее редактирование:

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 874
Благодарностей
2 588
Баллы
113
здорово если бы Zennoposter поддерживал Python
Да, зенно по-умолчанию не может все поддерживать.
Мне бы пригодилось, чтобы он мог Go поддерживать с коробки - можно было бы запросы отправлять с http/2 и подменой tls например без лишних костылей!

Спасибо за статью!

Я правильно понимаю, что Python для реализации нужен потому, что нейронные сети на нем лучше код пишут?
Или есть какие-то другие особенности?
Просто может не внимательно прочитал материал...
 
  • Спасибо
Реакции: KolkaPetkinSyn

TommyTuta

Client
Регистрация
02.10.2022
Сообщения
146
Благодарностей
61
Баллы
28
Мне бы пригодилось, чтобы он мог Go поддерживать с коробки - можно было бы запросы отправлять с http/2 и подменой tls например без лишних костылей!
питона бы хватило)

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

Вот например: https://github.com/thedemons/opentele

Не один раз питон, просто наличием библиотек, значительно облегчал мне жизнь.
 
  • Спасибо
Реакции: KolkaPetkinSyn

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 874
Благодарностей
2 588
Баллы
113
питона бы хватило)
Кому-то - да, а кому-то хочется большего :-)
Последний раз когда мне нужно было подписывать транзакции на Solana, то уж очень захотелось иметь nodejs.
Я говорю о тому, что сам Зеннопостер не может всё в себе вместить - мир технологий большой.
Нужно просто адаптироваться и научить Зеннопостер общаться с другими языками программирования, посредством каких-то API или баз данных например.
 
  • Спасибо
Реакции: KolkaPetkinSyn

TommyTuta

Client
Регистрация
02.10.2022
Сообщения
146
Благодарностей
61
Баллы
28
Кому-то - да, а кому-то хочется большего :-)
Последний раз когда мне нужно было подписывать транзакции на Solana, то уж очень захотелось иметь nodejs.
Я говорю о тому, что сам Зеннопостер не может всё в себе вместить - мир технологий большой.
Нужно просто адаптироваться и научить Зеннопостер общаться с другими языками программирования, посредством каких-то API или баз данных например.
Да как будто питон - самый универсальный язык.

Ну на нем буквальное, если не всё, то многое есть.

С соланой я тоже на нем кстати работал, тогда я к PAWS создавал и привязывал solana кошелек. (при привязке там тоже подписать мессагу нужно было)

А еще на питоне удобно капчу простенькую гадать с OpenCv.
Работа с PSD.
Телеграмм боты.
Неофициальные либы для автоматизации Instagram, Twitter, Discord и прочие менее популярные ресурсы. (deepk, duck.ai и пр)

Короче много всего, я просто не понимаю, чего можно хотеть большего чего нет в питоне)
 
  • Спасибо
Реакции: KolkaPetkinSyn

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 874
Благодарностей
2 588
Баллы
113
Ну на нем буквальное, если не всё, то многое есть.
Из-за этого многие просто делают обычные консольки на нем, и дёргают их с помощью Зенно.
Хотя, не всегда удобно, особенно когда понятно как решить проблему в самом Зенно без дополнительного пайтона или чего-то ещё.
 
  • Спасибо
Реакции: KolkaPetkinSyn и TommyTuta
Регистрация
23.03.2015
Сообщения
1 246
Благодарностей
801
Баллы
113
Я правильно понимаю, что Python для реализации нужен потому, что нейронные сети на нем лучше код пишут?
Частично. С одной стороны я питоном не владею и одновременно генерирую код нейронками и учусь. А как вы заметили, нейронки особенно хорошо работают с пайтон. Особых нюансов не заметил, да и сильно опыта, только несколько проектов реализовал.
С другой стороны, на Python есть библиотеки под любые задачи. И язык довольно понятный
 
  • Спасибо
Реакции: BAZAg

volody00

Client
Регистрация
06.09.2016
Сообщения
970
Благодарностей
1 065
Баллы
93
Подскажите пожалуйста как вы получали ключ доступа к API vk.

И если можно скиньте ещё исходник exe ?
 
Последнее редактирование:
  • Спасибо
Реакции: KolkaPetkinSyn

onni

Client
Регистрация
27.01.2015
Сообщения
28
Благодарностей
3
Баллы
3
Я весь код питона с перменными zenno закидываю в экшн текста. Сохраняю текст как пайтон файл во время работы шаблоны. Потом тупо дергаю через bat )
 
  • Спасибо
Реакции: KolkaPetkinSyn

Lest

Client
Регистрация
20.03.2020
Сообщения
86
Благодарностей
87
Баллы
18
Пришла моя очередь до;-) до конкурсной статьи. Зачем делать конкурсную статью, которая учит не лучшему способу? Тем более на форуме уже есть топовое решение, до него использовал батники. А компилировать exe, потом искать этот файл, по моему худший способ. Переменные передавать через вставку в пайтон скрипте sys.argv
 

Вложения

volody00

Client
Регистрация
06.09.2016
Сообщения
970
Благодарностей
1 065
Баллы
93
Пришла моя очередь до;-) до конкурсной статьи. Зачем делать конкурсную статью, которая учит не лучшему способу? Тем более на форуме уже есть топовое решение, до него использовал батники. А компилировать exe, потом искать этот файл, по моему худший способ. Переменные передавать через вставку в пайтон скрипте sys.argv
Это решение не будет работать, если не установлен python и все необходимые библиотеки (автор в видео это объяснил). С exe таких проблем не будет. Так что не надо тут выпендриваться
 
  • Спасибо
Реакции: KolkaPetkinSyn

Lest

Client
Регистрация
20.03.2020
Сообщения
86
Благодарностей
87
Баллы
18
Это решение не будет работать, если не установлен python и все необходимые библиотеки (автор в видео это объяснил). С exe таких проблем не будет. Так что не надо тут выпендриваться
Писать код на пайтоне и не скачать пайтон*HAHA*
 
  • Спасибо
Реакции: KolkaPetkinSyn

volody00

Client
Регистрация
06.09.2016
Сообщения
970
Благодарностей
1 065
Баллы
93
  • Спасибо
Реакции: KolkaPetkinSyn

Lest

Client
Регистрация
20.03.2020
Сообщения
86
Благодарностей
87
Баллы
18
  • Спасибо
Реакции: KolkaPetkinSyn

volody00

Client
Регистрация
06.09.2016
Сообщения
970
Благодарностей
1 065
Баллы
93
ну хотя бы потому, что не каждый клиент захочет всё это устанавливать. Также далеко не каждый клиент даст доступ к своему серверу (пк). Лишняя возня. Хотя дело вкуса конечно. Просто вы как-то слишком категорично высказались, будто правильно только так, как вы скинули, а всё остальное не имеет право на жизнь.
 
  • Спасибо
Реакции: KolkaPetkinSyn

Lest

Client
Регистрация
20.03.2020
Сообщения
86
Благодарностей
87
Баллы
18
ну хотя бы потому, что не каждый клиент захочет всё это устанавливать. Также далеко не каждый клиент даст доступ к своему серверу (пк). Лишняя возня. Хотя дело вкуса конечно. Просто вы как-то слишком категорично высказались, будто правильно только так, как вы скинули, а всё остальное не имеет право на жизнь.
Нужна статья, которая опишет все способы взаимодействия с пайтоном из зенки.
 
  • Спасибо
Реакции: KolkaPetkinSyn

volody00

Client
Регистрация
06.09.2016
Сообщения
970
Благодарностей
1 065
Баллы
93
Нужна статья, которая опишет все способы взаимодействия с пайтоном из зенки.
хорошая статья и понравилась она не только мне. если тебе не зашло - пройди ты мимо, нахрен ты настроение человеку портишь. Раз модерация пропустила, значит полезно. Лайки ставят, значит полезно
 
  • Спасибо
Реакции: KolkaPetkinSyn и kul0n
Регистрация
23.03.2015
Сообщения
1 246
Благодарностей
801
Баллы
113
Подскажите пожалуйста как вы получали ключ доступа к API vk.

И если можно скиньте ещё исходник exe ?
Информация полно в интернете. Как пример:
 
Регистрация
23.03.2015
Сообщения
1 246
Благодарностей
801
Баллы
113
Я весь код питона с перменными zenno закидываю в экшн текста. Сохраняю текст как пайтон файл во время работы шаблоны. Потом тупо дергаю через bat )
Главное преимущество - это мобильность. Мне нужно чтобы был установлен Python на компьютер. Это удобно для передачи клиенту
 
Регистрация
23.03.2015
Сообщения
1 246
Благодарностей
801
Баллы
113
хорошая статья и понравилась она не только мне. если тебе не зашло - пройди ты мимо, нахрен ты настроение человеку портишь. Раз модерация пропустила, значит полезно. Лайки ставят, значит полезно
Спасибо за поддержку!
 
Регистрация
23.03.2015
Сообщения
1 246
Благодарностей
801
Баллы
113
Нужна статья, которая опишет все способы взаимодействия с пайтоном из зенки.
Если вы напишите такую статью, я с удовольствием и прочту и проголосую за неё.
 

volody00

Client
Регистрация
06.09.2016
Сообщения
970
Благодарностей
1 065
Баллы
93
Информация полно в интернете. Как пример:
Там всё сильно поменялось, без бутылки не разберешься. Ладно, всё равно спасибо, статья всё-таки не о vk api. Как-нибудь может покопаюсь
 
Регистрация
23.03.2015
Сообщения
1 246
Благодарностей
801
Баллы
113
Там всё сильно поменялось, без бутылки не разберешься. Ладно, всё равно спасибо, статья всё-таки не о vk api. Как-нибудь может покопаюсь
Напиши в Telegram, Попробуем разобраться без бутылки
 
  • Спасибо
Реакции: volody00

Lest

Client
Регистрация
20.03.2020
Сообщения
86
Благодарностей
87
Баллы
18
Если вы напишите такую статью, я с удовольствием и прочту и проголосую за неё.
Прости, что вчера накинулся, не в настроении был) Да и не объяснил главный минус этого способа. Писать статью - мне лень, да и тут не так много текста выходит для статьи. Давай раз уж так пошло, опишу каждый способ здесь в двух предложениях.

1) Использовать твой способ с exe
Плюсы: не надо устанавливать питон себе на сервак.
Минусы: I) захотелось тебе чуть чуть подправить код, надо компилировать по новой, возиться с этим файлом II) некоторые клиенты заочкуют, что это за exe файл ты им даёшь, фиг проверишь что в нём. А пайтон код они могут скормить нейронке и узнать нет ли там нежелательного.
2) Использовать два файла: py и bat, через который будет запускаться py
Плюсы: лишены минусов прошлого способа
Минусы: I) иметь для каждого скрипта ещё один файл II) писать для каждого скрипта в but файле путь к этому скрипту (один раз прописал и забыл) III) установка пайтона IV) не помню как там обстоят дела с передачей переменной из скрипта в зенно, возможно придётся использовать ещё txt файл посредник в который будет записываться переменная, но это не точно))
3) Использовать просто py файл, запуск отличается от прошлого просто чуть другой строкой в запуске программы, гляньте пример что я скидывал выше. Там и запуск через c#, но я его не тестил. Батники, такой же костыль как и exe, как не хуже, просто, что не надо заново компилить каждый раз после изменения скрипта. Просто на форуме часто его советуют, хотя проще напрямую открывать py.
Плюсы: I) Не надо компелировать после изменения скрипта II) простота передачи переменных III) прозрачность для клиентов
Минусы: надо иметь установленный python
 
  • Спасибо
Реакции: KolkaPetkinSyn

spbalexpiter

Client
Регистрация
24.11.2013
Сообщения
432
Благодарностей
116
Баллы
43
Если мне надо поменять скрипт exe, как это сделать? Как exe вернуть в py?
 
Регистрация
23.03.2015
Сообщения
1 246
Благодарностей
801
Баллы
113
Кому надо, здесь можно получить токен вк без приложения: https://vkhost.github.io/
 
Регистрация
23.03.2015
Сообщения
1 246
Благодарностей
801
Баллы
113
Если мне надо поменять скрипт exe, как это сделать? Как exe вернуть в py?
Если имеете ввиду мой exe, то не как. Если свой, то просто компилируйте новый код из Pythyon в exe и запускаете в шаблоне
 

AntonBust

Client
Регистрация
27.03.2025
Сообщения
6
Благодарностей
1
Баллы
3
Скажу сразу я не особо шарю за питон и exe файлы(
Я правильно понял что немного подкрутив промт можно и прокси подкинуть в качестве флага? И всё это великолепие запустить в многопотоке с разными прокси? Вопрос не конкретно по парсингу тг, а если например другой шаблон делать

Как это дело переживает многопоток? Есть ли ограничения кроме железа?
 
  • Спасибо
Реакции: KolkaPetkinSyn
Регистрация
23.03.2015
Сообщения
1 246
Благодарностей
801
Баллы
113
Скажу сразу я не особо шарю за питон и exe файлы(
Я правильно понял что немного подкрутив промт можно и прокси подкинуть в качестве флага? И всё это великолепие запустить в многопотоке с разными прокси? Вопрос не конкретно по парсингу тг, а если например другой шаблон делать

Как это дело переживает многопоток? Есть ли ограничения кроме железа?
Прокси, однозначно да.
Многопоток, вот тут не уверен. Если подобный моему exe запускать в многопоток не знаю какой будет результат, не пробовал. Но сам скрип на питоне можно сделать с внутренним много потоком и тогда да. Запускаешь шаблон в один поток, флагами передаёшь пути до списка в прокси и прочего, а питон уже шпарит во многопотоке. Но тут уже нужно будет заморочиться с кодом питона и возникает вопрос, зачем зп?
 

AntonBust

Client
Регистрация
27.03.2025
Сообщения
6
Благодарностей
1
Баллы
3
Но тут уже нужно будет заморочиться с кодом питона и возникает вопрос, зачем зп?
Да
Поэтому я задавался вопросом может ли exeшник переживать многопоток? Причем я имел ввиду не 100 потоков, а хотябы 20-30
В теории никаких проблем быть не должно. Может тут есть люди которые уже тестировали подобные шаблоны+питон? Уж простите мне мою лень это проверить)))
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)