esc-reporting/qa-tools.py |   47 +++++++++++++++++++++++++---------------------
 1 file changed, 26 insertions(+), 21 deletions(-)

New commits:
commit 956345e4b27253a4e739e00e81d70c27839d7689
Author: Xisco Fauli <aniste...@gmail.com>
Date:   Sat Sep 30 00:32:10 2017 +0200

    Add a couple of strings more and check for duplicate comments

diff --git a/esc-reporting/qa-tools.py b/esc-reporting/qa-tools.py
index f0fda2a..bcacd2c 100755
--- a/esc-reporting/qa-tools.py
+++ b/esc-reporting/qa-tools.py
@@ -61,7 +61,9 @@ needInfoPingComment = "Dear Bug Submitter,\n\nThis bug has 
been in NEEDINFO stat
 
 needInfoFollowUpPingComment = "Dear Bug Submitter,\n\nPlease read this message 
in its entirety before proceeding."
 
-moveToNeedInfo = "I have set the bug's status to 'NEEDINFO'. Please change it 
back to 'UNCONFIRMED'"
+moveToNeedInfoComment = "I have set the bug's status to 'NEEDINFO'. Please 
change it back to 'UNCONFIRMED'"
+
+oldNeedInfoComment = "Dear bug submitter!\n\nDue to the fact, that there are a 
lot of NEEDINFO bugs with no answer within"
 
 def util_load_file(fileName):
     try:
@@ -188,8 +190,8 @@ def util_create_statList():
             },
         'tags':
             {
-                'addObsolete': [],
-                'removeObsolete': []
+                'addObsolete': set(),
+                'removeObsolete': set()
             },
         'people': {},
         'newUsersPeriod': {},
@@ -679,7 +681,7 @@ def analyze_bugzilla(statList, bugzillaData, cfg, lIgnore):
 
             commentMail = None
             comments = row['comments'][1:]
-            for comment in comments:
+            for idx, comment in enumerate(comments):
                 commentMail = comment['creator']
                 commentDate = datetime.datetime.strptime(comment['time'], 
"%Y-%m-%dT%H:%M:%SZ")
 
@@ -689,16 +691,22 @@ def analyze_bugzilla(statList, bugzillaData, cfg, 
lIgnore):
                 if commentDate >= cfg[reportPeriod]:
                     statList['detailedReport']['comments_count'] += 1
 
+                #Check for duplicated comments
+                if idx > 0 and comment['text'] == comments[idx-1]['text']:
+                        statList['tags']['addObsolete'].add(comment["id"])
+
                 if rowStatus != 'NEEDINFO' and \
                         "obsolete" not in [x.lower() for x in comment["tags"]] 
and \
                         (comment["text"].startswith(untouchedPingComment) or \
                         comment["text"].startswith("Migrating Whiteboard tags 
to Keywords:") or \
                         "[NinjaEdit]" in comment["text"] or \
-                        moveToNeedInfo in comment["text"] or \
+                        moveToNeedInfoComment in comment["text"] or \
                         comment["text"].startswith("(This is an automated 
message.)") or \
                         comment["text"].startswith(needInfoPingComment) or \
+                        comment["text"].startswith(oldNeedInfoComment) or \
+                        comment["text"].startswith("A polite ping, still 
working on this bug") or \
                         
comment["text"].startswith(needInfoFollowUpPingComment)):
-                    statList['tags']['addObsolete'].append(comment["id"])
+                    statList['tags']['addObsolete'].add(comment["id"])
 
             if len(comments) > 0:
                 if comments[-1]["text"].startswith(untouchedPingComment):
@@ -713,29 +721,26 @@ def analyze_bugzilla(statList, bugzillaData, cfg, 
lIgnore):
 
                     if rowStatus != 'NEEDINFO':
                         if "obsolete" not in [x.lower() for x in 
comments[-1]["tags"]]:
-                            statList['tags']['addObsolete'].pop()
+                            
statList['tags']['addObsolete'].remove(comments[-1]["id"])
                         else:
-                            
statList['tags']['removeObsolete'].append(comments[-1]["id"])
+                            
statList['tags']['removeObsolete'].add(comments[-1]["id"])
                 elif comments[-1]["text"].startswith(needInfoPingComment):
                     if rowStatus == 'NEEDINFO':
                         statList['massping']['needinfo'].append(rowId)
                     else:
                         if "obsolete" not in [x.lower() for x in 
comments[-1]["tags"]]:
-                            statList['tags']['addObsolete'].pop()
-                        else:
-                            
statList['tags']['removeObsolete'].append(comments[-1]["id"])
-                elif 
comments[-1]["text"].startswith(needInfoFollowUpPingComment):
-                    if rowStatus != 'NEEDINFO':
-                        if "obsolete" not in [x.lower() for x in 
comments[-1]["tags"]]:
-                            statList['tags']['addObsolete'].pop()
+                            
statList['tags']['addObsolete'].remove(comments[-1]["id"])
                         else:
-                            
statList['tags']['removeObsolete'].append(comments[-1]["id"])
-                elif moveToNeedInfo in comments[-1]["text"]:
+                            
statList['tags']['removeObsolete'].add(comments[-1]["id"])
+                elif 
comments[-1]["text"].startswith(needInfoFollowUpPingComment) or \
+                        comments[-1]["text"].startswith(oldNeedInfoComment) or 
\
+                        comments[-1]["text"].startswith("A polite ping, still 
working on this bug") or \
+                        moveToNeedInfoComment in comments[-1]["text"]:
                     if rowStatus != 'NEEDINFO':
                         if "obsolete" not in [x.lower() for x in 
comments[-1]["tags"]]:
-                            statList['tags']['addObsolete'].pop()
+                            
statList['tags']['addObsolete'].remove(comments[-1]["id"])
                         else:
-                            
statList['tags']['removeObsolete'].append(comments[-1]["id"])
+                            
statList['tags']['removeObsolete'].add(comments[-1]["id"])
                 else:
                     if datetime.datetime.strptime(row['last_change_time'], 
"%Y-%m-%dT%H:%M:%SZ") < cfg['untouchedPeriod'] and rowStatus == 'NEW' and 
'needsUXEval' not in row['keywords'] and 'easyHack' not in row['keywords'] and 
row['component'] != 'Documentation' and (row['product'] == 'LibreOffice' or 
row['product'] == 'Impress Remote') and row['severity'] != 'enhancement':
                         statList['massping']['untouched'].append(rowId)
@@ -1094,7 +1099,7 @@ def automated_tagging(statList):
         lAddObsolete = f.read().splitlines()
         f.close()
 
-    for comment_id in statList['tags']['addObsolete']:
+    for comment_id in list(statList['tags']['addObsolete']):
         if str(comment_id) not in lAddObsolete:
             command = '{"comment_id" : ' + str(comment_id) + ', "add" : 
["obsolete"]}'
             url = 'https://bugs.documentfoundation.org/rest/bug/comment/' + \
@@ -1112,7 +1117,7 @@ def automated_tagging(statList):
         else:
             print(str(comment_id) + ' - doing nothing')
 
-    for comment_id in statList['tags']['removeObsolete']:
+    for comment_id in list(statList['tags']['removeObsolete']):
         command = '{"comment_id" : ' + str(comment_id) + ', "remove" : 
["obsolete"]}'
         url = 'https://bugs.documentfoundation.org/rest/bug/comment/' + \
                 str(comment_id) + '/tags' + '?api_key=' + 
cfg['bugzilla']['api-key']
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to