package handlers; import com.github.masahitojp.botan.Robot; import com.github.masahitojp.botan.handler.BotanMessageHandlers; import com.github.masahitojp.nineteen.Reviewer; import com.github.masahitojp.nineteen.Song; import com.github.masahitojp.nineteen.Token; import com.google.common.base.Strings; import java.util.Optional; import java.util.stream.Collectors; @SuppressWarnings("unused") public class JudgeSenryuHandlers implements BotanMessageHandlers { public final String toSenryuString(final Optional<Song> songOpt) { return songOpt.map(song -> song.getPhrases().stream() .map(list -> list.stream().map(Token::toString).collect(Collectors.joining())) .collect(Collectors.joining(" "))).orElse(""); } @Override public void register(final Robot robot) { robot.hear( "(?<body>.+)", "koko de ikku", message -> { final String body = message.getBody(); if (!Strings.isNullOrEmpty(body)) { final String result = toSenryuString(new Reviewer().find(body)); if(!Strings.isNullOrEmpty(result)) { message.reply("ここで一句: " + result); } } }); } }