Upgrading exports (#283)

* Upgrading export capabilities
* Only apply sqlite hacks for sqlite

This fixes #250, #246
Adds export.py to save CTFs without needing to actually spin up CTFd
Also forcing charset properly for MySQL
This commit is contained in:
Kevin Chung
2017-06-16 17:49:37 -04:00
committed by GitHub
parent 34237e6292
commit f0c44ed6d6
4 changed files with 40 additions and 5 deletions

23
export.py Normal file
View File

@@ -0,0 +1,23 @@
from CTFd import create_app
from CTFd.utils import ctf_name, export_ctf
import datetime
import sys
import shutil
import zipfile
app = create_app()
with app.app_context():
backup = export_ctf()
if len(sys.argv) > 1:
with open(sys.argv[1], 'wb') as target:
shutil.copyfileobj(backup, target)
else:
ctf_name = ctf_name()
day = datetime.datetime.now().strftime("%Y-%m-%d")
full_name = "{}.{}.zip".format(ctf_name, day)
with open(full_name, 'wb') as target:
shutil.copyfileobj(backup, target)