Ich hatte damals für Losepreis.info noch http://ebuuk.de/ verwendet,
aktuell verwende ich für meine Info:
PHP-Code:
function losepreisupdate() { global $system;
bcscale( 3 );
$error = '';
$oldlosepreis = mysql_fetch_assoc( mysql_query( "SELECT `umrechnungswert` , `rundungsstellen` FROM `sys_waehrungen` WHERE `id` = 3 LIMIT 1" , $system['datenbank'][1]['resource'] ) );
$europreis = mysql_fetch_assoc( mysql_query( "SELECT `umrechnungswert` , `rundungsstellen` FROM `sys_waehrungen` WHERE `id` = 2 LIMIT 1" , $system['datenbank'][1]['resource'] ) );
$xml = simplexml_load_file( 'http://www.losepreis.de/api' );
$alterpreis = bcmul( bcdiv( 1 , bcmul( bcdiv( $oldlosepreis['umrechnungswert'], $europreis['umrechnungswert'], 30 ), 1, 30 ), 30 ), 1000000000 );
$neu_max = $system['klamm']['preisupdate']['max_neu'] * $alterpreis;
$neu_min = $system['klamm']['preisupdate']['min_neu'] * $alterpreis;
$aender_down = $system['klamm']['preisupdate']['down_aender'] * $alterpreis;
$aender_up = $system['klamm']['preisupdate']['up_aender'] * $alterpreis;
if ( !filter_var( $xml->durchschnitt->geldkurs, FILTER_VALIDATE_FLOAT, FILTER_FLAG_ALLOW_THOUSAND ) ) $error = 'wert durchschnitt->geldkurs der geparst wurde ist nicht valide';
if ( !filter_var( $xml->forum->briefkurs, FILTER_VALIDATE_FLOAT, FILTER_FLAG_ALLOW_THOUSAND ) ) $error = 'wert forum->briefkurs der geparst wurde ist nicht valide';
if ( !filter_var( $xml->forum->geldkurs, FILTER_VALIDATE_FLOAT, FILTER_FLAG_ALLOW_THOUSAND ) ) $error = 'wert forum->geldkurs der geparst wurde ist nicht valide';
if ( !filter_var( $xml->durchschnitt->briefkurs , FILTER_VALIDATE_FLOAT, FILTER_FLAG_ALLOW_THOUSAND ) ) $error = 'wert durchschnitt->briefkurs der geparst wurde ist nicht valide';
$neu = bcdiv( bcadd( bcadd( bcadd( $xml->durchschnitt->briefkurs, $xml->durchschnitt->geldkurs ), $xml->forum->briefkurs ), $xml->forum->geldkurs ), 4 );
if ( $neu > $neu_max ) $error = 'Neuer kurs zu stark gestiegen';
if ( $neu < $neu_min ) $error = 'Neuer Kurs zu stark gesunken ';
if ( $neu > $aender_down && $neu < $alterpreis ) $error = 'änderung nach unten noch zu klein ';
if ( $neu < $aender_up && $neu > $alterpreis ) $error = 'änderung nach oben noch zu klein ';
$neuerkursdb = round( bcmul( bcdiv( 1000000000, $neu, 30 ), $europreis['umrechnungswert'], 0 ), - 5 );
if ( $error == '' ) {
mysql_query( "UPDATE `sys_waehrungen` SET `umrechnungswert` = '" . $neuerkursdb . "' WHERE `sys_waehrungen`.`id` = 3 ", $system['datenbank'][1]['resource'] );
$error .= "UPDATE `sys_waehrungen` SET `umrechnungswert` = '" . $neuerkursdb . "' WHERE `sys_waehrungen`.`id` = 3 ";
$error .= '<br>
Geparst $xml->durchschnitt->briefkurs: ' . $xml->durchschnitt->briefkurs . '
Geparst $xml->durchschnitt->geldkurs: ' . $xml->durchschnitt->geldkurs . '
Geparst $xml->forum->briefkurs: ' . $xml->forum->briefkurs . '
Geparst $xml->forum->geldkurs: ' . $xml->forum->geldkurs . '
Neuer Geparster Kurs: ' . $neu . '
Alter Preis aus DB : ' . $alterpreis . '
Maximaler neuer preis: ' . $neu_max . '
Minimaler neuer Preis: ' . $neu_min . '
Minimaler Fall auf : ' . $aender_down . '
Minimaler anstieg auf : ' . $aender_up . '
Neuer umgerechneter Kurs : ' . $neuerkursdb . '
';
return $error;
usermail( $system['cronmail'] , ' Losepreisupdate' , $error );
} else {
$error .= '<br>
Geparst $xml->durchschnitt->briefkurs: ' . $xml->durchschnitt->briefkurs . '
Geparst $xml->durchschnitt->geldkurs: ' . $xml->durchschnitt->geldkurs . '
Geparst $xml->forum->briefkurs: ' . $xml->forum->briefkurs . '
Geparst $xml->forum->geldkurs: ' . $xml->forum->geldkurs . '
Neuer Geparster Kurs: ' . $neu . '
Alter Preis aus DB : ' . $alterpreis . '
Maximaler neuer preis: ' . $neu_max . '
Minimaler neuer Preis: ' . $neu_min . '
Minimaler Fall auf : ' . $aender_down . '
Minimaler anstieg auf : ' . $aender_up . '
Neuer umgerechneter Kurs : ' . $neuerkursdb . '
';
return $error;
usermail( $system['cronmail'] , ' Losepreisupdate' , $error );
}
}
unf für BTC
PHP-Code:
function bitcoinpreisupdate() { global $system;
bcscale( 3 );
$error = '';
$abbruch = true;
$neuerpreise = file_get_contents( "http://api.bitcoincharts.com/v1/weighted_prices.json" );
if ( $neuerpreise ) {
$neuerpreis = json_decode( $neuerpreise, true );
} else {
$error .= 'Bitcoinparsing nicht möglich';
$abbruch = false;
usermail( $system['cronmail'] , ' Bitcoinpreisupdate' , $error );
}
if ( $error == '' ) {
$oldpreis = mysql_fetch_assoc( mysql_query( "SELECT `umrechnungswert` , `rundungsstellen` FROM `sys_waehrungen` WHERE `id` = 4 LIMIT 1" , $system['datenbank'][1]['resource'] ) );
$neuerpreis = $neuerpreis['CHF']['24h'];
$alterpreis = bcdiv( 1 , $oldpreis['umrechnungswert'], 8 );
$neu_max = $system['bitcoin']['preisupdate']['max_neu'] * $alterpreis;
$neu_min = $system['bitcoin']['preisupdate']['min_neu'] * $alterpreis;
$aender_down = $system['bitcoin']['preisupdate']['down_aender'] * $alterpreis;
$aender_up = $system['bitcoin']['preisupdate']['up_aender'] * $alterpreis;
if ( false === filter_var( $neuerpreis , FILTER_VALIDATE_FLOAT, FILTER_FLAG_ALLOW_THOUSAND ) ) $error = 'Der geparst Wert ist nicht valide';
if ( $neuerpreis > $neu_max ) $error = 'Neuer kurs zu stark gestiegen';
if ( $neuerpreis < $neu_min ) $error = 'Neuer Kurs zu stark gesunken ';
if ( $neuerpreis > $aender_down && $neuerpreis < $alterpreis ) $error = 'änderung nach unten noch zu klein ';
if ( $neuerpreis < $aender_up && $neuerpreis > $alterpreis ) $error = 'änderung nach oben noch zu klein ';
$neuerkursdb = round( bcdiv( 1, $neuerpreis, 8 ), $oldpreis['rundungsstellen'] );
}
if ( $error == '' ) {
mysql_query( "UPDATE `sys_waehrungen` SET `umrechnungswert` = '" . $neuerkursdb . "' WHERE `sys_waehrungen`.`id` = 4 ", $system['datenbank'][1]['resource'] );
$error .= "UPDATE `sys_waehrungen` SET `umrechnungswert` = '" . $neuerkursdb . "' WHERE `sys_waehrungen`.`id` = 4 ";
$error .= '<br>
Neuer Geparster Kurs: ' . $neuerpreis . '
Alter Preis aus DB : ' . $alterpreis . '
Maximaler neuer preis: ' . $neu_max . '
Minimaler neuer Preis: ' . $neu_min . '
Minimaler Fall auf : ' . $aender_down . '
Minimaler anstieg auf : ' . $aender_up . '
Neuer umgerechneter Kurs : ' . $neuerkursdb . '
';
return $error;
usermail( $system['cronmail'] , ' Bitcoinpreisupdate' , $error );
} elseif ( $abbruch ) {
$error .= '<br>
Neuer Geparster Kurs: ' . $neuerpreis . '
Alter Preis aus DB : ' . $alterpreis . '
Maximaler neuer preis: ' . $neu_max . '
Minimaler neuer Preis: ' . $neu_min . '
Minimaler Fall auf : ' . $aender_down . '
Minimaler anstieg auf : ' . $aender_up . '
Neuer umgerechneter Kurs : ' . $neuerkursdb . '
';
return $error;
usermail( $system['cronmail'] , ' Bitcoinpreisupdate' , $error );
} }