Example #1
0
  public void saveChannelSettings(ChannelInfo channel) {
    Connection con = null;
    try {
      con = pool.getConnection(timeout);

      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

      PreparedStatement s =
          con.prepareStatement(
              "UPDATE `channels` SET reactive_chatter_level = ?, chatter_name_multiplier = ?, random_chatter_level = ?, tweet_bucket_max = ?, "
                  + "tweet_bucket_charge_rate = ?, auto_muzzle_wars = ?, velociraptor_sightings = ?, active_velociraptors = ?, dead_velociraptors = ?, killed_velociraptors = ?, last_sighting_date = ? WHERE channel = ?;");
      s.setInt(1, channel.reactiveChatterLevel);
      s.setInt(2, channel.chatterNameMultiplier);
      s.setInt(3, channel.randomChatterLevel);
      s.setFloat(4, channel.tweetBucketMax);
      s.setFloat(5, channel.tweetBucketChargeRate);
      s.setBoolean(6, channel.auto_muzzle_wars);
      s.setInt(7, channel.velociraptorSightings);
      s.setInt(8, channel.activeVelociraptors);
      s.setInt(9, channel.deadVelociraptors);
      s.setInt(10, channel.killedVelociraptors);
      if (channel.lastSighting != null) {
        s.setString(11, sdf.format(channel.lastSighting));
      } else {
        s.setString(11, "1999-01-01");
      }
      s.setString(12, channel.channel);
      s.executeUpdate();

      s = con.prepareStatement("DELETE FROM `channel_chatter_settings` WHERE `channel` = ?;");
      s.setString(1, channel.channel);
      s.executeUpdate();

      s = con.prepareStatement("DELETE FROM `channel_command_settings` WHERE `channel` = ?;");
      s.setString(1, channel.channel);
      s.executeUpdate();

      s = con.prepareStatement("DELETE FROM `channel_twitter_feeds` WHERE `channel` = ?;");
      s.setString(1, channel.channel);
      s.executeUpdate();

      s =
          con.prepareStatement(
              "INSERT INTO `channel_chatter_settings` SET `channel` = ?, `setting` = ?, `value` = ?;");
      s.setString(1, channel.channel);

      for (Map.Entry<String, Boolean> setting : channel.chatter_enabled.entrySet()) {
        s.setString(2, setting.getKey());
        s.setBoolean(3, setting.getValue());
        s.executeUpdate();
      }

      s =
          con.prepareStatement(
              "INSERT INTO `channel_command_settings` SET `channel` = ?, `setting` = ?, `value` = ?;");
      s.setString(1, channel.channel);

      for (Map.Entry<String, Boolean> setting : channel.commands_enabled.entrySet()) {
        s.setString(2, setting.getKey());
        s.setBoolean(3, setting.getValue());
        s.executeUpdate();
      }

      s =
          con.prepareStatement(
              "INSERT INTO `channel_twitter_feeds` SET `channel` = ?, `account` = ?;");
      s.setString(1, channel.channel);

      for (String account : channel.twitter_accounts) {
        s.setString(2, account);
        s.executeUpdate();
      }

      s.close();
    } catch (SQLException ex) {
      Logger.getLogger(DBAccess.class.getName()).log(Level.SEVERE, null, ex);
    } finally {
      try {
        if (con != null) {
          con.close();
        }
      } catch (SQLException ex) {
        Logger.getLogger(DBAccess.class.getName()).log(Level.SEVERE, null, ex);
      }
    }
  }