-
Notifications
You must be signed in to change notification settings - Fork 0
/
coinbase.php
87 lines (71 loc) · 2.52 KB
/
coinbase.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?php
//if you can't manage cron on your server, you can use this free service
//https://cron-job.org/
$btc_price = makeCall('BTC-EUR');
$telegramBtc = checkPriceChanges('btc', $btc_price, 'bitcoin_price.txt', ['upStart' => 15000, 'upEnd' => 100000, 'downStart' => 15000, 'offset' => 1000]);
$eth_price = makeCall('ETH-EUR');
$telegramEth = checkPriceChanges('eth', $eth_price, 'eth_price.txt', ['upStart' => 500, 'upEnd' => 10000, 'downStart' => 500, 'offset' => 100]);
if($telegramBtc['send'] || $telegramEth['send']){
$msg = $telegramBtc['msg'].PHP_EOL.$telegramEth['msg'];
telegram($msg);
}
/**
* return float
*/
function makeCall($crypto){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.coinbase.com/v2/prices/'.$crypto.'/buy');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$result = json_decode($result);
return (float) $result->data->amount;
}
/**
* return array
*/
function checkPriceChanges($crypto, $currentPrice, $fileName, $values){
$telegramMsg = false;
$sendTelegram = false;
$lastPrice = (float) file_get_contents($fileName);
for ($i = $values['upStart']; $i < $values['upEnd']; $i += $values['offset']){
if($currentPrice > $i && $lastPrice < $i){
$telegramMsg = $crypto.' = '.$currentPrice.' €';
$sendTelegram = true;
file_put_contents($fileName, $currentPrice);
}
}
for ($i = $values['downStart']; $i > 0; $i -= $values['offset']){
if($currentPrice < $i && $lastPrice > $i){
$telegramMsg = 'ATTENZIONE* '.$crypto.' = '.$currentPrice.' €';
$sendTelegram = true;
file_put_contents($fileName, $currentPrice);
}
}
file_put_contents($fileName, $currentPrice);
return ['send' => $sendTelegram, 'msg' => $telegramMsg];
}
/**
* @param $msg
*/
function telegram($msg) {
$telegrambot = '[YOUR BOT ID]';
$telegramchatid = '[YOUR CHAT ID]';
$url = 'https://api.telegram.org/bot'.$telegrambot.'/sendMessage';
$msg .= PHP_EOL.'https://www.coinbase.com/';
$data = [
'chat_id' => $telegramchatid,
'text' => $msg
];
$options=[
'http' => [
'method'=>'POST',
'header' => "Content-Type:application/x-www-form-urlencoded\r\n",
'content' => http_build_query($data)
]
];
$context = stream_context_create($options);
$result = file_get_contents($url,false,$context);
//echo 'Telegram: sent' . PHP_EOL;
}