Bladeren bron

label gitbucket documents

Keiichi Watanabe 8 jaren geleden
bovenliggende
commit
c8b91702b3
1 gewijzigde bestanden met toevoegingen van 22 en 5 verwijderingen
  1. 22 5
      src/main/java/org/codelibs/fess/ds/impl/GitBucketDataStoreImpl.java

+ 22 - 5
src/main/java/org/codelibs/fess/ds/impl/GitBucketDataStoreImpl.java

@@ -59,6 +59,7 @@ public class GitBucketDataStoreImpl extends AbstractDataStoreImpl {
 
         final String rootURL = getRootURL(paramMap);
         final String authToken = getAuthToken(paramMap);
+        final List<String> sourceLabels = getSourceLabelList(rootURL, authToken);
         final long readInterval = getReadInterval(paramMap);
 
         if (rootURL.isEmpty() || authToken.isEmpty()) {
@@ -104,8 +105,8 @@ public class GitBucketDataStoreImpl extends AbstractDataStoreImpl {
                         0,
                         readInterval,
                         path -> {
-                            storeFileContent(rootURL, authToken, owner, name, roleList, path, crawlingConfig, callback, paramMap,
-                                    scriptMap, defaultDataMap);
+                            storeFileContent(rootURL, authToken, sourceLabels, owner, name, roleList, path, crawlingConfig, callback,
+                                    paramMap, scriptMap, defaultDataMap);
                             if (readInterval > 0) {
                                 sleep(readInterval);
                             }
@@ -135,6 +136,20 @@ public class GitBucketDataStoreImpl extends AbstractDataStoreImpl {
         return StringUtil.EMPTY;
     }
 
+    protected List<String> getSourceLabelList(final String rootURL, final String authToken) {
+        final String url = rootURL + "api/v3/fess/label";
+        try (CurlResponse curlResponse = Curl.get(url).header("Authorization", "token " + authToken).execute()) {
+            final Map<String, Object> map = curlResponse.getContentAsMap();
+            assert (map.containsKey("source_label"));
+            @SuppressWarnings("unchecked")
+            final List<String> sourceLabels = (List<String>) map.get("source_label");
+            return sourceLabels;
+        } catch (final Exception e) {
+            logger.warn("Failed to access to " + rootURL, e);
+            return Collections.emptyList();
+        }
+    }
+
     protected List<Map<String, Object>> getRepositoryList(final String rootURL, final String authToken) {
         final String url = rootURL + "api/v3/fess/repos";
         try (CurlResponse curlResponse = Curl.get(url).header("Authorization", "token " + authToken).execute()) {
@@ -174,9 +189,10 @@ public class GitBucketDataStoreImpl extends AbstractDataStoreImpl {
         }
     }
 
-    private void storeFileContent(final String rootURL, final String authToken, final String owner, final String name,
-            final List<String> roleList, final String path, final CrawlingConfig crawlingConfig, final IndexUpdateCallback callback,
-            final Map<String, String> paramMap, final Map<String, String> scriptMap, final Map<String, Object> defaultDataMap) {
+    private void storeFileContent(final String rootURL, final String authToken, final List<String> sourceLabels, final String owner,
+            final String name, final List<String> roleList, final String path, final CrawlingConfig crawlingConfig,
+            final IndexUpdateCallback callback, final Map<String, String> paramMap, final Map<String, String> scriptMap,
+            final Map<String, Object> defaultDataMap) {
         final String apiUrl = rootURL + "api/v3/repos/" + owner + "/" + name + "/contents/" + path;
         final String viewUrl = rootURL + owner + "/" + name + "/blob/master/" + path;
 
@@ -190,6 +206,7 @@ public class GitBucketDataStoreImpl extends AbstractDataStoreImpl {
 
         dataMap.put("url", viewUrl);
         dataMap.put("role", roleList);
+        dataMap.put("label", sourceLabels);
 
         // TODO scriptMap