/
) to indicate a directory.
+ *
+ * @param location The File or URL location.
+ * @param isUrl Set to true if the location is a URL
+ *
+ * @return The location ending with a slash.
+ */
+ private static String ensureDir(String location, boolean isUrl)
+ {
+ if (isUrl)
+ {
+ if (location.charAt(location.length() - 1) == '/')
+ {
+ return location;
+ }
+ else
+ {
+ return location + '/';
+ }
+ }
+ else
+ {
+ if (location.charAt(location.length() - 1) == File.separatorChar)
+ {
+ return location;
+ }
+ else
+ {
+ return location + File.separatorChar;
+ }
+ }
+ }
+
+ /**
+ * Returns the port.
+ *
+ * @param property The port property value.
+ * @param defaultValue The default value.
+ *
+ * @return The port or default value if invalid.
+ */
+ private static int getPort(String property, int defaultValue)
+ {
+ int port;
+
+ try
+ {
+ port = Integer.parseInt(property);
+ }
+ catch (NumberFormatException ignore)
+ {
+ port = defaultValue;
+ }
+
+ return port;
+ }
+
+ /**
+ * Returns the current Internet (beat) Time.
+ *
+ * @return The Internet Time string.
+ */
+ private static String internetTime()
+ {
+ final Calendar gc = Calendar.getInstance();
+
+ final int offset = (gc.get(Calendar.ZONE_OFFSET) / (60 * 60 * 1000));
+ int hh = gc.get(Calendar.HOUR_OF_DAY);
+ final int mm = gc.get(Calendar.MINUTE);
+ final int ss = gc.get(Calendar.SECOND);
+
+ hh -= offset; // GMT
+ hh += 1; // BMT
+
+ long beats = Math.round(Math.floor((double) ((((hh * 3600) + (mm * 60) + ss) * 1000) / 86400)));
+
+ if (beats >= 1000)
+ {
+ beats -= (long) 1000;
+ }
+ else if (beats < 0)
+ {
+ beats += (long) 1000;
+ }
+
+ if (beats < 10)
+ {
+ return ("@00" + String.valueOf(beats));
+ }
+ else if (beats < 100)
+ {
+ return ("@0" + String.valueOf(beats));
+ }
+
+ return ('@' + String.valueOf(beats));
+ }
+
+ /**
+ * Performs a DNS lookup on the specified query.
+ *
+ * @param query The IP address or hostname.
+ *
+ * @return The lookup query result string.
+ *
+ * @throws UnknownHostException If the host is unknown.
+ */
+ private static String lookup(String query)
+ throws UnknownHostException
+ {
+ final StringBuffer buffer = new StringBuffer("");
+
+ final InetAddress[] result = InetAddress.getAllByName(query);
+ String hostInfo;
+
+ for (int i = 0; i < result.length; i++)
+ {
+ if (result[i].getHostAddress().equals(query))
+ {
+ hostInfo = result[i].getHostName();
+
+ if (hostInfo.equals(query))
+ {
+ throw new UnknownHostException();
+ }
+ }
+ else
+ {
+ hostInfo = result[i].getHostAddress();
+ }
+
+ if (buffer.length() > 0)
+ {
+ buffer.append(", ");
+ }
+
+ buffer.append(hostInfo);
+ }
+
+ return buffer.toString();
+ }
+
+ /**
+ * Stores the last 10 public messages and actions.
+ *
+ * @param sender The nick of the person who sent the private message.
+ * @param message The actual message sent.
+ * @param isAction Set to true if the message is an action.
+ */
+ private static void recap(String sender, String message, boolean isAction)
+ {
+ RECAP_ARRAY.add(HHMM_SDF.format(Calendar.getInstance().getTime()) + " -> " + sender + (isAction ? " " : ": ")
+ + message);
+
+ if (RECAP_ARRAY.size() > MAX_RECAP)
+ {
+ RECAP_ARRAY.remove(0);
+ }
+ }
+
+ /**
+ * Sleeps for the specified number of seconds.
+ *
+ * @param secs The number of seconds to sleep for.
+ */
+ private static void sleep(int secs)
+ {
+ try
+ {
+ Thread.sleep((long) (secs * 1000));
+ }
+ catch (InterruptedException ignore)
+ {
+ ; // Do nothing
+ }
+ }
+
+ /**
+ * Returns today's date.
+ *
+ * @return Today's date in {@link #ISO_SDF ISO} format.
+ */
+ private static String today()
+ {
+ return ISO_SDF.format(Calendar.getInstance().getTime());
+ }
+
+ /**
+ * Performs a whois IP query.
+ *
+ * @param query The IP address.
+ *
+ * @return The IP whois data, if any.
+ *
+ * @throws IOException If a connection error occurs.
+ */
+ private static String[] whois(String query)
+ throws IOException
+ {
+ final WhoisClient whois = new WhoisClient();
+ String[] lines;
+
+ try
+ {
+ whois.setDefaultTimeout(CONNECT_TIMEOUT);
+ whois.connect(WHOIS_HOST);
+ whois.setSoTimeout(CONNECT_TIMEOUT);
+ whois.setSoLinger(false, 0);
+
+ lines = whois.query('-' + query).split("\n");
+ }
+ finally
+ {
+ whois.disconnect();
+ }
+
+ return lines;
+ }
+
/**
* Sends an action to the current channel.
*
@@ -972,11 +1328,6 @@ public class Mobibot extends PircBot
send(sender, "To search Google:");
send(sender, DOUBLE_INDENT + bold(getNick() + ": " + GOOGLE_CMD + " /
) to indicate a directory.
- *
- * @param location The File or URL location.
- * @param isUrl Set to true if the location is a URL
- *
- * @return The location ending with a slash.
- */
- private static String ensureDir(String location, boolean isUrl)
- {
- if (isUrl)
- {
- if (location.charAt(location.length() - 1) == '/')
- {
- return location;
- }
- else
- {
- return location + '/';
- }
- }
- else
- {
- if (location.charAt(location.length() - 1) == File.separatorChar)
- {
- return location;
- }
- else
- {
- return location + File.separatorChar;
- }
- }
- }
-
- /**
- * Returns the port.
- *
- * @param property The port property value.
- * @param defaultValue The default value.
- *
- * @return The port or default value if invalid.
- */
- private static int getPort(String property, int defaultValue)
- {
- int port;
-
- try
- {
- port = Integer.parseInt(property);
- }
- catch (NumberFormatException ignore)
- {
- port = defaultValue;
- }
-
- return port;
- }
-
- /**
- * Returns the current Internet (beat) Time.
- *
- * @return The Internet Time string.
- */
- private static String internetTime()
- {
- final Calendar gc = Calendar.getInstance();
-
- final int offset = (gc.get(Calendar.ZONE_OFFSET) / (60 * 60 * 1000));
- int hh = gc.get(Calendar.HOUR_OF_DAY);
- final int mm = gc.get(Calendar.MINUTE);
- final int ss = gc.get(Calendar.SECOND);
-
- hh -= offset; // GMT
- hh += 1; // BMT
-
- long beats = Math.round(Math.floor((double) ((((hh * 3600) + (mm * 60) + ss) * 1000) / 86400)));
-
- if (beats >= 1000)
- {
- beats -= (long) 1000;
- }
- else if (beats < 0)
- {
- beats += (long) 1000;
- }
-
- if (beats < 10)
- {
- return ("@00" + String.valueOf(beats));
- }
- else if (beats < 100)
- {
- return ("@0" + String.valueOf(beats));
- }
-
- return ('@' + String.valueOf(beats));
- }
-
- /**
- * Performs a DNS lookup on the specified query.
- *
- * @param query The IP address or hostname.
- *
- * @return The lookup query result string.
- *
- * @throws UnknownHostException If the host is unknown.
- */
- private static String lookup(String query)
- throws UnknownHostException
- {
- final StringBuffer buffer = new StringBuffer("");
-
- final InetAddress[] result = InetAddress.getAllByName(query);
- String hostInfo;
-
- for (int i = 0; i < result.length; i++)
- {
- if (result[i].getHostAddress().equals(query))
- {
- hostInfo = result[i].getHostName();
-
- if (hostInfo.equals(query))
- {
- throw new UnknownHostException();
- }
- }
- else
- {
- hostInfo = result[i].getHostAddress();
- }
-
- if (buffer.length() > 0)
- {
- buffer.append(", ");
- }
-
- buffer.append(hostInfo);
- }
-
- return buffer.toString();
- }
-
- /**
- * Stores the last 10 public messages and actions.
- *
- * @param sender The nick of the person who sent the private message.
- * @param message The actual message sent.
- * @param isAction Set to true if the message is an action.
- */
- private static void recap(String sender, String message, boolean isAction)
- {
- RECAP_ARRAY.add(HHMM_SDF.format(Calendar.getInstance().getTime()) + " -> " + sender + (isAction ? " " : ": ")
- + message);
-
- if (RECAP_ARRAY.size() > MAX_RECAP)
- {
- RECAP_ARRAY.remove(0);
- }
- }
-
- /**
- * Sleeps for the specified number of seconds.
- *
- * @param secs The number of seconds to sleep for.
- */
- private static void sleep(int secs)
- {
- try
- {
- Thread.sleep((long) (secs * 1000));
- }
- catch (InterruptedException ignore)
- {
- ; // Do nothing
- }
- }
-
- /**
- * Returns today's date.
- *
- * @return Today's date in {@link #ISO_SDF ISO} format.
- */
- private static String today()
- {
- return ISO_SDF.format(Calendar.getInstance().getTime());
- }
-
- /**
- * Performs a whois IP query.
- *
- * @param query The IP address.
- *
- * @return The IP whois data, if any.
- *
- * @throws IOException If a connection error occurs.
- */
- private static String[] whois(String query)
- throws IOException
- {
- final WhoisClient whois = new WhoisClient();
- String[] lines;
-
- try
- {
- whois.setDefaultTimeout(CONNECT_TIMEOUT);
- whois.connect(WHOIS_HOST);
- whois.setSoTimeout(CONNECT_TIMEOUT);
- whois.setSoLinger(false, 0);
-
- lines = whois.query('-' + query).split("\n");
- }
- finally
- {
- whois.disconnect();
- }
-
- return lines;
- }
-
/**
* Responds the title and links from the RSS feed.
*
@@ -2475,6 +2447,16 @@ public class Mobibot extends PircBot
return _today;
}
+ /**
+ * Set today's date.
+ *
+ * @param today Today's date.
+ */
+ private synchronized void setToday(String today)
+ {
+ _today = today;
+ }
+
/**
* Responds with the Google search results for the specified query.
*
@@ -2495,41 +2477,6 @@ public class Mobibot extends PircBot
}
- /**
- * Returns true
if identi.ca posting is enabled.
- *
- * @return true
or false
- */
- private boolean isIdenticaEnabled()
- {
- return isValidString(_identicaPwd) && isValidString(_identicaUser);
- }
-
- /**
- * Posts a message to identi.ca.
- *
- * @param sender The sender's nick.
- * @param message The message.
- */
- private void identicaResponse(String sender, String message)
- {
- if (isIdenticaEnabled())
- {
- if (message.length() > 0)
- {
- new Thread(new Identica(this, sender, _identicaUser, _identicaPwd, message)).start();
- }
- else
- {
- helpResponse(sender, IDENTICA_CMD);
- }
- }
- else
- {
- send(sender, "The identi.ca posting facility is disabled.");
- }
- }
-
/**
* Returns true
if twitter posting is enabled.
*
@@ -2597,7 +2544,8 @@ public class Mobibot extends PircBot
send(sender,
"Uptime: " + days + " day(s) " + hours + " hour(s) " + minutes + " minute(s) [Entries: " + _entries.size()
+ ']',
- isPrivate);
+ isPrivate
+ );
}
/**
@@ -2901,7 +2849,8 @@ public class Mobibot extends PircBot
buff = new StringBuffer(
"Posted by " + entry.getNick() + " on " + entry.getChannel() + "");
+ .getChannel() + "\">" + entry.getChannel() + ""
+ );
if (entry.getCommentsCount() > 0)
{
@@ -3012,7 +2961,10 @@ public class Mobibot extends PircBot
{
try
{
- fw.close();
+ if (fw != null)
+ {
+ fw.close();
+ }
}
catch (Exception ignore)
{
@@ -3057,18 +3009,6 @@ public class Mobibot extends PircBot
_feedURL = feedURL;
}
- /**
- * Sets the identi.ca user and password...
- *
- * @param user The identi.ca user.
- * @param key The identi.ca password.
- */
- private void setIdenticaAuth(String user, String key)
- {
- _identicaPwd = key;
- _identicaUser = user;
- }
-
/**
* Sets the Twitter consumerSecret and password..
*
@@ -3143,16 +3083,6 @@ public class Mobibot extends PircBot
_defaultTags = tags;
}
- /**
- * Set today's date.
- *
- * @param today Today's date.
- */
- private synchronized void setToday(String today)
- {
- _today = today;
- }
-
/**
* Sets the weblog URL.
*
@@ -3215,7 +3145,7 @@ public class Mobibot extends PircBot
if (isPrivate)
{
- send(sender, response, isPrivate);
+ send(sender, response, true);
}
else
{
@@ -3252,6 +3182,11 @@ public class Mobibot extends PircBot
for (int i = 0; i < nicks.length; i++)
{
+ if (isOp(nicks[i]))
+ {
+ buff.append('@');
+ }
+
buff.append(nicks[i]).append(' ');
}
@@ -3323,14 +3258,14 @@ public class Mobibot extends PircBot
{
if ((entry.getLink().toLowerCase().indexOf(lcArgs) != -1) || (
entry.getTitle().toLowerCase().indexOf(lcArgs) != -1) || (
- entry.getNick().toLowerCase().indexOf(lcArgs) != -1))
+ entry.getNick().toLowerCase().indexOf(lcArgs) != -1))
{
if (sent > MAX_ENTRIES)
{
send(sender,
"To view more, try: " + bold(
- getNick() + ": " + VIEW_CMD + ' ' + (i + 1) + ' ' + lcArgs),
- isPrivate);
+ getNick() + ": " + VIEW_CMD + ' ' + (i + 1) + ' ' + lcArgs), isPrivate
+ );
break;
}
diff --git a/src/net/thauvin/erik/mobibot/ReleaseInfo.java b/src/main/java/net/thauvin/erik/mobibot/ReleaseInfo.java
similarity index 77%
rename from src/net/thauvin/erik/mobibot/ReleaseInfo.java
rename to src/main/java/net/thauvin/erik/mobibot/ReleaseInfo.java
index b0bfbc7..76505fd 100644
--- a/src/net/thauvin/erik/mobibot/ReleaseInfo.java
+++ b/src/main/java/net/thauvin/erik/mobibot/ReleaseInfo.java
@@ -1,5 +1,5 @@
/* Created by JReleaseInfo AntTask from Open Source Competence Group */
-/* Creation date Wed Jun 12 14:18:56 PDT 2013 */
+/* Creation date Sat Apr 19 21:14:33 PDT 2014 */
package net.thauvin.erik.mobibot;
import java.util.Date;
@@ -20,23 +20,16 @@ public class ReleaseInfo {
}
- /** buildDate (set during build process to 1371071936682L). */
- private static final Date buildDate = new Date(1371071936682L);
+ /** buildDate (set during build process to 1397967273141L). */
+ private static final Date buildDate = new Date(1397967273141L);
/**
- * Get buildDate (set during build process to Wed Jun 12 14:18:56 PDT 2013).
+ * Get buildDate (set during build process to Sat Apr 19 21:14:33 PDT 2014).
* @return Date buildDate
*/
public static Date getBuildDate() { return buildDate; }
- /**
- * Get buildNumber (set during build process to 10).
- * @return int buildNumber
- */
- public static int getBuildNumber() { return 10; }
-
-
/** project (set during build process to "mobibot"). */
private static final String project = "mobibot";
@@ -56,4 +49,11 @@ public class ReleaseInfo {
*/
public static String getVersion() { return version; }
+
+ /**
+ * Get buildNumber (set during build process to 40).
+ * @return int buildNumber
+ */
+ public static int getBuildNumber() { return 40; }
+
}
diff --git a/src/net/thauvin/erik/mobibot/StockQuote.java b/src/main/java/net/thauvin/erik/mobibot/StockQuote.java
similarity index 100%
rename from src/net/thauvin/erik/mobibot/StockQuote.java
rename to src/main/java/net/thauvin/erik/mobibot/StockQuote.java
diff --git a/src/net/thauvin/erik/mobibot/SwingWorker.java b/src/main/java/net/thauvin/erik/mobibot/SwingWorker.java
similarity index 99%
rename from src/net/thauvin/erik/mobibot/SwingWorker.java
rename to src/main/java/net/thauvin/erik/mobibot/SwingWorker.java
index 39bf290..6c49325 100644
--- a/src/net/thauvin/erik/mobibot/SwingWorker.java
+++ b/src/main/java/net/thauvin/erik/mobibot/SwingWorker.java
@@ -13,6 +13,8 @@ import javax.swing.SwingUtilities;
* Note that the API changed slightly in the 3rd version:
* You must now invoke start() on the SwingWorker after
* creating it.
+ *
+ * @noinspection ALL
*/
public abstract class SwingWorker {
private Object value; // see getValue(), setValue()
diff --git a/src/net/thauvin/erik/mobibot/Twitter.java b/src/main/java/net/thauvin/erik/mobibot/Twitter.java
similarity index 96%
rename from src/net/thauvin/erik/mobibot/Twitter.java
rename to src/main/java/net/thauvin/erik/mobibot/Twitter.java
index 29dcfdd..74123fb 100644
--- a/src/net/thauvin/erik/mobibot/Twitter.java
+++ b/src/main/java/net/thauvin/erik/mobibot/Twitter.java
@@ -122,12 +122,8 @@ public class Twitter implements Runnable
_bot.send(_sender,
"You message was posted to http://twitter.com/" + twitter.getScreenName() + "/statuses/" + status
- .getId());
-
- twitter.shutdown();
-
- // @TODO Does it help?
- twitter4j.internal.json.DataObjectFactoryUtil.clearThreadLocalMap();
+ .getId()
+ );
}
catch (Exception e)
{
diff --git a/src/net/thauvin/erik/mobibot/TwitterOAuth.java b/src/main/java/net/thauvin/erik/mobibot/TwitterOAuth.java
similarity index 98%
rename from src/net/thauvin/erik/mobibot/TwitterOAuth.java
rename to src/main/java/net/thauvin/erik/mobibot/TwitterOAuth.java
index ba9267f..06b8589 100644
--- a/src/net/thauvin/erik/mobibot/TwitterOAuth.java
+++ b/src/main/java/net/thauvin/erik/mobibot/TwitterOAuth.java
@@ -56,7 +56,8 @@ public class TwitterOAuth
System.out.println(
"Please add the following to the bot's property file:" + "\n\n" + "twitter-consumerKey="
+ args[0] + '\n' + "twitter-consumerSecret=" + args[1] + '\n' + "twitter-token="
- + accessToken.getToken() + '\n' + "twitter-tokenSecret=" + accessToken.getTokenSecret());
+ + accessToken.getToken() + '\n' + "twitter-tokenSecret=" + accessToken.getTokenSecret()
+ );
}
catch (TwitterException te)
{
diff --git a/src/net/thauvin/erik/mobibot/Weather.java b/src/main/java/net/thauvin/erik/mobibot/Weather.java
similarity index 96%
rename from src/net/thauvin/erik/mobibot/Weather.java
rename to src/main/java/net/thauvin/erik/mobibot/Weather.java
index 78f25d8..6a1325c 100644
--- a/src/net/thauvin/erik/mobibot/Weather.java
+++ b/src/main/java/net/thauvin/erik/mobibot/Weather.java
@@ -116,9 +116,10 @@ public class Weather implements Runnable
_bot.send(_sender, "Station ID: " + metar.getStationID(), _isPrivate);
_bot.send(_sender,
- "At: " + metar.getDateString() + " UTC ("
- + (((new Date()).getTime() - metar.getDate().getTime()) / 1000L / 60L) + " minutes ago)",
- _isPrivate);
+ "At: " + metar.getDateString() + " UTC (" + (
+ ((new Date()).getTime() - metar.getDate().getTime()) / 1000L / 60L) + " minutes ago)",
+ _isPrivate
+ );
result = metar.getWindSpeedInMPH();
diff --git a/src/net/thauvin/erik/mobibot/Identica.java b/src/net/thauvin/erik/mobibot/Identica.java
deleted file mode 100644
index a24e065..0000000
--- a/src/net/thauvin/erik/mobibot/Identica.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * @(#)Identica.java
- *
- * Copyright (C) 2010 Erik C. Thauvin
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * Neither the name of the author nor the names of its contributors may be
- * used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $Id$
- *
- */
-package net.thauvin.erik.mobibot;
-
-import org.json.XML;
-import twitter4j.internal.http.BASE64Encoder;
-import org.json.JSONObject;
-
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.io.OutputStreamWriter;
-import java.net.URL;
-import java.net.URLConnection;
-import java.net.URLEncoder;
-
-/**
- * The Identica
class.
- *
- * @author Erik C. Thauvin
- * @version $Revision$, $Date$
- * @created Sep 14, 2010
- * @since 1.0
- */
-public class Identica implements Runnable
-{
- /**
- * The bot.
- */
- private final Mobibot _bot;
-
- /**
- * The identi.ca user.
- */
- private final String _user;
-
- /**
- * The identi.ca password.
- */
- private final String _pwd;
- /**
- * The identi.ca message.
- */
- private final String _message;
-
- /**
- * The nick of the person who sent the message.
- */
- private final String _sender;
-
- /**
- * Creates a new identi.ca object.
- *
- * @param bot The bot.
- * @param sender The nick of the person who sent the message.
- * @param user The identi.ca user.
- * @param pwd The identi.ca passwword.
- * @param message The identi.ca message.
- */
- public Identica(Mobibot bot, String sender, String user, String pwd, String message)
- {
- _bot = bot;
- _sender = sender;
- _user = user;
- _pwd = pwd;
- _message = message;
- }
-
- public final void run()
- {
- try
- {
- final String auth = _user + ':' + _pwd;
-
- final URL url = new URL("http://identi.ca/api/statuses/update.xml");
- final URLConnection conn = url.openConnection();
- conn.setRequestProperty("Authorization", "Basic " + BASE64Encoder.encode(auth.getBytes()));
- conn.setDoOutput(true);
-
- final OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream());
-
- writer.write("status=" + URLEncoder.encode(_message + " (" + _sender + ')', "UTF-8"));
- writer.flush();
-
- final StringBuffer sb = new StringBuffer();
- final BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
-
- String line;
- while ((line = reader.readLine()) != null)
- {
- sb.append(line);
- }
-
- final JSONObject response = XML.toJSONObject(sb.toString());
- final int id = response.getJSONObject("status").getInt("id");
-
- _bot.send(_sender, "You message was posted to http://identi.ca/notice/" + id);
-
- writer.close();
- reader.close();
- }
- catch (Exception e)
- {
- _bot.getLogger().warn("Unable to post to identi.ca: " + _message, e);
- _bot.send(_sender, "An error has occurred: " + e.getMessage());
- }
- }
-}
\ No newline at end of file
diff --git a/website/index.html b/website/index.html
index dec9789..6c485cd 100644
--- a/website/index.html
+++ b/website/index.html
@@ -14,16 +14,16 @@
mobibot is the #mobitopia IRC channel bot. It is built on Paul Mutton's PircBot Java-based Framework.
mobibot is making extensive use of various open source libraries, including:
mobibot was written by Erik C. Thauvin as a replacement for the channel's original ChumpBot.
Some of the internal features include RSS feed backlogs, rolling logs, debugging toggle and much more.