aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/juick/server/TwitterManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/juick/server/TwitterManager.java')
-rw-r--r--src/main/java/com/juick/server/TwitterManager.java118
1 files changed, 0 insertions, 118 deletions
diff --git a/src/main/java/com/juick/server/TwitterManager.java b/src/main/java/com/juick/server/TwitterManager.java
deleted file mode 100644
index e424784c..00000000
--- a/src/main/java/com/juick/server/TwitterManager.java
+++ /dev/null
@@ -1,118 +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.User;
-import com.juick.www.api.SystemActivity;
-import com.juick.service.UserService;
-import com.juick.service.component.*;
-import com.juick.service.CrosspostService;
-import com.juick.util.MessageUtils;
-import org.apache.commons.lang3.SerializationUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Component;
-import twitter4j.TwitterFactory;
-import twitter4j.conf.ConfigurationBuilder;
-
-import javax.annotation.PostConstruct;
-import javax.inject.Inject;
-
-/**
- * @author Ugnich Anton
- */
-@Component
-public class TwitterManager implements NotificationListener {
-
- private static Logger logger = LoggerFactory.getLogger(TwitterManager.class);
-
- @Inject
- private CrosspostService crosspostService;
-
- @Value("${twitter_consumer_key:12345678}")
- private String twitter_consumer_key;
- @Value("${twitter_consumer_secret:secret}")
- private String twitter_consumer_secret;
- @Inject
- private UserService userService;
-
- @Value("${service_user:juick}")
- private String serviceUsername;
-
- private User serviceUser;
-
- @PostConstruct
- public void init() {
- serviceUser = userService.getUserByName(serviceUsername);
- }
-
- void twitterPost(final Message jmsg) {
- crosspostService.getTwitterToken(jmsg.getUser().getUid()).ifPresent(t -> {
- String status = MessageUtils.getMessageHashTags(jmsg) + StringUtils.defaultString(jmsg.getText());
- if (status.length() > 253) {
- status = status.substring(0, 252) + "…";
- }
- status += " http://juick.com/" + jmsg.getMid();
- ConfigurationBuilder configurationBuilder = new ConfigurationBuilder()
- .setDebugEnabled(true)
- .setOAuthConsumerKey(twitter_consumer_key)
- .setOAuthConsumerSecret(twitter_consumer_secret);
- TwitterFactory tf = new TwitterFactory(configurationBuilder
- .setOAuthAccessToken(t.getToken())
- .setOAuthAccessTokenSecret(t.getSecret()).build());
- try {
- tf.getInstance().updateStatus(status);
- } catch (Exception e) {
- logger.info("Twitter exception", e);
- }
- });
- }
-
- @Override
- public void processSystemEvent(SystemEvent systemEvent) {
- var activity = systemEvent.getActivity();
- var msg = activity.getMessage();
- if (activity.getType().equals(SystemActivity.ActivityType.message)) {
- if (MessageUtils.isPM(msg) || MessageUtils.isReply(msg) || msg.isService()) {
- return;
- }
- if (StringUtils.isNotEmpty(crosspostService.getTwitterName(msg.getUser().getUid()))) {
- if (msg.getTags().stream().noneMatch(t -> t.getName().equals("notwitter"))) {
- twitterPost(msg);
- }
- }
- } else if (activity.getType().equals(SystemActivity.ActivityType.like)) {
- if (activity.getFrom().getName().equals(serviceUsername)) {
- processTop(msg);
- }
- }
- }
-
- @Override
- public void processPingEvent(PingEvent pingEvent) {
-
- }
-
- private void processTop(Message message) {
- Message jmsg = SerializationUtils.clone(message);
- jmsg.setUser(serviceUser);
- twitterPost(jmsg);
- }
-}