import json import sqlite3 import contextlib from flask import Flask, Response, request app = Flask(__name__) @app.route('/main.js') def main_js(): with open('disstuff.js', 'r') as f: return Response( f.read(), mimetype='application/javascript', ) @app.route('/repos.json') def repos(): with ( contextlib.closing(sqlite3.connect('disrepos.db', isolation_level=None)) as db, contextlib.closing(db.cursor()) as cursor, ): cursor.execute(''' SELECT `rowid`, `owner`, `name`, `stars`, `forks`, `desc`, `lang`, `flag` FROM `repos` ORDER BY `rowid` ASC ''') keys = 'rowid owner name stars forks desc lang flag'.split(' ') return Response( json.dumps([dict(zip(keys, row)) for row in cursor]), mimetype='text/json', ) @app.route('/badusers.json') def badusers(): with ( contextlib.closing(sqlite3.connect('disrepos.db', isolation_level=None)) as db, contextlib.closing(db.cursor()) as cursor, ): cursor.execute(''' SELECT DISTINCT `owner` FROM `repos` WHERE `owner` IN ( SELECT `owner` FROM `repos` WHERE `flag`='spam') ''') return Response( json.dumps([row[0] for row in cursor]), mimetype='text/json', ) @app.route('/flag', methods=['POST']) def flag(): with ( contextlib.closing(sqlite3.connect('disrepos.db', isolation_level=None)) as db, contextlib.closing(db.cursor()) as cursor, ): rowid = int(request.form['rowid']) flag = request.form['flag'] if flag == '': flag = None cursor.execute(''' UPDATE `repos` SET `flag`=? WHERE `rowid`=? ''', (flag, rowid)) assert cursor.rowcount == 1 return '' @app.route('/') def index(): return ''' Filter:

'''