class Akismet_REST_API { /** * Register the REST API routes. */ public static function init() { if ( ! function_exists( 'register_rest_route' ) ) { // The REST API wasn't integrated into core until 4.4, and we support 4.0+ (for now). return false; } register_rest_route( 'akismet/v1', '/key', array( array( 'methods' => WP_REST_Server::READABLE, 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'get_key' ), ), array( 'methods' => WP_REST_Server::EDITABLE, 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'set_key' ), 'args' => array( 'key' => array( 'required' => true, 'type' => 'string', 'sanitize_callback' => array( 'Akismet_REST_API', 'sanitize_key' ), 'description' => __( 'A 12-character Akismet API key. Available at akismet.com/get/', 'akismet' ), ), ), ), array( 'methods' => WP_REST_Server::DELETABLE, 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'delete_key' ), ) ) ); register_rest_route( 'akismet/v1', '/settings/', array( array( 'methods' => WP_REST_Server::READABLE, 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'get_settings' ), ), array( 'methods' => WP_REST_Server::EDITABLE, 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'set_boolean_settings' ), 'args' => array( 'akismet_strictness' => array( 'required' => false, 'type' => 'boolean', 'description' => __( 'If true, Akismet will automatically discard the worst spam automatically rather than putting it in the spam folder.', 'akismet' ), ), 'akismet_show_user_comments_approved' => array( 'required' => false, 'type' => 'boolean', 'description' => __( 'If true, show the number of approved comments beside each comment author in the comments list page.', 'akismet' ), ), ), ) ) ); register_rest_route( 'akismet/v1', '/stats', array( 'methods' => WP_REST_Server::READABLE, 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'get_stats' ), 'args' => array( 'interval' => array( 'required' => false, 'type' => 'string', 'sanitize_callback' => array( 'Akismet_REST_API', 'sanitize_interval' ), 'description' => __( 'The time period for which to retrieve stats. Options: 60-days, 6-months, all', 'akismet' ), 'default' => 'all', ), ), ) ); register_rest_route( 'akismet/v1', '/stats/(?P[\w+])', array( 'args' => array( 'interval' => array( 'description' => __( 'The time period for which to retrieve stats. Options: 60-days, 6-months, all', 'akismet' ), 'type' => 'string', ), ), array( 'methods' => WP_REST_Server::READABLE, 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'get_stats' ), ) ) ); register_rest_route( 'akismet/v1', '/alert', array( array( 'methods' => WP_REST_Server::READABLE, 'permission_callback' => array( 'Akismet_REST_API', 'remote_call_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'get_alert' ), 'args' => array( 'key' => array( 'required' => false, 'type' => 'string', 'sanitize_callback' => array( 'Akismet_REST_API', 'sanitize_key' ), 'description' => __( 'A 12-character Akismet API key. Available at akismet.com/get/', 'akismet' ), ), ), ), array( 'methods' => WP_REST_Server::EDITABLE, 'permission_callback' => array( 'Akismet_REST_API', 'remote_call_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'set_alert' ), 'args' => array( 'key' => array( 'required' => false, 'type' => 'string', 'sanitize_callback' => array( 'Akismet_REST_API', 'sanitize_key' ), 'description' => __( 'A 12-character Akismet API key. Available at akismet.com/get/', 'akismet' ), ), ), ), array( 'methods' => WP_REST_Server::DELETABLE, 'permission_callback' => array( 'Akismet_REST_API', 'remote_call_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'delete_alert' ), 'args' => array( 'key' => array( 'required' => false, 'type' => 'string', 'sanitize_callback' => array( 'Akismet_REST_API', 'sanitize_key' ), 'description' => __( 'A 12-character Akismet API key. Available at akismet.com/get/', 'akismet' ), ), ), ) ) ); } /** * Get the current Akismet API key. * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function get_key( $request = null ) { return rest_ensure_response( Akismet::get_api_key() ); } /** * Set the API key, if possible. * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function set_key( $request ) { if ( defined( 'WPCOM_API_KEY' ) ) { return rest_ensure_response( new WP_Error( 'hardcoded_key', __( 'This site\'s API key is hardcoded and cannot be changed via the API.', 'akismet' ), array( 'status'=> 409 ) ) ); } $new_api_key = $request->get_param( 'key' ); if ( ! self::key_is_valid( $new_api_key ) ) { return rest_ensure_response( new WP_Error( 'invalid_key', __( 'The value provided is not a valid and registered API key.', 'akismet' ), array( 'status' => 400 ) ) ); } update_option( 'wordpress_api_key', $new_api_key ); return self::get_key(); } /** * Unset the API key, if possible. * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function delete_key( $request ) { if ( defined( 'WPCOM_API_KEY' ) ) { return rest_ensure_response( new WP_Error( 'hardcoded_key', __( 'This site\'s API key is hardcoded and cannot be deleted.', 'akismet' ), array( 'status'=> 409 ) ) ); } delete_option( 'wordpress_api_key' ); return rest_ensure_response( true ); } /** * Get the Akismet settings. * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function get_settings( $request = null ) { return rest_ensure_response( array( 'akismet_strictness' => ( get_option( 'akismet_strictness', '1' ) === '1' ), 'akismet_show_user_comments_approved' => ( get_option( 'akismet_show_user_comments_approved', '1' ) === '1' ), ) ); } /** * Update the Akismet settings. * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function set_boolean_settings( $request ) { foreach ( array( 'akismet_strictness', 'akismet_show_user_comments_approved', ) as $setting_key ) { $setting_value = $request->get_param( $setting_key ); if ( is_null( $setting_value ) ) { // This setting was not specified. continue; } // From 4.7+, WP core will ensure that these are always boolean // values because they are registered with 'type' => 'boolean', // but we need to do this ourselves for prior versions. $setting_value = Akismet_REST_API::parse_boolean( $setting_value ); update_option( $setting_key, $setting_value ? '1' : '0' ); } return self::get_settings(); } /** * Parse a numeric or string boolean value into a boolean. * * @param mixed $value The value to convert into a boolean. * @return bool The converted value. */ public static function parse_boolean( $value ) { switch ( $value ) { case true: case 'true': case '1': case 1: return true; case false: case 'false': case '0': case 0: return false; default: return (bool) $value; } } /** * Get the Akismet stats for a given time period. * * Possible `interval` values: * - all * - 60-days * - 6-months * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function get_stats( $request ) { $api_key = Akismet::get_api_key(); $interval = $request->get_param( 'interval' ); $stat_totals = array(); $response = Akismet::http_post( Akismet::build_query( array( 'blog' => get_option( 'home' ), 'key' => $api_key, 'from' => $interval ) ), 'get-stats' ); if ( ! empty( $response[1] ) ) { $stat_totals[$interval] = json_decode( $response[1] ); } return rest_ensure_response( $stat_totals ); } /** * Get the current alert code and message. Alert codes are used to notify the site owner * if there's a problem, like a connection issue between their site and the Akismet API, * invalid requests being sent, etc. * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function get_alert( $request ) { return rest_ensure_response( array( 'code' => get_option( 'akismet_alert_code' ), 'message' => get_option( 'akismet_alert_msg' ), ) ); } /** * Update the current alert code and message by triggering a call to the Akismet server. * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function set_alert( $request ) { delete_option( 'akismet_alert_code' ); delete_option( 'akismet_alert_msg' ); // Make a request so the most recent alert code and message are retrieved. Akismet::verify_key( Akismet::get_api_key() ); return self::get_alert( $request ); } /** * Clear the current alert code and message. * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function delete_alert( $request ) { delete_option( 'akismet_alert_code' ); delete_option( 'akismet_alert_msg' ); return self::get_alert( $request ); } private static function key_is_valid( $key ) { $response = Akismet::http_post( Akismet::build_query( array( 'key' => $key, 'blog' => get_option( 'home' ) ) ), 'verify-key' ); if ( $response[1] == 'valid' ) { return true; } return false; } public static function privileged_permission_callback() { return current_user_can( 'manage_options' ); } /** * For calls that Akismet.com makes to the site to clear outdated alert codes, use the API key for authorization. */ public static function remote_call_permission_callback( $request ) { $local_key = Akismet::get_api_key(); return $local_key && ( strtolower( $request->get_param( 'key' ) ) === strtolower( $local_key ) ); } public static function sanitize_interval( $interval, $request, $param ) { $interval = trim( $interval ); $valid_intervals = array( '60-days', '6-months', 'all', ); if ( ! in_array( $interval, $valid_intervals ) ) { $interval = 'all'; } return $interval; } public static function sanitize_key( $key, $request, $param ) { return trim( $key ); } } Macri y seis meses de gobierno para alfombrar la inserción subordinada – Fundación Patagonia Tercer Milenio

ALAI AMLATINA, 13/06/2016.-  Los primeros seis meses del gobierno Macri sirven para preparar las condiciones institucionales de subordinación reclamadas por los grandes capitales.

El programa de máxima de los capitales apunta a bajar el costo del salario en el proceso de producción y circulación, y al mismo tiempo, abaratar las condiciones de explotación de los bienes comunes.

Los afectados son los derechos humanos de la mayoría trabajadora y los derechos ambientales.

El ajuste del primer semestre se consolida con una inflación que favorece a los formadores de precios y afecta a la mayoría empobrecida, al tiempo que desalentó la producción local y estimuló la producción externa, con invasión de importaciones que compiten y desalojan la producción local.

Inflación y recesión fueron dos efectos consecuencia de la política económica del gobierno Macri.

La especulación derivada de altas tasas impulsadas por el BCRA y festival de bonos externos emitidos por el Ministerio de Hacienda, asociado al acuerdo y pago a los acreedores externos hipoteca el presente y el futuro de la economía local a las demandas del capital externo.

Es más, en esta semana se anuncia el ascenso de la calificación del mercado de capitales de la Argentina.

Son tres las categorías de los mercados de capitales: a) la de los países capitalistas desarrollados; b) la de los emergentes (Brasil, India, China, otros); c) la de los fronterizos (sin confianza entre inversores externos).

La nueva calificación apunta a escalar de la categoría c a la b; a mercado emergente, y receptar así el interés de inversores internacionales que buscan mejores opciones de rentabilidad en el marco de la crisis capitalista mundial.

Apertura económica, liberalización e integración subordinada

Argentina ha sido aceptada como “observador” en la Alianza del Pacífico, remedo del ALCA luego de la derrota del 2005 y base de lanzamiento del acuerdo transpacífico, TPP.

Este acuerdo se propone disputar las relaciones internacionales en medio de la crisis capitalista y la emergencia de China como potencia mundial, con peso creciente en la región Nuestramericana de la última década.

La disputa global es por la hegemonía de la apertura y la liberalización de la economía mundial en crisis.

El papel del gobierno argentino es clave para modificar las relaciones de fuerza que se habían construido en el último tiempo y que habilitaban la discusión sobre integración alternativa.

Lo real es que las expectativas se frustraron por límites de los procesos de cambio político y la ofensiva de las clases dominantes.

Con Argentina definida en el campo de la subordinación a la política exterior de EEUU y la posible convergencia con el Brasil luego del “golpe blando neoliberal” se facilita la discusión al interior del Mercosur.

Allí, hace rato que Paraguay empuja la apertura y Uruguay ha dado señales de aperturismo (adhesión al TISA, más allá de su contramarcha). Solo Venezuela mantiene una posición crítica, por lo que resulta fundamental activar el movimiento popular “Nuestramérica mejor sin TLC” cuya versión local se despliega bajo la consigna: “Argentina mejor sin TLC”.

El gobierno Macri estará en la Cumbre de la Alianza del Pacífico en Chile EL 1/7 pregonando las ventajas del aperturismo, base para la atracción de inversiones externas.

Anticipará sus opiniones en el Foro Económico regional que realiza esta semana en Colombia y al igual que en Davos en enero, tratará de mostrar que no solo la Argentina es favorable a la circulación de los capitales globales.

El mensaje apuntará a señalar que la región está en un cambio de orientación hacia políticas de “mercado”, coherentes con lo que señalan los organismos financieros internacionales como “programa deseable” para nuestros países sudamericanos.

Convengamos que las dificultades para atraer inversiones no son solo para la Argentina, sino que la situación brasileña y en particular de Sudamérica en su conjunto, no favorecen la demanda de elevada rentabilidad ofrecida hasta hace poco tiempo.

La conflictividad no controlada por los gobiernos es un dato de la realidad y habilita a pensar en un escenario político abierto para disputar sentido social mayoritario para el proyecto del poder, o nuevas recreaciones de proyectos alternativos al orden capitalista en crisis.

Segundo semestre de ajuste y posposición de la recuperación

Todos los pronósticos auguran caída del PBI de la Argentina para el 2016 y quizá, recuperación para el 2017. Es cierto que alguna vez se rebota desde el piso de la recesión, pero consolidando una pauta de empobrecimiento estructural que supera todo parámetro histórico.

La pobreza crece y no remito a los picos de la pobreza, sino a los pisos que se consolidan en cada ajuste estructural acecido en este tiempo constitucional desde 1983.

En los 90 se consolidó un piso de empobrecimiento que fue extendido y luego reducido, pero aun así, el resultado logró estabilizar un nuevo basamento de la pobreza y la indigencia que modifica sustancialmente la estructura económica y social del país.

La Argentina de las clases dominantes y el gobierno se predispone, desde las nuevas condiciones políticas, a facilitar el funcionamiento del orden capitalista global, asegurando un papel dependiente y subordinado de la economía local al programa liberalizador de las transnacionales que actúan en el país, y de otras que son invitadas para la apropiación del trabajo social local.

¿Aceptará la población este destino de subordinación, o en vísperas del bicentenario de la independencia política se generan condiciones para avanzar en la independencia económica?

En 1910, año del centenario de mayo, el conflicto intentaba ocultarse en pleno despliegue de la inserción subordinada de la Argentina en la división internacional del trabajo liderada por Inglaterra.

Ahora, a 200 años del 9 de julio de 1816, Independencia de la Argentina, el conflicto social, especialmente de trabajadoras y trabajadores, discute el sentido de la inserción internacional del país y abre interrogantes sobre las condiciones de posibilidad para la independencia.

Buenos Aires, 13 de junio de 2016

Julio C. Gambina es Presidente de la Fundación de Investigaciones Sociales y Políticas, FISYP
www.juliogambina.blogspot.com

URL de este artículo: http://www.alainet.org/es/articulo/178100

Av. Rivadavia 2009, Piso 3.Oficina G
CPA C1033AAK
Ciudad Autónoma de Buenos Aires
Tel.: 011 4951 7687

Hipólito Yrigoyen 720
CPA 9100 - Trelew
Provincia de Chubut
Tel.: 0280 443 7604

secretaria@funpat3mil.com.ar

Contacto

Usted puede comunicarse con nosotros y a la brevedad responderemos su mensaje.