setoya-blog

システム開発技術、データ分析関連でお勉強したことや、山奥生活を綴る、テンション低めなブログです。

BOTのソースコードをほんの一部公開

最上位クラスなので、難しい部分は隠蔽されていますけれども。
ソースコード見ただけで@Singletonと@Scheduleがどんな機能か分かると思う。

package jp.noriko.ejb.session;

import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Schedule;
import javax.ejb.Singleton;
import jp.noriko.dto.TweetDto;

/**
 *
 * @author masato1
 */
@Singleton
public class AmzPrdBotOrganizer implements AmzPrdBotOrganizerLocal {

    @EJB
    private AmazonSearchBeanLocal amazonSearchBean;
    @EJB
    private TwitterClientBeanLocal twitterClientBean;

    /**
     * @param amazonSearchBean the amazonSearchBean to set
     */
    public void setAmazonSearchBean(AmazonSearchBeanLocal amazonSearchBean) {
        this.amazonSearchBean = amazonSearchBean;
    }

    /**
     * @param twitterClientBean the twitterClientBean to set
     */
    public void setTwitterClientBean(TwitterClientBeanLocal twitterClientBean) {
        this.twitterClientBean = twitterClientBean;
    }

    //dayofweekの値は、Sun, Mon, Tue, Wed, Thu, Fri, Satのいずれかです。
    @Override
    @Schedule(dayOfWeek = "Sun", hour = "20", minute = "0")
    public void tweetMangaBunkoComicBestSeller() {
        List<TweetDto> tweetList = amazonSearchBean.searchMangaBunkoBestSeller();
        for (TweetDto tweet : tweetList) {
            twitterClientBean.tweet(tweet.buildTweetWithHashTags("#Amazon", "#manga"));
        }
    }

    @Override
    @Schedule(dayOfWeek = "Mon", hour = "17", minute = "0")
    public void tweetShonenComicBestSeller() {
        List<TweetDto> tweetList = amazonSearchBean.searchShonenComicBestSeller();
        for (TweetDto tweet : tweetList) {
            twitterClientBean.tweet(tweet.buildTweetWithHashTags("#Amazon", "#manga"));
        }
    }

    @Override
    @Schedule(dayOfWeek = "Tue", hour = "17", minute = "0")
    public void tweetShojoComicBestSeller() {
        List<TweetDto> tweetList = amazonSearchBean.searchShojoComicBestSeller();
        for (TweetDto tweet : tweetList) {
            twitterClientBean.tweet(tweet.buildTweetWithHashTags("#Amazon", "#manga"));
        }
    }

    @Override
    @Schedule(dayOfWeek = "Wed", hour = "17", minute = "0")
    public void tweetSeinenComicBestSeller() {
        List<TweetDto> tweetList = amazonSearchBean.searchSeinenComicBestSeller();
        for (TweetDto tweet : tweetList) {
            twitterClientBean.tweet(tweet.buildTweetWithHashTags("#Amazon", "#manga"));
        }
    }

    @Override
    @Schedule(dayOfWeek = "Thu", hour = "17", minute = "0")
    public void tweetMangaTaisho2008() {
        List<TweetDto> tweetList = amazonSearchBean.searchMangaTaisho2008();
        for (TweetDto tweet : tweetList) {
            twitterClientBean.tweet(tweet.buildTweetWithHashTags("#Amazon", "#manga"));
        }
    }

    @Override
    @Schedule(dayOfWeek = "Fri", hour = "17", minute = "0")
    public void tweetMangaTaisho2009() {
        List<TweetDto> tweetList = amazonSearchBean.searchMangaTaisho2009();
        for (TweetDto tweet : tweetList) {
            twitterClientBean.tweet(tweet.buildTweetWithHashTags("#Amazon", "#manga"));
        }
    }
}