upgrades ruby gems, related fixes

This commit is contained in:
Kyle Drake 2017-05-08 02:54:19 -07:00
parent 282ae9e45d
commit 31b864227a
7 changed files with 146 additions and 149 deletions

View file

@ -1,6 +1,6 @@
source 'https://rubygems.org' source 'https://rubygems.org'
gem 'sinatra' gem 'sinatra', '2.0.0'
gem 'redis' gem 'redis'
gem 'redis-namespace' gem 'redis-namespace'
gem 'sequel' gem 'sequel'

View file

@ -1,6 +1,6 @@
GIT GIT
remote: https://github.com/planio-gmbh/dav4rack.git remote: https://github.com/planio-gmbh/dav4rack.git
revision: e68dcf97399a116878a1a68b5c879f5cb05c40cb revision: ec491dccab4bcfa846bb4616c7177fb09819981c
branch: redmine-storage branch: redmine-storage
specs: specs:
dav4rack (0.3.0) dav4rack (0.3.0)
@ -12,14 +12,14 @@ GIT
GEM GEM
remote: https://rubygems.org/ remote: https://rubygems.org/
specs: specs:
acme-client (0.4.0) acme-client (0.5.5)
faraday (~> 0.9, >= 0.9.1) faraday (~> 0.9, >= 0.9.1)
activesupport (5.0.2) activesupport (5.1.0)
concurrent-ruby (~> 1.0, >= 1.0.2) concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (~> 0.7) i18n (~> 0.7)
minitest (~> 5.1) minitest (~> 5.1)
tzinfo (~> 1.1) tzinfo (~> 1.1)
addressable (2.5.0) addressable (2.5.1)
public_suffix (~> 2.0, >= 2.0.2) public_suffix (~> 2.0, >= 2.0.2)
annoy (0.5.6) annoy (0.5.6)
highline (>= 1.5.0) highline (>= 1.5.0)
@ -28,8 +28,8 @@ GEM
bcrypt (3.1.11) bcrypt (3.1.11)
blankslate (3.1.3) blankslate (3.1.3)
builder (3.2.3) builder (3.2.3)
byebug (8.2.4) byebug (9.0.6)
capybara (2.13.0) capybara (2.14.0)
addressable addressable
mime-types (>= 1.16) mime-types (>= 1.16)
nokogiri (>= 1.3.3) nokogiri (>= 1.3.3)
@ -40,15 +40,14 @@ GEM
capybara (>= 2) capybara (>= 2)
minitest (>= 4) minitest (>= 4)
certified (1.0.0) certified (1.0.0)
climate_control (0.0.3) climate_control (0.1.0)
activesupport (>= 3.0)
cliver (0.3.2) cliver (0.3.2)
cocaine (0.5.8) cocaine (0.5.8)
climate_control (>= 0.0.3, < 1.0) climate_control (>= 0.0.3, < 1.0)
coderay (1.1.1) coderay (1.1.1)
concurrent-ruby (1.0.5) concurrent-ruby (1.0.5)
connection_pool (2.2.0) connection_pool (2.2.1)
coveralls (0.8.20) coveralls (0.8.21)
json (>= 1.8, < 3) json (>= 1.8, < 3)
simplecov (~> 0.14.1) simplecov (~> 0.14.1)
term-ansicolor (~> 1.3) term-ansicolor (~> 1.3)
@ -59,41 +58,41 @@ GEM
crass (1.0.2) crass (1.0.2)
dante (0.2.0) dante (0.2.0)
docile (1.1.5) docile (1.1.5)
domain_name (0.5.20160826) domain_name (0.5.20170404)
unf (>= 0.0.5, < 1.0.0) unf (>= 0.0.5, < 1.0.0)
drydock (0.6.9) drydock (0.6.9)
erubis (2.7.0) erubis (2.7.0)
exifr (1.2.5) exifr (1.2.5)
fabrication (2.15.0) fabrication (2.16.1)
facter (2.4.6) facter (2.4.6)
faker (1.6.3) faker (1.7.3)
i18n (~> 0.5) i18n (~> 0.5)
faraday (0.9.2) faraday (0.12.1)
multipart-post (>= 1.2, < 3) multipart-post (>= 1.2, < 3)
faraday_middleware (0.9.2) faraday_middleware (0.11.0.1)
faraday (>= 0.7.4, < 0.10) faraday (>= 0.7.4, < 1.0)
feedjira (2.1.0) feedjira (2.1.2)
faraday (>= 0.9) faraday (>= 0.9)
faraday_middleware (>= 0.9) faraday_middleware (>= 0.9)
loofah (>= 2.0) loofah (>= 2.0)
sax-machine (>= 1.0) sax-machine (>= 1.0)
ffi (1.9.10) ffi (1.9.18)
ffi-compiler (0.1.3) ffi-compiler (1.0.1)
ffi (>= 1.0.0) ffi (>= 1.0.0)
rake rake
filesize (0.1.1) filesize (0.1.1)
fspath (3.0.3) fspath (3.1.0)
gandi (3.3.27) gandi (3.3.27)
hashie hashie
geoip (1.6.1) geoip (1.6.3)
hashdiff (0.3.2) hashdiff (0.3.4)
hashie (3.5.5) hashie (3.5.5)
highline (1.7.8) highline (1.7.8)
hiredis (0.6.1) hiredis (0.6.1)
hoe (3.14.2) hoe (3.14.2)
rake (>= 0.8, < 11.0) rake (>= 0.8, < 11.0)
htmlentities (4.3.4) htmlentities (4.3.4)
http (2.0.3) http (2.2.2)
addressable (~> 2.3) addressable (~> 2.3)
http-cookie (~> 1.0) http-cookie (~> 1.0)
http-form_data (~> 1.0.1) http-form_data (~> 1.0.1)
@ -102,85 +101,85 @@ GEM
domain_name (~> 0.5) domain_name (~> 0.5)
http-form_data (1.0.1) http-form_data (1.0.1)
http_parser.rb (0.6.0) http_parser.rb (0.6.0)
i18n (0.7.0) i18n (0.8.1)
image_optim (0.24.1) image_optim (0.24.3)
exifr (~> 1.2, >= 1.2.2) exifr (~> 1.2, >= 1.2.2)
fspath (~> 3.0) fspath (~> 3.0)
image_size (~> 1.5) image_size (~> 1.5)
in_threads (~> 1.3) in_threads (~> 1.3)
progress (~> 3.0, >= 3.0.1) progress (~> 3.0, >= 3.0.1)
image_optim_pack (0.3.0.20161206) image_optim_pack (0.5.0)
fspath (>= 2.1, < 4) fspath (>= 2.1, < 4)
image_optim (~> 0.19) image_optim (~> 0.19)
image_size (1.5.0) image_size (1.5.0)
in_threads (1.3.1) in_threads (1.4.0)
io-extra (1.2.8) io-extra (1.2.8)
ipaddress (0.8.3) ipaddress (0.8.3)
jimson-temp (0.9.5) jimson-temp (0.9.4)
blankslate (>= 3.1.2) blankslate (>= 3.1.2)
multi_json (~> 1.0) multi_json (>= 1.7.6)
rack (~> 1.4) rack (>= 1.4.5)
rest-client (~> 1.0) rest-client (>= 1.6.7)
json (1.8.6) json (1.8.6)
loofah (2.0.3) loofah (2.0.3)
nokogiri (>= 1.5.9) nokogiri (>= 1.5.9)
m (1.4.2) m (1.5.0)
method_source (>= 0.6.7) method_source (>= 0.6.7)
rake (>= 0.9.2.2) rake (>= 0.9.2.2)
magic (0.2.9) magic (0.2.9)
ffi (>= 0.6.3) ffi (>= 0.6.3)
mail (2.6.4) mail (2.6.5)
mime-types (>= 1.16, < 4) mime-types (>= 1.16, < 4)
metaclass (0.0.4) metaclass (0.0.4)
method_source (0.8.2) method_source (0.8.2)
mime-types (2.99.3) mime-types (2.99.3)
mini_portile2 (2.1.0) mini_portile2 (2.1.0)
minitest (5.10.1) minitest (5.10.1)
minitest-reporters (1.1.8) minitest-reporters (1.1.14)
ansi ansi
builder builder
minitest (>= 5.0) minitest (>= 5.0)
ruby-progressbar ruby-progressbar
mocha (1.1.0) mocha (1.2.1)
metaclass (~> 0.0.1) metaclass (~> 0.0.1)
mock_redis (0.16.1) mock_redis (0.17.3)
monetize (1.6.0) monetize (1.6.0)
money (~> 6.8) money (~> 6.8)
money (6.8.1) money (6.9.0)
i18n (>= 0.6.4, <= 0.7.0) i18n (>= 0.6.4, < 0.9)
sixarm_ruby_unaccent (>= 1.1.1, < 2)
msgpack (1.1.0) msgpack (1.1.0)
multi_json (1.12.1) multi_json (1.12.1)
multipart-post (2.0.0) multipart-post (2.0.0)
mustermann (1.0.0)
net-scp (1.2.1) net-scp (1.2.1)
net-ssh (>= 2.6.5) net-ssh (>= 2.6.5)
net-ssh (3.1.1) net-ssh (4.1.0)
netrc (0.11.0) netrc (0.11.0)
nokogiri (1.7.0.1) nokogiri (1.7.1)
mini_portile2 (~> 2.1.0) mini_portile2 (~> 2.1.0)
nokogumbo (1.4.7) nokogumbo (1.4.10)
nokogiri nokogiri
ox (2.4.6) ox (2.5.0)
paypal-recurring (1.1.0) paypal-recurring (1.1.0)
pg (0.20.0) pg (0.20.0)
poltergeist (1.11.0) poltergeist (1.15.0)
capybara (~> 2.1) capybara (~> 2.1)
cliver (~> 0.3.1) cliver (~> 0.3.1)
websocket-driver (>= 0.2.0) websocket-driver (>= 0.2.0)
progress (3.2.2) progress (3.3.1)
pry (0.10.3) pry (0.10.4)
coderay (~> 1.1.0) coderay (~> 1.1.0)
method_source (~> 0.8.1) method_source (~> 0.8.1)
slop (~> 3.4) slop (~> 3.4)
pry-byebug (3.3.0) pry-byebug (3.4.2)
byebug (~> 8.0) byebug (~> 9.0)
pry (~> 0.10) pry (~> 0.10)
public_suffix (2.0.5) public_suffix (2.0.5)
puma (3.4.0) puma (3.8.2)
rack (1.6.5) rack (2.0.1)
rack-cache (1.6.1) rack-cache (1.7.0)
rack (>= 0.4) rack (>= 0.4)
rack-protection (1.5.3) rack-protection (2.0.0)
rack rack
rack-recaptcha (0.6.6) rack-recaptcha (0.6.6)
json json
@ -191,15 +190,15 @@ GEM
rack (>= 1.0.0) rack (>= 1.0.0)
rake (10.5.0) rake (10.5.0)
redis (3.3.3) redis (3.3.3)
redis-namespace (1.5.2) redis-namespace (1.5.3)
redis (~> 3.0, >= 3.0.4) redis (~> 3.0, >= 3.0.4)
rest-client (1.8.0) rest-client (1.8.0)
http-cookie (>= 1.0.2, < 2.0) http-cookie (>= 1.0.2, < 2.0)
mime-types (>= 1.16, < 3.0) mime-types (>= 1.16, < 3.0)
netrc (~> 0.7) netrc (~> 0.7)
rinku (2.0.0) rinku (2.0.2)
rmagick (2.15.4) rmagick (2.16.0)
ruby-progressbar (1.7.5) ruby-progressbar (1.8.1)
rye (0.9.13) rye (0.9.13)
annoy annoy
docile (>= 1.0.1) docile (>= 1.0.1)
@ -208,40 +207,40 @@ GEM
net-ssh (>= 2.0.13) net-ssh (>= 2.0.13)
sysinfo (>= 0.8.1) sysinfo (>= 0.8.1)
safe_yaml (1.0.4) safe_yaml (1.0.4)
sanitize (4.0.1) sanitize (4.4.0)
crass (~> 1.0.2) crass (~> 1.0.2)
nokogiri (>= 1.4.4) nokogiri (>= 1.4.4)
nokogumbo (~> 1.4.1) nokogumbo (~> 1.4.1)
sass (3.4.22) sass (3.4.23)
sax-machine (1.3.2) sax-machine (1.3.2)
scrypt (2.1.1) scrypt (3.0.5)
ffi-compiler (>= 0.0.2) ffi-compiler (>= 1.0, < 2.0)
rake sequel (4.46.0)
sequel (4.44.0) sequel_pg (1.6.18)
sequel_pg (1.6.17)
pg (>= 0.8.0) pg (>= 0.8.0)
sequel (>= 4.0.0) sequel (>= 4.0.0)
shotgun (0.9.1) shotgun (0.9.2)
rack (>= 1.0) rack (>= 1.0)
sidekiq (4.1.2) sidekiq (4.1.4)
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
connection_pool (~> 2.2, >= 2.2.0) connection_pool (~> 2.2, >= 2.2.0)
redis (~> 3.2, >= 3.2.1) redis (~> 3.2, >= 3.2.1)
sinatra (>= 1.4.7)
simplecov (0.14.1) simplecov (0.14.1)
docile (~> 1.1.0) docile (~> 1.1.0)
json (>= 1.8, < 3) json (>= 1.8, < 3)
simplecov-html (~> 0.10.0) simplecov-html (~> 0.10.0)
simplecov-html (0.10.0) simplecov-html (0.10.0)
simpleidn (0.0.6) simpleidn (0.0.7)
sinatra (1.4.8) sinatra (2.0.0)
rack (~> 1.5) mustermann (~> 1.0)
rack-protection (~> 1.4) rack (~> 2.0)
tilt (>= 1.3, < 3) rack-protection (= 2.0.0)
tilt (~> 2.0)
sinatra-flash (0.3.0) sinatra-flash (0.3.0)
sinatra (>= 1.0.0) sinatra (>= 1.0.0)
sinatra-xsendfile (0.4.2) sinatra-xsendfile (0.4.2)
sinatra (>= 0.9.1) sinatra (>= 0.9.1)
sixarm_ruby_unaccent (1.1.1)
slop (3.6.0) slop (3.6.0)
storable (0.8.9) storable (0.8.9)
stripe (1.15.0) stripe (1.15.0)
@ -255,28 +254,28 @@ GEM
sysinfo (0.8.1) sysinfo (0.8.1)
drydock drydock
storable storable
term-ansicolor (1.5.0) term-ansicolor (1.6.0)
tins (~> 1.0) tins (~> 1.0)
thor (0.19.4) thor (0.19.4)
thread (0.2.2) thread (0.2.2)
thread_safe (0.3.6) thread_safe (0.3.6)
tilt (2.0.6) tilt (2.0.7)
timecop (0.8.1) timecop (0.8.1)
tins (1.13.2) tins (1.13.2)
tzinfo (1.2.3) tzinfo (1.2.3)
thread_safe (~> 0.1) thread_safe (~> 0.1)
unf (0.1.4) unf (0.1.4)
unf_ext unf_ext
unf_ext (0.0.7.2) unf_ext (0.0.7.4)
uuidtools (2.1.5) uuidtools (2.1.5)
webmock (2.3.2) webmock (3.0.1)
addressable (>= 2.3.6) addressable (>= 2.3.6)
crack (>= 0.3.2) crack (>= 0.3.2)
hashdiff hashdiff
websocket-driver (0.6.4) websocket-driver (0.6.5)
websocket-extensions (>= 0.1.0) websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.2) websocket-extensions (0.1.2)
will_paginate (3.1.0) will_paginate (3.1.5)
xmlrpc (0.3.0) xmlrpc (0.3.0)
xpath (2.0.0) xpath (2.0.0)
nokogiri (~> 1.3) nokogiri (~> 1.3)
@ -348,7 +347,7 @@ DEPENDENCIES
sidekiq (~> 4.1.2) sidekiq (~> 4.1.2)
simplecov simplecov
simpleidn simpleidn
sinatra sinatra (= 2.0.0)
sinatra-flash sinatra-flash
sinatra-xsendfile sinatra-xsendfile
stripe (= 1.15.0) stripe (= 1.15.0)

View file

@ -6,14 +6,14 @@ get '/browse/?' do
params.delete 'tag' if params[:tag].nil? || params[:tag].strip.empty? params.delete 'tag' if params[:tag].nil? || params[:tag].strip.empty?
if is_education? if is_education?
site_dataset = education_sites_dataset ds = education_sites_dataset
else else
site_dataset = browse_sites_dataset ds = browse_sites_dataset
end end
site_dataset = site_dataset.paginate @page, Site::BROWSE_PAGINATION_LENGTH ds = ds.paginate @page, Site::BROWSE_PAGINATION_LENGTH
@pagination_dataset = site_dataset @pagination_dataset = ds
@sites = site_dataset.all @sites = ds.all
site_ids = @sites.collect {|s| s[:id]} site_ids = @sites.collect {|s| s[:id]}
tags = DB['select site_id,name from tags join sites_tags on tags.id=sites_tags.tag_id where site_id IN ?', site_ids].all tags = DB['select site_id,name from tags join sites_tags on tags.id=sites_tags.tag_id where site_id IN ?', site_ids].all
@ -31,25 +31,24 @@ get '/browse/?' do
end end
def education_sites_dataset def education_sites_dataset
site_dataset = Site.filter is_deleted: false ds = Site.filter is_deleted: false
site_dataset = site_dataset.association_join(:tags).select_all(:sites) ds = ds.association_join(:tags).select_all(:sites)
params[:tag] = current_site.tags.first.name params[:tag] = current_site.tags.first.name
site_dataset.where! ['tags.name = ?', params[:tag]] ds = ds.where ['tags.name = ?', params[:tag]]
end end
def browse_sites_dataset def browse_sites_dataset
ds = Site.browse_dataset
site_dataset = Site.browse_dataset
if current_site if current_site
site_dataset.or! sites__id: current_site.id ds = ds.or sites__id: current_site.id
if !current_site.blocking_site_ids.empty? if !current_site.blocking_site_ids.empty?
site_dataset.where!(Sequel.~(Sequel.qualify(:sites, :id) => current_site.blocking_site_ids)) ds = ds.where(Sequel.~(Sequel.qualify(:sites, :id) => current_site.blocking_site_ids))
end end
if current_site.blocks_dataset.count if current_site.blocks_dataset.count
site_dataset.where!( ds = ds.where(
Sequel.~(Sequel.qualify(:sites, :id) => current_site.blocks_dataset.select(:actioning_site_id).all.collect {|s| s.actioning_site_id}) Sequel.~(Sequel.qualify(:sites, :id) => current_site.blocks_dataset.select(:actioning_site_id).all.collect {|s| s.actioning_site_id})
) )
end end
@ -57,56 +56,56 @@ def browse_sites_dataset
case params[:sort_by] case params[:sort_by]
when 'special_sauce' when 'special_sauce'
site_dataset.exclude! score: nil ds = ds.exclude score: nil
site_dataset.order! :score.desc ds = ds.order :score.desc
when 'followers' when 'followers'
site_dataset.order! :follow_count.desc, :updated_at.desc ds = ds.order :follow_count.desc, :updated_at.desc
when 'supporters' when 'supporters'
site_dataset.exclude! plan_type: nil ds = ds.exclude plan_type: nil
site_dataset.exclude! plan_type: 'free' ds = ds.exclude plan_type: 'free'
site_dataset.order! :views.desc, :site_updated_at.desc ds = ds.order :views.desc, :site_updated_at.desc
when 'featured' when 'featured'
site_dataset.exclude! featured_at: nil ds = ds.exclude featured_at: nil
site_dataset.order! :featured_at.desc ds = ds.order :featured_at.desc
when 'hits' when 'hits'
site_dataset.where!{views > 100} ds = ds.where{views > 100}
site_dataset.order!(:hits.desc, :site_updated_at.desc) ds = ds.order(:hits.desc, :site_updated_at.desc)
when 'views' when 'views'
site_dataset.where!{views > 100} ds = ds.where{views > 100}
site_dataset.order!(:views.desc, :site_updated_at.desc) ds = ds.order(:views.desc, :site_updated_at.desc)
when 'newest' when 'newest'
site_dataset.order!(:created_at.desc, :views.desc) ds = ds.order(:created_at.desc, :views.desc)
when 'oldest' when 'oldest'
site_dataset.where!{views > 100} ds = ds.where{views > 100}
site_dataset.order!(:created_at, :views.desc) ds = ds.order(:created_at, :views.desc)
when 'random' when 'random'
site_dataset.where!{views > 100} ds = ds.where{views > 100}
site_dataset.where! 'random() < 0.01' ds = ds.where 'random() < 0.01'
when 'last_updated' when 'last_updated'
site_dataset.where!{views > 100} ds = ds.where{views > 100}
params[:sort_by] = 'last_updated' params[:sort_by] = 'last_updated'
site_dataset.exclude!(site_updated_at: nil) ds = ds.exclude(site_updated_at: nil)
site_dataset.order!(:site_updated_at.desc, :views.desc) ds = ds.order(:site_updated_at.desc, :views.desc)
when 'tipping_enabled' when 'tipping_enabled'
site_dataset.where! tipping_enabled: true ds = ds.where tipping_enabled: true
site_dataset.where!("(tipping_paypal is not null and tipping_paypal != '') or (tipping_bitcoin is not null and tipping_bitcoin != '')") ds = ds.where("(tipping_paypal is not null and tipping_paypal != '') or (tipping_bitcoin is not null and tipping_bitcoin != '')")
site_dataset.where!{views > 10_000} ds = ds.where{views > 10_000}
site_dataset.group! :sites__id ds = ds.group :sites__id
site_dataset.order! :follow_count.desc, :views.desc, :updated_at.desc ds = ds.order :follow_count.desc, :views.desc, :updated_at.desc
else else
params[:sort_by] = 'followers' params[:sort_by] = 'followers'
site_dataset.order! :follow_count.desc, :views.desc, :updated_at.desc ds = ds.order :follow_count.desc, :views.desc, :updated_at.desc
end end
site_dataset.where! ['sites.is_nsfw = ?', (params[:is_nsfw] == 'true' ? true : false)] ds = ds.where ['sites.is_nsfw = ?', (params[:is_nsfw] == 'true' ? true : false)]
if params[:tag] if params[:tag]
site_dataset.select_all! :sites ds = ds.select_all :sites
site_dataset.inner_join! :sites_tags, :site_id => :id ds = ds.inner_join :sites_tags, :site_id => :id
site_dataset.inner_join! :tags, :id => :sites_tags__tag_id ds = ds.inner_join :tags, :id => :sites_tags__tag_id
site_dataset.where! ['tags.name = ?', params[:tag]] ds = ds.where ['tags.name = ?', params[:tag]]
site_dataset.where! ['tags.is_nsfw = ?', (params[:is_nsfw] == 'true' ? true : false)] ds = ds.where ['tags.is_nsfw = ?', (params[:is_nsfw] == 'true' ? true : false)]
end end
site_dataset ds
end end

View file

@ -59,11 +59,10 @@ post '/site_files/create' do
site_file ||= SiteFile.new site_id: current_site.id, path: name site_file ||= SiteFile.new site_id: current_site.id, path: name
site_file.set_all( site_file.size = 0
size: 0, site_file.set size: 0
sha1_hash: Digest::SHA1.hexdigest(''), site_file.set sha1_hash: Digest::SHA1.hexdigest('')
updated_at: Time.now site_file.set updated_at: Time.now
)
site_file.save site_file.save
end end

View file

@ -33,6 +33,8 @@ raise 'hash_ip_salt is required' unless $config['ip_hash_salt']
DB = Sequel.connect $config['database'], sslmode: 'disable', max_connections: $config['database_pool'] DB = Sequel.connect $config['database'], sslmode: 'disable', max_connections: $config['database_pool']
DB.extension :pagination DB.extension :pagination
DB.extension :auto_literal_strings
Sequel.split_symbols = true
require 'will_paginate/sequel' require 'will_paginate/sequel'

View file

@ -4,7 +4,13 @@ class Comment < Sequel::Model
many_to_one :actioning_site, class: :Site many_to_one :actioning_site, class: :Site
one_to_many :comment_likes one_to_many :comment_likes
dataset.exclude! is_deleted: true def dataset
if @_is_deleted_filter_set.nil?
@dataset = @dataset.filter is_deleted: false
@_is_deleted_filter_set = true
end
super
end
def liking_site_titles def liking_site_titles
comment_likes_dataset.select(:id, :actioning_site_id).all.collect do |comment_like| comment_likes_dataset.select(:id, :actioning_site_id).all.collect do |comment_like|

View file

@ -919,7 +919,7 @@ class Site < Sequel::Model
# Check for existing email if new or changing email. # Check for existing email if new or changing email.
if new? || @original_email if new? || @original_email
email_check = self.class.select(:id).filter(email: values[:email]) email_check = self.class.select(:id).filter(email: values[:email])
email_check.exclude!(id: self.id) unless new? email_check = email_check.exclude(id: self.id) unless new?
email_check = email_check.first email_check = email_check.first
if parent? && email_check && email_check.id != self.id if parent? && email_check && email_check.id != self.id
@ -1313,19 +1313,13 @@ class Site < Sequel::Model
return suggestions if suggestions.length == limit return suggestions if suggestions.length == limit
# Old. ds = self.class.browse_dataset
#suggestions += suggestions_dataset.where("views >= #{SUGGESTIONS_VIEWS_MIN}").limit(limit-suggestions.length).order(Sequel.lit('RANDOM()')).all ds = ds.select_all :sites
ds = ds.order :follow_count.desc, :updated_at.desc
ds = ds.where Sequel.lit("views >= #{SUGGESTIONS_VIEWS_MIN}")
ds = ds.limit limit - suggestions.length
# New: suggestions += ds.all
site_dataset = self.class.browse_dataset
site_dataset.select_all! :sites
site_dataset.order! :follow_count.desc, :updated_at.desc
site_dataset.where! "views >= #{SUGGESTIONS_VIEWS_MIN}"
site_dataset.limit! limit-suggestions.length
#site_dataset.order! Sequel.lit('RANDOM()')
suggestions += site_dataset.all
end end
def screenshot_path(path, resolution) def screenshot_path(path, resolution)
@ -1548,11 +1542,9 @@ class Site < Sequel::Model
site_file ||= SiteFile.new site_id: self.id, path: relative_path site_file ||= SiteFile.new site_id: self.id, path: relative_path
site_file.set_all( site_file.set size: uploaded_size
size: uploaded_size, site_file.set sha1_hash: uploaded_sha1
sha1_hash: uploaded_sha1, site_file.set updated_at: Time.now
updated_at: Time.now
)
site_file.save site_file.save
purge_cache path purge_cache path