Author: sebb
Date: Sat Dec 16 14:42:33 2023
New Revision: 1914715

URL: http://svn.apache.org/viewvc?rev=1914715&view=rev
Log:
Update search for Wiki entries

Modified:
    attic/site/retire.py

Modified: attic/site/retire.py
URL: 
http://svn.apache.org/viewvc/attic/site/retire.py?rev=1914715&r1=1914714&r2=1914715&view=diff
==============================================================================
--- attic/site/retire.py (original)
+++ attic/site/retire.py Sat Dec 16 14:42:33 2023
@@ -28,13 +28,20 @@ from inspect import getsourcefile
 from string import Template
 import os
 import re
-from urlutils import loadyaml, loadjson, urlexists
+from collections import defaultdict
+from urlutils import loadyaml, loadjson
 
 if len(sys.argv) == 1:
     print("Please provide a list of project ids")
     sys.exit(1)
 
 CWIKI='https://cwiki.apache.org/confluence/display/'
+
+CWIKI_INFO='https://cwiki.apache.org/confluence/rest/api/space/?type=global&limit=1000'
+WIKI_KEYS = defaultdict(list) # key = project name, value = list of possible 
spaces
+for entry in loadjson(CWIKI_INFO)['results']:
+    WIKI_KEYS[entry['name'].lower().replace('apache ', 
'')].append(entry['key'])
+
 JIRA='https://issues.apache.org/jira/rest/api/2/project'
 
 MYHOME = dirname(abspath(getsourcefile(lambda:0)))
@@ -127,16 +134,22 @@ def create_project(pid):
     os.system("svn add %s" % outfile)
     print("Check XML file for customisations such as JIRA and mailing lists")
 
+def find_wiki(pid):
+    found = []
+    for k, v in WIKI_KEYS.items():
+        if k == pid or (k.startswith(pid)): # and not k == valid project name
+            found += v
+    return found
+
 def check_wiki(pid):
-    url = CWIKI + pid.upper()
-    if urlexists(url):
-        flagfile = join(CWIKI_RETIRED, f"{pid}.txt")
-        with open(flagfile, 'a', encoding='utf-8'):
-            pass # if wiki uses alias, would need to add tlp name here
+    for wiki in find_wiki(pid):
+        flagname = wiki.lower()
+        flagfile = join(CWIKI_RETIRED, f"{flagname}.txt")
+        with open(flagfile, 'w', encoding='utf-8') as w:
+            if not flagname == pid:
+                w.write(pid)
+                w.write("\n")
         os.system("svn add %s" % flagfile)
-    else:
-        print(f"Could not find CWIKI entry at {url}, perhaps it uses an 
alias?")
-        # TODO how to search cwiki for aliases?
 
 for arg in sys.argv[1:]:
     print("Processing "+arg)


Reply via email to