aboutsummaryrefslogtreecommitdiff
path: root/juick-api/src
diff options
context:
space:
mode:
Diffstat (limited to 'juick-api/src')
-rw-r--r--juick-api/src/main/java/com/juick/api/TopManager.java21
1 files changed, 21 insertions, 0 deletions
diff --git a/juick-api/src/main/java/com/juick/api/TopManager.java b/juick-api/src/main/java/com/juick/api/TopManager.java
index ddf8e092..cfbea9a2 100644
--- a/juick-api/src/main/java/com/juick/api/TopManager.java
+++ b/juick-api/src/main/java/com/juick/api/TopManager.java
@@ -17,12 +17,19 @@
package com.juick.api;
+import com.juick.Message;
import com.juick.service.MessagesService;
+import com.juick.util.MessageUtils;
+import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.social.facebook.api.Facebook;
+import org.springframework.social.facebook.api.impl.FacebookTemplate;
import org.springframework.stereotype.Component;
+import javax.annotation.PostConstruct;
import javax.inject.Inject;
@Component
@@ -30,12 +37,26 @@ public class TopManager {
private static Logger logger = LoggerFactory.getLogger(TopManager.class);
@Inject
private MessagesService messagesService;
+ @Value("${facebook_appid}")
+ private String FACEBOOK_APPID;
+ @Value("${facebook_secret}")
+ private String FACEBOOK_SECRET;
+
+ private Facebook facebookTemplate;
+
+ @PostConstruct
+ public void init() {
+ facebookTemplate = new FacebookTemplate(String.format("%s|%s", FACEBOOK_APPID, FACEBOOK_SECRET));
+ }
@Scheduled(fixedRate = 3600000)
public void updateTop() {
messagesService.getPopularCandidates().forEach(m -> {
logger.info("added {} to popular", m);
messagesService.setMessagePopular(m, 1);
+ Message jmsg = messagesService.getMessage(m);
+ String status = MessageUtils.getMessageHashTags(jmsg) + StringUtils.defaultString(jmsg.getText()) + " https://juick.com/" + jmsg.getMid();
+ facebookTemplate.feedOperations().updateStatus(status);
});
}
}