from twisted.web import resource from DB import Database from reximemo import current_account, dsi_url, flipnote_buttons, make_menu, placeholder_icon class PyResource(resource.Resource): isLeaf = True def render_GET(self, request): from server_config import load_config config = load_config() rows = Database.list_flipnotes(limit=8) account = current_account(request) buttons = [ {"label": "Browse Flipnotes", "url": dsi_url(request, "allflipnotes.uls"), "icon_ntft": placeholder_icon("browse"), "embed_name": "browse.ntft"}, {"label": "Channels", "url": dsi_url(request, "channels.uls"), "icon": 101}, {"label": "Search", "url": dsi_url(request, "search.uls"), "icon": 112}, {"label": "Account", "url": dsi_url(request, "sa/account.htm"), "icon_ntft": placeholder_icon("account"), "embed_name": "account.ntft"}, ] room = Database.room_for_account(account["id"]) if account else Database.room_for_ip(__import__('hatena').client_ip(request)) if room: buttons.append({"label": "Creator's Room", "url": dsi_url(request, f"creator/{room['id']}/profile.htm"), "icon_ntft": placeholder_icon("room"), "embed_name": "room.ntft"}) buttons.extend(flipnote_buttons(request, rows)) request.setHeader(b"content-type", b"text/plain") return make_menu( layout=(2, 1), title=config.get("site_name") or "RexiMemo OSE", subtitle_top=config.get("tagline") or "Open Source Edition", subtitle_bottom=config.get("welcome_message") or "Proxy build", left="Recent", right=str(Database.count_flipnotes()), buttons=buttons, corner={"label": "Post", "url": dsi_url(request, "ch/1.post")}, )