Skip to content

Commit 62c20a2

Browse files
authored
Merge pull request #10 from LiberMall/codex/migrate-subscribers-to-database-or-json
refactor: store subscribers in json
2 parents 20b2c61 + 67d1032 commit 62c20a2

File tree

3 files changed

+30
-20
lines changed

3 files changed

+30
-20
lines changed

subscribers.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[]

subscribers.php

Lines changed: 0 additions & 1 deletion
This file was deleted.

tgbot.php

Lines changed: 29 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -69,25 +69,35 @@
6969
############### START ###############
7070
if( preg_match("/\/start/i", $data['message']['text'] )){
7171

72-
//register subscriber
73-
$newrecord = $chat_id."|".addslashes($data['message']['from']['first_name'])." ".addslashes($data['message']['from']['last_name'])."|".addslashes($data['message']['from']['username']);
74-
if(file_exists('subscribers.php')) include 'subscribers.php';
75-
if(isset($user) && count($user) > 0){
76-
if(!in_array($newrecord, $user)){
77-
$towrite = "\$user[] = '".addslashes($newrecord)."';\n";
78-
79-
}
80-
}else{
81-
$towrite = "\$user[] = '".addslashes($newrecord)."';\n";
82-
} // end IF-ELSE count($user) > 0
83-
84-
if(isset($towrite) && $towrite != ''){
85-
if($file = fopen("subscribers.php", "a+")){
86-
fputs($file,$towrite);
87-
fclose($file);
88-
} // end frite to file
89-
}
90-
//register subscriber
72+
//register subscriber
73+
$subscribersFile = 'subscribers.json';
74+
$first = isset($data['message']['from']['first_name']) ? $data['message']['from']['first_name'] : '';
75+
$last = isset($data['message']['from']['last_name']) ? $data['message']['from']['last_name'] : '';
76+
$usern = isset($data['message']['from']['username']) ? $data['message']['from']['username'] : '';
77+
$newrecord = [
78+
'chat_id' => (int)$chat_id,
79+
'name' => trim(filter_var($first." ".$last, FILTER_SANITIZE_FULL_SPECIAL_CHARS)),
80+
'username' => trim(filter_var($usern, FILTER_SANITIZE_FULL_SPECIAL_CHARS))
81+
];
82+
$subscribers = [];
83+
if(file_exists($subscribersFile)){
84+
$fileData = file_get_contents($subscribersFile);
85+
$subscribers = json_decode($fileData, true);
86+
if(!is_array($subscribers)) $subscribers = [];
87+
}
88+
$exists = false;
89+
foreach($subscribers as $record){
90+
if($record['chat_id'] === $newrecord['chat_id']){
91+
$exists = true;
92+
break;
93+
}
94+
}
95+
if(!$exists){
96+
$subscribers[] = $newrecord;
97+
file_put_contents($subscribersFile, json_encode($subscribers, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE), LOCK_EX);
98+
@chmod($subscribersFile, 0600);
99+
}
100+
//register subscriber
91101

92102
$r = saveReferral($data);
93103

0 commit comments

Comments
 (0)