From 09da7b8d68169d1e9d6ca539b653d9aae7f50bb4 Mon Sep 17 00:00:00 2001 From: Sonal Yadav Date: Sun, 22 Jun 2025 19:10:15 +0530 Subject: [PATCH] Skip image upload to Wikidata (nearby -> green pins) (#6349) * Skip image upload to Wikidata if item already has image * Re-run CI * no more Failed to update Wikidata for green pins --- .../fr/free/nrw/commons/upload/worker/UploadWorker.kt | 8 +++++++- .../free/nrw/commons/wikidata/WikidataEditService.kt | 7 +++++-- .../main/res/values-x-invalidLanguageCode/error.xml | 10 ---------- 3 files changed, 12 insertions(+), 13 deletions(-) delete mode 100644 app/src/main/res/values-x-invalidLanguageCode/error.xml diff --git a/app/src/main/java/fr/free/nrw/commons/upload/worker/UploadWorker.kt b/app/src/main/java/fr/free/nrw/commons/upload/worker/UploadWorker.kt index 6d28085b2..c8a1d9b98 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/worker/UploadWorker.kt +++ b/app/src/main/java/fr/free/nrw/commons/upload/worker/UploadWorker.kt @@ -472,7 +472,10 @@ class UploadWorker( if (wikiDataPlace != null) { if (!contribution.hasInvalidLocation()) { var revisionID: Long? = null + val p18WasSkipped = !wikiDataPlace.imageValue.isNullOrBlank() try { + if (!p18WasSkipped) { + // Only set P18 if the place does not already have a picture revisionID = wikidataEditService.createClaim( wikiDataPlace, @@ -489,9 +492,11 @@ class UploadWorker( .subscribeOn(Schedulers.io()) .blockingAwait() Timber.d("Updated WikiItem place ${place.name} with image ${place.pic}") + } } - showSuccessNotification(contribution) } + // Always show success notification, whether P18 was set or skipped + showSuccessNotification(contribution) } catch (exception: Exception) { Timber.e(exception) } @@ -500,6 +505,7 @@ class UploadWorker( wikidataEditService.handleImageClaimResult( contribution.wikidataPlace!!, revisionID, + p18WasSkipped = p18WasSkipped ) } } else { diff --git a/app/src/main/java/fr/free/nrw/commons/wikidata/WikidataEditService.kt b/app/src/main/java/fr/free/nrw/commons/wikidata/WikidataEditService.kt index 0b49c03e9..f4bf23073 100644 --- a/app/src/main/java/fr/free/nrw/commons/wikidata/WikidataEditService.kt +++ b/app/src/main/java/fr/free/nrw/commons/wikidata/WikidataEditService.kt @@ -196,13 +196,16 @@ class WikidataEditService @Inject constructor( return wikidataClient.setClaim(claim, COMMONS_APP_TAG).blockingSingle() } - fun handleImageClaimResult(wikidataItem: WikidataItem, revisionId: Long?) { + fun handleImageClaimResult(wikidataItem: WikidataItem, revisionId: Long?, p18WasSkipped: Boolean = false) { if (revisionId != null) { wikidataEditListener?.onSuccessfulWikidataEdit() showSuccessToast(wikidataItem.name) - } else { + } else if (!p18WasSkipped) { Timber.d("Unable to make wiki data edit for entity %s", wikidataItem) showLongToast(context, context.getString(R.string.wikidata_edit_failure)) + } else { + Timber.d("Wikidata edit skipped for entity %s because P18 already exists", wikidataItem) + // No error shown to user, as this is not a failure } } diff --git a/app/src/main/res/values-x-invalidLanguageCode/error.xml b/app/src/main/res/values-x-invalidLanguageCode/error.xml deleted file mode 100644 index f4e2fe125..000000000 --- a/app/src/main/res/values-x-invalidLanguageCode/error.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - کامَنٕز گوو رُکِتھ - Oops. کیہہ تام گوو غلط! - ؤنِیوٚ اَسہِ توٚہہِ کیاہ ٲسِیوٚ کران، تہٕ کٕریٚو تہِ اَسہِ سٕتی شیر بذریعہِ برقی خط. یُس مَدَتھ کَرِ اَسہِ اَتھ شہَرنَس منٛز! - شُکریہ! -