Repository: OpenRefine/OpenRefine (java)

Issue:
Wikimedia Commons Wikibase not detecting non-Latin script characters
<!-- Describe the bug - Please add a clear and concise description of the bug above this line. You can delete this line if you want. It will be hidden in the final bug report -->

I've been trying to upload a batch of files that have names containing both Latin and [Odia](https://en.wikipedia.org/wiki/Odia_script) characters. For instance, Wikimedia Commons allows filenames with Odia characters (for instance, this file](https://commons.wikimedia.org/wiki/Category:Audio_files_created_using_Kathabhidhana), but OpenRefine does not. See the screenshot of the error I see below. cc @wetneb

### To Reproduce
Steps to reproduce the behavior:
1. Create a file with a file name such as "ଫାଇଲ.wav" (that's a WAVE file with a filename with in the Odia script)
2. Try to upload to Wikimedia Commons using OpenRefine. It fails at the Wikibase (Upload edits to Wikibase)

### Current Results
<!-- What results occurred or were shown. -->
It fails (see below)

<img width="752" alt="OpenRefine-issue-with-Odia" src="https://user-images.githubusercontent.com/1258090/222007841-b59c7218-db7a-44aa-b5cf-45b88375e354.png">

### Expected Behavior
<!-- A clear and concise description of what you expected to happen or to show. -->
The upload should normally happen, just like any other file.

### Screenshots
<!-- If applicable, add screenshots to help explain your problem. -->

### Versions<!--  (please complete the following information)-->
 - Operating System: MacOS<!--  e.g. iOS, Windows 10, Linux, Ubuntu 18.04 -->
 - Browser Version: Brave 1.46.171<!--  e.g. Chrome 19, Firefox 61, Safari, NOTE: OpenRefine does not support IE but works OK in most cases -->
 - JRE or JDK Version: <!--  output of "java -version" e.g. JRE 1.8.0_181 -->
 - OpenRefine: 3.7<!--  e.g. OpenRefine 3.0 Beta] -->

### Datasets
<!-- If you are allowed and are OK with making your data public, it would be awesome if you can include or attach the data causing the issue or a URL pointing to where the data is.
If you are concerned about keeping your data private, you can share it selectively by email to developers who work on the issue -->
1. [Sample dataset containing the same files I was trying to upload](https://drive.google.com/drive/u/0/folders/1lyg_63oZCd7fIwWFvqU4v0AwKOIHK8FQ)

### Additional context
<!-- Add any other context about the problem here. -->


Pull request description:
Widen regex of allowed characters in Commons filenames.
I can't find authoritative documentation about this so this is pretty much example driven. To reflect that, I have lowered the severity of the check so that users are not prevented from uploading if the check incorrectly fails.

Closes #5656.

Patch:
diff --git a/extensions/gdata/pom.xml b/extensions/gdata/pom.xml
index 59375016a..2ed919c1b 100644
--- a/extensions/gdata/pom.xml
+++ b/extensions/gdata/pom.xml
@@ -84,7 +84,7 @@
     <dependency>
       <groupId>com.google.apis</groupId>
       <artifactId>google-api-services-drive</artifactId>
-      <version>v3-rev20231120-2.0.0</version>
+      <version>v3-rev20231128-2.0.0</version>
     </dependency>
     <dependency>
       <groupId>com.google.apis</groupId>
diff --git a/extensions/wikibase/src/org/openrefine/wikibase/qa/scrutinizers/FileNameScrutinizer.java b/extensions/wikibase/src/org/openrefine/wikibase/qa/scrutinizers/FileNameScrutinizer.java
index 353d3a3f5..a54c8eaf8 100644
--- a/extensions/wikibase/src/org/openrefine/wikibase/qa/scrutinizers/FileNameScrutinizer.java
+++ b/extensions/wikibase/src/org/openrefine/wikibase/qa/scrutinizers/FileNameScrutinizer.java
@@ -22,7 +22,7 @@ public class FileNameScrutinizer extends EditScrutinizer {
     // see https://commons.wikimedia.org/wiki/Commons:File_naming
     public static final int maxFileNameBytes = 240;
     public static final Pattern forbiddenFileNameChars = Pattern.compile(
-            ".*([^ %!\"$&'()*,\\-./\\d:;=?@\\p{L}\\p{Mc}\\\\^_`~\\x80-\\xFF+]|%[0-9A-Fa-f]{2}|&[A-Za-z0-9\\x80-\\xff]+;|&#[0-9]+;|&#x[0-9A-Fa-f]+;).*");
+            ".*([^ %!\"$&'()*,\\-./\\d:;=?@\\p{L}\\p{M}\\p{N}\\\\^_`~\\x80-\\xFF+]|%[0-9A-Fa-f]{2}|&[A-Za-z0-9\\x80-\\xff]+;|&#[0-9]+;|&#x[0-9A-Fa-f]+;).*");
 
     public static final String duplicateFileNamesInBatchType = "duplicate-file-names-in-batch";
     public static final String fileNamesAlreadyExistOnWikiType = "file-names-already-exist-on-wiki";
@@ -98,7 +98,7 @@ public class FileNameScrutinizer extends EditScrutinizer {
             // Invalid characters
             Matcher matcher = forbiddenFileNameChars.matcher(fileName);
             if (matcher.matches()) {
-                QAWarning issue = new QAWarning(invalidCharactersInFileNameType, null, QAWarning.Severity.CRITICAL,
+                QAWarning issue = new QAWarning(invalidCharactersInFileNameType, null, QAWarning.Severity.IMPORTANT,
                         1);
                 issue.setProperty("example_filename", fileName);
                 issue.setProperty("invalid_character", matcher.group(1));


Test patch:
diff --git a/extensions/wikibase/tests/src/org/openrefine/wikibase/qa/scrutinizers/FileNameScrutinizerTest.java b/extensions/wikibase/tests/src/org/openrefine/wikibase/qa/scrutinizers/FileNameScrutinizerTest.java
index abb1da6c4..5ced94b25 100644
--- a/extensions/wikibase/tests/src/org/openrefine/wikibase/qa/scrutinizers/FileNameScrutinizerTest.java
+++ b/extensions/wikibase/tests/src/org/openrefine/wikibase/qa/scrutinizers/FileNameScrutinizerTest.java
@@ -78,6 +78,16 @@ public class FileNameScrutinizerTest extends ScrutinizerTest {
         assertNoWarningRaised();
     }
 
+    @Test
+    public void testValidCharactersInFilenameNonAscii() {
+        MediaInfoEdit edit = new MediaInfoEditBuilder(TestingData.newMidA)
+                .addFileName("সমাচার দর্পণ - ৮ অক্টোবর ১৮৩৬.pdf")
+                .build();
+
+        scrutinize(edit);
+        assertNoWarningRaised();
+    }
+
     @Test()
     public void testInvalidCharactersInFilenameTab() throws IOException, MediaWikiApiErrorException {
         MediaInfoEdit edit = new MediaInfoEditBuilder(TestingData.newMidA)