Инструменты пользователя

Инструменты сайта


onepunch

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
onepunch [2020/04/09 14:17]
nightfly
onepunch [2021/03/29 10:11] (текущий)
nightfly [One-Punch Scripts]
Строка 5: Строка 5:
 Позволяют вам <​del>​немного побыть Сайтамой</​del>​ сохранять свои заготовки кода, для отладки в консоли разработчика или последующего вызова из [[remoteapi|RemoteAPI]]. Позволяют вам <​del>​немного побыть Сайтамой</​del>​ сохранять свои заготовки кода, для отладки в консоли разработчика или последующего вызова из [[remoteapi|RemoteAPI]].
  
-Вполне себе очевидно,​ что управлять ими вы можете в "​Консоли разработчика"​ а именно в "PHP консоли"​. Также вы можете при желании импортировать ваши старые шаблоны кода, если они у вас были. Важно: после импорта шаблоны кода удаляются из базы. Да, при создании и редактировании скриптов все поля являются объязательными. Поле alias должно быть уникальным и содержать только латиницу и цифры. Имя вы пишете только для себя, чтобы понимать что это за кусок кода.+Вполне себе очевидно,​ что управлять ими вы можете в "​Консоли разработчика"​ а именно в "PHP консоли"​. Также вы можете при желании импортировать ваши старые шаблоны кода, если они у вас были. Важно: после импорта шаблоны кода удаляются из базы. Да, при создании и редактировании скриптов все поля являются обязательными. Поле alias должно быть уникальным и содержать только латиницу и цифры. Имя вы пишете только для себя, чтобы понимать что это за кусок кода.
  
 При помощи One-Punch скриптов вы можете делать практически все, что могли бы делать при помощи любого модуля. Например ресет какого-то юзера раз в 5 минут :) При помощи One-Punch скриптов вы можете делать практически все, что могли бы делать при помощи любого модуля. Например ресет какого-то юзера раз в 5 минут :)
Строка 121: Строка 121:
 </​code>​ </​code>​
  
 +==== Ежегодное начисление АП по какому-то тегу ====
  
 +<code php>
 +   // Config section
 +    $serviceTagId = 42; //service tag ID
 +    $servicePrice = 480; //per-year price
 +    $chargeMethod = '​add';​ //charge operation type
 +    $paymentTypeId = 1; //payment type ID 
 +    //end of config
 +
 +    $allUserData = zb_UserGetAllStargazerDataAssoc();​
 +    $currentMonth = date("​m"​);​
 +    $fee = '​-'​ . $servicePrice;​
 +    $tagsDb = new nya_tags();
 +    $weblogsDb = new nya_weblogs();​
 +    $tagsDb->​where('​tagid',​ '​=',​ $serviceTagId);​
 +    $allUsersWithService = $tagsDb->​getAll('​login'​);​
 +    $weblogsDb->​selectable(array('​date',​ '​event'​));​
 +    $eventFilter = '​TAGADD%TAGID [' . $serviceTagId . '​]';​
 +    $weblogsDb->​where('​event',​ '​LIKE',​ $eventFilter);​
 +    $weblogsRaw = $weblogsDb->​getAll();​
 +
 +
 +    $allServiceSetupDates = array(); //service setup dates as login=>​month
 +
 +    if (!empty($weblogsRaw)) {
 +        //​preprocessing raw logs
 +        foreach ($weblogsRaw as $io => $each) {
 +
 +            if (preg_match('​!\((.*?​)\)!si',​ $each['​event'​],​ $tmpMatch)) {
 +                $extractedLogin = $tmpMatch[1];​
 +                if (!empty($extractedLogin)) {
 +                    if (isset($allUsersWithService[$extractedLogin]) AND isset($allUserData[$extractedLogin])) {
 +                        //user exists and have required service set
 +                        $setupTimeStamp = strtotime($each['​date'​]);​
 +                        $setupMonth = date("​m",​ $setupTimeStamp);​
 +                        $allServiceSetupDates[$extractedLogin] = $setupMonth;​
 +                    }
 +                }
 +            }
 +        }
 +    }
 +    //​processing fee
 +    if (!empty($allUsersWithService)) {
 +        foreach ($allUsersWithService as $eachUserLogin => $eachServiceData) {
 +            if (isset($allServiceSetupDates[$eachUserLogin])) {
 +                if ($allServiceSetupDates[$eachUserLogin] == $currentMonth) {
 +                    //now is required to charge fee
 +                    zb_CashAdd($eachUserLogin,​ $fee, $chargeMethod,​ $paymentTypeId,​ '​EXTFEE'​);​
 +                }
 +            }
 +        }
 +    }
 +</​code>​
 +
 +Ну и вызов этого, может выглядеть как ежемесячное
 +<code bash>
 +50 1 1 * *      /bin/ubapi "​onepunch&​param=yearcharge"​
 +</​code>​
onepunch.1586431033.txt.gz · Последние изменения: 2020/04/09 14:17 — nightfly