Updated locations.
This commit is contained in:
parent
f08c9c58d6
commit
0fbb32420f
10 changed files with 601 additions and 316 deletions
|
@ -1,3 +1,3 @@
|
|||
#ANT Task: ch.oscg.jreleaseinfo.BuildNumberHandler
|
||||
#Sun Mar 06 13:05:37 PST 2005
|
||||
build.num.last=3
|
||||
#Thu May 05 12:13:40 PDT 2005
|
||||
build.num.last=26
|
||||
|
|
17
mobibot.fb
17
mobibot.fb
|
@ -3,18 +3,19 @@ D:\projects\java\mobibot\build
|
|||
[Source dirs]
|
||||
D:\projects\java\mobibot\src
|
||||
[Aux classpath entries]
|
||||
D:\projects\java\mobibot\lib\commons-httpclient-2.0-final.jar
|
||||
D:\projects\java\mobibot\lib\commons-cli-1.0.jar
|
||||
D:\projects\java\mobibot\lib\commons-codec-1.3.jar
|
||||
D:\projects\java\mobibot\lib\commons-httpclient-3.0-rc1.jar
|
||||
D:\projects\java\mobibot\lib\commons-logging.jar
|
||||
D:\projects\java\mobibot\lib\commons-net-1.1.0.jar
|
||||
D:\projects\java\mobibot\lib\EXML.jar
|
||||
D:\projects\java\mobibot\lib\fetchrss.jar
|
||||
D:\projects\java\mobibot\lib\commons-net-1.2.2.jar
|
||||
D:\projects\java\mobibot\lib\delicious-1.5.jar
|
||||
D:\projects\java\mobibot\lib\google.jar
|
||||
D:\projects\java\mobibot\lib\googleapi.jar
|
||||
D:\projects\java\mobibot\lib\jakarta-oro-2.0.7.jar
|
||||
D:\projects\java\mobibot\lib\jakarta-oro-2.0.8.jar
|
||||
D:\projects\java\mobibot\lib\jdom.jar
|
||||
D:\projects\java\mobibot\lib\jweather-0.2.3.jar
|
||||
D:\projects\java\mobibot\lib\jdom-1.0.jar
|
||||
D:\projects\java\mobibot\lib\jweather-0.2.5.jar
|
||||
D:\projects\java\mobibot\lib\log4j-1.2.8.jar
|
||||
D:\projects\java\mobibot\lib\MathEvaluator.jar
|
||||
D:\projects\java\mobibot\lib\pircbot.jar
|
||||
D:\projects\java\mobibot\lib\rsslibj.jar
|
||||
D:\projects\java\mobibot\lib\rome-0.4.jar
|
||||
D:\projects\java\mobibot\lib\rome-fetcher-0.4.jar
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
</languages>
|
||||
<startupscripts />
|
||||
<preferredrecentcommandsdividerlocations>
|
||||
<dividerlocationd language="beanshell" position="939" />
|
||||
<dividerlocationd language="beanshell" position="1028" />
|
||||
</preferredrecentcommandsdividerlocations>
|
||||
<BSFConsoleSearchOptions searchfromcursor="false">
|
||||
<recentsearches />
|
||||
|
|
221
mobibot.iws
221
mobibot.iws
|
@ -112,70 +112,61 @@
|
|||
<option name="HIDE_WARNINGS" value="false" />
|
||||
</component>
|
||||
<component name="FileEditorManager" split-orientation="vertical" split-proportion="0.5">
|
||||
<first-group selected-file="file://$PROJECT_DIR$/src/net/thauvin/erik/mobibot/DeliciousPoster.java">
|
||||
<entry file="file://$PROJECT_DIR$/ChangeLog.txt" pinned="false">
|
||||
<first-group selected-file="file://$PROJECT_DIR$/src/net/thauvin/erik/mobibot/Mobibot.java">
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/erik/mobibot/DeliciousPoster.java" pinned="false">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="23" column="34" selection-start="878" selection-end="878" vertical-scroll-proportion="0.6571429">
|
||||
<state line="44" column="52" selection-start="1823" selection-end="1823" vertical-scroll-proportion="0.24878049">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/erik/mobibot/Mobibot.java" pinned="false">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="2771" column="46" selection-start="64811" selection-end="64811" vertical-scroll-proportion="1.5982759">
|
||||
<state line="90" column="79" selection-start="3025" selection-end="3025" vertical-scroll-proportion="0.19666667">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/erik/mobibot/Weather.java" pinned="false">
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/erik/mobibot/EntryLink.java" pinned="false">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="54" column="13" selection-start="2059" selection-end="2059" vertical-scroll-proportion="0.42068964">
|
||||
<state line="394" column="26" selection-start="8275" selection-end="8275" vertical-scroll-proportion="0.5479675">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/erik/mobibot/FeedReader.java" pinned="false">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="109" column="52" selection-start="3133" selection-end="3133" vertical-scroll-proportion="0.8655462">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/erik/mobibot/DeliciousPoster.java" pinned="false">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="103" column="5" selection-start="3140" selection-end="3140" vertical-scroll-proportion="1.3361344">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/erik/mobibot/SwingWorker.java" pinned="false">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="29" column="33" selection-start="956" selection-end="956" vertical-scroll-proportion="0.82857144">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/erik/mobibot/CurrencyConverter.java" pinned="false">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="36" column="0" selection-start="1681" selection-end="1714" vertical-scroll-proportion="0.029310346">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/mobibot.properties" pinned="false">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="17" column="7" selection-start="457" selection-end="457" vertical-scroll-proportion="0.4857143">
|
||||
<state line="17" column="0" selection-start="440" selection-end="440" vertical-scroll-proportion="0.4699187">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/properties/mobibot.properties" pinned="false">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="12" column="5" selection-start="258" selection-end="258" vertical-scroll-proportion="0.33170733">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/properties/log4j.properties" pinned="false">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/properties/fetcher.properties" pinned="false">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/buildnum.properties" pinned="false">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="3" column="0" selection-start="98" selection-end="98" vertical-scroll-proportion="0.08571429">
|
||||
<state line="3" column="0" selection-start="99" selection-end="99" vertical-scroll-proportion="0.08292683">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
|
@ -204,21 +195,15 @@
|
|||
<component name="NamedScopeManager" />
|
||||
<component name="PackagesPane">
|
||||
<expanded_node url="net.thauvin.erik.mobibot" module="mobibot" type="package" />
|
||||
<expanded_node url="net.thauvin.erik" module="mobibot" type="package" />
|
||||
<expanded_node url="net.thauvin" module="mobibot" type="package" />
|
||||
<expanded_node url="net" module="mobibot" type="package" />
|
||||
<expanded_node url="" module="mobibot" type="module" />
|
||||
<expanded_node url="net" module="mobibot" type="package" />
|
||||
<expanded_node url="net.thauvin" module="mobibot" type="package" />
|
||||
<expanded_node url="net.thauvin.erik" module="mobibot" type="package" />
|
||||
</component>
|
||||
<component name="ProjectPane">
|
||||
<expanded_node url="file://$PROJECT_DIR$/lib" module="mobibot" type="directory" />
|
||||
<expanded_node url="file://$PROJECT_DIR$/licenses" module="mobibot" type="directory" />
|
||||
<expanded_node url="file://$PROJECT_DIR$/src/net/thauvin" module="mobibot" type="directory" />
|
||||
<expanded_node url="file://$PROJECT_DIR$/src" module="mobibot" type="directory" />
|
||||
<expanded_node url="file://$PROJECT_DIR$/src/net" module="mobibot" type="directory" />
|
||||
<expanded_node url="file://$PROJECT_DIR$" module="mobibot" type="directory" />
|
||||
<expanded_node url="" module="mobibot" type="module" />
|
||||
<expanded_node url="file://$PROJECT_DIR$/src/net/thauvin/erik/mobibot" module="mobibot" type="directory" />
|
||||
<expanded_node url="file://$PROJECT_DIR$/src/net/thauvin/erik" module="mobibot" type="directory" />
|
||||
<expanded_node url="file://$PROJECT_DIR$/properties" module="mobibot" type="directory" />
|
||||
<expanded_node url="file://$PROJECT_DIR$/website" module="mobibot" type="directory" />
|
||||
</component>
|
||||
<component name="ProjectView">
|
||||
|
@ -262,8 +247,8 @@
|
|||
<property name="last_opened_file_path" value="C:\Documents and Settings\erik\My Documents\My Received Files\src\MathEvaluator" />
|
||||
<property name="cvs_file_history_flatOrder5" value="5" />
|
||||
<property name="cvs_file_history_flatWidth5" value="136" />
|
||||
<property name="cvs_file_history_treeWidth3" value="136" />
|
||||
<property name="cvs_file_history_treeOrder2" value="2" />
|
||||
<property name="cvs_file_history_treeWidth3" value="136" />
|
||||
<property name="cvs_file_history_treeWidth5" value="136" />
|
||||
<property name="cvs_file_history_flatOrder6" value="6" />
|
||||
<property name="cvs_file_history_flatWidth0" value="135" />
|
||||
|
@ -341,7 +326,13 @@
|
|||
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
|
||||
<module name="mobibot" />
|
||||
<RunnerSettings RunnerId="Run" />
|
||||
<RunnerSettings RunnerId="Debug">
|
||||
<option name="DEBUG_PORT" value="1063" />
|
||||
<option name="TRANSPORT" value="0" />
|
||||
<option name="LOCAL" value="false" />
|
||||
</RunnerSettings>
|
||||
<ConfigurationWrapper RunnerId="Run" />
|
||||
<ConfigurationWrapper RunnerId="Debug" />
|
||||
</configuration>
|
||||
</component>
|
||||
<component name="SelectInManager">
|
||||
|
@ -396,27 +387,27 @@
|
|||
</todo-panel>
|
||||
</component>
|
||||
<component name="ToolWindowManager">
|
||||
<frame x="42" y="29" width="1445" height="1124" extended-state="0" />
|
||||
<frame x="-4" y="-4" width="1288" height="808" extended-state="0" />
|
||||
<editor active="false" />
|
||||
<layout>
|
||||
<window_info id="CVS" active="false" anchor="bottom" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.33032128" order="8" />
|
||||
<window_info id="Regex" active="false" anchor="bottom" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.44135803" order="10" x="22" y="277" width="980" height="214" />
|
||||
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.33024693" order="7" />
|
||||
<window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="docked" type="docked" visible="true" weight="0.25771716" order="0" />
|
||||
<window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="docked" type="docked" visible="true" weight="0.1658576" order="0" />
|
||||
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.33032128" order="1" />
|
||||
<window_info id="Jalopy" active="false" anchor="bottom" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.33" order="8" />
|
||||
<window_info id="Jalopy" active="false" anchor="bottom" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.33032128" order="8" />
|
||||
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.27959183" order="1" />
|
||||
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="docked" type="docked" visible="true" weight="0.33032128" order="9" />
|
||||
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="true" internal_type="docked" type="docked" visible="false" weight="0.3995984" order="6" />
|
||||
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.33088234" order="9" />
|
||||
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.3995984" order="6" />
|
||||
<window_info id="Profile" active="false" anchor="bottom" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.33" order="8" />
|
||||
<window_info id="Dependency Viewer" active="false" anchor="bottom" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.33" order="8" />
|
||||
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="docked" type="docked" visible="true" weight="0.096195266" order="1" />
|
||||
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="docked" type="docked" visible="true" weight="0.06553398" order="1" />
|
||||
<window_info id="Run" active="false" anchor="bottom" auto_hide="true" internal_type="docked" type="docked" visible="false" weight="0.39658636" order="2" x="22" y="277" width="980" height="213" />
|
||||
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.25" order="2" />
|
||||
<window_info id="CVS File View" active="false" anchor="right" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.33" order="3" />
|
||||
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="sliding" type="sliding" visible="false" weight="0.4" order="0" />
|
||||
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.39969134" order="4" />
|
||||
<window_info id="BSFConsole" active="false" anchor="bottom" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.33024693" order="11" />
|
||||
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.3995984" order="4" />
|
||||
<window_info id="BSFConsole" active="false" anchor="bottom" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.33032128" order="11" />
|
||||
<window_info id="Properties File Structure" active="false" anchor="right" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.20918368" order="5" />
|
||||
<window_info id="Web" active="false" anchor="left" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.25" order="2" />
|
||||
<window_info id="Code Outline" active="false" anchor="right" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.33" order="4" />
|
||||
|
@ -501,23 +492,16 @@
|
|||
</buildFile>
|
||||
</component>
|
||||
<component name="editorHistoryManager">
|
||||
<entry file="file://$PROJECT_DIR$/website/index.html">
|
||||
<entry file="jar://$PROJECT_DIR$/lib/pircbot.jar!/org/jibble/pircbot/InputThread.class">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="45" column="160" selection-start="2992" selection-end="2992" vertical-scroll-proportion="0.7169615">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/build.properties">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="2" column="16" selection-start="44" selection-end="44" vertical-scroll-proportion="0.034836065">
|
||||
<state line="32" column="60" selection-start="824" selection-end="826" vertical-scroll-proportion="0.52953815">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/erik/mobibot/StockQuote.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="44" column="0" selection-start="1838" selection-end="1838" vertical-scroll-proportion="0.16433942">
|
||||
<state line="97" column="63" selection-start="3007" selection-end="3007" vertical-scroll-proportion="0.51932776">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
|
@ -526,76 +510,81 @@
|
|||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/erik/mobibot/EntryComment.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="53" column="13" selection-start="2016" selection-end="2016" vertical-scroll-proportion="0.32867885">
|
||||
<state line="53" column="13" selection-start="2016" selection-end="2016" vertical-scroll-proportion="0.0605042">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/build.xml">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/ChangeLog.txt">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="23" column="34" selection-start="878" selection-end="878" vertical-scroll-proportion="0.6571429">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/erik/mobibot/Mobibot.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="2771" column="46" selection-start="64811" selection-end="64811" vertical-scroll-proportion="1.5982759">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/erik/mobibot/Weather.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="54" column="13" selection-start="2059" selection-end="2059" vertical-scroll-proportion="0.42068964">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/erik/mobibot/FeedReader.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="109" column="52" selection-start="3133" selection-end="3133" vertical-scroll-proportion="0.8655462">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/erik/mobibot/DeliciousPoster.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="103" column="5" selection-start="3140" selection-end="3140" vertical-scroll-proportion="1.3361344">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/erik/mobibot/SwingWorker.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="29" column="33" selection-start="956" selection-end="956" vertical-scroll-proportion="0.82857144">
|
||||
<state line="29" column="33" selection-start="956" selection-end="956" vertical-scroll-proportion="0.52953815">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/erik/mobibot/CurrencyConverter.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="36" column="0" selection-start="1681" selection-end="1714" vertical-scroll-proportion="0.029310346">
|
||||
<state line="83" column="12" selection-start="2595" selection-end="2595" vertical-scroll-proportion="0.8764769">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="jar://$PROJECT_DIR$/lib/pircbot.jar!/org/jibble/pircbot/PircBot.class">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="384" column="24" selection-start="10669" selection-end="10669" vertical-scroll-proportion="0.3329753">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/erik/mobibot/DeliciousPoster.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="44" column="52" selection-start="1823" selection-end="1823" vertical-scroll-proportion="0.24878049">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/erik/mobibot/Mobibot.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="90" column="79" selection-start="3025" selection-end="3025" vertical-scroll-proportion="0.19666667">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/net/thauvin/erik/mobibot/EntryLink.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="394" column="26" selection-start="8275" selection-end="8275" vertical-scroll-proportion="0.5479675">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/mobibot.properties">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="17" column="7" selection-start="457" selection-end="457" vertical-scroll-proportion="0.4857143">
|
||||
<state line="17" column="0" selection-start="440" selection-end="440" vertical-scroll-proportion="0.4699187">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/properties/log4j.properties">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/properties/mobibot.properties">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="12" column="5" selection-start="258" selection-end="258" vertical-scroll-proportion="0.33170733">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/properties/fetcher.properties">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
|
@ -609,7 +598,7 @@
|
|||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/buildnum.properties">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="3" column="0" selection-start="98" selection-end="98" vertical-scroll-proportion="0.08571429">
|
||||
<state line="3" column="0" selection-start="99" selection-end="99" vertical-scroll-proportion="0.08292683">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
|
|
|
@ -81,7 +81,7 @@ public class CurrencyConverter implements Runnable
|
|||
/**
|
||||
* The last exchange rates table publication date.
|
||||
*/
|
||||
private static String s_date = "";
|
||||
private String s_date = "";
|
||||
|
||||
/**
|
||||
* The bot.
|
||||
|
|
|
@ -50,35 +50,34 @@ import del.icio.us.Delicious;
|
|||
public class DeliciousPoster
|
||||
{
|
||||
private final Delicious _delicious;
|
||||
private final String _tags;
|
||||
private final String _ircServer;
|
||||
|
||||
/**
|
||||
* Creates a new DeliciousPoster instance.
|
||||
*
|
||||
* @param username The del.icio.us username.
|
||||
* @param password The del.icio.us password.
|
||||
* @param tags The del.icio.us tags.
|
||||
* @param username The del.icio.us username.
|
||||
* @param password The del.icio.us password.
|
||||
* @param ircServer The IRC server.
|
||||
*/
|
||||
public DeliciousPoster(String username, String password, String tags)
|
||||
public DeliciousPoster(String username, String password, String ircServer)
|
||||
{
|
||||
_delicious = new Delicious(username, password);
|
||||
_tags = tags;
|
||||
_ircServer = ircServer;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a post to del.icio.us.
|
||||
*
|
||||
* @param entry The entry to add.
|
||||
* @param extended The del.icio.us extended data.
|
||||
* @param entry The entry to add.
|
||||
*/
|
||||
public final void addPost(final EntryLink entry, final String extended)
|
||||
public final void addPost(final EntryLink entry)
|
||||
{
|
||||
final SwingWorker worker = new SwingWorker()
|
||||
{
|
||||
public Object construct()
|
||||
{
|
||||
return new Boolean(_delicious.addPost(entry.getLink(), entry.getTitle(), extended, _tags,
|
||||
entry.getDate()));
|
||||
return Boolean.valueOf(_delicious.addPost(entry.getLink(), entry.getTitle(), postedBy(entry),
|
||||
entry.getDeliciousTags(), entry.getDate()));
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -86,20 +85,57 @@ public class DeliciousPoster
|
|||
}
|
||||
|
||||
/**
|
||||
* Delets a post to del.icio.us.
|
||||
* Deletes a post to del.icio.us.
|
||||
*
|
||||
* @param entry The entry to delete.
|
||||
*/
|
||||
public final void deletePost(final EntryLink entry)
|
||||
public final void deletePost(EntryLink entry)
|
||||
{
|
||||
final String link = entry.getLink();
|
||||
|
||||
final SwingWorker worker = new SwingWorker()
|
||||
{
|
||||
public Object construct()
|
||||
{
|
||||
return new Boolean(_delicious.deletePost(entry.getLink()));
|
||||
return Boolean.valueOf(_delicious.deletePost(link));
|
||||
}
|
||||
};
|
||||
|
||||
worker.start();
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates a post to del.icio.us.
|
||||
*
|
||||
* @param oldUrl The old post URL.
|
||||
* @param entry The entry to add.
|
||||
*/
|
||||
public final void updatePost(final String oldUrl, final EntryLink entry)
|
||||
{
|
||||
final SwingWorker worker = new SwingWorker()
|
||||
{
|
||||
public Object construct()
|
||||
{
|
||||
_delicious.deletePost(oldUrl);
|
||||
|
||||
return Boolean.valueOf(_delicious.addPost(entry.getLink(), entry.getTitle(), postedBy(entry),
|
||||
entry.getDeliciousTags(), entry.getDate()));
|
||||
}
|
||||
};
|
||||
|
||||
worker.start();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns he del.icio.us extended attribution line.
|
||||
*
|
||||
* @param entry The entry.
|
||||
*
|
||||
* @return The extended attribution line.
|
||||
*/
|
||||
private String postedBy(EntryLink entry)
|
||||
{
|
||||
return "Posted by " + entry.getNick() + " on " + entry.getChannel() + " (" + _ircServer + ')';
|
||||
}
|
||||
}
|
||||
|
|
|
@ -36,22 +36,20 @@
|
|||
*/
|
||||
package net.thauvin.erik.mobibot;
|
||||
|
||||
import com.sun.syndication.feed.synd.SyndCategoryImpl;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
|
||||
|
||||
/**
|
||||
* The class used to store link entries.
|
||||
*
|
||||
* @author Erik C. Thauvin
|
||||
* @author Erik C. Thauvin
|
||||
* @version $Revision$, $Date$
|
||||
*
|
||||
* @created Jan 31, 2004
|
||||
* @since 1.0
|
||||
* @since 1.0
|
||||
*/
|
||||
public class EntryLink implements Serializable
|
||||
{
|
||||
|
@ -60,51 +58,72 @@ public class EntryLink implements Serializable
|
|||
*/
|
||||
static final long serialVersionUID = 3676245542270899086L;
|
||||
|
||||
/**
|
||||
* The creation date.
|
||||
*/
|
||||
// The channel
|
||||
private String _channel = "";
|
||||
|
||||
// The link's comments
|
||||
private final List _comments = new ArrayList(0);
|
||||
|
||||
// The creation date
|
||||
private Date _date = Calendar.getInstance().getTime();
|
||||
|
||||
/**
|
||||
* The comments.
|
||||
*/
|
||||
private final List _comments = new ArrayList(0);
|
||||
// The link's URL
|
||||
private String _link = "";
|
||||
|
||||
// The author's login
|
||||
private String _login = "";
|
||||
|
||||
// The author's nickname
|
||||
private String _nick = "";
|
||||
|
||||
// The tags/categories
|
||||
private final List _tags = new ArrayList(0);
|
||||
|
||||
// The link's title
|
||||
private String _title = "";
|
||||
|
||||
|
||||
/**
|
||||
* Creates a new entry.
|
||||
*
|
||||
* @param link The new entry's link.
|
||||
* @param title The new entry's title.
|
||||
* @param nick The nickname of the author of the link.
|
||||
* @param date The entry date.
|
||||
* @param link The new entry's link.
|
||||
* @param title The new entry's title.
|
||||
* @param nick The nickname of the author of the link.
|
||||
* @param login The login of the author of the link.
|
||||
* @param channel The channel.
|
||||
* @param tags The entry's tags/categories.
|
||||
*/
|
||||
public EntryLink(String link, String title, String nick, Date date)
|
||||
{
|
||||
_link = link;
|
||||
_title = title;
|
||||
_nick = nick;
|
||||
_date = date;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new entry.
|
||||
*
|
||||
* @param link The new entry's link.
|
||||
* @param title The new entry's title.
|
||||
* @param nick The nickname of the author of the link.
|
||||
* @param login The login of the author of the link.
|
||||
*/
|
||||
public EntryLink(String link, String title, String nick, String login)
|
||||
public EntryLink(String link, String title, String nick, String login, String channel, String tags)
|
||||
{
|
||||
_link = link;
|
||||
_title = title;
|
||||
_nick = nick;
|
||||
_login = login;
|
||||
_channel = channel;
|
||||
|
||||
setTags(tags);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Creates a new entry.
|
||||
*
|
||||
* @param link The new entry's link.
|
||||
* @param title The new entry's title.
|
||||
* @param nick The nickname of the author of the link.
|
||||
* @param channel The channel.
|
||||
* @param date The entry date.
|
||||
* @param tags The entry's tags/categories.
|
||||
*/
|
||||
public EntryLink(String link, String title, String nick, String channel, Date date, List tags)
|
||||
{
|
||||
_link = link;
|
||||
_title = title;
|
||||
_nick = nick;
|
||||
_channel = channel;
|
||||
_date = date;
|
||||
|
||||
|
||||
setTags(tags);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -112,28 +131,51 @@ public class EntryLink implements Serializable
|
|||
*/
|
||||
protected EntryLink()
|
||||
{
|
||||
; // Required for serialization.
|
||||
; // Required for serialization.
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets a comment.
|
||||
* Adds a new comment.
|
||||
*
|
||||
* @param index The comment's index.
|
||||
* @param comment The actual comment.
|
||||
* @param nick The nickname of the author of the comment.
|
||||
* @param comment The actual comment.
|
||||
* @param nick The nickname of the author of the comment.
|
||||
*
|
||||
* @return The total number of comments for this entry.
|
||||
*/
|
||||
public final synchronized void setComment(int index, String comment, String nick)
|
||||
public final synchronized int addComment(String comment, String nick)
|
||||
{
|
||||
_comments.add(new EntryComment(comment, nick));
|
||||
|
||||
return (_comments.size() - 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes a specific comment.
|
||||
*
|
||||
* @param index The index of the comment to delete.
|
||||
*/
|
||||
public final synchronized void deleteComment(int index)
|
||||
{
|
||||
if (index < _comments.size())
|
||||
{
|
||||
_comments.set(index, new EntryComment(comment, nick));
|
||||
_comments.remove(index);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the channel the link was posted on.
|
||||
*
|
||||
* @return The channel
|
||||
*/
|
||||
public final synchronized String getChannel()
|
||||
{
|
||||
return _channel;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a comment.
|
||||
*
|
||||
* @param index The comment's index.
|
||||
* @param index The comment's index.
|
||||
*
|
||||
* @return The specific comment.
|
||||
*/
|
||||
|
@ -173,13 +215,25 @@ public class EntryLink implements Serializable
|
|||
}
|
||||
|
||||
/**
|
||||
* Sets the comment's link.
|
||||
* Returns the tags formatted for del.icio.us.
|
||||
*
|
||||
* @param link The new link.
|
||||
* @return The tags as a space-deliminted string.
|
||||
*/
|
||||
public final synchronized void setLink(String link)
|
||||
public final synchronized String getDeliciousTags()
|
||||
{
|
||||
this._link = link;
|
||||
final StringBuffer tags = new StringBuffer(0);
|
||||
|
||||
for (int i = 0; i < _tags.size(); i++)
|
||||
{
|
||||
if (i != 0)
|
||||
{
|
||||
tags.append(' ');
|
||||
}
|
||||
|
||||
tags.append(((SyndCategoryImpl) _tags.get(i)).getName());
|
||||
}
|
||||
|
||||
return tags.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -192,16 +246,6 @@ public class EntryLink implements Serializable
|
|||
return _link;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the comment's author login.
|
||||
*
|
||||
* @param login The new login.
|
||||
*/
|
||||
public final synchronized void setLogin(String login)
|
||||
{
|
||||
this._login = login;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return's the comment's author login.
|
||||
*
|
||||
|
@ -212,16 +256,6 @@ public class EntryLink implements Serializable
|
|||
return _login;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the comment's author nickname.
|
||||
*
|
||||
* @param nick The new nickname.
|
||||
*/
|
||||
public final synchronized void setNick(String nick)
|
||||
{
|
||||
this._nick = nick;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the comment's author nickname.
|
||||
*
|
||||
|
@ -233,13 +267,13 @@ public class EntryLink implements Serializable
|
|||
}
|
||||
|
||||
/**
|
||||
* Sets the comment's title.
|
||||
* Returns the tags.
|
||||
*
|
||||
* @param title The new title.
|
||||
* @return The tags.
|
||||
*/
|
||||
public final synchronized void setTitle(String title)
|
||||
public final synchronized List getTags()
|
||||
{
|
||||
this._title = title;
|
||||
return _tags;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -252,34 +286,6 @@ public class EntryLink implements Serializable
|
|||
return _title;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a new comment.
|
||||
*
|
||||
* @param comment The actual comment.
|
||||
* @param nick The nickname of the author of the comment.
|
||||
*
|
||||
* @return The total number of comments for this entry.
|
||||
*/
|
||||
public final synchronized int addComment(String comment, String nick)
|
||||
{
|
||||
_comments.add(new EntryComment(comment, nick));
|
||||
|
||||
return (_comments.size() - 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes a specific comment.
|
||||
*
|
||||
* @param index The index of the comment to delete.
|
||||
*/
|
||||
public final synchronized void deleteComment(int index)
|
||||
{
|
||||
if (index < _comments.size())
|
||||
{
|
||||
_comments.remove(index);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the entry has comments.
|
||||
*
|
||||
|
@ -287,6 +293,146 @@ public class EntryLink implements Serializable
|
|||
*/
|
||||
public final synchronized boolean hasComments()
|
||||
{
|
||||
return (_comments.size() > 0);
|
||||
return (!_comments.isEmpty());
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the entry has tags.
|
||||
*
|
||||
* @return true if there are tags, false otherwise.
|
||||
*/
|
||||
public final synchronized boolean hasTags()
|
||||
{
|
||||
return (!_tags.isEmpty());
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the channel.
|
||||
*
|
||||
* @param channel The channel.
|
||||
*/
|
||||
public final synchronized void setChannel(String channel)
|
||||
{
|
||||
_channel = channel;
|
||||
}
|
||||
|
||||
/**
|
||||
* /** Sets a comment.
|
||||
*
|
||||
* @param index The comment's index.
|
||||
* @param comment The actual comment.
|
||||
* @param nick The nickname of the author of the comment.
|
||||
*/
|
||||
public final synchronized void setComment(int index, String comment, String nick)
|
||||
{
|
||||
if (index < _comments.size())
|
||||
{
|
||||
_comments.set(index, new EntryComment(comment, nick));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the comment's link.
|
||||
*
|
||||
* @param link The new link.
|
||||
*/
|
||||
public final synchronized void setLink(String link)
|
||||
{
|
||||
_link = link;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the comment's author login.
|
||||
*
|
||||
* @param login The new login.
|
||||
*/
|
||||
public final synchronized void setLogin(String login)
|
||||
{
|
||||
_login = login;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the comment's author nickname.
|
||||
*
|
||||
* @param nick The new nickname.
|
||||
*/
|
||||
public final synchronized void setNick(String nick)
|
||||
{
|
||||
_nick = nick;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the tags.
|
||||
*
|
||||
* @param tags The tags.
|
||||
*/
|
||||
public final synchronized void setTags(List tags)
|
||||
{
|
||||
_tags.addAll(tags);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the tags.
|
||||
*
|
||||
* @param tags The space-delimited tags.
|
||||
*/
|
||||
public final synchronized void setTags(String tags)
|
||||
{
|
||||
if (tags != null)
|
||||
{
|
||||
final String[] parts = tags.split(" ");
|
||||
|
||||
SyndCategoryImpl tag;
|
||||
String part;
|
||||
char mod;
|
||||
|
||||
for (int i = 0; i < parts.length; i++)
|
||||
{
|
||||
part = parts[i].trim();
|
||||
|
||||
if (part.length() > 2)
|
||||
{
|
||||
tag = new SyndCategoryImpl();
|
||||
tag.setName(part.substring(1).toLowerCase());
|
||||
|
||||
mod = part.charAt(0);
|
||||
|
||||
if (mod == '-')
|
||||
{
|
||||
// Don't remove the channel tag, if any.
|
||||
if (!tag.getName().equals(_channel.substring(1)))
|
||||
{
|
||||
_tags.remove(tag);
|
||||
}
|
||||
}
|
||||
else if (mod == '+')
|
||||
{
|
||||
if (!_tags.contains(tag))
|
||||
{
|
||||
_tags.add(tag);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
tag.setName(part.trim().toLowerCase());
|
||||
|
||||
if (!_tags.contains(tag))
|
||||
{
|
||||
_tags.add(tag);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the comment's title.
|
||||
*
|
||||
* @param title The new title.
|
||||
*/
|
||||
public final synchronized void setTitle(String title)
|
||||
{
|
||||
_title = title;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -88,7 +88,7 @@ public class Mobibot extends PircBot
|
|||
private static final String[] INFO_STRS =
|
||||
{
|
||||
"Mobibot v" + ReleaseInfo.getVersion() + '.' + ReleaseInfo.getBuildNumber() +
|
||||
" by Erik C. Thauvin (erik@thauvin.net)", "http://www.thauvin.net/mobitopia/mobibot/"
|
||||
" by Erik C. Thauvin (erik@thauvin.net)", "http://mobitopia.thauvin.net/mobibot/"
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -181,6 +181,11 @@ public class Mobibot extends PircBot
|
|||
*/
|
||||
private static final String HELP_POSTING_KEYWORD = "posting";
|
||||
|
||||
/**
|
||||
* The help on tags keyword.
|
||||
*/
|
||||
private static final String HELP_TAGS_KEYWORD = "tags";
|
||||
|
||||
/**
|
||||
* The Google command.
|
||||
*/
|
||||
|
@ -251,6 +256,11 @@ public class Mobibot extends PircBot
|
|||
*/
|
||||
private static final String NO_TITLE = "No Title";
|
||||
|
||||
/**
|
||||
* The tags/categories marker.
|
||||
*/
|
||||
private static final String TAGS_MARKER = "tags:";
|
||||
|
||||
/**
|
||||
* The countries supporte by the {@link #TIME_CMD time} command.
|
||||
*/
|
||||
|
@ -336,6 +346,7 @@ public class Mobibot extends PircBot
|
|||
COUNTRIES_MAP.put("NL", "Europe/Amsterdam");
|
||||
COUNTRIES_MAP.put("NO", "Europe/Oslo");
|
||||
COUNTRIES_MAP.put("NZ", "Pacific/Auckland");
|
||||
COUNTRIES_MAP.put("PK", "Asia/Karachi");
|
||||
COUNTRIES_MAP.put("RU", "Europe/Moscow");
|
||||
COUNTRIES_MAP.put("SE", "Europe/Stockholm");
|
||||
COUNTRIES_MAP.put("SG", "Asia/Singapore");
|
||||
|
@ -368,7 +379,7 @@ public class Mobibot extends PircBot
|
|||
/**
|
||||
* The number of milliseconds to delay between consecutive messages.
|
||||
*/
|
||||
private static final int MESSAGE_DELAY = 1000;
|
||||
private static final long MESSAGE_DELAY = 1000L;
|
||||
|
||||
/**
|
||||
* The name of the file containing the current entries.
|
||||
|
@ -380,11 +391,6 @@ public class Mobibot extends PircBot
|
|||
*/
|
||||
private static final String NAV_XML = "nav.xml";
|
||||
|
||||
/**
|
||||
* The del.icio.us posts handler.
|
||||
*/
|
||||
private static DeliciousPoster _delicious = null;
|
||||
|
||||
/**
|
||||
* The backlogs URL.
|
||||
*/
|
||||
|
@ -395,6 +401,16 @@ public class Mobibot extends PircBot
|
|||
*/
|
||||
private final String _channel;
|
||||
|
||||
/**
|
||||
* The default tags/categories.
|
||||
*/
|
||||
private String _defaultTags = "";
|
||||
|
||||
/**
|
||||
* The del.icio.us posts handler.
|
||||
*/
|
||||
private DeliciousPoster _delicious = null;
|
||||
|
||||
/**
|
||||
* The entries array.
|
||||
*/
|
||||
|
@ -410,7 +426,10 @@ public class Mobibot extends PircBot
|
|||
*/
|
||||
private String _feedURL = "";
|
||||
|
||||
// The Google API key.
|
||||
/**
|
||||
* The Google API key.
|
||||
*/
|
||||
|
||||
private String _googleKey = "";
|
||||
|
||||
/**
|
||||
|
@ -637,14 +656,6 @@ public class Mobibot extends PircBot
|
|||
System.setErr(stderr);
|
||||
}
|
||||
|
||||
// Get the del.icio.us properties
|
||||
final String dname = p.getProperty("delicious-user");
|
||||
final String dpwd = p.getProperty("delicious-pwd");
|
||||
|
||||
if (isValidString(dname) && isValidString(dpwd))
|
||||
{
|
||||
_delicious = new DeliciousPoster(dname, dpwd, p.getProperty("delicious-tags", ""));
|
||||
}
|
||||
|
||||
// Get the bot's properties
|
||||
final String login = p.getProperty("login", nickname);
|
||||
|
@ -653,6 +664,11 @@ public class Mobibot extends PircBot
|
|||
final String backlogsURL = ensureDir(p.getProperty("backlogs", weblogURL), true);
|
||||
final String googleKey = p.getProperty("google", "");
|
||||
final String ignoredNicks = p.getProperty("ignore", "");
|
||||
final String tags = p.getProperty("tags", "");
|
||||
|
||||
// Get the del.icio.us properties
|
||||
final String dname = p.getProperty("delicious-user");
|
||||
final String dpwd = p.getProperty("delicious-pwd");
|
||||
|
||||
// Create the bot
|
||||
final Mobibot bot = new Mobibot(server, channel, logsDir);
|
||||
|
@ -673,6 +689,16 @@ public class Mobibot extends PircBot
|
|||
// Set the Google key
|
||||
bot.setGoogleKey(googleKey);
|
||||
|
||||
|
||||
if (isValidString(dname) && isValidString(dpwd))
|
||||
{
|
||||
// Set the del.icio.us authentication
|
||||
bot.setDeliciousAuth(dname, dpwd);
|
||||
}
|
||||
|
||||
// Set the tags
|
||||
bot.setTags(tags);
|
||||
|
||||
// Set the ignored nicks
|
||||
bot.setIgnoredNicks(ignoredNicks);
|
||||
|
||||
|
@ -753,7 +779,7 @@ public class Mobibot extends PircBot
|
|||
{
|
||||
if (isValidString(channel) && isValidString(action))
|
||||
{
|
||||
this.sendAction(channel, action);
|
||||
sendAction(channel, action);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -799,7 +825,8 @@ public class Mobibot extends PircBot
|
|||
|
||||
if (lcTopic.endsWith(HELP_POSTING_KEYWORD))
|
||||
{
|
||||
send(sender, bold("Post a URL, by saying it on a line on its own."));
|
||||
send(sender, bold("Post a URL, by saying it on a line on its own:"));
|
||||
send(sender, DOUBLE_INDENT + bold("<url> [<title>] [" + TAGS_MARKER + "<+tag> [...]]"));
|
||||
send(sender, "I will reply with a label, for example: " + bold(LINK_CMD + '1'));
|
||||
send(sender, "To add a title, use a its label and a pipe:");
|
||||
send(sender, DOUBLE_INDENT + bold(LINK_CMD + "1:|This is the title"));
|
||||
|
@ -812,6 +839,11 @@ public class Mobibot extends PircBot
|
|||
send(sender, DOUBLE_INDENT + bold(LINK_CMD + "1.1:-"));
|
||||
send(sender, "You can also view a posting by saying its label.");
|
||||
}
|
||||
else if (lcTopic.endsWith(HELP_TAGS_KEYWORD))
|
||||
{
|
||||
send(sender, bold("To categorize or tag a URL, use its label and a T:"));
|
||||
send(sender, DOUBLE_INDENT + bold(LINK_CMD + "1T:<+tag|-tag> [...]"));
|
||||
}
|
||||
else if (lcTopic.endsWith(VIEW_CMD))
|
||||
{
|
||||
send(sender, "To list or search the current URL posts:");
|
||||
|
@ -938,7 +970,9 @@ public class Mobibot extends PircBot
|
|||
bold(INFO_CMD + ' ' + getChannel().substring(1) + ' ' + LOOKUP_CMD + ' ' + HELP_POSTING_KEYWORD + ' ' +
|
||||
RECAP_CMD));
|
||||
send(sender,
|
||||
DOUBLE_INDENT + bold(SPELL_CMD + ' ' + STOCK_CMD + ' ' + TIME_CMD + ' ' + USERS_CMD + ' ' + VIEW_CMD));
|
||||
DOUBLE_INDENT +
|
||||
bold(SPELL_CMD + ' ' + STOCK_CMD + ' ' + HELP_TAGS_KEYWORD + ' ' + TIME_CMD + ' ' + USERS_CMD + ' ' +
|
||||
VIEW_CMD));
|
||||
send(sender, DOUBLE_INDENT + bold(WEATHER_CMD));
|
||||
|
||||
if (isOp(sender))
|
||||
|
@ -978,7 +1012,7 @@ public class Mobibot extends PircBot
|
|||
_logger.debug("Sending message to " + sender + ": " + message);
|
||||
}
|
||||
|
||||
this.sendMessage(sender, message);
|
||||
sendMessage(sender, message);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -987,7 +1021,7 @@ public class Mobibot extends PircBot
|
|||
_logger.debug("Sending notice to " + sender + ": " + message);
|
||||
}
|
||||
|
||||
this.sendNotice(sender, message);
|
||||
sendNotice(sender, message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1102,7 +1136,18 @@ public class Mobibot extends PircBot
|
|||
|
||||
if (title.indexOf(getNick()) == -1)
|
||||
{
|
||||
_entries.add(new EntryLink(cmd, title, sender, login));
|
||||
final int tagSep = title.lastIndexOf(TAGS_MARKER);
|
||||
|
||||
if (tagSep != -1)
|
||||
{
|
||||
_entries.add(new EntryLink(cmd, title.substring(0, tagSep), sender, login, channel,
|
||||
(_defaultTags + ' ' +
|
||||
title.substring(tagSep + TAGS_MARKER.length()))));
|
||||
}
|
||||
else
|
||||
{
|
||||
_entries.add(new EntryLink(cmd, title, sender, login, channel, _defaultTags));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1111,7 +1156,7 @@ public class Mobibot extends PircBot
|
|||
}
|
||||
else
|
||||
{
|
||||
_entries.add(new EntryLink(cmd, NO_TITLE, sender, login));
|
||||
_entries.add(new EntryLink(cmd, NO_TITLE, sender, login, channel, _defaultTags));
|
||||
}
|
||||
|
||||
if (isCommand)
|
||||
|
@ -1122,7 +1167,7 @@ public class Mobibot extends PircBot
|
|||
|
||||
if (_delicious != null)
|
||||
{
|
||||
_delicious.addPost(entry, postedBy(entry, channel));
|
||||
_delicious.addPost(entry);
|
||||
}
|
||||
|
||||
saveEntries(isBackup);
|
||||
|
@ -1354,6 +1399,11 @@ public class Mobibot extends PircBot
|
|||
final EntryLink entry = (EntryLink) _entries.get(index);
|
||||
send(getChannel(), buildLink(index, entry));
|
||||
|
||||
if (entry.hasTags())
|
||||
{
|
||||
send(getChannel(), buildTags(index, entry));
|
||||
}
|
||||
|
||||
if (entry.hasComments())
|
||||
{
|
||||
final EntryComment[] comments = entry.getComments();
|
||||
|
@ -1395,7 +1445,7 @@ public class Mobibot extends PircBot
|
|||
|
||||
if (_delicious != null)
|
||||
{
|
||||
_delicious.addPost(entry, postedBy(entry, channel));
|
||||
_delicious.addPost(entry);
|
||||
}
|
||||
|
||||
send(getChannel(), buildLink(index, entry));
|
||||
|
@ -1412,16 +1462,13 @@ public class Mobibot extends PircBot
|
|||
|
||||
if (link.matches(LINK_MATCH))
|
||||
{
|
||||
if (_delicious != null)
|
||||
{
|
||||
_delicious.deletePost(entry);
|
||||
}
|
||||
final String oldLink = entry.getLink();
|
||||
|
||||
entry.setLink(link);
|
||||
|
||||
if (_delicious != null)
|
||||
{
|
||||
_delicious.addPost(entry, postedBy(entry, channel));
|
||||
_delicious.updatePost(oldLink, entry);
|
||||
}
|
||||
|
||||
send(getChannel(), buildLink(index, entry));
|
||||
|
@ -1462,6 +1509,51 @@ public class Mobibot extends PircBot
|
|||
}
|
||||
}
|
||||
}
|
||||
else if (message.matches(LINK_CMD + "[0-9]+T:.*"))
|
||||
{
|
||||
isCommand = true;
|
||||
|
||||
final String[] cmds = message.substring(1).split("T:", 2);
|
||||
final int index = Integer.parseInt(cmds[0]) - 1;
|
||||
|
||||
if (index < _entries.size())
|
||||
{
|
||||
final String cmd = cmds[1].trim();
|
||||
|
||||
final EntryLink entry = (EntryLink) _entries.get(index);
|
||||
|
||||
if (cmd.length() != 0)
|
||||
{
|
||||
if (entry.getLogin().equals(login) || isOp(sender))
|
||||
{
|
||||
entry.setTags(cmd);
|
||||
|
||||
if (_delicious != null)
|
||||
{
|
||||
_delicious.addPost(entry);
|
||||
}
|
||||
|
||||
send(getChannel(), buildTags(index, entry));
|
||||
saveEntries(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
send(sender, "Please ask a channel op to change the tags for you.");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (entry.hasTags())
|
||||
{
|
||||
send(getChannel(), buildTags(index, entry));
|
||||
}
|
||||
else
|
||||
{
|
||||
send(sender, "The entry has no tags. Why don't add some?");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (message.matches(LINK_CMD + "[0-9]+\\.[0-9]+:.*"))
|
||||
{
|
||||
isCommand = true;
|
||||
|
@ -1556,7 +1648,7 @@ public class Mobibot extends PircBot
|
|||
{
|
||||
if (isOp(sender))
|
||||
{
|
||||
this.sendRawLine("QUIT : Poof!");
|
||||
sendRawLine("QUIT : Poof!");
|
||||
System.exit(0);
|
||||
}
|
||||
}
|
||||
|
@ -1567,7 +1659,7 @@ public class Mobibot extends PircBot
|
|||
send(getChannel(), sender + " has just signed my death sentence.");
|
||||
saveEntries(true);
|
||||
sleep(3);
|
||||
this.quitServer("The Bot Is Out There!");
|
||||
quitServer("The Bot Is Out There!");
|
||||
System.exit(0);
|
||||
}
|
||||
}
|
||||
|
@ -1575,9 +1667,9 @@ public class Mobibot extends PircBot
|
|||
{
|
||||
send(getChannel(), sender + " has just asked me to leave. I'll be back!");
|
||||
sleep(0);
|
||||
this.partChannel(getChannel());
|
||||
partChannel(getChannel());
|
||||
sleep(5);
|
||||
this.joinChannel(getChannel());
|
||||
joinChannel(getChannel());
|
||||
}
|
||||
else if (cmd.equals(RECAP_CMD))
|
||||
{
|
||||
|
@ -1613,7 +1705,7 @@ public class Mobibot extends PircBot
|
|||
{
|
||||
if (isOp(sender))
|
||||
{
|
||||
this.changeNick(args);
|
||||
changeNick(args);
|
||||
}
|
||||
}
|
||||
else if (cmd.startsWith(SAY_CMD))
|
||||
|
@ -1746,6 +1838,19 @@ public class Mobibot extends PircBot
|
|||
return buff.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Build an entry's tags/categories for diplay on the channel.
|
||||
*
|
||||
* @param entryIndex The entry's index.
|
||||
* @param entry The {@link EntryLink entry} object.
|
||||
*
|
||||
* @return The entry's tags.
|
||||
*/
|
||||
private static String buildTags(int entryIndex, EntryLink entry)
|
||||
{
|
||||
return (LINK_CMD + (entryIndex + 1) + "T: " + entry.getDeliciousTags());
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensures that the given location (File/URL) has a trailing slash (<code>/</code>) to indicate a directory.
|
||||
*
|
||||
|
@ -2123,7 +2228,7 @@ public class Mobibot extends PircBot
|
|||
*/
|
||||
private boolean isOp(String sender)
|
||||
{
|
||||
final User[] users = this.getUsers(getChannel());
|
||||
final User[] users = getUsers(getChannel());
|
||||
|
||||
User user;
|
||||
|
||||
|
@ -2153,10 +2258,10 @@ public class Mobibot extends PircBot
|
|||
{
|
||||
_history.clear();
|
||||
|
||||
SyndFeedInput input = new SyndFeedInput();
|
||||
SyndFeed feed = input.build(new InputStreamReader(new FileInputStream(new File(file))));
|
||||
final SyndFeedInput input = new SyndFeedInput();
|
||||
final SyndFeed feed = input.build(new InputStreamReader(new FileInputStream(new File(file))));
|
||||
|
||||
List items = feed.getEntries();
|
||||
final List items = feed.getEntries();
|
||||
SyndEntry item;
|
||||
|
||||
for (int i = items.size() - 1; i >= 0; i--)
|
||||
|
@ -2179,12 +2284,12 @@ public class Mobibot extends PircBot
|
|||
{
|
||||
_entries.clear();
|
||||
|
||||
SyndFeedInput input = new SyndFeedInput();
|
||||
SyndFeed feed = input.build(new InputStreamReader(new FileInputStream(new File(file))));
|
||||
final SyndFeedInput input = new SyndFeedInput();
|
||||
final SyndFeed feed = input.build(new InputStreamReader(new FileInputStream(new File(file))));
|
||||
|
||||
setToday(ISO_SDF.format(feed.getPublishedDate()));
|
||||
|
||||
List items = feed.getEntries();
|
||||
final List items = feed.getEntries();
|
||||
SyndEntry item;
|
||||
SyndContent description;
|
||||
String[] comments;
|
||||
|
@ -2196,7 +2301,8 @@ public class Mobibot extends PircBot
|
|||
{
|
||||
item = (SyndEntryImpl) items.get(i);
|
||||
author = item.getAuthor().substring(item.getAuthor().lastIndexOf('(') + 1, item.getAuthor().length() - 1);
|
||||
entry = new EntryLink(item.getLink(), item.getTitle(), author, item.getPublishedDate());
|
||||
entry = new EntryLink(item.getLink(), item.getTitle(), author, getChannel(), item.getPublishedDate(),
|
||||
item.getCategories());
|
||||
description = item.getDescription();
|
||||
comments = description.getValue().split("<br/>");
|
||||
|
||||
|
@ -2274,19 +2380,6 @@ public class Mobibot extends PircBot
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns he del.icio.us extended attribution line.
|
||||
*
|
||||
* @param entry The entry.
|
||||
* @param channel The channel
|
||||
*
|
||||
* @return The extended attribution line.
|
||||
*/
|
||||
private String postedBy(EntryLink entry, String channel)
|
||||
{
|
||||
return "Posted by " + entry.getNick() + " on " + channel + " (" + _ircServer + ')';
|
||||
}
|
||||
|
||||
/**
|
||||
* Stores the last 10 public messages and actions.
|
||||
*
|
||||
|
@ -2350,7 +2443,7 @@ public class Mobibot extends PircBot
|
|||
EntryLink entry;
|
||||
StringBuffer buff;
|
||||
EntryComment comment;
|
||||
final List items = new ArrayList();
|
||||
final List items = new ArrayList(0);
|
||||
SyndEntry item;
|
||||
SyndContent description;
|
||||
|
||||
|
@ -2385,6 +2478,7 @@ public class Mobibot extends PircBot
|
|||
item.setTitle(entry.getTitle());
|
||||
item.setPublishedDate(entry.getDate());
|
||||
item.setAuthor(getChannel().substring(1) + '@' + _ircServer + " (" + entry.getNick() + ')');
|
||||
item.setCategories(entry.getTags());
|
||||
|
||||
items.add(item);
|
||||
}
|
||||
|
@ -2490,6 +2584,17 @@ public class Mobibot extends PircBot
|
|||
_backlogsURL = backlogsURL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the del.icio.us authentication.
|
||||
*
|
||||
* @param username The del.icio.us username.
|
||||
* @param password The del.icio.us password.
|
||||
*/
|
||||
private void setDeliciousAuth(String username, String password)
|
||||
{
|
||||
_delicious = new DeliciousPoster(username, password, _ircServer);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the feed URL.
|
||||
*
|
||||
|
@ -2528,6 +2633,16 @@ public class Mobibot extends PircBot
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the default tags/categories.
|
||||
*
|
||||
* @param tags The tags.
|
||||
*/
|
||||
private void setTags(String tags)
|
||||
{
|
||||
_defaultTags = tags;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set today's date.
|
||||
*
|
||||
|
@ -2648,7 +2763,7 @@ public class Mobibot extends PircBot
|
|||
*/
|
||||
private void usersResponse(String sender, boolean isPrivate)
|
||||
{
|
||||
final User[] users = this.getUsers(getChannel());
|
||||
final User[] users = getUsers(getChannel());
|
||||
final String[] nicks = new String[users.length];
|
||||
|
||||
for (int i = 0; i < users.length; i++)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Created by JReleaseInfo AntTask from Open Source Competence Group */
|
||||
/* Creation date Sun Mar 06 13:05:37 PST 2005 */
|
||||
/* Creation date Thu May 05 12:13:41 PDT 2005 */
|
||||
package net.thauvin.erik.mobibot;
|
||||
|
||||
import java.util.Date;
|
||||
|
@ -12,21 +12,21 @@ import java.util.Date;
|
|||
public class ReleaseInfo {
|
||||
|
||||
|
||||
/** buildDate (set during build process to 1110143137218L). */
|
||||
private static Date buildDate = new Date(1110143137218L);
|
||||
/** buildDate (set during build process to 1115320421004L). */
|
||||
private static Date buildDate = new Date(1115320421004L);
|
||||
|
||||
/**
|
||||
* Get buildDate (set during build process to Sun Mar 06 13:05:37 PST 2005).
|
||||
* Get buildDate (set during build process to Thu May 05 12:13:41 PDT 2005).
|
||||
* @return Date buildDate
|
||||
*/
|
||||
public static final Date getBuildDate() { return buildDate; }
|
||||
|
||||
|
||||
/**
|
||||
* Get buildNumber (set during build process to 3).
|
||||
* Get buildNumber (set during build process to 26).
|
||||
* @return int buildNumber
|
||||
*/
|
||||
public static final int getBuildNumber() { return 3; }
|
||||
public static final int getBuildNumber() { return 26; }
|
||||
|
||||
|
||||
/** version (set during build process to "0.3"). */
|
||||
|
|
|
@ -45,11 +45,10 @@ import java.io.IOException;
|
|||
/**
|
||||
* Retrieves a stock quote from Yahoo!.
|
||||
*
|
||||
* @author Erik C. Thauvin
|
||||
* @author Erik C. Thauvin
|
||||
* @version $Revision$, $Date$
|
||||
*
|
||||
* @created Feb 7, 2004
|
||||
* @since 1.0
|
||||
* @since 1.0
|
||||
*/
|
||||
public class StockQuote implements Runnable
|
||||
{
|
||||
|
@ -76,7 +75,7 @@ public class StockQuote implements Runnable
|
|||
/**
|
||||
* Creates a new StockQuote object.
|
||||
*
|
||||
* @param bot The bot.
|
||||
* @param bot The bot.
|
||||
* @param sender The nick of the person who sent the message.
|
||||
* @param symbol The stock symbol.
|
||||
*/
|
||||
|
@ -95,8 +94,8 @@ public class StockQuote implements Runnable
|
|||
try
|
||||
{
|
||||
final HttpClient client = new HttpClient();
|
||||
client.setConnectionTimeout(Mobibot.CONNECT_TIMEOUT);
|
||||
client.setTimeout(Mobibot.CONNECT_TIMEOUT);
|
||||
client.getHttpConnectionManager().getParams().setConnectionTimeout(Mobibot.CONNECT_TIMEOUT);
|
||||
client.getHttpConnectionManager().getParams().setSoTimeout(Mobibot.CONNECT_TIMEOUT);
|
||||
|
||||
final GetMethod getMethod = new GetMethod(YAHOO_URL + _symbol.toUpperCase());
|
||||
client.executeMethod(getMethod);
|
||||
|
@ -108,8 +107,7 @@ public class StockQuote implements Runnable
|
|||
if ((quote.length > 3) && (!"\"N/A\"".equalsIgnoreCase(quote[3])))
|
||||
{
|
||||
_bot.send(_bot.getChannel(),
|
||||
"Symbol: " + quote[0].replaceAll("\"", "") + " [" + quote[1].replaceAll("\"", "") +
|
||||
']');
|
||||
"Symbol: " + quote[0].replaceAll("\"", "") + " [" + quote[1].replaceAll("\"", "") + ']');
|
||||
|
||||
if (quote.length > 5)
|
||||
{
|
||||
|
@ -123,7 +121,7 @@ public class StockQuote implements Runnable
|
|||
if (quote.length > 4)
|
||||
{
|
||||
_bot.send(_sender,
|
||||
"Time: " + quote[3].replaceAll("\"", "") + ' ' + quote[4].replaceAll("\"", ""));
|
||||
"Time: " + quote[3].replaceAll("\"", "") + ' ' + quote[4].replaceAll("\"", ""));
|
||||
}
|
||||
|
||||
if (quote.length > 6)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue