Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
W
wikipedia plugin
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
JOSM trac
JOSM trac
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Packages
Packages
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
JOSM
wikipedia plugin
Commits
6ac45e9a
Commit
6ac45e9a
authored
Jul 22, 2018
by
Florian Schäfer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add API query to retrieve all labels for a Wikidata item
parent
6089a4eb
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
67 additions
and
2 deletions
+67
-2
WikidataActionApiQuery.java
...wikipedia/api/wikidata_action/WikidataActionApiQuery.java
+8
-1
WbgetentitiesResult.java
...kipedia/api/wikidata_action/json/WbgetentitiesResult.java
+31
-1
labels_Q42.json
...pi/wikidata_action/response/wbgetentities/labels_Q42.json
+1
-0
WikidataActionApiQueryTest.java
...pedia/api/wikidata_action/WikidataActionApiQueryTest.java
+27
-0
No files found.
src/main/java/org/wikipedia/api/wikidata_action/WikidataActionApiQuery.java
View file @
6ac45e9a
...
...
@@ -8,8 +8,8 @@ import org.openstreetmap.josm.tools.Utils;
import
org.wikipedia.api.ApiQuery
;
import
org.wikipedia.api.ApiUrl
;
import
org.wikipedia.api.SerializationSchema
;
import
org.wikipedia.api.wikidata_action.json.WbgetentitiesResult
;
import
org.wikipedia.api.wikidata_action.json.SitematrixResult
;
import
org.wikipedia.api.wikidata_action.json.WbgetentitiesResult
;
import
org.wikipedia.tools.RegexUtil
;
public
final
class
WikidataActionApiQuery
<
T
>
extends
ApiQuery
<
T
>
{
...
...
@@ -68,6 +68,13 @@ public final class WikidataActionApiQuery<T> extends ApiQuery<T> {
);
}
public
static
WikidataActionApiQuery
<
WbgetentitiesResult
>
wbgetentitiesLabels
(
final
String
qId
)
{
if
(!
RegexUtil
.
isValidQId
(
qId
))
{
throw
new
IllegalArgumentException
(
"Invalid Q-ID: "
+
qId
);
}
return
new
WikidataActionApiQuery
<>(
FORMAT_PARAMS
+
"&action=wbgetentities&props=labels&ids="
+
qId
,
WbgetentitiesResult
.
SCHEMA
);
}
@Override
public
String
getCacheKey
()
{
return
getUrl
().
toString
()
+
'?'
+
getQuery
();
...
...
src/main/java/org/wikipedia/api/wikidata_action/json/WbgetentitiesResult.java
View file @
6ac45e9a
...
...
@@ -16,8 +16,10 @@ import java.util.ArrayList;
import
java.util.Collection
;
import
java.util.Collections
;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
import
org.wikipedia.api.SerializationSchema
;
public
final
class
WbgetentitiesResult
{
...
...
@@ -136,18 +138,23 @@ public final class WbgetentitiesResult {
private
final
String
id
;
private
final
String
type
;
private
final
Map
<
String
,
Sitelink
>
sitelinks
=
new
HashMap
<>();
private
final
Set
<
Label
>
labels
=
new
HashSet
<>();
@JsonCreator
public
Entity
(
@JsonProperty
(
"id"
)
final
String
id
,
@JsonProperty
(
"type"
)
final
String
type
,
@JsonProperty
(
"sitelinks"
)
final
Map
<
String
,
Sitelink
>
sitelinks
@JsonProperty
(
"sitelinks"
)
final
Map
<
String
,
Sitelink
>
sitelinks
,
@JsonProperty
(
"labels"
)
final
Map
<
String
,
Label
>
labels
)
{
this
.
id
=
id
;
this
.
type
=
type
;
if
(
sitelinks
!=
null
)
{
this
.
sitelinks
.
putAll
(
sitelinks
);
}
if
(
labels
!=
null
)
{
this
.
labels
.
addAll
(
labels
.
values
());
}
}
public
String
getId
()
{
...
...
@@ -158,6 +165,10 @@ public final class WbgetentitiesResult {
return
type
;
}
public
Collection
<
Label
>
getLabels
()
{
return
labels
;
}
public
Collection
<
Sitelink
>
getSitelinks
()
{
return
Collections
.
unmodifiableCollection
(
sitelinks
.
values
());
}
...
...
@@ -167,6 +178,25 @@ public final class WbgetentitiesResult {
result
.
entities
.
put
(
key
,
this
);
}
public
static
final
class
Label
{
private
final
String
language
;
private
final
String
value
;
@JsonCreator
public
Label
(
@JsonProperty
(
"language"
)
final
String
language
,
@JsonProperty
(
"value"
)
final
String
value
)
{
this
.
language
=
language
;
this
.
value
=
value
;
}
public
String
getLanguage
()
{
return
language
;
}
public
String
getValue
()
{
return
value
;
}
}
public
static
final
class
Sitelink
{
private
final
String
site
;
private
final
String
title
;
...
...
test/data/org/wikipedia/api/wikidata_action/response/wbgetentities/labels_Q42.json
0 → 100644
View file @
6ac45e9a
{
"entities"
:{
"Q42"
:{
"type"
:
"item"
,
"id"
:
"Q42"
,
"labels"
:{
"fr"
:{
"language"
:
"fr"
,
"value"
:
"Douglas Adams"
},
"ru"
:{
"language"
:
"ru"
,
"value"
:
"
\u
0414
\u
0443
\u
0433
\u
043b
\u
0430
\u
0441
\u
0410
\u
0434
\u
0430
\u
043c
\u
0441"
},
"pl"
:{
"language"
:
"pl"
,
"value"
:
"Douglas Adams"
},
"it"
:{
"language"
:
"it"
,
"value"
:
"Douglas Adams"
},
"en-gb"
:{
"language"
:
"en-gb"
,
"value"
:
"Douglas Adams"
},
"nb"
:{
"language"
:
"nb"
,
"value"
:
"Douglas Adams"
},
"es"
:{
"language"
:
"es"
,
"value"
:
"Douglas Adams"
},
"en-ca"
:{
"language"
:
"en-ca"
,
"value"
:
"Douglas Adams"
},
"hr"
:{
"language"
:
"hr"
,
"value"
:
"Douglas Adams"
},
"pt"
:{
"language"
:
"pt"
,
"value"
:
"Douglas Adams"
},
"ko"
:{
"language"
:
"ko"
,
"value"
:
"
\u
b354
\u
ae00
\u
b7ec
\u
c2a4
\u
c560
\u
b364
\u
c2a4"
},
"nl"
:{
"language"
:
"nl"
,
"value"
:
"Douglas Adams"
},
"el"
:{
"language"
:
"el"
,
"value"
:
"
\u
039d
\u
03c4
\u
03ac
\u
03b3
\u
03ba
\u
03bb
\u
03b1
\u
03c2
\u
0386
\u
03bd
\u
03c4
\u
03b1
\u
03bc
\u
03c2"
},
"ar"
:{
"language"
:
"ar"
,
"value"
:
"
\u
062f
\u
0648
\u
063a
\u
0644
\u
0627
\u
0633
\u
0622
\u
062f
\u
0645
\u
0632"
},
"arz"
:{
"language"
:
"arz"
,
"value"
:
"
\u
062f
\u
0648
\u
062c
\u
0644
\u
0627
\u
0633
\u
0627
\u
062f
\u
0627
\u
0645
\u
0632"
},
"bar"
:{
"language"
:
"bar"
,
"value"
:
"Douglas Adams"
},
"be"
:{
"language"
:
"be"
,
"value"
:
"
\u
0414
\u
0443
\u
0433
\u
043b
\u
0430
\u
0441
\u
0410
\u
0434
\u
0430
\u
043c
\u
0441"
},
"bg"
:{
"language"
:
"bg"
,
"value"
:
"
\u
0414
\u
044a
\u
0433
\u
043b
\u
0430
\u
0441
\u
0410
\u
0434
\u
0430
\u
043c
\u
0441"
},
"bs"
:{
"language"
:
"bs"
,
"value"
:
"Douglas Adams"
},
"ca"
:{
"language"
:
"ca"
,
"value"
:
"Douglas Adams"
},
"cs"
:{
"language"
:
"cs"
,
"value"
:
"Douglas Adams"
},
"cy"
:{
"language"
:
"cy"
,
"value"
:
"Douglas Adams"
},
"da"
:{
"language"
:
"da"
,
"value"
:
"Douglas Adams"
},
"eo"
:{
"language"
:
"eo"
,
"value"
:
"Douglas Adams"
},
"et"
:{
"language"
:
"et"
,
"value"
:
"Douglas Adams"
},
"fa"
:{
"language"
:
"fa"
,
"value"
:
"
\u
062f
\u
0627
\u
06af
\u
0644
\u
0627
\u
0633
\u
0622
\u
062f
\u
0627
\u
0645
\u
0632"
},
"fi"
:{
"language"
:
"fi"
,
"value"
:
"Douglas Adams"
},
"ga"
:{
"language"
:
"ga"
,
"value"
:
"Douglas Adams"
},
"gl"
:{
"language"
:
"gl"
,
"value"
:
"Douglas Adams"
},
"he"
:{
"language"
:
"he"
,
"value"
:
"
\u
05d3
\u
05d0
\u
05d2
\u
05dc
\u
05e1
\u
05d0
\u
05d3
\u
05de
\u
05e1"
},
"hu"
:{
"language"
:
"hu"
,
"value"
:
"Douglas Adams"
},
"id"
:{
"language"
:
"id"
,
"value"
:
"Douglas Adams"
},
"io"
:{
"language"
:
"io"
,
"value"
:
"Douglas Adams"
},
"is"
:{
"language"
:
"is"
,
"value"
:
"Douglas Adams"
},
"ja"
:{
"language"
:
"ja"
,
"value"
:
"
\u
30c0
\u
30b0
\u
30e9
\u
30b9
\u
30fb
\u
30a2
\u
30c0
\u
30e0
\u
30ba"
},
"jv"
:{
"language"
:
"jv"
,
"value"
:
"Douglas Adams"
},
"ka"
:{
"language"
:
"ka"
,
"value"
:
"
\u
10d3
\u
10d0
\u
10d2
\u
10da
\u
10d0
\u
10e1
\u
10d0
\u
10d3
\u
10d0
\u
10db
\u
10e1
\u
10d8"
},
"la"
:{
"language"
:
"la"
,
"value"
:
"Duglassius Adams"
},
"lv"
:{
"language"
:
"lv"
,
"value"
:
"Duglass Adamss"
},
"mk"
:{
"language"
:
"mk"
,
"value"
:
"
\u
0414
\u
0430
\u
0433
\u
043b
\u
0430
\u
0441
\u
0410
\u
0434
\u
0430
\u
043c
\u
0441"
},
"mr"
:{
"language"
:
"mr"
,
"value"
:
"
\u
0921
\u
0917
\u
094d
\u
0932
\u
0938
\u
0905
\u
0945
\u
0921
\u
092e
\u
094d
\u
0938"
},
"nn"
:{
"language"
:
"nn"
,
"value"
:
"Douglas Adams"
},
"ro"
:{
"language"
:
"ro"
,
"value"
:
"Douglas Adams"
},
"sco"
:{
"language"
:
"sco"
,
"value"
:
"Douglas Adams"
},
"sh"
:{
"language"
:
"sh"
,
"value"
:
"Douglas Adams"
},
"sk"
:{
"language"
:
"sk"
,
"value"
:
"Douglas Adams"
},
"sl"
:{
"language"
:
"sl"
,
"value"
:
"Douglas Adams"
},
"sq"
:{
"language"
:
"sq"
,
"value"
:
"Douglas Adams"
},
"sr"
:{
"language"
:
"sr"
,
"value"
:
"
\u
0414
\u
0430
\u
0433
\u
043b
\u
0430
\u
0441
\u
0410
\u
0434
\u
0430
\u
043c
\u
0441"
},
"sv"
:{
"language"
:
"sv"
,
"value"
:
"Douglas Adams"
},
"ta"
:{
"language"
:
"ta"
,
"value"
:
"
\u
0b9f
\u
0b95
\u
0bcd
\u
0bb3
\u
0bb8
\u
0bcd
\u
0b86
\u
0b9f
\u
0bae
\u
0bcd
\u
0bb8
\u
0bcd"
},
"tr"
:{
"language"
:
"tr"
,
"value"
:
"Douglas Adams"
},
"uk"
:{
"language"
:
"uk"
,
"value"
:
"
\u
0414
\u
0443
\u
0433
\u
043b
\u
0430
\u
0441
\u
0410
\u
0434
\u
0430
\u
043c
\u
0441"
},
"vi"
:{
"language"
:
"vi"
,
"value"
:
"Douglas Adams"
},
"zh"
:{
"language"
:
"zh"
,
"value"
:
"
\u
9053
\u
683c
\u
62c9
\u
65af
\u
00b7
\u
4e9a
\u
5f53
\u
65af"
},
"zh-cn"
:{
"language"
:
"zh-cn"
,
"value"
:
"
\u
9053
\u
683c
\u
62c9
\u
65af
\u
00b7
\u
4e9a
\u
5f53
\u
65af"
},
"zh-hans"
:{
"language"
:
"zh-hans"
,
"value"
:
"
\u
9053
\u
683c
\u
62c9
\u
65af
\u
00b7
\u
4e9a
\u
5f53
\u
65af"
},
"zh-hant"
:{
"language"
:
"zh-hant"
,
"value"
:
"
\u
9053
\u
683c
\u
62c9
\u
65af
\u
00b7
\u
4e9e
\u
7576
\u
65af"
},
"de-ch"
:{
"language"
:
"de-ch"
,
"value"
:
"Douglas Adams"
},
"pt-br"
:{
"language"
:
"pt-br"
,
"value"
:
"Douglas Adams"
},
"zh-sg"
:{
"language"
:
"zh-sg"
,
"value"
:
"
\u
9053
\u
683c
\u
62c9
\u
65af
\u
00b7
\u
4e9a
\u
5f53
\u
65af"
},
"zh-my"
:{
"language"
:
"zh-my"
,
"value"
:
"
\u
9053
\u
683c
\u
62c9
\u
65af
\u
00b7
\u
4e9a
\u
5f53
\u
65af"
},
"zh-hk"
:{
"language"
:
"zh-hk"
,
"value"
:
"
\u
9053
\u
683c
\u
62c9
\u
65af
\u
00b7
\u
4e9e
\u
7576
\u
65af"
},
"zh-tw"
:{
"language"
:
"zh-tw"
,
"value"
:
"
\u
9053
\u
683c
\u
62c9
\u
65af
\u
00b7
\u
4e9e
\u
7576
\u
65af"
},
"zh-mo"
:{
"language"
:
"zh-mo"
,
"value"
:
"
\u
9053
\u
683c
\u
62c9
\u
65af
\u
00b7
\u
4e9e
\u
7576
\u
65af"
},
"war"
:{
"language"
:
"war"
,
"value"
:
"Douglas Adams"
},
"be-tarask"
:{
"language"
:
"be-tarask"
,
"value"
:
"
\u
0414
\u
0443
\u
0433
\u
043b
\u
0430
\u
0441
\u
0410
\u
0434
\u
0430
\u
043c
\u
0437"
},
"vep"
:{
"language"
:
"vep"
,
"value"
:
"Adams Duglas"
},
"ur"
:{
"language"
:
"ur"
,
"value"
:
"
\u
0688
\u
06af
\u
0644
\u
0633
\u
0627
\u
06cc
\u
0688
\u
0645"
},
"oc"
:{
"language"
:
"oc"
,
"value"
:
"Douglas Adams"
},
"af"
:{
"language"
:
"af"
,
"value"
:
"Douglas Adams"
},
"an"
:{
"language"
:
"an"
,
"value"
:
"Douglas Adams"
},
"br"
:{
"language"
:
"br"
,
"value"
:
"Douglas Adams"
},
"eu"
:{
"language"
:
"eu"
,
"value"
:
"Douglas Adams"
},
"lb"
:{
"language"
:
"lb"
,
"value"
:
"Douglas Adams"
},
"lmo"
:{
"language"
:
"lmo"
,
"value"
:
"Douglas Adams"
},
"lt"
:{
"language"
:
"lt"
,
"value"
:
"Douglas Adams"
},
"nds"
:{
"language"
:
"nds"
,
"value"
:
"Douglas Adams"
},
"nds-nl"
:{
"language"
:
"nds-nl"
,
"value"
:
"Douglas Adams"
},
"pms"
:{
"language"
:
"pms"
,
"value"
:
"Douglas Adams"
},
"vec"
:{
"language"
:
"vec"
,
"value"
:
"Douglas Adams"
},
"wa"
:{
"language"
:
"wa"
,
"value"
:
"Douglas Adams"
},
"sr-ec"
:{
"language"
:
"sr-ec"
,
"value"
:
"
\u
0414
\u
0430
\u
0433
\u
043b
\u
0430
\u
0441
\u
0410
\u
0434
\u
0430
\u
043c
\u
0441"
},
"sr-el"
:{
"language"
:
"sr-el"
,
"value"
:
"Daglas Adams"
},
"de"
:{
"language"
:
"de"
,
"value"
:
"Douglas Adams"
},
"ckb"
:{
"language"
:
"ckb"
,
"value"
:
"
\u
062f
\u
06d5
\u
06af
\u
0644
\u
0627
\u
0633
\u
0626
\u
0627
\u
062f
\u
0645
\u
0632"
},
"fo"
:{
"language"
:
"fo"
,
"value"
:
"Douglas Adams"
},
"kl"
:{
"language"
:
"kl"
,
"value"
:
"Douglas Adams"
},
"gsw"
:{
"language"
:
"gsw"
,
"value"
:
"Douglas Adams"
},
"te"
:{
"language"
:
"te"
,
"value"
:
"
\u
0c21
\u
0c17
\u
0c4d
\u
0c32
\u
0c38
\u
0c4d
\u
0c06
\u
0c21
\u
0c2e
\u
0c4d
\u
0c38
\u
0c4d"
},
"si"
:{
"language"
:
"si"
,
"value"
:
"
\u
0da9
\u
0d9c
\u
0dca
\u
0dbd
\u
0dc3
\u
0dca
\u
0d87
\u
0da9
\u
0db8
\u
0dca
\u
0dc3
\u
0dca"
},
"bn"
:{
"language"
:
"bn"
,
"value"
:
"
\u
09a1
\u
0997
\u
09b2
\u
09be
\u
09b8
\u
0985
\u
09cd
\u
09af
\u
09be
\u
09a1
\u
09be
\u
09ae
\u
09b8"
},
"hi"
:{
"language"
:
"hi"
,
"value"
:
"
\u
0921
\u
0917
\u
094d
\u
0932
\u
0938
\u
0905
\u
200d
\u
0921
\u
092e
\u
094d
\u
0938"
},
"rwr"
:{
"language"
:
"rwr"
,
"value"
:
"
\u
0921
\u
0917
\u
094d
\u
0932
\u
0938
\u
0905
\u
200d
\u
0921
\u
092e
\u
094d
\u
0938"
},
"mg"
:{
"language"
:
"mg"
,
"value"
:
"Douglas Adams"
},
"ml"
:{
"language"
:
"ml"
,
"value"
:
"
\u
0d21
\u
0d17
\u
0d4d
\u
0d32
\u
0d38
\u
0d4d
\u
0d06
\u
0d21
\u
0d02
\u
0d38
\u
0d4d"
},
"gu"
:{
"language"
:
"gu"
,
"value"
:
"
\u
0aa1
\u
0a97
\u
0acd
\u
0ab2
\u
0abe
\u
0ab8
\u
0a8f
\u
0aa1
\u
0aae
\u
0acd
\u
0ab8"
},
"hy"
:{
"language"
:
"hy"
,
"value"
:
"
\u
0534
\u
0578
\u
0582
\u
0563
\u
056c
\u
0561
\u
057d
\u
0531
\u
0564
\u
0561
\u
0574
\u
057d"
},
"ast"
:{
"language"
:
"ast"
,
"value"
:
"Douglas Adams"
},
"co"
:{
"language"
:
"co"
,
"value"
:
"Douglas Adams"
},
"de-at"
:{
"language"
:
"de-at"
,
"value"
:
"Douglas Adams"
},
"frp"
:{
"language"
:
"frp"
,
"value"
:
"Douglas Adams"
},
"fur"
:{
"language"
:
"fur"
,
"value"
:
"Douglas Adams"
},
"gd"
:{
"language"
:
"gd"
,
"value"
:
"Douglas Adams"
},
"ia"
:{
"language"
:
"ia"
,
"value"
:
"Douglas Adams"
},
"ie"
:{
"language"
:
"ie"
,
"value"
:
"Douglas Adams"
},
"kg"
:{
"language"
:
"kg"
,
"value"
:
"Douglas Adams"
},
"li"
:{
"language"
:
"li"
,
"value"
:
"Douglas Adams"
},
"lij"
:{
"language"
:
"lij"
,
"value"
:
"Douglas Adams"
},
"min"
:{
"language"
:
"min"
,
"value"
:
"Douglas Adams"
},
"ms"
:{
"language"
:
"ms"
,
"value"
:
"Douglas Adams"
},
"nap"
:{
"language"
:
"nap"
,
"value"
:
"Douglas Adams"
},
"nrm"
:{
"language"
:
"nrm"
,
"value"
:
"Douglas Adams"
},
"pcd"
:{
"language"
:
"pcd"
,
"value"
:
"Douglas Adams"
},
"rm"
:{
"language"
:
"rm"
,
"value"
:
"Douglas Adams"
},
"sc"
:{
"language"
:
"sc"
,
"value"
:
"Douglas Adams"
},
"scn"
:{
"language"
:
"scn"
,
"value"
:
"Douglas Adams"
},
"sw"
:{
"language"
:
"sw"
,
"value"
:
"Douglas Adams"
},
"vls"
:{
"language"
:
"vls"
,
"value"
:
"Douglas Adams"
},
"vo"
:{
"language"
:
"vo"
,
"value"
:
"Douglas Adams"
},
"wo"
:{
"language"
:
"wo"
,
"value"
:
"Douglas Adams"
},
"zu"
:{
"language"
:
"zu"
,
"value"
:
"Douglas Adams"
},
"az"
:{
"language"
:
"az"
,
"value"
:
"Duqlas Noel Adams"
},
"ak"
:{
"language"
:
"ak"
,
"value"
:
"Doglas Adams"
},
"or"
:{
"language"
:
"or"
,
"value"
:
"
\u
0b21
\u
0b17
\u
0b4d
\u
200c
\u
0b32
\u
0b3e
\u
0b38
\u
0b4d
\u
200c
\u
0b06
\u
0b26
\u
0b3e
\u
0b2e
\u
0b4d
\u
200c
\u
0b38"
},
"kn"
:{
"language"
:
"kn"
,
"value"
:
"
\u
0ca1
\u
0c97
\u
0ccd
\u
0cb2
\u
0cb8
\u
0ccd
\u
0c86
\u
0ca1
\u
0cae
\u
0ccd
\u
0cb8
\u
0ccd"
},
"ne"
:{
"language"
:
"ne"
,
"value"
:
"
\u
0921
\u
0917
\u
0932
\u
0938
\u
090f
\u
0921
\u
092e
\u
094d
\u
0938"
},
"mrj"
:{
"language"
:
"mrj"
,
"value"
:
"
\u
0410
\u
0434
\u
0430
\u
043c
\u
0441"
},
"th"
:{
"language"
:
"th"
,
"value"
:
"
\u
0e14
\u
0e31
\u
0e4a
\u
0e01
\u
0e25
\u
0e32
\u
0e2a
\u
0e2d
\u
0e14
\u
0e31
\u
0e21
\u
0e2a
\u
0e4c"
},
"pa"
:{
"language"
:
"pa"
,
"value"
:
"
\u
0a21
\u
0a17
\u
0a32
\u
0a38
\u
0a10
\u
0a21
\u
0a2e
\u
0a1c
\u
0a3c"
},
"tcy"
:{
"language"
:
"tcy"
,
"value"
:
"
\u
0ca1
\u
0cbe
\u
0c97
\u
0ccd
\u
0cb2
\u
0cb8
\u
0ccd
\u
0c86
\u
0ca1
\u
0cae
\u
0ccd
\u
0cb8
\u
0ccd"
},
"tl"
:{
"language"
:
"tl"
,
"value"
:
"Douglas Adams"
},
"ext"
:{
"language"
:
"ext"
,
"value"
:
"Douglas Adams"
},
"azb"
:{
"language"
:
"azb"
,
"value"
:
"
\u
062f
\u
0627
\u
0642
\u
0644
\u
0627
\u
0633
\u
0622
\u
062f
\u
0627
\u
0645
\u
0632"
},
"en"
:{
"language"
:
"en"
,
"value"
:
"Douglas Adams"
},
"lfn"
:{
"language"
:
"lfn"
,
"value"
:
"Douglas Adams"
},
"nan"
:{
"language"
:
"nan"
,
"value"
:
"Douglas Adams"
},
"ky"
:{
"language"
:
"ky"
,
"value"
:
"
\u
0414
\u
0443
\u
0433
\u
043b
\u
0430
\u
0441
\u
0410
\u
0434
\u
0430
\u
043c
\u
0441"
}}}},
"success"
:
1
}
\ No newline at end of file
test/unit/org/wikipedia/api/wikidata_action/WikidataActionApiQueryTest.java
View file @
6ac45e9a
...
...
@@ -151,6 +151,33 @@ public class WikidataActionApiQueryTest {
verify
(
postRequestedFor
(
urlEqualTo
(
"/"
)).
withRequestBody
(
new
EqualToPattern
(
"format=json&utf8=1&formatversion=1&action=wbgetentities&props=sitelinks&sites=enwiki&sitefilter=enwiki&titles=United+States%7Cmissing-article%7CGreat+Britain%7CAnother+missing+article"
)));
}
@Test
public
void
testWikidataItemLabelQuery
()
throws
IOException
,
URISyntaxException
{
stubFor
(
post
(
"/"
)
.
withHeader
(
"Accept"
,
equalTo
(
"application/json"
))
.
willReturn
(
aResponse
()
.
withStatus
(
200
)
.
withHeader
(
"Content-Type"
,
"application/json"
)
.
withBody
(
ResourceFileLoader
.
getResourceBytes
(
WikidataActionApiQueryTest
.
class
,
"response/wbgetentities/labels_Q42.json"
))
)
);
final
WbgetentitiesResult
result
=
ApiQueryClient
.
query
(
WikidataActionApiQuery
.
wbgetentitiesLabels
(
"Q42"
));
assertEquals
(
1
,
result
.
getEntities
().
size
());
assertEquals
(
138
,
result
.
getEntities
().
entrySet
().
iterator
().
next
().
getValue
().
getLabels
().
size
());
assertEquals
(
0
,
result
.
getEntities
().
entrySet
().
iterator
().
next
().
getValue
().
getSitelinks
().
size
());
assertEquals
(
"Q42"
,
result
.
getEntities
().
entrySet
().
iterator
().
next
().
getValue
().
getId
());
assertEquals
(
"item"
,
result
.
getEntities
().
entrySet
().
iterator
().
next
().
getValue
().
getType
());
assertEquals
(
"Douglas Adams"
,
result
.
getEntities
().
entrySet
().
iterator
().
next
().
getValue
().
getLabels
().
stream
().
filter
(
it
->
"en"
.
equals
(
it
.
getLanguage
())).
findAny
().
get
().
getValue
());
assertEquals
(
"Дуглас Адамс"
,
result
.
getEntities
().
entrySet
().
iterator
().
next
().
getValue
().
getLabels
().
stream
().
filter
(
it
->
"ru"
.
equals
(
it
.
getLanguage
())).
findAny
().
get
().
getValue
());
assertEquals
(
"더글러스 애덤스"
,
result
.
getEntities
().
entrySet
().
iterator
().
next
().
getValue
().
getLabels
().
stream
().
filter
(
it
->
"ko"
.
equals
(
it
.
getLanguage
())).
findAny
().
get
().
getValue
());
assertEquals
(
"ಡಾಗ್ಲಸ್ ಆಡಮ್ಸ್"
,
result
.
getEntities
().
entrySet
().
iterator
().
next
().
getValue
().
getLabels
().
stream
().
filter
(
it
->
"tcy"
.
equals
(
it
.
getLanguage
())).
findAny
().
get
().
getValue
());
verify
(
postRequestedFor
(
urlEqualTo
(
"/"
)).
withRequestBody
(
new
EqualToPattern
(
"format=json&utf8=1&formatversion=1&action=wbgetentities&props=labels&ids=Q42"
)));
}
/**
* Sets {@link WikidataActionApiQuery#defaultUrl} to the supplied URL
* @param url the new URL
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment