diff mbox

Add mark_spam.py script

Message ID ab760f15-7716-bf16-3fe0-91422bd090e0@suse.cz
State New
Headers show

Commit Message

Martin Liška Aug. 16, 2016, 12:16 p.m. UTC
On 08/16/2016 12:02 AM, Joseph Myers wrote:
> On Mon, 15 Aug 2016, Martin Liška wrote:
> 
>> It can, currently we mark as spam just the first comment. If there's a spam PR
>> which contains multiple comments, I'll extend the script.
> 
> There certainly are spam bugs where the spammer pasted their spam in a 
> comment after creating the bug, rather than putting it in the initial bug 
> description; see bug 76607, for example.  Maybe all comments created by 
> the original bug submitter should be considered as spam, not just the 
> initial bug description?
> 

Hi.

Looks the bug has been already removed (which is good). Script improvement
does exactly what Joseph suggested. If there's no objection, I'll commit it
tomorrow.

Martin
diff mbox

Patch

From 98309a80a08b1d9e5f51c1e28f35322aaca8a52c Mon Sep 17 00:00:00 2001
From: marxin <mliska@suse.cz>
Date: Tue, 16 Aug 2016 14:14:07 +0200
Subject: [PATCH] mark_spam.py: Mark as spam all comments done by a creator

contrib/ChangeLog:

2016-08-16  Martin Liska  <mliska@suse.cz>

	* mark_spam.py: Mark as spam all comments done by a creator.
---
 contrib/mark_spam.py | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/contrib/mark_spam.py b/contrib/mark_spam.py
index f206356..86f46a1 100755
--- a/contrib/mark_spam.py
+++ b/contrib/mark_spam.py
@@ -39,7 +39,9 @@  def mark_as_spam(id, api_key, verbose):
         return
 
     # 2) mark the bug as spam
-    cc_list = response['bugs'][0]['cc']
+    bug = response['bugs'][0]
+    creator = bug['creator']
+    cc_list = bug['cc']
     data = {
         'status': 'RESOLVED',
         'resolution': 'INVALID',
@@ -64,13 +66,15 @@  def mark_as_spam(id, api_key, verbose):
     # 3) mark the first comment as spam
     r = requests.get(u + '/comment')
     response = json.loads(r.text)
-    comment_id = response['bugs'][str(id)]['comments'][0]['id']
-
-    u2 = '%sbug/comment/%d/tags' % (base_url, comment_id)
-    r = requests.put(u2, json = {'comment_id': comment_id, 'add': ['spam'], 'api_key': api_key})
-    if verbose:
-        print(r)
-        print(r.text)
+    for c in response['bugs'][str(id)]['comments']:
+        if c['creator'] == creator:
+            comment_id = c['id']
+            u2 = '%sbug/comment/%d/tags' % (base_url, comment_id)
+            print(u2)
+            r = requests.put(u2, json = {'comment_id': comment_id, 'add': ['spam'], 'api_key': api_key})
+            if verbose:
+                print(r)
+                print(r.text)
 
     # 4) mark all attachments as spam
     r = requests.get(u + '/attachment')
-- 
2.9.2