check last_write_at field when applying rate limits to channels
This commit is contained in:
		@@ -312,7 +312,7 @@ class ChannelsController < ApplicationController
 | 
			
		||||
      talkback_key = params[:talkback_key] || false;
 | 
			
		||||
 | 
			
		||||
      # rate limit posts if channel is not social and timespan is smaller than the allowed window
 | 
			
		||||
      render :text => '0' and return if (RATE_LIMIT && !tstream && !talkback_key && !channel.social && Time.now < channel.updated_at + RATE_LIMIT_FREQUENCY.to_i.seconds)
 | 
			
		||||
      render :text => '0' and return if (RATE_LIMIT && !tstream && !talkback_key && !channel.social && channel.last_write_at.present? && Time.now < (channel.last_write_at + RATE_LIMIT_FREQUENCY.to_i.seconds))
 | 
			
		||||
 | 
			
		||||
      # if social channel, latitude MUST be present
 | 
			
		||||
      render :text => '0' and return if (channel.social && params[:latitude].blank?)
 | 
			
		||||
@@ -323,6 +323,8 @@ class ChannelsController < ApplicationController
 | 
			
		||||
      feed.entry_id = entry_id
 | 
			
		||||
      # set user agent
 | 
			
		||||
      channel.user_agent = get_header_value('USER_AGENT')
 | 
			
		||||
      # set the last write at time
 | 
			
		||||
      channel.last_write_at = Time.now
 | 
			
		||||
 | 
			
		||||
      # try to get created_at datetime if appropriate
 | 
			
		||||
      if params[:created_at].present?
 | 
			
		||||
 
 | 
			
		||||
@@ -48,6 +48,7 @@
 | 
			
		||||
#  user_agent                :string(255)
 | 
			
		||||
#  realtime_io_serial_number :string(36)
 | 
			
		||||
#  metadata                  :text
 | 
			
		||||
#  last_write_at             :datetime
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
class Channel < ActiveRecord::Base
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user