aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/juick/server/TopManager.java
diff options
context:
space:
mode:
authorGravatar Vitaly Takmazov2020-04-04 01:15:01 +0300
committerGravatar Vitaly Takmazov2020-04-04 01:15:01 +0300
commita608baeed738894433aacfa041e2617f60ce959f (patch)
tree1e0de7056417ff0833ae3d4600de9fec6eb81631 /src/main/java/com/juick/server/TopManager.java
parent7a2f89266c8f6337e4e81a2fd8488e0f80f4f9bd (diff)
Initialize all components from configuration
Diffstat (limited to 'src/main/java/com/juick/server/TopManager.java')
-rw-r--r--src/main/java/com/juick/server/TopManager.java73
1 files changed, 0 insertions, 73 deletions
diff --git a/src/main/java/com/juick/server/TopManager.java b/src/main/java/com/juick/server/TopManager.java
deleted file mode 100644
index 15abb6cc..00000000
--- a/src/main/java/com/juick/server/TopManager.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (C) 2008-2019, Juick
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-package com.juick.server;
-
-import com.juick.model.Message;
-import com.juick.model.Tag;
-import com.juick.model.User;
-import com.juick.www.api.SystemActivity;
-import com.juick.service.MessagesService;
-import com.juick.service.UserService;
-import com.juick.service.component.SystemEvent;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.ApplicationEventPublisher;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.PostConstruct;
-import javax.inject.Inject;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-
-@Component
-public class TopManager {
- private static Logger logger = LoggerFactory.getLogger(TopManager.class);
- @Inject
- private MessagesService messagesService;
- @Inject
- private UserService userService;
- @Inject
- private ApplicationEventPublisher applicationEventPublisher;
-
- @Value("${service_user:juick}")
- private String serviceUsername;
-
- private User serviceUser;
-
- @PostConstruct
- public void init() {
- serviceUser = userService.getUserByName(serviceUsername);
- }
-
- @Scheduled(fixedRate = 3600000)
- public void updateTop() {
- messagesService.getPopularCandidates().forEach(m -> {
- Message jmsg = messagesService.getMessage(m).orElseThrow(IllegalStateException::new);
- logger.info("added {} to popular", m);
- messagesService.setMessagePopular(m, 1);
- List<String> tags = jmsg.getTags().stream().map(Tag::getName).map(String::toLowerCase).collect(Collectors.toList());
- if (!tags.contains("juick")) {
- applicationEventPublisher.publishEvent(new SystemEvent(this,
- SystemActivity.like(serviceUser, jmsg, Collections.emptyList())));
- }
- });
- }
-}