Do stuff
This commit is contained in:
parent
72c632bb93
commit
c165b433c2
4 changed files with 69 additions and 48 deletions
22
archive/fun.py
Normal file
22
archive/fun.py
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
from flask import Flask, request
|
||||||
|
from flask_restful import Resource, Api
|
||||||
|
from sqlalchemy import create_engine
|
||||||
|
from json import dumps
|
||||||
|
from flask.json import jsonify
|
||||||
|
|
||||||
|
db_connect = create_engine('sqlite:///chinook.db')
|
||||||
|
app = Flask(__name__)
|
||||||
|
api = Api(app)
|
||||||
|
|
||||||
|
@app.route("/")
|
||||||
|
def hello():
|
||||||
|
return """
|
||||||
|
<pre>
|
||||||
|
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
app.run(host="::",
|
||||||
|
port='5002')
|
37
challenge.py
Normal file
37
challenge.py
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
def require_args(*args):
|
||||||
|
parser = reqparse.RequestParser()
|
||||||
|
for arg in args:
|
||||||
|
parser.add_argument(arg, required=True)
|
||||||
|
return parser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
|
class Challenge(object):
|
||||||
|
""" A sample challenge -- inherit this and overwrite accordingly """
|
||||||
|
|
||||||
|
points = 0
|
||||||
|
provides = []
|
||||||
|
requires = []
|
||||||
|
description = None
|
||||||
|
dependencies_provided_by = {}
|
||||||
|
|
||||||
|
def __init__(self, wrapper):
|
||||||
|
self.db = wrapper
|
||||||
|
|
||||||
|
def game(self):
|
||||||
|
if request.method == 'GET':
|
||||||
|
return self.describe()
|
||||||
|
if request.method == 'POST':
|
||||||
|
return self.solve()
|
||||||
|
|
||||||
|
def describe(self):
|
||||||
|
return self.description
|
||||||
|
|
||||||
|
def save_points(self, user):
|
||||||
|
""" should be called when the challenge was solved successfully"""
|
||||||
|
|
||||||
|
key = "points/{}".format(user, type(self).__name__)
|
||||||
|
self.db.set_user_key(user, key, self.points)
|
||||||
|
|
||||||
|
def solve(self):
|
||||||
|
""" Needs to be implemented per challenge """
|
||||||
|
pass
|
9
challenges_ipv6.py
Normal file
9
challenges_ipv6.py
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
import ipaddress
|
||||||
|
import random
|
||||||
|
|
||||||
|
def get_random_ip(network):
|
||||||
|
net = ipaddress.IPv6Network(network)
|
||||||
|
addr_offset = random.randrange(2**64)
|
||||||
|
addr = net[0] + addr_offset
|
||||||
|
|
||||||
|
return addr
|
49
server.py
49
server.py
|
@ -1,63 +1,16 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
USERLENGTH = 50
|
|
||||||
|
|
||||||
import ipaddress
|
|
||||||
import random
|
|
||||||
import sys
|
import sys
|
||||||
import etcd
|
import etcd
|
||||||
import json
|
import json
|
||||||
import datetime
|
import datetime
|
||||||
|
import inspect
|
||||||
|
|
||||||
from ungleich_game_db import *
|
from ungleich_game_db import *
|
||||||
|
|
||||||
from flask import Flask, abort, request, Response
|
from flask import Flask, abort, request, Response
|
||||||
from flask_restful import reqparse
|
from flask_restful import reqparse
|
||||||
|
|
||||||
def get_random_ip(network):
|
|
||||||
net = ipaddress.IPv6Network(network)
|
|
||||||
addr_offset = random.randrange(2**64)
|
|
||||||
addr = net[0] + addr_offset
|
|
||||||
|
|
||||||
return addr
|
|
||||||
|
|
||||||
def require_args(*args):
|
|
||||||
parser = reqparse.RequestParser()
|
|
||||||
for arg in args:
|
|
||||||
parser.add_argument(arg, required=True)
|
|
||||||
return parser.parse_args()
|
|
||||||
|
|
||||||
|
|
||||||
class Challenge(object):
|
|
||||||
""" A sample challenge -- inherit this and overwrite accordingly """
|
|
||||||
|
|
||||||
points = 0
|
|
||||||
provides = []
|
|
||||||
requires = []
|
|
||||||
description = None
|
|
||||||
dependencies_provided_by = {}
|
|
||||||
|
|
||||||
def __init__(self, wrapper):
|
|
||||||
self.db = wrapper
|
|
||||||
|
|
||||||
def game(self):
|
|
||||||
if request.method == 'GET':
|
|
||||||
return self.describe()
|
|
||||||
if request.method == 'POST':
|
|
||||||
return self.solve()
|
|
||||||
|
|
||||||
def describe(self):
|
|
||||||
return self.description
|
|
||||||
|
|
||||||
def save_points(self, user):
|
|
||||||
""" should be called when the challenge was solved successfully"""
|
|
||||||
|
|
||||||
key = "points/{}".format(user, type(self).__name__)
|
|
||||||
self.db.set_user_key(user, key, self.points)
|
|
||||||
|
|
||||||
def solve(self):
|
|
||||||
""" Needs to be implemented per challenge """
|
|
||||||
pass
|
|
||||||
|
|
||||||
class RegisterNet(Challenge):
|
class RegisterNet(Challenge):
|
||||||
points = 10
|
points = 10
|
||||||
|
|
Loading…
Reference in a new issue