Guest User

Untitled

a guest
Feb 18th, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.60 KB | None | 0 0
  1. @GrabConfig(systemClassLoader=true)
  2. @Grab('org.twitter4j:twitter4j-core:[2.1,)')
  3. import twitter4j.*
  4.  
  5. if (!args) {
  6. System.err.println "usage groovy lottery.groovy <KEYWORDS>..."
  7. System.exit 1
  8. }
  9.  
  10. // 強制除外する人を列挙する
  11. def blacklist = [
  12. "nobeans",
  13. ]
  14.  
  15. def dump = {}
  16. def query = new Query(args.join(" "))
  17. def debugMode = false
  18. if (args.toList().contains("--debug")) {
  19. debugMode = true
  20. dump = { println("[${it.createdAt}] ${it.fromUser}: ${it.text}") }
  21. query = new Query((args - "--debug").join(" "))
  22. }
  23. println "Query: ${query.query}"
  24.  
  25. Twitter twitter = new TwitterFactory().instance
  26. def tweets = twitter.
  27. search(query).tweets.
  28. findAll { !(it.fromUser in blacklist) }.
  29. findAll { !(it.text =~ /RT @/) }.
  30. each(dump) // for --debug
  31. if (debugMode) {
  32. println "Total tweets count: ${tweets.size()}"
  33. println "All entried users: ${tweets*.fromUser.unique().sort()}"
  34. }
  35.  
  36. // じらす
  37. //3.times { print "."; sleep 1000 }
  38. //println ""
  39.  
  40. int width = 55
  41. println ">"*width
  42. if (tweets) {
  43. // 同じ人のツイートが複数回あったら、どれを選ぶかを
  44. // ランダムにするためにシャッフルする
  45. 3.times { Collections.shuffle(tweets) }
  46.  
  47. // 1人1ツイートに絞る
  48. tweets = tweets.unique{ it.fromUser }
  49.  
  50. // 最終決戦。先頭になった人の勝ち
  51. 3.times { Collections.shuffle(tweets) }
  52. tweets.head().with {
  53. println it.fromUser.center(width)
  54. println ""
  55. println it.text
  56. }
  57. } else {
  58. println "No one exists".center(width)
  59. }
  60. println "<"*width
  61. println "Powered by Twitter4J".padLeft(width)
Add Comment
Please, Sign In to add comment