Skip to content
Snippets Groups Projects
Commit 0f088350 authored by Conrad Holmberg's avatar Conrad Holmberg
Browse files
parents a24deef3 e6291ec8
No related branches found
No related tags found
No related merge requests found
#!/bin/evn python
import psycopg2
import os
DB_NAME = os.environ.get('DB_NAME', 'mailmandb')
DB_PASSWORD = os.environ.get('DB_PASSWORD')
DB_USER = os.environ.get('DB_USER', 'mailman')
conn = psycopg2.connect(
host="database",
dbname=DB_NAME,
user=DB_USER,
password=DB_PASSWORD)
# mailmandb=# \d address
# Table "public.address"
# Column | Type | Modifiers
# ----------------+-----------------------------+------------------------------------------------------
# id | integer | not null default nextval('address_id_seq'::regclass)
# email | character varying |
# _original | character varying |
# display_name | character varying |
# verified_on | timestamp without time zone |
# registered_on | timestamp without time zone |
# user_id | integer |
# preferences_id | integer |
# Indexes:
# "address_pkey" PRIMARY KEY, btree (id)
# "ix_address_email" btree (email)
# "ix_address_preferences_id" btree (preferences_id)
# "ix_address_user_id" btree (user_id)
# Foreign-key constraints:
# "address_preferences_id_fkey" FOREIGN KEY (preferences_id) REFERENCES preferences(id)
# "address_user_id_fkey" FOREIGN KEY (user_id) REFERENCES "user"(id)
# Referenced by:
# TABLE ""user"" CONSTRAINT "_preferred_address" FOREIGN KEY (_preferred_address_id) REFERENCES address(id) ON DELETE SET NULL
# TABLE "autoresponserecord" CONSTRAINT "autoresponserecord_address_id_fkey" FOREIGN KEY (address_id) REFERENCES address(id)
# TABLE "member" CONSTRAINT "member_address_id_fkey" FOREIGN KEY (address_id) REFERENCES address(id)
# TABLE "onelastdigest" CONSTRAINT "onelastdigest_address_id_fkey" FOREIGN KEY (address_id) REFERENCES address(id)
addresses_cur = conn.cursor()
addresses_cur.execute("select id from address where user_id is NULL")
......@@ -58,6 +58,33 @@ def held_reject(args):
print json.dumps(results, indent=2)
def held_discard(args):
client, ml = get_ml(args)
results = []
for id in args.ids:
held_msg = ml.get_held_message(id)
results.append(held_msg.discard())
print json.dumps(results, indent=2)
def held_delete(args):
client, ml = get_ml(args)
results = []
for id in args.ids:
held_msg = ml.get_held_message(id)
results.append(held_msg.delete())
print json.dumps(results, indent=2)
def held_defer(args):
client, ml = get_ml(args)
results = []
for id in args.ids:
held_msg = ml.get_held_message(id)
results.append(held_msg.defer())
print json.dumps(results, indent=2)
def requests_list(args):
client, ml = get_ml(args)
requests_data = []
......@@ -69,18 +96,40 @@ def requests_list(args):
def requests_approve(args):
client, ml = get_ml(args)
requests = ml.requests
response = []
for request in requests:
if request['token'] in args.tokens:
response = ml.moderate_request(request['token'], 'accept')
response.append(ml.moderate_request(request['token'], 'accept'))
print json.dumps(response, indent=2)
def requests_reject(args):
client, ml = get_ml(args)
requests = ml.requests
response = []
for request in requests:
if request['token'] in args.tokens:
response.append(ml.moderate_request(request['token'], 'reject'))
print json.dumps(response, indent=2)
def requests_discard(args):
client, ml = get_ml(args)
requests = ml.requests
response = []
for request in requests:
if request['token'] == args.token:
response = ml.moderate_request(request['token'], 'reject')
if request['token'] in args.tokens:
response.append(ml.moderate_request(request['token'], 'discard'))
print json.dumps(response, indent=2)
def requests_defer(args):
client, ml = get_ml(args)
requests = ml.requests
response = []
for request in requests:
if request['token'] in args.tokens:
response.append(ml.moderate_request(request['token'], 'defer'))
print json.dumps(response, indent=2)
......@@ -139,6 +188,15 @@ if __name__ == '__main__':
held_reject_parser = held_subparsers.add_parser('reject')
held_reject_parser.set_defaults(func=held_reject)
held_reject_parser.add_argument('--id', dest='ids', action='append')
held_discard_parser = held_subparsers.add_parser('discard')
held_discard_parser.set_defaults(func=held_discard)
held_discard_parser.add_argument('--id', dest='ids', action='append')
held_delete_parser = held_subparsers.add_parser('delete')
held_delete_parser.set_defaults(func=held_delete)
held_delete_parser.add_argument('--id', dest='ids', action='append')
held_defer_parser = held_subparsers.add_parser('defer')
held_defer_parser.set_defaults(func=held_defer)
held_defer_parser.add_argument('--id', dest='ids', action='append')
requests_parser = subparsers.add_parser('requests')
requests_subparsers = requests_parser.add_subparsers()
......@@ -151,6 +209,12 @@ if __name__ == '__main__':
requests_reject_parser = requests_subparsers.add_parser('reject')
requests_reject_parser.set_defaults(func=requests_reject)
requests_reject_parser.add_argument('--token', dest='tokens', action='append')
requests_discard_parser = requests_subparsers.add_parser('discard')
requests_discard_parser.set_defaults(func=requests_discard)
requests_discard_parser.add_argument('--token', dest='tokens', action='append')
requests_defer_parser = requests_subparsers.add_parser('defer')
requests_defer_parser.set_defaults(func=requests_defer)
requests_defer_parser.add_argument('--token', dest='tokens', action='append')
args = parser.parse_args()
args.func(args)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment