diff options
Diffstat (limited to 'juick-commands/src/main/java/com/juick/command/ShowTags.java')
-rw-r--r-- | juick-commands/src/main/java/com/juick/command/ShowTags.java | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/juick-commands/src/main/java/com/juick/command/ShowTags.java b/juick-commands/src/main/java/com/juick/command/ShowTags.java new file mode 100644 index 00000000..186919ad --- /dev/null +++ b/juick-commands/src/main/java/com/juick/command/ShowTags.java @@ -0,0 +1,48 @@ +package com.juick.command; + +import com.juick.User; +import com.juick.server.helpers.TagStats; +import com.juick.server.protocol.ProtocolListener; +import com.juick.service.TagService; +import lombok.Getter; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +/** + * @author ma1uta + */ +@Component +@Getter +public class ShowTags implements Command { + + private static final Pattern PATTERN = Pattern.compile("\\*", Pattern.CASE_INSENSITIVE); + + private final TagService tagService; + + @Autowired + public ShowTags(TagService tagService) { + this.tagService = tagService; + } + + @Override + public Pattern pattern() { + return PATTERN; + } + + @Override + public String help() { + return "* - Show your tags"; + } + + @Override + public String execute(User sender, ProtocolListener protocolListener, String command) { + List<TagStats> tags = getTagService().getUserTagStats(sender.getUid()); + return "Your tags: (tag - messages)\n" + + tags.stream() + .map(t -> String.format("\n*%s - %d", t.getTag().getName(), t.getUsageCount())).collect(Collectors.joining()); + } +} |