OSDN Git Service

>>1正規表現
authoryamat0jp <yamat0jp@yahoo.co.jp>
Sat, 24 Dec 2016 11:03:38 +0000 (20:03 +0900)
committeryamat0jp <yamat0jp@yahoo.co.jp>
Sat, 24 Dec 2016 11:03:38 +0000 (20:03 +0900)
index.py
static/db/db.json

index 065908c..b25e0d6 100755 (executable)
--- a/index.py
+++ b/index.py
@@ -192,17 +192,13 @@ class RegistHandler(tornado.web.RequestHandler):
     def link(self,command):
         i = 0
         text = ''
-        for x in command.split():
-            if re.match('>>',x) and x[2:].isdecimal():
-                s = '<a class=minpreview data-preview-url=/{0}?key={1} href=/{0}#{1}>>>{1}</a>'.format(self.database,x[2:])
-                j = command.find(x,i)
-                text = text+command[i:j]+s
-                i = j+len(x)
-            else:
-                j = command.find(x,i)
-                j += len(x)
-                text = text+command[i:j]
-                i = j
+        obj = re.finditer('>>[0-9]+',command)
+        for x in obj:
+            s = '<a class=minpreview data-preview-url=/{0}?key={1} href=/{0}#{1}>>>{1}</a>'.format(self.database,x.group()[2:])
+            text = text+command[i:x.start()]+s
+            i = x.end()
+        else:
+            text = text+command[i:]
         return text
     
 class AdminHandler(BaseHandler):
index 918ac4e..fb1b93b 100644 (file)
@@ -1 +1 @@
-{"bbs3": {}, "_default": {"1": {"bad_words": ["<style", "<link", "<script", "<img"], "title": "pybbs", "kinds": "conf", "count": 30, "out_words": ["\u6b7b\u306d", "\u963f\u5446", "\u30a2\u30db", "\u99ac\u9e7f", "\u30d0\u30ab"], "password": "admin", "mentenance": false, "title2": "<h1 style=color:gray;text-align:center>pybbs</h1>"}}, "bbs1": {"8": {"name": "\u8ab0\u304b\u3055\u3093", "title": "bbs", "raw": "http://kainushi.xyz\r\ndesuyo", "date": "2016/12/14 19:21", "password": "KAINUSHI", "number": 2, "comment": "<p>http://kainushi.xyz\r\n<br></p><p>desuyo<br></p>\u691c\u51fa\u3055\u308c\u305furl:<a class=livepreview target=_blank href=http://kainushi.xyz>http://kainushi.xyz</a>"}, "9": {"name": "\u8ab0\u304b\u3055\u3093", "title": "bbs", "raw": "http://kainushi.xyz http://pybbs.herokuapp.com\r\nhttp://kainushi.xyz", "date": "2016/12/15 18:28", "password": "KAINUSHI", "number": 3, "comment": "<p>http://kainushi.xyz http://pybbs.herokuapp.com\r\n<br></p><p>http://kainushi.xyz<br></p><table><tr><td>\u691c\u51faURL:</td></tr><tr><td><a class=livepreview target=_blank href=http://kainushi.xyz>http://kainushi.xyz</a></td></tr><tr><td><a class=livepreview target=_blank href=http://pybbs.herokuapp.com>http://pybbs.herokuapp.com</a></td></tr></table>"}, "2": {"name": "\u7ba1\u7406\u8005", "title": "\u30b5\u30f3\u30c9\u30dc\u30c3\u30af\u30b9\u3068\u3057\u3066\u3054\u5229\u7528\u304f\u3060\u3055\u3044", "raw": "\u63b2\u793a\u677f\u306e\u52d5\u4f5c\u691c\u8a3c\u306b\u4f7f\u3063\u3066\u3044\u305f\u3060\u3051\u307e\u3059\u3002\u843d\u66f8\u304d\u7528\u3067\u3059\u3002\u3054\u9023\u7d61\u306f\u5225\u306e\u30c1\u30e3\u30f3\u30cd\u30eb\u306b\u3069\u3046\u305e\u3002", "date": "2016/12/01 18:32", "password": "admin", "number": 1, "comment": "<p>\u63b2\u793a\u677f\u306e\u52d5\u4f5c\u691c\u8a3c\u306b\u4f7f\u3063\u3066\u3044\u305f\u3060\u3051\u307e\u3059\u3002\u843d\u66f8\u304d\u7528\u3067\u3059\u3002\u3054\u9023\u7d61\u306f\u5225\u306e\u30c1\u30e3\u30f3\u30cd\u30eb\u306b\u3069\u3046\u305e\u3002<br></p>"}, "38": {"name": "\u8ab0\u304b\u3055\u3093", "title": "\u30bf\u30a4\u30c8\u30eb\u306a\u3057.", "date": "2016/12/19 17:45", "raw": ">>1 2 >>3", "password": "", "number": 4, "comment": "<p><a class=minpreview data-preview-url=/bbs1?key=1 href=/bbs1#1>>>1</a> 2 <a class=minpreview data-preview-url=/bbs1?key=3 href=/bbs1#3>>>3</a><br></p>"}}, "index": {}, "bbs": {"1": {"name": "\u7ba1\u7406\u8005", "title": "\u3053\u306eBBS\u306f\u3059\u3054\u3044\u3067\u3059\u3002\u3002\u3002\uff20\uff20\uff1b", "raw": "\u3053\u306e\u63b2\u793a\u677f\u306f\u3059\u3054\u3044\u3067\u3059\u3002\u4f55\u304c\u3059\u3054\u3044\u306e\u304b\u5229\u7528\u8005\u306b\u306f\u308f\u304b\u3089\u306a\u3044\u3067\u3057\u3087\u3046\u3051\u308c\u3069\u3001\u7ba1\u7406\u8005\u306f\u7ba1\u7406\u304c\u3057\u3084\u3059\u3044\u3067\u3059\u3002\u7c21\u5358\u306b\u904b\u7528\u3067\u304d\u307e\u3059\u3002heroku\u3067git\u3059\u308c\u3070\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u30af\u30ea\u30a2\u3057\u3066\u3059\u3050\u4f7f\u3048\u308b\u72b6\u614b\u306b\u306a\u308a\u307e\u3059\u3002\u6c17\u306b\u3057\u306a\u3044\u4eba\u306f\u305d\u306e\u307e\u307e\u4f7f\u3048\u307e\u3059\u3002\r\n\u3000tornado\u3092\u4f7f\u7528\u3057\u3066\u66f8\u304b\u308c\u305f\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u304c\u5927\u5909\u7c21\u7d20\u3067\u3059\u3002\u306a\u304a\u304b\u3064\u30d6\u30ed\u30b0\u30b7\u30b9\u30c6\u30e0\u306b\u30a2\u30c3\u30d7\u304c\u30b0\u30ec\u30fc\u30c9\u3055\u305b\u308b\u3053\u3068\u3082\u53ef\u80fd\u3067\u3059\u3002\r\n\u3000\u63b2\u793a\u677f\u306e\u7ba1\u7406\u306b\u5fc5\u8981\u306a\u62e1\u5f35\u3067\u3059\u304c\u30c1\u30e3\u30f3\u30cd\u30eb\u306e\u8ffd\u52a0\u306f\u7ba1\u7406\u8005\u30ed\u30b0\u30a4\u30f3\u3057\u3066\u8ffd\u52a0\u3057\u305f\u3044URL\u3092\u6253\u3061\u8fbc\u3080\u3060\u3051\u3002\u305d\u3046\u3059\u308c\u3070\u81ea\u52d5\u3067\u4f5c\u6210\u3055\u308c\u305f\u65b0\u3057\u3044\u30c1\u30e3\u30f3\u30cd\u30eb\u306b\u30a2\u30af\u30bb\u30b9\u3057\u3066\u304f\u308c\u307e\u3059\u3002\r\n\u3000\u3055\u3042\u4f7f\u3044\u305f\u304f\u306a\u308a\u307e\u3057\u305f\u304b\u3002", "date": "2016/11/22 19:43", "password": "admin", "number": 1, "comment": "<p>\u3053\u306e\u63b2\u793a\u677f\u306f\u3059\u3054\u3044\u3067\u3059\u3002\u4f55\u304c\u3059\u3054\u3044\u306e\u304b\u5229\u7528\u8005\u306b\u306f\u308f\u304b\u3089\u306a\u3044\u3067\u3057\u3087\u3046\u3051\u308c\u3069\u3001\u7ba1\u7406\u8005\u306f\u7ba1\u7406\u304c\u3057\u3084\u3059\u3044\u3067\u3059\u3002\u7c21\u5358\u306b\u904b\u7528\u3067\u304d\u307e\u3059\u3002heroku\u3067git\u3059\u308c\u3070\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u30af\u30ea\u30a2\u3057\u3066\u3059\u3050\u4f7f\u3048\u308b\u72b6\u614b\u306b\u306a\u308a\u307e\u3059\u3002\u6c17\u306b\u3057\u306a\u3044\u4eba\u306f\u305d\u306e\u307e\u307e\u4f7f\u3048\u307e\u3059\u3002\r\n<br></p><p>\u3000tornado\u3092\u4f7f\u7528\u3057\u3066\u66f8\u304b\u308c\u305f\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u304c\u5927\u5909\u7c21\u7d20\u3067\u3059\u3002\u306a\u304a\u304b\u3064\u30d6\u30ed\u30b0\u30b7\u30b9\u30c6\u30e0\u306b\u30a2\u30c3\u30d7\u304c\u30b0\u30ec\u30fc\u30c9\u3055\u305b\u308b\u3053\u3068\u3082\u53ef\u80fd\u3067\u3059\u3002\r\n<br></p><p>\u3000\u63b2\u793a\u677f\u306e\u7ba1\u7406\u306b\u5fc5\u8981\u306a\u62e1\u5f35\u3067\u3059\u304c\u30c1\u30e3\u30f3\u30cd\u30eb\u306e\u8ffd\u52a0\u306f\u7ba1\u7406\u8005\u30ed\u30b0\u30a4\u30f3\u3057\u3066\u8ffd\u52a0\u3057\u305f\u3044URL\u3092\u6253\u3061\u8fbc\u3080\u3060\u3051\u3002\u305d\u3046\u3059\u308c\u3070\u81ea\u52d5\u3067\u4f5c\u6210\u3055\u308c\u305f\u65b0\u3057\u3044\u30c1\u30e3\u30f3\u30cd\u30eb\u306b\u30a2\u30af\u30bb\u30b9\u3057\u3066\u304f\u308c\u307e\u3059\u3002\r\n<br></p><p>\u3000\u3055\u3042\u4f7f\u3044\u305f\u304f\u306a\u308a\u307e\u3057\u305f\u304b\u3002<br></p>"}}, "bbs2": {}, "kagawa": {}}
\ No newline at end of file
+{"bbs3": {}, "index": {}, "bbs1": {"40": {"comment": "<p><a class=minpreview data-preview-url=/bbs1?key=1 href=/bbs1#1>>>1</a><a class=minpreview data-preview-url=/bbs1?key=2 href=/bbs1#2>>>2</a> <a class=minpreview data-preview-url=/bbs1?key=3 href=/bbs1#3>>>3</a><br></p>", "title": "\u30bf\u30a4\u30c8\u30eb\u306a\u3057.", "password": "", "number": 6, "name": "\u8ab0\u304b\u3055\u3093", "date": "2016/12/24 20:03", "raw": ">>1>>2 >>3"}, "2": {"comment": "<p>\u63b2\u793a\u677f\u306e\u52d5\u4f5c\u691c\u8a3c\u306b\u4f7f\u3063\u3066\u3044\u305f\u3060\u3051\u307e\u3059\u3002\u843d\u66f8\u304d\u7528\u3067\u3059\u3002\u3054\u9023\u7d61\u306f\u5225\u306e\u30c1\u30e3\u30f3\u30cd\u30eb\u306b\u3069\u3046\u305e\u3002<br></p>", "title": "\u30b5\u30f3\u30c9\u30dc\u30c3\u30af\u30b9\u3068\u3057\u3066\u3054\u5229\u7528\u304f\u3060\u3055\u3044", "password": "admin", "number": 1, "name": "\u7ba1\u7406\u8005", "date": "2016/12/01 18:32", "raw": "\u63b2\u793a\u677f\u306e\u52d5\u4f5c\u691c\u8a3c\u306b\u4f7f\u3063\u3066\u3044\u305f\u3060\u3051\u307e\u3059\u3002\u843d\u66f8\u304d\u7528\u3067\u3059\u3002\u3054\u9023\u7d61\u306f\u5225\u306e\u30c1\u30e3\u30f3\u30cd\u30eb\u306b\u3069\u3046\u305e\u3002"}, "38": {"comment": "<p><a class=minpreview data-preview-url=/bbs1?key=1 href=/bbs1#1>>>1</a> 2 <a class=minpreview data-preview-url=/bbs1?key=3 href=/bbs1#3>>>3</a><br></p>", "title": "\u30bf\u30a4\u30c8\u30eb\u306a\u3057.", "password": "", "number": 4, "name": "\u8ab0\u304b\u3055\u3093", "date": "2016/12/19 17:45", "raw": ">>1 2 >>3"}, "39": {"comment": "<p>test<a class=minpreview data-preview-url=/bbs1?key=1 href=/bbs1#1>>>1</a>desu<a class=minpreview data-preview-url=/bbs1?key=2 href=/bbs1#2>>>2</a>\r\n<br></p><p><a class=minpreview data-preview-url=/bbs1?key=12 href=/bbs1#12>>>12</a><br></p>", "title": "\u30bf\u30a4\u30c8\u30eb\u306a\u3057.", "password": "", "number": 5, "name": "\u8ab0\u304b\u3055\u3093", "date": "2016/12/24 20:02", "raw": "test>>1desu>>2\r\n>>12"}, "8": {"comment": "<p>http://kainushi.xyz\r\n<br></p><p>desuyo<br></p>\u691c\u51fa\u3055\u308c\u305furl:<a class=livepreview target=_blank href=http://kainushi.xyz>http://kainushi.xyz</a>", "title": "bbs", "password": "KAINUSHI", "number": 2, "name": "\u8ab0\u304b\u3055\u3093", "date": "2016/12/14 19:21", "raw": "http://kainushi.xyz\r\ndesuyo"}, "9": {"comment": "<p>http://kainushi.xyz http://pybbs.herokuapp.com\r\n<br></p><p>http://kainushi.xyz<br></p><table><tr><td>\u691c\u51faURL:</td></tr><tr><td><a class=livepreview target=_blank href=http://kainushi.xyz>http://kainushi.xyz</a></td></tr><tr><td><a class=livepreview target=_blank href=http://pybbs.herokuapp.com>http://pybbs.herokuapp.com</a></td></tr></table>", "title": "bbs", "password": "KAINUSHI", "number": 3, "name": "\u8ab0\u304b\u3055\u3093", "date": "2016/12/15 18:28", "raw": "http://kainushi.xyz http://pybbs.herokuapp.com\r\nhttp://kainushi.xyz"}}, "bbs": {"1": {"comment": "<p>\u3053\u306e\u63b2\u793a\u677f\u306f\u3059\u3054\u3044\u3067\u3059\u3002\u4f55\u304c\u3059\u3054\u3044\u306e\u304b\u5229\u7528\u8005\u306b\u306f\u308f\u304b\u3089\u306a\u3044\u3067\u3057\u3087\u3046\u3051\u308c\u3069\u3001\u7ba1\u7406\u8005\u306f\u7ba1\u7406\u304c\u3057\u3084\u3059\u3044\u3067\u3059\u3002\u7c21\u5358\u306b\u904b\u7528\u3067\u304d\u307e\u3059\u3002heroku\u3067git\u3059\u308c\u3070\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u30af\u30ea\u30a2\u3057\u3066\u3059\u3050\u4f7f\u3048\u308b\u72b6\u614b\u306b\u306a\u308a\u307e\u3059\u3002\u6c17\u306b\u3057\u306a\u3044\u4eba\u306f\u305d\u306e\u307e\u307e\u4f7f\u3048\u307e\u3059\u3002\r\n<br></p><p>\u3000tornado\u3092\u4f7f\u7528\u3057\u3066\u66f8\u304b\u308c\u305f\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u304c\u5927\u5909\u7c21\u7d20\u3067\u3059\u3002\u306a\u304a\u304b\u3064\u30d6\u30ed\u30b0\u30b7\u30b9\u30c6\u30e0\u306b\u30a2\u30c3\u30d7\u304c\u30b0\u30ec\u30fc\u30c9\u3055\u305b\u308b\u3053\u3068\u3082\u53ef\u80fd\u3067\u3059\u3002\r\n<br></p><p>\u3000\u63b2\u793a\u677f\u306e\u7ba1\u7406\u306b\u5fc5\u8981\u306a\u62e1\u5f35\u3067\u3059\u304c\u30c1\u30e3\u30f3\u30cd\u30eb\u306e\u8ffd\u52a0\u306f\u7ba1\u7406\u8005\u30ed\u30b0\u30a4\u30f3\u3057\u3066\u8ffd\u52a0\u3057\u305f\u3044URL\u3092\u6253\u3061\u8fbc\u3080\u3060\u3051\u3002\u305d\u3046\u3059\u308c\u3070\u81ea\u52d5\u3067\u4f5c\u6210\u3055\u308c\u305f\u65b0\u3057\u3044\u30c1\u30e3\u30f3\u30cd\u30eb\u306b\u30a2\u30af\u30bb\u30b9\u3057\u3066\u304f\u308c\u307e\u3059\u3002\r\n<br></p><p>\u3000\u3055\u3042\u4f7f\u3044\u305f\u304f\u306a\u308a\u307e\u3057\u305f\u304b\u3002<br></p>", "title": "\u3053\u306eBBS\u306f\u3059\u3054\u3044\u3067\u3059\u3002\u3002\u3002\uff20\uff20\uff1b", "password": "admin", "number": 1, "name": "\u7ba1\u7406\u8005", "date": "2016/11/22 19:43", "raw": "\u3053\u306e\u63b2\u793a\u677f\u306f\u3059\u3054\u3044\u3067\u3059\u3002\u4f55\u304c\u3059\u3054\u3044\u306e\u304b\u5229\u7528\u8005\u306b\u306f\u308f\u304b\u3089\u306a\u3044\u3067\u3057\u3087\u3046\u3051\u308c\u3069\u3001\u7ba1\u7406\u8005\u306f\u7ba1\u7406\u304c\u3057\u3084\u3059\u3044\u3067\u3059\u3002\u7c21\u5358\u306b\u904b\u7528\u3067\u304d\u307e\u3059\u3002heroku\u3067git\u3059\u308c\u3070\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u30af\u30ea\u30a2\u3057\u3066\u3059\u3050\u4f7f\u3048\u308b\u72b6\u614b\u306b\u306a\u308a\u307e\u3059\u3002\u6c17\u306b\u3057\u306a\u3044\u4eba\u306f\u305d\u306e\u307e\u307e\u4f7f\u3048\u307e\u3059\u3002\r\n\u3000tornado\u3092\u4f7f\u7528\u3057\u3066\u66f8\u304b\u308c\u305f\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u304c\u5927\u5909\u7c21\u7d20\u3067\u3059\u3002\u306a\u304a\u304b\u3064\u30d6\u30ed\u30b0\u30b7\u30b9\u30c6\u30e0\u306b\u30a2\u30c3\u30d7\u304c\u30b0\u30ec\u30fc\u30c9\u3055\u305b\u308b\u3053\u3068\u3082\u53ef\u80fd\u3067\u3059\u3002\r\n\u3000\u63b2\u793a\u677f\u306e\u7ba1\u7406\u306b\u5fc5\u8981\u306a\u62e1\u5f35\u3067\u3059\u304c\u30c1\u30e3\u30f3\u30cd\u30eb\u306e\u8ffd\u52a0\u306f\u7ba1\u7406\u8005\u30ed\u30b0\u30a4\u30f3\u3057\u3066\u8ffd\u52a0\u3057\u305f\u3044URL\u3092\u6253\u3061\u8fbc\u3080\u3060\u3051\u3002\u305d\u3046\u3059\u308c\u3070\u81ea\u52d5\u3067\u4f5c\u6210\u3055\u308c\u305f\u65b0\u3057\u3044\u30c1\u30e3\u30f3\u30cd\u30eb\u306b\u30a2\u30af\u30bb\u30b9\u3057\u3066\u304f\u308c\u307e\u3059\u3002\r\n\u3000\u3055\u3042\u4f7f\u3044\u305f\u304f\u306a\u308a\u307e\u3057\u305f\u304b\u3002"}}, "bbs2": {}, "_default": {"1": {"mentenance": false, "out_words": ["\u6b7b\u306d", "\u963f\u5446", "\u30a2\u30db", "\u99ac\u9e7f", "\u30d0\u30ab"], "count": 30, "password": "admin", "kinds": "conf", "bad_words": ["<style", "<link", "<script", "<img"], "title2": "<h1 style=color:gray;text-align:center>pybbs</h1>", "title": "pybbs"}}, "kagawa": {}}
\ No newline at end of file