OSDN Git Service

.env のパラメータまちがい
authoryamat0jp <terukohietori@gmail.com>
Sun, 24 Mar 2019 01:26:43 +0000 (10:26 +0900)
committeryamat0jp <terukohietori@gmail.com>
Sun, 24 Mar 2019 01:26:43 +0000 (10:26 +0900)
送信時のエラーで遷移しない方針に転換

.env
pybbs.py
templates/modules/index.htm

diff --git a/.env b/.env
index 8c57a63..cbfba09 100644 (file)
--- a/.env
+++ b/.env
@@ -10,7 +10,7 @@ FIXIE_URL="http://fixie:W1X1JyRxtA2FnaJ@velodrome.usefixie.com:80"
 LIBRATO_PASSWORD="0c417e2a6a458a01"
 LIBRATO_TOKEN="d04930528454a350b983ce57f8bae5e709b7aab890caf115e5813f1694c83134"
 LIBRATO_USER="app59349150@heroku.com"
-MONGODB_URI="mongodb://heroku_n905jfw2:b6ks7jbn7uh7gdlov213u8m5j6@ds113678.mlab.com:13678"
+MONGODB_URI="mongodb://heroku_n905jfw2:b6ks7jbn7uh7gdlov213u8m5j6@ds113678.mlab.com:13678/heroku_n905jfw2"
 TZ="Asia/Tokyo"
 cookie="bZJc2sWbQLKos6GkHn/VB9oXwQt8SOROkRvJ5/xJ89E="
 web="1"
index 400b151..4387ad5 100644 (file)
--- a/pybbs.py
+++ b/pybbs.py
@@ -22,8 +22,7 @@ class BaseHandler(web.RequestHandler):
         self.clear_cookie('admin_user')
 
 class IndexHandler(BaseHandler):
-    def get(self,dbname,page='0'):
-        dbname = escape.url_unescape(dbname)
+    def main(self,dbname,page):
         params = self.application.db['params'].find_one({'app':'bbs'})
         if params['mentenance'] is True:
             self.render('mentenance.htm',title=params['title'],db=dbname)
@@ -44,12 +43,12 @@ class IndexHandler(BaseHandler):
                 return
             else:
                 raise web.HTTPError(404)
-        i = params['count']      
-        rule = escape.url_unescape(self.get_cookie('aikotoba',''))
-        na = escape.url_unescape(self.get_cookie('username',u'誰かさん'))
-        pos = self.application.gpos(dbname,page)
+        self.rule = escape.url_unescape(self.get_cookie('aikotoba',''))
+        self.na = escape.url_unescape(self.get_cookie('username',u'誰かさん'))
+        self.pos = self.application.gpos(dbname,page)
         table = self.application.db[dbname]
-        start = (pos-1)*i
+        i = params['count']
+        start = (self.pos-1)*i
         if start < 0:
             start = table.count()-i
             if start < 0:
@@ -60,14 +59,21 @@ class IndexHandler(BaseHandler):
             rec.sort('number',-1)
         else:
             rec.sort('number')
-        rec.skip(start).limit(i)
-        if table.count() >= 10*i:
-            self.render('modules/full.htm',position=pos,records=rec,data=params,db=dbname)
-            return
-        if bool is True and self.current_user != b'admin':
-            self.render('modules/info.htm',position=pos,records=rec,data=params,db=dbname)
+        self.rec = rec.skip(start).limit(i)
+
+    def get(self,dbname,page='0'):
+        self.main(dbname,page)
+        db = self.application.db
+        table = db[dbname].find()
+        params = db['params'].find_one({'app':'bbs'})
+        if table.count() >= 10*params['count']:
+            self.render('modules/full.htm',position=self.pos,records=self.rec,data=params,db=dbname)
+        self.bool = bool is True and self.current_user != b'admin'
+        if self.bool:
+            self.render('modules/info.htm',position=self.pos,records=self.rec,data=params,db=dbname,error='')
         else:
-            self.render('modules/index.htm',position=pos,records=rec,data=params,username=na,db=dbname,aikotoba=rule)
+            self.render('modules/index.htm',position=self.pos,records=self.rec,data=params,username=self.na,
+            comment='',db=dbname,aikotoba=self.rule,error='')
 
 class LoginHandler(BaseHandler):
     def get(self):
@@ -164,13 +170,15 @@ class TitleHandler(NaviHandler):
                 item['date2'] = j+31*(i.month-1)+i.day
             yield item
         
-class RegistHandler(web.RequestHandler):
+class RegistHandler(IndexHandler):
+
     def post(self,dbname):
-        rec = self.application.db['params'].find_one({'app':'bbs'})
-        if dbname not in self.application.coll() and dbname != rec['info name']:
+        self.main(dbname,'0')
+        params = self.application.db['params'].find_one({'app':'bbs'})
+        if dbname not in self.application.coll() and dbname != params['info name']:
             raise web.HTTPError(404)
-        words = rec['bad_words']
-        out = rec['out_words']
+        words = params['bad_words']
+        out = params['out_words']
         rule = self.get_argument('aikotoba')
         na = self.get_argument('name')
         sub = self.get_argument('title')
@@ -180,17 +188,17 @@ class RegistHandler(web.RequestHandler):
         url = []
         error = ''
         if rule != u'げんき':
-            error = u'合言葉未入力.'
+            error = u'合言葉未入力.<br>'
         for word in out:
             if word in com:
-                error += u'禁止ワード.'
+                error += u'禁止ワード.<br>'
                 break
         for line in com.splitlines():
             if error:
                 break
             for word in words:
                 if word in line.lower():
-                    error += u'タグ違反.('+word+')'       
+                    error += u'タグ違反.('+word+')<br>'
             i += len(line)
             obj = re.finditer('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', line)
             for x in obj:
@@ -215,7 +223,7 @@ class RegistHandler(web.RequestHandler):
             text = text+'<table><tr><td>検出url:</td></tr>'+s+'</table>'
         pw = self.get_argument('password')
         if i > 1000:
-            error += u'文字数が1,000をこえました.'
+            error += u'文字数が1,000をこえました.<br>'
         if na == '':
             na = u'誰かさん'
         if sub == '':
@@ -235,7 +243,9 @@ class RegistHandler(web.RequestHandler):
             self.set_cookie('username',escape.url_escape(na))
             self.redirect('/'+dbname+'#article')
         else:
-            self.render('regist.htm',content=error)
+            error = '<p style=color:red>'+error+'</p>'
+            self.render('modules/index.htm',position=0,records=self.rec,data=params,
+                username=na,comment=com,db=dbname,aikotoba=rule,error=error)
     
     def link(self,command,database):
         i = 0
index 9bb0235..3d9692b 100755 (executable)
@@ -32,7 +32,7 @@
         </td></tr>
         <tr><td>
           <label><p>本文<span>必須</span><br></p>
-            <textarea name="comment" cols=30 required placeholder="コメントなどを入力してください."></textarea></label>
+            <textarea name="comment" cols=30 required placeholder="コメントなどを入力してください.">{{comment}}</textarea></label>
         </td></tr>
         <tr><td>
           <label><p>パスワード</p><input name="password" class=password type="password" placeholder="削除用"></label>
@@ -43,6 +43,7 @@
     </form>
     <button>open</button>
     </header>
+    {% raw error %}
     <hr size="1" width="100%">
     <form action=/{{db}}/userdel method="post" id=search>
       {% module xsrf_form_html() %}