moving to p3

This commit is contained in:
Ville Rantanen
2020-03-27 11:47:33 +02:00
parent 766aa35826
commit c042cdd04d

45
shop.py
View File

@@ -24,18 +24,18 @@ app.config.from_object(__name__)
app.config['SESSION_COOKIE_NAME'] = os.getenv('SESSION_COOKIE_NAME', 'mdshop')
app.config['register'] = os.getenv('ENABLE_REGISTER', 'true') != 'false'
print(app.config)
app.wsgi_app = ReverseProxied(app.wsgi_app)
app.wsgi_app = ReverseProxied(app.wsgi_app)
def connect_db():
if not os.path.exists(app.config['DATABASE']):
db=sqlite3.connect(app.config['DATABASE'])
for command in open('schema.sql','rt').read().split(';'):
for command in open('schema.sql','rt').read().split(';'):
db.execute(command)
db.commit()
return sqlite3.connect(app.config['DATABASE'])
def password_hash(s):
return hashlib.sha224(s).hexdigest()
return hashlib.sha224(s.encode('utf8')).hexdigest()
def get_username(id):
cur = g.db.execute('select * from users')
@@ -105,6 +105,7 @@ def scan_for_new_documents(id):
g.db.commit()
def markdown_parse(s):
s = s.decode('utf8')
s=BOLDFINDER.sub(r'*<span class="md_bold">\1</span>*',s)
s=CODEFINDER.sub(r'`<span class="md_code">\1</span>`',s)
return s
@@ -147,8 +148,8 @@ def show_shop(shopid):
if not os.path.exists(data_file):
open(data_file, 'wt').close()
entries=[]
content=open(data_file, 'rt').read().decode('utf-8')
for i,row in enumerate(open( data_file, 'rt').read().decode('utf-8').split("\n")):
content=open(data_file, 'rt').read()#.decode('utf-8')
for i,row in enumerate(open( data_file, 'rt').read().split("\n")):
# any parsing magick would be here
row=row.rstrip()
if row=="":
@@ -180,10 +181,10 @@ def show_shop(shopid):
session['sort_update'] = time.time()
return render_template(
'show_shop.html',
entries = entries,
shop = shopname,
shopid = shopid,
'show_shop.html',
entries = entries,
shop = shopname,
shopid = shopid,
content = content,
shares = shared_to,
date = get_shop_date(shopid),
@@ -208,7 +209,7 @@ def list_shops():
if row[0] in shares: # Has been shared to
date=get_shop_date(row[0])
entries.append( dict(shop=row[1], shopid=row[0], owner=get_username(row[2]),date=date) )
return render_template('list_shops.html', entries=entries)
@app.route('/add', methods=['POST'])
@@ -227,7 +228,7 @@ def add_items():
if row.strip()=="":
continue
count+=1
contents_file.write("[ ] %s\n"%row.strip().encode('utf-8'))
contents_file.write("[ ] %s\n"%row.strip())
contents_file.close()
flash('Added %d items'%(count))
return redirect(url_for('show_shop',shopid=shopid))
@@ -249,7 +250,7 @@ def edit_md():
while contents_list[-1].strip()=='':
contents_list.pop()
for row in contents_list:
contents_file.write("%s\n"%row.encode('utf-8'))
contents_file.write("%s\n"%(row,))
contents_file.close()
flash('Saved new file.')
return redirect(url_for('show_shop',shopid=shopid))
@@ -299,7 +300,7 @@ def toggle_item():
data_file=os.path.join(data_dir, shopname+".md")
backup=data_file+".bkp"
contents_file=open(data_file,'rt')
contents=contents_file.read().decode('utf-8').split("\n")
contents=contents_file.read().split("\n")
contents_file.close()
changed=False
for i,row in enumerate(contents):
@@ -315,7 +316,7 @@ def toggle_item():
if req_row==-1 or req_row==-2:
copyfile(data_file, backup)
contents_file=open(data_file,'wt')
contents_file.write("\n".join(contents).encode('utf-8'))
contents_file.write("\n".join(contents))
contents_file.close()
return redirect(url_for('show_shop',shopid=shopid))
@@ -333,7 +334,7 @@ def remove_toggled():
contents_file=open(data_file,'rt')
contents=[]
changed=False
for i,row in enumerate(contents_file.read().decode('utf-8').split("\n")):
for i,row in enumerate(contents_file.read().split("\n")):
if '[x]' not in row:
contents.append(row)
else:
@@ -342,7 +343,7 @@ def remove_toggled():
if changed:
copyfile(data_file, backup)
contents_file=open(data_file,'wt')
contents_file.write("\n".join(contents).encode('utf-8'))
contents_file.write("\n".join(contents))
contents_file.close()
#~ flash('successfully posted %s (%d)'%(row,req_row))
return redirect(url_for('show_shop',shopid=shopid))
@@ -417,7 +418,7 @@ def remove_share():
if session.get('user')!=ownerid:
flash('Not your shop!')
return redirect(url_for('show_shop',shopid=shopid))
g.db.execute('delete from shares where shopid=? and userid=?',
[shopid, userid])
g.db.commit()
@@ -432,10 +433,10 @@ def remove_shop():
shopname=g.db.execute('select shop from shops where id=?',(request.form['shopid'],)).fetchall()[0][0]
ownername=get_username(ownerid)
data_dir=os.path.join(DATADIR, ownername)
data_file=os.path.join(data_dir, shopname+".md")
data_file=os.path.join(data_dir, shopname+".md")
if session.get('user')!=ownerid:
flash('Not your shop!')
return redirect(url_for('show_shop',shopid=shopid))
return redirect(url_for('show_shop',shopid=shopid))
# remove shop DB
g.db.execute('delete from shops where id=?',
[shopid])
@@ -462,7 +463,7 @@ def sort_flip():
shopid = int(request.form['shopid'])
return redirect(
url_for('show_shop', shopid = shopid)
)
)
@app.route('/login', methods=['GET', 'POST'])
def login():
@@ -487,7 +488,7 @@ def register():
if request.method == 'POST':
import re, string
pattern = re.compile('[\W]+')
username=pattern.sub('', request.form['username'])
username=pattern.sub('', request.form['username'])
password=password_hash(request.form['password'])
if len(username)==0:
error="No username given"
@@ -535,5 +536,5 @@ def logout():
return render_template('login.html', error=None)
if __name__ == '__main__':
if __name__ == '__main__':
app.run()