()
| 1041 | |
| 1042 | @app.route("/") |
| 1043 | def home(): |
| 1044 | prefs = browser_prefs() |
| 1045 | bookmarks_count = len(load_json(BOOKMARKS_FILE, [])) |
| 1046 | history_count = len(history_items()) |
| 1047 | saved_files = sorted(DOWNLOADS_DIR.glob("*"), key=lambda x: x.stat().st_mtime, reverse=True)[:4] |
| 1048 | con = db_connect() |
| 1049 | vault_count = con.execute("SELECT COUNT(*) FROM entries").fetchone()[0] |
| 1050 | con.close() |
| 1051 | body = render_template_string( |
| 1052 | """ |
| 1053 | <section class="hero stack"> |
| 1054 | <div class="sectionTitle"> |
| 1055 | <div> |
| 1056 | <div class="muted small">Home</div> |
| 1057 | <h1>Open what you need.</h1> |
| 1058 | <div class="muted">One local hub for browsing and your vault, without heavy packages.</div> |
| 1059 | </div> |
| 1060 | </div> |
| 1061 | <form class="row" action="{{ url_for('browser_open') }}" method="get" id="searchbox"> |
| 1062 | <input name="url" placeholder="https://example.com or search words" style="flex:1;min-width:240px" required> |
| 1063 | <button class="btn primary" type="submit">Open</button> |
| 1064 | <a class="btn" href="{{ url_for('vault_home') }}">Vault</a> |
| 1065 | <a class="btn" href="{{ url_for('tools_home') }}">Tools</a> |
| 1066 | </form> |
| 1067 | <div class="quicklinks"> |
| 1068 | <a class="miniBtn" href="{{ url_for('browser_open') }}?url=https%3A%2F%2Fgithub.com">GitHub</a> |
| 1069 | <a class="miniBtn" href="{{ url_for('browser_open') }}?url=https%3A%2F%2Fwww.youtube.com">YouTube</a> |
| 1070 | <a class="miniBtn" href="{{ url_for('browser_open') }}?url=https%3A%2F%2Fwww.wikipedia.org">Wikipedia</a> |
| 1071 | <a class="miniBtn" href="{{ url_for('browser_open') }}?url=https%3A%2F%2Freddit.com">Reddit</a> |
| 1072 | </div> |
| 1073 | </section> |
| 1074 | |
| 1075 | <div class="grid3" style="margin-top:14px;"> |
| 1076 | <div class="kpi"><div class="muted small">Bookmarks</div><div class="kpiNum">{{ bookmarks_count }}</div></div> |
| 1077 | <div class="kpi"><div class="muted small">History</div><div class="kpiNum">{{ history_count }}</div></div> |
| 1078 | <div class="kpi"><div class="muted small">Vault entries</div><div class="kpiNum">{{ vault_count }}</div></div> |
| 1079 | </div> |
| 1080 | |
| 1081 | <div class="grid2" style="margin-top:14px;"> |
| 1082 | <section class="card stack"> |
| 1083 | <div class="sectionTitle"><h2>Browser</h2><a class="btn" href="{{ url_for('browser_settings') }}">Settings</a></div> |
| 1084 | <div class="pillRow"> |
| 1085 | <span class="badge">{{ 'VPN enabled' if prefs.vpn_enabled else 'Direct by default' }}</span> |
| 1086 | <span class="badge">{{ countries[prefs.country] }}</span> |
| 1087 | <span class="badge">{{ engines[prefs.engine][0] }}</span> |
| 1088 | {% if prefs.adblock %}<span class="badge">Ad blocker</span>{% endif %} |
| 1089 | </div> |
| 1090 | <div class="row"> |
| 1091 | <a class="btn primary" href="{{ url_for('browser_home') }}">Open browser</a> |
| 1092 | <a class="btn" href="{{ url_for('browser_compare') }}">Compare</a> |
| 1093 | <a class="btn" href="{{ url_for('browser_downloads') }}">Saved pages</a> |
| 1094 | </div> |
| 1095 | </section> |
| 1096 | |
| 1097 | <section class="card stack"> |
| 1098 | <div class="sectionTitle"><h2>Recent saved pages</h2><a class="btn" href="{{ url_for('vault_home') }}">Open vault</a></div> |
| 1099 | {% if saved_files %} |
| 1100 | <div class="listClean"> |
nothing calls this directly
no test coverage detected