faker 2.21.0 → 2.23.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +58 -0
  3. data/README.md +4 -6
  4. data/lib/faker/blockchain/aeternity.rb +1 -1
  5. data/lib/faker/blockchain/ethereum.rb +1 -1
  6. data/lib/faker/blockchain/tezos.rb +1 -1
  7. data/lib/faker/default/{faker_adjective.rb → adjective.rb} +0 -0
  8. data/lib/faker/default/bank.rb +4 -4
  9. data/lib/faker/default/chile_rut.rb +8 -4
  10. data/lib/faker/default/code.rb +7 -7
  11. data/lib/faker/default/company.rb +4 -4
  12. data/lib/faker/default/file.rb +3 -3
  13. data/lib/faker/default/finance.rb +16 -2
  14. data/lib/faker/default/id_number.rb +106 -1
  15. data/lib/faker/default/internet.rb +24 -3
  16. data/lib/faker/default/markdown.rb +3 -3
  17. data/lib/faker/default/nhs.rb +1 -1
  18. data/lib/faker/default/vehicle.rb +18 -5
  19. data/lib/faker/default/vulnerability_identifier.rb +23 -0
  20. data/lib/faker/japanese_media/kamen_rider.rb +2 -2
  21. data/lib/faker/japanese_media/one_piece.rb +1 -1
  22. data/lib/faker/sports/mountaineering.rb +22 -0
  23. data/lib/faker/sports/sport.rb +110 -0
  24. data/lib/faker/version.rb +1 -1
  25. data/lib/faker.rb +15 -10
  26. data/lib/helpers/base58.rb +1 -1
  27. data/lib/helpers/unique_generator.rb +13 -11
  28. data/lib/locales/en/australia.yml +3 -4
  29. data/lib/locales/en/computer.yml +23 -4
  30. data/lib/locales/en/dota.yml +113 -0
  31. data/lib/locales/en/file.yml +9 -1
  32. data/lib/locales/en/finance.yml +3 -1
  33. data/lib/locales/en/internet.yml +29 -0
  34. data/lib/locales/en/mountaineering.yml +14 -0
  35. data/lib/locales/en/one_piece.yml +1 -1
  36. data/lib/locales/en/sport.yml +121 -0
  37. data/lib/locales/en/vehicle.yml +2809 -75
  38. data/lib/locales/en-AU.yml +1 -1
  39. data/lib/locales/ja/adjective.yml +148 -0
  40. data/lib/locales/ja/dog.yml +1 -0
  41. data/lib/locales/pl.yml +1 -1
  42. metadata +18 -12
@@ -83,14 +83,14 @@ module Faker
83
83
  end
84
84
 
85
85
  def from_eras(*input_eras, field:)
86
- selected_eras = (ERAS & input_eras).yield_self do |selected|
86
+ selected_eras = (ERAS & input_eras).then do |selected|
87
87
  selected.empty? ? eras : selected
88
88
  end.dup
89
89
  yield(selected_eras) if block_given?
90
90
 
91
91
  raise UnavailableInEra, "#{field} is unavailable in the selected eras." if selected_eras.empty?
92
92
 
93
- selected_eras.sample.yield_self do |era|
93
+ selected_eras.sample.then do |era|
94
94
  fetch("kamen_rider.#{era}.#{field}")
95
95
  end
96
96
  end
@@ -79,7 +79,7 @@ module Faker
79
79
  #
80
80
  # @faker.version 1.8.5
81
81
  def akuma_no_mi
82
- fetch('one_piece.akumas_no_mi')
82
+ fetch('one_piece.akuma_no_mi')
83
83
  end
84
84
  end
85
85
  end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Sports
5
+ class Mountaineering < Base
6
+ class << self
7
+ ##
8
+ # Produces the name of a Mountaineer.
9
+ #
10
+ # @return [String]
11
+ #
12
+ # @example
13
+ # Faker::Sports::Mountaineering.mountaineer #=> "Junko Tabei"
14
+ #
15
+ # @faker.version next
16
+ def mountaineer
17
+ fetch('mountaineering.mountaineer')
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,110 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Sport < Base
5
+ class << self
6
+ ##
7
+ # Produces a sport from the modern olympics or paralympics, summer or winter.
8
+ #
9
+ # @param include_ancient [Boolean] If true, may produce a sport from the ancient olympics
10
+ # @param include_unusual [Boolean] If true, may produce an unusual (definitely not olympic) sport
11
+ #
12
+ # @return [String]
13
+ #
14
+ # @example
15
+ # Faker::Sport.sport #=> "Football"
16
+ # @example
17
+ # Faker::Sport.sport(include_ancient: true) #=> "Chariot racing"
18
+ # @example
19
+ # Faker::Sport.sport(include_unsual: true) #=> "Flugtag/Birdman"
20
+ # @example
21
+ # Faker::Sport.sport(include_ancient:true, include_unusual: true) #=> "Water polo"
22
+ #
23
+ # @faker.version next
24
+ def sport(include_ancient: false, include_unusual: false)
25
+ sports = fetch_all('sport.summer_olympics') + fetch_all('sport.winter_olympics') + fetch_all('sport.summer_paralympics') + fetch_all('sport.winter_paralympics')
26
+ sports << fetch_all('sport.ancient_olympics') if include_ancient
27
+ sports << fetch_all('sport.unusual') if include_unusual
28
+ sample(sports)
29
+ end
30
+
31
+ ##
32
+ # Produces a sport from the summer olympics.
33
+ #
34
+ # @return [String]
35
+ #
36
+ # @example
37
+ # Faker::Sport.summer_olympics_sport #=> "Archery"
38
+ #
39
+ # @faker.version next
40
+ def summer_olympics_sport
41
+ fetch('sport.summer_olympics')
42
+ end
43
+
44
+ ##
45
+ # Produces a sport from the winter olympics.
46
+ #
47
+ # @return [String]
48
+ #
49
+ # @example
50
+ # Faker::Sport.winter_olympics_sport #=> "Bobsleigh"
51
+ #
52
+ # @faker.version next
53
+ def winter_olympics_sport
54
+ fetch('sport.winter_olympics')
55
+ end
56
+
57
+ ##
58
+ # Produces a sport from the summer paralympics.
59
+ #
60
+ # @return [String]
61
+ #
62
+ # @example
63
+ # Faker::Sport.summer_paralympics_sport #=> "Wheelchair Basketball"
64
+ #
65
+ # @faker.version next
66
+ def summer_paralympics_sport
67
+ fetch('sport.summer_paralympics')
68
+ end
69
+
70
+ ##
71
+ # Produces a sport from the winter paralympics.
72
+ #
73
+ # @return [String]
74
+ #
75
+ # @example
76
+ # Faker::Sport.winter_paralympics_sport #=> "Para Ice Hockey"
77
+ #
78
+ # @faker.version next
79
+ def winter_paralympics_sport
80
+ fetch('sport.winter_paralympics')
81
+ end
82
+
83
+ ##
84
+ # Produces an unusual sport.
85
+ #
86
+ # @return [String]
87
+ #
88
+ # @example
89
+ # Faker::Sport.unusual_sport #=> "Camel Jumping"
90
+ #
91
+ # @faker.version next
92
+ def unusual_sport
93
+ fetch('sport.unusual')
94
+ end
95
+
96
+ ##
97
+ # Produces a sport from the ancient olympics.
98
+ #
99
+ # @return [String]
100
+ #
101
+ # @example
102
+ # Faker::Sport.ancient_olympics_sport #=> "Pankration"
103
+ #
104
+ # @faker.version next
105
+ def ancient_olympics_sport
106
+ fetch('sport.ancient_olympics')
107
+ end
108
+ end
109
+ end
110
+ end
data/lib/faker/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Faker # :nodoc:
4
- VERSION = '2.21.0'
4
+ VERSION = '2.23.0'
5
5
  end
data/lib/faker.rb CHANGED
@@ -13,23 +13,26 @@ I18n.reload! if I18n.backend.initialized?
13
13
 
14
14
  module Faker
15
15
  module Config
16
- @locale = nil
17
- @random = nil
18
-
19
16
  class << self
20
- attr_writer :locale, :random
17
+ def locale=(new_locale)
18
+ Thread.current[:faker_config_locale] = new_locale
19
+ end
21
20
 
22
21
  def locale
23
22
  # Because I18n.locale defaults to :en, if we don't have :en in our available_locales, errors will happen
24
- @locale || (I18n.available_locales.include?(I18n.locale) ? I18n.locale : I18n.available_locales.first)
23
+ Thread.current[:faker_config_locale] || (I18n.available_locales.include?(I18n.locale) ? I18n.locale : I18n.available_locales.first)
25
24
  end
26
25
 
27
26
  def own_locale
28
- @locale
27
+ Thread.current[:faker_config_locale]
28
+ end
29
+
30
+ def random=(new_random)
31
+ Thread.current[:faker_config_random] = new_random
29
32
  end
30
33
 
31
34
  def random
32
- @random || Random.new
35
+ Thread.current[:faker_config_random] || Random
33
36
  end
34
37
  end
35
38
  end
@@ -41,6 +44,8 @@ module Faker
41
44
  Letters = ULetters + LLetters
42
45
 
43
46
  class << self
47
+ attr_reader :flexible_key
48
+
44
49
  NOT_GIVEN = Object.new
45
50
 
46
51
  ## by default numerify results do not start with a zero
@@ -87,7 +92,7 @@ module Faker
87
92
  .gsub(/(\\?.)\{(\d+),(\d+)\}/) { |_match| Regexp.last_match(1) * sample(Array(Range.new(Regexp.last_match(2).to_i, Regexp.last_match(3).to_i))) } # A{1,2} becomes A or AA or \d{3} becomes \d\d\d
88
93
  .gsub(/\((.*?)\)/) { |match| sample(match.gsub(/[()]/, '').split('|')) } # (this|that) becomes 'this' or 'that'
89
94
  .gsub(/\[([^\]]+)\]/) { |match| match.gsub(/(\w-\w)/) { |range| sample(Array(Range.new(*range.split('-')))) } } # All A-Z inside of [] become C (or X, or whatever)
90
- .gsub(/\[([^\]]+)\]/) { |_match| sample(Regexp.last_match(1).split('')) } # All [ABC] become B (or A or C)
95
+ .gsub(/\[([^\]]+)\]/) { |_match| sample(Regexp.last_match(1).chars) } # All [ABC] become B (or A or C)
91
96
  .gsub('\d') { |_match| sample(Numbers) }
92
97
  .gsub('\w') { |_match| sample(Letters) }
93
98
  end
@@ -185,9 +190,9 @@ module Faker
185
190
  # girls_name: ["Alice", "Cheryl", "Tatiana"]
186
191
  # Then you can call Faker::Name.girls_name and it will act like #first_name
187
192
  def method_missing(mth, *args, &block)
188
- super unless @flexible_key
193
+ super unless flexible_key
189
194
 
190
- if (translation = translate("faker.#{@flexible_key}.#{mth}"))
195
+ if (translation = translate("faker.#{flexible_key}.#{mth}"))
191
196
  sample(translation)
192
197
  else
193
198
  super
@@ -7,7 +7,7 @@ module Faker
7
7
  base = alphabet.size
8
8
 
9
9
  lv = 0
10
- str.split('').reverse.each_with_index { |v, i| lv += v.unpack1('C') * 256**i }
10
+ str.chars.reverse.each_with_index { |v, i| lv += v.unpack1('C') * 256**i }
11
11
 
12
12
  ret = +''
13
13
  while lv.positive?
@@ -2,16 +2,9 @@
2
2
 
3
3
  module Faker
4
4
  class UniqueGenerator
5
- @marked_unique = Set.new # Holds names of generators with unique values
6
-
7
- class << self
8
- attr_reader :marked_unique
9
- end
10
-
11
5
  def initialize(generator, max_retries)
12
6
  @generator = generator
13
7
  @max_retries = max_retries
14
- @previous_results = Hash.new { |hash, key| hash[key] = Set.new }
15
8
  end
16
9
 
17
10
  def method_missing(name, *arguments)
@@ -20,9 +13,9 @@ module Faker
20
13
  @max_retries.times do
21
14
  result = @generator.public_send(name, *arguments)
22
15
 
23
- next if @previous_results[[name, arguments]].include?(result)
16
+ next if previous_results[[name, arguments]].include?(result)
24
17
 
25
- @previous_results[[name, arguments]] << result
18
+ previous_results[[name, arguments]] << result
26
19
  return result
27
20
  end
28
21
 
@@ -39,8 +32,17 @@ module Faker
39
32
 
40
33
  RetryLimitExceeded = Class.new(StandardError)
41
34
 
35
+ def previous_results
36
+ Thread.current[:faker_unique_generator_previous_results] ||= {}
37
+ Thread.current[:faker_unique_generator_previous_results][@generator] ||= Hash.new { |hash, key| hash[key] = Set.new }
38
+ end
39
+
42
40
  def clear
43
- @previous_results.clear
41
+ previous_results.clear
42
+ end
43
+
44
+ def self.marked_unique
45
+ Thread.current[:faker_unique_generator_marked_unique] ||= Set.new
44
46
  end
45
47
 
46
48
  def self.clear
@@ -51,7 +53,7 @@ module Faker
51
53
  def exclude(name, arguments, values)
52
54
  values ||= []
53
55
  values.each do |value|
54
- @previous_results[[name, arguments]] << value
56
+ previous_results[[name, arguments]] << value
55
57
  end
56
58
  end
57
59
  end
@@ -5,7 +5,6 @@ en:
5
5
  - Brisbane
6
6
  - Sydney
7
7
  - Melbourne
8
- - Brisbane
9
8
  - Perth
10
9
  - Adelaide
11
10
  - Gold Coast
@@ -85,7 +84,7 @@ en:
85
84
  - Cane Toad
86
85
  - Redback Spider
87
86
  - Funnel Web Spider
88
- - Blue Ringed OCtopus
87
+ - Blue Ringed Octopus
89
88
  - Fresh Water Crocodile
90
89
  - Skink
91
90
  - Thorny Devil
@@ -98,11 +97,11 @@ en:
98
97
  - Saltwater Crocodile
99
98
  - Eastern Brown Snake
100
99
  states:
101
- - New South wales
100
+ - New South Wales
102
101
  - Queensland
103
102
  - Western Australia
104
103
  - Northern Territory
105
104
  - South Australia
106
105
  - Australian Capital Territory
107
- - Visctoria
106
+ - Victoria
108
107
  - Tasmania
@@ -4,30 +4,49 @@ en:
4
4
  type:
5
5
  - server
6
6
  - workstation
7
- platform:
7
+ platform:
8
8
  - Linux
9
9
  - macOS
10
10
  - Windows
11
+ - OpenBSD
12
+ - TempleOS
13
+ - Plan 9
11
14
  os:
12
15
  linux:
13
- - RHEL 6.10
16
+ - RHEL 9.0
14
17
  - RHEL 7.7
15
- - CentOS 8
18
+ - RHEL 6.10
19
+ - CentOS 8.5
16
20
  - CentOS 7
17
21
  - CentOS 6
22
+ - Debian 11.4.0
18
23
  - Debian 10.10.3
19
24
  - Debian 9.9.10
20
- - Ubuntu Server 18.04
25
+ - Ubuntu Server 22.04
26
+ - Ubuntu Server 20.04
21
27
  - Ubuntu Server 19.10
28
+ - Ubuntu Server 18.04
29
+ - ArchLinux 2022.08.05
22
30
  - ArchLinux 2020.02.01
31
+ - openSUSE Leap 15.4
23
32
  - openSUSE Leap 15.1
33
+ - Ubuntu Desktop 22.04
34
+ - Ubuntu Desktop 20.04
24
35
  - Ubuntu Desktop 18.04
25
36
  - Ubuntu Desktop 19.10
37
+ openbsd:
38
+ - OpenBSD 7.1
39
+ - OpenBSD 6
40
+ templeos:
41
+ - TempleOS 5.03
42
+ plan 9:
43
+ - Plan 9 Fourth Edition
26
44
  macos:
27
45
  - Catalina (10.15)
28
46
  - Mojave (10.14)
29
47
  - High Sierra (10.13)
30
48
  windows:
49
+ - Windows 11
31
50
  - Windows 10
32
51
  - Windows 8.1
33
52
  - Windows 7
@@ -12,14 +12,127 @@ en:
12
12
  hero:
13
13
  - Abaddon
14
14
  - Alchemist
15
+ - Ancient Apparition
16
+ - Anti-Mage
17
+ - Arc Warden
15
18
  - Axe
19
+ - Bane
20
+ - Batrider
16
21
  - Beastmaster
22
+ - Bloodseeker
23
+ - Bounty Hunter
17
24
  - Brewmaster
18
25
  - Bristleback
26
+ - Broodmother
19
27
  - Centaur Warrunner
20
28
  - Chaos Knight
29
+ - Chen
30
+ - Clinkz
21
31
  - Clockwerk
32
+ - Crystal Maiden
33
+ - Dark Seer
34
+ - Dark Willow
35
+ - Dawnbreaker
36
+ - Dazzle
37
+ - Death Prophet
38
+ - Disruptor
39
+ - Doom
40
+ - Dragon Knight
41
+ - Drow Ranger
42
+ - Earth Spirit
43
+ - Earthshaker
44
+ - Elder Titan
45
+ - Ember Spirit
46
+ - Enchantress
47
+ - Enigma
48
+ - Faceless Void
49
+ - Grimstroke
50
+ - Gyrocopter
51
+ - Hoodwink
52
+ - Huskar
53
+ - Invoker
54
+ - Io
55
+ - Jakiro
56
+ - Juggernaut
57
+ - Keeper of the Light
58
+ - Kunkka
59
+ - Legion Commander
60
+ - Leshrac
61
+ - Lich
62
+ - Lifestealer
63
+ - Lina
64
+ - Lion
65
+ - Lone Druid
66
+ - Luna
67
+ - Lycan
68
+ - Magnus
69
+ - Marci
70
+ - Mars
71
+ - Medusa
22
72
  - Meepo
73
+ - Mirana
74
+ - Monkey King
75
+ - Morphling
76
+ - Naga Siren
77
+ - Nature's Prophet
78
+ - Necrophos
79
+ - Night Stalker
80
+ - Nyx Assassin
81
+ - Ogre Magi
82
+ - Omniknight
83
+ - Oracle
84
+ - Outworld Destroyer
85
+ - Pangolier
86
+ - Phantom Assassin
87
+ - Phantom Lancer
88
+ - Phoenix
89
+ - Primal Beast
90
+ - Puck
91
+ - Pudge
92
+ - Pugna
93
+ - Queen of Pain
94
+ - Razor
95
+ - Riki
96
+ - Rubick
97
+ - Sand King
98
+ - Shadow Demon
99
+ - Shadow Fiend
100
+ - Shadow Shaman
101
+ - Silencer
102
+ - Skywrath Mage
103
+ - Slardar
104
+ - Slark
105
+ - Snapfire
106
+ - Sniper
107
+ - Spectre
108
+ - Spirit Breaker
109
+ - Storm Spirit
110
+ - Sven
111
+ - Techies
112
+ - Templar Assassin
113
+ - Terrorblade
114
+ - Tidehunter
115
+ - Timbersaw
116
+ - Tinker
117
+ - Tiny
118
+ - Treant Protector
119
+ - Troll Warlord
120
+ - Tusk
121
+ - Underlord
122
+ - Undying
123
+ - Ursa
124
+ - Vengeful Spirit
125
+ - Venomancer
126
+ - Viper
127
+ - Visage
128
+ - Void Spirit
129
+ - Warlock
130
+ - Weaver
131
+ - Windranger
132
+ - Winter Wyvern
133
+ - Witch Doctor
134
+ - Wraith King
135
+ - Zeus
23
136
  abaddon:
24
137
  quote:
25
138
  - You have called death upon yourself.
@@ -2,4 +2,12 @@ en:
2
2
  faker:
3
3
  file:
4
4
  extension: ["flac", "mp3", "wav", "bmp", "gif", "jpeg", "jpg", "png", "tiff", "css", "csv", "html", "js", "json", "txt", "mp4", "avi", "mov", "webm", "doc", "docx", "xls", "xlsx", "ppt", "pptx", "odt", "ods", "odp", "pages", "numbers", "key", "pdf"]
5
- mime_type: ["application/atom+xml", "application/ecmascript", "application/EDI-X12", "application/EDIFACT", "application/json", "application/javascript", "application/ogg", "application/pdf", "application/postscript", "application/rdf+xml", "application/rss+xml", "application/soap+xml", "application/font-woff", "application/xhtml+xml", "application/xml-dtd", "application/xop+xml", "application/zip", "application/gzip", "audio/basic", "audio/L24", "audio/mp4", "audio/mpeg", "audio/ogg", "audio/vorbis", "audio/vnd.rn-realaudio", "audio/vnd.wave", "audio/webm", "image/gif", "image/jpeg", "image/pjpeg", "image/png", "image/svg+xml", "image/tiff", "image/vnd.microsoft.icon", "message/http", "message/imdn+xml", "message/partial", "message/rfc822", "model/example", "model/iges", "model/mesh", "model/vrml", "model/x3d+binary", "model/x3d+vrml", "model/x3d+xml", "multipart/mixed", "multipart/alternative", "multipart/related", "multipart/form-data", "multipart/signed", "multipart/encrypted", "text/cmd", "text/css", "text/csv", "text/html", "text/javascript", "text/plain", "text/vcard", "text/xml", "video/mpeg", "video/mp4", "video/ogg", "video/quicktime", "video/webm", "video/x-matroska", "video/x-ms-wmv", "video/x-flv"]
5
+ mime_type:
6
+ application: ["application/atom+xml", "application/ecmascript", "application/EDI-X12", "application/EDIFACT", "application/json", "application/javascript", "application/ogg", "application/pdf", "application/postscript", "application/rdf+xml", "application/rss+xml", "application/soap+xml", "application/font-woff", "application/xhtml+xml", "application/xml-dtd", "application/xop+xml", "application/zip", "application/gzip"]
7
+ audio: ["audio/basic", "audio/L24", "audio/mp4", "audio/mpeg", "audio/ogg", "audio/vorbis", "audio/vnd.rn-realaudio", "audio/vnd.wave", "audio/webm"]
8
+ image: ["image/gif", "image/jpeg", "image/pjpeg", "image/png", "image/svg+xml", "image/tiff", "image/vnd.microsoft.icon"]
9
+ message: ["message/http", "message/imdn+xml", "message/partial", "message/rfc822"]
10
+ model: ["model/example", "model/iges", "model/mesh", "model/vrml", "model/x3d+binary", "model/x3d+vrml", "model/x3d+xml"]
11
+ multipart: ["multipart/mixed", "multipart/alternative", "multipart/related", "multipart/form-data", "multipart/signed", "multipart/encrypted"]
12
+ text: ["text/cmd", "text/css", "text/csv", "text/html", "text/javascript", "text/plain", "text/vcard", "text/xml"]
13
+ video: ["video/mpeg", "video/mp4", "video/ogg", "video/quicktime", "video/webm", "video/x-matroska", "video/x-ms-wmv", "video/x-flv"]
@@ -48,6 +48,8 @@ en:
48
48
  - /6706#########{5,6}L/
49
49
  - /6771#########{5,6}L/
50
50
  - /6709#########{5,6}L/
51
+ condominium_fiscal_code:
52
+ IT: "#########"
51
53
  vat_number:
52
54
  AT: "ATU########"
53
55
  AR: "AR###########"
@@ -79,7 +81,7 @@ en:
79
81
  HR: "HR### ### ### ##"
80
82
  "NO": "NO#########"
81
83
  HU: "HU########"
82
- IT: "IT##########"
84
+ IT: "IT###########"
83
85
  LT:
84
86
  - "LT#########"
85
87
  - "LT############"
@@ -124,3 +124,32 @@ en:
124
124
  - Opera/9.80 (X11; Linux i686; Ubuntu/14.10) Presto/2.12.388 Version/12.16
125
125
  safari:
126
126
  - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/7046A194A
127
+ bot_user_agent:
128
+ googlebot:
129
+ - Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Chrome/83.0.4103.122 Safari/537.36
130
+ - Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Chrome/99.0.4844.84 Safari/537.36
131
+ - Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
132
+ - Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Chrome/87.0.4280.90 Safari/537.36
133
+ - Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Safari/537.36 Googlebot-Image/1.0
134
+ bingbot:
135
+ - Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) Chrome/86.0.4240.68 Safari/537.36 Edg/86.0.622.31
136
+ - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534 +(KHTML, like Gecko) BingPreview/1.0b
137
+ - Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0; BingPreview/1.0b) like Gecko
138
+ - Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) Chrome/98.0.4758.102 Safari/537.36
139
+ - Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
140
+ duckduckbot:
141
+ - DuckDuckBot-Https/1.1; (+https://duckduckgo.com/duckduckbot)
142
+ - Mozilla/5.0 (compatible; DuckDuckBot-Https/1.1; https://duckduckgo.com/duckduckbot)
143
+ - DuckDuckBot/1.1; (+http://duckduckgo.com/duckduckbot.html)
144
+ - DuckDuckBot-Https/1.1; (+https://duckduckgo.com/duckduckbot)
145
+ - Mozilla/5.0 (compatible; DuckDuckBot-Https/1.1; https://duckduckgo.com/duckduckbot)
146
+ baiduspider:
147
+ - Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1 (compatible; Baiduspider-render/2.0 ; +http://www.baidu.com/search/spider.html)
148
+ - Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1 (compatible; Baiduspider-render/2.0 ; Smartapp; +http://www.baidu.com/search/spider.html)
149
+ - Mozilla/5.0 (compatible; Baiduspider-render/2.0 ; +http://www.baidu.com/search/spider.html)
150
+ yandexbot:
151
+ - Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)
152
+ - Mozilla/5.0 (compatible; YandexDirect/3.0; +http://yandex.com/bots)
153
+ - Mozilla/5.0 (compatible; YandexMetrika/2.0; +http://yandex.com/bots yabs01)
154
+ - Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.268
155
+ - Mozilla/5.0 (compatible; YandexImages/3.0; +http://yandex.com/bots)
@@ -0,0 +1,14 @@
1
+ en:
2
+ faker:
3
+ mountaineering:
4
+ mountaineer:
5
+ - Junko Tabei
6
+ - Catherine Destivelle
7
+ - Sasha DiGiulian
8
+ - Priti Wright
9
+ - Caroline Gleich
10
+ - Conrad Anker
11
+ - Edmund Hillary
12
+ - George Mallory
13
+ - Steve House
14
+ - Fred Beckey
@@ -6,4 +6,4 @@ en:
6
6
  islands: ["Dawn Island", "Goat Island", "Shells Town", "Organ Islands", "Island of Rare Animals", "Gecko Islands", "Conomi Islands", "Loguetown", "Kumate Island", "Mirrorball Island", "Tequila Wolf", "Cozia", "Ohara", "Ilusia", "Thriller Bark", "Toroa", "Las Camp", "Kano Country", "Germa Kingdom", "Lvneel Kingdom", "Micqueot", "Spider Miles", "Flevance", "Rubeck Island", "Swallow Island", "Minion Island", "Rakesh", "Notice", "Briss Kingdom", "Karate Island", "Centaurea", "Torino Kingdom", "Baterilla", "Black Drum Kingdom", "Fishman Island", "Amazon Lily", "Impel Down", "Rasukaina", "Cactus Island", "Little Garden", "Holliday Island", "Drum Island", "Alabasta", "Nanimonai Island", "Jaya", "Long Ring Long Land", "Water 7", "Enies Lobby", "San Faldo", "Pucci", "St. Poplar", "Florian Triangle", "Sabaody Archipelago", "Marineford", "Vira", "Banaro Island", "Yuki's Island", "Buggy's Treasure Island", "G-2", "Karakuri Island", "Mamoiro Island", "Boin Archipelago", "Namakura Island", "Kuraigana Island", "Merveille", "G-1", "Yukiryu Island", "Baltigo", "Wano Country", "Edd War", "Floodvalter", "G-5", "Laftel", "Whole Cake Island", "Cacao Island", "Jam Island", "Nuts Island", "Cheese Island", "Biscuits Island", "Candy Island", "Milk Island", "Punk Hazard", "Raijin Island", "Risky Red Island", "Mystoria Island", "Dressrosa", "Green Bit", "Zou", "Prodence Kingdom", "Applenine Island", "Karai Bari Island", "Broc Coli Island", "Elbaf", "Skypiea", "Weatheria"]
7
7
  locations: ["Foosha Village", "Mt. Colubo", "Gray Terminal", "Midway Forest", "Goa Kingdom", "Orange Town", "Syrup Village", "Shimotsuki Village", "Baratie", "Gosa Village", "Cocoyashi Village", "Arlong Park", "Ryugu Kingdom", "Reverse Mountain", "Twin Cape", "Mariejois", "Whiskey Peak", "Bighorn", "Drum Rockies", "Cocoa Weed", "Gyasta", "Robelie", "Sandora Desert", "Sandora River", "Rainbase", "Yuba", "Erumalu", "Nanohana", "Katorea", "Spiders Cafe", "Alubarna", "Tamarisk", "Suiren", "Mock Town", "Sea Train Area", "Totto Land", "Acacia", "Sebio", "Moon", "Birka", "Angel Island", "Upper Yard", "Shandia Village", "Heaven's Gate", "Clouds End", "Rommel Kingdom", "Eight Nine Island", "High Mountain", "Nakrowa", "Land of Ice", "Great Kingdom"]
8
8
  quotes: ["I love heroes, but I don't want to be one. Do you even know what a hero is!? For example, you have some meat. Pirates will feast on the meat, but the hero will distribute it among the people! I want to eat the meat!", "Don't ever think there's any perfect society made by humans!! If you think that way you'll overlook the enemy!! Don't be fooled by appearances!", "If I can't even protect my captain's dream, then whatever ambition I have is nothing but talk! Luffy must be the man who becomes the Pirate King!", "Old man, everyone!! And you.. Luffy. Even though I've been good for nothing my whole life, even though I have the blood of a demon within me... You guys still loved me! Thank you so much!!", "Compared to the \"righteous\" greed of the rulers, the criminals of the world seem much more honorable. When scum rules the world, only more scum is born.", "Pirates are evil? The Marines are righteous?... Justice will prevail, you say? But of course it will! Whoever wins this war becomes justice!", "When do you think people die? When they are shot through the heart by the bullet of a pistol? No. When they are ravaged by an incurable disease? No... It’s when they're forgotten!", "You can spill drinks on me, even spit on me. I'll just laugh about it. But If you dare to hurt my friends... I won't forgive you!", "The government says your existence is a crime, but no matter what kind of weapons you may hold, just being alive isn't a sin! There's no crime in living!", "ONE PIECE IS REAL!", "It's not some sort of special power. He has the ability to make allies of everyone he meets. And that is the most fearsome ability on the high seas.", "I want to live!", "Maybe nothing in this world happens by accident. As everything happens for a reason, our destiny slowly takes form.", "Food is a gift from god. Spices are a gift from the devil. It looks like it was a bit too spicy for you.", "I don't care now. I wanted to look like a human because I wanted friends. Now I want to be a monster who's helpful to Luffy!", "Miracles only happen to those who never give up.", "Stop counting only those things you have lost! What is gone, is gone! So ask yourself this. What is there... that still remains to you?!", "If you want to protect something, do it right! Don't let them get their way anymore!", "The royalty and nobles are behind the fire... Believe me... This town smells worse than Gray Terminal. It smells like rotten people! If I stay here... I'll never be free! I'm... ashamed to be born a noble!", "There comes a time when a man has to stand and fight! That time is when his friends' dreams are being laughed at! And I won't let you laugh at that!", "To true friendship, how long you've known each other means nothing.", "When the world shoves you around, you just gotta stand up and shove back. It's not like somebody's gonna save you if you start babbling excuses.", "People's dreams... Never end!", "If you kill yourself, I'll kill you!", "I don't wanna live a thousand years. If I just live through today, that'll be enough."]
9
- akumas_no_mi: ["Gomu Gomu no Mi", "Hana Hana no Mi", "Doru Doru no Mi", "Baku Baku no Mi", "Mane Mane no Mi", "Supa Supa no Mi", "Ori Ori no Mi", "Bane Bane no Mi", "Noro Noro no Mi", "Doa Doa no Mi", "Awa Awa no Mi", "Beri Beri no Mi", "Sabi Sabi no Mi", "Shari Shari no Mi", "Yomi Yomi no Mi", "Kage Kage no Mi", "Horo Horo no Mi", "Suke Suke no Mi", "Nikyu Nikyu no Mi", "Mero Mero no Mi", "Doku Doku no Mi", "Horu Horu no Mi", "Choki Choki no Mi", "Gura Gura no Mi", "Fuwa Fuwa no Mi", "Woshu Woshu no Mi", "Mato Mato no Mi", "Ope Ope no Mi", "Buki Buki no Mi", "Bari Bari no Mi", "Nui Nui no Mi", "Giro Giro no Mi", "Ato Ato no Mi", "Jake Jake no Mi", "Pamu Pamu no Mi", "Sui Sui no Mi", "Hira Hira no Mi", "Ishi Ishi no Mi", "Nagi Nagi no Mi", "Ito Ito no Mi", "Shiro Shiro no Mi", "Chiyu Chiyu no Mi", "Ushi Ushi no Mi", "Hito Hito no Mi", "Tori Tori no Mi", "Inu Inu no Mi", "Neko Neko no Mi", "Zou Zou no Mi", "Hebi Hebi no Mi", "Sara Sara no Mi", "Mushi Mushi no Mi", "Batto Batto no Mi", "Mogu Mogu no Mi", "Uma Uma no Mi", "Kame Kame no Mi", "Moku Moku no Mi", "Mera Mera no Mi", "Suna Suna no Mi", "Goro Goro no Mi", "Hie Hie no Mi", "Pika Pika no Mi", "Magu Magu no Mi", "Numa Numa no Mi", "Gasu Gasu no Mi", "Yuki Yuki no Mi"]
9
+ akuma_no_mi: ["Gomu Gomu no Mi", "Hana Hana no Mi", "Doru Doru no Mi", "Baku Baku no Mi", "Mane Mane no Mi", "Supa Supa no Mi", "Ori Ori no Mi", "Bane Bane no Mi", "Noro Noro no Mi", "Doa Doa no Mi", "Awa Awa no Mi", "Beri Beri no Mi", "Sabi Sabi no Mi", "Shari Shari no Mi", "Yomi Yomi no Mi", "Kage Kage no Mi", "Horo Horo no Mi", "Suke Suke no Mi", "Nikyu Nikyu no Mi", "Mero Mero no Mi", "Doku Doku no Mi", "Horu Horu no Mi", "Choki Choki no Mi", "Gura Gura no Mi", "Fuwa Fuwa no Mi", "Woshu Woshu no Mi", "Mato Mato no Mi", "Ope Ope no Mi", "Buki Buki no Mi", "Bari Bari no Mi", "Nui Nui no Mi", "Giro Giro no Mi", "Ato Ato no Mi", "Jake Jake no Mi", "Pamu Pamu no Mi", "Sui Sui no Mi", "Hira Hira no Mi", "Ishi Ishi no Mi", "Nagi Nagi no Mi", "Ito Ito no Mi", "Shiro Shiro no Mi", "Chiyu Chiyu no Mi", "Ushi Ushi no Mi", "Hito Hito no Mi", "Tori Tori no Mi", "Inu Inu no Mi", "Neko Neko no Mi", "Zou Zou no Mi", "Hebi Hebi no Mi", "Sara Sara no Mi", "Mushi Mushi no Mi", "Batto Batto no Mi", "Mogu Mogu no Mi", "Uma Uma no Mi", "Kame Kame no Mi", "Moku Moku no Mi", "Mera Mera no Mi", "Suna Suna no Mi", "Goro Goro no Mi", "Hie Hie no Mi", "Pika Pika no Mi", "Magu Magu no Mi", "Numa Numa no Mi", "Gasu Gasu no Mi", "Yuki Yuki no Mi"]