Отлов ошибок шаблона, с моментальным оповещением в телеграм.

backoff

Client
Регистрация
20.04.2015
Сообщения
3 565
Благодарностей
2 488
Баллы
113
Для кого этот шаблон?
Хорошо подойдет для новичков, а так же для старичков. Отлов ошибок он можно сказать вечный.

В это шаблоне будут разобраны части:
  • как поймать ошибку
  • как ее обработать / записать
  • как оповестить себя об этом
Поехали.

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

Выглядит он так:
1.jpg


Первый кубик шарпа получает ошибку инстанса и записывает ее в переменную - action_errors
Код:
//Получить ошибку из-за которой выполнение шаблона остановилось
var error = project.GetLastError();
var tmp = "";
if(error != null)
    tmp = string.Format("ActionComment: {0}.\r\nActionGroupId: {1}.\r\nActionId: {2}\r\n--------------------------------------------------------", error.ActionComment, error.ActionGroupId, error.ActionId);
return tmp;
Сохранение ошибки происходит в корневую папку проекта, где лежит сам шаблон (путь можно поменять) в текстовый файл - actions_errors.txt

{-Variable.login-} - Записывается логин на котором произошла ошибка. Так как я пользуюсь большой базой аккаунтов к разным сайтам, и логины всегда разные, очень удобно использовать именно логин.
{-TimeNow.Date-} - эта переменная отвечает за время, она указывает когда точно ошибка возникла
{-Variable.action_errors-} - это список данных об ошибке инстанса

Как выглядит инфа об ошибке с тексте:

Код:
marmarisDood
02/16/2018 18:05:22
ActionComment: Конструктор действий, тип RiseEvent.
ActionGroupId: 93a06fc7-2ff2-43e1-9a3e-408ba7cfb117.
ActionId: ec7ffdac-a4ec-4488-9a87-df27cf5c1de5
--------------------------------------------------------
из ошибки нам становится понятно, что:
  1. на каком логине ошибка произошла
  2. в какое время
  3. при каком действии (в основном это "click")
  4. в какой группе кубиков (не важная инфа)
  5. в каком кубике (самая важная инфа)
Делаем визуализацию, чтобы визуально понятно было где и на каком шаге произошла ошибка, и что при этом было на экране. Делаем скрин экрана, и записываем под названием логина, так как логин уникален.

(на одном скрине показаны настройки данного кубика, по созданию скриншота ошибки)

4.jpg



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

2.jpg


Мы удаляем строку из базы данных по логину, так как логины у нас не повторяются и имеют уникальные значения.

Следующий шаг - это полная перезапись строки, в которой мы записываем много информации, но в конце добавляем в столбец status с пометкой errore

Готово, база перезаписана. Теперь надо оповестить же об этом.
Теперь начинается самое интересное и очень полезное.

Чтобы сделать оповещение, надо сделать своего бота, создать свой канал, добавить бота и посылать команды какие нужно.

1. регаем бота!
пишем в поиске botfather выбираем ответ где есть галочка - это официальный бот! Он нам и нужен

3.jpg


Подумал, что нет смысла делать кучу скринов о том, как создать телеграм бота и телеграм канал, этого материала достаточно на ютубе.

понравилось данное видео

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

telega_send.jpg


сам запрос на постинг:
Код:
https://api.telegram.org/TOKEN_bot/[email protected]ВашIDКанала&text=тут ваш текст

пример:
https://api.telegram.org/bot373546537:AAGKerfDFHFGHFGGDGERWERTWERGWERGER/[email protected]&text=тут ваш текст
  1. копируем токен для бота
  2. указываем id вашего чата
  3. добавляем переменную с текстом
Выглядеть будет так
telega_vid.jpg

Вы можете настроить абсолютно как угодно свои оповещения.
У меня настроено так:
[ Название шаблона ] Действие Описание

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

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

Как пример:
У меня есть шаблон который ходит по партнеркам и парсит профит и/или баланс, тоже удобно, оповещения в реальном времени о статусе баланса/вывода и тп.

PS \ я не смог добавить бота админом в приватный канал, сделал следующее, создал паблик канал, добавил бота админом, перевел канал из паблика в приватный.

PS \ логику создания шаба брал по кусочкам с этого форума. Спасибо всем, что делитесь информацией и помогаете друг другу.


АПГРЕЙД ТЕМЫ для опции с телеграмом
в процессе обсуждения найден более простой вариант отправки сообщения, на прямую от бота, а не через канал.
 
Категория
Полезно

Вложения

Для запуска проектов требуется программа ZennoPoster.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...

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

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

novichok

Client
Регистрация
17.04.2016
Сообщения
169
Благодарностей
59
Баллы
28
Интересно
 

SHELBY

Client
Регистрация
09.09.2016
Сообщения
242
Благодарностей
272
Баллы
63
Очень годно, с телегой вообще класс...спасибо! :az:
 

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 795
Благодарностей
3 452
Баллы
113
А возможность слать скриншот страницы то есть (когда произошла ошибка)? А то как-то я не понял этот момент)
 

backoff

Client
Регистрация
20.04.2015
Сообщения
3 565
Благодарностей
2 488
Баллы
113
А возможность слать скриншот страницы
в смысле высылать скрин в телеграм? я реализовал только оповещение текстовое

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

Но всегда можно доработать
 
  • Спасибо
Реакции: TIIGR и Gulid

AZANIR

Client
Регистрация
09.06.2014
Сообщения
376
Благодарностей
171
Баллы
43
чтобы высылать картинку, я так и не осилил этот момент в апи телеги, но можно выслать картинку урлом, она тогда нормально будет отображаться в телеге, но перед этим ее надо куда-то закачать.
пост запросом картинку постить в имгур , и уже ссылку кидать вместе с текстом в телегу , пойду докручу )
 
  • Спасибо
Реакции: R3re

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 795
Благодарностей
3 452
Баллы
113
пост запросом картинку постить в имгур , и уже ссылку кидать вместе с текстом в телегу , пойду докручу )
Да кошернее же прям в телегу картинку и отправлять через API )
 

AZANIR

Client
Регистрация
09.06.2014
Сообщения
376
Благодарностей
171
Баллы
43
ну я апи телеги не смотрел , возможно счас и это докручу , так реально круче будет.
 

Bas

Client
Регистрация
15.12.2013
Сообщения
360
Благодарностей
124
Баллы
43
PS \ я не смог добавить бота админом в приватный канал, сделал следующее, создал паблик канал, добавил бота админом, перевел канал из паблика в приватный.
Немного по другому у себя это реализовал: берете не id канала, а id чата с Вашим ботом. И в него шлете. Как итог, только Вы будете получать сообщения от бота, независимо, сколько людей добавит бота к себе в контакты - писать будет только Вам. Выглядит это примерно так:
 

Juniorcpa

Client
Регистрация
27.05.2014
Сообщения
1 622
Благодарностей
811
Баллы
113
Немного по другому у себя это реализовал: берете не id канала, а id чата с Вашим ботом. И в него шлете. Как итог, только Вы будете получать сообщения от бота, независимо, сколько людей добавит бота к себе в контакты - писать будет только Вам. Выглядит это примерно так:
Давно такую фишку в регистратор аккаунтов Вконтакте внедрил, чтоб он готовые акки слал дополнительно в телегу :-)
 

Dima_External

Пользователь
Регистрация
23.10.2017
Сообщения
75
Благодарностей
2
Баллы
8
спасибо, обязательно внедрю, удобно
 

ibred

Administrator
Команда форума
Регистрация
04.04.2015
Сообщения
3 222
Благодарностей
2 591
Баллы
113
А почему скрин через CaptchaSaver.dll, если для этого есть специальный кубик обработки изображения? :-)
Старая привычка или есть ощутимая разница?
 

rooter

Новичок
Регистрация
25.06.2014
Сообщения
5
Благодарностей
5
Баллы
3
Вау, просто супер, отличное решение, вот прям то что надо было. Есть шаблоны, которые вечно ошибки выдают и за неименеем, пока, нужных знаний, не могу решить вопрос с этим. Теперь думаю "отлов" будет более качественный. За телеграм отдельный плюс. Спасибо за труды.
 
  • Спасибо
Реакции: backoff

backoff

Client
Регистрация
20.04.2015
Сообщения
3 565
Благодарностей
2 488
Баллы
113
Вау, просто супер, отличное решение, вот прям то что надо было. Есть шаблоны, которые вечно ошибки выдают и за неименеем, пока, нужных знаний, не могу решить вопрос с этим. Теперь думаю "отлов" будет более качественный. За телеграм отдельный плюс. Спасибо за труды.
рад что пригодилось :ay:
 
  • Спасибо
Реакции: TIIGR и Gulid

AZANIR

Client
Регистрация
09.06.2014
Сообщения
376
Благодарностей
171
Баллы
43
А почему скрин через CaptchaSaver.dll, если для этого есть специальный кубик обработки изображения? :-)
Старая привычка или есть ощутимая разница?
когда было придуманно , был походу только капча сейвер.
 

backoff

Client
Регистрация
20.04.2015
Сообщения
3 565
Благодарностей
2 488
Баллы
113
Я просто даже и не знал, что сейчас под это дело есть отдельный кубик, хоть и последняя версия стоит :-)
Где он находится хоть, поделитесь
 
  • Спасибо
Реакции: TIIGR и Gulid

Dima_External

Пользователь
Регистрация
23.10.2017
Сообщения
75
Благодарностей
2
Баллы
8
рад что пригодилось :ay:
Не совсем понял один момент.

Нужно создавать группу или канал?
И затем как создал "группу или канал", то в него уже добавляем бота и берем id чата?
Если да, то как правильно получить id чата, получаю всегда такой ответ {"ok":false,"error_code":400,"description":"Bad Request: chat not found"}
 

Dima_External

Пользователь
Регистрация
23.10.2017
Сообщения
75
Благодарностей
2
Баллы
8
Разобрался:-)

https://api.telegram.org/TOKEN_bot/[email protected]ВашIDКанала&text=тут ваш текст
@ВашIDКанала - название чата.

А если вы хотите указать id чата, то тут немного иначе.
Чтобы поулчить это значение идем сюда:
https://api.telegram.org/bot<token>/getUpdates

Получаем значение нужного нам чата "id" и кладем все это в запрос.
В данном случае это будет выглядеть так:
https://api.telegram.org/TOKEN_bot/sendMessage?chat_id=IDКанала&text=тут ваш текст
 
  • Спасибо
Реакции: Hannes

AZANIR

Client
Регистрация
09.06.2014
Сообщения
376
Благодарностей
171
Баллы
43
Может кому пригодиться всё тоже самое но правда работу с БД не добавлял так как там индивидуально , + 2 варианта сохранения скриншота сами подправите что лучше всё в 1 сниппете и удобно

Код:
//Получить ошибку из-за которой выполнение шаблона остановилось
var error = project.GetLastError();
var action_errors = "";
if(error != null)
    action_errors = string.Format("ActionComment: {0}.\r\nActionGroupId: {1}.\r\nActionId: {2}\r\n--------------------------------------------------------", error.ActionComment, error.ActionGroupId, error.ActionId);

project.Variables["action_errors"].Value = action_errors;

//Присваиваем переменной путь к файлу
string strFilePath = project.Directory + @"\actions_errors.txt";
//В файле на этот момент находится текст. Чтобы текст дописывался с новой строки - используем Environment.NewLine
File.AppendAllText(strFilePath,
        project.Variables["login"].Value + Environment.NewLine +
        DateTime.Now.ToString("MM-dd-yyyy_hh-mm-ss") + Environment.NewLine +
        action_errors + Environment.NewLine);

// сохраняем скриншот 1й вариант
string recognition = ZennoPoster.CaptchaRecognition("CaptchaSaver.dll",
        instance.ActiveTab.FindElementByAttribute("body", "tagname", "body", "regexp", 0).DrawToBitmap(false).DrawToBitmap(false),
        project.Path + "error\\" + project.Variables["login"].Value + ".jpg");

// сохраняем скриншот 2й вариант закомментируйте или раскоментируйте вариант сохранения скриншота
//File.WriteAllBytes(project.Path + "error\\" + project.Variables["login"].Value + ".jpg", Convert.FromBase64String(instance.ActiveTab.FindElementByTag("html", 0).DrawToBitmap(false)));

//постим в телегу сообщение
string resultGet = ZennoPoster.HttpGet(
        "https://api.telegram.org/bot373546537:AAGKerfDFHFGHFGGDGERWERTWERGWERGER/[email protected]&text=тут ваш текст",
        "", "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly);
 
  • Спасибо
Реакции: kagorec и one

backoff

Client
Регистрация
20.04.2015
Сообщения
3 565
Благодарностей
2 488
Баллы
113
Я тут немного посмотрел примеры и подумал, что лучше на прямую общаться с ботом, как было написано выше, чтобы не заморачиваться с каналами и прочим...
1. Делаем бота
2. ищем инфо бота - @get_id_bot
3. начинаем с ни чат, жмем start
4. пишем ему /my_id или он сам автоматом выдаст вам инфу

этот чат id подставляете и у вас получается сообщение напрямую с ботом без каналов и групп

https://api.telegram.org/ваш бот id/sendMessage?chat_id=ChatID БЕЗ знака @&text=[Шаблон

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

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 441
Благодарностей
1 773
Баллы
113
Я конечно извиняюсь, только в чем смысл этой темы, если есть уже давно эта - http://zennolab.com/discussion/threads/oshibki-v-shabax-naxodim-i-reshaem-ix-v-2-raza-bystree.19930/
Тут только телегу добавили, но сама идея уже давно описана другим человеком...Таким образом можно брать соседскую тему и публиковать под собой...
 

yriy158

Client
Регистрация
10.08.2013
Сообщения
472
Благодарностей
282
Баллы
63
Я конечно извиняюсь, только в чем смысл этой темы, если есть уже давно эта - http://zennolab.com/discussion/threads/oshibki-v-shabax-naxodim-i-reshaem-ix-v-2-raza-bystree.19930/
Тут только телегу добавили, но сама идея уже давно описана другим человеком...Таким образом можно брать соседскую тему и публиковать под собой...
Лично мне понравилась идея с этим шабом, понятно расписано + прикручена телега, с котороя я раньше вообще не работал.
Ну а кроме того все темы проходят премодерацию, так что вопросы тут только к тем кто делал премодерацию могут возникать, но никак не к автору. имхо.
 

kagorec

Client
Регистрация
24.08.2013
Сообщения
617
Благодарностей
281
Баллы
63
Интересная идея, масштабируемая до безграничности фантазии.:ay:

backoff ничего личного :-) :
Напоминает одного участника конкурсов который рерайтил старые конкурсные статьи и вики программы - в профите несколько тем в конкурсе и призоваые места.)))
 

backoff

Client
Регистрация
20.04.2015
Сообщения
3 565
Благодарностей
2 488
Баллы
113
только в чем смысл этой темы
я и не отрицаю ничего и не претендую на авторство, я так и написал в PS в старт посте
PS \ логику создания шаба брал по кусочкам с этого форума. Спасибо всем, что делитесь информацией и помогаете друг другу.
я лишь упростил некоторые моменты, добавил своих и вуаля, хороший апгрейд для функционала, я сам этим пользуюсь во всех шабах, проверено временем, система работает без сбоев.
добавил телеграм, с которым разбирался в свое время очень долго и тратил время, а теперь просто выкладываю решение для масс в пользование.
ну не хотите - не пользуйтесь, не хотите не голосуйте - ваше право
я лишь поделился своей логикой и наработками, ну а если есть еще и конкурс, то в двойне приятно.

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

backoff ничего личного :-) :
Напоминает одного участника конкурсов который рерайтил старые конкурсные статьи и вики программы - в профите несколько тем в конкурсе и призоваые места.)))
ну я отличаюсь тем, что не рерайчу, а пишу то что есть и тем чем пользуюсь.

а так как конкурсы устраиваются в основном для привлечения новичков, то и максимально просто стараюсь донести свою инфу, что, как по мне, только привлекает внимание, что соответственно выгодно разработчикам. и все довольны - самое главное
 
  • Спасибо
Реакции: TIIGR, Gulid и kagorec

tatarin

Client
Регистрация
28.10.2012
Сообщения
760
Благодарностей
120
Баллы
43
Я тут немного посмотрел примеры и подумал, что лучше на прямую общаться с ботом, как было написано выше, чтобы не заморачиваться с каналами и прочим...
1. Делаем бота
2. ищем инфо бота - @get_id_bot
3. начинаем с ни чат, жмем start
4. пишем ему /my_id или он сам автоматом выдаст вам инфу

этот чат id подставляете и у вас получается сообщение напрямую с ботом без каналов и групп




Не получаеться у меня почему то, выдает {"ok":false,"error_code":404,"description":"Not Found"}!
 

tatarin

Client
Регистрация
28.10.2012
Сообщения
760
Благодарностей
120
Баллы
43
Все именно так и делал по видео! Возможно я пост запрос неправильно составил https://api.telegram.org/ваш бот id/sendMessage?chat_id=тут ChatID из get_id_bot&text=Тут текст

"ваш бот ид" это из botfather токен правильно? Я как только не пробывал уже, все равно {"ok":false,"error_code":404,"description":"Not Found"}
 

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