Added type hints

master
Abhinav Sarkar 2011-06-06 13:44:33 +05:30
parent 48f25c29d4
commit 3bf0253f69
3 changed files with 22 additions and 20 deletions

View File

@ -6,7 +6,7 @@
(defn spy [o] (do (println o) o))
(defmulti event-listener
(fn [bot event]
(fn [^PircBotX bot ^Event event]
(->>
event
class
@ -22,6 +22,7 @@
(defn make-bot [name]
(doto (PircBotX.)
(.setName name)
(.setLogin name)
(..
(getListenerManager)
(addListener
@ -42,14 +43,14 @@
(defn disconnect-bot [^PircBotX bot]
(doto bot (.disconnect)))
(defn join-channel [bot channel]
(defn join-channel [^PircBotX bot channel]
(doto bot
(.joinChannel
(if (instance? Channel channel)
(.getName channel)
(.getName ^Channel channel)
channel))))
(defn send-message [bot channel message]
(defn send-message [^PircBotX bot channel message]
(doto bot
(.sendMessage
(if (instance? Channel channel)

View File

@ -1,6 +1,8 @@
(ns irc-search-bot.core
(:import [java.util.concurrent Executors TimeUnit]
[java.util Date])
[java.util Date]
[org.pircbotx PircBotX Channel]
[org.pircbotx.hooks Event])
(:use [irc-search-bot.bot]
[irc-search-bot.lucene]
[irc-search-bot.util]
@ -13,10 +15,9 @@
(def *chat-log* (atom []))
(def *analyzer*
(logging-analyzer
(selective-analyzer
(stemmer-analyzer (standard-analyzer))
#{"message"})))
(selective-analyzer
(stemmer-analyzer (standard-analyzer))
#{"message"}))
(def *max-hits* 3)
@ -27,7 +28,7 @@
#{}))
(defn index-chat-log [index-writer chat-log]
(doseq [[timestamp user message] chat-log]
(doseq [[^Long timestamp user message] chat-log]
(do
(println (format "[%tr] %s: %s" (Date. timestamp) user message))
(add-document
@ -70,16 +71,16 @@
(.printStackTrace e))))
10 10 TimeUnit/SECONDS)))
(defmethod event-listener :disconnect [bot ev]
(defmethod event-listener :disconnect [^PircBotX bot ^Event ev]
(do
(.connect bot (.getServer bot))
(doseq [channel (.getChannelNames bot)]
(.joinChannel bot channel))))
(defmethod event-listener :kick [bot ev]
(defmethod event-listener :kick [^PircBotX bot ^Event ev]
(join-channel bot (.getChannel ev)))
(defmethod event-listener :message [bot ev]
(defmethod event-listener :message [^PircBotX bot ^Event ev]
(let [msg (trim (.getMessage ev))
user (.. ev getUser getNick)
timestamp (.getTimestamp ev)

View File

@ -6,18 +6,18 @@
[org.apache.lucene.util Version]
[org.apache.lucene.index IndexWriter IndexWriterConfig IndexReader]
[org.apache.lucene.search
IndexSearcher ScoreDoc Query BooleanQuery TermQuery BooleanClause$Occur
Filter QueryWrapperFilter]
IndexSearcher ScoreDoc Query BooleanQuery TermQuery BooleanClause
BooleanClause$Occur Filter QueryWrapperFilter]
[org.apache.lucene.queryParser QueryParser]
[org.apache.lucene.wordnet AnalyzerUtil])
(:use [clojure.java.io :only (as-file)]))
(def *lucene-version* Version/LUCENE_30)
(defn index-writer [directory analyzer]
(defn ^IndexWriter index-writer [directory analyzer]
(IndexWriter. directory (IndexWriterConfig. *lucene-version* analyzer)))
(defn index-searcher [directory]
(defn ^IndexSearcher index-searcher [directory]
(IndexSearcher. (IndexReader/open directory)))
(defn query-parser [default-field-name analyzer]
@ -30,10 +30,10 @@
(if (instance? BooleanQuery query)
(let [new-query (BooleanQuery.)
filter-query (BooleanQuery.)]
(doseq [clause (.clauses query)]
(doseq [^BooleanClause clause (.clauses ^BooleanQuery query)]
(let [subquery (.getQuery clause)]
(if (and (instance? TermQuery subquery)
(must-fields (.field (.getTerm subquery))))
(must-fields (.field (.getTerm ^TermQuery subquery))))
(do
(.setOccur clause BooleanClause$Occur/MUST)
(.add filter-query clause))
@ -104,7 +104,7 @@
(defn stemmer-analyzer [delegate-analyzer]
(AnalyzerUtil/getPorterStemmerAnalyzer delegate-analyzer))
(defn selective-analyzer [delegate-analyzer analyzable-fields]
(defn selective-analyzer [^Analyzer delegate-analyzer analyzable-fields]
(proxy [Analyzer] []
(tokenStream [field rdr]
(if (analyzable-fields field)