簡易判例検索補助ツール - Lawsearch20260219 - ソースコード
import tkinter as tk
from tkinter import ttk
import webbrowser
import urllib.parse
# --- 設定 ---
BASE_URL = "https://www.google.com/search?q=" # 必要に応じて変更
COURT_OPTIONS = [
"最大判",
"最大決",
"最判",
"高",
"大判",
]
ERA_OPTIONS = ["昭", "平", "令"]
# --- 検索処理 ---
def start_search():
court = court_var.get()
era = era_var.get()
date_raw = date_entry.get().strip()
# 形式チェック
if not (date_raw.isdigit() and len(date_raw) == 6):
result_var.set("日付は6桁の数字で入力してください(例: 410223)")
return
yy = int(date_raw[:2])
mm = int(date_raw[2:4])
dd = int(date_raw[4:6])
# 妥当性チェック
if not (1 <= mm <= 12 and 1 <= dd <= 31):
result_var.set("月日が不正です")
return
query = f"{court}{era}{yy}.{mm}.{dd}"
encoded = urllib.parse.quote(query)
webbrowser.open(BASE_URL + encoded)
result_var.set(f"検索語: {query}")
# Enterキーで検索開始
def on_enter(event):
start_search()
# --- GUI ---
root = tk.Tk()
root.title("判例検索補助ツール")
root.geometry("420x120")
main = ttk.Frame(root, padding=10)
main.pack(fill="both", expand=True)
# 見出し行
ttk.Label(main, text="裁判体").grid(row=0, column=0, padx=5)
ttk.Label(main, text="元号").grid(row=0, column=1, padx=5)
ttk.Label(main, text="日付 (YYMMDD)").grid(row=0, column=2, padx=5)
# 入力行
court_var = tk.StringVar(value=COURT_OPTIONS[0])
era_var = tk.StringVar(value=ERA_OPTIONS[0])
ttk.OptionMenu(
main, court_var, COURT_OPTIONS[0], *COURT_OPTIONS
).grid(row=1, column=0, padx=5, sticky="ew")
ttk.OptionMenu(
main, era_var, ERA_OPTIONS[0], *ERA_OPTIONS
).grid(row=1, column=1, padx=5, sticky="ew")
date_entry = ttk.Entry(main, width=10)
date_entry.grid(row=1, column=2, padx=5)
# Enterキーイベントと初期フォーカス
date_entry.bind("", on_enter)
date_entry.focus()
# ボタン
ttk.Button(
main, text="検索開始", command=start_search
).grid(row=2, column=0, columnspan=3, pady=10)
# 結果表示
result_var = tk.StringVar()
ttk.Label(
main, textvariable=result_var, foreground="blue"
).grid(row=3, column=0, columnspan=3)
for i in range(3):
main.columnconfigure(i, weight=1)
root.mainloop()