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')
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')
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')
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')
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')
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')
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')
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')
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
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')