Merge branch 'main' into avm99963-monorail

Merged commit 34d8229ae2b51fb1a15bd208e6fe6185c94f6266

GitOrigin-RevId: 7ee0917f93a577e475f8e09526dd144d245593f4
diff --git a/features/banspammer.py b/features/banspammer.py
index fd28045..e0c00c8 100644
--- a/features/banspammer.py
+++ b/features/banspammer.py
@@ -1,7 +1,6 @@
-# Copyright 2016 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style
-# license that can be found in the LICENSE file or at
-# https://developers.google.com/open-source/licenses/bsd
+# Copyright 2016 The Chromium Authors
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
 
 """Classes for banning spammer users"""
 from __future__ import print_function
@@ -12,14 +11,14 @@
 import time
 
 from framework import cloud_tasks_helpers
-from framework import flaskservlet
 from framework import framework_helpers
 from framework import permissions
 from framework import jsonfeed
+from framework import servlet
 from framework import urls
 
 
-class BanSpammer(flaskservlet.FlaskServlet):
+class BanSpammer(servlet.Servlet):
   """Ban a user and mark their content as spam"""
 
   def AssertBasePermission(self, mr):
@@ -60,7 +59,7 @@
     return self.handler(**kwargs)
 
 
-class BanSpammerTask(jsonfeed.FlaskInternalTask):
+class BanSpammerTask(jsonfeed.InternalTask):
   """This task will update all of the comments and issues created by the
      target user with is_spam=True, and also add a manual verdict attached
      to the user who originated the ban request. This is a potentially long