Skip to content

Commit c93bcda

Browse files
Updated API to get Author name too
1 parent f12f1d5 commit c93bcda

File tree

2 files changed

+21
-15
lines changed

2 files changed

+21
-15
lines changed

app/src/main/java/fr/free/nrw/commons/explore/images/SearchImagesRenderer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,11 +65,11 @@ interface ImageClickedListener {
6565
*/
6666
private void setAuthorView(Media item, TextView author) {
6767
if (item.getCreator() != null && !item.getCreator().equals("")) {
68-
author.setVisibility(View.GONE);
68+
author.setVisibility(View.VISIBLE);
6969
String uploadedByTemplate = getContext().getString(R.string.image_uploaded_by);
7070
author.setText(String.format(uploadedByTemplate, item.getCreator()));
7171
} else {
72-
author.setVisibility(View.VISIBLE);
72+
author.setVisibility(View.GONE);
7373
}
7474
}
7575
}

app/src/main/java/fr/free/nrw/commons/mwapi/ApacheHttpClientMediaWikiApi.java

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -736,17 +736,21 @@ public List<Media> getCategoryImages(String categoryName) {
736736
@NonNull
737737
public List<Media> searchImages(String query, int offset) {
738738
List<CustomApiResult> imageNodes = null;
739+
List<CustomApiResult> authorNodes = null;
740+
CustomApiResult customApiResult;
739741
try {
740-
imageNodes = api.action("query")
742+
customApiResult= api.action("query")
741743
.param("format", "xml")
742-
.param("list", "search")
743-
.param("srwhat", "text")
744-
.param("srnamespace", "6")
745-
.param("srlimit", "25")
746-
.param("sroffset",offset)
747-
.param("srsearch", query)
748-
.get()
749-
.getNodes("/api/query/search/p/@title");
744+
.param("generator", "search")
745+
.param("gsrwhat", "text")
746+
.param("gsrnamespace", "6")
747+
.param("gsrlimit", "25")
748+
.param("gsroffset",offset)
749+
.param("gsrsearch", query)
750+
.param("prop", "imageinfo")
751+
.get();
752+
imageNodes= customApiResult.getNodes("/api/query/pages/page/@title");
753+
authorNodes= customApiResult.getNodes("/api/query/pages/page/imageinfo/ii/@user");
750754
} catch (IOException e) {
751755
Timber.e("Failed to obtain searchImages", e);
752756
}
@@ -756,11 +760,13 @@ public List<Media> searchImages(String query, int offset) {
756760
}
757761

758762
List<Media> images = new ArrayList<>();
759-
for (CustomApiResult imageNode : imageNodes) {
760-
String imgName = imageNode.getDocument().getTextContent();
761-
images.add(new Media(imgName));
762-
}
763763

764+
for (int i=0; i< imageNodes.size();i++){
765+
String imgName = imageNodes.get(i).getDocument().getTextContent();
766+
Media media = new Media(imgName);
767+
media.setCreator(authorNodes.get(i).getDocument().getTextContent());
768+
images.add(media);
769+
}
764770
return images;
765771
}
766772

0 commit comments

Comments
 (0)