/** * Copyright (C) 2014-2025 ServMask Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * Attribution: This code is part of the All-in-One WP Migration plugin, developed by * * ███████╗███████╗██████╗ ██╗ ██╗███╗ ███╗ █████╗ ███████╗██╗ ██╗ * ██╔════╝██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██║ ██╔╝ * ███████╗█████╗ ██████╔╝██║ ██║██╔████╔██║███████║███████╗█████╔╝ * ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║╚██╔╝██║██╔══██║╚════██║██╔═██╗ * ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗ * ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ */ if ( ! defined( 'ABSPATH' ) ) { die( 'Kangaroos cannot jump here' ); } class Ai1wm_Export_Content { public static function execute( $params ) { // Set archive bytes offset if ( isset( $params['archive_bytes_offset'] ) ) { $archive_bytes_offset = (int) $params['archive_bytes_offset']; } else { $archive_bytes_offset = ai1wm_archive_bytes( $params ); } // Set file bytes offset if ( isset( $params['file_bytes_offset'] ) ) { $file_bytes_offset = (int) $params['file_bytes_offset']; } else { $file_bytes_offset = 0; } // Set content bytes offset if ( isset( $params['content_bytes_offset'] ) ) { $content_bytes_offset = (int) $params['content_bytes_offset']; } else { $content_bytes_offset = 0; } // Get processed files size if ( isset( $params['processed_files_size'] ) ) { $processed_files_size = (int) $params['processed_files_size']; } else { $processed_files_size = 0; } // Get total content files size if ( isset( $params['total_content_files_size'] ) ) { $total_content_files_size = (int) $params['total_content_files_size']; } else { $total_content_files_size = 1; } // Get total content files count if ( isset( $params['total_content_files_count'] ) ) { $total_content_files_count = (int) $params['total_content_files_count']; } else { $total_content_files_count = 1; } // What percent of files have we processed? $progress = (int) min( ( $processed_files_size / $total_content_files_size ) * 100, 100 ); // Set progress Ai1wm_Status::info( sprintf( __( 'Archiving %d content files...
%d%% complete', AI1WM_PLUGIN_NAME ), $total_content_files_count, $progress ) ); // Flag to hold if file data has been processed $completed = true; // Start time $start = microtime( true ); // Get content list file $content_list = ai1wm_open( ai1wm_content_list_path( $params ), 'r' ); // Set the file pointer at the current index if ( fseek( $content_list, $content_bytes_offset ) !== -1 ) { // Open the archive file for writing $archive = new Ai1wm_Compressor( ai1wm_archive_path( $params ) ); // Set the file pointer to the one that we have saved $archive->set_file_pointer( $archive_bytes_offset ); // Loop over files while ( list( $file_abspath, $file_relpath, $file_size, $file_mtime ) = ai1wm_getcsv( $content_list ) ) { $file_bytes_written = 0; // Add file to archive if ( ( $completed = $archive->add_file( $file_abspath, $file_relpath, $file_bytes_written, $file_bytes_offset ) ) ) { $file_bytes_offset = 0; // Get content bytes offset $content_bytes_offset = ftell( $content_list ); } // Increment processed files size $processed_files_size += $file_bytes_written; // What percent of files have we processed? $progress = (int) min( ( $processed_files_size / $total_content_files_size ) * 100, 100 ); // Set progress Ai1wm_Status::info( sprintf( __( 'Archiving %d content files...
%d%% complete', AI1WM_PLUGIN_NAME ), $total_content_files_count, $progress ) ); // More than 10 seconds have passed, break and do another request if ( ( $timeout = apply_filters( 'ai1wm_completed_timeout', 10 ) ) ) { if ( ( microtime( true ) - $start ) > $timeout ) { $completed = false; break; } } } // Get archive bytes offset $archive_bytes_offset = $archive->get_file_pointer(); // Truncate the archive file $archive->truncate(); // Close the archive file $archive->close(); } // End of the content list? if ( feof( $content_list ) ) { // Unset archive bytes offset unset( $params['archive_bytes_offset'] ); // Unset file bytes offset unset( $params['file_bytes_offset'] ); // Unset content bytes offset unset( $params['content_bytes_offset'] ); // Unset processed files size unset( $params['processed_files_size'] ); // Unset total content files size unset( $params['total_content_files_size'] ); // Unset total content files count unset( $params['total_content_files_count'] ); // Unset completed flag unset( $params['completed'] ); } else { // Set archive bytes offset $params['archive_bytes_offset'] = $archive_bytes_offset; // Set file bytes offset $params['file_bytes_offset'] = $file_bytes_offset; // Set content bytes offset $params['content_bytes_offset'] = $content_bytes_offset; // Set processed files size $params['processed_files_size'] = $processed_files_size; // Set total content files size $params['total_content_files_size'] = $total_content_files_size; // Set total content files count $params['total_content_files_count'] = $total_content_files_count; // Set completed flag $params['completed'] = $completed; } // Close the content list file ai1wm_close( $content_list ); return $params; } } Finish Google Day - Ashlea Hansen

A federal judge on Tuesday ordered a shake-up of Google's search engine in a crackdown aimed at curbing the corrosive power of an illegal monopoly while rebuffing the U.S. government's attempt to break up the company and impose other restraints.

The 226-page decision made by U.S. District Judge Amit Mehta in Washington, D.C., will likely ripple across the technological landscape at a time when the industry is being reshaped by breakthroughs in artificial intelligence — including conversational "answer engines" as companies like ChatGPT and Perplexity try to upend Google's long-held position as the internet's main gateway.

A federal judge on Tuesday ordered a shake-up of Google's search engine in a crackdown aimed at curbing the corrosive power of an illegal monopoly while rebuffing the U.S. government's attempt to break up the company and impose other restraints.

The 226-page decision made by U.S. District Judge Amit Mehta in Washington, D.C., will likely ripple across the technological landscape at a time when the industry is being reshaped by breakthroughs in artificial intelligence — including conversational "answer engines" as companies like ChatGPT and Perplexity try to upend Google's long-held position as the internet's main gateway.

https://yahoo.com/

The innovations and competition being unleashed by generative artificial intelligence, or "GenAI," have reshaped the judge's approach to remedies in the nearly five-year-old antitrust case.

"Unlike the typical case where the court's job is to resolve a dispute based on historic facts, here the court is asked to gaze into a crystal ball and look to the future. Not exactly a judge's forte," Mehta wrote.

Investors seemed to interpret the ruling as a relatively light slap on the wrist for Google, as the stock price of its corporate parent, Alphabet Inc., surged nearly 3% in extended trading.

Allowing the default search deals to continue is more than just a victory for Google. It's also something that Apple, which receives more than $20 billion annually from Google, and the beneficiaries of the payments urged Mehta to maintain.

In hearings earlier this year, Apple warned the judge that banning the contracts would deprive the company of money that it funnels into its own innovative research. The Cupertino, California, company also cautioned that the ban could have the unintended consequence of making Google even more powerful by pocketing the money it had been spending on deals while most consumers will still end up flocking to Google's search engine anyway.

Others, such as the owners of the Firefox search engine, asserted that losing the Google contracts would threaten their future survival by depriving them of essential revenue.

Allowing the default search deals to continue is more than just a victory for Google. It's also something that Apple, which receives more than $20 billion annually from Google, and the beneficiaries of the payments urged Mehta to maintain.

In hearings earlier this year, Apple warned the judge that banning the contracts would deprive the company of money that it funnels into its own innovative research. The Cupertino, California, company also cautioned that the ban could have the unintended consequence of making Google even more powerful by pocketing the money it had been spending on deals while most consumers will still end up flocking to Google's search engine anyway.

Others, such as the owners of the Firefox search engine, asserted that losing the Google contracts would threaten their future survival by depriving them of essential revenue.

Leave a Reply

Your email address will not be published. Required fields are marked *