mirror of
https://github.com/house-of-vanity/tracker_watcher.git
synced 2025-07-07 18:04:06 +00:00
Add sql schema. Implement simple notification interface.
This commit is contained in:
@ -2,13 +2,40 @@
|
||||
$config = parse_ini_file("../settings.ini");
|
||||
$dbh = new PDO('mysql:host=localhost;dbname=test', 'root');
|
||||
|
||||
$request = file_get_contents( 'php://input' );
|
||||
$request = file_get_contents('php://input');
|
||||
$request = json_decode( $request, TRUE );
|
||||
|
||||
function send($id, $msg, $config) {
|
||||
function register(){
|
||||
global $dbh;
|
||||
global $config;
|
||||
global $user_id;
|
||||
global $username;
|
||||
$stmt = $dbh->query(
|
||||
'SELECT id FROM `contact`
|
||||
WHERE user_id = "'.$user_id.'"'
|
||||
);
|
||||
if($stmt->rowCount() == 0)
|
||||
{
|
||||
$stmt = $dbh->query(
|
||||
'INSERT into contact (username, user_id)
|
||||
VALUES ("'.$username.'","'.$user_id.'")'
|
||||
);
|
||||
send('Hello! Send me an URL to rutracker.org topic and i will notify you when topic will be updated.');
|
||||
}
|
||||
else
|
||||
{
|
||||
send('Send me an URL to rutracker.org topic.');
|
||||
die();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function send($msg, $die = FALSE) {
|
||||
global $config;
|
||||
global $user_id;
|
||||
$url = $config['telegram_api'].'bot'.$config['telegram_key'].'/sendMessage';
|
||||
$data = array(
|
||||
'chat_id' => $id,
|
||||
'chat_id' => $user_id,
|
||||
'text' => $msg
|
||||
);
|
||||
$options = array(
|
||||
@ -24,6 +51,70 @@ function send($id, $msg, $config) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
function notify($url){
|
||||
global $user_id;
|
||||
global $config;
|
||||
global $dbh;
|
||||
if (
|
||||
(parse_url($url, PHP_URL_HOST) == 'rutracker.org') &&
|
||||
(parse_url($url, PHP_URL_PATH) == '/forum/viewtopic.php') &&
|
||||
(parse_url($url, PHP_URL_QUERY))
|
||||
) {
|
||||
|
||||
parse_str((parse_url($url, PHP_URL_QUERY)), $url);
|
||||
if (!isset($url['t']))
|
||||
{
|
||||
send('URL is invalid.', $die = TRUE);
|
||||
die();
|
||||
}
|
||||
$url = $url['t'];
|
||||
$stmt = $dbh->query(
|
||||
'SELECT * FROM notification n
|
||||
LEFT JOIN contact c ON n.user_id = c.user_id
|
||||
WHERE c.user_id = "'.$user_id.'" AND n.topic_id = "'.$url.'"'
|
||||
);
|
||||
if($stmt->rowCount() > 0)
|
||||
{
|
||||
send('You already subscribed for '.$url." updates.", $die = TRUE);
|
||||
}else{
|
||||
send('You will be subscribed for '.$url." updates.");
|
||||
$stmt = $dbh->query(
|
||||
'SELECT * FROM `url`
|
||||
WHERE link = "'.$url.'"'
|
||||
);
|
||||
if($stmt->rowCount() > 0)
|
||||
{
|
||||
// make notify for new user using presented url id
|
||||
$id = $stmt->fetch();
|
||||
$stmt = $dbh->query(
|
||||
'INSERT INTO notification (topic_id, user_id)
|
||||
VALUES ("'.$id['link'].'","'.$user_id.'")'
|
||||
);
|
||||
}else{
|
||||
// insert new url and user in db
|
||||
$json = file_get_contents(
|
||||
'http://api.rutracker.org/v1/get_tor_topic_data?by=topic_id&val='.$url
|
||||
);
|
||||
$obj = json_decode($json);
|
||||
|
||||
$stmt = $dbh->query(
|
||||
'INSERT into url (link,u_date)
|
||||
VALUES ("'.$url.'","'.gmdate("Y-m-d H:i:s", $obj->result->{$url}->reg_time).'")'
|
||||
);
|
||||
$stmt = $dbh->query(
|
||||
'INSERT into notification (user_id, topic_id)
|
||||
VALUES ("'.$user_id.'","'.$url.'")'
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}else{
|
||||
send('URL is invalid. Only rutracker supported right now.', $die = TRUE);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if( !$request )
|
||||
{
|
||||
die();
|
||||
@ -37,42 +128,15 @@ else
|
||||
$chatId = $request['message']['chat']['id'];
|
||||
$message = $request['message']['text'];
|
||||
$user_id = $request['message']['from']['id'];
|
||||
//$user_id = '124317807';
|
||||
//$message = 'https://rutracker.org/forum/viewtopic.php?t=5505520';
|
||||
$username = $request['message']['from']['username'];
|
||||
|
||||
if($message == '/start')
|
||||
{
|
||||
$stmt = $dbh->query(
|
||||
'SELECT id FROM `contact`
|
||||
WHERE user_id = "'.$user_id.'"'
|
||||
);
|
||||
if($stmt->rowCount() == 0)
|
||||
{
|
||||
$stmt = $dbh->query(
|
||||
'INSERT into contact (username, user_id)
|
||||
VALUES ("'.$username.'","'.$user_id.'")'
|
||||
);
|
||||
send(
|
||||
$user_id,
|
||||
'Hello! Send me an URL and i will notify you when topic will be updated.',
|
||||
$config
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
send(
|
||||
$user_id,
|
||||
'Hello again. Send me an URL and i will notify you when topic will be updated.',
|
||||
$config
|
||||
);
|
||||
die();
|
||||
}
|
||||
// if message is an URL
|
||||
}elseif(!(filter_var($message, FILTER_VALIDATE_URL) === FALSE)) {
|
||||
send(
|
||||
$user_id,
|
||||
'Recognized as an URL',
|
||||
$config
|
||||
);
|
||||
if(!(filter_var($message, FILTER_VALIDATE_URL) === FALSE)) {
|
||||
#send('Recognized as an URL');
|
||||
notify($message);
|
||||
}else{
|
||||
register();
|
||||
}
|
||||
}
|
||||
?>
|
Reference in New Issue
Block a user