from __future__ import unicode_literals, print_function import sys import os root = os.path.join(os.path.dirname(__file__), '..') sys.path.insert(0, root) import logging import psycopg2 from snowball_ticketing import tickets, utils, users, logging_setup logger = utils.getLogger("snowball_ticketing.bin.collection_mass_mail") def send_mail(user_id, pg): tickets.user_pg_lock(user_id, pg=pg) user = users.get_user(user_id, pg=pg) name = user["othernames"] + " " + user["surname"] alumnus = user["person_type"] == "alumnus" paid_tickets = tickets.tickets(user_id=user_id, paid=True, pg=pg) if not paid_tickets: logger.warning("Not mailing %s (no tickets)", user_id, extra={"user_id": user_id}) return def k(t): return (t["othernames"], t["surname"]) paid_tickets.sort(key=k)
from __future__ import unicode_literals, print_function import sys import os root = os.path.join(os.path.dirname(__file__), '..') sys.path.insert(0, root) import psycopg2 import logging from snowball_ticketing import utils, users, tickets, lookup, logging_setup logger = utils.getLogger(__name__) def main(crsid, postgres_settings): logger.info("Creating raven user for %s", crsid) logging_setup.add_postgresql_handler(postgres_settings) logging_setup.add_syslog_handler() logging_setup.add_smtp_handler() conn = psycopg2.connect(connection_factory=utils.PostgreSQLConnection, **postgres_settings) user = users.get_raven_user(crsid, pg=conn) if user is None: conn.commit() lookup_data = lookup.get_crsid(crsid)
from __future__ import unicode_literals, print_function import sys import os root = os.path.join(os.path.dirname(__file__), '..') sys.path.insert(0, root) import logging import psycopg2 from snowball_ticketing import tickets, utils, users, logging_setup logger = utils.getLogger("snowball_ticketing.bin.guest_mass_mail") def send_mail(template, user_id, pg): user = users.get_user(user_id, pg=pg) name = user["othernames"] + " " + user["surname"] logger.info("Sending mass mail (%s) to user %s", template, user["user_id"], extra={"user_id": user_id}) # drop the locks pg.commit() utils.send_email(template, recipient=(name, user["email"]), sender=("Snowball Ticketing", "*****@*****.**"))
from __future__ import unicode_literals, print_function import sys import os root = os.path.join(os.path.dirname(__file__), '..') sys.path.insert(0, root) import logging import psycopg2 from snowball_ticketing import tickets, utils, users, logging_setup logger = utils.getLogger("snowball_ticketing.bin.collection_mass_mail") def send_mail(user_id, pg): tickets.user_pg_lock(user_id, pg=pg) user = users.get_user(user_id, pg=pg) name = user["othernames"] + " " + user["surname"] alumnus = user["person_type"] == "alumnus" paid_tickets = tickets.tickets(user_id=user_id, paid=True, pg=pg) if not paid_tickets: logger.warning("Not mailing %s (no tickets)", user_id, extra={"user_id": user_id}) return def k(t):
import sys import os root = os.path.join(os.path.dirname(__file__), '..') sys.path.insert(0, root) import psycopg2 import logging import csv from datetime import datetime from snowball_ticketing import utils, tickets, logging_setup logger = utils.getLogger("snowball_ticketing.bin.prepare_vip_wl_upgrade") def prepare(postgres_settings, pairs): # This is a hack, to cover up a design flaw. logging_setup.add_syslog_handler() logging_setup.add_postgresql_handler(postgres_settings) logging_setup.add_smtp_handler() conn = psycopg2.connect(connection_factory=utils.PostgreSQLConnection, **postgres_settings) for user_id, ticket_id in pairs: with conn.cursor(True) as cur: cur.execute("SELECT * FROM tickets "
import sys import os from datetime import datetime root = os.path.join(os.path.dirname(__file__), '..') sys.path.insert(0, root) import psycopg2 import logging import csv from snowball_ticketing import utils, logging_setup from snowball_ticketing.tickets.receipt import send_update logger = utils.getLogger("snowball_ticketing.bin.harass") def harass(postgres_settings, filename): logging_setup.add_syslog_handler() logging_setup.add_postgresql_handler(postgres_settings) logging_setup.add_smtp_handler() conn = psycopg2.connect(connection_factory=utils.PostgreSQLConnection, **postgres_settings) harassed = set() with open(filename) as f: for user_id, deadline in csv.reader(f): user_id = int(user_id)
from __future__ import unicode_literals, print_function import sys import os root = os.path.join(os.path.dirname(__file__), '..') sys.path.insert(0, root) import logging import psycopg2 from snowball_ticketing import tickets, utils, users, logging_setup logger = utils.getLogger("snowball_ticketing.bin.guest_mass_mail") def send_mail(template, user_id, pg): user = users.get_user(user_id, pg=pg) name = user["othernames"] + " " + user["surname"] logger.info("Sending mass mail (%s) to user %s", template, user["user_id"], extra={"user_id": user_id}) # drop the locks pg.commit() utils.send_email(template, recipient=(name, user["email"]), sender=("Snowball Ticketing",
from __future__ import unicode_literals, print_function import sys import os root = os.path.join(os.path.dirname(__file__), '..') sys.path.insert(0, root) import psycopg2 import logging import csv from datetime import datetime from snowball_ticketing import utils, tickets, logging_setup logger = utils.getLogger("snowball_ticketing.bin.prepare_vip_wl_upgrade") def prepare(postgres_settings, pairs): # This is a hack, to cover up a design flaw. logging_setup.add_syslog_handler() logging_setup.add_postgresql_handler(postgres_settings) logging_setup.add_smtp_handler() conn = psycopg2.connect(connection_factory=utils.PostgreSQLConnection, **postgres_settings) for user_id, ticket_id in pairs: with conn.cursor(True) as cur: cur.execute(
from __future__ import unicode_literals, print_function import sys import os root = os.path.join(os.path.dirname(__file__), '..') sys.path.insert(0, root) import psycopg2 import logging from snowball_ticketing import utils, users, tickets, lookup, logging_setup logger = utils.getLogger("manual_add_unfinalised_ticket") # Stolen from user_info.py def types(ticket): a = [] if ticket["vip"]: a.append("VIP") if ticket["paid"]: a.append("paid") elif ticket["finalised"]: a.append("finalised") elif ticket["expires"] is not None and \ ticket["expires"] < datetime.utcnow(): a.append("expired") for key in ('waiting_list', 'quota_exempt', 'printed', 'ticket_collected', 'entered_ball', 'forbid_desk_entry'): if ticket[key]: a.append(key.replace("_", "-")) return ' '.join(a)
import sys import psycopg2 import logging from snowball_ticketing import utils, users, tickets, lookup, logging_setup logger = utils.getLogger(__name__) def main(crsid, postgres_settings): logger.info("Creating free VIP upgrade for %s", crsid) logging_setup.add_postgresql_handler(postgres_settings) logging_setup.add_syslog_handler() logging_setup.add_smtp_handler() conn = psycopg2.connect(connection_factory=utils.PostgreSQLConnection, **postgres_settings) lookup_data = lookup.get_crsid(crsid) user = users.new_raven_user(crsid, ["current"], lookup_data, pg=conn) ticket_id, = tickets.buy("vip", False, 1, user=user, pg=conn) with conn.cursor() as cur: cur.execute("UPDATE tickets " "SET expires = NULL, expires_reason = NULL, " " price = 6900 " "WHERE ticket_id = %s", (ticket_id, ))