Sphereとともに

scalaとかplayframeworkとか。技術ブログにしたいなと。環境は Windows7x64, mac です。たまに声優さん情報が混ざります。最近ちょっとClojure触りました。

Wikipediaで同じ誕生日を探す

本日2015年2月8日は僕の誕生日なので

なんか作ってみました(超絶適当)

lein run -w2月8日生まれ

で動くやつ

(ns happy-birthday-wiki.core
  (:require [cheshire.core :refer :all]
            [clojure.string :as string]
            [clojure.tools.cli :refer [parse-opts]]))

(def cli-options
  [["-w" "--word WORD" "検索語句入力(x月x日生まれ)"]])

(defn make-url [search-word]
  (let [base "http://ja.wikipedia.org/w/api.php?format=json&action=query&list=search&srwhat=text&srsearch="]
    (str base search-word)))

(defn encode-word [word]
  (java.net.URLEncoder/encode word "UTF-8"))

(defn get-titles [url]
  (let [content (slurp url :encoding "UTF-8")
        parsed (:search (:query (parse-string content true)))]
    (map #(:title %) parsed)))

(defn -main [& args]
  (let [{:keys [options arguments errors summary]} (parse-opts args cli-options)
        url (make-url (encode-word (:word options)))
        titles (get-titles url)]
    (println (str "あなたと同じ誕生日:" (:word options)))
    (doall (map #(println %) titles))))



FScoward/happy-birthday-wiki · GitHub

https://github.com/FScoward/happy-birthday-wiki/blob/master/src/happy_birthday_wiki/core.clj

プログラミングClojure 第2版

プログラミングClojure 第2版