PageRenderTime 109ms CodeModel.GetById 42ms app.highlight 56ms RepoModel.GetById 1ms app.codeStats 0ms

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