ruby - cinch irc bot - все после слова - PullRequest
0 голосов
/ 08 марта 2012

Плохой заголовок, но я не знаю, как его описать.

on :message, "\.addfact" do |m|
  open('facts.txt', 'a') { |f|
    f.print "\n *XXXXXX* ~ #{m.user.nick}"
  }
  m.reply "Fact added, #{m.user.nick}"
end

Обычно, когда кто-то в IRC-канале, на котором работает бот, делает это:

.addfact Это факт.Но он включает точки ... и смайлики =):)

маленький бот собирается добавить его в текстовый файл с форматированием

Этоеще один факт, но он на другой строке и был добавлен ранее =) ~ Cool_guy

Это факт, он включает в себя точки ... и смайлики =) :) ~ random_irc_user

У меня есть новая строка, и часть "random_irc_user" работает, но я понятия не имею, как сделать факт.Я предполагаю аргументы или подобное, но я не совсем уверен в них.

1 Ответ

3 голосов
/ 08 марта 2012

Используйте регулярное выражение и захватывайте все после вашей команды:

on :message, /^\.addfact (.+)/ do |m, fact|
  File.open('facts.txt', 'a') { |f| f.puts "#{fact} ~ #{m.user.nick}" }
  m.reply "Fact added!"
end
...