wovnrb 1.1.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (120) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +1 -0
  3. data/.gitignore +2 -0
  4. data/.rubocop.yml +1 -0
  5. data/.rubocop_todo.yml +308 -0
  6. data/Rakefile +13 -14
  7. data/lib/wovnrb.rb +43 -98
  8. data/lib/wovnrb/api_translator.rb +143 -0
  9. data/lib/wovnrb/headers.rb +78 -92
  10. data/lib/wovnrb/helpers/nokogumbo_helper.rb +1 -1
  11. data/lib/wovnrb/lang.rb +93 -125
  12. data/lib/wovnrb/railtie.rb +5 -7
  13. data/lib/wovnrb/services/glob.rb +3 -3
  14. data/lib/wovnrb/services/html_converter.rb +192 -0
  15. data/lib/wovnrb/services/html_replace_marker.rb +38 -0
  16. data/lib/wovnrb/services/wovn_logger.rb +8 -4
  17. data/lib/wovnrb/settings.rb +5 -3
  18. data/lib/wovnrb/store.rb +35 -26
  19. data/lib/wovnrb/text_caches/cache_base.rb +3 -2
  20. data/lib/wovnrb/text_caches/memory_cache.rb +2 -2
  21. data/lib/wovnrb/version.rb +1 -1
  22. data/test/fixtures/html/test.html +8 -0
  23. data/test/fixtures/html/test_translated.html +8 -0
  24. data/test/lib/api_translator_test.rb +109 -0
  25. data/test/lib/headers_test.rb +84 -55
  26. data/test/lib/lang_test.rb +157 -357
  27. data/test/lib/services/glob_test.rb +1 -1
  28. data/test/lib/services/html_converter_test.rb +166 -0
  29. data/test/lib/services/html_replace_marker_test.rb +75 -0
  30. data/test/lib/services/wovn_logger_test.rb +6 -6
  31. data/test/lib/store_test.rb +25 -69
  32. data/test/lib/text_caches/cache_base_test.rb +1 -1
  33. data/test/lib/text_caches/memory_cache_test.rb +10 -11
  34. data/test/lib/wovnrb_test.rb +77 -310
  35. data/test/test_helper.rb +22 -32
  36. data/wovnrb.gemspec +35 -44
  37. metadata +86 -205
  38. data/ext/dom/Makefile +0 -239
  39. data/lib/wovnrb/api_data.rb +0 -59
  40. data/lib/wovnrb/html_replacers/image_replacer.rb +0 -69
  41. data/lib/wovnrb/html_replacers/input_replacer.rb +0 -38
  42. data/lib/wovnrb/html_replacers/link_replacer.rb +0 -78
  43. data/lib/wovnrb/html_replacers/meta_replacer.rb +0 -28
  44. data/lib/wovnrb/html_replacers/replacer_base.rb +0 -49
  45. data/lib/wovnrb/html_replacers/script_replacer.rb +0 -39
  46. data/lib/wovnrb/html_replacers/text_replacer.rb +0 -21
  47. data/lib/wovnrb/html_replacers/unified_values/dst_swapping_targets_creator.rb +0 -76
  48. data/lib/wovnrb/html_replacers/unified_values/element_category.rb +0 -242
  49. data/lib/wovnrb/html_replacers/unified_values/node_swapping_targets_creator.rb +0 -134
  50. data/lib/wovnrb/html_replacers/unified_values/text_replacer.rb +0 -35
  51. data/lib/wovnrb/html_replacers/unified_values/text_scraper.rb +0 -152
  52. data/lib/wovnrb/html_replacers/unified_values/values_stack.rb +0 -65
  53. data/lib/wovnrb/services/url.rb +0 -12
  54. data/lib/wovnrb/services/value_agent.rb +0 -9
  55. data/test/fixtures/unified_values/site_html/simple_actual.html +0 -96
  56. data/test/fixtures/unified_values/site_html/simple_expected.json +0 -251
  57. data/test/fixtures/unified_values/site_html/wovn.io_actual.html +0 -686
  58. data/test/fixtures/unified_values/site_html/wovn.io_expected.json +0 -543
  59. data/test/fixtures/unified_values/site_html/www.yahoo.co.jp_actual.html +0 -1024
  60. data/test/fixtures/unified_values/site_html/www.yahoo.co.jp_expected.json +0 -3345
  61. data/test/fixtures/unified_values/small_html/block_inside_inline_actual.html +0 -12
  62. data/test/fixtures/unified_values/small_html/block_inside_inline_expected.json +0 -22
  63. data/test/fixtures/unified_values/small_html/br_tag_actual.html +0 -10
  64. data/test/fixtures/unified_values/small_html/br_tag_expected.json +0 -12
  65. data/test/fixtures/unified_values/small_html/comment_tag_actual.html +0 -12
  66. data/test/fixtures/unified_values/small_html/comment_tag_expected.json +0 -10
  67. data/test/fixtures/unified_values/small_html/complex_text_with_html_entity_actual.html +0 -7
  68. data/test/fixtures/unified_values/small_html/complex_text_with_html_entity_expected.json +0 -11
  69. data/test/fixtures/unified_values/small_html/deep_nested_block_actual.html +0 -14
  70. data/test/fixtures/unified_values/small_html/deep_nested_block_expected.json +0 -8
  71. data/test/fixtures/unified_values/small_html/deep_nested_inline_actual.html +0 -20
  72. data/test/fixtures/unified_values/small_html/deep_nested_inline_expected.json +0 -20
  73. data/test/fixtures/unified_values/small_html/empty_tag_actual.html +0 -10
  74. data/test/fixtures/unified_values/small_html/empty_tag_expected.json +0 -12
  75. data/test/fixtures/unified_values/small_html/empty_text_actual.html +0 -12
  76. data/test/fixtures/unified_values/small_html/empty_text_expected.json +0 -1
  77. data/test/fixtures/unified_values/small_html/ignore_tag_actual.html +0 -12
  78. data/test/fixtures/unified_values/small_html/ignore_tag_expected.json +0 -16
  79. data/test/fixtures/unified_values/small_html/ignored_class_actual.html +0 -10
  80. data/test/fixtures/unified_values/small_html/ignored_class_expected.json +0 -13
  81. data/test/fixtures/unified_values/small_html/img_actual.html +0 -12
  82. data/test/fixtures/unified_values/small_html/img_expected.json +0 -23
  83. data/test/fixtures/unified_values/small_html/nested_and_complex_wovn_ignore_actual.html +0 -10
  84. data/test/fixtures/unified_values/small_html/nested_and_complex_wovn_ignore_expected.json +0 -16
  85. data/test/fixtures/unified_values/small_html/nested_text_value_actual.html +0 -10
  86. data/test/fixtures/unified_values/small_html/nested_text_value_expected.json +0 -12
  87. data/test/fixtures/unified_values/small_html/nested_text_value_mixed_plan_text_actual.html +0 -10
  88. data/test/fixtures/unified_values/small_html/nested_text_value_mixed_plan_text_expected.json +0 -14
  89. data/test/fixtures/unified_values/small_html/option_tag_actual.html +0 -9
  90. data/test/fixtures/unified_values/small_html/option_tag_expected.json +0 -13
  91. data/test/fixtures/unified_values/small_html/text_different_inline_each_other_actual.html +0 -10
  92. data/test/fixtures/unified_values/small_html/text_different_inline_each_other_expected.json +0 -22
  93. data/test/fixtures/unified_values/small_html/text_in_svg_actual.html +0 -9
  94. data/test/fixtures/unified_values/small_html/text_in_svg_expected.json +0 -8
  95. data/test/fixtures/unified_values/small_html/text_with_html_entity_actual.html +0 -6
  96. data/test/fixtures/unified_values/small_html/text_with_html_entity_expected.json +0 -8
  97. data/test/fixtures/unified_values/small_html/unknown_or_custom_tag_actual.html +0 -12
  98. data/test/fixtures/unified_values/small_html/unknown_or_custom_tag_expected.json +0 -24
  99. data/test/fixtures/unified_values/small_html/unnecessay_top_end_tag_actual.html +0 -12
  100. data/test/fixtures/unified_values/small_html/unnecessay_top_end_tag_expected.json +0 -14
  101. data/test/fixtures/unified_values/small_html/wovn_ignore_actual.html +0 -10
  102. data/test/fixtures/unified_values/small_html/wovn_ignore_expected.json +0 -13
  103. data/test/lib/api_data_test.rb +0 -83
  104. data/test/lib/html_replacers/image_replacer_test.rb +0 -165
  105. data/test/lib/html_replacers/input_replacer_test.rb +0 -140
  106. data/test/lib/html_replacers/link_replacer_test.rb +0 -328
  107. data/test/lib/html_replacers/meta_replacer_test.rb +0 -157
  108. data/test/lib/html_replacers/replacer_base_test.rb +0 -128
  109. data/test/lib/html_replacers/script_replacer_test.rb +0 -139
  110. data/test/lib/html_replacers/text_replacer_test.rb +0 -99
  111. data/test/lib/html_replacers/unified_values/dst_swapping_targets_creator_test.rb +0 -137
  112. data/test/lib/html_replacers/unified_values/element_category_test.rb +0 -49
  113. data/test/lib/html_replacers/unified_values/node_swapping_targets_creator_test.rb +0 -137
  114. data/test/lib/html_replacers/unified_values/text_replacer_test.rb +0 -270
  115. data/test/lib/html_replacers/unified_values/text_scraper_test.rb +0 -121
  116. data/test/lib/html_replacers/unified_values/values_stack_test.rb +0 -122
  117. data/test/lib/services/url_test.rb +0 -9
  118. data/test/lib/services/value_agent_test.rb +0 -32
  119. data/test/services/url_test.rb +0 -163
  120. data/values/values +0 -1
@@ -1,543 +0,0 @@
1
- [
2
- {
3
- "xpath": "/html/head/title",
4
- "srcs": [
5
- "Website Localization | Translate web pages in 5 minutes | WOVN.io"
6
- ]
7
- },
8
- {
9
- "xpath": "/html/body/header/div/div/nav/ul/li/text()",
10
- "srcs": [
11
- "<a>",
12
- "Top",
13
- "</a>"
14
- ]
15
- },
16
- {
17
- "xpath": "/html/body/header/div/div/nav/ul/li[2]/text()",
18
- "srcs": [
19
- "<a>",
20
- "Pricing",
21
- "</a>"
22
- ]
23
- },
24
- {
25
- "xpath": "/html/body/header/div/div/nav/ul/li[3]/text()",
26
- "srcs": [
27
- "<a>",
28
- "Developers",
29
- "</a>"
30
- ]
31
- },
32
- {
33
- "xpath": "/html/body/header/div/div/nav/ul/li[4]/text()",
34
- "srcs": [
35
- "<a>",
36
- "Partners",
37
- "</a>"
38
- ]
39
- },
40
- {
41
- "xpath": "/html/body/header/div/div/nav/ul/li[5]/text()",
42
- "srcs": [
43
- "<a>",
44
- "Support",
45
- "</a>"
46
- ]
47
- },
48
- {
49
- "xpath": "/html/body/header/div/div/nav/ul/li[6]/text()",
50
- "srcs": [
51
- "<a>",
52
- "Contact",
53
- "</a>"
54
- ]
55
- },
56
- {
57
- "xpath": "/html/body/header/div/div/div/ul/li/text()",
58
- "srcs": [
59
- "<a>",
60
- "Sign in",
61
- "</a>"
62
- ]
63
- },
64
- {
65
- "xpath": "/html/body/header/div/div/div/ul/li[2]/text()",
66
- "srcs": [
67
- "<a>",
68
- "Sign up",
69
- "<span>",
70
- "free",
71
- "</span>",
72
- "</a>"
73
- ]
74
- },
75
- {
76
- "xpath": "/html/body/header/div/div/div/p/text()",
77
- "srcs": [
78
- "TEL",
79
- "<a>",
80
- "(+81) 3-4405-9509",
81
- "</a>"
82
- ]
83
- },
84
- {
85
- "xpath": "/html/body/div[3]/main/div/div/div/h1/text()",
86
- "srcs": [
87
- "<strong>",
88
- "Localize your website,",
89
- "</strong>",
90
- "<br>",
91
- "translate web pages in minutes"
92
- ]
93
- },
94
- {
95
- "xpath": "/html/body/div[3]/main/div/div/div/p/text()",
96
- "srcs": [
97
- "30 languages supported"
98
- ]
99
- },
100
- {
101
- "xpath": "/html/body/div[3]/main/div/div/div/text()[3]",
102
- "srcs": [
103
- "<a>",
104
- "SIGN UP FREE",
105
- "</a>"
106
- ]
107
- },
108
- {
109
- "xpath": "/html/body/div[3]/main/div/div/div/p[2]/text()",
110
- "srcs": [
111
- "TEL",
112
- "<span>",
113
- "<a>",
114
- "(+81) 3-4405-9509",
115
- "</a>",
116
- "</span>"
117
- ]
118
- },
119
- {
120
- "xpath": "/html/body/div[3]/main/div/div[2]/h2/text()",
121
- "srcs": [
122
- "Over 9,000 businesses around the world have chosen WOVN.io"
123
- ]
124
- },
125
- {
126
- "xpath": "/html/body/div[3]/main/div/div[3]/h2/text()",
127
- "srcs": [
128
- "Localize your website in as few as 5 minutes without a developer"
129
- ]
130
- },
131
- {
132
- "xpath": "/html/body/div[3]/main/div/div[3]/div/div/ul/li/div/text()",
133
- "srcs": [
134
- "STEP",
135
- "<span>",
136
- "1",
137
- "</span>"
138
- ]
139
- },
140
- {
141
- "xpath": "/html/body/div[3]/main/div/div[3]/div/div/ul/li/p/text()",
142
- "srcs": [
143
- "Add your site&#39;s URL"
144
- ]
145
- },
146
- {
147
- "xpath": "/html/body/div[3]/main/div/div[3]/div/div/ul/li[2]/div/text()",
148
- "srcs": [
149
- "STEP",
150
- "<span>",
151
- "2",
152
- "</span>"
153
- ]
154
- },
155
- {
156
- "xpath": "/html/body/div[3]/main/div/div[3]/div/div/ul/li[2]/p/text()",
157
- "srcs": [
158
- "Translate by hand, machine, or use pro translators and publish your site"
159
- ]
160
- },
161
- {
162
- "xpath": "/html/body/div[3]/main/div/div[3]/div/div/ul/li[3]/div/text()",
163
- "srcs": [
164
- "STEP",
165
- "<span>",
166
- "3",
167
- "</span>"
168
- ]
169
- },
170
- {
171
- "xpath": "/html/body/div[3]/main/div/div[3]/div/div/ul/li[3]/p/text()",
172
- "srcs": [
173
- "Add WOVN.io to your website with our",
174
- "<br>",
175
- "JavaScript snippet or server library"
176
- ]
177
- },
178
- {
179
- "xpath": "/html/body/div[3]/main/div/div[4]/h2/text()",
180
- "srcs": [
181
- "Edit your website directly"
182
- ]
183
- },
184
- {
185
- "xpath": "/html/body/div[3]/main/div/div[4]/div/div/h3/text()",
186
- "srcs": [
187
- "Edit text, tags, and images in one place"
188
- ]
189
- },
190
- {
191
- "xpath": "/html/body/div[3]/main/div/div[4]/div/div/p/text()",
192
- "srcs": [
193
- "Your website&#39;s text, meta information (title, meta, alt, etc.), and images will all be added to our translation editor. You can manage and translate everything from the editor."
194
- ]
195
- },
196
- {
197
- "xpath": "/html/body/div[3]/main/div/div[4]/div/div[2]/h3/text()",
198
- "srcs": [
199
- "Make instant edits with our live editor"
200
- ]
201
- },
202
- {
203
- "xpath": "/html/body/div[3]/main/div/div[4]/div/div[2]/p/text()",
204
- "srcs": [
205
- "See the translations on your website as you write them. Be sure it will look exactly the way you want it before publishing."
206
- ]
207
- },
208
- {
209
- "xpath": "/html/body/div[3]/main/div/div[4]/div/div[3]/h3/text()",
210
- "srcs": [
211
- "Freely customize the WOVN.io widget"
212
- ]
213
- },
214
- {
215
- "xpath": "/html/body/div[3]/main/div/div[4]/div/div[3]/p/text()",
216
- "srcs": [
217
- "Use our road-tested default widget or customize it. All paid plans offer maximum customization, create your own widget that fits your website&#39;s needs."
218
- ]
219
- },
220
- {
221
- "xpath": "/html/body/div[3]/main/div/div[4]/div/div[3]/text()[3]",
222
- "srcs": [
223
- "<span>",
224
- "Starter Plan",
225
- "</span>",
226
- "<span>",
227
- "Business Plan",
228
- "</span>"
229
- ]
230
- },
231
- {
232
- "xpath": "/html/body/div[3]/main/div/div[4]/div/div[4]/h3/text()",
233
- "srcs": [
234
- "Automatic content and page addition"
235
- ]
236
- },
237
- {
238
- "xpath": "/html/body/div[3]/main/div/div[4]/div/div[4]/p/text()",
239
- "srcs": [
240
- "Advanced page and content management on business plans and above. Let WOVN.io add new pages and content, translate into multiple languages and publish to your site automatically."
241
- ]
242
- },
243
- {
244
- "xpath": "/html/body/div[3]/main/div/div[4]/div/div[4]/text()[3]",
245
- "srcs": [
246
- "<span>",
247
- "Business Plan",
248
- "</span>"
249
- ]
250
- },
251
- {
252
- "xpath": "/html/body/div[3]/main/div/div[5]/h2/text()",
253
- "srcs": [
254
- "Designed for any website"
255
- ]
256
- },
257
- {
258
- "xpath": "/html/body/div[3]/main/div/div[5]/ul/li/text()[2]",
259
- "srcs": [
260
- "Personal"
261
- ]
262
- },
263
- {
264
- "xpath": "/html/body/div[3]/main/div/div[5]/ul/li[2]/text()[2]",
265
- "srcs": [
266
- "Corporate"
267
- ]
268
- },
269
- {
270
- "xpath": "/html/body/div[3]/main/div/div[5]/ul/li[3]/text()[2]",
271
- "srcs": [
272
- "Store"
273
- ]
274
- },
275
- {
276
- "xpath": "/html/body/div[3]/main/div/div[5]/ul/li[4]/text()[2]",
277
- "srcs": [
278
- "Media"
279
- ]
280
- },
281
- {
282
- "xpath": "/html/body/div[3]/main/div/div[5]/ul/li[5]/text()[2]",
283
- "srcs": [
284
- "EC"
285
- ]
286
- },
287
- {
288
- "xpath": "/html/body/div[3]/main/div/div[5]/ul/li[6]/text()[2]",
289
- "srcs": [
290
- "Large"
291
- ]
292
- },
293
- {
294
- "xpath": "/html/body/div[3]/main/div/div[5]/ul/li[7]/text()[2]",
295
- "srcs": [
296
- "Cloud"
297
- ]
298
- },
299
- {
300
- "xpath": "/html/body/div[3]/main/div/div[5]/div/div/div/h3/text()[2]",
301
- "srcs": [
302
- "Dynamic page content"
303
- ]
304
- },
305
- {
306
- "xpath": "/html/body/div[3]/main/div/div[5]/div/div/div/p/text()",
307
- "srcs": [
308
- "Using our business plan and above features localize pages containing dynamic content such as login, search, reviews etc."
309
- ]
310
- },
311
- {
312
- "xpath": "/html/body/div[3]/main/div/div[5]/div/div/div[2]/h3/text()[2]",
313
- "srcs": [
314
- "International SEO"
315
- ]
316
- },
317
- {
318
- "xpath": "/html/body/div[3]/main/div/div[5]/div/div/div[2]/p/text()",
319
- "srcs": [
320
- "With our server library, WOVN.io will make sure your pages show up in searches across languages. Plus, easily organize your localized languages by path, subdomain, or query for improved SEO."
321
- ]
322
- },
323
- {
324
- "xpath": "/html/body/div[3]/main/div/div[5]/div/div/div[3]/h3/text()[2]",
325
- "srcs": [
326
- "No initial cost"
327
- ]
328
- },
329
- {
330
- "xpath": "/html/body/div[3]/main/div/div[5]/div/div/div[3]/p/text()",
331
- "srcs": [
332
- "No starting fees and no lock-in rates. Simple monthly plans that fit your needs. Support is included for free so you can get started without the need for developers or dedicated content managers."
333
- ]
334
- },
335
- {
336
- "xpath": "/html/body/div[3]/main/div/div[6]/h2/text()",
337
- "srcs": [
338
- "Why WOVN.io?"
339
- ]
340
- },
341
- {
342
- "xpath": "/html/body/div[3]/main/div/div[6]/div/div/h3/text()",
343
- "srcs": [
344
- "Reduce maintenance costs"
345
- ]
346
- },
347
- {
348
- "xpath": "/html/body/div[3]/main/div/div[6]/div/div/p/text()",
349
- "srcs": [
350
- "Manage and create your translations without the need for a developer. Or have WOVN.io manage your content automatically. You can also order professional translations through WOVN.io at competitive prices."
351
- ]
352
- },
353
- {
354
- "xpath": "/html/body/div[3]/main/div/div[6]/div/div[2]/h3/text()",
355
- "srcs": [
356
- "Reduce development costs"
357
- ]
358
- },
359
- {
360
- "xpath": "/html/body/div[3]/main/div/div[6]/div/div[2]/p/text()",
361
- "srcs": [
362
- "Localizing costs can increase for every language added, using WOVN.io, this cost is greatly reduced and managing multiple languages does not require the need for more development. Reach a global audience at a fraction of the cost."
363
- ]
364
- },
365
- {
366
- "xpath": "/html/body/div[3]/main/div/div[6]/div/div[3]/h3/text()",
367
- "srcs": [
368
- "Multilingual marketing"
369
- ]
370
- },
371
- {
372
- "xpath": "/html/body/div[3]/main/div/div[6]/div/div[3]/p/text()",
373
- "srcs": [
374
- "Draw more users through localized SEO, increasing leads to your site. Localizing your content will lead to more visitors and more conversions."
375
- ]
376
- },
377
- {
378
- "xpath": "/html/body/div[3]/main/div/div[6]/div/div[4]/h3/text()",
379
- "srcs": [
380
- "Maintenance light"
381
- ]
382
- },
383
- {
384
- "xpath": "/html/body/div[3]/main/div/div[6]/div/div[4]/p/text()",
385
- "srcs": [
386
- "Using WOVN.io does not increase the number of files on your servers or the amount of languages it must host. Leave the heavy lifting to us and keep server costs low."
387
- ]
388
- },
389
- {
390
- "xpath": "/html/body/div[3]/main/div/div[7]/h2/text()",
391
- "srcs": [
392
- "WOVN.io user feedback"
393
- ]
394
- },
395
- {
396
- "xpath": "/html/body/div[3]/main/div/div[7]/div/div[2]/div/div/p/text()",
397
- "srcs": [
398
- "Thanks to dynamic page support and flexible communication, we were able to easily achieve multilingualization for a single page AngularJS application at low cost."
399
- ]
400
- },
401
- {
402
- "xpath": "/html/body/div[3]/main/div/div[7]/div/div[2]/div/div[2]/p/text()",
403
- "srcs": [
404
- "All we had to do was insert a single line of script to get started. Compared with typical multilingualization, we realized a significant reduction in man-hours."
405
- ]
406
- },
407
- {
408
- "xpath": "/html/body/div[3]/main/div/div[7]/div/div[2]/div/div[3]/p/text()",
409
- "srcs": [
410
- "Even companies without translation or system development capabilities can reach international markets at a low cost."
411
- ]
412
- },
413
- {
414
- "xpath": "/html/body/div[3]/main/div/div[7]/div/div[2]/div/div[3]/div[2]/p/text()",
415
- "srcs": [
416
- "Hisayuki Uemori",
417
- "<br>",
418
- "<span>",
419
- "Minimal tech CEO",
420
- "</span>"
421
- ]
422
- },
423
- {
424
- "xpath": "/html/body/div[3]/main/div/div[8]/div/h2/text()",
425
- "srcs": [
426
- "You can try our business plan free for 30 days!"
427
- ]
428
- },
429
- {
430
- "xpath": "/html/body/div[3]/main/div/div[8]/div/p/text()",
431
- "srcs": [
432
- "All business plan features are available during the trial"
433
- ]
434
- },
435
- {
436
- "xpath": "/html/body/div[3]/main/div/div[8]/div/text()[3]",
437
- "srcs": [
438
- "<a>",
439
- "SIGN UP FREE",
440
- "</a>"
441
- ]
442
- },
443
- {
444
- "xpath": "/html/body/div[3]/main/div/div[8]/div/div/text()",
445
- "srcs": [
446
- "TEL",
447
- "<a>",
448
- "(+81) 3-4405-9509",
449
- "</a>"
450
- ]
451
- },
452
- {
453
- "xpath": "/html/body/div[3]/main/div/footer/div/section/div/nav/ul/li/text()",
454
- "srcs": [
455
- "<a>",
456
- "Pricing",
457
- "</a>"
458
- ]
459
- },
460
- {
461
- "xpath": "/html/body/div[3]/main/div/footer/div/section/div/nav/ul/li[2]/text()",
462
- "srcs": [
463
- "<a>",
464
- "Developers",
465
- "</a>"
466
- ]
467
- },
468
- {
469
- "xpath": "/html/body/div[3]/main/div/footer/div/section/div/nav/ul/li[3]/text()",
470
- "srcs": [
471
- "<a>",
472
- "Partners",
473
- "</a>"
474
- ]
475
- },
476
- {
477
- "xpath": "/html/body/div[3]/main/div/footer/div/section/div/nav/ul/li[4]/text()",
478
- "srcs": [
479
- "<a>",
480
- "Support",
481
- "</a>"
482
- ]
483
- },
484
- {
485
- "xpath": "/html/body/div[3]/main/div/footer/div/section/div/nav/ul/li[5]/text()",
486
- "srcs": [
487
- "<a>",
488
- "Contact",
489
- "</a>"
490
- ]
491
- },
492
- {
493
- "xpath": "/html/body/div[3]/main/div/footer/div/section/div/nav/ul/li[6]/text()",
494
- "srcs": [
495
- "<a>",
496
- "Corporate",
497
- "</a>"
498
- ]
499
- },
500
- {
501
- "xpath": "/html/body/div[3]/main/div/footer/div/section/div/p/text()",
502
- "srcs": [
503
- "<a>",
504
- "support@wovn.io",
505
- "</a>",
506
- "<a>",
507
- "(+81) 3-4405-9509",
508
- "</a>"
509
- ]
510
- },
511
- {
512
- "xpath": "/html/body/div[3]/main/div/footer/div/section/div/ul/li/a/svg/title",
513
- "srcs": [
514
- "WOVN.io | Facebook"
515
- ]
516
- },
517
- {
518
- "xpath": "/html/body/div[3]/main/div/footer/div/section/div/ul/li[2]/a/svg/title",
519
- "srcs": [
520
- "WOVN.io | Twitter"
521
- ]
522
- },
523
- {
524
- "xpath": "/html/body/div[3]/main/div/footer/div/section[2]/p/text()",
525
- "srcs": [
526
- "©2017 Minimal Technologies"
527
- ]
528
- },
529
- {
530
- "xpath": "/html/body/div[3]/main/div/footer/div/section[2]/div/text()",
531
- "srcs": [
532
- "<a>",
533
- "Privacy policy",
534
- "</a>",
535
- "<span>",
536
- "|",
537
- "</span>",
538
- "<a>",
539
- "Terms",
540
- "</a>"
541
- ]
542
- }
543
- ]