package com.juick.command; import com.juick.User; import com.juick.server.protocol.ProtocolListener; import com.juick.service.ShowQueriesService; import lombok.Getter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.List; import java.util.regex.Pattern; /** * @author ma1uta */ @Component @Getter public class Recommendations implements Command { private static final Pattern PATTERN = Pattern.compile("@", Pattern.CASE_INSENSITIVE); private final ShowQueriesService showQueriesService; @Autowired public Recommendations(ShowQueriesService showQueriesService) { this.showQueriesService = showQueriesService; } @Override public Pattern pattern() { return PATTERN; } @Override public String help() { return "@ - Show recommendations and popular personal blogs"; } @Override public String execute(User sender, ProtocolListener protocolListener, String command) { StringBuilder msg = new StringBuilder(); msg.append("Recommended blogs"); List recommendedUsers = getShowQueriesService().getRecommendedUsers(sender); if (recommendedUsers.size() > 0) { for (String user : recommendedUsers) { msg.append("\n@").append(user); } } else { msg.append("\nNo recommendations now. Subscribe to more blogs. ;)"); } msg.append("\n\nTop 10 personal blogs:"); List topUsers = getShowQueriesService().getTopUsers(); if (topUsers.size() > 0) { for (String user : topUsers) { msg.append("\n@").append(user); } } else { msg.append("\nNo top users. Empty DB? ;)"); } return msg.toString(); } }