History

Fix scraper and improve readability

MasterEnoc committed 5 years ago

Commit a8c5c311 parent a4b85692 files · +66 −17Browse files

Unified · Split

2 files
  1. lib/docs/filters/rethinkdb/entries.rb +10 −1
  2. lib/docs/scrapers/rethinkdb.rb +56 −16
lib/docs/filters/rethinkdb/entries.rb+10−1
@@ -1,9 +1,17 @@
11 module Docs
22 class Rethinkdb
33 class EntriesFilter < Docs::EntriesFilter
4+
45 def get_name
56 if subpath.start_with?('api')
6− at_css('.title').content.remove('ReQL command:').split(', ').first
7+ name = at_css('.title').content.remove('ReQL command:').split(', ').first
8+
9+ if name.strip.empty?
10+ 'lt'
11+ else
12+ name
13+ end
14+
715 else
816 at_css('.docs-nav .active').content
917 end
@@ -30,6 +38,7 @@ module Docs · 20 unmodified lines
3038 def include_default_entry?
3139 at_css('.docs-article p').try(:content) != 'Choose your language:'
3240 end
41+
3342 end
3443 end
3544 end
lib/docs/scrapers/rethinkdb.rb+56−16
@@ -13,14 +13,18 @@ module Docs · 12 unmodified lines
1313 html_filters.push 'rethinkdb/entries', 'rethinkdb/clean_html'
1414
1515 options[:trailing_slash] = true
16+
1617 options[:container] = '.documentation'
1718
1819 options[:only_patterns] = [/\Adocs/]
20+
1921 options[:skip_patterns] = [/docs\/install(\-drivers)?\/./]
22+
2023 options[:skip] = %w(
2124 docs/build/
2225 docs/tutorials/elections/
23− docs/tutorials/superheroes/)
26+ docs/tutorials/superheroes/
27+ )
2428
2529 MULTILANG_DOCS = %w(
2630 changefeeds
@@ -33,31 +37,66 @@ module Docs · 6 unmodified lines
3337 rabbitmq
3438 secondary-indexes
3539 sql-to-reql
36− storing-binary)
40+ storing-binary
41+ )
3742
3843 options[:attribution] = <<-HTML
3944 &copy; RethinkDB contributors<br>
4045 Licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
4146 HTML
4247
43− %w(JavaScript Ruby Python Java).each do |name|
44− path = name.downcase
45− instance_eval <<-CODE
46− version '#{name}' do
47− self.initial_paths = %w(api/#{path}/)
48+ version 'javascript' do
49+ self.initial_paths = %w(api/javascript/)
4850
49− options[:only_patterns] += [/\\Aapi\\/#{path}\\//]
51+ options[:only_patterns] += [/\Aapi\/javascript\//]
5052
51− options[:fix_urls] = ->(url) do
52− url.sub! %r{rethinkdb.com/docs/(#{MULTILANG_DOCS.join('|')})\\z}, 'rethinkdb.com/docs/\\1/#{path}/'
53− url.sub! %r{rethinkdb.com/docs/(#{MULTILANG_DOCS.join('|')})/(?!#{path}/).*}, 'rethinkdb.com/docs/\\1/#{path}/'
54− url.sub! %r{rethinkdb.com/api/(?!javascript|ruby|python|java)}, 'rethinkdb.com/api/#{path}/'
55− url
56− end
57− end
58− CODE
53+ options[:fix_urls] = ->(url) do
54+ url.sub! %r{rethinkdb.com/docs/(#{MULTILANG_DOCS.join('|')})\\z}, 'rethinkdb.com/docs/\\1/javascript/'
55+ url.sub! %r{rethinkdb.com/docs/(#{MULTILANG_DOCS.join('|')})/(?!javascript/).*}, 'rethinkdb.com/docs/\\1/javascript/'
56+ url.sub! %r{rethinkdb.com/api/(?!javascript|ruby|python|java)}, 'rethinkdb.com/api/javascript/'
57+ url
58+ end
5959 end
6060
61+ version 'ruby' do
62+ self.initial_paths = %w(api/ruby/)
63+
64+ options[:only_patterns] += [/\Aapi\/ruby\//]
65+
66+ options[:fix_urls] = ->(url) do
67+ url.sub! %r{rethinkdb.com/docs/(#{MULTILANG_DOCS.join('|')})\\z}, 'rethinkdb.com/docs/\\1/ruby/'
68+ url.sub! %r{rethinkdb.com/docs/(#{MULTILANG_DOCS.join('|')})/(?!ruby/).*}, 'rethinkdb.com/docs/\\1/ruby/'
69+ url.sub! %r{rethinkdb.com/api/(?!javascript|ruby|python|java)}, 'rethinkdb.com/api/ruby/'
70+ url
71+ end
72+ end
73+
74+ version 'python' do
75+ self.initial_paths = %w(api/python/)
76+
77+ options[:only_patterns] += [/\Aapi\/python\//]
78+
79+ options[:fix_urls] = ->(url) do
80+ url.sub! %r{rethinkdb.com/docs/(#{MULTILANG_DOCS.join('|')})\\z}, 'rethinkdb.com/docs/\\1/python/'
81+ url.sub! %r{rethinkdb.com/docs/(#{MULTILANG_DOCS.join('|')})/(?!python/).*}, 'rethinkdb.com/docs/\\1/python/'
82+ url.sub! %r{rethinkdb.com/api/(?!javascript|ruby|python|java)}, 'rethinkdb.com/api/python/'
83+ url
84+ end
85+ end
86+
87+ version 'java' do
88+ self.initial_paths = %w(api/java/)
89+
90+ options[:only_patterns] += [/\Aapi\/java\//]
91+
92+ options[:fix_urls] = ->(url) do
93+ url.sub! %r{rethinkdb.com/docs/(#{MULTILANG_DOCS.join('|')})\\z}, 'rethinkdb.com/docs/\\1/java/'
94+ url.sub! %r{rethinkdb.com/docs/(#{MULTILANG_DOCS.join('|')})/(?!java/).*}, 'rethinkdb.com/docs/\\1/java/'
95+ url.sub! %r{rethinkdb.com/api/(?!javascript|ruby|python|java)}, 'rethinkdb.com/api/java/'
96+ url
97+ end
98+ end
99+
61100 def get_latest_version(opts)
62101 get_latest_github_release('rethinkdb', 'rethinkdb', opts)
63102 end
@@ -68,5 +107,6 @@ module Docs · 4 unmodified lines
68107 return false unless super
69108 response.body !~ /http-equiv="refresh"/i
70109 end
110+
71111 end
72112 end