簡易判例検索補助ツール - 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()

    

📦 Google Drive よりダウンロード 🏠 ホームへ