package com.fpcms.common.random_gen_article;
import java.util.Date;
import org.apache.commons.lang.math.RandomUtils;
import org.apache.commons.lang.time.DateUtils;
import com.fpcms.common.util.SearchEngineUtil;
import com.fpcms.common.util.UnuseKeywordsUtil;
import com.github.rapid.common.util.DateConvertUtil;
/**
* 生成一个随机文章
* @author badqiu
*
*/
public class RandomArticleBuilder {
// private String[] randomConfuseKeywordArray = Constants.FAIPIAO_KEYWORDS;
public RandomArticle buildRandomArticle(String city) {
String keyword = getRandomMainKeyword();
// String randomConfuseKeyword = RandomUtil.randomSelect(Constants.FAIPIAO_KEYWORDS);
String finalSearchKeyword = keyword + " " + randomMonth();
// String finalSearchKeyword = keyword + " " + randomConfuseKeyword + " " + city + " " + randomMonth();
// String finalSearchKeyword = randomBuzz + confuseKeyword + randomConfuseKeyword + " "+ randomMonth();
RandomArticle article = buildBySearchKeyword(city,
keyword, finalSearchKeyword);
return article;
}
static String getRandomMainKeyword() {
// if(RandomUtil.randomTrue(50)) {
// Set<String> baiduBuzzs = BaiduTopBuzzUtil.getBaiduBuzzs();
// Assert.isTrue(!baiduBuzzs.isEmpty()," baiduBuzzs must be not empty");
// KeywordUtil.filterSensitiveKeyword(baiduBuzzs);
// String randomBuzz = RandomUtil.randomSelect(baiduBuzzs);
// return randomBuzz;
// }else {
return UnuseKeywordsUtil.getRandomUnuseKeyword();
// }
}
String randomMonth() {
// if(RandomUtil.randomTrue(30)) {
// return "";
// }
Date startMonth = DateConvertUtil.parse("2006-01", "yyyy-MM");
Date now = new Date();
int maxMonth = (int)((now.getTime() - startMonth.getTime())/1000.0/3600/24/30);
Date result = DateUtils.addMonths(startMonth, RandomUtils.nextInt(maxMonth));
return DateConvertUtil.format(result, "yyyy年");
// return DateConvertUtil.format(result, "yyyy年M月");
}
RandomArticle buildBySearchKeyword(String city,
String keyword,
String finalSearchKeyword) {
// int randomPageSize = 20 + RandomUtils.nextInt(50);
int randomPageSize = 10 + 10;
int randomPageNumber = 1;
// int randomPageNumber = 1 + RandomUtils.nextInt(5);
String result = SearchEngineUtil.googleSearch(finalSearchKeyword, randomPageSize,randomPageNumber);
ArticleContentProcesser articleContentProcesser = new ArticleContentProcesser(keyword);
articleContentProcesser.buildArticle(result);
String transferedArticle = articleContentProcesser.getArticle();
RandomArticle article = new RandomArticle(keyword,null,finalSearchKeyword,transferedArticle);
article.setPerfectKeyword(articleContentProcesser.getPerfectKeyword());
return article;
}
}