Author: sebb
Date: Thu Sep 14 13:31:56 2023
New Revision: 1912311

URL: http://svn.apache.org/viewvc?rev=1912311&view=rev
Log:
Start sending weekly messages

Modified:
    comdev/projects.apache.org/trunk/scripts/cronjobs/parseprojects.py

Modified: comdev/projects.apache.org/trunk/scripts/cronjobs/parseprojects.py
URL: 
http://svn.apache.org/viewvc/comdev/projects.apache.org/trunk/scripts/cronjobs/parseprojects.py?rev=1912311&r1=1912310&r2=1912311&view=diff
==============================================================================
--- comdev/projects.apache.org/trunk/scripts/cronjobs/parseprojects.py 
(original)
+++ comdev/projects.apache.org/trunk/scripts/cronjobs/parseprojects.py Thu Sep 
14 13:31:56 2023
@@ -31,6 +31,7 @@ import json
 import os
 from os.path import join
 import traceback
+from datetime import datetime
 import sendmail
 
 URL_TIMEOUT = 60.0 # timeout for URL requests (may need tweaking)
@@ -56,8 +57,15 @@ VALID_CATS = dict(zip([j.lower() for j i
 # Canonicalise without adding to suggested languages
 VALID_LANG['bash'] = 'Bash'
 
+SYNTAX_MSG = {
+    "category": 'The expected syntax is <category 
rdf:resource="http://projects.apache.org/category/{category}"; />'
+            '\nEach category should be listed in a separate tag',
+    "programming-language": 'The expected syntax is 
<programming-language>{language}</programming-language>'
+            '\nEach language should be listed in a separate tag',
+}
 """
 Validate and canonicalise languages and categories
+
 TODO send mails to projects when valid entries better established
 """
 def validate(json, tag, valid, pid, url):
@@ -68,7 +76,14 @@ def validate(json, tag, valid, pid, url)
             canon = valid.get(val.lower())
             if canon is None:
                 if len(val) > 30: # can this be a legal value?
-                    printNotice(f"ERROR: illegal (overlong: {len(val)} >30) 
value '{val}' for {pid} in {url}")#, project=pid)
+                    # only warn the project once a week
+                    if datetime.today().weekday() == 4: # Monday=0
+                        topid = pid
+                    else:
+                        topid = None
+                    printNotice(f"ERROR: illegal (overlong: {len(val)} >30) 
value '{val}' for {pid} in {url}",
+                                body = f'Error in {url}\nUnexpected 
value:{val}\n{SYNTAX_MSG[tag]}',
+                                project=topid)
                 else:
                     print(f"WARN: unexpected value '{val}' for {pid} in 
{url}")#, project=pid)
                     outvals.append(val) # TODO flag this to show invalid 
entries


Reply via email to