Files
rank24.pl/api.php
2024-12-12 15:33:18 +01:00

163 lines
5.5 KiB
PHP

<?
error_reporting( E_ALL ^ E_NOTICE ^ E_STRICT ^ E_WARNING ^ E_DEPRECATED );
function __autoload_my_classes( $classname )
{
$q = explode( '\\' , $classname );
$c = array_pop( $q );
$f = 'autoload/' . implode( '/' , $q ) . '/class.' . $c . '.php';
if ( $c == 'Savant3' )
{
require_once 'autoload/Savant3.php';
return true;
}
if ( file_exists( $f ) )
require_once( $f );
}
spl_autoload_register( '__autoload_my_classes' );
mb_internal_encoding( "UTF-8" );
define( 'OPD_DIR' , 'autoload/' );
require_once OPD_DIR . 'opd.class.php';
require_once 'config.php';
require_once 'libraries/medoo.php';
require_once 'libraries/grid/config.php';
require_once 'resources/phpmailer/class.phpmailer.php';
date_default_timezone_set('Europe/Warsaw');
header( 'Content-Type: text/html; charset=utf-8' );
session_start();
$db = opdClass::create(
array(
'dsn' => 'mysql:host=' . $config['db']['host'] . ';dbname=' . $config['db']['name'],
'user' => $config['db']['user'] ,
'password' => $config['db']['password'] ,
'cache' => 'temp/' ,
'debugConsole' => $config['db']['debug']
)
);
$db -> query( 'SET NAMES utf8' );
$mdb = new medoo( [
'database_type' => 'mysql',
'database_name' => $config['db']['name'],
'server' => $config['db']['host'],
'username' => $config['db']['user'],
'password' => $config['db']['password'],
'charset' => 'utf8'
] );
if ( \S::get( 'action' ) == 'majestic_domain_save' )
{
if ( \S::get( 'okazwloka' ) == true )
{
$results = str_replace( 'OK|', '', \S::get( 'result' ) );
$results = json_decode( $results, true );
$results = array_pop( $results );
$feb = $results['feb'];
$tf = $results['tf'];
$cf = $results['cf'];
$rd = $results['frd'];
}
else
{
$results = json_decode( \S::get( 'result' ), true );
$feb = $results['ExtBackLinks'];
$tf = $results['TrustFlow'];
$cf = $results['CitationFlow'];
$rd = $results['RefDomains'];
}
$mdb -> update( 'pro_rr_sites', [ 'majestic_date' => date( 'Y-m-d H:i:s' ) ], [ 'id' => \S::get( 'domain_id' ) ] );
$mdb -> insert( 'pro_rr_sites_majestic', [
'site_id' => \S::get( 'domain_id' ),
'feb' => $feb,
'cf' => $cf,
'tf' => $tf,
'rd' => $rd,
'date' => date( 'Y-m-d' )
] );
echo json_encode( [ 'result' => 'ok' ] );
exit;
}
if ( \S::get( 'action' ) == 'majestic_domain_check' )
{
$results = $mdb -> query( 'SELECT '
. 'id, url '
. 'FROM '
. 'pro_rr_sites '
. 'WHERE '
. '( DATE_ADD( majestic_date, INTERVAL ' . $config['site']['majestic_interval'] . ' DAY ) <= \'' . date( 'Y-m-d' ) . '\' OR majestic_date IS NULL ) '
. 'AND '
. 'majestic = 1 '
. 'ORDER BY '
. 'majestic_date ASC '
. 'LIMIT 1' ) -> fetchAll( \PDO::FETCH_ASSOC );
if ( is_array( $results ) and !empty( $results ) )
{
$results[0]['url'] = str_replace( 'www.', '', $results[0]['url'] );
$results[0]['result'] = 'ok';
echo json_encode( $results[0] );
}
else
echo json_encode( [ 'result' => 'bad' ] );
exit;
}
if ( \S::get( 'action' ) == 'semstorm_domain_save' )
{
$results = json_decode( \S::get( 'result' ), true );
foreach ( $results['results'][\S::get( 'url' )] as $key => $val )
{
if ( $key <= 3 )
$top3 += $val;
if ( $key <= 10 )
$top10 += $val;
if ( $key <= 50 )
$top50 += $val;
}
$mdb -> update( 'pro_rr_sites', [ 'semstorm_date' => date( 'Y-m-d H:i:s' ) ], [ 'id' => \S::get( 'domain_id' ) ] );
$mdb -> insert( 'pro_rr_sites_semstorm', [
'site_id' => \S::get( 'domain_id' ),
'top3' => (int)$top3,
'top10' => (int)$top10,
'top50' => (int)$top50,
'date' => date( 'Y-m-d' )
] );
echo json_encode( [ 'result' => 'ok' ] );
exit;
}
if ( \S::get( 'action' ) == 'semstorm_domain_check' )
{
$results = $mdb -> query( 'SELECT '
. 'id, url '
. 'FROM '
. 'pro_rr_sites '
. 'WHERE '
. '( DATE_ADD( semstorm_date, INTERVAL ' . $config['site']['semstorm_interval'] . ' DAY ) <= \'' . date( 'Y-m-d' ) . '\' OR semstorm_date IS NULL ) '
. 'AND '
. 'semstorm = 1 '
. 'ORDER BY '
. 'semstorm_date ASC '
. 'LIMIT 1' ) -> fetchAll( \PDO::FETCH_ASSOC );
if ( is_array( $results ) and !empty( $results ) )
{
$results[0]['url'] = str_replace( 'www.', '', $results[0]['url'] );
$results[0]['result'] = 'ok';
echo json_encode( $results[0] );
}
else
echo json_encode( [ 'result' => 'bad' ] );
exit;
}
echo json_encode( [ 'result' => 'bad' ] );