Вернуться   Биткоин Форум > - Помощь начинающим
16 сентября 2013, 1:38:12 PM   # 1
 
 
Сообщения: 2
Цитировать по имени
цитировать ответ
по умолчанию Re: [Учебник] Написание бота для coinchat с помощью модуля НОГО coinchat-клиента

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Эй там люди,

Несколько недель назад я был спотыкаясь CoinChat и был отчасти впечатлен этим и быстро хотел написать бот для игры я имел в виду. Первый бот был сделан, и я боролся с таким количеством CoinChat вещей, что я решил написать модуль coinchat-клиент для облегчения повторного использования. Код для него можно найти либо на GitHub или установить с помощью NPM установить coinchat-клиент. Также, если у вас нет опыта написания JavaScript или еще не трогали ничего Node.js, этот учебник, вероятно, не для вас, и вы должны начать получать в этих двух темах.

Для этого урока мы собираемся создать бот, который позволяет монетку и в зависимости от результата, наклонить пользователь пользовательского количества. Если вы не работаете в системе на платформе Unix Я предлагаю вам запустить виртуальную машину с Linux на нем. Я предлагаю не просто копировать / вставить, но варьировать некоторые из вещей, которые я пишу, чтобы получить чувство для сруба.

Начиная

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

Код:
MkDir dicebot && кд dicebot
NPM установить coinchat-клиент

Она будет автоматически устанавливать все зависимости coinchat-клиент, и вы готовы пойти.

Подключение к и регистрации на CoinChat

Подключение к coinchat действительно не может быть проще. Во-первых, мы будем требовать библиотеку coinchat-клиента и создать новый экземпляр. Нам необходимо передать объект в coinchat-клиент, поэтому структура знает свои учетные данные (Примечание: Вы можете также установить полномочия на более позднем этапе). После того, как мы создали клиент, мы будем подключаться к серверу. Подключения метод принимает функцию обратного вызова, которая вызывается, когда мы успешно подключены к серверу. В функции обратного вызова, мы входа в систему с указанными учетными данными в начале, который снова принимает функцию обратного вызова, которая вызывается после успешного входа в систему.

Код:
вар CoinChatClient = требуется ( 'coinchat-клиент');
вар клиент = новый CoinChatClient ({
  Имя пользователя: 'Foo',
  Пароль: «бар»
});

console.log ( 'Подключение к coinchat ...');
client.connect (функция () {
  console.log ( 'Connected Вход в систему ....');
  client.login (функция () {
    console.log ("WooHoo! Мы вошли в систему!");
  });
});

Если теперь запустить точный код с учетными данными, вы получите исключение. Это, как ожидается, как учетная запись не зарегистрирована и или неверный пароль. Оба случая являются условием выхода, в котором код, как ожидается, не потому, что он, очевидно, не может работать в его текущем состоянии (Примечание: Вы можете использовать TRY / поймать вокруг него, но это действительно не имеет смысла). Изменение учетных данных для собственных единиц, и это должно дать вам все отладочные сообщения, таким образом показывая полное соединение.

Обработка сообщений

Рамки не было бы весело, если бы не иметь дело с сообщениями. В его нынешнем виде она абстрагирует все вшивые песчаные подробности и позволяет работать с сообщениями. Для этого экземпляр клиента предоставляет метод регистра. Она либо принимает функцию или объект, содержащий метод handleMessage для рассмотрения сообщений в стандартной форме, независимо, если они позволили цвета или нет. Давайте перейдем к деталям и улучшить наш пример немного. Во-первых, давайте определим функцию, которая должна выступать в качестве нашего обработчика сообщений.

Код:
Функция messageParser (MSG) {
  console.log ("Получено сообщение от "+ Msg.user +" в "+ Msg.room +" и первое слово, которое он сказал, было "+ Msg.params [0] +", Он получил "+ Msg.tip +"МВТС для этого.");
}

То, что это делает довольно легко. Он получает сообщение в качестве первого параметра и записывает сообщение отладки на консоль. Сейчас он не работает, хотя, потому что наш клиент еще не знает функцию. Давайте расширим первый пример кода и изменить его выглядеть следующим образом:

Код:
...
client.login (функция () {
  client.register (messageParser);
});
...

Теперь, каждое сообщение, которое отправляется получает нашу функцию messageParser и получает выводится в нашей командной строке. Ладно. Я врал. Это работает, но вы не увидите сообщение прямо сейчас, потому что вы еще не в любой комнате! Давайте исправим это до ...

Присоединение и выход номера

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

Код:
client.join ( 'Foobar')

и боты будут подключаться к комнате. Если сейчас написать сообщение там будет выводиться на консоль. Разве это не здорово? Какие? Вы хотите, чтобы ответить на эти сообщения? Бог вам, ребята, трудно удовлетворить ...

Запись сообщений

Поисковые системы имеют ограничения, когда дело доходит до написания сообщений, который, не отправить несколько сообщений меньше чем 550ms или бота будет заглушены. Рамки помогают вам в этом, что он имеет так называемое сообщение насос, который очереди и отправляет сообщения в интервале, таким образом, не становится приглушенным. Для этого есть 3 способа:

Код:
client.pushMessage (roomName, сообщение, [цвет]);
client.pushTip (roomName, имя пользователя, tipAmount, [сообщение]);
client.pushPrivateMessage (Username, сообщение);

Каждый из этих методов будет подталкивать новое сообщение в очередь сообщений, которое доставляется тогда. Давайте, попробовать его в функции MessageHandler мы писали ранее (Примечание: pushTip не работает, если ваш баланс бот ниже 0.25mBTC, как это минимальный размер наконечника).

Получая советы

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

Использование объекта для обработки сообщений

Теперь вы должны знать, большинство возможностей платформы, и мы собираемся расширить наш пример немного. Помните, раньше, когда я сказал, что вы могли бы использовать объект в качестве обработчика сообщений? Ну, теперь та часть, где мы будем использовать именно это. Давайте сначала определить, что наш бот должен быть в состоянии сделать. Если вы наберете! Катиться он должен бросить один 6 кубика и вывести сообщение. Если вы наберете! Катиться 20 он должен катиться 20 6 сторонними умереть, и если вы делаете! Рулет-20 он должен выбросить-20 кубик. В качестве администратора только особенность должна также иметь команду выключения для отключения от сервера. Позволяет начать писать бот в традиционном "OOP" Способ:

Код:
вар DiceBot = функция (клиент) {
  // сохранить локальный экземпляр клиента
  this.client = клиент;
  // ввести все имена администратора в нижнем регистре здесь
  this.admins = [ 'вашеимя']; // Сохранить все имена администратора здесь
  // это используется, чтобы сохранить наш баланс
  this.balance = 0;

  // Это должно содержать отображение ваших команд в нижнем регистре
  this.commands = {
    'Помощь!': This.printHelp,
    'Ролл!': This.rollDice
  };

  // Это хорошая практика, чтобы отделить администратор
  // команда из обычных команд, используя
  // другой префикс, так вот команда останова
  this.adminCommands = {
    '! #shutdown': this.shutdown
  };

  this.helpText = "Здесь идет ваш HelpText";
};

/ **
 * Выдать помощь, когда помощь! Получена пользователем
 * /
DiceBot.prototype.printHelp = функция (MSG) {
  this.client.pushMessage (msg.room, msg.user +": "+ This.helpText);
  вернуться ложным;
};

/ **
 * Это то, что вызывается нашим клиентом случай, когда
 * Зарегистрировав его с помощью client.register
 * /
DiceBot.prototype.handleMessage = функция (MSG) {
  // Первая позволяет проверить, если администратор написал
  вар админ = (this.admins.indexOf (msg.user.toLowerCase)! = -1)

  // Давайте посмотрим, если сообщение наконечник
  если (msg.isTip) {
    // нормально, мы не должны фактически сделать больше здесь, в этом случае
    this.balance = msg.tipAmount;
    this.client.pushMessage (msg.room, msg.user + ': Благодарим Вас за кончик Вашего вклад очень приветствуется.!');
    вернуться ложным;
  }

  // нормально, вот сложная часть. Мы проверяем первый параметр сообщения
  // и проверить, если у нас есть команда, есть. Если у нас есть тот, который мы называем это и
  // передать ему сообщение в качестве параметра.
  если (TypeOf this.commands [msg.params [0]] == 'функция') {
    вернуть this.commands [msg.params [0]] вызов (это, MSG).
  }

  // Тогда, наконец, мы делаем то же самое с командами администратора
  // если это админы печатая сообщение.
  если (администратора && TypeOf this.adminCommands [msg.params [0]] == 'функция') {
    вернуть this.adminCommands [msg.params [0]] вызов (это, MSG).
  }
};

/ **
 * Это проверяет параметры MSG и устанавливает значения по умолчанию, если что-то не дано.
 * /
DiceBot.prototype.rollDice = функция (MSG) {
  вар nrDice = Число (msg.params [1]) || 1,
      сторона = Число (msg.params [2]) || 6,
      валки = [];

  для (вар я = 0; я    rolls.push (1 + Math.Floor (Math.random () * стороны));
  }

  // Дайте пользователю его кости рулон
  this.client.pushMessage (msg.room, msg.user +": Вы прокатка "+ NrDice +"D"+ стороны +" и получил " + Rolls.reduce (функция (р, резюме) {возвращение р + резюме;}, 0) + ", "+ Rolls.join ( ''));
}

/ **
 * Это выключит бот
 * /
DiceBot.prototype.shutdown = функция (MSG) {
  console.log ( 'закрытие ..');
  process.exit ();
  вернуться ложным;
};

module.exports = DiceBot;

Уф, это было много кода, но вы должны это понимать. Часть вы должны заметить здесь, что мы определили метод handleMessage. Если зарегистрировать экземпляр бота он будет автоматически вызывать это сообщение. Сохраните этот файл в том же каталоге и назовите его "dicebot.js", Теперь, давайте интегрировать это в нашей предыдущей выборке.

Код:
вар CoinChatClient = требуется ( 'coinchat-клиент'),
    DiceBot = требуется (»./ dicebot.js'),
    клиент, боты;

клиент = новый CoinChatClient ({
  Имя пользователя: 'Foo',
  Пароль: «бар»
});

// создать новый экземпляр бота и передачу экземпляра клиента
// поэтому мы имеем доступ к методам толчка.
бот = новый DiceBot (клиент);

console.log ( 'Подключение ...');
client.connect (функция () {
  console.log ( 'Connected Вход в систему ....');
  client.login (функция () {
    console.log ( 'Помнить Присоединение номер ....');

    // теперь мы присоединяемся номер
    client.join ( 'throwingdice');

    // мы реализуем задержку
    SetTimeout (функция () {
      client.register (СЭП);
    }, 3000);
  });
});

Выполнив этот код с вашими учетными данными, и все должно работать. Если у вас есть вопросы, не стесняйтесь спросить. Если вы хотите добавить функции в рамках просто уронить запрос тянуть на GitHub и я объединить его. В учебнике также можно найти на GitHub в каталоге образцов.

Примечание: Если вы собираетесь обрабатывать остатки обязательно добавить в сохранение слоя, как MySQL или MongoDB. Потеря остатков пользователей является болью и вы можете получить запрещены.

Я надеюсь, что вам понравился этот небольшой учебник и написать некоторые качества роботов способствовать coinchat.

Ура,

Sargo Дарья
SargoDarya сейчас офлайн Пожаловаться на SargoDarya   Ответить с цитированием Мультицитирование сообщения от SargoDarya Быстрый ответ на сообщение SargoDarya


Как заработать Биткоины?
Без вложений. Не майнинг.


16 сентября 2013, 3:03:55 PM   # 2
 
 
Сообщения: 1204
Цитировать по имени
цитировать ответ
по умолчанию Re: [Учебник] Написание бота для coinchat с помощью модуля НОГО coinchat-клиента

Получил 1806 Биткоинов
Реальная история.





Спасибо, теперь нам нужно будет заполнить тупой каптч для общения. 
Anillos2 сейчас офлайн Пожаловаться на Anillos2   Ответить с цитированием Мультицитирование сообщения от Anillos2 Быстрый ответ на сообщение Anillos2

16 сентября 2013, 3:05:41 PM   # 3
 
 
Сообщения: 168
Цитировать по имени
цитировать ответ
по умолчанию Re: [Учебник] Написание бота для coinchat с помощью модуля НОГО coinchat-клиента

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

Хм? Боты разрешены, они не получают автоматические подсказки. Если Youre Botting без него называют что-нибудь с ботом в конце вы собираетесь быть запрещены довольно быстро.
roflmao129 сейчас офлайн Пожаловаться на roflmao129   Ответить с цитированием Мультицитирование сообщения от roflmao129 Быстрый ответ на сообщение roflmao129

16 сентября 2013, 6:39:51 PM   # 4
 
 
Сообщений: 57
Цитировать по имени
цитировать ответ
по умолчанию Re: [Учебник] Написание бота для coinchat с помощью модуля НОГО coinchat-клиента

Это очень приятно. Я написал учебник по изготовлению бота с нуля Вот но плохо быть уверены, что ссылку на этот пост тоже, так как это делает вещи намного проще! Действительно большая работа, так держать!
cainy393 сейчас офлайн Пожаловаться на cainy393   Ответить с цитированием Мультицитирование сообщения от cainy393 Быстрый ответ на сообщение cainy393

16 сентября 2013, 7:07:47 PM   # 5
 
 
Сообщения: 406
Цитировать по имени
цитировать ответ
по умолчанию Re: [Учебник] Написание бота для coinchat с помощью модуля НОГО coinchat-клиента

спасибо за эту очень полезную помощь и резьбовых приветствия
MoneyGod сейчас офлайн Пожаловаться на MoneyGod   Ответить с цитированием Мультицитирование сообщения от MoneyGod Быстрый ответ на сообщение MoneyGod

28 сентября 2013, 4:06:35 PM   # 6
 
 
Сообщений: 13
Цитировать по имени
цитировать ответ
по умолчанию Re: [Учебник] Написание бота для coinchat с помощью модуля НОГО coinchat-клиента

Спасибо за большую и чистую учебник.

С уважением,
дза
dezza сейчас офлайн Пожаловаться на dezza   Ответить с цитированием Мультицитирование сообщения от dezza Быстрый ответ на сообщение dezza

28 сентября 2013, 6:46:07 PM   # 7
 
 
Сообщений: 84
Цитировать по имени
цитировать ответ
по умолчанию Re: [Учебник] Написание бота для coinchat с помощью модуля НОГО coinchat-клиента

Хороший учебник
Anon135246 сейчас офлайн Пожаловаться на Anon135246   Ответить с цитированием Мультицитирование сообщения от Anon135246 Быстрый ответ на сообщение Anon135246

13 октября 2013, 7:24:55 AM   # 8
 
 
Сообщения: 910
Цитировать по имени
цитировать ответ
по умолчанию Re: [Учебник] Написание бота для coinchat с помощью модуля НОГО coinchat-клиента

Хороший учебник
согласовано
TradeFortress сейчас офлайн Пожаловаться на TradeFortress   Ответить с цитированием Мультицитирование сообщения от TradeFortress Быстрый ответ на сообщение TradeFortress

13 октября 2013, 8:31:19 AM   # 9
 
 
Сообщения: 112
Цитировать по имени
цитировать ответ
по умолчанию Re: [Учебник] Написание бота для coinchat с помощью модуля НОГО coinchat-клиента

спасибо, что нашли время, чтобы написать на учебник. я havnt начал еще, но я собираюсь в ближайшее время
Mondy сейчас офлайн Пожаловаться на Mondy   Ответить с цитированием Мультицитирование сообщения от Mondy Быстрый ответ на сообщение Mondy

13 октября 2013, 9:13:31 AM   # 10
 
 
Сообщения: 179
Цитировать по имени
цитировать ответ
по умолчанию Re: [Учебник] Написание бота для coinchat с помощью модуля НОГО coinchat-клиента

Спасибо за это, но я думаю, что это будет исправлено или что-то в течение нескольких недель
tautvilis сейчас офлайн Пожаловаться на tautvilis   Ответить с цитированием Мультицитирование сообщения от tautvilis Быстрый ответ на сообщение tautvilis

13 октября 2013, 9:34:40 AM   # 11
 
 
Сообщения: 420
Цитировать по имени
цитировать ответ
по умолчанию Re: [Учебник] Написание бота для coinchat с помощью модуля НОГО coinchat-клиента

Хороший учебник
согласовано

что работа этого бота на coinchat может вам некоторые объяснить
faiza1990 сейчас офлайн Пожаловаться на faiza1990   Ответить с цитированием Мультицитирование сообщения от faiza1990 Быстрый ответ на сообщение faiza1990

13 октября 2013, 2:06:49 PM   # 12
 
 
Сообщения: 1022
Цитировать по имени
цитировать ответ
по умолчанию Re: [Учебник] Написание бота для coinchat с помощью модуля НОГО coinchat-клиента

Для людей, только начинают это действительно хорошо сделано учебник. Спасибо, что нашли время, чтобы прокомментировать все шаги и укладку вещей так ясно.
galbros сейчас офлайн Пожаловаться на galbros   Ответить с цитированием Мультицитирование сообщения от galbros Быстрый ответ на сообщение galbros



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW