wco_models 3.1.0.173 → 3.1.0.175

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cd705af408f7a2df9270b4fb75723b1c657a2df5c38437468a59a490028c249e
4
- data.tar.gz: d9fbba6082924957cbc409c08a87dc60042890e2b70d538885a83f52ed3a40ab
3
+ metadata.gz: a05466d095355ec09936c5f72861b3292b272866d603196be5ace081f657c978
4
+ data.tar.gz: 00af6f41df7a96e17cab793b68b2fb5f4cedf6f84582c956ea1924ee3c0a42d6
5
5
  SHA512:
6
- metadata.gz: 4ab8a576afb201f905788bd567a828bb8a7f4f347079fa292b9a93d00dcac16dc8ec72a7625370ea11579f9d99c4597903d60809855ecf27488269c2c158b074
7
- data.tar.gz: 92decb4e332e25045a29ca87b90f7da3eabac5eaba969efdb2818b5d48e02bce135b6243b05414a9f02d2b6ad99f013b531890d27783cae2ce4ba33f399d600c
6
+ metadata.gz: b5d501169a2186a206ce0ff1cad4875bf6fd0bf1bb3cd90aa1ee93c6f33f55e30f974c63a6a268c19f5237d464385098e18aa6c9adbd3b950d32551960c22403
7
+ data.tar.gz: e3095c492065d542c85b29c93e54bce2bd0b7d6d653c6adbed89e9f230a57254c8155f39a7daefcfc2bb594c2a3fab4fb5b65cb1cd705332ba35b2d9c26eb797
@@ -90,7 +90,9 @@ textarea.monospace {
90
90
 
91
91
  /* F */
92
92
 
93
-
93
+ .flex-grow {
94
+ flex-grow: 1;
95
+ }
94
96
  .flex-row {
95
97
  display: flex;
96
98
  }
@@ -1,15 +1,25 @@
1
1
 
2
2
  class Wco::SitemapPathsController < Wco::ApplicationController
3
3
 
4
+ before_action :fix_params, only: [ :create, :update ]
5
+
4
6
  def check
5
7
  @spath = Wco::SitemapPath.find params[:id]
6
8
  authorize! :check, @spath
7
9
  @spath.check
8
10
  end
9
11
 
12
+ def clear
13
+ @spath = Wco::SitemapPath.find params[:id]
14
+ authorize! :clear, @spath
15
+ @spath.update_attributes({ results: [] })
16
+ redirect_to request.referrer || sites_path(@spath.site)
17
+ end
18
+
10
19
  def create
11
20
  authorize! :create, Wco::SitemapPath
12
21
  @spath = Wco::SitemapPath.new params[:spath].permit!
22
+
13
23
  if @spath.save
14
24
  flash_notice 'Success.'
15
25
  redirect_to wco.site_path(params[:spath][:site_id])
@@ -31,6 +41,14 @@ class Wco::SitemapPathsController < Wco::ApplicationController
31
41
  authorize! :new, @spath
32
42
  end
33
43
 
44
+ def show
45
+ @spath = Wco::SitemapPath.find params[:id]
46
+ @site = @spath.site
47
+ authorize! :show, @spath
48
+ render 'check'
49
+ end
50
+
51
+
34
52
  def update
35
53
  @spath = Wco::SitemapPath.find params[:id]
36
54
  authorize! :update, @spath
@@ -45,6 +63,19 @@ class Wco::SitemapPathsController < Wco::ApplicationController
45
63
 
46
64
  end
47
65
 
66
+ ##
67
+ ## private
68
+ ##
69
+ private
70
+
71
+ def fix_params
72
+ if params[:spath][:selectors].present?
73
+ params[:spath][:selectors] = params[:spath][:selectors].split(',').strip
74
+ else
75
+ params[:spath][:selectors] = []
76
+ end
77
+ end
78
+
48
79
 
49
80
  end
50
81
 
@@ -14,17 +14,20 @@ class Wco::SitemapPath
14
14
  field :redirect_to, type: String
15
15
  field :selector, type: String
16
16
  field :selectors, type: Array, default: []
17
+ field :title, type: String
17
18
 
18
19
  field :results, type: Array, default: []
19
20
  field :status, type: String
20
21
 
21
22
  def check
22
23
  self.status = 'NOT_OK'
24
+ skip_rest = false
25
+
23
26
  if self[:selector].present?
24
27
  begin
25
28
  body = HTTParty.get( "#{site.origin}#{self[:path]}" ).body
26
29
  rescue OpenSSL::SSL::SSLError => err
27
- results.push "NOT OK [ssl-exception] #{self[:path]}".red
30
+ results.push "NOT OK [ssl-exception] #{self[:path]}" # .red
28
31
  return
29
32
  end
30
33
  doc = Nokogiri::HTML( body )
@@ -33,17 +36,7 @@ class Wco::SitemapPath
33
36
  results.push "OK #{self[:path]}"
34
37
  self.status = 'OK'
35
38
  else
36
- results.push "NOT OK [selector-missing] #{self[:path]}".red
37
- end
38
-
39
- if self[:meta_description]
40
- out = doc.search( 'head meta[name="description"]' )[0]['content']
41
- if self[:meta_description] == out
42
- results.push "OK #{self[:path]} meta_description"
43
- self.status = 'OK'
44
- else
45
- results.push "NOT OK [meta-description-missing] #{self[:path]}".red
46
- end
39
+ results.push "NOT OK [selector-missing] #{self[:path]}" # .red
47
40
  end
48
41
 
49
42
  elsif self[:redirect_to].present?
@@ -53,33 +46,58 @@ class Wco::SitemapPath
53
46
  results.push "OK #{self[:path]}"
54
47
  self.status = 'OK'
55
48
  else
56
- results.push "NOT OK [redirect-missing] #{self[:path]}".red
49
+ results.push "NOT OK [redirect-missing] #{self[:path]}" # .red
57
50
 
58
51
  puts!( out.response, 'response' ) if DEBUG
59
52
  # puts!( out.body, 'body' ) if DEBUG
60
53
 
61
- puts "NOT OK #{self[:path]}".red
54
+ puts "NOT OK #{self[:path]}" # .red
62
55
  puts out.headers[:location]
63
56
  puts self[:redirect_to]
64
57
  end
58
+ skip_rest = true
65
59
  else
66
60
  results.push "SKIP #{self[:path]}"
67
61
  self.status = 'OK'
62
+ skip_rest = true
68
63
  end
69
64
 
70
- if self[:selectors].present?
71
- self[:selectors].each do |selector|
72
- body = HTTParty.get( "#{site.origin}#{self[:path]}" ).body
73
- doc = Nokogiri::HTML( body )
74
- out = doc.search selector
75
- if out.present?
76
- results.push "OK #{self[:path]} selectors:#{selector}"
77
- self.status = 'OK'
65
+ if !skip_rest
66
+
67
+ if self[:meta_description].present?
68
+ out = doc.search( 'head meta[name="description"]' )[0]['content']
69
+ if out.include?( self[:meta_description] )
70
+ results.push "OK #{self[:path]} meta_description"
71
+ else
72
+ self.status = 'NOT_OK'
73
+ results.push "NOT OK [meta-description-no-contain] #{self[:path]}" # .red
74
+ end
75
+ end
76
+
77
+ if self[:selectors].present?
78
+ self[:selectors].each do |selector|
79
+ out = doc.search selector
80
+ if out.present?
81
+ results.push "OK #{self[:path]} selectors:#{selector}"
82
+ else
83
+ self.status = 'NOT_OK'
84
+ results.push "NOT OK [selectors-missing:#{selector}] #{self[:path]}" # .red
85
+ end
86
+ end
87
+ end
88
+
89
+ if self[:title].present?
90
+ out = doc.search( 'head title' )[0].text
91
+ if out.include?( self[:title] )
92
+ results.push "OK #{self[:path]} title"
78
93
  else
79
- results.push "NOT OK [selectors-missing:#{selector}] #{self[:path]}".red
94
+ self.status = 'NOT_OK'
95
+ results.push "NOT OK [title-no-contain] #{self[:path]}" # .red
80
96
  end
81
97
  end
98
+
82
99
  end
100
+
83
101
  self.save
84
102
  end
85
103
 
@@ -23,7 +23,7 @@ class WcoEmail::MessageStub
23
23
  field :status, default: STATUS_PENDING
24
24
  scope :pending, ->{ where( status: STATUS_PENDING ) }
25
25
 
26
- field :bucket # 'ish-ses', 'ish-ses-2024'
26
+ field :bucket # 'ish-ses' (current), 'ish-ses-2024'
27
27
 
28
28
  field :object_key
29
29
  validates :object_key, presence: true, uniqueness: true
@@ -8,16 +8,24 @@
8
8
  = form_for spath, url: url, as: :spath do |f|
9
9
  = hidden_field_tag 'spath[site_id]', spath[:site_id] || params[:site_id]
10
10
 
11
- .d-flex
12
- .field
13
- %label Path
14
- = f.text_field :path
15
- .field
16
- %label redirect_to
17
- = f.text_field :redirect_to
18
- .field
19
- %label selector
20
- = f.text_field :selector
11
+ .field.d-flex
12
+ %label Path
13
+ = f.text_field :path, class: [ 'flex-grow' ]
14
+ .field.d-flex
15
+ %label redirect_to
16
+ = f.text_field :redirect_to, class: [ 'flex-grow' ]
17
+ %label selector
18
+ = f.text_field :selector, class: [ 'flex-grow' ]
19
+ %br
20
+ .field.d-flex
21
+ %label selectors (.a, .b , #c)
22
+ = f.text_field :selectors, value: spath.selectors.join(','), class: [ 'flex-grow' ]
23
+ .field.d-flex
24
+ %label meta_description
25
+ = f.text_field :meta_description, class: [ 'flex-grow' ]
26
+ .field.d-flex
27
+ %label title
28
+ = f.text_field :title, class: [ 'flex-grow' ]
21
29
 
22
- .actions
23
- = f.submit 'Go'
30
+ .actions
31
+ = f.submit 'Go'
@@ -19,4 +19,7 @@
19
19
  = spath.redirect_to
20
20
  - if spath.selector
21
21
  .green.ml-5= spath.selector
22
+ .green.ml-5= spath.selectors
23
+ .green.ml-5 Title: #{spath.title}
24
+ .green.ml-5 meta-descr: #{spath.meta_description}
22
25
  %td= spath.status
@@ -1,3 +1,13 @@
1
1
 
2
- .spaths-check
3
- = @spath.results.inspect
2
+ .sitemap-paths-check.maxwidth
3
+
4
+ .d-flex
5
+ = link_to 'Index', site_path(@spath.site)
6
+ %b.ml-3.mr-3= link_to @spath.path, spath_path(@spath)
7
+ = link_to '[~]', edit_spath_path(@spath)
8
+ = button_to 'clear', clear_spath_path(@spath), data: { confirm: 'Are you sure?' }
9
+
10
+ .spaths-check
11
+ %ul
12
+ - @spath.results.each do |pt|
13
+ %li= pt
data/config/routes.rb CHANGED
@@ -62,7 +62,8 @@ Wco::Engine.routes.draw do
62
62
 
63
63
  post 'sites/:id/check_sitemap', to: 'sites#check_sitemap', as: :check_sitemap
64
64
  resources :sites
65
- get 'sitemap_paths/:id/check', to: 'sitemap_paths#check', as: :check_spath
65
+ get 'sitemap_paths/:id/check', to: 'sitemap_paths#check', as: :check_spath
66
+ post 'sitemap_paths/:id/clear', to: 'sitemap_paths#clear', as: :clear_spath
66
67
  resources :sitemap_paths, as: :spaths
67
68
  resources :subscriptions
68
69
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wco_models
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.0.173
4
+ version: 3.1.0.175
5
5
  platform: ruby
6
6
  authors:
7
7
  - Victor Pudeyev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-08-22 00:00:00.000000000 Z
11
+ date: 2024-08-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ahoy_matey