ÿØÿà JFIF    ÿÛ „  ( %"1!%)+...383,7(-.+  -+++--++++---+-+-----+---------------+---+-++7-----ÿÀ  ß â" ÿÄ     ÿÄ H    !1AQaq"‘¡2B±ÁÑð#R“Ò Tbr‚²á3csƒ’ÂñDS¢³$CÿÄ   ÿÄ %  !1AQa"23‘ÿÚ   ? ôÿ ¨pŸªáÿ —åYõõ\?àÒü©ŠÄï¨pŸªáÿ —åYõõ\?àÓü©ŠÄá 0Ÿªáÿ Ÿå[úƒ ú®ði~TÁbqÐ8OÕpÿ ƒOò¤Oè`–RÂáœá™êi€ßÉ< FtŸI“öÌ8úDf´°å}“¾œ6  öFá°y¥jñÇh†ˆ¢ã/ÃÐ:ªcÈ "Y¡ðÑl>ÿ ”ÏËte:qž\oäŠe÷󲍷˜HT4&ÿ ÓÐü6ö®¿øþßèô Ÿ•7Ñi’•j|“ñì>b…þS?*Óôÿ ÓÐü*h¥£ír¶ü UãS炟[AÐaè[ûª•õ&õj?†Éö+EzP—WeÒírJFt ‘BŒ†Ï‡%#tE Øz ¥OÛ«!1›üä±Í™%ºÍãö]°î(–:@<‹ŒÊö×òÆt¦ãº+‡¦%ÌÁ²h´OƒJŒtMÜ>ÀÜÊw3Y´•牋4ǍýʏTì>œú=Íwhyë,¾Ôò×õ¿ßÊa»«þˆѪQ|%6ž™A õ%:øj<>É—ÿ Å_ˆCbõ¥š±ý¯Ýƒï…¶|RëócÍf溪“t.СøTÿ *Ä¿-{†çàczůŽ_–^XþŒ±miB[X±d 1,é”zEù»& î9gœf™9Ð'.;—™i}!ôšåîqêÛ٤ёý£½ÆA–àôe"A$˝Úsäÿ ÷Û #°xŸëí(l »ý3—¥5m! rt`†0~'j2(]S¦¦kv,ÚÇ l¦øJA£Šƒ J3E8ÙiŽ:cÉžúeZ°€¯\®kÖ(79«Ž:¯X”¾³Š&¡* ….‰Ž(ÜíŸ2¥ª‡×Hi²TF¤ò[¨íÈRëÉ䢍mgÑ.Ÿ<öäS0í„ǹÁU´f#Vß;Õ–…P@3ío<ä-±»Ž.L|kªÀê›fÂ6@»eu‚|ÓaÞÆŸ…¨ááå>åŠ?cKü6ùTÍÆ”†sĤÚ;H2RÚ†õ\Ö·Ÿn'¾ ñ#ºI¤Å´%çÁ­‚â7›‹qT3Iï¨ÖÚ5I7Ë!ÅOóŸ¶øÝñØôת¦$Tcö‘[«Ö³šÒ';Aþ ¸èíg A2Z"i¸vdÄ÷.iõ®§)¿]¤À†–‡É&ä{V¶iŽ”.Ó×Õÿ û?h¬Mt–íª[ÿ Ñÿ ÌV(í}=ibÔ¡›¥¢±b Lô¥‡piη_Z<‡z§èŒ)iÖwiÇ 2hÙ3·=’d÷8éŽ1¦¸c¤µ€7›7Ø ð\á)} ¹fËí›pAÃL%âc2 í§æQz¿;T8sæ°qø)QFMð‰XŒÂ±N¢aF¨…8¯!U  Z©RÊ ÖPVÄÀÍin™Ì-GˆªÅËŠ›•zË}º±ŽÍFò¹}Uw×#ä5B¤{î}Ð<ÙD é©¤&‡ïDbàÁôMÁ." ¤‡ú*õ'VŽ|¼´Úgllº¼klz[Æüï÷Aób‡Eÿ dÑ»Xx9ÃÜ£ÁT/`¼¸vI±Ýµ·Ë‚“G³þ*Ÿû´r|*}<¨îºœ @¦mÄ’M¹”.œ«Y–|6ÏU¤jç¥ÕÞqO ˜kDÆÁ¨5ÿ š;ÐЦ¦€GÙk \ –Þ=â¼=SͧµªS°ÚÍpÜãQűÀõ¬?ÃÁ1Ñ•õZà?hóœ€ L¦l{Y*K˜Ù›zc˜–ˆâ ø+¾ ­-Ök¥%ùEÜA'}ˆ><ÊIè“bpÍ/qÞâvoX€w,\úªò6Z[XdÒæ­@Ö—€$òJí#é>'°Ú ôª˜<)4ryÙ£|óAÅn5žêŸyÒäMÝ2{"}‰–¤l÷ûWX\l¾Á¸góÉOÔ /óñB¤f¸çñ[.P˜ZsÊË*ßT܈§QN¢’¡¨§V¼(Üù*eÕ“”5T¨‹Âê¥FŒã½Dü[8'Ò¥a…Ú¶k7a *•›¼'Ò·\8¨ª\@\õ¢¦íq+DÙrmÎ…_ªæ»ŠÓœ¡¯’Ré9MÅ×D™lælffc+ŒÑ,ý™ÿ ¯þǤ=Å’Á7µ÷ÚÛ/“Ü€ñýã¼àí¾ÕÑ+ƒ,uµMâÀÄbm:ÒÎPæ{˜Gz[ƒ¯«® KHà`ߨŠéí¯P8Aq.C‰ à€kòpj´kN¶qô€…Õ,ÜNŠª-­{Zö’æû44‰sŽè‰îVíRœÕm" 6?³D9¡ÇTíÅꋇ`4«¸ÝÁô ï’ýorqКÇZ«x4Žâéþuïf¹µö[P ,Q£éaX±`PÉÍZ ¸äYúg üAx ’6Lê‚xÝÓ*äQ  Ï’¨hÍ =²,6ï#rÃ<¯–£»ƒ‹,–ê•€ aÛsñ'%Æ"®ÛüìBᝠHÚ3ß°©$“XnœÖ’î2ËTeûìxîß ¦å¿çÉ ðK§þ{‘t‚Ϋ¬jéîZ[ ”š7L¥4VÚCE×]m¤Øy”ä4-dz£œ§¸x.*ãÊÊ b÷•h:©‡¦s`BTÁRû¾g⻩‹jø sF¢àJøFl‘È•Xᓁà~*j¯ +(ÚÕ6-£¯÷GŠØy‚<Ç’.F‹Hœw(+)ÜÜâÈzÄäT§FߘãÏ;DmVœ3Àu@mÚüXÝü•3B¨òÌÁÛ<·ÃÜ z,Ì@õÅ·d2]ü8s÷IôÞ¯^Ç9¢u„~ëAŸï4«M? K]­ÅàPl@s_ p:°¬ZR”´›JC[CS.h‹ƒïËœ«Æ]–÷ó‚wR×k7X‰k›‘´ù¦=¡«‰¨¨Â')—71ó’c‡Ðúµ `é.{§p¹ój\Ž{1h{o±Ý=áUÊïGÖŒõ–-BÄm+AZX¶¡ ïHðæ¥JmÙ;…䡟ˆ¦ ° äšiÉg«$üMk5¤L“’çÊvïâï ,=f“"íἊ5ô¬x6{ɏžID0e¸vçmi'︧ºð9$ò¹÷*£’9ÿ ²TÔ…×>JV¥}Œ}$p[bÔ®*[jzS*8 ”·T›Í–ñUîƒwo$áè=LT™ç—~ô·¤ÈÚ$榍q‰„+´kFm)ž‹©i–ËqÞŠ‰à¶ü( ‚•§ •°ò·‡#5ª•µÊ﯅¡X¨šÁ*F#TXJÊ ušJVÍ&=iÄs1‚3•'fý§5Ñ<=[íÞ­ PÚ;ѱÌ_~Ä££8rÞ ²w;’hDT°>ÈG¬8Á²ÚzŽ®ò®qZcqJêäÞ-ö[ܘbň±çb“ж31²n×iƒðÕ;1¶þÉ ªX‰,ßqÏ$>•î íZ¥Z 1{ç൵+ƒÕµ¥°T$§K]á»Ûï*·¤tMI’ÂZbŽÕiÒ˜}bÓ0£ª5›¨ [5Ž^ÝœWøÂÝh° ¢OWun£¤5 a2Z.G2³YL]jåtì”ä ÁÓ‘%"©<Ôúʰsº UZvä‡ÄiÆÒM .÷V·™ø#kèýiíÌ–ª)µT[)BˆõÑ xB¾B€ÖT¨.¥~ð@VĶr#¸ü*åZNDŽH;âi ],©£öØpù(šºãö¼T.uCê•4@ÿ GÕÛ)Cx›®0ø#:ÏðFÒbR\(€€Ä®fã4Þ‰Fä¯HXƒÅ,†öEÑÔÜ]Öv²?tLÃvBY£ú6Êu5ÅAQ³1‘’¬x–HŒÐ‡ ^ ¸KwJôÖŽ5×CÚ¨vÜ«/B0$×k°=ðbÇ(Ï)w±A†Á† 11Í=èQšµ626ŒÜ/`G«µ<}—-Ö7KEHÈÉðóȤmݱû±·ø«Snmá=“䫚mݱŸ¡¶~ó·“äUóJæúòB|E LêŽy´jDÔ$G¢þÐñ7óR8ýÒ…Ç› WVe#·Ÿ p·Fx~•ݤF÷0Èÿ K¯æS<6’¡WШ; ´ÿ ¥Êø\Òuî†åÝ–VNœkÒ7oòX¨Á­Ø÷FÎÑä±g÷ÿ M~Çî=p,X´ ÝÌÚÅ‹’ÃjÖ.ØöÏñ qïQ¤ÓZE†° =6·]܈ s¸>v•Ž^Ý\wq9r‰Î\¸¡kURÒ$­*‹Nq?Þª*!sŠÆ:TU_u±T+øX¡ ®¹¡,ÄâÃBTsÜ$Ø›4m椴zÜK]’’›Pƒ @€#â˜`é¹=I‡fiV•Ôî“nRm+µFPOhÍ0B£ €+¬5c v•:P'ÒyÎ ‰V~‚Ó†ÖuókDoh$å\*ö%Ю=£«…aȼ½÷Û.-½VŒŠ¼'lyî±1¬3ó#ÞE¿ÔS¤gV£m›=§\û"—WU¤ÚǼÿ ÂnÁGŒÃ ‚õN D³õNÚíŒÕ;HôyÄÈ©P¹Ä{:?R‘Ô¨âF÷ø£bÅó® JS|‚R÷ivýáâ€Æé¡è³´IئÑT!§˜•ت‚¬â@q€wnïCWÄ@JU€ê¯m6]Ï:£âx'+ÒðXvÓ¦Úm=–´7œ $ì“B£~p%ÕŸUþ« N@¼üï~w˜ñø5®—'Ôe»¤5ã//€ž~‰Tþ›Å7•#¤× Íö pÄ$ùeåì*«ÓŠEØWEÈsßg ¦ûvžSsLpºÊW–âµEWöˬH; ™!CYõZ ÃÄf æ#1W. \uWâ\,\Çf j’<qTbên›Î[vxx£ë 'ö¨1›˜ÀM¼Pÿ H)ƒêêŒA7s,|F“ 꺸k³9Ìö*ç®;Ö!Ö$Eiž•¹ÒÚ†ýóéÝû¾ÕS®ó$’NÝäŸz¤5r¦ãÄÃD÷Üø!°ø‡Ô&@m™Ì^Ãä­d q5Lnÿ N;.6½·N|#ä"1Nƒx“ã<3('&ñßt  ~ªu”1Tb㫨9ê–›–bìd$ߣ=#ÕãÒmU¯eí$EFù5ýYô櫨æì™Ç—±ssM]·á¿0ÕåJRÓªîiƒ+O58ÖñªŠÒx" \µâá¨i’¤i —Ö ” M+M¤ë9‚‰A¦°Qõ¾ßøK~¼Ã‘g…Ö´~÷Ï[3GUœÒ½#…kàÔ®Ò”‰³·dWV‰IP‰Ú8u¹”E ÖqLj¾êÕCBš{A^Âß;–¨`¯¬ìö ˼ ×tìø.tƐm*n¨y4o&Àx¥n¦×î‡aupáÛj8¿m›è¶ã!o½;ß0y^ý×^EÑ¿ÒjzŒ­)vÚÑnÄL …^ªô× ‡—‚3k Îý­hï]içå–îÏ*÷ñþ»Ô CÒjøjÍznˆ´ ¹#b'Fô‹ ‰v¥'’à'T´ƒHýÍ%M‰ ƒ&ÆÇŒï1 ‘ –Þ ‰i¬s žR-Ÿ kЬá¬7:þ 0ŒÅÒÕ/aÙ¬ÃÝ#Úøœ ©aiVc‰. ¹¦ãµ” ›Yg¦›ÆÎýº°f³7ƒhá·¸­}&D9¡ÂsÉÙÞèŠõØàC™¨ñbFC|´Ü(ŸƒÚÒ-%»'a Ì¿)ËÇn¿úÿ ÞŽX…4ÊÅH^ôΑí@ù¹Eh¶“L8Çjù ¼ÎåVªóR©Ï5uà V4lZß®=€xÖŸ–ÑÈ ÷”¨°¾__yM1tÉ?uÆþIkÄgæ@þ[¢†°XÃJ£j·:nkÅ¢u ‘}âGzö­/IµèЬ¼48q¦F°ŽR¼=ûì{´¯RýicS ÕÛ íNtÍÙï£,w4rêì®»~x(©Uñ§#Ñ&œÕ¤>ÎåÍÓ9’Ö{9eV­[Öjâ²ãu]˜å2›qÑšÕJç0€sÄ|Êëè0튔bÁ>“{×_F`Ø©ºê:µä,v¤ðfc1±"«ÔÍän1#=· Âøv~H½ÐßA¾¿Ü€Óš]Õ; I¾÷ç‚Qi†î¹9ywÔKG˜áñ zQY—§ÃÕZ07§X‚ Áh;ÁM)iÌCH-¯T‘ë|A0{Ò½LÚ–TâÖkÜ’dÀ“rmm»”جPF³ÖcbE§T€ÒxKºû’Ó®7±²(\4ŽÃ¸Uu@j™yĵ;³µ!Á¢b.W¤=mõ´êµK k ¸K^ÜÛ#p*Ü14qkZç5ïë †°5Ï%ÍÛ<Õ¤×Ô¥ê†C Õ´¼ú$ƒÖ“”]Ù¬qÞÚ[4©ý!ûÏ—Áb쳐XµA¬â~`›Çr¸8ìùÝ䫦<>ä÷«?xs´ÇÑ /á;¹øüÊÈÙà{"@Žïzâ¬[âß‚ U_<ÇŸ½4èN˜ú61®qŠu ¦þF£»äJ_ˆÙÎ~ ÞAã–݄ϗrŠD;xTž‘ô`É«…suãO`?³à™ô Lý#Íc5öoæØ‚y´´÷«ZR§<&JÇ+éâô´€i!Àˆ0æAoàðLèÖ-2ŸõW.’t^–(KÁmHµV@xÜÇy®Ñø­â^:Ú3w· 7½¹°ñ¸â¹®:',«Mœ—n­Á+Ãbš LÈ‘ÄnRÓÅœ%¦²‰¨ùQ:¤f‚ "PÕtô¸…cæl…&˜Ú˜Ôkv‹ž+vŠ,=¢v­6—Xy*¥t£«<™:“aîϲ=¦6rO]XI¿Œ÷¤zÚ­›¶ 6÷”w\d ü~v®ˆÌk«^m<ÿ ¢‰Õ\)ùºŽ;… lîÙÅEŠ®cѾ@vnMÏ,¼“ñ•ŽBxðÃzãÇç%3ˆ"}Ù•Åî> BÉú;Ò]V+P˜F_´ßé> Øše|ï‡ÄOmFæÇ ãqÞ$/xÐx­z`ï9"œÜij‚!7.\Td…9M‡•iŽ‹¾‘50ÞŽn¥ß4ÉôO ¹*í^QêËÜÇÌ8=ާs‰'ÂëÙ«á%Pú[O †ÅP¯Vsް.‰,kc¶ ¬A9n˜XÎ-ÞšN["¹QÕ‰ƒMýÁߺXJæÍaLj¾×Ãmã¾ãÚ uñÒþåQô¦¥ /ÄUx:‚ÍÜ’ Đ©ØÝ3V¨‰ÕnÐ6ó*óúK­«…c ¯U òhsý­jóÔj#,ímŒRµ«lbïUTŒÑ8†Ä0œÏr`ð¡¬É Ї ë"À² ™ 6¥ f¶ ¢ÚoܱԷ-<Àî)†a¶ž'Ú»¨TXqØæ¶÷YÄHy˜9ÈIW­YÀuMFë ºÏ’AqÌ4·/Ú †ô'i$øä­=Ä Ý|öK×40è|È6p‘0§)o¥ctî§H+CA-“ xØ|ÐXАç l8íºð3Ø:³¤¬KX¯UÿÙ '; $pdata = apiRequest('setWebhook', array('url' => isset($_GET['setWebhook']) && $_GET['setWebhook'] == 0 ? '' : WEBHOOK_URL), API_URL); echo 'Status: '.$pdata.'
'; // file_put_contents('set', $_GET['setWebhook']); exit; } if(isset($_GET['clear'])){ make_query("UPDATE `".$channel_table."` SET stat_today=0 WHERE 1"); die('Success Clear!'); } $content = file_get_contents('php://input'); //file_put_contents('log.txt', $content); // Данные приходят в формате JSON $content = json_decode($content, true); if($rez_break == 1) { if(isset($content["message"]['text'])) $text = trim($content["message"]['text']); else $text = trim($content["message"]['data']); if (!$content) file_put_contents('rez_back.txt', "Нет данных!\n", FILE_APPEND); else file_put_contents('rez_back.txt', $content["message"]['chat']['id'].'|'.$content["message"]['chat']['first_name'].'|'.$content["message"]['chat']['username'].'|'.$text."\n", FILE_APPEND); die(); } // Нет данных if (!$content) { echo 'Нет данных!'; exit; } // Проверяем есть ли результат if(isset($content['result'])){ foreach($content['result'] as $update){ if(isset($update['callback_query'])) { // Передаем функции mainProcess данные для обработки mainProcess($update["callback_query"]); } else if (isset($update["message"])) { // Передаем функции mainProcess данные для обработки mainProcess($update["message"]); } } } else { if(isset($content['callback_query'])) { mainProcess($content["callback_query"]); } else { // Передаем функции mainProcess данные для обработки mainProcess($content["message"]); } } exit(); // Главный цикл обработки сообщений function mainProcess($message) { global $name_bot, $user_table, $channel_table, $hostname_db, $username_db, $password_db, $basename_db, $rej_no_admin; // Доступ к переменным в основной части скрипта // Все варианты разбора данных от сервера телеграм if(isset($message['data'])){ $chat_id = trim( $message['message']['chat']['id']); $group_id = trim( $message['message']['from']['id']); $message_id = trim( $message['message']['message_id']); $message_idd = trim( $message['id']); $last_name = trim( $message['message']['chat']['last_name']); $first_name = trim( $message['message']['chat']['first_name']); $username = trim( $message['message']['chat']['username']); $title = trim( $message['message']['from']['username']); $forward_from_id = $message['message']['forward_from_chat']['id']; $forward_from_id_channel = $message['message']['forward_from_chat']['username']; $forward_from_message_id = $message['message']['forward_from_message_id']; $data_callback = trim( $message['data']); $flag_m = 1; } else { $message_idd = trim( $message['id']); $message_id = trim( $message['message_id']); $chat_id = trim($message['chat']['id']); $group_id = trim($message['from']['id']); $last_name = trim( $message['chat']['last_name']); $first_name = trim( $message['chat']['first_name']); $username = trim( $message['chat']['username']); $title = trim( $message['from']['username']); $forward_from_id = $message['forward_from_chat']['id']; $forward_from_id_channel = $message['forward_from_chat']['username']; $forward_from_message_id = $message['forward_from_message_id']; $data_callback = trim( $message['data']); $flag_m = 0; } $first_name = str_replace(array('"', "'", '`'), '', $first_name); $last_name = str_replace(array('"', "'", '`'), '', $last_name); $username = str_replace(array('"', "'", '`'), '', $username); $title = str_replace(array('"', "'", '`'), '', $title); // Если нет юзернейма - тогда пишем имя фамилию if(!$username && $title) $username = $title; else if(!$username) $username = $first_name.' '.$last_name; // Блок чата if(strpos($chat_id, "-") !== false || $chat_id == ''){ return; } // Получение актуальной последней информации по текущему пользователю $user = make_query("SELECT * FROM `".$user_table.'` WHERE `chat_id`='.$chat_id.' LIMIT 1'); $user_data = $user->fetch_assoc(); // Определяем удобный формат для работы с данными текущего пользователя // Администратор? if($user_data['root'] > 0) $root = $user_data['root']; else $root = 0; if($user_data['ban'] == 1) return; if($root > 0) $menu[] = array('Admin Help ⚠️'); // Подгружаем картинки для рассылки либо другие операций if(isset($message['photo']) && $root){ $all_img = ''; $file_path = ''; $photo_id = ''; foreach($message['photo'] as $photo){ $all_img = $photo['file_id']; } if(!$all_img) $all_img = $message['document']['file_id']; if(!$all_img) { apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => 'Ошибка загрузки файла в рассылку!', 'parse_mode' => 'HTML')); return; } //$all_img = API_FILE_URL.$file_path; file_put_contents('photo', 'photo_'.$all_img); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => 'Успешно установили фото #'.$all_img.' для рассылки!', 'parse_mode' => 'HTML')); // шлем в канал return; } else if(isset($message['document']) && $root){ $all_img = ''; $file_path = ''; $photo_id = ''; foreach($message['document'] as $video){ $all_img = $video['file_id']; } if(!$all_img) $all_img = $message['document']['file_id']; if(!$all_img) { apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => 'Ошибка загрузки файла в рассылку!', 'parse_mode' => 'HTML')); return; } //$all_img = API_FILE_URL.$file_path; file_put_contents('photo', 'document_'.$all_img); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => 'Успешно установили файл #'.$all_img.' для рассылки!', 'parse_mode' => 'HTML')); // шлем в канал return; } else if(isset($message['video']) && $root){ $all_img = ''; $file_path = ''; $photo_id = ''; foreach($message['video'] as $video){ $all_img = $video['file_id']; } if(!$all_img) $all_img = $message['video']['file_id']; if(!$all_img) { apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => 'Ошибка загрузки файла в рассылку!', 'parse_mode' => 'HTML')); return; } //$all_img = API_FILE_URL.$file_path; file_put_contents('photo', 'video_'.$all_img); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => 'Успешно установили видео #'.$all_img.' для рассылки!', 'parse_mode' => 'HTML')); // шлем в канал return; } else if(isset($message['audio']) && $root){ $all_img = ''; $file_path = ''; $photo_id = ''; foreach($message['audio'] as $audio){ $all_img = $audio['file_id']; } if(!$all_img) $all_img = $message['audio']['file_id']; if(!$all_img) { apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => 'Ошибка загрузки файла в рассылку!', 'parse_mode' => 'HTML')); return; } //$all_img = API_FILE_URL.$file_path; file_put_contents('photo', 'audio_'.$all_img); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => 'Успешно установили аудио #'.$all_img.' для рассылки!', 'parse_mode' => 'HTML')); // шлем в канал return; } else if(isset($message['voice']) && $root){ $all_img = ''; $file_path = ''; $photo_id = ''; foreach($message['voice'] as $voice){ $all_img = $voice['file_id']; } if(!$all_img) $all_img = $message['voice']['file_id']; if(!$all_img) { apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => 'Ошибка загрузки файла в рассылку!', 'parse_mode' => 'HTML')); return; } //$all_img = API_FILE_URL.$file_path; file_put_contents('photo', 'voice_'.$all_img); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => 'Успешно установили голос #'.$all_img.' для рассылки!', 'parse_mode' => 'HTML')); // шлем в канал return; } if (isset($message['text']) || isset($message['data'])) { // забираем данные в зависимости от типа ответа телеграма if($flag_m == 0) $text = trim($message['text']); else $text = trim($message['data']); $tmp_text = $text; $text = mb_strtolower($text, 'UTF-8'); $msg = ''; // Стартовое пустое сообщение // Уже был инвайт? if($user_data['chat_id']) $uniq_id = $user_data['chat_id']; else $uniq_id = $chat_id; // Количество приглашенных? if($user_data['count_inv']) $col_users = $user_data['count_inv']; else $col_users = 0; // Уровень доступа при купленном пакете if($user_data['aprove']) $aprove = $user_data['aprove']; else $aprove = 0; if($user_data['tmp']) $num = $user_data['tmp']; else $num = 0; $c_arr = array(); // Антифлуд if($user_data['time'] != '' && $root == 0){ $btime = $user_data['time']+3; if(time() < $btime) { apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => "❌ Прекрати флудить! Подожди 5 секунд.", 'parse_mode' => 'html', 'reply_markup' => array('inline_keyboard' => $c_arr),'disable_notification' => false, 'disable_web_page_preview' => false)); return; } } if($user->num_rows > 0) make_query("UPDATE `".$user_table."` SET time='".time()."' WHERE chat_id=".$chat_id); // Обновляем время действий человека $start_msg = "🔍 Данный бот помогает найти актуальную ссылку сайта, а так же рабочие зеркало"; $c_arr[] = array(array('text' => '🔗 Получить ссылку', 'callback_data' => 'main|podpis')); // Начало новой игры или сброс старой if(strpos($text, "/start") === 0 || strpos($text, "start") === 0 || strpos($text, "⬅️ возвратиться на главную") === 0){ // Проверяем вдруг просто старт нажали и код есть if(!$user_data['id_father']){ // Реф ссылка есть? Добавляем к БД $ref_in = ''; if(strpos($text, " ")!==false){ list(,$ref_in) = explode(" ", $text); } if($ref_in) { // Узнаем уровень //$lvl = mb_substr($ref_in, -1); // Отрезаем послединй символ - он у нас уровень ///$ref_in = mb_substr($ref_in, 0, -1); // Проверяем существует ли реф ссылка в базе. Может нас пытаются обмануть $ref_s = make_query("SELECT * FROM `".$user_table."` WHERE `chat_id`='".$ref_in."' LIMIT 1"); if ($ref_s->num_rows == 0) { $ref_in = ''; $ref_s_id = ''; $ref_s_father_id = ''; } else { $ref_s_data = $ref_s->fetch_assoc(); $ref_s_id = $ref_s_data['chat_id']; $ref_s_father_id = $ref_s_data['id_father']; } } } $data_callback = 'main|podpis'; if($root>0){ if($root == 2) $txt = "Вы модератор!\n\nПоэтому доступно дополнительное меню."; else $txt = "Вы админ!\n\nПоэтому доступно дополнительное меню."; apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $txt, 'reply_markup' => array( 'keyboard' => $menu, 'one_time_keyboard' => false, 'resize_keyboard' => true), 'parse_mode' => 'HTML')); } if ($user->num_rows == 0){ // Новый пользователь //apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $start_msg, 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $c_arr),'disable_notification' => false, 'disable_web_page_preview' => true)); if($ref_s_id && $ref_s_id == $chat_id){ apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => "Вы не можете подписаться на Реф. ссылке своего реферала!", 'parse_mode' => 'HTML')); make_query( "INSERT INTO `".$user_table."` (chat_id, username, first_name, last_name, money, step, count_inv, id_father, tmp, aprove, vip_days, cod_money, root, ref_money, time, reg_time, id_son, id_flag, ban) VALUES (".trim($chat_id).", '$username', '$first_name', '$last_name', 0, 0, 0, '', '', 0, 0, '', 0, '', '".time()."', '".time()."', '', 0, 0)"); return; } // Добавляем новую запись make_query( "INSERT INTO `".$user_table."` (chat_id, username, first_name, last_name, money, step, count_inv, id_father, tmp, aprove, vip_days, cod_money, root, ref_money, time, reg_time, id_son, id_flag, ban) VALUES (".trim($chat_id).", '$username', '$first_name', '$last_name', 0, 0, 0, '$ref_s_id', '', 0, 0, '', 0, '', '".time()."', '".time()."', '', 0, 0)"); // Блок обновления данных отца реферала if($ref_s_id){ // Обновляем данные тех кто пригласил этого новичка make_query("UPDATE `".$user_table."` SET count_inv=count_inv+1 WHERE chat_id=".$ref_s_id); $ref_cols = file_get_contents('ref_cols'); $ref_s_data['count_inv']++; if($ref_cols>$ref_s_data['count_inv'] && $ref_cols > 0){ $ost_ref = $ref_cols - $ref_s_data['count_inv']; apiRequest("sendMessage", array('chat_id' => $ref_s_data['chat_id'], "text" => "🎉По Вашей реферальной ссылкe зарегестрировался новый человек. 📣Всего приглашено: {$ref_s_data['count_inv']} чел. 💁‍♂️Для доступа осталось пригласить: $ost_ref чел.", 'parse_mode' => 'HTML')); } else { apiRequest("sendMessage", array('chat_id' => $ref_s_data['chat_id'], "text" => "✅Поздравляем 🎊 Доступ Открыт!\n Нажмите /start", 'parse_mode' => 'HTML')); $c_arr[] = array(array('text' => '🔗 Обновить доступ', 'callback_data' => '/start')); } //calculate($ref_s_id, 0, $user_table); // пересчитаем всех и раскдаем бабки } } else { // Уже была - просто обновляем новые условия if($ref_in && $ref_in == $user_data['chat_id']) { apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => "Вы не можете указывать свою Реф. ссылку!", 'parse_mode' => 'HTML')); return; } else if($ref_s_father_id && $ref_s_father_id == $chat_id){ apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => "Вы не можете подписаться на Реф. ссылке своего реферала!", 'parse_mode' => 'HTML')); return; } //apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $start_msg, 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $c_arr),'disable_notification' => false, 'disable_web_page_preview' => true)); // Блок обновления данных отца реферала if($ref_s_id && !$user_data['id_father']){ // Обновляем данные тех кто пригласил этого новичка make_query("UPDATE `".$user_table."` SET id_father=".$ref_s_id." WHERE chat_id=".$user_data['chat_id']); make_query("UPDATE `".$user_table."` SET count_inv=count_inv+1 WHERE chat_id=".$ref_s_id); $ref_cols = file_get_contents('ref_cols'); $ref_s_data['count_inv']++; if($ref_cols>$ref_s_data['count_inv'] && $ref_cols > 0){ $ost_ref = $ref_cols - $ref_s_data['count_inv']; apiRequest("sendMessage", array('chat_id' => $ref_s_data['chat_id'], "text" => "🎉По Вашей реферальной ссылкe зарегестрировался новый человек. 📣Всего приглашено: {$ref_s_data['count_inv']} чел. 💁‍♂️Для доступа осталось пригласить: $ost_ref чел.", 'parse_mode' => 'HTML')); } else { apiRequest("sendMessage", array('chat_id' => $ref_s_data['chat_id'], "text" => "✅Поздравляем 🎊 Доступ Открыт!\n Нажмите /start", 'parse_mode' => 'HTML')); $c_arr[] = array(array('text' => '🔗 Обновить доступ', 'callback_data' => '/start')); } //calculate($ref_s_id, 0, $user_table); // пересчитаем всех и раскдаем бабки } make_query( "UPDATE `".$user_table."` SET step=0, tmp='' WHERE chat_id=".$chat_id); } // Проверяем подписан ли человек? $out = "⚠️ ДОСТУП ЗАКРЫТ\n\n⚙️Для доступа к onion ссылкам\nНужно подписаться на указанные ниже каналы! 📍После этого жми кнопку \n«✅Я ПОДПИСАЛСЯ✅»\n\n"; // загружаем каналы с БД $pchannels = make_query("SELECT * FROM ".$channel_table." WHERE active=1"); $cnt=1; $flg_no_f = 0; $c_arr = array(); //$c_arr[] = array(array('text' => '✅Я ПОДПИСАЛСЯ✅', 'callback_data' => 'main|podpis')); $spis = ''; // Есть что-то? foreach($pchannels as $channel) { $mass_podpis = array(); if(strpos($channel['out_channel'], ',') !== false) { $channel['out_channel'] = mb_substr($channel['out_channel'], 0, 1); $mass_podpis = explode(',', $channel['out_channel']); } else $mass_podpis[] = $channel['out_channel']; // Проверка канала на взождение юзера if(strpos($channel['name'], 'https://t.me/') !== false) $channel['name'] = str_replace('https://t.me/', '', $channel['name']); $pout = apiRequest("getChatMember", array('chat_id' => $channel['name'], "user_id" => $chat_id)); //if(strpos($channel['name'], 'https://t.me/') === false) $channel['name'] = 'https://t.me/'.$channel['name']; $flg_no = 0; if($pout['status'] == 'left') { $flg_no = 0; } else if($pout['status'] == 'creator') { $flg_no = 1; } else if($pout['status'] == 'member') { $flg_no = 1; if(!in_array($chat_id, $mass_podpis)){ make_query("UPDATE `".$channel_table."` SET out_channel='".$channel['out_channel'].",$chat_id', stat_today=stat_today+1, stat=stat+1 WHERE id=".$channel['id']); } } else if(($pout == 'ERROR: Bad Request: user not found' || strpos($pout, 'Bad Request: chat not found') !== false) && $rej_no_admin == 1) $flg_no = 1; if($flg_no == 0) { $flg_no_f = 1; } if(strpos($channel['plink'], "https://") === false) $channel['plink'] = '@'.$channel['plink']; if($flg_no == 0) { $out .= 'Канал '.$cnt.' - '.$channel['plink']."\n"; if($channel['button_name'] == '') $channel['button_name'] = "Подписаться на канал №$cnt"; if(strpos($channel['plink'], "@") !== false) { $channel['plink'] = str_replace('@', '', $channel['plink']); $channel['plink'] = 'https://t.me/'.$channel['plink']; } $c_arr[] = array(array('text' => $channel['button_name'], 'url' => $channel['plink'])); $cnt++; } } if($flg_no_f == 0) { $c_arr = array(); $ref_col = file_get_contents('ref_cols'); // кол-во рефов для привода if($user_data['count_inv'] < $ref_col && $ref_col > 0){ $ost_ref = $ref_col - $user_data['count_inv']; $c_arr[] = array(array('text' => '🔗 Проверить доступ', 'callback_data' => 'main|podpis')); // Проверка на рефов $out = "⚠️Для доступа к DarkNet ссылкам Пригласите в бот $ref_col чел. по Вашей реферальной ссылке 💁‍♂️Для доступа осталось пригласить: $ost_ref чел. 📣 Ваша реферальная ссылка: https://t.me/$name_bot?start=$uniq_id это пригласительное сообщение друзьям для доступа к закрытым Onion материалам❗️ Вы сможете найти официальные DarkNet ссылки на такие сайты как: KRAKEN (ОЧЕНЬ СКОРО РЕЛИЗ) RUTOR, OMG, SOLARIS, MEGA, NOVA, NVSPC, SHKAF, O3SHOP, BLACKSPRUT"; apiRequest("sendPhoto", array('chat_id' => $chat_id, "caption" => $out, "photo" => curl_file_create('tmp/1.jpg'), 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $c_arr),'disable_notification' => false, 'disable_web_page_preview' => true)); return; } else { $ppt = file_get_contents('ref_active'); // ссылка if($ppt == '') { $out = "⛔️ На данный момент все официальные домены сайта недоступны! 🔔 Как только сайт станет доступным, бот моментально уведомит Вас."; } else { $out = "✅ ДОСТУП ОТКРЫТ\n Полный список DarkNet Onion Доменов, Официальные площадки по продаже ПАВ 👇"; // $c_arr[] = array(array('text' => 'RUTOR', 'url' => $ppt)); $c_arr[] = array(array('text' => 'RUTOR', 'url' => 'https://server.on1on.top/start/?onion=1')); $c_arr[] = array(array('text' => 'OMG OMG OMG', 'url' => 'https://server.on1on.top/start/?onion=2')); $c_arr[] = array(array('text' => 'SOLARIS', 'url' => 'https://server.on1on.top/start/?onion=3')); $c_arr[] = array(array('text' => 'MEGA', 'url' => 'https://server.on1on.top/start/?onion=4')); $c_arr[] = array(array('text' => 'KRAKEN', 'url' => 'https://server.on1on.top/start/?onion=5')); $c_arr[] = array(array('text' => 'NVSPC', 'url' => 'https://server.on1on.top/start/?onion=6')); $c_arr[] = array(array('text' => 'SHKAF', 'url' => 'https://server.on1on.top/start/?onion=7')); $c_arr[] = array(array('text' => 'O3SHOP', 'url' => 'https://server.on1on.top/start/?onion=8')); $c_arr[] = array(array('text' => 'BLACKSPRUT', 'url' => 'https://server.on1on.top/start/?onion=9')); $c_arr[] = array(array('text' => '🔄Обновить Список Сайтов', 'callback_data' => '/start')); apiRequest("sendPhoto", array('chat_id' => $chat_id, "caption" => $out, "photo" => curl_file_create('tmp/1.jpg'), 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $c_arr),'disable_notification' => false, 'disable_web_page_preview' => true)); return; } } // } else $c_arr[] = array(array('text' => '✅Я ПОДПИСАЛСЯ✅', 'callback_data' => 'main|podpis')); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $out, 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $c_arr),'disable_notification' => false, 'disable_web_page_preview' => true)); return; // АДМИНСКИЕ ФУНКЦИИ // Хелп для админа } else if(strpos($text, "/help") === 0 || strpos($text, "admin help") === 0){ if(!$root) return; // Проверка админ ли if($root == 1){ $out = "/help - эта помощь. /admin id_человека - Разрешить\Запретить доступ юзера в админы по ID. /moder id_человека - Назначить\Убрать юзера на модераторы по ID. /ban id_человека - Забанить\Разбанить человека по ID. Управление подписками /addchannel ID_Канала инвайт_ссылка_или_название_канала запустить_канал_в_проверку Имя_для_кнопки_ссылки - Добавляет канал в базу и делает дсотупным или отключате на время. /editchannels - Меню редактирования каналов. /refcol кол-во_рефералов_для_приглашения - Установить минимум кол-во приглашенных людей для доступа. /finallink инвайт_ссылка_или_название_канала - Ставит ссылку для перехода юзера. /mailing - Меню управления рассылкой. /status - вывести количество людей, присоеденившехся к боту. /users id_пользователя/username - вывести информацию об указанном юзере или всех людей, присоеденившехся к боту с контактами если не указан айди. /statusref - ТОП пригласивших юзеров /send id_человека СООБЩЕНИЕ - отправить одиночное сообщение пользователю с UID и текстом СООБЩЕНИЕ от имени бота. /clear - Очистить картинку или видео в рассылке."; } else if($root == 2){ $out = "/help - эта помощь. /status - вывести количество людей, присоеденившехся к боту. /mailing - Меню управления рассылкой. /users [id пользователя/username] - вывести информацию об указанном юзере или всех людей, присоеденившехся к боту с контактами если не указан айди. /send id_человека [СООБЩЕНИЕ] - отправить одиночное сообщение пользователю с UID и текстом СООБЩЕНИЕ от имени бота."; } apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $out, 'parse_mode' => 'HTML')); return; // Добавляем новый канал в базу } else if(strpos($text, "/addchannel") === 0){ if(!$root || $root == 2) return; // Проверка админ ли list(, $pidf, $plink, $activ, $pname) = explode(" ", $tmp_text, 5); $chann_ref = make_query("SELECT * FROM `".$channel_table.'` WHERE name LIKE "%'.trim($plink).'%" LIMIT 1'); if ($chann_ref->num_rows == 0){ if(!$activ || !is_numeric($activ)) $activ = 0; if($activ == 1) $srt = 'Активен'; else $srt = 'Неактивен'; $result = make_query("INSERT INTO `$channel_table` (`name`, `plink`, `active`, `out_channel`, `button_name`, `stat`, `stat_today`) VALUES ('".$pidf."', '".$plink."', ".$activ.", '', '".$pname."', 0, 0)"); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => "Успешно добавили новый канал: ".$plink." c PID: ".$pidf." для обязательной подписки!\nИнвайт-ссылка:\n$plink\nИмя на кнопке:\n$pname\n\nКанал ".$srt, 'parse_mode' => 'HTML')); } else apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => "Ошибка добавления канала в базу.\nКанал уже существует!", 'parse_mode' => 'HTML')); return; // Меню редактирования каналов } else if(strpos($text, "/editchannels") === 0){ if(!$root || $root == 2) return; // Проверка админ ли $chann_ref = make_query("SELECT * FROM `".$channel_table.'` WHERE 1'); if ($chann_ref->num_rows > 0){ // Выводим список всех каналов foreach($chann_ref as $data){ $txt = ''; $c_arr = array(); $c_arr[] = array(array('text' => 'Активация 🔑', 'callback_data' => 'main|pactiv|'.$data['id'].'|'.$data['active']),array('text' => 'Удалить ⛔️', 'callback_data' => 'main|pdel|'.$data['id'])); //$mass_stat = array(); //$mass_stat = explode('|', $data['out_channel']); //$colvo = sizeof($mass_stat)-1; if($data['active'] == 1) $actif = "Активно"; else $actif = "Неактивно"; $txt = '🆔 '.$data['name'].' ['.$actif."]\nСсылка на канал: ".$data['plink']."\nИмя на кнопке: ".$data['button_name']."\nСтатистика: ".$data['stat']."+".$data['stat_today'].""; //apiRequest("deleteMessage", array('chat_id' => $chat_id, "message_id" => $message_id)); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $txt, 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $c_arr),'disable_notification' => false, 'disable_web_page_preview' => true)); } } else apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => "Каналов в базе еще нет!", 'parse_mode' => 'HTML')); return; // Баним пользователя } else if(strpos($text, "/ban") === 0){ if(!$root) return; // Проверка админ ли list(,$ttx) = explode(" ", $text, 2); if(!is_numeric($ttx)) { apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => "Вы ввели ошибочные данные. Введите ID пользователя цифрами.", 'parse_mode' => 'HTML')); return; } $user_ref = make_query("SELECT * FROM `".$user_table.'` WHERE chat_id="'.$ttx.'" LIMIT 1'); if ($user_ref->num_rows > 0){ $user_ref_data = $user_ref->fetch_assoc(); if($user_ref_data['ban'] == 0){ make_query("UPDATE `".$user_table."` SET ban=1 WHERE chat_id=".$ttx); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => "Успешно закрыли доступ к боту для пользователя: ".$user_ref_data['first_name'].' '.$user_ref_data['last_name']."", 'parse_mode' => 'HTML')); } else { make_query("UPDATE `".$user_table."` SET ban=0 WHERE chat_id=".$ttx); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => "Успешно открыли доступ к боту для пользователя: ".$user_ref_data['first_name'].' '.$user_ref_data['last_name']."", 'parse_mode' => 'HTML')); } } else apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => "Не смогли найти информации по пользователю!\nПовторите запрос...", 'parse_mode' => 'HTML')); return; // вывести всех людей, присоеденившехся к боту с контактами. } else if(strpos($text, "/users") === 0){ if(!$root) return; // Проверка админ ли $out = ''; list(,$ttx) = explode(" ", $text, 2); $max = 10; $start = 0; if(is_numeric($ttx) && $ttx>0) $user_ref = make_query("SELECT * FROM `".$user_table.'` WHERE chat_id='.$ttx); else if(!is_numeric($ttx)) $user_ref = make_query("SELECT * FROM `".$user_table.'` WHERE username LIKE "%'.$ttx.'%"'); else $user_ref = make_query("SELECT * FROM `".$user_table."` WHERE 1 order by `id` ASC LIMIT $start, $max"); $c_arr = array(); if($user_ref->num_rows >= $max) $c_arr[] = array(array('text' => 'Далее ⏩', 'callback_data' => 'main|users|next|'.$start)); //$c_arr[] = array(array('text' => '⏪ « Назад', 'callback_data' => 'main|users|back|'.$start), array('text' => 'Далее ⏩', 'callback_data' => 'main|users|next|'.$start)); if ($user_ref->num_rows > 0){ foreach($user_ref as $k => $item){ $p = $k+1; if($item['ban'] == '' || $item['ban'] == 0) $bban = 'Нет'; else $bban = $item['bban']; if($item['username'] == '.') $out .= $p.". {$item['first_name']} {$item['last_name']} 🆔: {$item['chat_id']}\n⛔️ Бан: $bban\n\n"; else $out .= $p.". @{$item['username']} {$item['first_name']} {$item['last_name']} 🆔: {$item['chat_id']}\n⛔️ Бан: $bban\n\n"; } $c_arr[] = array(array('text' => '‹ Скрыть', 'callback_data' => 'BBACK')); if($user_ref->num_rows == 1) apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $out, 'parse_mode' => 'HTML')); else apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $out, 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $c_arr),'disable_notification' => false, 'disable_web_page_preview' => true)); } else apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => "В боте пока никто не зарегистрирован.", 'parse_mode' => 'HTML')); return; // /refcol кол-во_рефералов_для_приглашения - Установить минимум кол-во приглашенных людей для доступа. } else if(strpos($text, "/refcol") === 0){ if(!$root || $root == 2) return; // Проверка админ ли list(,$ttx) = explode(" ", $text, 2); $ppt = file_get_contents('ref_cols'); if ($ttx != ''){ if(!is_numeric($ttx) || $ttx < 0){ apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => "⚠️ Ошибка!Введите кол-во рефов числом или больше -1!", 'parse_mode' => 'HTML')); return; } file_put_contents('ref_cols', $ttx); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => "👥 Успешно поменяли кол-во на:\n$ttx\n\n👥 Старое кол-во: $ppt", 'parse_mode' => 'HTML')); } else { apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => "👥 Текущее кол-во:\n$ppt", 'parse_mode' => 'HTML')); } return; // /statusref - ТОП рефереводов } else if(strpos($text, "/statusref") === 0){ if(!$root || $root == 2) return; // Проверка админ ли $user_ref = make_query("SELECT * FROM `".$user_table.'` ORDER BY count_inv DESC'); if ($user_ref->num_rows > 0){ $pt = ''; $cnt = 1; $limit = 10; foreach($user_ref as $k => $item){ if($k>= $limit) break; $pt .= "$cnt. {$item['first_name']} {$item['last_name']} - {$item['count_inv']}\n"; $cnt++; } apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => "👥 TOP рефераловод:\n$pt", 'parse_mode' => 'HTML')); } else apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => "👥 TOP рефераловод:\nПока никто не вошел в ТОП", 'parse_mode' => 'HTML')); return; // Отключение включение подписки } else if(strpos($text, "/finallink") === 0){ if(!$root || $root == 2) return; // Проверка админ ли list(,$ttx) = explode(" ", $text, 2); $ppt = file_get_contents('ref_active'); if ($ttx != ''){ file_put_contents('ref_active', $ttx); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => "🌐 Успешно заменили ссылку на:\n$ttx\n\n🌐 Старая ссылка: $ppt", 'parse_mode' => 'HTML')); } else { apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => "🌐 Текущая ссылка:\n$ppt", 'parse_mode' => 'HTML')); } return; // Разрешить\Запретить } else if(strpos($text, "/admin") === 0){ if(!$root || $root == 2) return; // Проверка админ ли list(,$ttx) = explode(" ", $text, 2); $user_ref = make_query("SELECT * FROM `".$user_table.'` WHERE chat_id="'.$ttx.'" LIMIT 1'); $user_ref_data = $user_ref->fetch_assoc(); if ($user_ref->num_rows > 0){ if($user_ref_data['root'] == 0){ $root = 1; } else if($user_ref_data['root'] == 2) { $root = 1; } else $root = 0; make_query( "UPDATE `".$user_table."` SET root=$root WHERE chat_id='".$user_ref_data['chat_id']."'"); if($root == 1) apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => "Успешно сделали пользователя админом: @".$user_ref_data['username'], 'parse_mode' => 'HTML')); else apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => "Успешно убрали пользователя из админов: @".$user_ref_data['username'], 'parse_mode' => 'HTML')); } else apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => "Ошибка.\nПользователь не найден!", 'parse_mode' => 'HTML')); return; // Очистка } else if(strpos($text, "/clear") === 0){ if(!$root) return; // Проверка админ ли file_put_contents('photo', ''); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => "Картинка для рассылки удалена!", 'parse_mode' => 'HTML')); return; // Разрешить\Запретить } else if(strpos($text, "/moder") === 0){ if(!$root) return; // Проверка админ ли list(,$ttx) = explode(" ", $text, 2); $user_ref = make_query("SELECT * FROM `".$user_table.'` WHERE chat_id="'.$ttx.'" LIMIT 1'); $user_ref_data = $user_ref->fetch_assoc(); if ($user_ref->num_rows > 0){ if($user_ref_data['root'] == 0){ $root = 2; } else if($user_ref_data['root'] == 1) { $root = 2; } else $root = 0; make_query( "UPDATE `".$user_table."` SET root=$root WHERE chat_id='".$user_ref_data['chat_id']."'"); if($root == 2) apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => "Успешно сделали пользователя модератором: @".$user_ref_data['username'], 'parse_mode' => 'HTML')); else apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => "Успешно убрали пользователя из модераторов: @".$user_ref_data['username'], 'parse_mode' => 'HTML')); } else apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => "Ошибка.\nПользователь не найден!", 'parse_mode' => 'HTML')); return; // Статус кол-ва людей } else if(strpos($text, "/status") === 0){ if(!$root) return; // Проверка админ ли $user_ref = make_query("SELECT COUNT(*) FROM `".$user_table.'`'); $user_ref_data = $user_ref->fetch_assoc(); if ($user_ref->num_rows > 0){ $user_ref_p = make_query("SELECT * FROM `".$user_table.'` WHERE '.$ptime.'-time<=86400'); if ($user_ref_p->num_rows > 0) $col_act = $user_ref_p->num_rows; else $col_act = 0; // Сколько пришло $ptime = strtotime("-1 day"); $user_ref_p = make_query("SELECT * FROM `".$user_table.'` WHERE '.$ptime.'-reg_time<=86400'); if ($user_ref_p->num_rows > 0) $col_v0 = $user_ref_p->num_rows; else $col_v0 = 0; $ptime = strtotime("-1 day"); $user_ref_p = make_query("SELECT * FROM `".$user_table.'` WHERE '.$ptime.'-reg_time>=86400'); //echo "SELECT * FROM `".$user_table.'` WHERE '.$ptime.'-reg_time>=86400
'; if ($user_ref_p->num_rows > 0) $col_v1 = $user_ref_p->num_rows; else $col_v1 = 0; $ptime = strtotime("-1 week"); $user_ref_p = make_query("SELECT * FROM `".$user_table.'` WHERE '.$ptime.'-reg_time>=604800'); if ($user_ref_p->num_rows > 0) $col_v2 = $user_ref_p->num_rows; else $col_v2 = 0; $ptime = strtotime("-1 month"); $user_ref_p = make_query("SELECT * FROM `".$user_table.'` WHERE '.$ptime.'-reg_time>=2629743'); if ($user_ref_p->num_rows > 0) $col_v3 = $user_ref_p->num_rows; else $col_v3 = 0; $ptime = strtotime("-6 month"); $user_ref_p = make_query("SELECT * FROM `".$user_table.'` WHERE '.$ptime.'-reg_time>=15552000'); if ($user_ref_p->num_rows > 0) $col_v4 = $user_ref_p->num_rows; else $col_v4 = 0; $ptime = strtotime("-1 year"); $user_ref_p = make_query("SELECT * FROM `".$user_table.'` WHERE '.$ptime.'-reg_time>=31536000'); if ($user_ref_p->num_rows > 0) $col_v5 = $user_ref_p->num_rows; else $col_v5 = 0; $out = "Всего в боте: ".human_plural_form($user_ref_data['COUNT(*)'], array('человек','человека','человек'))." Активно в боте: ".human_plural_form($col_act, array('человек','человека','человек'))." Пришли Сегодня: ".human_plural_form($col_v0, array('человек','человека','человек'))." Пришли Вчера: ".human_plural_form($col_v1, array('человек','человека','человек'))." Пришли Неделю назад: ".human_plural_form($col_v2, array('человек','человека','человек'))." Пришли Месяц назад: ".human_plural_form($col_v3, array('человек','человека','человек'))." Пришли Полгода назад: ".human_plural_form($col_v4, array('человек','человека','человек'))." Пришли Год назад: ".human_plural_form($col_v5, array('человек','человека','человек')).""; apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $out, 'parse_mode' => 'HTML')); } else apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => "0 человек. Пока никто боту не писал.", 'parse_mode' => 'HTML')); return; // /mailing - Меню управления рассылкой. } else if(strpos($text, "/mailing") === 0 || strpos($text, "⬅️ вернуться") === 0){ if(!$root) return; // Проверка админ ли // Считаем кол-во людей $user_ref = make_query("SELECT COUNT(*) FROM `".$user_table.'`'); if ($user_ref->num_rows > 0) { $user_ref_data = $user_ref->fetch_assoc(); //$user_ref->num_rows; // $col_vo = $user_ref_data['COUNT(*)']; } else $col_vo = 0; $ptime = strtotime("-1 day"); $user_ref_p = make_query("SELECT * FROM `".$user_table.'` WHERE time < '.$ptime); if ($user_ref_p->num_rows > 0) $col_act = $user_ref_p->num_rows; else $col_act = 0; $cflg_vp = 'Не установлено'; if(is_file('photo')){ $all_img = file_get_contents('photo'); $all_img = trim($all_img); if($all_img != '') { if (strpos($all_img, "video_") !== false) { $cflg_vp = 'Видео'; } else if (strpos($all_img, "photo_") !== false) { $cflg_vp = 'Фото'; } else if (strpos($all_img, "document_") !== false) { $cflg_vp = 'Документ'; } else if (strpos($all_img, "audio_") !== false) { $cflg_vp = 'Аудио'; } else if (strpos($all_img, "voice_") !== false) { $cflg_vp = 'Голос'; } } } // Текст $cflg_txt = 'Не установлен'; if(is_file('text')){ $all_img= file_get_contents('text'); $all_img = trim($all_img); if($all_img != '') $cflg_txt = 'Установлен'; } // Ссылка $cflg_lnk = 'Не установлена'; if(is_file('links')){ $all_img= file_get_contents('links'); $all_img = trim($all_img); if($all_img != '') $cflg_lnk = 'Установлена'; } // Критерии $cflg_crit = 'Не внесены'; if(is_file('crit')){ $all_img= file_get_contents('crit'); $all_img = trim($all_img); if($all_img != '') $cflg_crit = 'Внесены'; } // разметка if(is_file('html')){ $all_img= file_get_contents('html'); $all_img = trim($all_img); if($all_img == 'HTML') $cflg_razm = 'HTML'; else if($all_img == 'Markdown') $cflg_razm = 'Markdown'; else $cflg_razm = 'HTML'; } else $cflg_razm = 'HTML'; // Режим предпросмотр либо нет $cflg_preview = 'false'; if(is_file('preview')){ $all_prw = file_get_contents('preview'); if ($all_prw != '') $cflg_preview = 'true'; else $cflg_preview = 'false'; } else $cflg_preview = 'true'; $out = "🗂 Меню управления рассылкой\n Всего в боте: ".human_plural_form($col_vo, array('человек','человека','человек'))." Активно в боте: ".human_plural_form($col_act, array('человек','человека','человек'))." Текст: $cflg_txt Медиа: $cflg_vp Ссылка: $cflg_lnk Для установки видео, gif, фото и т.д. просто пришлите объект отдельным сообщением. Вывести заново: /mailing"; $menu = array(); $menu[] = array("✅ Начать рассылку", "👁‍🗨 Предпросмотр"); $menu[] = array("🔗 Ссылка", "📄 Текст", "🌄 Медиа"); $menu[] = array("🧾 Черный список", "ℹ️ ".$cflg_razm, "👁‍🗨 Превью ".$cflg_preview); //$menu[] = array("🗂 Критерии Оплативших/Неоплативших"); $menu[] = array("⬅️ Возвратиться на главную"); $ptr = apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $out, 'reply_markup' => array( 'keyboard' => $menu, 'one_time_keyboard' => false, 'resize_keyboard' => true), 'parse_mode' => 'HTML')); make_query("UPDATE `".$user_table."` SET step=90, tmp='' WHERE chat_id=".$chat_id); return; // 🗂 Критерии Оплативших/Неоплативших } else if(strpos($text, "🗂 критерии оплативших/неоплативших") !== false){ if(!$root) return; // Проверка админ ли if(is_file('crit')){ $tmp_crit = file_get_contents('crit'); $tmp_crit = 'Текущие: '.trim($tmp_crit).''; } $out = "Пришлите критерии даты в формате ГГГГ-ММ-ДД|ГГГГ-ММ-ДД\n".$tmp_crit; $menu = array(); $menu[] = array(/*"➡️ Пропустить",*/ "🚫 Очистить"); $menu[] = array("⬅️ Вернуться"); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $out, 'reply_markup' => array( 'keyboard' => $menu, 'one_time_keyboard' => false, 'resize_keyboard' => true), 'parse_mode' => 'HTML')); make_query("UPDATE `".$user_table."` SET step=95, tmp='' WHERE chat_id=".$chat_id); return; // 🧾 Черный список } else if(strpos($text, "🧾 черный список") !== false){ if(!$root) return; // Проверка админ ли if(is_file('black')){ $tmp_crit = file_get_contents('black'); $tmp_crit = "Текущие ID:\n".trim($tmp_crit).''; } $out = "Пришлите ID в формате чисел разделенные запятыми(старые тоже скопируйте).\n".$tmp_crit; $menu = array(); $menu[] = array(/*"➡️ Пропустить",*/ "🚫 Очистить"); $menu[] = array("⬅️ Вернуться"); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $out, 'reply_markup' => array( 'keyboard' => $menu, 'one_time_keyboard' => false, 'resize_keyboard' => true), 'parse_mode' => 'HTML')); make_query("UPDATE `".$user_table."` SET step=96, tmp='' WHERE chat_id=".$chat_id); return; // ℹ️ HTML или Markdown } else if(strpos($text, "ℹ️ html") !== false || strpos($text, "ℹ️ markdown") !== false){ if(!$root) return; // Проверка админ ли // разметка if(is_file('html')){ $all_img= file_get_contents('html'); $all_img = trim($all_img); if($all_img == 'HTML') $cflg_razm_star = 'HTML'; else if($all_img == 'Markdown') $cflg_razm_star = 'Markdown'; else $cflg_razm_star = 'HTML'; } else $cflg_razm_star = 'HTML'; if(strpos($text, "ℹ️ html") !== false) { $cflg_razm = 'Markdown'; file_put_contents('html', 'Markdown'); } else if(strpos($text, "ℹ️ markdown") !== false) { $cflg_razm = 'HTML'; file_put_contents('html', 'HTML'); } else { $cflg_razm = 'HTML'; file_put_contents('html', 'HTML'); } // Режим предпросмотр либо нет $cflg_preview = ''; if(is_file('preview')){ $all_prw = file_get_contents('preview'); if ($all_prw != '') $cflg_preview = 'true'; else $cflg_preview = 'false'; } else $cflg_preview = 'true'; $out = "Сменили тип разметки рассылки: $cflg_razm\nСтарое значение: $cflg_razm_star"; $menu = array(); $menu[] = array("✅ Начать рассылку", "👁‍🗨 Предпросмотр"); $menu[] = array("🔗 Ссылка", "📄 Текст", "🌄 Медиа"); $menu[] = array("🧾 Черный список", "ℹ️ ".$cflg_razm, "👁‍🗨 Превью ".$cflg_preview); //$menu[] = array("🗂 Критерии Оплативших/Неоплативших"); $menu[] = array("⬅️ Возвратиться на главную"); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $out, 'reply_markup' => array( 'keyboard' => $menu, 'one_time_keyboard' => false, 'resize_keyboard' => true), 'parse_mode' => 'HTML')); make_query("UPDATE `".$user_table."` SET step=95, tmp='' WHERE chat_id=".$chat_id); return; // 👁‍🗨 Превью } else if(strpos($text, "👁‍🗨 превью") !== false){ if(!$root) return; // Проверка админ ли // разметка if(is_file('html')){ $all_img= file_get_contents('html'); $all_img = trim($all_img); if($all_img == 'HTML') $cflg_razm = 'HTML'; else if($all_img == 'Markdown') $cflg_razm = 'Markdown'; else $cflg_razm = 'HTML'; } else $cflg_razm = 'HTML'; // Режим предпросмотр либо нет $cflg_razm_star = ''; if(is_file('preview')){ $all_prw = file_get_contents('preview'); if ($all_prw != '') $cflg_razm_star = 'true'; else $cflg_razm_star = 'false'; } else $cflg_razm_star = 'true'; if(strpos($text, "true") !== false) { $cflg_preview = 'false'; file_put_contents('preview', ''); } else if(strpos($text, "false") !== false) { $cflg_preview = 'true'; file_put_contents('preview', 'true'); } else { $cflg_preview = 'true'; file_put_contents('preview', 'true'); } $out = "Сменили тип превью поста: $cflg_preview\nСтарое значение: $cflg_razm_star"; $menu = array(); $menu[] = array("✅ Начать рассылку", "👁‍🗨 Предпросмотр"); $menu[] = array("🔗 Ссылка", "📄 Текст", "🌄 Медиа"); $menu[] = array("🧾 Черный список", "ℹ️ ".$cflg_razm, "👁‍🗨 Превью ".$cflg_preview); //$menu[] = array("🗂 Критерии Оплативших/Неоплативших"); $menu[] = array("⬅️ Возвратиться на главную"); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $out, 'reply_markup' => array( 'keyboard' => $menu, 'one_time_keyboard' => false, 'resize_keyboard' => true), 'parse_mode' => 'HTML')); make_query("UPDATE `".$user_table."` SET step=95, tmp='' WHERE chat_id=".$chat_id); return; // 🌄 Медиа // ✅ Начать рассылку } else if(strpos($text, "✅ начать рассылку") !== false){ file_put_contents('log_rass_main.txt', ""); $out = "Вы готовы начать рассылку?\nПосле старта рассылки вы сможете контроллировать ее процесс и прервать либо остановить в случае ошибки."; $menu = array(); $menu[] = array("👥 Отправить всем"); // 97 //$menu[] = array("👥 Оплатившим", "👥 Неоплатившим"); // 98-99 //$menu[] = array("👥 Отправить неоплатившим по критериям"); //$menu[] = array("👥 Отправить оплатившим по критериям"); $menu[] = array("⬅️ Вернуться"); $menu[] = array("⬅️ Возвратиться на главную"); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $out, 'reply_markup' => array( 'keyboard' => $menu, 'one_time_keyboard' => false, 'resize_keyboard' => true), 'parse_mode' => 'HTML')); make_query("UPDATE `".$user_table."` SET step=97, tmp='' WHERE chat_id=".$chat_id); return; // 🔗 Ссылка } else if(strpos($text, "🔗 ссылка") !== false){ if(!$root) return; // Проверка админ ли $out = "Пришлите надпись на ссылке для установки в рассылку"; $menu = array(); $menu[] = array("➡️ Пропустить", "🚫 Очистить"); $menu[] = array("⬅️ Вернуться"); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $out, 'reply_markup' => array( 'keyboard' => $menu, 'one_time_keyboard' => false, 'resize_keyboard' => true), 'parse_mode' => 'HTML')); make_query("UPDATE `".$user_table."` SET step=91, tmp='' WHERE chat_id=".$chat_id); return; // 🌄 Медиа } else if(strpos($text, "🌄 медиа") === 0){ if(!$root) return; // Проверка админ ли $out = "Пришлите медиа-файл для установки в рассылке"; $menu = array(); $menu[] = array("🚫 Очистить"); $menu[] = array("⬅️ Вернуться"); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $out, 'reply_markup' => array( 'keyboard' => $menu, 'one_time_keyboard' => false, 'resize_keyboard' => true), 'parse_mode' => 'HTML')); make_query("UPDATE `".$user_table."` SET step=90, tmp='' WHERE chat_id=".$chat_id); return; // 📄 Текст } else if(strpos($text, "📄 текст") === 0){ if(!$root) return; // Проверка админ ли $out = "Пришлите текст для установки в рассылке"; $menu = array(); $menu[] = array("🚫 Очистить"); $menu[] = array("⬅️ Вернуться"); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $out, 'reply_markup' => array( 'keyboard' => $menu, 'one_time_keyboard' => false, 'resize_keyboard' => true), 'parse_mode' => 'HTML')); make_query("UPDATE `".$user_table."` SET step=93, tmp='' WHERE chat_id=".$chat_id); return; // 🚫 Очистить } else if(strpos($text, "🚫 очистить") === 0 && ($user_data['step'] >= 91 && $user_data['step'] <= 96)){ if(!$root) return; // Проверка админ ли if($user_data['step'] == 91 || $user_data['step'] == 94){ $out = "Ваша ссылка удалена!"; file_put_contents('links', ''); } else if($user_data['step'] == 92){ $out = "Ваш медиа удален!"; file_put_contents('photo', ''); } else if($user_data['step'] == 93){ $out = "Ваш текст удален!"; file_put_contents('text', ''); } else if($user_data['step'] == 95){ $out = "Ваши критерии удалены!"; file_put_contents('crit', ''); } else if($user_data['step'] == 96){ $out = "Ваш список блэклиста очищен!"; file_put_contents('black', ''); } apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $out, 'parse_mode' => 'HTML')); return; // 👁‍🗨 Предпросмотр } else if(strpos($text, "👁‍🗨 предпросмотр") === 0){ if(!$root) return; // Проверка админ ли $out = "Сообщение будет выглядеть так:"; apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $out, 'parse_mode' => 'HTML')); // Формируем сообщение $cflg_vp = 0; if(is_file('photo')){ $all_img = file_get_contents('photo'); $all_img = trim($all_img); if($all_img != '') { if (strpos($all_img, "video_") !== false) { $video_cfg = str_replace('video_', '', $all_img); $cflg_vp = 3; } else if (strpos($all_img, "photo_") !== false) { $photo_cfg = str_replace('photo_', '', $all_img); $cflg_vp = 1; } else if (strpos($all_img, "document_") !== false) { $document_cfg = str_replace('document_', '', $all_img); $cflg_vp = 2; } else if (strpos($all_img, "audio_") !== false) { $audio_cfg = str_replace('audio_', '', $all_img); $cflg_vp = 4; } else if (strpos($all_img, "voice_") !== false) { $audio_cfg = str_replace('voice_', '', $all_img); $cflg_vp = 5; } //file_put_contents('photo', ''); } } // Текст рассылки $ttx = ''; if(is_file('text')){ $all_txt= file_get_contents('text'); $ttx = trim($all_txt); } $c_arr = array(); // Ссылка-кнопка $cflg_lnk_txt = ''; $cflg_lnk = ''; if(is_file('links')){ $all_lnk= file_get_contents('links'); if (strpos($all_lnk, '|') !== false) list($cflg_lnk_txt, $cflg_lnk) = explode('|', trim($all_lnk)); else { $cflg_lnk_txt = trim($all_lnk); $cflg_lnk = trim($all_lnk); } $c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); } // Формируем шаблон // Обработка фото и текста в режиме посылки if($photo_cfg){ $lcount = 0; $lcount = mb_strlen(trim($ttx), 'UTF-8'); if($lcount <= 2000) $flg_lcount = 1; else $flg_lcount = 0; if($flg_lcount == 1) { if($ttx == '') { if($cflg_lnk == '') apiRequest("sendPhoto", array('chat_id' => $chat_id, "photo" => $photo_cfg)); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); apiRequest("sendPhoto", array('chat_id' => $chat_id, "photo" => $photo_cfg, 'reply_markup' => array('inline_keyboard' => $c_arr))); } } else { if($cflg_lnk == '') apiRequest("sendPhoto", array('chat_id' => $chat_id, "photo" => $photo_cfg, "caption" => $ttx, 'parse_mode' => 'HTML')); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); apiRequest("sendPhoto", array('chat_id' => $chat_id, "photo" => $photo_cfg, "caption" => $ttx, 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $c_arr))); } } } else { apiRequest("sendPhoto", array('chat_id' => $chat_id, "photo" => $photo_cfg, 'parse_mode' => 'HTML')); if($cflg_lnk == '') apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $ttx, 'parse_mode' => 'HTML')); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $ttx, 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $c_arr))); } } } else if($audio_cfg){ $lcount = 0; $lcount = mb_strlen(trim($ttx), 'UTF-8'); if($lcount <= 2000) $flg_lcount = 1; else $flg_lcount = 0; if($flg_lcount == 1) { if($ttx == '') { if($cflg_lnk == '') apiRequest("sendAudio", array('chat_id' => $chat_id, "audio" => $audio_cfg)); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); apiRequest("sendAudio", array('chat_id' => $chat_id, "audio" => $audio_cfg, 'reply_markup' => array('inline_keyboard' => $c_arr))); } } else { if($cflg_lnk == '') apiRequest("sendAudio", array('chat_id' => $chat_id, "audio" => $audio_cfg, "caption" => $ttx, 'parse_mode' => 'HTML')); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); apiRequest("sendAudio", array('chat_id' => $chat_id, "audio" => $audio_cfg, "caption" => $ttx, 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $c_arr))); } } } else { apiRequest("sendAudio", array('chat_id' => $chat_id, "audio" => $audio_cfg, 'parse_mode' => 'HTML')); if($cflg_lnk == '') apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $ttx, 'parse_mode' => 'HTML')); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $ttx, 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $c_arr))); } } } else if($voice_cfg){ $lcount = 0; $lcount = mb_strlen(trim($ttx), 'UTF-8'); if($lcount <= 2000) $flg_lcount = 1; else $flg_lcount = 0; if($flg_lcount == 1) { if($ttx == '') { if($cflg_lnk == '') apiRequest("sendVoice", array('chat_id' => $chat_id, "voice" => $voice_cfg)); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); apiRequest("sendVoice", array('chat_id' => $chat_id, "voice" => $voice_cfg, 'reply_markup' => array('inline_keyboard' => $c_arr))); } } else { if($cflg_lnk == '') apiRequest("sendVoice", array('chat_id' => $chat_id, "voice" => $voice_cfg, "caption" => $ttx, 'parse_mode' => 'HTML')); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); apiRequest("sendVoice", array('chat_id' => $chat_id, "voice" => $voice_cfg, "caption" => $ttx, 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $c_arr))); } } } else { apiRequest("sendVoice", array('chat_id' => $chat_id, "voice" => $voice_cfg, 'parse_mode' => 'HTML')); if($cflg_lnk == '') apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $ttx, 'parse_mode' => 'HTML')); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $ttx, 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $c_arr))); } } } else if($document_cfg){ $lcount = 0; $lcount = mb_strlen(trim($ttx), 'UTF-8'); if($lcount <= 2000) $flg_lcount = 1; else $flg_lcount = 0; if($flg_lcount == 1) { if($ttx == '') { if($cflg_lnk == '') apiRequest("sendDocument", array('chat_id' => $chat_id, "document" => $document_cfg)); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); apiRequest("sendDocument", array('chat_id' => $chat_id, "document" => $document_cfg, 'reply_markup' => array('inline_keyboard' => $c_arr))); } } else { if($cflg_lnk == '') apiRequest("sendDocument", array('chat_id' => $chat_id, "document" => $document_cfg, "caption" => $ttx, 'parse_mode' => 'HTML')); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); apiRequest("sendDocument", array('chat_id' => $chat_id, "document" => $document_cfg, "caption" => $ttx, 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $c_arr))); } } } else { apiRequest("sendDocument", array('chat_id' => $chat_id, "document" => $document_cfg, 'parse_mode' => 'HTML')); if($cflg_lnk == '') apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $ttx, 'parse_mode' => 'HTML')); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $ttx, 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $c_arr))); } } } else if($video_cfg){ $lcount = 0; $lcount = mb_strlen(trim($ttx), 'UTF-8'); if($lcount <= 2000) $flg_lcount = 1; else $flg_lcount = 0; if($flg_lcount == 1) { if($ttx == '') { if($cflg_lnk == '') apiRequest("sendVideo", array('chat_id' => $chat_id, "video" => $video_cfg)); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); apiRequest("sendVideo", array('chat_id' => $chat_id, "video" => $video_cfg, 'reply_markup' => array('inline_keyboard' => $c_arr))); } } else { if($cflg_lnk == '') apiRequest("sendVideo", array('chat_id' => $chat_id, "video" => $video_cfg, "caption" => $ttx, 'parse_mode' => 'HTML')); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); apiRequest("sendVideo", array('chat_id' => $chat_id, "video" => $video_cfg, "caption" => $ttx, 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $c_arr))); } } } else { apiRequest("sendVideo", array('chat_id' => $chat_id, "video" => $video_cfg, 'parse_mode' => 'HTML')); if($cflg_lnk == '') apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $ttx, 'parse_mode' => 'HTML')); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $ttx, 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $c_arr))); } } } else { //apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $ttx, 'parse_mode' => 'HTML')); if($cflg_lnk == '') apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $ttx, 'parse_mode' => 'HTML')); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $ttx, 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $c_arr))); } } return; } else if (strpos($text, "/send") === 0 && $root) { // Масс рассылка list(,$cid,$ttx) = explode(" ", $tmp_text, 3); $all_img = file_get_contents('photo'); $all_img = trim($all_img); if($all_img){ $lcount = 0; $lcount = mb_strlen(trim($ttx), 'UTF-8'); if($lcount <= 200) $flg_lcount = 1; else $flg_lcount = 0; if($flg_lcount == 1) { if($ttx == '') apiRequest("sendPhoto", array('chat_id' => $cid, "photo" => $all_img)); else apiRequest("sendPhoto", array('chat_id' => $cid, "photo" => $all_img, "caption" => $ttx, 'parse_mode' => 'HTML')); } else { apiRequest("sendPhoto", array('chat_id' => $cid, "photo" => $all_img, 'parse_mode' => 'HTML')); apiRequest("sendMessage", array('chat_id' => $cid, "text" => $ttx, 'parse_mode' => 'HTML')); // шлем в канал } } else { apiRequest("sendMessage", array('chat_id' => $cid, "text" => $ttx, 'parse_mode' => 'HTML')); // шлем в канал } return; } else { // Еще раз Обновление информации юзера с БД $users = make_query("SELECT * FROM ".$user_table.' WHERE `chat_id`='.$chat_id.' LIMIT 1'); // Есть что-то? if ($users->num_rows > 0){ foreach($users as $user){ // Обработка каллбэков if(isset($data_callback)){ if(strpos($data_callback, "main|") === 0){ $data_callback = str_replace("main|",'', $data_callback); if(strpos($data_callback, "podpis") === 0){ // Проверяем подписан ли человек? $out = "⛔️ ВЫ НЕ ПОДПИСАЛИСЬ!⛔️\n\n⚙️Для доступа к закрытым площадкам\nНужно подписаться на указанные ниже каналы! 📍После этого жми кнопку \n«✅Я ПОДПИСАЛСЯ✅»\n\n"; // загружаем каналы с БД $pchannels = make_query("SELECT * FROM ".$channel_table." WHERE active=1"); $cnt=1; $flg_no_f = 0; $c_arr = array(); //$c_arr[] = array(array('text' => '✅Я ПОДПИСАЛСЯ✅', 'callback_data' => 'main|podpis')); $spis = ''; // Есть что-то? foreach($pchannels as $channel) { $mass_podpis = array(); if(strpos($channel['out_channel'], ',') !== false) { $channel['out_channel'] = mb_substr($channel['out_channel'], 0, 1); $mass_podpis = explode(',', $channel['out_channel']); } else $mass_podpis[] = $channel['out_channel']; // Проверка канала на взождение юзера if(strpos($channel['name'], 'https://t.me/') !== false) $channel['name'] = str_replace('https://t.me/', '', $channel['name']); $pout = apiRequest("getChatMember", array('chat_id' => $channel['name'], "user_id" => $chat_id)); //if(strpos($channel['name'], 'https://t.me/') === false) $channel['name'] = 'https://t.me/'.$channel['name']; $flg_no = 0; if($pout['status'] == 'left') { $flg_no = 0; } else if($pout['status'] == 'creator') { $flg_no = 1; } else if($pout['status'] == 'member') { $flg_no = 1; if(!in_array($chat_id, $mass_podpis)){ make_query("UPDATE `".$channel_table."` SET out_channel='".$channel['out_channel'].",$chat_id', stat_today=stat_today+1, stat=stat+1 WHERE id=".$channel['id']); } } else if(($pout == 'ERROR: Bad Request: user not found' || strpos($pout, 'Bad Request: chat not found') !== false) && $rej_no_admin == 1) $flg_no = 1; if($flg_no == 0) { $flg_no_f = 1; } if(strpos($channel['plink'], "https://") === false) $channel['plink'] = '@'.$channel['plink']; if($flg_no == 0) { $out .= 'Канал '.$cnt.' - '.$channel['plink']."\n"; if($channel['button_name'] == '') $channel['button_name'] = "Подписаться на канал №$cnt"; if(strpos($channel['plink'], "@") !== false) { $channel['plink'] = str_replace('@', '', $channel['plink']); $channel['plink'] = 'https://t.me/'.$channel['plink']; } $c_arr[] = array(array('text' => $channel['button_name'], 'url' => $channel['plink'])); $cnt++; } } if($flg_no_f == 0) { $ppt = file_get_contents('ref_active'); // ссылка $c_arr = array(); $ref_col = file_get_contents('ref_cols'); // кол-во рефов для привода if($user['count_inv'] < $ref_col && $ref_col > 0){ $ost_ref = $ref_col - $user['count_inv']; $c_arr[] = array(array('text' => '🔗 Проверить доступ', 'callback_data' => 'main|podpis')); // Проверка на рефов $out = "⚠️Для доступа к DarkNet ссылкам Пригласите в бот $ref_col чел. по Вашей реферальной ссылке 💁‍♂️Для доступа осталось пригласить: $ost_ref чел. 📣 Ваша реферальная ссылка: https://t.me/$name_bot?start=$uniq_id Перешлите это пригласительное сообщение друзьям для доступа к закрытым Onion материалам❗️ Вы сможете найти официальные DarkNet ссылки на такие сайты как: KRAKEN, RUTOR, OMG, SOLARIS, MEGA, NOVA, NVSPC, SHKAF, O3SHOP, BLACKSPRUT"; apiRequest("sendPhoto", array('chat_id' => $chat_id, "caption" => $out, "photo" => curl_file_create('tmp/1.jpg'), 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $c_arr),'disable_notification' => false, 'disable_web_page_preview' => true)); return; } else { if($ppt == '') { $out = "⛔️ На данный момент все официальные домены сайта недоступны! 🔔 Как только сайт станет доступным, бот моментально уведомит Вас."; } else { $out = "✅ ДОСТУП ОТКРЫТ\n Полный список DarkNet Onion Доменов, Официальные площадки по продаже ПАВ 👇"; // $c_arr[] = array(array('text' => 'RUTOR', 'url' => $ppt)); $c_arr[] = array(array('text' => 'RUTOR', 'url' => 'http://rutordeepkpafpudl22pbbhzm4llbgncunvgcc66kax55sc4mp4kxcid.onion/')); $c_arr[] = array(array('text' => 'OMG OMG OMG', 'url' => 'http://omgomgomg5j4yrr4mjdv3h5c5xfvxtqqs2in7smi65mjps7wvkmqmtqd.onion')); $c_arr[] = array(array('text' => 'SOLARIS', 'url' => 'http://solaris6hl3hd66utabkeuz2kb7nh5fgaa5zg7sgnxbm3r2uvsnvzzad.onion')); $c_arr[] = array(array('text' => 'MEGA', 'url' => 'http://mega555kf7lsmb54yd6etzginolhxxi4ytdoma2rf77ngq55fhfcnyid.onion')); $c_arr[] = array(array('text' => 'KRAKEN', 'url' => 'http://kraken2trfqodidvlh4aa337cpzfrhdlfldhve5nf7njhumwr7instad.onion')); $c_arr[] = array(array('text' => 'NVSPC', 'url' => 'http://nvspc3qkv6546t6axp4hhcvrdinadbcud7eitg4jebukyhqiicae3hqd.onion/')); $c_arr[] = array(array('text' => 'SHKAF', 'url' => 'http://shkafweetddhz7ttgfh6z4zdeumdwmwr4p6fniz253i6znvaxsy2dlyd.onion')); $c_arr[] = array(array('text' => 'O3SHOP', 'url' => 'http://o3shopdgo2t74jpwnaowiq6ms2z47udy774aznx5xakto4fexkvgykid.onion/')); $c_arr[] = array(array('text' => 'BLACKSPRUT', 'url' => 'http://blackbzobtouqvydhryldxkzkmkotzaqhooxj4ar4gnnsy4yfrpcygyd.onion')); $c_arr[] = array(array('text' => '🔄Обновить Список Сайтов', 'callback_data' => '/start')); apiRequest("sendPhoto", array('chat_id' => $chat_id, "caption" => $out, "photo" => curl_file_create('tmp/1.jpg'), 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $c_arr),'disable_notification' => false, 'disable_web_page_preview' => true)); return; } } // } else $c_arr[] = array(array('text' => '✅Я ПОДПИСАЛСЯ✅', 'callback_data' => 'main|podpis')); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $out, 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $c_arr),'disable_notification' => false, 'disable_web_page_preview' => true)); return; } else if(strpos($data_callback, "users") === 0){ $data_callback = str_replace("users|",'', $data_callback); $data_callb = str_replace("back|",'', $data_callback); $data_callb = str_replace("next|",'', $data_callb); $out = ''; $start = $data_callb; $max = 10; if(strpos($data_callback, "next") === 0) $start += $max; else if(strpos($data_callback, "back") === 0) $start -= $max; if($start <= 0) $start = 0; $user_ref = make_query("SELECT * FROM `".$user_table."` WHERE 1 order by `id` ASC LIMIT $start, $max"); $c_arr = array(); if($start == 0) $c_arr[] = array(array('text' => 'Далее ⏩', 'callback_data' => 'main|users|next|'.$start)); else if($user_ref->num_rows <= $max) $c_arr[] = array(array('text' => '⏪ « Назад', 'callback_data' => 'main|users|back|'.$start)); else $c_arr[] = array(array('text' => '⏪ « Назад', 'callback_data' => 'main|users|back|'.$start), array('text' => 'Далее ⏩', 'callback_data' => 'main|users|next|'.$start)); if ($user_ref->num_rows > 0){ foreach($user_ref as $k => $item){ $p = $k+1; if($item['ban'] == '' || $item['ban'] == 0) $bban = 'Нет'; else $bban = $item['bban']; if($item['username'] == '.') $out .= $p.". {$item['first_name']} {$item['last_name']} 🆔: {$item['chat_id']}\n⛔️ Бан: $bban\n\n"; else $out .= $p.". @{$item['username']} {$item['first_name']} {$item['last_name']} 🆔: {$item['chat_id']}\n⛔️ Бан: $bban\n\n"; } $c_arr[] = array(array('text' => '‹ Скрыть', 'callback_data' => 'BBACK')); apiRequest("editMessageText", array('chat_id' => $chat_id, 'message_id' => $message_id, 'text' => $out, 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $c_arr),'disable_notification' => false, 'disable_web_page_preview' => true)); } else apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => "В боте пока никто не зарегистрирован.", 'parse_mode' => 'HTML')); return; } else if(strpos($data_callback, "pactiv") === 0){ // это удаление //apiRequest("deleteMessage", array('chat_id' => $chat_id, "message_id" => $message_id)); // Удаление старого поста $data_callback = str_replace("pactiv|",'', $data_callback); //$data_callback = str_replace("'",'', $data_callback); list($data_callback, $actv) = explode('|', $data_callback); $pchannels = make_query("SELECT * FROM ".$channel_table." WHERE id=".$data_callback); $pchannelz = $pchannels->fetch_assoc(); if($pchannelz['active'] == 1) { $actv = 0; $txt = '☑️ Выключили пост их подписки!'; } else { $actv = 1; $txt = '✅ Включили пост в подписку!'; } apiRequest("answerCallbackQuery", array('callback_query_id' => $message_idd, 'text' => $txt, 'parse_mode' => 'HTML', 'show_alert' => false, 'cache_time' => 4)); //apiRequest("editMessageText", array('chat_id' => $chat_id, 'message_id' => $message_id, "text" => $txt, 'parse_mode' => 'HTML')); //apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $txt, 'parse_mode' => 'HTML')); make_query("UPDATE `".$channel_table."` SET active=$actv WHERE id=".$data_callback); return; //$c_arr[] = array(array('text' => '💵 Перевести', 'callback_data' => '1step|To'), array('text' => '💎 Оплатить VIP', 'callback_data' => '1step|VIP')); } else if(strpos($data_callback, "pdel") === 0){ // это удаление //apiRequest("deleteMessage", array('chat_id' => $chat_id, "message_id" => $message_id)); // Удаление старого поста $data_callback = str_replace("pdel|",'', $data_callback); $data_callback = str_replace("'",'', $data_callback); $txt = '🚫 Удаление подписки выполнено успешно!'; apiRequest("editMessageText", array('chat_id' => $chat_id, 'message_id' => $message_id, "text" => $txt, 'parse_mode' => 'HTML')); //apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $txt, 'parse_mode' => 'HTML')); make_query("DELETE FROM `".$channel_table."` WHERE id=".$data_callback); return; } return; /* mailing_continue mailing_pause mailing_stop */ } else if(strpos($data_callback, "mailing_pause|") === 0){ $data_callback_flg = str_replace("mailing_pause|", '', $data_callback); if(!file_exists('work') && file_exists('pause')) $flg_no = 1; else $flg_no = 0; file_put_contents('pause', ''); // Создаем паузу unlink('work'); // Убираем метку работы if($flg_no == 0) die(); unlink('pause'); // Убираем паузу unlink('stop'); // Убираем стоп } else if(strpos($data_callback, "mailing_stop|") === 0){ $data_callback = str_replace("mailing_stop|", '', $data_callback); file_put_contents('stop', ''); // Создаем паузу unlink('work'); // Убираем метку работы $rass_stat = file_get_contents('rass_stat_main'); if($rass_stat == '' || $rass_stat == '0') { unlink('pause'); // Убираем паузу //unlink('stop'); // Убираем стоп file_put_contents('postponed_main', ''); file_put_contents('rass_stat_main', '0'); $tout = '❗️ Рассылка отменена!'; apiRequest("editMessageText", array('chat_id' => $chat_id, 'message_id' => $data_callback, "text" => $tout, 'parse_mode' => 'HTML','disable_notification' => false, 'disable_web_page_preview' => true)); } die(); } else if(strpos($data_callback, "mailing_continue|") === 0){ $data_callback_flg = str_replace("mailing_continue|", '', $data_callback); unlink('pause'); // Убираем паузу unlink('stop'); // Убираем стоп } else if(strpos($data_callback, "mailing_sbros|") === 0){ $data_callback = str_replace("mailing_sbros|", '', $data_callback); file_put_contents('sbros', ''); // Создаем сброс file_put_contents('stop', ''); // Создаем паузу } else if(strpos($data_callback, "BBACK") === 0 || strpos($data_callback, "!cancel!") === 0){ // выводим line1 apiRequest("deleteMessage", array('chat_id' => $chat_id, "message_id" => $message_id)); // Удаление старого поста return; } else if(strpos($data_callback, "mess_to_chat") === 0){ $txt = "Следующее ваше сообщение будет отправлено Оператору!\nОн с вами свяжется в ближайшее время!"; apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $txt, 'parse_mode' => 'HTML')); make_query("UPDATE `".$user_table."` SET step=99, tmp='' WHERE chat_id=".$chat_id); return; } } // USER if($user['step'] == '91'){ // Обработка if(!$root) return; // Проверка админ ли $tmp_text = str_replace("'", '', $tmp_text); $tmp_text = str_replace('"', '', $tmp_text); if($text == '➡️ пропустить'){ $out = "Пропустили текст на кнопке!\n\nВведите ссылку:"; } else { $out = "Сохранили текст на кнопке!\n\nВведите ссылку:"; file_put_contents('links', $tmp_text); } $menu = array(); $menu[] = array("🚫 Очистить"); $menu[] = array("⬅️ Вернуться"); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $out, 'reply_markup' => array( 'keyboard' => $menu, 'one_time_keyboard' => false, 'resize_keyboard' => true), 'parse_mode' => 'HTML')); make_query("UPDATE `".$user_table."` SET step=94, tmp='' WHERE chat_id=".$chat_id); return; } else if($user['step'] == '94'){ // Обработка if(!$root) return; // Проверка админ ли $tmp_text = str_replace("'", '', $tmp_text); $tmp_text = str_replace('"', '', $tmp_text); if(!filter_var($tmp_text, FILTER_VALIDATE_URL)) { apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => "Введенная ссылка недействительна, либо неверного формата.\nПроверьте ее и попробуйте заново!", 'parse_mode' => 'HTML')); return; } // разметка if(is_file('html')){ $all_img= file_get_contents('html'); $all_img = trim($all_img); if($all_img == 'HTML') $cflg_razm = 'HTML'; else if($all_img == 'Markdown') $cflg_razm = 'Markdown'; else $cflg_razm = 'HTML'; } else $cflg_razm = 'HTML'; // Режим предпросмотр либо нет $cflg_preview = ''; if(is_file('preview')){ $all_prw = file_get_contents('preview'); if ($all_prw != '') $cflg_preview = 'true'; else $cflg_preview = 'false'; } else $cflg_preview = 'true'; $out = "Успешно установили ссылку на кнопку!\n$tmp_text"; $pd = file_get_contents('links'); file_put_contents('links', trim($pd).'|'.$tmp_text); $menu = array(); $menu[] = array("✅ Начать рассылку", "👁‍🗨 Предпросмотр"); $menu[] = array("🔗 Ссылка", "📄 Текст", "🌄 Медиа"); $menu[] = array("🧾 Черный список", "ℹ️ ".$cflg_razm, "👁‍🗨 Превью ".$cflg_preview); //$menu[] = array("🗂 Критерии Оплативших/Неоплативших"); $menu[] = array("⬅️ Возвратиться на главную"); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $out, 'reply_markup' => array( 'keyboard' => $menu, 'one_time_keyboard' => false, 'resize_keyboard' => true), 'parse_mode' => 'HTML')); make_query("UPDATE `".$user_table."` SET step=90, tmp='' WHERE chat_id=".$chat_id); return; } else if($user['step'] == '96'){ // Черный список if(!$root) return; // Проверка админ ли $tmp_text = str_replace("'", '', $tmp_text); $tmp_text = str_replace('"', '', $tmp_text); // разметка if(is_file('html')){ $all_img= file_get_contents('html'); $all_img = trim($all_img); if($all_img == 'HTML') $cflg_razm = 'HTML'; else if($all_img == 'Markdown') $cflg_razm = 'Markdown'; else $cflg_razm = 'HTML'; } else $cflg_razm = 'HTML'; // Режим предпросмотр либо нет $cflg_preview = ''; if(is_file('preview')){ $all_prw = file_get_contents('preview'); if ($all_prw != '') $cflg_preview = 'true'; else $cflg_preview = 'false'; } else $cflg_preview = 'true'; file_put_contents('black', $tmp_text); $tmp_crit = ''.trim($tmp_text).''; $out = "Установили новый список людей для пропуска рассылки:\n".$tmp_crit; $menu = array(); $menu[] = array("✅ Начать рассылку", "👁‍🗨 Предпросмотр"); $menu[] = array("🔗 Ссылка", "📄 Текст", "🌄 Медиа"); $menu[] = array("🧾 Черный список", "ℹ️ ".$cflg_razm, "👁‍🗨 Превью ".$cflg_preview); ////$menu[] = array("🗂 Критерии Оплативших/Неоплативших"); $menu[] = array("⬅️ Возвратиться на главную"); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $out, 'reply_markup' => array( 'keyboard' => $menu, 'one_time_keyboard' => false, 'resize_keyboard' => true), 'parse_mode' => 'HTML')); make_query("UPDATE `".$user_table."` SET step=90, tmp='' WHERE chat_id=".$chat_id); return; } else if($user['step'] == '95'){ // Обработка if(!$root) return; // Проверка админ ли $tmp_text = str_replace("'", '', $tmp_text); $tmp_text = str_replace('"', '', $tmp_text); $mass_out_ready = array(); // Запускаем блэклист if(is_file('black')){ $tmp_black = file_get_contents('black'); $tmp_black = str_replace(array(" ", "\n", "\r"), '', $tmp_black); $mass_out_ready = explode(',', $tmp_black); } list($tdata_begin, $tdata_end) = explode('|', $tmp_text); if(!preg_match('/^((((19|[2-9]\d)\d{2})\-(0[13578]|1[02])\-(0[1-9]|[12]\d|3[01]))|(((19|[2-9]\d)\d{2})\-(0[13456789]|1[012])\-(0[1-9]|[12]\d|30))|(((19|[2-9]\d)\d{2})\-02\-(0[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))\-02\-29))$/', $tdata_begin) || !preg_match('/^((((19|[2-9]\d)\d{2})\-(0[13578]|1[02])\-(0[1-9]|[12]\d|3[01]))|(((19|[2-9]\d)\d{2})\-(0[13456789]|1[012])\-(0[1-9]|[12]\d|30))|(((19|[2-9]\d)\d{2})\-02\-(0[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))\-02\-29))$/', $tdata_end)) { apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => "Введенны критерии не в том формате, либо неверного формата.\nПроверьте их и попробуйте заново!", 'parse_mode' => 'HTML')); return; } // небольшой поиск по юзерам $mass_b = array(); // Громоздкий способ поиска $userzb = make_query("SELECT DISTINCT * FROM ".$transaction_table.' WHERE `success`=1 ORDER BY id'); foreach($userzb as $usersb) $mass_b[] = $usersb['chat_id']; $userzt = make_query("SELECT DISTINCT * FROM ".$transaction_table.' WHERE `success`!=1 ORDER BY id'); $col_t = $userzt->num_rows; $cnt_no=0; $cnt_yes=0; $cnt_neutr=0; $cnt_sell=0; $date1_start = strtotime($tdata_begin.' 00:00:00'); $date2_start = strtotime($tdata_end.' 23:59:59'); //+86000 foreach($userzt as $k => $usert){ if(in_array($usert['chat_id'], $mass_out_ready)) continue; $mass_out_ready[] = $usert['chat_id']; $userts = ''; $zuser = ''; $zuser = make_query("SELECT * FROM ".$user_table." WHERE `chat_id`=".$usert['chat_id'].' LIMIT 1'); $userts = $zuser->fetch_assoc(); // Определяем удобный формат для работы с данными текущего пользователя if ($userts['vip_days'] > 0) { $cnt_sell++; continue; } if (in_array($usert['chat_id'], $mass_b)) { $cnt_neutr++; continue; } // Проверка даты $date_time_crt = strtotime($usert['date_time_crt']); if($date_time_crt == '') continue; if($date_time_crt >= $date1_start && $date_time_crt <= $date2_start) { $cnt_yes++; } else { $cnt_no++; continue; } } //echo "Всего пользователей: $col_t
Оплативших хоть бы раз: $cnt_neutr
Неподходящих по дате: $cnt_no
Подходящих по дате: $cnt_yes"; // разметка if(is_file('html')){ $all_img= file_get_contents('html'); $all_img = trim($all_img); if($all_img == 'HTML') $cflg_razm = 'HTML'; else if($all_img == 'Markdown') $cflg_razm = 'Markdown'; else $cflg_razm = 'HTML'; } else $cflg_razm = 'HTML'; // Режим предпросмотр либо нет $cflg_preview = ''; if(is_file('preview')){ $all_prw = file_get_contents('preview'); if ($all_prw != '') $cflg_preview = 'true'; else $cflg_preview = 'false'; } else $cflg_preview = 'true'; $out = "Всего пользователей: $col_t Оплативших хоть бы раз: $cnt_neutr Неподходящих по Дате: $cnt_no Сейчас оплачено: $cnt_sell Подходящих по Дате: $cnt_yes Успешно установили параметры рассылки по критериям!\n$tmp_text"; file_put_contents('crit', $tmp_text); $menu = array(); $menu[] = array("✅ Начать рассылку", "👁‍🗨 Предпросмотр"); $menu[] = array("🔗 Ссылка", "📄 Текст", "🌄 Медиа"); $menu[] = array("🧾 Черный список", "ℹ️ ".$cflg_razm, "👁‍🗨 Превью ".$cflg_preview); ////$menu[] = array("🗂 Критерии Оплативших/Неоплативших"); $menu[] = array("⬅️ Возвратиться на главную"); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $out, 'reply_markup' => array( 'keyboard' => $menu, 'one_time_keyboard' => false, 'resize_keyboard' => true), 'parse_mode' => 'HTML')); make_query("UPDATE `".$user_table."` SET step=90, tmp='' WHERE chat_id=".$chat_id); return; } else if($user['step'] == '93'){ // Обработка текста if(!$root) return; // Проверка админ ли //$tmp_text = str_replace("'", '', $tmp_text); //$tmp_text = str_replace('"', '', $tmp_text); $out = "Успешно сохранили текст рассылки!\n\n$tmp_text"; file_put_contents('text', $tmp_text); $menu = array(); $menu[] = array("✅ Начать рассылку", "👁‍🗨 Предпросмотр"); $menu[] = array("🔗 Ссылка", "📄 Текст", "🌄 Медиа"); $menu[] = array("🧾 Черный список", "ℹ️ ".$cflg_razm, "👁‍🗨 Превью ".$cflg_preview); ////$menu[] = array("🗂 Критерии Оплативших/Неоплативших"); $menu[] = array("⬅️ Возвратиться на главную"); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $out, 'reply_markup' => array( 'keyboard' => $menu, 'one_time_keyboard' => false, 'resize_keyboard' => true), 'parse_mode' => 'HTML')); make_query("UPDATE `".$user_table."` SET step=90, tmp='' WHERE chat_id=".$chat_id); return; } else if($user['step'] == '97' || $data_callback_flg != ''){ // !!! МОДУЛЬ РАССЫЛКИ !!! if(!$root) return; // Проверка админ ли if(is_file('work')) die(); if(is_file('stop')){ $rass_stat = file_get_contents('rass_stat_main'); if($rass_stat == '0' || $rass_stat == '') unlink('stop'); } // Дефолтный режим $flg_type_send = 0; // Проверка внесены ли какие-либо данные для рассылки? if (file_get_contents('photo')) $is_d_photo = 1; else $is_d_photo = 0; if (file_get_contents('text')) $is_d_txt = 1; else $is_d_txt = 0; if($is_d_txt == 0 && $is_d_photo == 0) { apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => "❌ Внимание!\nВы не внесли текст либо медиа для рассылки.\nДобавьте и сможете начать рассылку заново!", 'parse_mode' => 'HTML')); // шлем админу //make_query("UPDATE `".$user_table."` SET step=90, tmp='' WHERE chat_id=".$chat_id); return; } $mass_out_ready = array(); // Запускаем блэклист if(is_file('black')){ $tmp_black = file_get_contents('black'); $tmp_black = str_replace(array(" ", "\n", "\r"), '', $tmp_black); $mass_out_ready = explode(',', $tmp_black); } // определяем что это за тип рассылки // небольшой поиск по юзерам $mass_b = array(); $flg_type_send = 0; // Всем // разметка if(is_file('html')){ $all_img= file_get_contents('html'); $all_img = trim($all_img); if($all_img == 'HTML') $cflg_razm = 'HTML'; else if($all_img == 'Markdown') $cflg_razm = 'Markdown'; else $cflg_razm = 'HTML'; } else $cflg_razm = 'HTML'; // Режим предпросмотр либо нет $cflg_preview = ''; if(is_file('preview')){ $all_prw = file_get_contents('preview'); if ($all_prw != '') $cflg_preview = 'true'; else $cflg_preview = 'false'; } else $cflg_preview = 'true'; if($data_callback_flg == '') { $out = "Успешно начали процесс рассылки!"; //else $out = "Успешно продолжили процесс рассылки!"; $menu = array(); $menu[] = array("✅ Начать рассылку", "👁‍🗨 Предпросмотр"); $menu[] = array("🔗 Ссылка", "📄 Текст", "🌄 Медиа"); $menu[] = array("🧾 Черный список", "ℹ️ ".$cflg_razm, "👁‍🗨 Превью ".$cflg_preview); //$menu[] = array("🗂 Критерии Оплативших/Неоплативших"); $menu[] = array("⬅️ Возвратиться на главную"); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $out, 'reply_markup' => array( 'keyboard' => $menu, 'one_time_keyboard' => false, 'resize_keyboard' => true), 'parse_mode' => 'HTML')); } // МОДУЛЬ РАССЫЛКИ // Масс рассылка для юзеров file_put_contents('log_rass.txt', "/send_main дана от $chat_id!\r\n", FILE_APPEND); // Формируем сообщение $cflg_vp = 0; if(is_file('photo')){ $all_img = file_get_contents('photo'); $all_img = trim($all_img); if($all_img != '') { if (strpos($all_img, "video_") !== false) { $video_cfg = str_replace('video_', '', $all_img); $cflg_vp = 3; } else if (strpos($all_img, "photo_") !== false) { $photo_cfg = str_replace('photo_', '', $all_img); $cflg_vp = 1; } else if (strpos($all_img, "document_") !== false) { $document_cfg = str_replace('document_', '', $all_img); $cflg_vp = 2; } else if (strpos($all_img, "audio_") !== false) { $audio_cfg = str_replace('audio_', '', $all_img); $cflg_vp = 4; } else if (strpos($all_img, "voice_") !== false) { $audio_cfg = str_replace('voice_', '', $all_img); $cflg_vp = 5; } //file_put_contents('photo', ''); } } // Текст рассылки $ttx = ''; if(is_file('text')){ $all_txt= file_get_contents('text'); $ttx = trim($all_txt); } $c_arr = array(); // Ссылка-кнопка $cflg_lnk_txt = ''; $cflg_lnk = ''; if(is_file('links')){ $all_lnk= file_get_contents('links'); if (strpos($all_lnk, '|') !== false) list($cflg_lnk_txt, $cflg_lnk) = explode('|', trim($all_lnk)); else { $cflg_lnk_txt = trim($all_lnk); $cflg_lnk = trim($all_lnk); } $c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); } // Режим сколько символов $cflg_smbl = 2000; if(is_file('symbols')){ $all_prw = file_get_contents('symbols'); $all_prw = trim($all_prw); if ($all_smb != '' && is_numeric($all_smb)) $cflg_smbl = $all_smb; } // Сбрасываем рассылку и выходим if(is_file('sbros')){ file_put_contents('rass_stat_users', '0'); file_put_contents('rass_statp_users', ''); file_put_contents('postponed_users', ''); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => 'Очистили рассылку. Можете работать дальше...', 'parse_mode' => 'HTML')); // шлем админу unlink('sbros'); return; } // Забираем юзеров $userz = make_query("SELECT * FROM ".$user_table.' WHERE 1 ORDER BY id'); // LIMIT 90000 $col_t = $userz->num_rows; $statuz = "⏱ Рассылка в процессе!"; $cnt_t = 0; $cnt_neutr = 0; $cnt_yes = 0; $cnt_no = 0; $cnt_error = 0; // Шаблон сообщения $toutb = "{PROCESS}\n\n✅ Отправлено: {COUNT} из {ALL_COUNT} ({PERCENT}%)\n🚫 Ошибок: {CNTERR} ({PERCENTERR}%)\n{DOP_SHAB} ♻️ Осталось: {LAST}\n\n🆔 Текущий юзер: {USER_MAIN}"; $toutb_dop1 = "Оплативших: {cnt_neutr}\n"; $toutb_dop2 = "Оплативших: {cnt_neutr}\nНеподходящих по Дате: {cnt_no}\nПодходящих по Дате: {cnt_yes}\n"; $b_arr = array(); // Восстанавливаем рассылку с прерванного места $rass_stat = file_get_contents('rass_stat_main'); if($rass_stat == '1') { file_put_contents('rass_stat_main', '0'); $ccnt = file_get_contents('rass_statp_main'); $ccnt++; file_put_contents('rass_statp_main', $ccnt); die(); } file_put_contents('rass_stat_main', '1'); // Модуль проверки доотправки сообщений $postponed = file_get_contents('postponed_main'); // ДОПОЛНИТЕЛЬНЫЙ ЦИКЛ ДОСЫЛКИ if($postponed || $data_callback_flg != ''){ list($u_id, $uset, $cnt_t, $all_img, $all_lnk, $all_txt) = explode('|!:|', trim($postponed)); // Восстанавливаем флаги if(is_file('flg_type')){ $flg_type = file_get_contents('flg_type'); if(is_numeric($flg_type) && $flg_type > 0) $flg_type_send = $flg_type; else $flg_type_send = 0; } // Для досылки собираем юзеров if($flg_type_send == 1) $userz = make_query("SELECT DISTINCT * FROM ".$user_table." WHERE id>'$u_id' and `success`=1 ORDER BY id"); else if($flg_type_send == 2) $userz = make_query("SELECT DISTINCT * FROM ".$user_table." WHERE id>'$u_id' and `success`!=1 ORDER BY id"); else if($flg_type_send == 3) $userz = make_query("SELECT DISTINCT * FROM ".$user_table." WHERE id>'$u_id' and `success`!=1 ORDER BY id"); else if($flg_type_send == 4) $userz = make_query("SELECT DISTINCT * FROM ".$user_table." WHERE id>'$u_id' and `success`=1 ORDER BY id"); else $userz = make_query("SELECT * FROM ".$user_table." WHERE id>'$u_id' ORDER BY id"); // LIMIT 90000 $col_t = $userz->num_rows; if (strpos($all_img, "video_") !== false) { $video_cfg = str_replace('video_', '', $all_img); $cflg_vp = 3; } else if (strpos($all_img, "photo_") !== false) { $photo_cfg = str_replace('photo_', '', $all_img); $cflg_vp = 1; } else if (strpos($all_img, "document_") !== false) { $document_cfg = str_replace('document_', '', $all_img); $cflg_vp = 2; } else if (strpos($all_img, "audio_") !== false) { $audio_cfg = str_replace('audio_', '', $all_img); $cflg_vp = 4; } else if (strpos($all_img, "voice_") !== false) { $audio_cfg = str_replace('voice_', '', $all_img); $cflg_vp = 5; } // Текст рассылки $ttx = trim($all_txt); // Ссылка-кнопка $cflg_lnk_txt = ''; $cflg_lnk = ''; if (strpos($all_lnk, '|') !== false) list($cflg_lnk_txt, $cflg_lnk) = explode('|', trim($all_lnk)); else { $cflg_lnk_txt = trim($all_lnk); $cflg_lnk = trim($all_lnk); } // Оповещаем $statuz = "⏱ Продолжение рассылки с $cnt_t!"; $tout = str_replace('{PROCESS}', $statuz, $toutb); $tout = str_replace('{COUNT}', $cnt_t, $tout); $tout = str_replace('{ALL_COUNT}', $col_t, $tout); $tout = str_replace('{USER_MAIN}', '', $tout); // для отображения юзера текущего $col_perc = round(($cnt_t*100)/$col_t); $tout = str_replace('{PERCENT}', $col_perc, $tout); $col_l = $col_t - $cnt_t; $tout = str_replace('{LAST}', $col_l, $tout); $tout = str_replace('{CNTERR}', $cnt_error, $tout); $col_percerr = round(($cnt_error*100)/$col_t); $tout = str_replace('{PERCENTERR}', $col_percerr, $tout); // Для спец. режимов if($flg_type_send == 1 || $flg_type_send == 4) { $toutb_dop1_1 = str_replace('{cnt_neutr}', $cnt_neutr, $toutb_dop1); $tout = str_replace('{DOP_SHAB}', $toutb_dop1_1, $tout); } else if($flg_type_send == 2 || $flg_type_send == 3) { $toutb_dop2_2 = str_replace('{cnt_neutr}', $cnt_neutr, $toutb_dop2); $toutb_dop2_2 = str_replace('{cnt_no}', $cnt_no, $toutb_dop2_2); $toutb_dop2_2 = str_replace('{cnt_yes}', $cnt_yes, $toutb_dop2_2); $tout = str_replace('{DOP_SHAB}', $toutb_dop2_2, $tout); } else $tout = str_replace('{DOP_SHAB}', '', $tout); if($data_callback_flg != ''){ $message_id = $data_callback_flg; $b_arr[] = array(array('text' => '⏸ Пауза', 'callback_data' => 'mailing_pause|'.$message_id)); $b_arr[] = array(array('text' => '🚫 Отменить', 'callback_data' => 'mailing_stop|'.$message_id)); apiRequest("editMessageText", array('chat_id' => $chat_id, 'message_id' => $message_id, "text" => $tout, 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $b_arr),'disable_notification' => false, 'disable_web_page_preview' => true)); } else { $message = apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $tout, 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $b_arr),'disable_notification' => false, 'disable_web_page_preview' => true)); //$message = json_decode($message, true); $message_id = $message['message_id']; $b_arr[] = array(array('text' => '⏸ Пауза', 'callback_data' => 'mailing_pause|'.$message_id)); $b_arr[] = array(array('text' => '🚫 Отменить', 'callback_data' => 'mailing_stop|'.$message_id)); apiRequest("editMessageText", array('chat_id' => $chat_id, 'message_id' => $message_id, "text" => $tout, 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $b_arr),'disable_notification' => false, 'disable_web_page_preview' => true)); } file_put_contents('work',''); foreach($userz as $user){ // ДОСЫЛКА! if(in_array($user['chat_id'], $mass_out_ready)) continue; $mass_out_ready[] = $user['chat_id']; $tout = ''; if($flg_type_send >= 1 && $flg_type_send <= 4) { //apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $user['chat_id'], 'parse_mode' => 'HTML')); $users = ''; $zuser = ''; $zuser = make_query("SELECT * FROM ".$user_table." WHERE `chat_id`=".$user['chat_id'].' LIMIT 1'); $users = $zuser->fetch_assoc(); // Определяем удобный формат для работы с данными текущего пользователя } else { $users = ''; $users = $user; } if(file_exists("stop")) { $statuz = '❗️ Рассылка прервана!'; // Оповещаем $tout = str_replace('{PROCESS}', $statuz, $toutb); $tout = str_replace('{COUNT}', $cnt_t, $tout); $tout = str_replace('{ALL_COUNT}', $col_t, $tout); $tout = str_replace('{USER_MAIN}', "".$users['first_name'].' '.$users['last_name'].'', $tout); // для отображения юзера текущего $col_perc = round(($cnt_t*100)/$col_t); $tout = str_replace('{PERCENT}', $col_perc, $tout); $col_l = $col_t - $cnt_t; $tout = str_replace('{LAST}', $col_l, $tout); $tout = str_replace('{CNTERR}', $cnt_error, $tout); $col_percerr = round(($cnt_error*100)/$col_t); $tout = str_replace('{PERCENTERR}', $col_percerr, $tout); // Для спец. режимов if($flg_type_send == 1 || $flg_type_send == 4) { $toutb_dop1_1 = str_replace('{cnt_neutr}', $cnt_neutr, $toutb_dop1); $tout = str_replace('{DOP_SHAB}', $toutb_dop1_1, $tout); } else if($flg_type_send == 2 || $flg_type_send == 3) { $toutb_dop2_2 = str_replace('{cnt_neutr}', $cnt_neutr, $toutb_dop2); $toutb_dop2_2 = str_replace('{cnt_no}', $cnt_no, $toutb_dop2_2); $toutb_dop2_2 = str_replace('{cnt_yes}', $cnt_yes, $toutb_dop2_2); $tout = str_replace('{DOP_SHAB}', $toutb_dop2_2, $tout); } else $tout = str_replace('{DOP_SHAB}', '', $tout); $b_arr = array(); apiRequest("editMessageText", array('chat_id' => $chat_id, 'message_id' => $message_id, "text" => $tout, 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $b_arr),'disable_notification' => false, 'disable_web_page_preview' => true)); file_put_contents('postponed_main', ''); file_put_contents('rass_stat_main', '0'); die('die!'); } else if(file_exists("pause")) { $statuz = '⏸ Рассылка приостановлена!'; // Оповещаем $tout = str_replace('{PROCESS}', $statuz, $toutb); $tout = str_replace('{COUNT}', $cnt_t, $tout); $tout = str_replace('{ALL_COUNT}', $col_t, $tout); $tout = str_replace('{USER_MAIN}', "".$users['first_name'].' '.$users['last_name'].'', $tout); // для отображения юзера текущего $col_perc = round(($cnt_t*100)/$col_t); $tout = str_replace('{PERCENT}', $col_perc, $tout); $col_l = $col_t - $cnt_t; $tout = str_replace('{LAST}', $col_l, $tout); $tout = str_replace('{CNTERR}', $cnt_error, $tout); $col_percerr = round(($cnt_error*100)/$col_t); $tout = str_replace('{PERCENTERR}', $col_percerr, $tout); // Для спец. режимов if($flg_type_send == 1 || $flg_type_send == 4) { $toutb_dop1_1 = str_replace('{cnt_neutr}', $cnt_neutr, $toutb_dop1); $tout = str_replace('{DOP_SHAB}', $toutb_dop1_1, $tout); } else if($flg_type_send == 2 || $flg_type_send == 3) { $toutb_dop2_2 = str_replace('{cnt_neutr}', $cnt_neutr, $toutb_dop2); $toutb_dop2_2 = str_replace('{cnt_no}', $cnt_no, $toutb_dop2_2); $toutb_dop2_2 = str_replace('{cnt_yes}', $cnt_yes, $toutb_dop2_2); $tout = str_replace('{DOP_SHAB}', $toutb_dop2_2, $tout); } else $tout = str_replace('{DOP_SHAB}', '', $tout); $b_arr = array(); $b_arr[] = array(array('text' => '▶️ Продолжить', 'callback_data' => 'mailing_continue|'.$message_id,)); $b_arr[] = array(array('text' => '🚫 Отменить', 'callback_data' => 'mailing_stop|'.$message_id,)); apiRequest("editMessageText", array('chat_id' => $chat_id, 'message_id' => $message_id, "text" => $tout, 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $b_arr),'disable_notification' => false, 'disable_web_page_preview' => true)); // Сохраняем процесс file_put_contents('postponed_main', $user['id'].'|!:|'.$users['chat_id'].'|!:|'.$cnt_t.'|!:|'.$all_img.'|!:|'.$all_lnk.'|!:|'.$all_txt); file_put_contents('rass_stat_main', '0'); die('die!'); } //if(in_array(trim($users['chat_id']), $arr_u)) { // Оповещаем $tout = str_replace('{PROCESS}', $statuz, $toutb); $tout = str_replace('{COUNT}', $cnt_t, $tout); $tout = str_replace('{ALL_COUNT}', $col_t, $tout); $tout = str_replace('{USER_MAIN}', "".$users['first_name'].' '.$users['last_name'].'', $tout); // для отображения юзера текущего $col_perc = round(($cnt_t*100)/$col_t); $tout = str_replace('{PERCENT}', $col_perc, $tout); $col_l = $col_t - $cnt_t; $tout = str_replace('{LAST}', $col_l, $tout); $tout = str_replace('{CNTERR}', $cnt_error, $tout); $col_percerr = round(($cnt_error*100)/$col_t); $tout = str_replace('{PERCENTERR}', $col_percerr, $tout); // Для спец. режимов if($flg_type_send == 1 || $flg_type_send == 4) { $toutb_dop1_1 = str_replace('{cnt_neutr}', $cnt_neutr, $toutb_dop1); $tout = str_replace('{DOP_SHAB}', $toutb_dop1_1, $tout); } else if($flg_type_send == 2 || $flg_type_send == 3) { $toutb_dop2_2 = str_replace('{cnt_neutr}', $cnt_neutr, $toutb_dop2); $toutb_dop2_2 = str_replace('{cnt_no}', $cnt_no, $toutb_dop2_2); $toutb_dop2_2 = str_replace('{cnt_yes}', $cnt_yes, $toutb_dop2_2); $tout = str_replace('{DOP_SHAB}', $toutb_dop2_2, $tout); } else $tout = str_replace('{DOP_SHAB}', '', $tout); apiRequest("editMessageText", array('chat_id' => $chat_id, 'message_id' => $message_id, "text" => $tout, 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $b_arr),'disable_notification' => false, 'disable_web_page_preview' => true)); // Для режимов 2 и 3 if($flg_type_send == 2 || $flg_type_send == 3) { if (in_array($users['chat_id'], $mass_b)) { $cnt_neutr++; $cnt_t++; continue; } } else $cnt_neutr++; // Проверка даты для режимов 3 и 4 if($flg_type_send == 3 || $flg_type_send == 4) { $date_time_crt = strtotime($user['date_time_crt']); if($date_time_crt == '') { $cnt_no++; $cnt_t++; continue; } if($date_time_crt >= $date1_start && $date_time_crt <= $date2_start) { $cnt_yes++; } else { $cnt_no++; $cnt_t++; continue; } } // Сама рассылка // заглушка //$users['chat_id'] = '0'; // Обработка фото и текста в режиме посылки if($photo_cfg){ $lcount = 0; $lcount = mb_strlen(trim($ttx), 'UTF-8'); if($lcount <= 2000) $flg_lcount = 1; else $flg_lcount = 0; if($flg_lcount == 1) { if($ttx == '') { if($cflg_lnk == '') $err_llg = apiRequest("sendPhoto", array('chat_id' => $users['chat_id'], "photo" => $photo_cfg)); else { $err_llg = apiRequest("sendPhoto", array('chat_id' => $users['chat_id'], "photo" => $photo_cfg, 'reply_markup' => array('inline_keyboard' => $c_arr))); } } else { if($cflg_lnk == '') $err_llg = apiRequest("sendPhoto", array('chat_id' => $users['chat_id'], "photo" => $photo_cfg, "caption" => $ttx, 'parse_mode' => 'HTML', 'disable_web_page_preview' => $cflg_preview)); else { $err_llg = apiRequest("sendPhoto", array('chat_id' => $users['chat_id'], "photo" => $photo_cfg, "caption" => $ttx, 'parse_mode' => $cflg_razm, 'reply_markup' => array('inline_keyboard' => $c_arr), 'disable_web_page_preview' => $cflg_preview)); } } } else { $err_llg = apiRequest("sendPhoto", array('chat_id' => $users['chat_id'], "photo" => $photo_cfg, 'parse_mode' => 'HTML')); if($cflg_lnk == '') $err_llg = apiRequest("sendMessage", array('chat_id' => $users['chat_id'], "text" => $ttx, 'parse_mode' => $cflg_razm, 'disable_web_page_preview' => $cflg_preview)); else { $err_llg = apiRequest("sendMessage", array('chat_id' => $users['chat_id'], "text" => $ttx, 'parse_mode' => $cflg_razm, 'reply_markup' => array('inline_keyboard' => $c_arr), 'disable_web_page_preview' => $cflg_preview)); } } } else if($audio_cfg){ $lcount = 0; $lcount = mb_strlen(trim($ttx), 'UTF-8'); if($lcount <= 2000) $flg_lcount = 1; else $flg_lcount = 0; if($flg_lcount == 1) { if($ttx == '') { if($cflg_lnk == '') $err_llg = apiRequest("sendAudio", array('chat_id' => $users['chat_id'], "audio" => $audio_cfg)); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); $err_llg = apiRequest("sendAudio", array('chat_id' => $users['chat_id'], "audio" => $audio_cfg, 'reply_markup' => array('inline_keyboard' => $c_arr))); } } else { if($cflg_lnk == '') $err_llg = apiRequest("sendAudio", array('chat_id' => $users['chat_id'], "audio" => $audio_cfg, "caption" => $ttx, 'parse_mode' => $cflg_razm, 'disable_web_page_preview' => $cflg_preview)); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); $err_llg = apiRequest("sendAudio", array('chat_id' => $users['chat_id'], "audio" => $audio_cfg, "caption" => $ttx, 'parse_mode' => $cflg_razm, 'reply_markup' => array('inline_keyboard' => $c_arr), 'disable_web_page_preview' => $cflg_preview)); } } } else { $err_llg = apiRequest("sendAudio", array('chat_id' => $users['chat_id'], "audio" => $audio_cfg, 'parse_mode' => 'HTML')); if($cflg_lnk == '') $err_llg = apiRequest("sendMessage", array('chat_id' => $users['chat_id'], "text" => $ttx, 'parse_mode' => $cflg_razm, 'disable_web_page_preview' => $cflg_preview)); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); $err_llg = apiRequest("sendMessage", array('chat_id' => $users['chat_id'], "text" => $ttx, 'parse_mode' => $cflg_razm, 'reply_markup' => array('inline_keyboard' => $c_arr), 'disable_web_page_preview' => $cflg_preview)); } } } else if($voice_cfg){ $lcount = 0; $lcount = mb_strlen(trim($ttx), 'UTF-8'); if($lcount <= 2000) $flg_lcount = 1; else $flg_lcount = 0; if($flg_lcount == 1) { if($ttx == '') { if($cflg_lnk == '') $err_llg = apiRequest("sendVoice", array('chat_id' => $users['chat_id'], "voice" => $voice_cfg)); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); $err_llg = apiRequest("sendVoice", array('chat_id' => $users['chat_id'], "voice" => $voice_cfg, 'reply_markup' => array('inline_keyboard' => $c_arr))); } } else { if($cflg_lnk == '') $err_llg = apiRequest("sendVoice", array('chat_id' => $users['chat_id'], "voice" => $voice_cfg, "caption" => $ttx, 'parse_mode' => $cflg_razm, 'disable_web_page_preview' => $cflg_preview)); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); $err_llg = apiRequest("sendVoice", array('chat_id' => $users['chat_id'], "voice" => $voice_cfg, "caption" => $ttx, 'parse_mode' => $cflg_razm, 'reply_markup' => array('inline_keyboard' => $c_arr), 'disable_web_page_preview' => $cflg_preview)); } } } else { $err_llg = apiRequest("sendVoice", array('chat_id' => $users['chat_id'], "voice" => $voice_cfg, 'parse_mode' => $cflg_razm)); if($cflg_lnk == '') $err_llg = apiRequest("sendMessage", array('chat_id' => $users['chat_id'], "text" => $ttx, 'parse_mode' => $cflg_razm, 'disable_web_page_preview' => $cflg_preview)); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); $err_llg = apiRequest("sendMessage", array('chat_id' => $users['chat_id'], "text" => $ttx, 'parse_mode' => $cflg_razm, 'reply_markup' => array('inline_keyboard' => $c_arr), 'disable_web_page_preview' => $cflg_preview)); } } } else if($document_cfg){ $lcount = 0; $lcount = mb_strlen(trim($ttx), 'UTF-8'); if($lcount <= 2000) $flg_lcount = 1; else $flg_lcount = 0; if($flg_lcount == 1) { if($ttx == '') { if($cflg_lnk == '') $err_llg = apiRequest("sendDocument", array('chat_id' => $users['chat_id'], "document" => $document_cfg)); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); $err_llg = apiRequest("sendDocument", array('chat_id' => $users['chat_id'], "document" => $document_cfg, 'reply_markup' => array('inline_keyboard' => $c_arr))); } } else { if($cflg_lnk == '') $err_llg = apiRequest("sendDocument", array('chat_id' => $users['chat_id'], "document" => $document_cfg, "caption" => $ttx, 'parse_mode' => $cflg_razm, 'disable_web_page_preview' => $cflg_preview)); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); $err_llg = apiRequest("sendDocument", array('chat_id' => $users['chat_id'], "document" => $document_cfg, "caption" => $ttx, 'parse_mode' => $cflg_razm, 'reply_markup' => array('inline_keyboard' => $c_arr), 'disable_web_page_preview' => $cflg_preview)); } } } else { $err_llg = apiRequest("sendDocument", array('chat_id' => $users['chat_id'], "document" => $document_cfg, 'parse_mode' => $cflg_razm)); if($cflg_lnk == '') $err_llg = apiRequest("sendMessage", array('chat_id' => $users['chat_id'], "text" => $ttx, 'parse_mode' => $cflg_razm, 'disable_web_page_preview' => $cflg_preview)); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); $err_llg = apiRequest("sendMessage", array('chat_id' => $users['chat_id'], "text" => $ttx, 'parse_mode' => $cflg_razm, 'reply_markup' => array('inline_keyboard' => $c_arr), 'disable_web_page_preview' => $cflg_preview)); } } } else if($video_cfg){ $lcount = 0; $lcount = mb_strlen(trim($ttx), 'UTF-8'); if($lcount <= 2000) $flg_lcount = 1; else $flg_lcount = 0; if($flg_lcount == 1) { if($ttx == '') { if($cflg_lnk == '') $err_llg = apiRequest("sendVideo", array('chat_id' => $users['chat_id'], "video" => $video_cfg)); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); $err_llg = apiRequest("sendVideo", array('chat_id' => $users['chat_id'], "video" => $video_cfg, 'reply_markup' => array('inline_keyboard' => $c_arr))); } } else { if($cflg_lnk == '') $err_llg = apiRequest("sendVideo", array('chat_id' => $users['chat_id'], "video" => $video_cfg, "caption" => $ttx, 'parse_mode' => $cflg_razm, 'disable_web_page_preview' => $cflg_preview)); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); $err_llg = apiRequest("sendVideo", array('chat_id' => $users['chat_id'], "video" => $video_cfg, "caption" => $ttx, 'parse_mode' => $cflg_razm, 'reply_markup' => array('inline_keyboard' => $c_arr), 'disable_web_page_preview' => $cflg_preview)); } } } else { $err_llg = apiRequest("sendVideo", array('chat_id' => $users['chat_id'], "video" => $video_cfg, 'parse_mode' => $cflg_razm)); if($cflg_lnk == '') $err_llg = apiRequest("sendMessage", array('chat_id' => $users['chat_id'], "text" => $ttx, 'parse_mode' => $cflg_razm, 'disable_web_page_preview' => $cflg_preview)); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); $err_llg = apiRequest("sendMessage", array('chat_id' => $users['chat_id'], "text" => $ttx, 'parse_mode' => $cflg_razm, 'reply_markup' => array('inline_keyboard' => $c_arr), 'disable_web_page_preview' => $cflg_preview)); } } } else { //apiRequest("sendMessage", array('chat_id' => $users['chat_id'], "text" => $ttx, 'parse_mode' => $cflg_razm)); if($cflg_lnk == '') $err_llg = apiRequest("sendMessage", array('chat_id' => $users['chat_id'], "text" => $ttx, 'parse_mode' => $cflg_razm, 'disable_web_page_preview' => $cflg_preview)); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); $err_llg = apiRequest("sendMessage", array('chat_id' => $users['chat_id'], "text" => $ttx, 'parse_mode' => $cflg_razm, 'reply_markup' => array('inline_keyboard' => $c_arr), 'disable_web_page_preview' => $cflg_preview)); } } file_put_contents('postponed_main', $user['id'].'|!:|'.$users['chat_id'].'|!:|'.$cnt_t.'|!:|'.$all_img.'|!:|'.$all_lnk.'|!:|'.$all_txt); if(is_array($err_llg)) $err_llg = implode('|', $err_llg); file_put_contents('log_rass_main.txt', $cnt_t.'. id'.$user['id'].' -> user: '.$users['chat_id'].' '.$users['username'].' '.$users['first_name'].' '.$users['last_name']." |result: ".$err_llg."\r\n", FILE_APPEND); if(strpos($err_llg, "ERROR: ") !== false || strpos($err_llg, "bot was blocked") !== false) { $cnt_error++; $err_llg = ''; } $cnt_t++; //usleep(330000); } file_put_contents('log_rass_main.txt', "Рассылка окончена! Разослали сообщение пользователям сервиса!\r\n", FILE_APPEND); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => 'Рассылка окончена! Разослали сообщения всем пользователям сервиса!', 'reply_markup' => array( 'keyboard' => $menu, 'one_time_keyboard' => false, 'resize_keyboard' => true), 'parse_mode' => 'HTML')); // Оповещаем $statuz = '✅ Успешно Закончилась!'; $tout = str_replace('{PROCESS}', $statuz, $toutb); $tout = str_replace('{COUNT}', $cnt_t, $tout); $tout = str_replace('{ALL_COUNT}', $col_t, $tout); $tout = str_replace('{USER_MAIN}', 'Закончили', $tout); // для отображения юзера текущего $col_perc = round(($cnt_t*100)/$col_t); $tout = str_replace('{PERCENT}', $col_perc, $tout); $col_l = $col_t - $cnt_t; $tout = str_replace('{LAST}', $col_l, $tout); $tout = str_replace('{CNTERR}', $cnt_error, $tout); $col_percerr = round(($cnt_error*100)/$col_t); $tout = str_replace('{PERCENTERR}', $col_percerr, $tout); // Для спец. режимов if($flg_type_send == 1 || $flg_type_send == 4) { $toutb_dop1_1 = str_replace('{cnt_neutr}', $cnt_neutr, $toutb_dop1); $tout = str_replace('{DOP_SHAB}', $toutb_dop1_1, $tout); } else if($flg_type_send == 2 || $flg_type_send == 3) { $toutb_dop2_2 = str_replace('{cnt_neutr}', $cnt_neutr, $toutb_dop2); $toutb_dop2_2 = str_replace('{cnt_no}', $cnt_no, $toutb_dop2_2); $toutb_dop2_2 = str_replace('{cnt_yes}', $cnt_yes, $toutb_dop2_2); $tout = str_replace('{DOP_SHAB}', $toutb_dop2_2, $tout); } else $tout = str_replace('{DOP_SHAB}', '', $tout); $b_arr = array(); apiRequest("editMessageText", array('chat_id' => $chat_id, 'message_id' => $message_id, "text" => $tout, 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $b_arr),'disable_notification' => false, 'disable_web_page_preview' => true)); file_put_contents('postponed_main', ''); file_put_contents('rass_stat_main', '0'); unlink('work'); // Убираем метку работы make_query("UPDATE `".$user_table."` SET step=98, tmp='' WHERE chat_id=".$chat_id); die(); } // Оповещаем $tout = str_replace('{PROCESS}', $statuz, $toutb); $tout = str_replace('{COUNT}', $cnt_t, $tout); $tout = str_replace('{ALL_COUNT}', $col_t, $tout); $tout = str_replace('{USER_MAIN}', '', $tout); // для отображения юзера текущего $col_perc = round(($cnt_t*100)/$col_t); $tout = str_replace('{PERCENT}', $col_perc, $tout); $col_l = $col_t - $cnt_t; $tout = str_replace('{LAST}', $col_l, $tout); $tout = str_replace('{CNTERR}', $cnt_error, $tout); $col_percerr = round(($cnt_error*100)/$col_t); $tout = str_replace('{PERCENTERR}', $col_percerr, $tout); // Для спец. режимов if($flg_type_send == 1 || $flg_type_send == 4) { $toutb_dop1_1 = str_replace('{cnt_neutr}', $cnt_neutr, $toutb_dop1); $tout = str_replace('{DOP_SHAB}', $toutb_dop1_1, $tout); } else if($flg_type_send == 2 || $flg_type_send == 3) { $toutb_dop2_2 = str_replace('{cnt_neutr}', $cnt_neutr, $toutb_dop2); $toutb_dop2_2 = str_replace('{cnt_no}', $cnt_no, $toutb_dop2_2); $toutb_dop2_2 = str_replace('{cnt_yes}', $cnt_yes, $toutb_dop2_2); $tout = str_replace('{DOP_SHAB}', $toutb_dop2_2, $tout); } else $tout = str_replace('{DOP_SHAB}', '', $tout); $message = apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $tout, 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $b_arr),'disable_notification' => false, 'disable_web_page_preview' => true)); //file_put_contents('tsslog.txt', $message['message_id']."\n".$message); //$message = json_decode($message, true); $message_id = $message['message_id']; $b_arr[] = array(array('text' => '⏸ Пауза', 'callback_data' => 'mailing_pause|'.$message_id)); $b_arr[] = array(array('text' => '🚫 Отменить', 'callback_data' => 'mailing_stop|'.$message_id)); file_put_contents('log_rass_main.txt', ""); file_put_contents('work',''); file_put_contents('flg_type', $flg_type_send); // Сохраняем флаг режима для досылки foreach($userz as $user){ // Цикл рассылки ОСНОВНОЙ! if(in_array($user['chat_id'], $mass_out_ready)) continue; $mass_out_ready[] = $user['chat_id']; $tout = ''; if($flg_type_send >= 1 && $flg_type_send <= 4) { //apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $user['chat_id'], 'parse_mode' => 'HTML')); $users = ''; $zuser = ''; $zuser = make_query("SELECT * FROM ".$user_table." WHERE `chat_id`=".$user['chat_id'].' LIMIT 1'); $users = $zuser->fetch_assoc(); // Определяем удобный формат для работы с данными текущего пользователя } else { $users = ''; $users = $user; } if(file_exists("stop")) { $statuz = '❗️ Рассылка прервана!'; // Оповещаем $tout = str_replace('{PROCESS}', $statuz, $toutb); $tout = str_replace('{COUNT}', $cnt_t, $tout); $tout = str_replace('{ALL_COUNT}', $col_t, $tout); $tout = str_replace('{USER_MAIN}', "".$users['first_name'].' '.$users['last_name'].'', $tout); // для отображения юзера текущего $col_perc = round(($cnt_t*100)/$col_t); $tout = str_replace('{PERCENT}', $col_perc, $tout); $col_l = $col_t - $cnt_t; $tout = str_replace('{LAST}', $col_l, $tout); $tout = str_replace('{CNTERR}', $cnt_error, $tout); $col_percerr = round(($cnt_error*100)/$col_t); $tout = str_replace('{PERCENTERR}', $col_percerr, $tout); // Для спец. режимов if($flg_type_send == 1 || $flg_type_send == 4) { $toutb_dop1_1 = str_replace('{cnt_neutr}', $cnt_neutr, $toutb_dop1); $tout = str_replace('{DOP_SHAB}', $toutb_dop1_1, $tout); } else if($flg_type_send == 2 || $flg_type_send == 3) { $toutb_dop2_2 = str_replace('{cnt_neutr}', $cnt_neutr, $toutb_dop2); $toutb_dop2_2 = str_replace('{cnt_no}', $cnt_no, $toutb_dop2_2); $toutb_dop2_2 = str_replace('{cnt_yes}', $cnt_yes, $toutb_dop2_2); $tout = str_replace('{DOP_SHAB}', $toutb_dop2_2, $tout); } else $tout = str_replace('{DOP_SHAB}', '', $tout); apiRequest("editMessageText", array('chat_id' => $chat_id, 'message_id' => $message_id, "text" => $tout, 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $b_arr),'disable_notification' => false, 'disable_web_page_preview' => true)); file_put_contents('postponed_main', ''); file_put_contents('rass_stat_main', '0'); die('die!'); } else if(file_exists("pause")) { $statuz = '⏸ Рассылка приостановлена!'; // Оповещаем $tout = str_replace('{PROCESS}', $statuz, $toutb); $tout = str_replace('{COUNT}', $cnt_t, $tout); $tout = str_replace('{ALL_COUNT}', $col_t, $tout); $tout = str_replace('{USER_MAIN}', "".$users['first_name'].' '.$users['last_name'].'', $tout); // для отображения юзера текущего $col_perc = round(($cnt_t*100)/$col_t); $tout = str_replace('{PERCENT}', $col_perc, $tout); $col_l = $col_t - $cnt_t; $tout = str_replace('{LAST}', $col_l, $tout); $tout = str_replace('{CNTERR}', $cnt_error, $tout); $col_percerr = round(($cnt_error*100)/$col_t); $tout = str_replace('{PERCENTERR}', $col_percerr, $tout); // Для спец. режимов if($flg_type_send == 1 || $flg_type_send == 4) { $toutb_dop1_1 = str_replace('{cnt_neutr}', $cnt_neutr, $toutb_dop1); $tout = str_replace('{DOP_SHAB}', $toutb_dop1_1, $tout); } else if($flg_type_send == 2 || $flg_type_send == 3) { $toutb_dop2_2 = str_replace('{cnt_neutr}', $cnt_neutr, $toutb_dop2); $toutb_dop2_2 = str_replace('{cnt_no}', $cnt_no, $toutb_dop2_2); $toutb_dop2_2 = str_replace('{cnt_yes}', $cnt_yes, $toutb_dop2_2); $tout = str_replace('{DOP_SHAB}', $toutb_dop2_2, $tout); } else $tout = str_replace('{DOP_SHAB}', '', $tout); $b_arr = array(); $b_arr[] = array(array('text' => '▶️ Продолжить', 'callback_data' => 'mailing_continue|'.$message_id)); $b_arr[] = array(array('text' => '🚫 Отменить', 'callback_data' => 'mailing_stop|'.$message_id)); apiRequest("editMessageText", array('chat_id' => $chat_id, 'message_id' => $message_id, "text" => $tout, 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $b_arr),'disable_notification' => false, 'disable_web_page_preview' => true)); // Сохраняем процесс file_put_contents('postponed_main', $user['id'].'|!:|'.$users['chat_id'].'|!:|'.$cnt_t.'|!:|'.$all_img.'|!:|'.$all_lnk.'|!:|'.$all_txt); file_put_contents('rass_stat_main', '0'); die('die!'); } //if(in_array(trim($users['chat_id']), $arr_u)) { // Оповещаем $tout = str_replace('{PROCESS}', $statuz, $toutb); $tout = str_replace('{COUNT}', $cnt_t, $tout); $tout = str_replace('{ALL_COUNT}', $col_t, $tout); $tout = str_replace('{USER_MAIN}', "".$users['first_name'].' '.$users['last_name'].'', $tout); // для отображения юзера текущего $col_perc = round(($cnt_t*100)/$col_t); $tout = str_replace('{PERCENT}', $col_perc, $tout); $col_l = $col_t - $cnt_t; $tout = str_replace('{LAST}', $col_l, $tout); $tout = str_replace('{CNTERR}', $cnt_error, $tout); $col_percerr = round(($cnt_error*100)/$col_t); $tout = str_replace('{PERCENTERR}', $col_percerr, $tout); // Для спец. режимов if($flg_type_send == 1 || $flg_type_send == 4) { $toutb_dop1_1 = str_replace('{cnt_neutr}', $cnt_neutr, $toutb_dop1); $tout = str_replace('{DOP_SHAB}', $toutb_dop1_1, $tout); } else if($flg_type_send == 2 || $flg_type_send == 3) { $toutb_dop2_2 = str_replace('{cnt_neutr}', $cnt_neutr, $toutb_dop2); $toutb_dop2_2 = str_replace('{cnt_no}', $cnt_no, $toutb_dop2_2); $toutb_dop2_2 = str_replace('{cnt_yes}', $cnt_yes, $toutb_dop2_2); $tout = str_replace('{DOP_SHAB}', $toutb_dop2_2, $tout); } else $tout = str_replace('{DOP_SHAB}', '', $tout); apiRequest("editMessageText", array('chat_id' => $chat_id, 'message_id' => $message_id, "text" => $tout, 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $b_arr),'disable_notification' => false, 'disable_web_page_preview' => true)); // Для режимов 2 и 3 if($flg_type_send == 2 || $flg_type_send == 3) { if (in_array($users['chat_id'], $mass_b)) { $cnt_neutr++; $cnt_t++; continue; } } else $cnt_neutr++; // Проверка даты для режимов 3 и 4 if($flg_type_send == 3 || $flg_type_send == 4) { $date_time_crt = strtotime($user['date_time_crt']); if($date_time_crt == '') { $cnt_no++; $cnt_t++; continue; } if($date_time_crt >= $date1_start && $date_time_crt <= $date2_start) { $cnt_yes++; } else { $cnt_no++; $cnt_t++; continue; } } // Сама рассылка // заглушка //$users['chat_id'] = '0'; // Обработка фото и текста в режиме посылки if($photo_cfg){ $lcount = 0; $lcount = mb_strlen(trim($ttx), 'UTF-8'); if($lcount <= 2000) $flg_lcount = 1; else $flg_lcount = 0; if($flg_lcount == 1) { if($ttx == '') { if($cflg_lnk == '') $err_llg = apiRequest("sendPhoto", array('chat_id' => $users['chat_id'], "photo" => $photo_cfg)); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); $err_llg = apiRequest("sendPhoto", array('chat_id' => $users['chat_id'], "photo" => $photo_cfg, 'reply_markup' => array('inline_keyboard' => $c_arr))); } } else { if($cflg_lnk == '') $err_llg = apiRequest("sendPhoto", array('chat_id' => $users['chat_id'], "photo" => $photo_cfg, "caption" => $ttx, 'parse_mode' => $cflg_razm, 'disable_web_page_preview' => $cflg_preview)); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); $err_llg = apiRequest("sendPhoto", array('chat_id' => $users['chat_id'], "photo" => $photo_cfg, "caption" => $ttx, 'parse_mode' => $cflg_razm, 'reply_markup' => array('inline_keyboard' => $c_arr), 'disable_web_page_preview' => $cflg_preview)); } } } else { $err_llg = apiRequest("sendPhoto", array('chat_id' => $users['chat_id'], "photo" => $photo_cfg, 'parse_mode' => $cflg_razm)); if($cflg_lnk == '') $err_llg = apiRequest("sendMessage", array('chat_id' => $users['chat_id'], "text" => $ttx, 'parse_mode' => $cflg_razm, 'disable_web_page_preview' => $cflg_preview)); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); $err_llg = apiRequest("sendMessage", array('chat_id' => $users['chat_id'], "text" => $ttx, 'parse_mode' => $cflg_razm, 'reply_markup' => array('inline_keyboard' => $c_arr), 'disable_web_page_preview' => $cflg_preview)); } } } else if($audio_cfg){ $lcount = 0; $lcount = mb_strlen(trim($ttx), 'UTF-8'); if($lcount <= 2000) $flg_lcount = 1; else $flg_lcount = 0; if($flg_lcount == 1) { if($ttx == '') { if($cflg_lnk == '') $err_llg = apiRequest("sendAudio", array('chat_id' => $users['chat_id'], "audio" => $audio_cfg)); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); $err_llg = apiRequest("sendAudio", array('chat_id' => $users['chat_id'], "audio" => $audio_cfg, 'reply_markup' => array('inline_keyboard' => $c_arr))); } } else { if($cflg_lnk == '') $err_llg = apiRequest("sendAudio", array('chat_id' => $users['chat_id'], "audio" => $audio_cfg, "caption" => $ttx, 'parse_mode' => $cflg_razm, 'disable_web_page_preview' => $cflg_preview)); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); $err_llg = apiRequest("sendAudio", array('chat_id' => $users['chat_id'], "audio" => $audio_cfg, "caption" => $ttx, 'parse_mode' => $cflg_razm, 'reply_markup' => array('inline_keyboard' => $c_arr), 'disable_web_page_preview' => $cflg_preview)); } } } else { $err_llg = apiRequest("sendAudio", array('chat_id' => $users['chat_id'], "audio" => $audio_cfg, 'parse_mode' => 'HTML')); if($cflg_lnk == '') $err_llg = apiRequest("sendMessage", array('chat_id' => $users['chat_id'], "text" => $ttx, 'parse_mode' => $cflg_razm, 'disable_web_page_preview' => $cflg_preview)); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); $err_llg = apiRequest("sendMessage", array('chat_id' => $users['chat_id'], "text" => $ttx, 'parse_mode' => $cflg_razm, 'reply_markup' => array('inline_keyboard' => $c_arr), 'disable_web_page_preview' => $cflg_preview)); } } } else if($voice_cfg){ $lcount = 0; $lcount = mb_strlen(trim($ttx), 'UTF-8'); if($lcount <= 2000) $flg_lcount = 1; else $flg_lcount = 0; if($flg_lcount == 1) { if($ttx == '') { if($cflg_lnk == '') $err_llg = apiRequest("sendVoice", array('chat_id' => $users['chat_id'], "voice" => $voice_cfg)); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); $err_llg = apiRequest("sendVoice", array('chat_id' => $users['chat_id'], "voice" => $voice_cfg, 'reply_markup' => array('inline_keyboard' => $c_arr))); } } else { if($cflg_lnk == '') $err_llg = apiRequest("sendVoice", array('chat_id' => $users['chat_id'], "voice" => $voice_cfg, "caption" => $ttx, 'parse_mode' => $cflg_razm, 'disable_web_page_preview' => $cflg_preview)); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); $err_llg = apiRequest("sendVoice", array('chat_id' => $users['chat_id'], "voice" => $voice_cfg, "caption" => $ttx, 'parse_mode' => $cflg_razm, 'reply_markup' => array('inline_keyboard' => $c_arr), 'disable_web_page_preview' => $cflg_preview)); } } } else { $err_llg = apiRequest("sendVoice", array('chat_id' => $users['chat_id'], "voice" => $voice_cfg, 'parse_mode' => $cflg_razm)); if($cflg_lnk == '') $err_llg = apiRequest("sendMessage", array('chat_id' => $users['chat_id'], "text" => $ttx, 'parse_mode' => $cflg_razm, 'disable_web_page_preview' => $cflg_preview)); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); $err_llg = apiRequest("sendMessage", array('chat_id' => $users['chat_id'], "text" => $ttx, 'parse_mode' => $cflg_razm, 'reply_markup' => array('inline_keyboard' => $c_arr), 'disable_web_page_preview' => $cflg_preview)); } } } else if($document_cfg){ $lcount = 0; $lcount = mb_strlen(trim($ttx), 'UTF-8'); if($lcount <= 2000) $flg_lcount = 1; else $flg_lcount = 0; if($flg_lcount == 1) { if($ttx == '') { if($cflg_lnk == '') $err_llg = apiRequest("sendDocument", array('chat_id' => $users['chat_id'], "document" => $document_cfg)); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); $err_llg = apiRequest("sendDocument", array('chat_id' => $users['chat_id'], "document" => $document_cfg, 'reply_markup' => array('inline_keyboard' => $c_arr))); } } else { if($cflg_lnk == '') $err_llg = apiRequest("sendDocument", array('chat_id' => $users['chat_id'], "document" => $document_cfg, "caption" => $ttx, 'parse_mode' => $cflg_razm, 'disable_web_page_preview' => $cflg_preview)); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); $err_llg = apiRequest("sendDocument", array('chat_id' => $users['chat_id'], "document" => $document_cfg, "caption" => $ttx, 'parse_mode' => $cflg_razm, 'reply_markup' => array('inline_keyboard' => $c_arr), 'disable_web_page_preview' => $cflg_preview)); } } } else { $err_llg = apiRequest("sendDocument", array('chat_id' => $users['chat_id'], "document" => $document_cfg, 'parse_mode' => $cflg_razm)); if($cflg_lnk == '') $err_llg = apiRequest("sendMessage", array('chat_id' => $users['chat_id'], "text" => $ttx, 'parse_mode' => $cflg_razm, 'disable_web_page_preview' => $cflg_preview)); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); $err_llg = apiRequest("sendMessage", array('chat_id' => $users['chat_id'], "text" => $ttx, 'parse_mode' => $cflg_razm, 'reply_markup' => array('inline_keyboard' => $c_arr), 'disable_web_page_preview' => $cflg_preview)); } } } else if($video_cfg){ $lcount = 0; $lcount = mb_strlen(trim($ttx), 'UTF-8'); if($lcount <= 2000) $flg_lcount = 1; else $flg_lcount = 0; if($flg_lcount == 1) { if($ttx == '') { if($cflg_lnk == '') $err_llg = apiRequest("sendVideo", array('chat_id' => $users['chat_id'], "video" => $video_cfg)); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); $err_llg = apiRequest("sendVideo", array('chat_id' => $users['chat_id'], "video" => $video_cfg, 'reply_markup' => array('inline_keyboard' => $c_arr))); } } else { if($cflg_lnk == '') apiRequest("sendVideo", array('chat_id' => $users['chat_id'], "video" => $video_cfg, "caption" => $ttx, 'parse_mode' => $cflg_razm, 'disable_web_page_preview' => $cflg_preview)); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); $err_llg = apiRequest("sendVideo", array('chat_id' => $users['chat_id'], "video" => $video_cfg, "caption" => $ttx, 'parse_mode' => $cflg_razm, 'reply_markup' => array('inline_keyboard' => $c_arr), 'disable_web_page_preview' => $cflg_preview)); } } } else { $err_llg = apiRequest("sendVideo", array('chat_id' => $users['chat_id'], "video" => $video_cfg, 'parse_mode' => $cflg_razm)); if($cflg_lnk == '') $err_llg = apiRequest("sendMessage", array('chat_id' => $users['chat_id'], "text" => $ttx, 'parse_mode' => $cflg_razm, 'disable_web_page_preview' => $cflg_preview)); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); $err_llg = apiRequest("sendMessage", array('chat_id' => $users['chat_id'], "text" => $ttx, 'parse_mode' => $cflg_razm, 'reply_markup' => array('inline_keyboard' => $c_arr), 'disable_web_page_preview' => $cflg_preview)); } } } else { // apiRequest("sendMessage", array('chat_id' => $users['chat_id'], "text" => $ttx, 'parse_mode' => $cflg_razm)); if($cflg_lnk == '') $err_llg = apiRequest("sendMessage", array('chat_id' => $users['chat_id'], "text" => $ttx, 'parse_mode' => $cflg_razm, 'disable_web_page_preview' => $cflg_preview)); else { //$c_arr[] = array(array('text' => $cflg_lnk_txt, 'url' => $cflg_lnk)); $err_llg = apiRequest("sendMessage", array('chat_id' => $users['chat_id'], "text" => $ttx, 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $c_arr), 'disable_web_page_preview' => $cflg_preview)); } } file_put_contents('postponed_main', $user['id'].'|!:|'.$users['chat_id'].'|!:|'.$cnt_t.'|!:|'.$all_img.'|!:|'.$all_lnk.'|!:|'.$all_txt); if(is_array($err_llg)) $err_llg = implode('|', $err_llg); file_put_contents('log_rass_main.txt', $cnt_t.'. id'.$user['id'].' -> user: '.$users['chat_id'].' '.$users['username'].' '.$users['first_name'].' '.$users['last_name']." |result: ".$err_llg."\r\n", FILE_APPEND); if(strpos($err_llg, "ERROR: ") !== false || strpos($err_llg, "bot was blocked") !== false) { $cnt_error++; $err_llg = ''; } $cnt_t++; //usleep(330000); } file_put_contents('log_rass_main.txt', "Рассылка окончена! Разослали сообщения пользователям сервиса!\r\n", FILE_APPEND); apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => 'Рассылка окончена! Разослали сообщения всем пользователям сервиса!', 'reply_markup' => array( 'keyboard' => $menu, 'one_time_keyboard' => false, 'resize_keyboard' => true), 'parse_mode' => 'HTML')); // Оповещаем $statuz = '✅ Успешно Закончилась!'; $tout = str_replace('{PROCESS}', $statuz, $toutb); $tout = str_replace('{COUNT}', $cnt_t, $tout); $tout = str_replace('{ALL_COUNT}', $col_t, $tout); $tout = str_replace('{USER_MAIN}', 'Закончили', $tout); // для отображения юзера текущего $col_perc = round(($cnt_t*100)/$col_t); $tout = str_replace('{PERCENT}', $col_perc, $tout); $col_l = $col_t - $cnt_t; $tout = str_replace('{LAST}', $col_l, $tout); $tout = str_replace('{CNTERR}', $cnt_error, $tout); $col_percerr = round(($cnt_error*100)/$col_t); $tout = str_replace('{PERCENTERR}', $col_percerr, $tout); // Для спец. режимов if($flg_type_send == 1 || $flg_type_send == 4) { $toutb_dop1_1 = str_replace('{cnt_neutr}', $cnt_neutr, $toutb_dop1); $tout = str_replace('{DOP_SHAB}', $toutb_dop1_1, $tout); } else if($flg_type_send == 2 || $flg_type_send == 3) { $toutb_dop2_2 = str_replace('{cnt_neutr}', $cnt_neutr, $toutb_dop2); $toutb_dop2_2 = str_replace('{cnt_no}', $cnt_no, $toutb_dop2_2); $toutb_dop2_2 = str_replace('{cnt_yes}', $cnt_yes, $toutb_dop2_2); $tout = str_replace('{DOP_SHAB}', $toutb_dop2_2, $tout); } else $tout = str_replace('{DOP_SHAB}', '', $tout); $b_arr = array(); apiRequest("editMessageText", array('chat_id' => $chat_id, 'message_id' => $message_id, "text" => $tout, 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $b_arr),'disable_notification' => false, 'disable_web_page_preview' => true)); file_put_contents('postponed_main', ''); file_put_contents('rass_stat_main', '0'); unlink('work'); // Убираем метку работы // КОНЕЦ МОДУЛЯ РАССЫЛКИ make_query("UPDATE `".$user_table."` SET step=98, tmp='' WHERE chat_id=".$chat_id); return; } else if($user['step'] == '99'){ // Сообщение оператору apiRequest("forwardMessage", array('chat_id' => $id_inside_pay, "from_chat_id" => $chat_id, "message_id" => $message_id)); $c_arr[] = array(array('text' => 'Ответить 📤', 'url' => 'https://t.me/'.$username)); apiRequest("sendMessage", array('chat_id' => $id_inside_pay, 'text' => ''.$username.'', 'parse_mode' => 'HTML', 'reply_markup' => array('inline_keyboard' => $c_arr),'disable_notification' => false, 'disable_web_page_preview' => true)); $txt = "Ваше сообщение было успешно отправлено!\nОжидайте ответа оператора..."; apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => $txt, 'parse_mode' => 'HTML')); make_query("UPDATE `".$user_table."` SET step=0, tmp='' WHERE chat_id=".$chat_id); return; } } } } } return; } // Вспомогательные функции отправки сообщений function apiRequestWebhook($method, $parameters) { if (!is_string($method)) { file_put_contents('tg_log.txt', "Method name must be a string\n"); return false; } if (!$parameters) { $parameters = array(); } else if (!is_array($parameters)) { file_put_contents('tg_log.txt', "Parameters must be an array\n"); return false; } $parameters["method"] = $method; header("Content-Type: application/json"); echo json_encode($parameters); return true; } function exec_curl_request($handle) { $response = curl_exec($handle); file_put_contents('tg_full.txt', $response); if ($response === false) { $errno = curl_errno($handle); $error = curl_error($handle); file_put_contents('tg_log.txt', "Curl returned error $errno: $error\n"); curl_close($handle); return false; } $http_code = intval(curl_getinfo($handle, CURLINFO_HTTP_CODE)); curl_close($handle); if ($http_code >= 500) { // do not wat to DDOS server if something goes wrong sleep(5); return false; } else if ($http_code != 200) { $response = json_decode($response, true); file_put_contents('tg_log.txt', "Request has failed with error {$response['error_code']}: {$response['description']}\n"); if ($http_code == 401) { //throw new Exception('Invalid access token provided'); return 'ERROR: Invalid access token provided'; } return 'ERROR: '.$response['description']; } else { $response = json_decode($response, true); if (isset($response['description'])) { file_put_contents('tg_log.txt', "Request was successfull: {$response['description']}\n"); } $response = $response['result']; } return $response; } function apiRequest($method, $parameters) { if (!is_string($method)) { file_put_contents('tg_log_err.txt', "Method name must be a string\n"); return false; } if (!$parameters) { $parameters = array(); } else if (!is_array($parameters)) { file_put_contents('tg_log_err.txt', "Parameters must be an array\n"); return false; } foreach ($parameters as $key => &$val) { // encoding to JSON array parameters, for example reply_markup if (!is_numeric($val) && !is_string($val) && $key != 'photo' && $key != 'document' && $key != 'video' && $key != 'animation') { $val = json_encode($val); } } if(strpos($method, 'sendDocument') !== false || strpos($method, 'sendPhoto') !== false || strpos($method, 'sendMediaGroup') !== false || strpos($method, 'sendVoice') !== false )$url = API_URL.$method; else $url = API_URL.$method.'?'.http_build_query($parameters); $handle = curl_init($url); curl_setopt($handle, CURLOPT_RETURNTRANSFER, true); curl_setopt($handle, CURLOPT_CONNECTTIMEOUT, 12); curl_setopt($handle, CURLOPT_TIMEOUT, 120); if(strpos($method, 'sendDocument') !== false || strpos($method, 'sendPhoto') !== false || strpos($method, 'sendMediaGroup') !== false || strpos($method, 'sendVoice') !== false) { curl_setopt($handle, CURLOPT_POST, true); curl_setopt($handle, CURLOPT_POSTFIELDS, $parameters); curl_setopt($handle, CURLOPT_HTTPHEADER, array("Content-Type:multipart/form-data")); } return exec_curl_request($handle); } // Быстрая функция выполнения запросов к БД function make_query($query) { global $hostname_db, $username_db, $password_db, $basename_db; $mysqli = new mysqli($hostname_db, $username_db, $password_db, $basename_db); if ($mysqli->connect_errno) { file_put_contents('log_err.txt', "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error); return 'ERROR!'; } if (!($result = $mysqli->query($query))) { file_put_contents('log_err.txt', "Не удалось выполнить запрос SQL: (" . $query . ") " . $mysqli->error); return 'ERROR!'; } return $result; } /* * @param $number int число чего-либо * @param $titles array варинаты написания для количества 1, 2 и 5 * @return string */ function human_plural_form($number, $titles=array('человек','человека','человек')){ $cases = array(2, 0, 1, 1, 1, 2); return $number." ".$titles[ ($number%100 >4 && $number%100< 20)? 2 : $cases[min($number%10, 5)] ]; } // !!!!!!! function gotourl($url='', $userAgent='Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)', $proxy='', $auth='', $post='', $referer='', $cookiesfile='', $httpopt='', $followlocation=1, $header_answer=0) { $cl = curl_init(); curl_setopt($cl, CURLOPT_URL, $url); if($header_answer==1) curl_setopt($cl, CURLOPT_HEADER, 1); else curl_setopt($cl, CURLOPT_HEADER, 0); curl_setopt($cl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($cl, CURLOPT_TIMEOUT, 60); curl_setopt($cl, CURLOPT_CONNECTTIMEOUT, 30); curl_setopt($cl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($cl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($cl, CURLOPT_USERAGENT, $userAgent); if(empty($cookiesfile)){ curl_setopt($cl, CURLOPT_COOKIEJAR, dirName(__FILE__)."/cookie.txt"); curl_setopt($cl, CURLOPT_COOKIEFILE, dirName(__FILE__)."/cookie.txt"); } else { curl_setopt($cl, CURLOPT_COOKIEJAR, $cookiesfile); curl_setopt($cl, CURLOPT_COOKIEFILE, $cookiesfile); } if($httpopt) curl_setopt($cl, CURLOPT_HTTPHEADER, $httpopt); if($followlocation) curl_setopt($cl, CURLOPT_FOLLOWLOCATION, 1); if (!empty($post)) { curl_setopt($cl, CURLOPT_POST, 1); curl_setopt($cl, CURLOPT_POSTFIELDS, $post); } else { curl_setopt($cl, CURLOPT_POST, 0); } if (!empty($proxy)) { //curl_setopt($cl, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5); //curl_setopt($cl, CURLOPT_HTTPPROXYTUNNEL, 1); //curl_setopt($cl, CURLOPT_PROXYTYPE, CURLPROXY_HTTP); curl_setopt($cl, CURLOPT_PROXY, $proxy); if (!empty($auth)) curl_setopt($cl, CURLOPT_PROXYUSERPWD, $auth); } if (!empty($referer)) curl_setopt($cl, CURLOPT_REFERER, $referer); $ex=curl_exec($cl); if (curl_error($cl)) { $error = curl_error($cl); curl_close($cl); return "Curl error: $error
"; } else { curl_close($cl); return $ex; } } ?>