/ShowMeTheBestReply/grails-app/controllers/NewsController.groovy
http://showmethebestreply.googlecode.com/ · Groovy · 74 lines · 55 code · 14 blank · 5 comment · 13 complexity · fe0c5aba58f3004f3710c75727495a6b MD5 · raw file
- class NewsController {
-
- def index = { redirect(action:rank,params:params) }
-
- // ??? ? ?? ??? ??? NATE ???? ??? DB? ??? ???? (5?)
- static int updateTime = 1000 * 60 * 5
-
- def rank = {
- String section
- String date
-
- if(params.sc) {
- section = params.sc
- } else {
- section = 'all'
- }
-
- if(params.date) {
- date = params.date
- } else {
- date = new Date().format('yyyyMMdd').toString()
- }
-
- Date dateParam = Date.parse('yyyyMMdd', date)
- def rankInfo = RankInfo.findBySectionAndDateCreatedBetween(section, new Date(dateParam.time), new Date((dateParam+1).time))
- if(!rankInfo) {
- rankInfo = RankInfo.parseRankInfo(section, date)
- rankInfo.save()
- } else if(rankInfo && new Date().time - rankInfo.dateViewed.time > updateTime) {
- RankInfo.withTransaction {
- rankInfo.delete()
- rankInfo = RankInfo.parseRankInfo(section, date)
- rankInfo.save()
- }
- }
-
- def sortedListOfArticleRank = rankInfo.listOfArticleRank.sort{ it.rank }
-
- [ section:section, date:date, listOfArticleRank:sortedListOfArticleRank, ]
- }
-
- def article = {
- def article = Article.findByArticleId(params.id)
- def listOfBeple
-
- if(article && new Date().time - article.dateViewed.time > updateTime) {
- // ?? articleId? ??? ??? updateTime? ????
- // ?? ??? ???? Nate ???? ??? ??? ?? ??? DB? ??
- Article.withTransaction {
- article.delete()
-
- String articleLink = "http://news.nate.com/view/${params.id}"
- article = Article.parseArticle(articleLink)
- listOfBeple = Reply.parseBestReplies(articleLink)
- article.listOfBeple = listOfBeple
-
- article.save()
- }
- } else if(article) {
- // updateTime? ??? ?? ?? articleId? ??? ??? ?? ????
- listOfBeple = article.listOfBeple.sort{ it.countOfGood }.reverse()
- } else {
- // DB? ?? ??? ??? Nate ???? ??? ??? ??? DB? ??
- String articleLink = "http://news.nate.com/view/${params.id}"
- article = Article.parseArticle(articleLink)
- listOfBeple = Reply.parseBestReplies(articleLink)
- article.listOfBeple = listOfBeple
-
- article.save()
- }
-
- [ article:article, listOfBeple:listOfBeple, ]
- }
- }