404

[ Avaa Bypassed ]




Upload:

Command:

botdev@3.136.18.192: ~ $
<?php


class PatreonService
{
    private $redirect_uri = "";
    private $translateService;
    public  $patreonWebClient;
    
    public static $programLevel1 = "level1";
    public static $programLevel2 = "level2";
    public static $programLevel3 = "level3";
    private $patreonDbHandler;
    function __construct(TranslateService $translateService)
    {
        $this->patreonWebClient = new PatreonWebClient($translateService->botUsername);
        $this->translateService = $translateService;

        $this->patreonDbHandler = new PatreonDatabaseHandler("notimportant");
    }
    function getPatreonWebClient(): PatreonWebClient {
        return $this->patreonWebClient;
    }
    function getTS(): TranslateService
    {
        return $this->translateService;
    }
    function getDB(): PatreonDatabaseHandler
    {
        return $this->patreonDbHandler;
    }
    function createLoginLink()
    {
        return $this->patreonWebClient->createLoginLink();
    }
    function sendJoinRequest(){
        if($this->isUserOf(PatreonService::$programLevel1)){
            return false;
        }
        $loginLink = $this->createLoginLink();
        $askForPromote ="سلام عزیزم";
        $askForPromote = $askForPromote.PHP_EOL."در صورتی که از عملکرد ربات لغتنامه راضی هستی";
        $askForPromote = $askForPromote.PHP_EOL."خیلی خوشحال می شم که با حمایت مالی ماهیانه از این ربات";
        $askForPromote = $askForPromote.PHP_EOL."به پیشرفت و توسعه و نگهداریش کمک کنی";
        $askForPromote = $askForPromote.PHP_EOL."با استفاده از لینک زیر می تونی طرح های حمایت از ربات لغتنامه رو ببینی";
        $askForPromote = $askForPromote.PHP_EOL."خیلی ممنون";
        
        $pageLink = PHP_EOL.PHP_EOL."https://www.patreon.com/bayadic?fan_landing=true".PHP_EOL.PHP_EOL;
        $askForPromote.=$pageLink;

        $askForLogin ="اگه قبلا عضو یکی از طرح های حمایتی از ربات لغتنامه شدی می تونی از طریق لینک زیر وارد بشی؟";
        $text=$askForPromote.PHP_EOL.PHP_EOL.$askForLogin.PHP_EOL.$loginLink;
        $this->getTS()->sendMessage($text, $this->getTS()->getUser()->chatId);
        $this->getTS()->getDB()->insertUserActivity($this->getTS()->chat_id,"sendJoinPatreon","120");

    }

    function oathUserViaCode($code)
    {
        $tokens = $this->patreonWebClient->retriveTokens($code);
        if (isset($tokens['access_token'])) {
            $accessToken = $tokens['access_token'];
            $refreshToken = $tokens['refresh_token'];
            $user = $this->patreonWebClient->retriveUserDetailsByToken($accessToken);
            if(sizeof($user['data']['relationships']['memberships'])>0){
                $patreon_plan_id = $user['data']['relationships']['memberships']['data'][0]['id'];
            }
            $this->getDB()->updateOrInsert(
                $this->getTS()->chat_id,
                $user['data']['id'], 
                $patreon_plan_id, $accessToken, $refreshToken);
            return $user;
        } else {
            return false;
        }
    }
    function isLastUpdatedMoreThan2Days($patreonData){
        if(!isset($patreonData)) return true;
        $now = time(); // or your date as well
        $lastUpdated = strtotime($patreonData['time_stamp']);
        $datediff = $now - $lastUpdated;
        // $dt->setTimezone(new DateTimeZone("Europe/Berlin"));

        if($datediff >= 0){
            return true;
        }
        return false;
    }
    function isUserStillInProgramm($patreonData){
        $members = $this->patreonWebClient->retriveCampaignMembers($patreonData);
        foreach($members as $member){
            if($member['id']==$patreonData['user_access_token']){
                return true;
            }
            return false;
        }
    }
    function isUserOf($requiredStatus)
    {
        $patreonData = $this->patreonDbHandler->getPatreonData($this->getTS()->chat_id);
        if(!isset($patreonData))
        {
            return false;
        }
        if($this->isLastUpdatedMoreThan2Days($patreonData)){
            if($this->isUserStillInProgramm($patreonData)){
                return true;
            } else {
                return false;
            }
        }
        else {
            if(isset($patreonData)){
                return $patreonData['status'] == $requiredStatus;
            }
            return false;
        }
    }


}

Filemanager

Name Type Size Permission Actions
PatreonDatabaseHandler.class.php File 2.36 KB 0755
PatreonService.class.php File 4.49 KB 0755
PatreonWebClient.class.php File 1.49 KB 0755