![](https://habrastorage.org/getpro/habr/post_images/eb7/cb4/089/eb7cb4089edcfffd4ab9359e4ff3603f.jpg)
Здравствуйте, уважаемые пользователи Хабрахабра.
В этой статье я хочу рассказать вам об очень простом и полезном боте для Twitter, который поможет контролировать состояние Windows-сервера (Занятое место на дисках, процент загрузки CPU, RAM).
Предисловие
Я работаю системным администратором на одном консервном заводе. Так как фирма не профильная, приходится быть администратором и программистом в одном лице.
Причина создания этого бота — быстро заканчивающееся место на жестком диске сервера из-за ежедневных резервных копий баз 1С.
Я долго размышлял о возможных вариантах подобного контроля и пришёл к выводу, что Твиттер самое удобное решение для этого. Итак, от слова к делу.
Подготовка
Так как писать бота будем на C#, нам понадобится:
- Microsoft Visual Studio 2008-2010 любая редакция (или SharpDevelop 3.2 — 4.x)
- Библиотека Twitterizer для работы с Twitter в .NET Framework
- Немного терпения
Разработка
Скачиваем с сайта разработчика библиотеку и распаковываем её содержимое в каталог с нашим проектом. Нам нужны только два файла — Twitterizer2.dll и Newtonsoft.Json.dll. Добавим библиотеку Twitterizer в наш проект. Правая кнопка мыши по проекту -> Add Reference Выбираем вкладку «Browse» и указываем путь к Twitterizer2.dll.
![](https://habrastorage.org/getpro/habr/post_images/296/ab1/079/296ab1079336d1d6a73cb2c2dca758d4.jpg)
Добавляем в код главной формы
using Twitterizer;
Теперь можно перейти непосредственно к работе с Твиттером.
Зарегистрируем наше приложение. Об этом хорошо написал thevar1able в своей статье о Python боте.
Нам будут нужны 4 ключа: Consumer key, Consumer secret, Access token и Access token secret.
Все действия сводятся к отправке нужной нам информации в виде твита.
private bool SendTwit(string Twit)
{
OAuthTokens tokens = new OAuthTokens(); // Создаём объект класса
tokens.ConsumerKey = "xAWDWV5YE1F5gz3pHw"; //Ввводим Consumer Key
//Вводим Consumer Secret
tokens.ConsumerSecret = "iSoQ5lYl24BolEdjTte0wnPN4KX9WuGGzJgJivg";
//Вводим AccessToken
tokens.AccessToken = "370065603-6mRJ8vNHb6tFCKKQhQNxkVR0uy7kK7dFbt2UN";
//Вводим Access Token Secret
tokens.AccessTokenSecret = "zYT39d8K8SQEm7OxUt1BUCpIZi0VixKElb9go0w";
//Отправляем сообщение в твиттер
TwitterResponse<TwitterStatus> tweetResponse = TwitterStatus.Update(tokens, Twit );
if (tweetResponse.Result == RequestResult.Success) //Проверка отправки
{
return true; //Сообщение отправилось
}
else
{
return false; //Сообщение не отправилось
}
}
Информацию о процессоре и оперативной памяти можно получить с помощью класса PerformanceCounter, который находится в пространстве имён System.Diagnostics.
private PerformanceCounter cpuCounter; //Создаём объекты для чтения данных о процессоре
private PerformanceCounter ramCounter; //и оперативной памяти
cpuCounter = new PerformanceCounter(); //Инициализируем
// Добавляем счетчик производительности ОЗУ
ramCounter = new PerformanceCounter("Memory","Available MBytes");
cpuCounter.CategoryName = "Processor"; //Добавляем
cpuCounter.CounterName = "% Processor Time"; //счетчик производительности
cpuCounter.InstanceName = "_Total"; //процессора
float RAMFree ramCounter.NextValue(); //Получаем количество ОЗУ в мегабайтах
float CPULoad ramCounter.NextValue(); //Получаем процент загрузки процессора
В результате у нас получилось нечто подобное:
![](https://habrastorage.org/getpro/habr/post_images/565/98c/7d5/56598c7d5e13816a4e7ed849086d4c24.jpg)
Оригинал
В окне настроек можно выбрать интервал обновления статуса (1, 10, 15, 30, 60 минут). В Твиттер будут отправляться данные, отмеченные галочками, в список ниже выводится дата и время отправки твита, статус отправки и количество символов в сообщении.
Заключение
В дальнейшем планируется реализовать следующие возможности:
- Отправка более подробной информации через Direct Message
- Управление ботом с помощью Direct Message и Mentinos
- Сохранение настроек
- Ведение логов
Вот возможности, которые будут реализованы в следующей версии бота.
Спасибо всем за внимание, надеюсь всем было интересно. Желаю творческих успехов!
Ссылки
Исходники программы
Сайт разработчика Twitterizer
Документация по Twitterizer на сайте разработчика