-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.rb
60 lines (49 loc) · 1.71 KB
/
app.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
require 'rubygems'
require 'sinatra'
require 'mongo_mapper'
require 'twitter'
require 'hpricot'
require 'haml'
require 'open-uri'
require 'time'
require 'mm-sluggable'
require 'youtube_it'
require 'vimeo'
require File.expand_path(File.dirname(__FILE__)+'/lib/expand_url.rb')
require File.expand_path(File.dirname(__FILE__)+'/config.rb')
class Sinatra::Base
set :protection, :except => :frame_options
end
#mongo
MongoMapper::connection = Mongo::Connection.new(@db_server)
MongoMapper::database = @db_name
class Float
def clip(max)
self > max ? max : self
end
end
#mongodb collection classes
require File.expand_path(File.dirname(__FILE__)+'/models.rb')
Twitter.configure do |config|
config.consumer_key = @twitter_consumer
config.consumer_secret = @twitter_consumer_secret
config.oauth_token = @twitter_oauth_token
config.oauth_token_secret = @twitter_oauth_secret
end
require File.expand_path(File.dirname(__FILE__)+'/mosaic/mosaic.rb')
#a homepage of mosaics, with a representative image (pinterest style :/ )
get '/' do
undordered_campaigns = Campaign.all({:order=>'start_timestamp'.to_sym.desc,:conditions=>{:front_page=>'yes'}})
@campaigns = []
undordered_campaigns.each do |campaign|
score = 0
score = CampaignMedia.count({:order=>'ordering_key'.to_sym.desc, :limit=>50,
:conditions=>{:campaign_id => campaign.id, :ordering_key=>{'$gte'=>Time.now.to_i-86400}}})
score = score * 10
score = score + CampaignMedia.count({:order=>'ordering_key'.to_sym.desc, :limit=>50,
:conditions=>{:campaign_id => campaign.id, :ordering_key=>{'$lte'=>Time.now.to_i- 86400, '$gte'=>Time.now.to_i-(86400*5)}}})
campaign['activity_score'] = score
@campaigns<<campaign
end
haml :index
end