function __construct($site_ID)
 {
     // @TODO check port, timeout etc
     $server = untrailingslashit(get_post_meta($site_ID, 'syn_site_url', true));
     if (false === strpos($server, 'xmlrpc.php')) {
         $server = esc_url_raw(trailingslashit($server) . 'xmlrpc.php');
     } else {
         $server = esc_url_raw($server);
     }
     $this->username = get_post_meta($site_ID, 'syn_site_username', true);
     $this->password = push_syndicate_decrypt(get_post_meta($site_ID, 'syn_site_password', true));
     $this->site_ID = $site_ID;
     parent::__construct($server);
     if (true === apply_filters('syn_xmlrpc_push_send_thumbnail', true, $site_ID, $this)) {
         add_action('syn_xmlrpc_push_new_post_success', array($this, 'post_push_send_thumbnail'), 10, 6);
         add_action('syn_xmlrpc_push_edit_post_success', array($this, 'post_push_send_thumbnail'), 10, 6);
         // TODO: on delete post, delete thumbnail
     }
 }
 public function init($site_ID = 0)
 {
     global $settings_manager;
     $this->username = get_post_meta($site_ID, 'syn_site_username', true);
     $this->password = $settings_manager->syndicate_decrypt(get_post_meta($site_ID, 'syn_site_password', true));
     $this->site_ID = $site_ID;
     $server = untrailingslashit(get_post_meta($site_ID, 'syn_site_url', true));
     /**
      * Set up the callbacks for attachments.
      */
     /**
      * Filter whether the XML push client should push thumbnails.
      *
      * Return false to skip sending thumbnails.
      *
      * @param bool     $push_thumbnails Whether to push thumbnails. Default is true.
      * @param int      $site_ID         The id of the site being pushed to.
      * @param XML_Push $this            The push client instance.
      */
     if (true === apply_filters('syn_xmlrpc_push_send_thumbnail', true, $site_ID, $this)) {
         add_action('syn_xmlrpc_push_new_post_success', array($this, 'post_push_send_thumbnail'), 10, 6);
         add_action('syn_xmlrpc_push_edit_post_success', array($this, 'post_push_send_thumbnail'), 10, 6);
         // TODO: on delete post, delete thumbnail
     }
     /**
      * Bail on connection test if we don't have a server URL.
      */
     if ('' === $server) {
         return false;
     }
     if (false === strpos($server, 'xmlrpc.php')) {
         $server = esc_url_raw(trailingslashit($server) . 'xmlrpc.php');
     } else {
         $server = esc_url_raw($server);
     }
     parent::__construct($server);
 }