/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

  1. class NewsController {
  2. def index = { redirect(action:rank,params:params) }
  3. // ??? ? ?? ??? ??? NATE ???? ??? DB? ??? ???? (5?)
  4. static int updateTime = 1000 * 60 * 5
  5. def rank = {
  6. String section
  7. String date
  8. if(params.sc) {
  9. section = params.sc
  10. } else {
  11. section = 'all'
  12. }
  13. if(params.date) {
  14. date = params.date
  15. } else {
  16. date = new Date().format('yyyyMMdd').toString()
  17. }
  18. Date dateParam = Date.parse('yyyyMMdd', date)
  19. def rankInfo = RankInfo.findBySectionAndDateCreatedBetween(section, new Date(dateParam.time), new Date((dateParam+1).time))
  20. if(!rankInfo) {
  21. rankInfo = RankInfo.parseRankInfo(section, date)
  22. rankInfo.save()
  23. } else if(rankInfo && new Date().time - rankInfo.dateViewed.time > updateTime) {
  24. RankInfo.withTransaction {
  25. rankInfo.delete()
  26. rankInfo = RankInfo.parseRankInfo(section, date)
  27. rankInfo.save()
  28. }
  29. }
  30. def sortedListOfArticleRank = rankInfo.listOfArticleRank.sort{ it.rank }
  31. [ section:section, date:date, listOfArticleRank:sortedListOfArticleRank, ]
  32. }
  33. def article = {
  34. def article = Article.findByArticleId(params.id)
  35. def listOfBeple
  36. if(article && new Date().time - article.dateViewed.time > updateTime) {
  37. // ?? articleId? ??? ??? updateTime? ????
  38. // ?? ??? ???? Nate ???? ??? ??? ?? ??? DB? ??
  39. Article.withTransaction {
  40. article.delete()
  41. String articleLink = "http://news.nate.com/view/${params.id}"
  42. article = Article.parseArticle(articleLink)
  43. listOfBeple = Reply.parseBestReplies(articleLink)
  44. article.listOfBeple = listOfBeple
  45. article.save()
  46. }
  47. } else if(article) {
  48. // updateTime? ??? ?? ?? articleId? ??? ??? ?? ????
  49. listOfBeple = article.listOfBeple.sort{ it.countOfGood }.reverse()
  50. } else {
  51. // DB? ?? ??? ??? Nate ???? ??? ??? ??? DB? ??
  52. String articleLink = "http://news.nate.com/view/${params.id}"
  53. article = Article.parseArticle(articleLink)
  54. listOfBeple = Reply.parseBestReplies(articleLink)
  55. article.listOfBeple = listOfBeple
  56. article.save()
  57. }
  58. [ article:article, listOfBeple:listOfBeple, ]
  59. }
  60. }