public static function ajax_delete() { global $wpdb; $send_response = function ($todo) use($wpdb) { if (!$todo) { // free disk space $wpdb->query('OPTIMIZE TABLE ' . \Podlove\Model\DownloadIntent::table_name()); // clear caches \Podlove\Cache\TemplateCache::get_instance()->setup_purge(); // mark migration as done delete_option('podlove_tracking_delete_head_requests'); } \Podlove\AJAX\Ajax::respond_with_json(array('todo' => $todo)); }; // get user agent IDs to delete $sql = "\n\t\t\tSELECT\n\t\t\t\tid \n\t\t\tFROM\n\t\t\t\t" . \Podlove\Model\UserAgent::table_name() . " ua\n\t\t\tWHERE\n\t\t\t\tuser_agent LIKE \"libwww-perl/%\" \n\t\t\t\tOR user_agent LIKE \"curl/%\" \n\t\t\t\tOR user_agent LIKE \"PritTorrent/%\"\n\t\t"; $user_agent_ids = $wpdb->get_col($sql); if (!count($user_agent_ids)) { $send_response(0); } // delete $sql = "\n\t\tDELETE\n\t\t\tFROM " . \Podlove\Model\DownloadIntent::table_name() . "\n\t\t\tWHERE user_agent_id IN (" . implode(",", $user_agent_ids) . ")\n\t\t\tLIMIT 25000\n\t\t"; $wpdb->query($sql); $sql = "\n\t\tDELETE\n\t\t\tFROM " . \Podlove\Model\DownloadIntentClean::table_name() . "\n\t\t\tWHERE user_agent_id IN (" . implode(",", $user_agent_ids) . ")\n\t\t\tLIMIT 25000\n\t\t"; $wpdb->query($sql); // see how much is left to delete $sql = "\n\t\tSELECT\n\t\t\tCOUNT(*) \n\t\tFROM\n\t\t\t" . \Podlove\Model\DownloadIntent::table_name() . " \n\t\tWHERE\n\t\t\tuser_agent_id IN (" . implode(",", $user_agent_ids) . ")\n\t\t"; $send_response($wpdb->get_var($sql)); }
public static function delete() { $id = filter_input(INPUT_POST, 'id', FILTER_SANITIZE_NUMBER_INT); $template = Template::find_by_id($id); if (!$id || !$template) { Ajax::respond_with_json(array("success" => false)); } else { $template->delete(); Ajax::respond_with_json(array("success" => true)); } }
public static function create() { $episode_id = (int) $_REQUEST['episode_id']; $episode_asset_id = (int) $_REQUEST['episode_asset_id']; if (!$episode_id || !$episode_asset_id) { die; } if (isset($_REQUEST['slug'])) { self::simulate_temporary_episode_slug($_REQUEST['slug']); } $file = MediaFile::find_or_create_by_episode_id_and_episode_asset_id($episode_id, $episode_asset_id); Ajax::respond_with_json(array('file_id' => $file->id, 'file_size' => $file->size, 'file_url' => $file->get_file_url())); }
public function fetch_bitlove_url() { \Podlove\AJAX\Ajax::respond_with_json(array('bitlove_url' => self::get_bitlove_feed_url($_REQUEST['feed_id']))); }
public function ajax_validate_feed() { $feed_id = $_REQUEST['feed_id']; $redirect = $_REQUEST['redirect'] == '0' ? FALSE : TRUE; $feed = \Podlove\Model\Feed::find_by_id($feed_id); // Delete feed source transient $errors_and_warnings = \Podlove\Modules\FeedValidation\Model\FeedValidator::getValidationErrorsandWarnings($feed->id, $redirect); // renew transients set_transient('podlove_dashboard_feed_validation_' . $feed->id, \Podlove\Modules\FeedValidation\Model\FeedValidator::getValidationIcon($feed->id, $redirect), 3600 * 24); set_transient('podlove_dashboard_feed_information_' . $feed->id, \Podlove\Modules\FeedValidation\Model\FeedValidator::getInformation($feed->id, $redirect), 3600 * 24); if ($redirect === TRUE) { set_transient('podlove_dashboard_feed_r_validation_' . $feed->id, \Podlove\Modules\FeedValidation\Model\FeedValidator::getValidationIcon($feed->id, $redirect), 3600 * 24); set_transient('podlove_dashboard_feed_r_information_' . $feed->id, \Podlove\Modules\FeedValidation\Model\FeedValidator::getInformation($feed->id, $redirect), 3600 * 24); } \Podlove\AJAX\Ajax::respond_with_json(array('validation_icon' => \Podlove\Modules\FeedValidation\Model\FeedValidator::getValidationIcon($feed->id, $redirect))); }