@Override
  public void run() {
    while (!Thread.interrupted()) {
        try {
          int lag;
          if (Data.wiki != null && Data.isLoggedIn()) {
            debug("Got wiki, logged in");
            lag = Data.wiki.getCurrentDatabaseLag();

            if (lag <= 0) {
              lServerStatus.setIcon(new ImageIcon(getClass().getResource("/cuploader/resources/status.png")));
              lServerStatus.setText(Data.text("server-status") + ": " + Data.text("server-ok"));
            } else if (lag > 0 && lag <= 5) {
              lServerStatus.setIcon(new ImageIcon(getClass().getResource("/cuploader/resources/status-away.png")));
              lServerStatus.setText(Data.text("server-status") + ": " + Data.text("server-lag") + " " + lag + " s");
            } else {
              lServerStatus.setIcon(new ImageIcon(getClass().getResource("/cuploader/resources/status-busy.png")));
              lServerStatus.setText(Data.text("server-status") + ": " + Data.text("server-lag") + " " + lag + " s");
            }
          }
        } catch (IOException ex) {
          statusOffline();
        }
      try {
        Thread.sleep(30000);
      } catch (InterruptedException ex) {
        statusIdle();
        return;
      }
      statusIdle();
    }
  }