/db/migrations/201204270103_create_sao_paulo_vasco_palmeiras_fluminense_botafogo_santos.rb

https://bitbucket.org/tbueno/planetafutebol · Ruby · 99 lines · 91 code · 7 blank · 1 comment · 2 complexity · 5077bb07478fdd44ffb51d2d5740e1bf MD5 · raw file

  1. # encoding: UTF-8
  2. db = URI.parse(ENV['MONGOHQ_URL'])
  3. db_name = db.path.gsub(/^\//, '')
  4. db_connection = Mongo::Connection.new(db.host, db.port).db(db_name)
  5. db_connection.authenticate(db.user, db.password) unless (db.user.nil? || db.user.nil?)
  6. migrations = db_connection['migrations']
  7. if migrations.find_one({file: __FILE__})
  8. puts "Skipping: #{__FILE__}"
  9. else
  10. puts "Migrating: #{__FILE__}"
  11. CLUBS = [
  12. { name: 'São Paulo',
  13. website: 'http://www.saopaulofc.net/',
  14. twitter: 'saopaulofc',
  15. sources: [
  16. {name: 'ESPN', website: 'http://www.espn.com.br/rss/saopaulo', url: 'http://espn.estadao.com.br/rss/saopaulo'},
  17. {name: 'Gazeta Esportiva', website: 'http://www.gazetaesportiva.net/canal/29/sao-paulo/', url: 'http://www.gazetaesportiva.net/rss/29.xml'},
  18. {name: 'Lancenet', website: 'http://www.lancenet.com.br/sao-paulo', url: 'http://www.lancenet.com.br/rss/sao-paulo/'},
  19. {name: 'Globoesporte', website: 'http://globoesporte.globo.com/futebol/times/sao-paulo/', url: 'http://globoesporte.globo.com/dynamo/semantica/editorias/plantao/futebol/times/sao-paulo/feed.rss'},
  20. {name: 'Canelada', website: 'http://canelada.com.br/category/sao-paulo/', url: 'feed://feeds.feedburner.com/caneladasaopaulo'}
  21. ]
  22. },
  23. { name: 'Vasco',
  24. website: 'http://www.vasco.com.br',
  25. twitter: 'crvascodagama',
  26. sources: [
  27. {name: 'ESPN', website: 'http://www.espn.com.br/rss/vasco', url: 'http://espn.estadao.com.br/rss/vasco'},
  28. {name: 'Gazeta Esportiva', website: 'http://www.gazetaesportiva.net/canal/30/vasco/', url: 'http://www.gazetaesportiva.net/rss/30.xml'},
  29. {name: 'Lancenet', website: 'http://www.lancenet.com.br/vasco', url: 'http://www.lancenet.com.br/rss/vasco/'},
  30. {name: 'Globoesporte', website: 'http://globoesporte.globo.com/futebol/times/vasco/', url: 'http://globoesporte.globo.com/dynamo/semantica/editorias/plantao/futebol/times/vasco/feed.rss'},
  31. {name: 'Canelada', website: 'http://canelada.com.br/category/vasco/', url: 'http://feeds.feedburner.com/CaneladaVasco'}
  32. ]
  33. },
  34. { name: 'Palmeiras',
  35. website: 'http://www.palmeiras.com.br',
  36. twitter: 'SitePalmeiras',
  37. sources: [
  38. {name: 'ESPN', website: 'http://www.espn.com.br/rss/palmeiras', url: 'http://espn.estadao.com.br/rss/palmeiras'},
  39. {name: 'Gazeta Esportiva', website: 'http://www.gazetaesportiva.net/canal/24/palmeiras/', url: 'http://www.gazetaesportiva.net/rss/24.xml'},
  40. {name: 'Lancenet', website: 'http://www.lancenet.com.br/palmeiras', url: 'http://www.lancenet.com.br/rss/palmeiras/'},
  41. {name: 'Globoesporte', website: 'http://globoesporte.globo.com/futebol/times/palmeiras/', url: 'http://globoesporte.globo.com/dynamo/semantica/editorias/plantao/futebol/times/palmeiras/feed.rss'},
  42. {name: 'Canelada', website: 'http://canelada.com.br/category/palmeiras/', url: 'http://feeds.feedburner.com/Caneladapalmeiras'}
  43. ]
  44. },
  45. { name: 'Fluminense',
  46. website: 'http://www.fluminense.com.br',
  47. twitter: 'OficialFlu',
  48. sources: [
  49. {name: 'ESPN', website: 'http://www.espn.com.br/rss/fluminense', url: 'http://espn.estadao.com.br/rss/fluminense'},
  50. {name: 'Gazeta Esportiva', website: 'http://www.gazetaesportiva.net/canal/21/fluminense/', url: 'http://www.gazetaesportiva.net/rss/21.xml'},
  51. {name: 'Lancenet', website: 'http://www.lancenet.com.br/fluminense', url: 'http://www.lancenet.com.br/rss/fluminense/'},
  52. {name: 'Globoesporte', website: 'http://globoesporte.globo.com/futebol/times/fluminense/', url: 'http://globoesporte.globo.com/dynamo/semantica/editorias/plantao/futebol/times/fluminense/feed.rss'},
  53. {name: 'Canelada', website: 'http://canelada.com.br/category/fluminense/', url: 'http://feeds.feedburner.com/Caneladafluminense'}
  54. ]
  55. },
  56. { name: 'Botafogo',
  57. website: 'http://www.botafogo.com.br',
  58. twitter: 'BotafogoOficial',
  59. sources: [
  60. {name: 'ESPN', website: 'http://www.espn.com.br/rss/botafogo', url: 'http://espn.estadao.com.br/rss/botafogo'},
  61. {name: 'Gazeta Esportiva', website: 'http://www.gazetaesportiva.net/canal/18/botafogo/', url: 'http://www.gazetaesportiva.net/rss/18.xml'},
  62. {name: 'Lancenet', website: 'http://www.lancenet.com.br/botafogo', url: 'http://www.lancenet.com.br/rss/botafogo/'},
  63. {name: 'Globoesporte', website: 'http://globoesporte.globo.com/futebol/times/botafogo/', url: 'http://globoesporte.globo.com/dynamo/semantica/editorias/plantao/futebol/times/botafogo/feed.rss'},
  64. {name: 'Canelada', website: 'http://canelada.com.br/category/botafogo/', url: 'http://feeds.feedburner.com/Caneladabotafogo'}
  65. ]
  66. },
  67. { name: 'Santos',
  68. website: 'http://www.santosfc.com.br',
  69. twitter: 'santosfc',
  70. sources: [
  71. {name: 'ESPN', website: 'http://www.espn.com.br/rss/santos', url: 'http://espn.estadao.com.br/rss/santos'},
  72. {name: 'Gazeta Esportiva', website: 'http://www.gazetaesportiva.net/canal/27/santos/', url: 'http://www.gazetaesportiva.net/rss/27.xml'},
  73. {name: 'Lancenet', website: 'http://www.lancenet.com.br/santos', url: 'http://www.lancenet.com.br/rss/santos/'},
  74. {name: 'Globoesporte', website: 'http://globoesporte.globo.com/futebol/times/santos/', url: 'http://globoesporte.globo.com/dynamo/semantica/editorias/plantao/futebol/times/santos/feed.rss'},
  75. {name: 'Canelada', website: 'http://canelada.com.br/category/santos/', url: 'http://feeds.feedburner.com/Caneladasantos'}
  76. ]
  77. }
  78. ]
  79. puts 'CREATING CLUBS:'
  80. CLUBS.each do |club|
  81. c = Club.where(name: club[:nome]).first
  82. unless c
  83. c = Club.create(name: club[:name], website: club[:website], twitter: club[:twitter])
  84. puts "\t - Criando o clube '#{c.name}'"
  85. club[:sources].each do |source|
  86. c.sources << Source.create(source)
  87. end
  88. end
  89. end
  90. migrations.insert({file: __FILE__})
  91. puts "\tDone!"
  92. end