ng_attempts; $rval = $this->contact_service( 'ping', array( 'args' => $vaultpress_pings ) ); if ( $rval || $ping_attempts >= 3 ) break; if ( !$rval ) usleep(500000); } while ( true ); if ( !$rval ) { if ( $this->get_option( 'connection_error_code' ) !== -8 ) { // Do not save pings when the subscription is inactive. $__vp_recursive_ping_lock = true; $this->ai_ping_insert( serialize( $vaultpress_pings ) ); } } $this->reset_pings(); if ( $close_wpdb ) { $wpdb->__destruct(); unset( $wpdb ); } return $rval; } function resolve_content_dir() { // Take the easy way out if ( defined( 'WP_CONTENT_DIR' ) ) { if ( substr( WP_CONTENT_DIR, -1 ) != DIRECTORY_SEPARATOR ) return WP_CONTENT_DIR . DIRECTORY_SEPARATOR; return WP_CONTENT_DIR; } // Best guess if ( defined( 'ABSPATH' ) ) { if ( substr( ABSPATH, -1 ) != DIRECTORY_SEPARATOR ) return ABSPATH . DIRECTORY_SEPARATOR . 'wp-content' . DIRECTORY_SEPARATOR; return ABSPATH . 'wp-content' . DIRECTORY_SEPARATOR; } // Run with a solid assumption: WP_CONTENT_DIR/vaultpress/vaultpress.php return dirname( __DIR__ ) . DIRECTORY_SEPARATOR; } function resolve_upload_path() { $upload_path = false; $upload_dir = wp_upload_dir(); if ( isset( $upload_dir['basedir'] ) ) $upload_path = $upload_dir['basedir']; // Nothing recorded? use a best guess! if ( !$upload_path || $upload_path == realpath( ABSPATH ) ) return $this->resolve_content_dir() . 'uploads' . DIRECTORY_SEPARATOR; if ( substr( $upload_path, -1 ) != DIRECTORY_SEPARATOR ) $upload_path .= DIRECTORY_SEPARATOR; return $upload_path; } function load_first( $value ) { $value = array_unique( $value ); // just in case there are duplicates return array_merge( preg_grep( '/vaultpress\.php$/', $value ), preg_grep( '/vaultpress\.php$/', $value, PREG_GREP_INVERT ) ); } function is_multisite() { if ( function_exists( 'is_multisite' ) ) return is_multisite(); return false; } function is_main_site() { if ( !function_exists( 'is_main_site' ) || !$this->is_multisite() ) return true; return is_main_site(); } function is_registered() { $key = $this->get_option( 'key' ); $secret = $this->get_option( 'secret' ); return !empty( $key ) && !empty( $secret ); } function clear_connection() { $this->delete_option( 'connection' ); $this->delete_option( 'connection_error_code' ); $this->delete_option( 'connection_error_message' ); $this->delete_option( 'connection_test' ); } function site_url() { $site_url = ''; // compatibility for WordPress MU Domain Mapping plugin if ( defined( 'DOMAIN_MAPPING' ) && DOMAIN_MAPPING && ! function_exists( 'domain_mapping_siteurl' ) ) { if ( !function_exists( 'is_plugin_active' ) ) require_once ABSPATH . '/wp-admin/includes/plugin.php'; $plugin = 'wordpress-mu-domain-mapping/domain_mapping.php'; if ( is_plugin_active( $plugin ) ) include_once( WP_PLUGIN_DIR . '/' . $plugin ); } if ( function_exists( 'domain_mapping_siteurl' ) ) $site_url = domain_mapping_siteurl( false ); if ( empty( $site_url ) ) $site_url = site_url(); return $site_url; } /** * Sync the VaultPress options to WordPress.com if the Jetpack plugin is active. */ function sync_jetpack_options() { if ( class_exists( 'Jetpack_Sync' ) && method_exists( 'Jetpack_Sync', 'sync_options' ) && defined( 'JETPACK__VERSION' ) && version_compare( JETPACK__VERSION, '4.1', '<' ) ) { Jetpack_Sync::sync_options( __FILE__, $this->auto_register_option, $this->option_name ); } } /** * Add the VaultPress options to the Jetpack options management whitelist. * Allows Jetpack to register VaultPress options automatically. * * @param array $options The list of whitelisted option names. * * @return array The updated whitelist */ function add_to_jetpack_options_whitelist( $options ) { $options[] = $this->option_name; $options[] = $this->auto_register_option; return $options; } /** * When the VaultPress auto-register option is updated, run the registration call. * * This should only be run when the option is updated from the Jetpack/WP.com * API call, and only if the new key is different than the old key. * * @param mixed $old_value The old option value, or the option name (if add_option). * @param mixed $value The new option value. */ function updated_auto_register_option( $old_value, $value ) { // Not an API call or CLI call if ( ! class_exists( 'WPCOM_JSON_API_Update_Option_Endpoint' ) && ! ( defined( 'WP_CLI' ) && WP_CLI ) ) { return; } remove_action( "update_option_{$this->auto_register_option}", array( $this, 'updated_auto_register_option' ) ); $defaults = array( 'key' => false, 'action' => 'register', // or `response` 'status' => 'working', 'error' => false, ); // `wp_parse_args` uses arrays, might as well be explicit about it. $registration = (array) json_decode( $value ); $registration = wp_parse_args( $registration, $defaults ); // If we have a working connection, don't update the key. if ( $this->check_connection( true ) ) { $registration['action'] = 'response'; $registration['error'] = 'VaultPress is already registered on this site.'; update_option( $this->auto_register_option, json_encode( $registration ) ); return; } if ( ! $registration['key'] ) { return; } $registration['action'] = 'response'; $response = $this->register( $registration['key'] ); if ( is_wp_error( $response ) ) { $registration['status'] = 'broken'; $registration['error'] = $response->get_error_message(); } else if ( $this->get_option( 'connection_error_code' ) ) { $registration['status'] = 'broken'; $registration['error'] = $this->get_option( 'connection_error_message' ); } else { $registration['error'] = false; } update_option( $this->auto_register_option, json_encode( $registration ) ); } function add_global_actions_and_filters() { add_action( 'init', array( $this, 'sync_jetpack_options' ), 0, 99 ); add_filter( 'jetpack_options_whitelist', array( $this, 'add_to_jetpack_options_whitelist' ) ); add_action( "update_option_{$this->auto_register_option}", array( $this, 'updated_auto_register_option' ), 10, 2 ); add_action( "add_option_{$this->auto_register_option}", array( $this, 'updated_auto_register_option' ), 10, 2 ); add_action( 'admin_enqueue_scripts', array( $this, 'styles' ) ); } function add_admin_actions_and_filters() { add_action( 'admin_init', array( $this, 'admin_init' ) ); add_action( 'admin_menu', array( $this, 'admin_menu' ), 5 ); # Priority 5, so it's called before Jetpack's admin_menu. add_action( 'admin_head', array( $this, 'admin_head' ) ); } function add_listener_actions_and_filters() { add_action( 'admin_bar_menu', array( $this, 'toolbar' ), 999 ); // Comments add_action( 'delete_comment', array( $this, 'comment_action_handler' ) ); add_action( 'wp_set_comment_status', array( $this, 'comment_action_handler' ) ); add_action( 'trashed_comment', array( $this, 'comment_action_handler' ) ); add_action( 'untrashed_comment', array( $this, 'comment_action_handler' ) ); add_action( 'wp_insert_comment', array( $this, 'comment_action_handler' ) ); add_action( 'comment_post', array( $this, 'comment_action_handler' ) ); add_action( 'edit_comment', array( $this, 'comment_action_handler' ) ); // Commentmeta add_action( 'added_comment_meta', array( $this, 'commentmeta_insert_handler' ), 10, 2 ); add_action( 'updated_comment_meta', array( $this, 'commentmeta_modification_handler' ), 10, 4 ); add_action( 'deleted_comment_meta', array( $this, 'commentmeta_modification_handler' ), 10, 4 ); // Users if ( $this->is_main_site() ) { add_action( 'user_register', array( $this, 'userid_action_handler' ) ); add_action( 'password_reset', array( $this, 'userid_action_handler' ) ); add_action( 'profile_update', array( $this, 'userid_action_handler' ) ); add_action( 'user_register', array( $this, 'userid_action_handler' ) ); add_action( 'deleted_user', array( $this, 'userid_action_handler' ) ); } // Usermeta if ( $this->is_main_site() ) { // Keeping these action hooks for backward compatibility add_action( 'added_usermeta', array( $this, 'usermeta_action_handler' ), 10, 4 ); add_action( 'update_usermeta', array( $this, 'usermeta_action_handler' ), 10, 4 ); add_action( 'delete_usermeta', array( $this, 'usermeta_action_handler' ), 10, 4 ); add_action( 'added_user_meta', array( $this, 'usermeta_action_handler' ), 10, 4 ); add_action( 'update_user_meta', array( $this, 'usermeta_action_handler' ), 10, 4 ); add_action( 'delete_user_meta', array( $this, 'usermeta_action_handler' ), 10, 4 ); } // Posts add_action( 'delete_post', array( $this, 'post_action_handler' ) ); add_action( 'trash_post', array( $this, 'post_action_handler' ) ); add_action( 'untrash_post', array( $this, 'post_action_handler' ) ); add_action( 'edit_post', array( $this, 'post_action_handler' ) ); add_action( 'save_post', array( $this, 'post_action_handler' ) ); add_action( 'wp_insert_post', array( $this, 'post_action_handler' ) ); add_action( 'edit_attachment', array( $this, 'post_action_handler' ) ); add_action( 'add_attachment', array( $this, 'post_action_handler' ) ); add_action( 'delete_attachment', array( $this, 'post_action_handler' ) ); add_action( 'private_to_publish', array( $this, 'post_action_handler' ) ); add_action( 'wp_restore_post_revision', array( $this, 'post_action_handler' ) ); // Postmeta add_action( 'added_post_meta', array( $this, 'postmeta_insert_handler' ), 10, 4 ); add_action( 'update_post_meta', array( $this, 'postmeta_modification_handler' ), 10, 4 ); add_action( 'updated_post_meta', array( $this, 'postmeta_modification_handler' ), 10, 4 ); add_action( 'delete_post_meta', array( $this, 'postmeta_modification_handler' ), 10, 4 ); add_action( 'deleted_post_meta', array( $this, 'postmeta_modification_handler' ), 10, 4 ); add_action( 'added_postmeta', array( $this, 'postmeta_action_handler' ), 10, 3 ); add_action( 'update_postmeta', array( $this, 'postmeta_action_handler' ), 10, 3 ); add_action( 'delete_postmeta', array( $this, 'postmeta_action_handler' ), 10, 3 ); // Links add_action( 'edit_link', array( $this, 'link_action_handler' ) ); add_action( 'add_link', array( $this, 'link_action_handler' ) ); add_action( 'delete_link', array( $this, 'link_action_handler' ) ); // Taxonomy add_action( 'created_term', array( $this, 'term_handler' ), 2 ); add_action( 'edited_terms', array( $this, 'term_handler' ), 2 ); add_action( 'delete_term', array( $this, 'term_handler' ), 2 ); add_action( 'edit_term_taxonomy', array( $this, 'term_taxonomy_handler' ) ); add_action( 'delete_term_taxonomy', array( $this, 'term_taxonomy_handler' ) ); add_action( 'edit_term_taxonomies', array( $this, 'term_taxonomies_handler' ) ); add_action( 'add_term_relationship', array( $this, 'term_relationship_handler' ), 10, 2 ); add_action( 'delete_term_relationships', array( $this, 'term_relationships_handler' ), 10, 2 ); add_action( 'set_object_terms', array( $this, 'set_object_terms_handler' ), 10, 3 ); // Files if ( $this->is_main_site() ) { add_action( 'switch_theme', array( $this, 'theme_action_handler' ) ); add_action( 'activate_plugin', array( $this, 'plugin_action_handler' ) ); add_action( 'deactivate_plugin', array( $this, 'plugin_action_handler' ) ); } add_action( 'wp_handle_upload', array( $this, 'upload_handler' ) ); // Options add_action( 'deleted_option', array( $this, 'option_handler' ), 1 ); add_action( 'updated_option', array( $this, 'option_handler' ), 1 ); add_action( 'added_option', array( $this, 'option_handler' ), 1 ); $this->add_woocommerce_actions(); $this->add_vp_required_filters(); } function add_woocommerce_actions() { add_action( 'woocommerce_tax_rate_deleted', array( $this, 'woocommerce_tax_rate_handler' ), 10, 1 ); add_action( 'woocommerce_tax_rate_updated', array( $this, 'woocommerce_tax_rate_handler' ), 10, 1 ); add_action( 'woocommerce_tax_rate_added', array( $this, 'woocommerce_tax_rate_handler' ), 10, 1 ); add_action( 'woocommerce_new_order_item', array( $this, 'woocommerce_order_item_handler' ), 10, 1 ); add_action( 'woocommerce_update_order_item', array( $this, 'woocommerce_order_item_handler' ), 10, 1 ); add_action( 'woocommerce_delete_order_item', array( $this, 'woocommerce_order_item_handler' ), 10, 1 ); add_action( 'added_order_item_meta', array( $this, 'woocommerce_order_item_meta_handler' ), 10, 1 ); add_action( 'updated_order_item_meta', array( $this, 'woocommerce_order_item_meta_handler' ), 10, 1 ); add_action( 'deleted_order_item_meta', array( $this, 'woocommerce_order_item_meta_handler' ), 10, 1 ); add_action( 'woocommerce_attribute_added', array( $this, 'woocommerce_attribute_handler' ), 10, 1 ); add_action( 'woocommerce_attribute_updated', array( $this, 'woocommerce_attribute_handler' ), 10, 1 ); add_action( 'woocommerce_attribute_deleted', array( $this, 'woocommerce_attribute_handler' ), 10, 1 ); } function add_vp_required_filters() { // Log ins if ( $this->get_option( 'login_lockdown' ) ) { add_action( 'login_form', array( $this, 'add_js_token' ) ); add_filter( 'authenticate', array( $this, 'authenticate' ), 999 ); } // Report back to VaultPress add_action( 'shutdown', array( $this, 'do_pings' ) ); // VaultPress likes being first in line add_filter( 'pre_update_option_active_plugins', array( $this, 'load_first' ) ); } function get_jetpack_email() { if ( ! class_exists( 'Jetpack' ) ) { return false; } // For version of Jetpack prior to 7.7. if ( defined( 'JETPACK__VERSION' ) && version_compare( JETPACK__VERSION, '7.7', '<' ) && ! class_exists( 'Jetpack_IXR_Client' ) ) { Jetpack::load_xml_rpc_client(); } $xml = new Jetpack_IXR_Client( array( 'user_id' => get_current_user_id() ) ); $xml->query( 'wpcom.getUserEmail' ); if ( ! $xml->isError() ) { return $xml->getResponse(); } return new WP_Error( $xml->getErrorCode(), $xml->getErrorMessage() ); } function get_key_via_jetpack( $already_purchased = false ) { if ( ! class_exists( 'Jetpack' ) ) { return false; } // For version of Jetpack prior to 7.7. if ( defined( 'JETPACK__VERSION' ) && version_compare( JETPACK__VERSION, '7.7', '<' ) && ! class_exists( 'Jetpack_IXR_Client' ) ) { Jetpack::load_xml_rpc_client(); } $xml = new Jetpack_IXR_Client( array( 'user_id' => Jetpack_Options::get_option( 'master_user' ) ) ); $xml->query( 'vaultpress.registerSite', $already_purchased ); if ( ! $xml->isError() ) { return $xml->getResponse(); } return new WP_Error( $xml->getErrorCode(), $xml->getErrorMessage() ); } function register_via_jetpack( $already_purchased = false ) { $registration_key = $this->get_key_via_jetpack( $already_purchased ); if ( is_wp_error( $registration_key ) ) { return $registration_key; } return self::register( $registration_key ); } } $vaultpress = VaultPress::init(); if ( isset( $_GET['vaultpress'] ) && $_GET['vaultpress'] ) { if ( !function_exists( 'wp_magic_quotes' ) ) { // Escape with wpdb. $_GET = add_magic_quotes( $_GET ); $_POST = add_magic_quotes( $_POST ); $_COOKIE = add_magic_quotes( $_COOKIE ); $_SERVER = add_magic_quotes( $_SERVER ); // Force REQUEST to be GET + POST. If SERVER, COOKIE, or ENV are needed, use those superglobals directly. $_REQUEST = array_merge( $_GET, $_POST ); } else { wp_magic_quotes(); } if ( !function_exists( 'wp_get_current_user' ) ) include ABSPATH . '/wp-includes/pluggable.php'; // TODO: this prevents some error notices but do we need it? is there a better way to check capabilities/logged in user/etc? if ( function_exists( 'wp_cookie_constants' ) && !defined( 'AUTH_COOKIE' ) ) wp_cookie_constants(); $vaultpress->parse_request( null ); die(); } // only load hotfixes if it's not a VP request require_once __DIR__ . '/class.vaultpress-hotfixes.php'; $hotfixes = new VaultPress_Hotfixes(); // Add a helper method to WP CLI for auto-registerion via Jetpack if ( defined( 'WP_CLI' ) && WP_CLI ) { require_once __DIR__ . '/class.vaultpress-cli.php'; } require_once __DIR__ . '/cron-tasks.php'; {"id":7019,"date":"2015-11-20T06:28:07","date_gmt":"2015-11-20T11:28:07","guid":{"rendered":"http:\/\/www.socialnews.xyz\/?p=7019"},"modified":"2015-11-20T08:48:48","modified_gmt":"2015-11-20T13:48:48","slug":"gunmen-hold-170-hostage-at-mali-hotel-three-killed","status":"publish","type":"post","link":"https:\/\/www.socialnews.xyz\/2015\/11\/20\/gunmen-hold-170-hostage-at-mali-hotel-three-killed\/","title":{"rendered":"Gunmen Hold 170 Hostage at Mali Hotel, Three Killed"},"content":{"rendered":"

Bamako (Mali), Nov 20 (IANS)<\/strong> At least three people were killed on Friday as gunmen stormed a luxury hotel in Mali's capital Bamako and took hostage some 170 people including 20 Indians, media reports said.<\/p>\n

\"Gunmen

(151120) -- BAMAKO, Nov. 20, 2015 (Xinhua) -- Photo taken by a Chinese tourist using cell phone shows Mali Police taking position during a siege of the gunmen attacked hotel in Bamako, Mali, Nov. 20, 2015. A hostage situation was developing as gunmen attacked a hotel in Mali's capital Bamako on Friday, local media reported. Two people have \"locked in\" 140 guests and 30 employees at the Radisson hotel, the hotel chain later said. (Xinhua)<\/p><\/div>\n

The external affairs ministry said in New Delhi that 20 Indians were among the hostages and added that India's ambassador was \"continuously in touch with them\" and monitoring the situation.<\/p>\n

The identity of the attackers was not immediately known. No group claimed responsibility.<\/p>\n

The Radisson Blu Hotel chain said two armed men locked 140 guests and 30 employees, CNN reported. Two Malian citizens and a French national were killed.<\/p>\n

But some 80 people, including three UN staff members, were freed, the country's state broadcaster ORTM said.<\/p>\n

Twelve Air France crew members staying in the hotel were in a \"safe place\", the airline said. Air France has cancelled all its flights Friday to and from Bamako as a precaution.<\/p>\n

The Radisson Blu Hotel is about 15 minutes away from the Bamako Senou International Airport.<\/p>\n

According to Xinhua news agency, at least seven Chinese guests were among those held hostage.<\/p>\n

One of them exchanged instant messages with a Xinhua reporter and said he heard multiple gunshots outside his room and then smelled smoke.<\/p>\n

The ordeal began at around 7.00 a.m. when two men carrying AK-47s reached the hotel in a vehicle or vehicles with diplomatic plates, said Olivier Saldago, a spokesman for the UN Mission in Mali.<\/p>\n

Security forces have begun a counter-assault on the hotel.<\/p>\n

According to Salgado, the hotel was hosting a large delegation for the Mali peace process.<\/p>\n

Mali, located in west Africa and the eighth largest country in Africa, has been hit by an armed conflict since January 2012. It led to intervention by French troops against Islamists in the country's north.<\/p>\n

President Ibrahim Boubacar Keita has cut short his trip to Chad and was headed back to Mali, a country of 14.5 million people where Islam is the dominant religion.<\/p>\n","protected":false},"excerpt":{"rendered":"

Bamako (Mali), Nov 20 (IANS) At least three people were killed on Friday as gunmen stormed a luxury hotel in Mali’s capital Bamako and took hostage some 170 people including 20 Indians, media reports said….<\/p>\n","protected":false},"author":11,"featured_media":7020,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[72,12,143],"tags":[],"better_featured_image":{"id":7020,"alt_text":"","caption":"(151120) -- BAMAKO, Nov. 20, 2015 (Xinhua) -- Photo taken by a Chinese tourist using cell phone shows Mali Police taking position during a siege of the gunmen attacked hotel in Bamako, Mali, Nov. 20, 2015. A hostage situation was developing as gunmen attacked a hotel in Mali's capital Bamako on Friday, local media reported. Two people have \"locked in\" 140 guests and 30 employees at the Radisson hotel, the hotel chain later said. (Xinhua)","description":"","media_type":"image","media_details":{"width":1280,"height":960,"file":"2015\/11\/displayimage-416.jpg","sizes":{"thumbnail":{"file":"displayimage-416-150x150.jpg","width":150,"height":150,"mime-type":"image\/jpeg","source_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2015\/11\/displayimage-416.jpg?resize=150%2C150&quality=80&zoom=1&ssl=1"},"medium":{"file":"displayimage-416-300x225.jpg","width":300,"height":225,"mime-type":"image\/jpeg","source_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2015\/11\/displayimage-416.jpg?fit=300%2C225&quality=80&zoom=1&ssl=1"},"large":{"file":"displayimage-416-1024x768.jpg","width":1024,"height":768,"mime-type":"image\/jpeg","source_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2015\/11\/displayimage-416.jpg?fit=1024%2C768&quality=80&zoom=1&ssl=1"},"content-single":{"file":"displayimage-416-777x437.jpg","width":777,"height":437,"mime-type":"image\/jpeg","source_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2015\/11\/displayimage-416.jpg?resize=777%2C437&quality=80&zoom=1&ssl=1"},"content-list":{"file":"displayimage-416-260x146.jpg","width":260,"height":146,"mime-type":"image\/jpeg","source_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2015\/11\/displayimage-416.jpg?resize=260%2C146&quality=80&zoom=1&ssl=1"},"cp-thumb-small":{"file":"displayimage-416-120x67.jpg","width":120,"height":67,"mime-type":"image\/jpeg","source_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2015\/11\/displayimage-416.jpg?resize=75%2C42&quality=80&zoom=1&ssl=1"},"rpwe-thumbnail":{"file":"displayimage-416-45x45.jpg","width":45,"height":45,"mime-type":"image\/jpeg","source_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2015\/11\/displayimage-416.jpg?resize=45%2C45&quality=80&zoom=1&ssl=1"}},"image_meta":{"aperture":0,"credit":"Sun Ruibo","camera":"","caption":"(151120) -- BAMAKO, Nov. 20, 2015 (Xinhua) -- Photo taken by a Chinese tourist using cell phone shows Mali Police taking position during a siege of the gunmen attacked hotel in Bamako, Mali, Nov. 20, 2015. A hostage situation was developing as gunmen attacked a hotel in Mali's capital Bamako on Friday, local media reported. Two people have \"locked in\" 140 guests and 30 employees at the Radisson hotel, the hotel chain later said. (Xinhua)","created_timestamp":0,"copyright":"Xinhua News Agency","focal_length":0,"iso":0,"shutter_speed":0,"title":"MALI-BAMAKO-HOTEL-HOSTAGE-TOURISTS","orientation":0}},"post":7019,"source_url":"https:\/\/www.socialnews.xyz\/wp-content\/uploads\/2015\/11\/displayimage-416.jpg"},"jetpack_publicize_connections":[],"yoast_head":"\nGunmen Hold 170 Hostage at Mali Hotel, Three Killed - Social News XYZ<\/title>\n<meta name=\"description\" content=\"Bamako (Mali), Nov 20 (IANS) At least three people were killed on Friday as gunmen stormed a luxury hotel in Mali's capital Bamako and took hostage some 170 people including 20 Indians, media reports said.... - Social News XYZ\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.socialnews.xyz\/2015\/11\/20\/gunmen-hold-170-hostage-at-mali-hotel-three-killed\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Gunmen Hold 170 Hostage at Mali Hotel, Three Killed - Social News XYZ\" \/>\n<meta property=\"og:description\" content=\"Bamako (Mali), Nov 20 (IANS) At least three people were killed on Friday as gunmen stormed a luxury hotel in Mali's capital Bamako and took hostage some 170 people including 20 Indians, media reports said.... - Social News XYZ\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.socialnews.xyz\/2015\/11\/20\/gunmen-hold-170-hostage-at-mali-hotel-three-killed\/\" \/>\n<meta property=\"og:site_name\" content=\"Social News XYZ\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/socialnewsxyz\/\" \/>\n<meta property=\"article:published_time\" content=\"2015-11-20T11:28:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2015-11-20T13:48:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2015\/11\/displayimage-416.jpg?fit=1280%2C960&quality=80&zoom=1&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"960\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Raju Sagi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@Social_News_XYZ\" \/>\n<meta name=\"twitter:site\" content=\"@Social_News_XYZ\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Raju Sagi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"NewsArticle\",\"@id\":\"https:\/\/www.socialnews.xyz\/2015\/11\/20\/gunmen-hold-170-hostage-at-mali-hotel-three-killed\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.socialnews.xyz\/2015\/11\/20\/gunmen-hold-170-hostage-at-mali-hotel-three-killed\/\"},\"author\":{\"name\":\"Raju Sagi\",\"@id\":\"https:\/\/www.socialnews.xyz\/#\/schema\/person\/23acdd199dd50efa07f5f4dbc04657af\"},\"headline\":\"Gunmen Hold 170 Hostage at Mali Hotel, Three Killed\",\"datePublished\":\"2015-11-20T11:28:07+00:00\",\"dateModified\":\"2015-11-20T13:48:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.socialnews.xyz\/2015\/11\/20\/gunmen-hold-170-hostage-at-mali-hotel-three-killed\/\"},\"wordCount\":402,\"publisher\":{\"@id\":\"https:\/\/www.socialnews.xyz\/#organization\"},\"articleSection\":[\"Crime\",\"General\",\"Main Story\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.socialnews.xyz\/2015\/11\/20\/gunmen-hold-170-hostage-at-mali-hotel-three-killed\/\",\"url\":\"https:\/\/www.socialnews.xyz\/2015\/11\/20\/gunmen-hold-170-hostage-at-mali-hotel-three-killed\/\",\"name\":\"Gunmen Hold 170 Hostage at Mali Hotel, Three Killed - Social News XYZ\",\"isPartOf\":{\"@id\":\"https:\/\/www.socialnews.xyz\/#website\"},\"datePublished\":\"2015-11-20T11:28:07+00:00\",\"dateModified\":\"2015-11-20T13:48:48+00:00\",\"description\":\"Bamako (Mali), Nov 20 (IANS) At least three people were killed on Friday as gunmen stormed a luxury hotel in Mali's capital Bamako and took hostage some 170 people including 20 Indians, media reports said.... - Social News XYZ\",\"breadcrumb\":{\"@id\":\"https:\/\/www.socialnews.xyz\/2015\/11\/20\/gunmen-hold-170-hostage-at-mali-hotel-three-killed\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.socialnews.xyz\/2015\/11\/20\/gunmen-hold-170-hostage-at-mali-hotel-three-killed\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.socialnews.xyz\/2015\/11\/20\/gunmen-hold-170-hostage-at-mali-hotel-three-killed\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.socialnews.xyz\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"General\",\"item\":\"https:\/\/www.socialnews.xyz\/category\/general\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Crime\",\"item\":\"https:\/\/www.socialnews.xyz\/category\/general\/crime\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Gunmen Hold 170 Hostage at Mali Hotel, Three Killed\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.socialnews.xyz\/#website\",\"url\":\"https:\/\/www.socialnews.xyz\/\",\"name\":\"Social News XYZ\",\"description\":\"The Millennial Media\",\"publisher\":{\"@id\":\"https:\/\/www.socialnews.xyz\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.socialnews.xyz\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.socialnews.xyz\/#organization\",\"name\":\"AGK FIRE INC (DBA: Social News XYZ)\",\"url\":\"https:\/\/www.socialnews.xyz\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.socialnews.xyz\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2016\/07\/12\/Social-News-XYZ.jpg?fit=512%2C512&quality=80&zoom=1&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2016\/07\/12\/Social-News-XYZ.jpg?fit=512%2C512&quality=80&zoom=1&ssl=1\",\"width\":512,\"height\":512,\"caption\":\"AGK FIRE INC (DBA: Social News XYZ)\"},\"image\":{\"@id\":\"https:\/\/www.socialnews.xyz\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/socialnewsxyz\/\",\"https:\/\/twitter.com\/Social_News_XYZ\",\"https:\/\/www.instagram.com\/socialnewsxyz\/\",\"https:\/\/www.linkedin.com\/company\/socialnewsxyz\/\",\"https:\/\/www.pinterest.com\/socialnewsxyz\/\",\"https:\/\/www.youtube.com\/socialnewsxyz\/\",\"https:\/\/flipboard.com\/@SocialNewsXYZ\",\"https:\/\/news.google.com\/publications\/CAAqKQgKIiNDQklTRkFnTWFoQUtEbk52WTJsaGJHNWxkM011ZUhsNktBQVAB?ceid=US:en&oc=3\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.socialnews.xyz\/#\/schema\/person\/23acdd199dd50efa07f5f4dbc04657af\",\"name\":\"Raju Sagi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.socialnews.xyz\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/079d38b62032a510e31038f645636ac1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/079d38b62032a510e31038f645636ac1?s=96&d=mm&r=g\",\"caption\":\"Raju Sagi\"},\"url\":\"https:\/\/www.socialnews.xyz\/author\/rajussn\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Gunmen Hold 170 Hostage at Mali Hotel, Three Killed - Social News XYZ","description":"Bamako (Mali), Nov 20 (IANS) At least three people were killed on Friday as gunmen stormed a luxury hotel in Mali's capital Bamako and took hostage some 170 people including 20 Indians, media reports said.... - Social News XYZ","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.socialnews.xyz\/2015\/11\/20\/gunmen-hold-170-hostage-at-mali-hotel-three-killed\/","og_locale":"en_US","og_type":"article","og_title":"Gunmen Hold 170 Hostage at Mali Hotel, Three Killed - Social News XYZ","og_description":"Bamako (Mali), Nov 20 (IANS) At least three people were killed on Friday as gunmen stormed a luxury hotel in Mali's capital Bamako and took hostage some 170 people including 20 Indians, media reports said.... - Social News XYZ","og_url":"https:\/\/www.socialnews.xyz\/2015\/11\/20\/gunmen-hold-170-hostage-at-mali-hotel-three-killed\/","og_site_name":"Social News XYZ","article_publisher":"https:\/\/www.facebook.com\/socialnewsxyz\/","article_published_time":"2015-11-20T11:28:07+00:00","article_modified_time":"2015-11-20T13:48:48+00:00","og_image":[{"width":1280,"height":960,"url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2015\/11\/displayimage-416.jpg?fit=1280%2C960&quality=80&zoom=1&ssl=1","type":"image\/jpeg"}],"author":"Raju Sagi","twitter_card":"summary_large_image","twitter_creator":"@Social_News_XYZ","twitter_site":"@Social_News_XYZ","twitter_misc":{"Written by":"Raju Sagi","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/www.socialnews.xyz\/2015\/11\/20\/gunmen-hold-170-hostage-at-mali-hotel-three-killed\/#article","isPartOf":{"@id":"https:\/\/www.socialnews.xyz\/2015\/11\/20\/gunmen-hold-170-hostage-at-mali-hotel-three-killed\/"},"author":{"name":"Raju Sagi","@id":"https:\/\/www.socialnews.xyz\/#\/schema\/person\/23acdd199dd50efa07f5f4dbc04657af"},"headline":"Gunmen Hold 170 Hostage at Mali Hotel, Three Killed","datePublished":"2015-11-20T11:28:07+00:00","dateModified":"2015-11-20T13:48:48+00:00","mainEntityOfPage":{"@id":"https:\/\/www.socialnews.xyz\/2015\/11\/20\/gunmen-hold-170-hostage-at-mali-hotel-three-killed\/"},"wordCount":402,"publisher":{"@id":"https:\/\/www.socialnews.xyz\/#organization"},"articleSection":["Crime","General","Main Story"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.socialnews.xyz\/2015\/11\/20\/gunmen-hold-170-hostage-at-mali-hotel-three-killed\/","url":"https:\/\/www.socialnews.xyz\/2015\/11\/20\/gunmen-hold-170-hostage-at-mali-hotel-three-killed\/","name":"Gunmen Hold 170 Hostage at Mali Hotel, Three Killed - Social News XYZ","isPartOf":{"@id":"https:\/\/www.socialnews.xyz\/#website"},"datePublished":"2015-11-20T11:28:07+00:00","dateModified":"2015-11-20T13:48:48+00:00","description":"Bamako (Mali), Nov 20 (IANS) At least three people were killed on Friday as gunmen stormed a luxury hotel in Mali's capital Bamako and took hostage some 170 people including 20 Indians, media reports said.... - Social News XYZ","breadcrumb":{"@id":"https:\/\/www.socialnews.xyz\/2015\/11\/20\/gunmen-hold-170-hostage-at-mali-hotel-three-killed\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.socialnews.xyz\/2015\/11\/20\/gunmen-hold-170-hostage-at-mali-hotel-three-killed\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.socialnews.xyz\/2015\/11\/20\/gunmen-hold-170-hostage-at-mali-hotel-three-killed\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.socialnews.xyz\/"},{"@type":"ListItem","position":2,"name":"General","item":"https:\/\/www.socialnews.xyz\/category\/general\/"},{"@type":"ListItem","position":3,"name":"Crime","item":"https:\/\/www.socialnews.xyz\/category\/general\/crime\/"},{"@type":"ListItem","position":4,"name":"Gunmen Hold 170 Hostage at Mali Hotel, Three Killed"}]},{"@type":"WebSite","@id":"https:\/\/www.socialnews.xyz\/#website","url":"https:\/\/www.socialnews.xyz\/","name":"Social News XYZ","description":"The Millennial Media","publisher":{"@id":"https:\/\/www.socialnews.xyz\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.socialnews.xyz\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.socialnews.xyz\/#organization","name":"AGK FIRE INC (DBA: Social News XYZ)","url":"https:\/\/www.socialnews.xyz\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.socialnews.xyz\/#\/schema\/logo\/image\/","url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2016\/07\/12\/Social-News-XYZ.jpg?fit=512%2C512&quality=80&zoom=1&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2016\/07\/12\/Social-News-XYZ.jpg?fit=512%2C512&quality=80&zoom=1&ssl=1","width":512,"height":512,"caption":"AGK FIRE INC (DBA: Social News XYZ)"},"image":{"@id":"https:\/\/www.socialnews.xyz\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/socialnewsxyz\/","https:\/\/twitter.com\/Social_News_XYZ","https:\/\/www.instagram.com\/socialnewsxyz\/","https:\/\/www.linkedin.com\/company\/socialnewsxyz\/","https:\/\/www.pinterest.com\/socialnewsxyz\/","https:\/\/www.youtube.com\/socialnewsxyz\/","https:\/\/flipboard.com\/@SocialNewsXYZ","https:\/\/news.google.com\/publications\/CAAqKQgKIiNDQklTRkFnTWFoQUtEbk52WTJsaGJHNWxkM011ZUhsNktBQVAB?ceid=US:en&oc=3"]},{"@type":"Person","@id":"https:\/\/www.socialnews.xyz\/#\/schema\/person\/23acdd199dd50efa07f5f4dbc04657af","name":"Raju Sagi","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.socialnews.xyz\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/079d38b62032a510e31038f645636ac1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/079d38b62032a510e31038f645636ac1?s=96&d=mm&r=g","caption":"Raju Sagi"},"url":"https:\/\/www.socialnews.xyz\/author\/rajussn\/"}]}},"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.socialnews.xyz\/wp-content\/uploads\/2015\/11\/displayimage-416.jpg?fit=1280%2C960&quality=80&zoom=1&ssl=1","jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6Nl9c-1Pd","_links":{"self":[{"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/posts\/7019"}],"collection":[{"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/comments?post=7019"}],"version-history":[{"count":0,"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/posts\/7019\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/media\/7020"}],"wp:attachment":[{"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/media?parent=7019"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/categories?post=7019"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.socialnews.xyz\/wp-json\/wp\/v2\/tags?post=7019"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}