Added type hints
This commit is contained in:
parent
48f25c29d4
commit
3bf0253f69
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user