Initial commit.
commit
2bcebf1fb7
|
@ -0,0 +1,2 @@
|
|||
olddata
|
||||
webapp/data.db
|
|
@ -0,0 +1,10 @@
|
|||
class Config(object):
|
||||
DEBUG = False
|
||||
TESTING = False
|
||||
CREATE_DATABASE = False
|
||||
SQLALCHEMY_DATABASE_URI = "sqlite:///data.db"
|
||||
|
||||
|
||||
class DevelopmentConfig(Config):
|
||||
CREATE_DATABASE = True
|
||||
DEBUG = True
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"folders":
|
||||
[
|
||||
{
|
||||
"path": "/home/q3k/Hackerspace/fascist"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,188 @@
|
|||
{
|
||||
"auto_complete":
|
||||
{
|
||||
"selected_items":
|
||||
[
|
||||
[
|
||||
"Part",
|
||||
"PartitionID"
|
||||
],
|
||||
[
|
||||
"Partition",
|
||||
"PartitionbMounted"
|
||||
],
|
||||
[
|
||||
"Block",
|
||||
"BlockDeviceLabel"
|
||||
],
|
||||
[
|
||||
"get_",
|
||||
"get_arg_type"
|
||||
],
|
||||
[
|
||||
"get",
|
||||
"get_basic"
|
||||
]
|
||||
]
|
||||
},
|
||||
"buffers":
|
||||
[
|
||||
],
|
||||
"build_system": "",
|
||||
"command_palette":
|
||||
{
|
||||
"height": 32.0,
|
||||
"selected_items":
|
||||
[
|
||||
[
|
||||
"pac in",
|
||||
"Package Control: Install Package"
|
||||
],
|
||||
[
|
||||
"packa",
|
||||
"Package Control: Install Package"
|
||||
],
|
||||
[
|
||||
"packa ",
|
||||
"Package Control: Install Package"
|
||||
]
|
||||
],
|
||||
"width": 449.0
|
||||
},
|
||||
"console":
|
||||
{
|
||||
"height": 125.0
|
||||
},
|
||||
"distraction_free":
|
||||
{
|
||||
"menu_visible": true,
|
||||
"show_minimap": false,
|
||||
"show_open_files": false,
|
||||
"show_tabs": false,
|
||||
"side_bar_visible": false,
|
||||
"status_bar_visible": false
|
||||
},
|
||||
"file_history":
|
||||
[
|
||||
"/home/q3k/Personal/ldbusw/ldbusw.lua",
|
||||
"/home/q3k/Personal/ldbusw/test.lua"
|
||||
],
|
||||
"find":
|
||||
{
|
||||
"height": 34.0
|
||||
},
|
||||
"find_in_files":
|
||||
{
|
||||
"height": 0.0,
|
||||
"where_history":
|
||||
[
|
||||
]
|
||||
},
|
||||
"find_state":
|
||||
{
|
||||
"case_sensitive": false,
|
||||
"find_history":
|
||||
[
|
||||
"print",
|
||||
"Interface",
|
||||
"get_object",
|
||||
"get",
|
||||
"recurse",
|
||||
"append_basic"
|
||||
],
|
||||
"highlight": true,
|
||||
"in_selection": false,
|
||||
"preserve_case": false,
|
||||
"regex": false,
|
||||
"replace_history":
|
||||
[
|
||||
],
|
||||
"reverse": false,
|
||||
"show_context": true,
|
||||
"use_buffer2": true,
|
||||
"whole_word": false,
|
||||
"wrap": true
|
||||
},
|
||||
"groups":
|
||||
[
|
||||
{
|
||||
"sheets":
|
||||
[
|
||||
]
|
||||
}
|
||||
],
|
||||
"incremental_find":
|
||||
{
|
||||
"height": 0.0
|
||||
},
|
||||
"input":
|
||||
{
|
||||
"height": 0.0
|
||||
},
|
||||
"layout":
|
||||
{
|
||||
"cells":
|
||||
[
|
||||
[
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1
|
||||
]
|
||||
],
|
||||
"cols":
|
||||
[
|
||||
0.0,
|
||||
1.0
|
||||
],
|
||||
"rows":
|
||||
[
|
||||
0.0,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
"menu_visible": true,
|
||||
"output.exec":
|
||||
{
|
||||
"height": 94.0
|
||||
},
|
||||
"replace":
|
||||
{
|
||||
"height": 0.0
|
||||
},
|
||||
"save_all_on_build": true,
|
||||
"select_file":
|
||||
{
|
||||
"height": 0.0,
|
||||
"selected_items":
|
||||
[
|
||||
[
|
||||
"test",
|
||||
"ldbusw/test.lua"
|
||||
],
|
||||
[
|
||||
"exam",
|
||||
"ldbus/example.lua"
|
||||
],
|
||||
[
|
||||
"ldbusw",
|
||||
"ldbusw/ldbusw.lua"
|
||||
]
|
||||
],
|
||||
"width": 0.0
|
||||
},
|
||||
"select_project":
|
||||
{
|
||||
"height": 500.0,
|
||||
"selected_items":
|
||||
[
|
||||
],
|
||||
"width": 380.0
|
||||
},
|
||||
"show_minimap": true,
|
||||
"show_open_files": false,
|
||||
"show_tabs": true,
|
||||
"side_bar_visible": true,
|
||||
"side_bar_width": 150.0,
|
||||
"status_bar_visible": true
|
||||
}
|
|
@ -0,0 +1,70 @@
|
|||
import re
|
||||
import datetime
|
||||
|
||||
import webapp
|
||||
|
||||
# yes, I am in fact importing an old sqlite dump with regexp
|
||||
# deal with it
|
||||
f = open('olddata', 'r')
|
||||
d = f.read()
|
||||
f.close()
|
||||
|
||||
def fancysplit(s):
|
||||
parts = []
|
||||
part = ""
|
||||
pi = 0
|
||||
escaped = False
|
||||
for c in s:
|
||||
if pi == 0 and c == "'":
|
||||
escaped = True
|
||||
elif pi > 0 and c == "'":
|
||||
escaped = False
|
||||
elif not escaped and c == ",":
|
||||
parts.append(part)
|
||||
part = ""
|
||||
pi = -1
|
||||
escaped = False
|
||||
else:
|
||||
part += c
|
||||
pi += 1
|
||||
if part != "":
|
||||
parts.append(part)
|
||||
return parts
|
||||
|
||||
|
||||
records = {}
|
||||
for line in d.split("\n"):
|
||||
m = re.match(r'^INSERT INTO "([a-z_]+)" ', line)
|
||||
if m:
|
||||
table_name = m.group(1)
|
||||
if table_name not in records:
|
||||
records[table_name] = []
|
||||
m = re.search("VALUES\((.+)\);", line)
|
||||
values_s = m.group(1)
|
||||
values_r = [v.strip("'").decode("utf-8") for v in fancysplit(values_s)]
|
||||
values = []
|
||||
for v in values_r:
|
||||
try:
|
||||
vales.append(int(v))
|
||||
except:
|
||||
values.append(v)
|
||||
records[table_name].append(tuple(values))
|
||||
|
||||
for member_id, member_name, member_type, member_active in records["_members"]:
|
||||
m = webapp.models.Member(member_id, member_name, member_type, True if member_active == 1 else False)
|
||||
webapp.db.session.add(m)
|
||||
|
||||
for _id, uid, account_from, name_from, amount, title, date in records["_transfers"]:
|
||||
date = datetime.datetime.strptime(date, "20%y-%m-%d %H:%M:%S")
|
||||
t = webapp.models.Transfer(_id, uid, account_from, name_from, amount, title, date)
|
||||
webapp.db.session.add(t)
|
||||
|
||||
webapp.db.session.commit()
|
||||
|
||||
for _id, transfer_id, member_id, year, month in records["_member_transfer"]:
|
||||
member = webapp.models.Member.query.get(member_id)
|
||||
transfer = webapp.models.Transfer.query.get(transfer_id)
|
||||
mt = webapp.models.MemberTransfer(_id, year, month, transfer)
|
||||
member.transfers.append(mt)
|
||||
|
||||
webapp.db.session.commit()
|
|
@ -0,0 +1,4 @@
|
|||
import webapp
|
||||
|
||||
webapp.init()
|
||||
webapp.app.run()
|
|
@ -0,0 +1,14 @@
|
|||
from flask import Flask
|
||||
from flask.ext.sqlalchemy import SQLAlchemy
|
||||
|
||||
app = Flask(__name__)
|
||||
app.config.from_object("config.DevelopmentConfig")
|
||||
db = SQLAlchemy(app)
|
||||
|
||||
import webapp.views
|
||||
import webapp.models
|
||||
|
||||
|
||||
def init():
|
||||
if app.config["CREATE_DATABASE"]:
|
||||
db.create_all()
|
Binary file not shown.
|
@ -0,0 +1,50 @@
|
|||
from webapp import db
|
||||
|
||||
|
||||
class MemberTransfer(db.Model):
|
||||
__tablename__ = "member_transfer"
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
member_id = db.Column(db.Integer, db.ForeignKey("member.id"))
|
||||
transfer_id = db.Column(db.Integer, db.ForeignKey("transfer.id"))
|
||||
year = db.Column(db.Integer)
|
||||
month = db.Column(db.Integer)
|
||||
transfer = db.relationship("Transfer", backref="member_transfers")
|
||||
|
||||
def __init__(self, _id, year, month, transfer):
|
||||
self.id = _id
|
||||
self.year = year
|
||||
self.month = month
|
||||
self.transfer = transfer
|
||||
|
||||
|
||||
class Member(db.Model):
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
username = db.Column(db.String(64), unique=True)
|
||||
type = db.Column(db.Enum("starving", "fatty"))
|
||||
transfers = db.relationship("MemberTransfer", backref="members")
|
||||
active = db.Column(db.Boolean)
|
||||
|
||||
def __init__(self, _id, _username, _type, _active):
|
||||
self.id = _id
|
||||
self.username = _username
|
||||
self.type = _type
|
||||
self.active = _active
|
||||
|
||||
|
||||
class Transfer(db.Model):
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
uid = db.Column(db.String(16))
|
||||
account_from = db.Column(db.String(32))
|
||||
name_from = db.Column(db.String(64))
|
||||
amount = db.Column(db.Integer)
|
||||
title = db.Column(db.String(64))
|
||||
date = db.Column(db.Date)
|
||||
|
||||
def __init__(self, _id, _uid, _account_from, _name_from, _amount, _title, _date):
|
||||
self.id = _id
|
||||
self.uid = _uid
|
||||
self.account_from = _account_from
|
||||
self.name_from = _name_from
|
||||
self.amount = _amount
|
||||
self.title = _title
|
||||
self.date = _date
|
Binary file not shown.
|
@ -0,0 +1,6 @@
|
|||
from webapp import app
|
||||
|
||||
|
||||
@app.route("/")
|
||||
def root():
|
||||
return 'Hello.'
|
Binary file not shown.
Loading…
Reference in New Issue