From 6b28614794f1567be19c1647911f0520d7f8541b Mon Sep 17 00:00:00 2001 From: rekushi <1+rekushi@noreply.flipnote.world> Date: Thu, 29 Oct 2026 04:42:47 +0000 Subject: [PATCH] feat(dsi): add scoped search keyboard routes Provide separate native keyboard endpoints for creator and Flipnote searches. --- hatenadir/ds/v2-xx/search.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 hatenadir/ds/v2-xx/search.py diff --git a/hatenadir/ds/v2-xx/search.py b/hatenadir/ds/v2-xx/search.py new file mode 100644 index 0000000..a2b2f94 --- /dev/null +++ b/hatenadir/ds/v2-xx/search.py @@ -0,0 +1,29 @@ +from twisted.web import resource + +from hatena import NotFound, as_text +from reximemo import search_keyboard_response + + +class PyResource(resource.Resource): + isLeaf = False + + def getChild(self, name, request): + scope = as_text(name) + if scope in {"flipnotes.kbd", "creators.kbd"}: + return SearchKeyboard(scope.split(".", 1)[0]) + return NotFound + + +class SearchKeyboard(resource.Resource): + isLeaf = True + + def __init__(self, scope): + super().__init__() + self.scope = scope + + def render_POST(self, request): + return search_keyboard_response(request, self.scope) + + def render_GET(self, request): + request.setResponseCode(405) + return b""