Popular Tags:

Как написать telegram бота на C#

26.11.2017 at 21:03

Первое, что нужно сделать — это зарегистрировать своего бота и получить токен для доступа к API. Сделать это очень просто с помощью официального бота @botfather.

Бота создали, токен получили, можно писать код. Сначала нужно добавить враппер telegram api.

dotnet add package Telegram.Bot

Создадим инстанс клиента апи и получим имя нашего бота

TelegramBotClient botClient = new TelegramBotClient("<token>");
var me = botClient.GetMeAsync().Result;
Console.WriteLine(me.Username);

Особенность ботов в телеграмме: они не могут писать первыми. read more

Чтение RSS на C#

21.11.2017 at 21:45

Для чтения RSS на C# есть несколько способов. Традиционный — классы из пространства имен System.ServiceModel.Syndication.
Другим способ является использование библиотеки CodeHollow.FeedReader. Плюсы этой библиотеки:

  • работает под .Net Core, а значит можно использовать на линуксе. В том числе и на любом VPS.
  • умеет искать на странице ссылки на RSS фиды

При чтении RSS нужно определять, какие записи новые, а какие нет. read more

Простой бэкенд для игры

20.11.2017 at 08:43

Часто при разработке игры требуется сделать серверную часть. Сегодня я покажу как просто и быстро можно это сделать на примере хранения таблицы рекордов.
Использовать буду .net core 2.0 потому, что с одной стороны это позволяет писать на C#, с другой код можно запустить на любой дешевой виртуалке.

В качестве фреймворка я буду использовать NancyFx. read more

Полезности №2

13.11.2017 at 18:00

Human eye viewing data on virtual screen — Biometrics concept

Изменение дефолтной версии node в nvm

nvm alias default v6.9.1

apt-get install без необходимости вводить подтверждение

apt-get install package-name --yes

универсальный вариант:

yes | apt-get install package-name

yes — это утилита, которая бесконечно выводит y

Запуск дартиума так, чтобы после ошибки не терялось содержимое консоли

--enable-logging --v=1 --checked

Флаг —checked здесь не обязателен, но очень полезен для отладки Dart кода read more

Программное создание приватного прокси

31.10.2017 at 08:09

Я уже рассказывал о том, как можно создать приватный прокси. У таких прокси только один существенный недостаток — необходимость ручных действий. Так что я решил этот процесс автоматизировть.
К счастью Digital Ocean предоставляет удобное API для управления дроплетами.

Создание SSH ключей

Для подключения к виртуалке и настройки прокси сервера потребуются SSH ключи. read more

Создание приватного прокси

16.10.2017 at 13:58

Часто прокси нужен на 10-15 минут или нужно передать через прокси конфеденциальные данные. В таких ситуациях желательно иметь свой личный прокси. Покупать так называемые «приватные» прокси я не рекомендую потому что это кот в мешке и вы никогда не узнаете скольким людям продали тот же прокси. Я в таких случаях быстро создаю прокси на VPS а после использования удаляю. read more

Использование proxy в selenium

14.10.2017 at 10:15

Я уже писал о парсинге сайтов с помощью библиотеки selenium. Иногда бывает нужно использовать прокси при парсинге. Сделать это не трудно:

var proxy = new Proxy();
proxy.HttpProxy = "<ip>:<port>";
var options = new ChromeOptions();
options.Proxy = proxy;
IWebDriver driver = new ChromeDriver(options);

для socks прокси с логином и паролем настройка будет выглядеть так:

var proxy = new Proxy();
proxy.SocksProxy = "<ip>:<port>";
proxy.SocksUserName = "<login>";
proxy.SocksPassword = "<password>";
var options = new ChromeOptions();
options.Proxy = proxy;
IWebDriver driver = new ChromeDriver(options);

Самое главное: никогда не передавайте через прокси важные данные, если это не ваш прокси! read more

Использование прокси на C#

13.10.2017 at 13:51

Часто при парсинге данных можно столкнуться с защитой от парсинга. Чаще всего сервер банит IP адрес с которого идет слишком много запросов. Для обхода такой защиты нужно использовать proxy.

Ранее я уже писал о парсинге сайтов с помощью создания WebRequest. Добавить к нему прокси очень просто:

static void AddProxy(HttpWebRequest request) {
    var proxy = new WebProxy(proxyip, proxyport);            
    request.Proxy = proxy;
}

Некоторые прокси могут требовать авторизации по логину и паролю. read more

Переопределение урла сервера из конфига в asp.net core 2.0

05.10.2017 at 21:32

Для того, чтобы переопределить урл в коде, нужно в метод BuildWebHost добавить строку

.UseUrls("http://localhost:60000", "http://localhost:60001")

UseUrls это метод расширения, который выглядит так:

public static IWebHostBuilder UseUrls(this IWebHostBuilder hostBuilder, params string[] urls)
{
    if (urls == null)
    {
        throw new ArgumentNullException(nameof(urls));
    }

    return hostBuilder.UseSetting(WebHostDefaults.ServerUrlsKey, 
        string.Join(ServerUrlsSeparator, urls));
}

т.е. на самом деле он устанавливает настройку с названием WebHostDefaults.ServerUrlsKey, записывая туда урлы, разделенные ServerUrlsSeparator. read more

Легковесная встраиваемая база данных LiteDB

04.10.2017 at 20:57


Я часто пишу небольшие домашние проекты и постоянно приходится решать проблему хранения данных. Полноценный сервер БД это слишком сложно для такого проекта, а сериализация в файлы требует слишком много сил. На помощь приходят различные встраиваемые БД. Сегодня посмотрим на одну из них — LiteDB.

Авторы рекомендуют базу для небольших десктоп приложений и веб сервисов. read more