Skip to content

Commit

Permalink
Added Python3 compatibility to print statements (CTFd#220)
Browse files Browse the repository at this point in the history
  • Loading branch information
Thomas Gerot authored and ColdHeat committed Mar 8, 2017
1 parent 41eaa56 commit a390a06
Showing 1 changed file with 17 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -30,16 +30,16 @@ def upgrade():
# ### commands auto generated by Alembic - please adjust! ###

## Copy over flags data to Keys table
print "Getting bind..."
print("Getting bind...")
conn = op.get_bind()

print "Executing: SELECT id, flags from challenges"
print("Executing: SELECT id, flags from challenges")
res = conn.execute(text("SELECT id, flags from challenges"))
results = res.fetchall()

print "There are {} results".format(len(results))
print("There are {} results".format(len(results)))
new_keys = []
print "Processing existing flags"
print("Processing existing flags")
for r in results:
if r[1]: ## Check if flags are NULL
data = json.loads(r[1])
Expand All @@ -48,53 +48,53 @@ def upgrade():
if new_keys:
## Base CTFd databases actually already insert into Keys but the database does not make use of them
## This prevents duplicate entries of keys
print "Executing: TRUNCATE keys"
print("Executing: TRUNCATE keys")
conn.execute(text("TRUNCATE `keys`"))

print "Bulk inserting the keys"
print("Bulk inserting the keys")
op.bulk_insert(keys_table, new_keys)

## Add type column to challenges
print "Adding type column to challenges"
print("Adding type column to challenges")
op.add_column('challenges', sa.Column('type', sa.Integer(), nullable=True, default=0))

## Set all NULLs to 0
print "Setting all NULLs to 0"
print("Setting all NULLs to 0")
conn.execute("UPDATE challenges set type=0 WHERE type IS NULL")

## Drop flags from challenges
print "Dropping flags column from challenges"
print("Dropping flags column from challenges")
op.drop_column('challenges', 'flags')

print "Finished"
print("Finished")
# ### end Alembic commands ###


def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
print "Getting bind..."
print("Getting bind...")
conn = op.get_bind()

print "Adding flags column back to challenges table"
print("Adding flags column back to challenges table")
op.add_column('challenges', sa.Column('flags', sa.TEXT(), nullable=True))

print "Dropping type column from challenges table"
print("Dropping type column from challenges table")
op.drop_column('challenges', 'type')

print "Executing: SELECT id, flags from challenges"
print("Executing: SELECT id, flags from challenges")
res = conn.execute("SELECT id, flags from challenges")
results = res.fetchall()

print "There are {} results".format(len(results))
print("There are {} results".format(len(results)))
for chal_id in results:
new_keys = Keys.query.filter_by(chal=chal_id[0]).all()
old_flags = []
for new_key in new_keys:
flag_dict = {'flag': new_key.flag, 'type': new_key.key_type}
old_flags.append(flag_dict)
old_flags =json.dumps(old_flags)
print "Updating challenge {} to insert {}".format(chal_id[0], flag_dict)
print("Updating challenge {} to insert {}".format(chal_id[0], flag_dict))
conn.execute(text('UPDATE challenges SET flags=:flags WHERE id=:id'), id=chal_id[0], flags=old_flags)

print "Finished"
print("Finished")
# ### end Alembic commands ###

0 comments on commit a390a06

Please sign in to comment.