Pull to refresh

Twitter бот на C#

Reading time 3 min
Views 8.2K


Здравствуйте, уважаемые пользователи Хабрахабра.
В этой статье я хочу рассказать вам об очень простом и полезном боте для Twitter, который поможет контролировать состояние Windows-сервера (Занятое место на дисках, процент загрузки CPU, RAM).

Предисловие


Я работаю системным администратором на одном консервном заводе. Так как фирма не профильная, приходится быть администратором и программистом в одном лице.
Причина создания этого бота — быстро заканчивающееся место на жестком диске сервера из-за ежедневных резервных копий баз 1С.
Я долго размышлял о возможных вариантах подобного контроля и пришёл к выводу, что Твиттер самое удобное решение для этого. Итак, от слова к делу.

Подготовка


Так как писать бота будем на C#, нам понадобится:
  1. Microsoft Visual Studio 2008-2010 любая редакция (или SharpDevelop 3.2 — 4.x)
  2. Библиотека Twitterizer для работы с Twitter в .NET Framework
  3. Немного терпения

Разработка


Скачиваем с сайта разработчика библиотеку и распаковываем её содержимое в каталог с нашим проектом. Нам нужны только два файла — Twitterizer2.dll и Newtonsoft.Json.dll. Добавим библиотеку Twitterizer в наш проект. Правая кнопка мыши по проекту -> Add Reference Выбираем вкладку «Browse» и указываем путь к Twitterizer2.dll.



Добавляем в код главной формы

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(); //Получаем процент загрузки процессора


В результате у нас получилось нечто подобное:


Оригинал

В окне настроек можно выбрать интервал обновления статуса (1, 10, 15, 30, 60 минут). В Твиттер будут отправляться данные, отмеченные галочками, в список ниже выводится дата и время отправки твита, статус отправки и количество символов в сообщении.

Заключение


В дальнейшем планируется реализовать следующие возможности:
  1. Отправка более подробной информации через Direct Message
  2. Управление ботом с помощью Direct Message и Mentinos
  3. Сохранение настроек
  4. Ведение логов

Вот возможности, которые будут реализованы в следующей версии бота.
Спасибо всем за внимание, надеюсь всем было интересно. Желаю творческих успехов!

Ссылки


Исходники программы
Сайт разработчика Twitterizer
Документация по Twitterizer на сайте разработчика
Tags:
Hubs:
+25
Comments 25
Comments Comments 25

Articles