@@ -184,8 +184,10 @@ bot.command("users", async (ctx) => {
184184bot . command ( "stats" , async ( ctx ) => {
185185 const users = await manageUsers ( { } , "read" ) ;
186186 const products = await manageProducts ( { } , "read" ) ;
187+ let userCount = 0 ;
188+ products . result . map ( ( p ) => ( p += item . users . length ) ) ;
187189 ctx . reply (
188- `Total Users: ${ users . result . length } \nTotal Products: ${ products . result . length } `
190+ `Total Users: ${ users . result . length } \nTotal Products: ${ userCount } `
189191 ) ;
190192} ) ;
191193
@@ -222,23 +224,25 @@ const track = async () => {
222224 const details = await getProductDetails ( product . link , product . merchant ) ;
223225 if ( details . ok && ! isNaN ( details . price ) && details . price !== product . price ) {
224226 try {
225- await manageProducts ( { tracking_id : product . tracking_id , userId : product . userId , merchant : product . merchant , title : details . title , link : product . link , initPrice : product . price , price : details . price , } , "update" ) ;
226- bot . api . sendMessage (
227- product . userId ,
228- `<a href="${ details . image } "> </a><b>Price has been ${ details . price > product . price ? "increased" : "decreased"
229- } by ${ Math . abs ( product . price - details . price ) } </b>. \n\n<b>${ details . title
230- } </b>\n\nCurrent Price: <b>${ details . price } </b>\nLink: <a href="${ details . link
231- } ">${ product . merchant } </a>\n\nTo stop tracking send /stop_${ product . tracking_id
232- } `,
233- {
234- parse_mode : "HTML" ,
235- reply_markup : {
236- inline_keyboard : details ?. link ? [
237- [ { text : "Buy Now" , url : details . link } ] ,
238- [ { text : "Stop Tracking - " + product . tracking_id , callback_data : `stopTracking` , } ] ]
239- : [ ]
240- }
241- } ) ;
227+ await manageProducts ( { tracking_id : product . tracking_id , userId : product . userId , merchant : product . merchant , title : details . title , link : product . link , initPrice : product . price , price : details . price , users : product . users } , "update" ) ;
228+ await Promise . all ( product . users . map ( async user => {
229+ bot . api . sendMessage (
230+ user . userId ,
231+ `<a href="${ details . image } "> </a><b>Price has been ${ details . price > product . price ? "increased" : "decreased"
232+ } by ${ Math . abs ( product . price - details . price ) } </b>. \n\n<b>${ details . title
233+ } </b>\n\nCurrent Price: <b>${ details . price } </b>\nLink: <a href="${ details . link
234+ } ">${ product . merchant } </a>\n\nTo stop tracking send /stop_${ user . tracking_id
235+ } `,
236+ {
237+ parse_mode : "HTML" ,
238+ reply_markup : {
239+ inline_keyboard : details ?. link ? [
240+ [ { text : "Buy Now" , url : details . link } ] ,
241+ [ { text : "Stop Tracking - " + user . tracking_id , callback_data : `stopTracking` , } ] ]
242+ : [ ]
243+ }
244+ } ) ;
245+ } ) )
242246 } catch ( e ) { bot . start ( ) }
243247 }
244248 } )
0 commit comments