Ejemplo n.º 1
0
def delete_all():
    try:
        db.exec('delete from pkeys;')
        return Response('ok\n', status=200, mimetype='text/plain')
    except mysql.Error as e:
        return Response('Error: {}\n'.format(e),
                        status=500,
                        mimetype='text/plain')
Ejemplo n.º 2
0
def delete():
    try:
        db.exec('delete from pkeys where pkey=%s;', (request.json['key'], ))
        return Response('ok\n', status=200, mimetype='text/plain')
    except mysql.Error as e:
        return Response('Error: {}\n'.format(e),
                        status=500,
                        mimetype='text/plain')
Ejemplo n.º 3
0
def post():
    try:
        db.exec(
            'insert into pkeys (id, created, pkey) values (%s, NOW(), %s);',
            (request.json['id'], request.json['key']))
        return Response('ok\n', status=200, mimetype='text/plain')
    except mysql.Error as e:
        return Response('Error: {}\n'.format(e),
                        status=500,
                        mimetype='text/plain')
Ejemplo n.º 4
0
def ip_delete():
    try:
        if request.json is not None and 'ip' in request.json:
            db.exec('delete from ips where ip=%s;', (request.json['ip'], ))
        else:
            db.exec('delete from ips;'
                    )  # where ip=?;', (request.headers['X-Forwarded-For'],))
        return Response('ok\n', status=200, mimetype='text/plain')
    except mysql.Error as e:
        return Response('Error: {}\n'.format(e),
                        status=500,
                        mimetype='text/plain')
Ejemplo n.º 5
0
def ip_internal_post():
    try:
        if request.json is None or 'port' not in request.json or 'ip' not in request.json:
            return Response(status=400)

        db.exec('replace into ips (ip, port, joined) values (%s, %s, NOW());',
                (request.json['ip'], request.json['port']))
        return Response('ok\n', status=200, mimetype='text/plain')
    except mysql.Error as e:
        return Response('Error: {}\n'.format(e),
                        status=500,
                        mimetype='text/plain')
Ejemplo n.º 6
0
def get_all():
    try:
        result = [{
            'id': i[0],
            'created': i[1],
            'key': i[2]
        } for i in db.exec('select id, created, pkey from pkeys;')]
        return jsonify(result)
    except mysql.Error as e:
        return Response('Error: {}\n'.format(e),
                        status=500,
                        mimetype='text/plain')
Ejemplo n.º 7
0
def ip_get():
    try:
        result = [{
            'ip': i[0],
            'port': i[1],
            'joined': i[2]
        } for i in db.exec('select ip, port, joined from ips;')]
        return jsonify(result)
    except mysql.Error as e:
        return Response('Error: {}\n'.format(e),
                        status=500,
                        mimetype='text/plain')
Ejemplo n.º 8
0
def get():
    try:
        res = db.exec('select id, created, pkey from pkeys where pkey=%s;',
                      (request.json['key'], ))
        if res == []:
            return Response('key not found\n',
                            status=404,
                            mimetype='text/plain')
        rid, rcreated, rkey = res[0]
        result = {'id': rid, 'created': rcreated, 'key': rkey}
        return jsonify(result)
    except mysql.Error as e:
        return Response('Error: {}\n'.format(e),
                        status=500,
                        mimetype='text/plain')
Ejemplo n.º 9
0
from functools import wraps
from base64 import b64encode
import mysql.connector as mysql

import cc_db as db
import config

cc_key = Blueprint('cc_key', __name__, template_folder='templates')

basicAuth = 'Basic ' + b64encode(
    bytes(
        config.get('cryptocontracts.user') + ':' +
        config.get('cryptocontracts.pw'), "ascii")).decode('ascii')

db.exec(
    'create table if not exists pkeys (id text, created datetime, pkey varchar(2000), primary key(pkey));'
)


def auth_required(f):
    @wraps(f)
    def wrap(*args, **kwargs):
        if request.headers.get(
                'Authorization') is not None and request.headers.get(
                    'Authorization') == basicAuth:
            return f(*args, **kwargs)
        abort(401)

    return wrap

Ejemplo n.º 10
0
from flask import Blueprint, request, Response, jsonify, abort
from functools import wraps
from base64 import b64encode
import mysql.connector as mysql

import cc_db as db

cc_ip = Blueprint('cc_ip', __name__, template_folder='templates')

db.exec(
    'create table if not exists ips (ip varchar(39), port int, joined datetime, primary key(ip));'
)

#TODO cron timeout


@cc_ip.route('/', methods=['POST'])
def ip_post():
    try:
        if request.json is None or 'port' not in request.json:
            return Response(status=400)

        db.exec('replace into ips (ip, port, joined) values (%s, %s, NOW());',
                (request.headers['X-Forwarded-For'], request.json['port']))
        return Response('ok\n', status=200, mimetype='text/plain')
    except mysql.Error as e:
        return Response('Error: {}\n'.format(e),
                        status=500,
                        mimetype='text/plain')