|
@@ -14,6 +14,8 @@ data = json.loads(json_data)
|
|
|
conn = pymysql.connect(host = data['host'], user = data['user'], password = data['pw'], db = data['db'], charset = 'utf8')
|
|
conn = pymysql.connect(host = data['host'], user = data['user'], password = data['pw'], db = data['db'], charset = 'utf8')
|
|
|
curs = conn.cursor(pymysql.cursors.DictCursor)
|
|
curs = conn.cursor(pymysql.cursors.DictCursor)
|
|
|
|
|
|
|
|
|
|
+app.secret_key = data['key']
|
|
|
|
|
+
|
|
|
def namumark(data):
|
|
def namumark(data):
|
|
|
data = '\n' + data + '\n'
|
|
data = '\n' + data + '\n'
|
|
|
|
|
|
|
@@ -39,10 +41,13 @@ def namumark(data):
|
|
|
return data
|
|
return data
|
|
|
|
|
|
|
|
def getip(request):
|
|
def getip(request):
|
|
|
- if request.headers.getlist("X-Forwarded-For"):
|
|
|
|
|
- ip = request.headers.getlist("X-Forwarded-For")[0]
|
|
|
|
|
|
|
+ if(session.get('Now') == True):
|
|
|
|
|
+ ip = format(session['DREAMER'])
|
|
|
else:
|
|
else:
|
|
|
- ip = request.remote_addr
|
|
|
|
|
|
|
+ if(request.headers.getlist("X-Forwarded-For")):
|
|
|
|
|
+ ip = request.headers.getlist("X-Forwarded-For")[0]
|
|
|
|
|
+ else:
|
|
|
|
|
+ ip = request.remote_addr
|
|
|
return ip
|
|
return ip
|
|
|
|
|
|
|
|
def getnow():
|
|
def getnow():
|
|
@@ -437,18 +442,34 @@ def sub(name = None, sub = None):
|
|
|
break
|
|
break
|
|
|
if(i == 0):
|
|
if(i == 0):
|
|
|
start = rows[i]['ip']
|
|
start = rows[i]['ip']
|
|
|
|
|
+ indata = rows[i]['data']
|
|
|
|
|
+ indata = re.sub('<', '<', indata)
|
|
|
|
|
+ indata = re.sub('>', '>', indata)
|
|
|
if(rows[i]['ip'] == start):
|
|
if(rows[i]['ip'] == start):
|
|
|
j = i + 1
|
|
j = i + 1
|
|
|
- div = div + '<table id="toron"><tbody><tr><td id="toroncolorgreen"><a href="javascript:void(0);" id="' + str(j) + '">#' + str(j) + '</a> ' + rows[i]['ip'] + ' <span style="float:right;">' + rows[i]['date'] + '</span></td></tr><tr><td>' + rows[i]['data'] + '</td></tr></tbody></table><br>'
|
|
|
|
|
|
|
+ div = div + '<table id="toron"><tbody><tr><td id="toroncolorgreen"><a href="javascript:void(0);" id="' + str(j) + '">#' + str(j) + '</a> ' + rows[i]['ip'] + ' <span style="float:right;">' + rows[i]['date'] + '</span></td></tr><tr><td>' + indata + '</td></tr></tbody></table><br>'
|
|
|
else:
|
|
else:
|
|
|
j = i + 1
|
|
j = i + 1
|
|
|
- div = div + '<table id="toron"><tbody><tr><td id="toroncolor"><a href="javascript:void(0);" id="' + str(j) + '">#' + str(j) + '</a> ' + rows[i]['ip'] + ' <span style="float:right;">' + rows[i]['date'] + '</span></td></tr><tr><td>' + rows[i]['data'] + '</td></tr></tbody></table><br>'
|
|
|
|
|
|
|
+ div = div + '<table id="toron"><tbody><tr><td id="toroncolor"><a href="javascript:void(0);" id="' + str(j) + '">#' + str(j) + '</a> ' + rows[i]['ip'] + ' <span style="float:right;">' + rows[i]['date'] + '</span></td></tr><tr><td>' + indata + '</td></tr></tbody></table><br>'
|
|
|
i = i + 1
|
|
i = i + 1
|
|
|
return render_template('index.html', title = name, page = parse.quote(name), suburl = parse.quote(sub), sub = sub, logo = data['name'], rows = div, tn = 11)
|
|
return render_template('index.html', title = name, page = parse.quote(name), suburl = parse.quote(sub), sub = sub, logo = data['name'], rows = div, tn = 11)
|
|
|
|
|
|
|
|
@app.route('/login', methods=['POST', 'GET'])
|
|
@app.route('/login', methods=['POST', 'GET'])
|
|
|
def login():
|
|
def login():
|
|
|
- return render_template('index.html', title = '로그인', enter = '로그인', logo = data['name'], tn = 15)
|
|
|
|
|
|
|
+ if(request.method == 'POST'):
|
|
|
|
|
+ curs.execute("select * from user where id = '" + pymysql.escape_string(request.form["id"]) + "'")
|
|
|
|
|
+ rows = curs.fetchall()
|
|
|
|
|
+ if(rows):
|
|
|
|
|
+ if(bcrypt.checkpw(bytes(request.form["pw"], 'utf-8'), bytes(rows[0]['pw'], 'utf-8'))):
|
|
|
|
|
+ session['Now'] = True
|
|
|
|
|
+ session['DREAMER'] = request.form["id"]
|
|
|
|
|
+ return '<meta http-equiv="refresh" content="0;url=/w/' + parse.quote(data['frontpage']) + '" />'
|
|
|
|
|
+ else:
|
|
|
|
|
+ return render_template('index.html', title = '로그인 오류', logo = data['name'], data = '비밀번호가 다릅니다.')
|
|
|
|
|
+ else:
|
|
|
|
|
+ return render_template('index.html', title = '로그인 오류', logo = data['name'], data = '없는 계정 입니다.')
|
|
|
|
|
+ else:
|
|
|
|
|
+ return render_template('index.html', title = '로그인', enter = '로그인', logo = data['name'], tn = 15)
|
|
|
|
|
|
|
|
@app.route('/register', methods=['POST', 'GET'])
|
|
@app.route('/register', methods=['POST', 'GET'])
|
|
|
def register():
|
|
def register():
|
|
@@ -458,7 +479,7 @@ def register():
|
|
|
if(m):
|
|
if(m):
|
|
|
return render_template('index.html', title = '회원가입 오류', logo = data['name'], data = '아이디에는 한글과 알파벳 공백만 허용 됩니다.')
|
|
return render_template('index.html', title = '회원가입 오류', logo = data['name'], data = '아이디에는 한글과 알파벳 공백만 허용 됩니다.')
|
|
|
else:
|
|
else:
|
|
|
- curs.execute("select * from user where title = '" + pymysql.escape_string(request.form["id"]) + "'")
|
|
|
|
|
|
|
+ curs.execute("select * from user where id = '" + pymysql.escape_string(request.form["id"]) + "'")
|
|
|
rows = curs.fetchall()
|
|
rows = curs.fetchall()
|
|
|
if(rows):
|
|
if(rows):
|
|
|
return render_template('index.html', title = '회원가입 오류', logo = data['name'], data = '동일한 아이디의 유저가 있습니다.')
|
|
return render_template('index.html', title = '회원가입 오류', logo = data['name'], data = '동일한 아이디의 유저가 있습니다.')
|
|
@@ -473,6 +494,12 @@ def register():
|
|
|
else:
|
|
else:
|
|
|
return render_template('index.html', title = '회원가입', enter = '회원가입', logo = data['name'], tn = 15)
|
|
return render_template('index.html', title = '회원가입', enter = '회원가입', logo = data['name'], tn = 15)
|
|
|
|
|
|
|
|
|
|
+@app.route('/logout')
|
|
|
|
|
+def logout():
|
|
|
|
|
+ session['logFlag'] = False
|
|
|
|
|
+ session.pop('DREAMER', None)
|
|
|
|
|
+ return '<meta http-equiv="refresh" content="0;url=/w/' + parse.quote(data['frontpage']) + '" />'
|
|
|
|
|
+
|
|
|
@app.route('/grammar')
|
|
@app.route('/grammar')
|
|
|
def grammar():
|
|
def grammar():
|
|
|
return render_template('index.html', title = '문법 설명', logo = data['name'], data = '아직 없음')
|
|
return render_template('index.html', title = '문법 설명', logo = data['name'], data = '아직 없음')
|