-
-
Notifications
You must be signed in to change notification settings - Fork 94
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* feat(lint): add php-cs-fixer for linting Removing previous CODE_STYLE as it was not enforced anyway and using PER-CS 2.0. This is not the reformatting commit. * style: format code according to PER-CS 2.0 with php-cs-fixer * ci(actions): add lint action Resolves #1132.
- Loading branch information
Showing
204 changed files
with
13,872 additions
and
9,928 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
name: Lint | ||
|
||
on: | ||
push: | ||
pull_request: | ||
|
||
jobs: | ||
lint: | ||
runs-on: ubuntu-20.04 | ||
permissions: | ||
contents: read | ||
steps: | ||
- name: Code Checkout | ||
uses: actions/checkout@v4 | ||
|
||
- name: Setup PHP | ||
uses: shivammathur/setup-php@v2 | ||
with: | ||
php-version: "8.2" | ||
extensions: gd, zip, intl, yaml, pdo_mysql, rdkafka, imagick | ||
tools: composer:v2 | ||
coverage: none | ||
|
||
- name: Install dependencies | ||
run: composer install --no-interaction --no-progress --no-suggest --prefer-dist | ||
|
||
- name: PHP CS Fixer | ||
run: vendor/bin/php-cs-fixer fix --dry-run --diff |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -15,4 +15,5 @@ themepacks/* | |
storage/* | ||
!storage/.gitkeep | ||
|
||
.idea | ||
.idea | ||
.php-cs-fixer.cache |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
<?php | ||
|
||
$finder = (new PhpCsFixer\Finder()) | ||
->in(__DIR__) | ||
; | ||
|
||
return (new PhpCsFixer\Config()) | ||
->setRules([ | ||
'@PER-CS2.0' => true, | ||
'@PHP82Migration' => true, | ||
]) | ||
->setFinder($finder) | ||
->setParallelConfig(PhpCsFixer\Runner\Parallel\ParallelConfigFactory::detect()) | ||
; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,103 +1,107 @@ | ||
<?php declare(strict_types=1); | ||
namespace openvk\CLI; | ||
use Chandler\Database\DatabaseConnection; | ||
use openvk\Web\Models\Repositories\Users; | ||
use openvk\Web\Models\Entities\Notifications\CoinsTransferNotification; | ||
use Symfony\Component\Console\Command\Command; | ||
use Symfony\Component\Console\Input\InputInterface; | ||
use Symfony\Component\Console\Input\InputOption; | ||
use Symfony\Component\Console\Output\OutputInterface; | ||
use Nette\Utils\ImageException; | ||
|
||
define("NANOTON", 1000000000); | ||
|
||
class FetchToncoinTransactions extends Command | ||
{ | ||
private $images; | ||
|
||
protected static $defaultName = "fetch-ton"; | ||
|
||
function __construct() | ||
{ | ||
$this->transactions = DatabaseConnection::i()->getContext()->table("cryptotransactions"); | ||
|
||
parent::__construct(); | ||
} | ||
|
||
protected function configure(): void | ||
{ | ||
$this->setDescription("Fetches TON transactions to top up the users' balance") | ||
->setHelp("This command checks for new transactions on TON Wallet and then top up the balance of specified users"); | ||
} | ||
|
||
protected function execute(InputInterface $input, OutputInterface $output): int | ||
{ | ||
$header = $output->section(); | ||
|
||
$header->writeln([ | ||
"TONCOIN Fetcher", | ||
"=====================", | ||
"", | ||
]); | ||
|
||
if(!OPENVK_ROOT_CONF["openvk"]["preferences"]["ton"]["enabled"]) { | ||
$header->writeln("Sorry, but you handn't enabled the TON support in your config file yet."); | ||
|
||
return Command::FAILURE; | ||
} | ||
|
||
$testnetSubdomain = OPENVK_ROOT_CONF["openvk"]["preferences"]["ton"]["testnet"] ? "testnet." : ""; | ||
$url = "https://" . $testnetSubdomain . "toncenter.com/api/v2/getTransactions?"; | ||
|
||
$opts = [ | ||
"http" => [ | ||
"method" => "GET", | ||
"header" => "Accept: application/json" | ||
] | ||
]; | ||
|
||
$selection = $this->transactions->select('hash, lt')->order("id DESC")->limit(1)->fetch(); | ||
$trHash = $selection->hash ?? NULL; | ||
$trLt = $selection->lt ?? NULL; | ||
|
||
$data = http_build_query([ | ||
"address" => OPENVK_ROOT_CONF["openvk"]["preferences"]["ton"]["address"], | ||
"limit" => 100, | ||
"hash" => $trHash, | ||
"to_lt" => $trLt | ||
]); | ||
|
||
$response = file_get_contents($url . $data, false, stream_context_create($opts)); | ||
$response = json_decode($response, true); | ||
|
||
$header->writeln("Gonna up the balance of users"); | ||
foreach($response["result"] as $transfer) { | ||
$outputArray; | ||
preg_match('/' . OPENVK_ROOT_CONF["openvk"]["preferences"]["ton"]["regex"] . '/', $transfer["in_msg"]["message"], $outputArray); | ||
$userId = ctype_digit($outputArray[1]) ? intval($outputArray[1]) : NULL; | ||
if(is_null($userId)) { | ||
$header->writeln("Well, that's a donation. Thanks! XD"); | ||
} else { | ||
$user = (new Users)->get($userId); | ||
if(!$user) { | ||
$header->writeln("Well, that's a donation. Thanks! XD"); | ||
} else { | ||
$value = ($transfer["in_msg"]["value"] / NANOTON) / OPENVK_ROOT_CONF["openvk"]["preferences"]["ton"]["rate"]; | ||
$user->setCoins($user->getCoins() + $value); | ||
$user->save(); | ||
(new CoinsTransferNotification($user, (new Users)->get(OPENVK_ROOT_CONF["openvk"]["preferences"]["support"]["adminAccount"]), (int) $value, "Via TON cryptocurrency"))->emit(); | ||
$header->writeln($value . " coins are added to " . $user->getId() . " user id"); | ||
$this->transactions->insert([ | ||
"id" => NULL, | ||
"hash" => $transfer["transaction_id"]["hash"], | ||
"lt" => $transfer["transaction_id"]["lt"] | ||
]); | ||
} | ||
} | ||
} | ||
|
||
$header->writeln("Processing finished :3"); | ||
|
||
return Command::SUCCESS; | ||
} | ||
} | ||
<?php | ||
|
||
declare(strict_types=1); | ||
|
||
namespace openvk\CLI; | ||
|
||
use Chandler\Database\DatabaseConnection; | ||
use openvk\Web\Models\Repositories\Users; | ||
use openvk\Web\Models\Entities\Notifications\CoinsTransferNotification; | ||
use Symfony\Component\Console\Command\Command; | ||
use Symfony\Component\Console\Input\InputInterface; | ||
use Symfony\Component\Console\Input\InputOption; | ||
use Symfony\Component\Console\Output\OutputInterface; | ||
use Nette\Utils\ImageException; | ||
|
||
define("NANOTON", 1000000000); | ||
|
||
class FetchToncoinTransactions extends Command | ||
{ | ||
private $images; | ||
|
||
protected static $defaultName = "fetch-ton"; | ||
|
||
public function __construct() | ||
{ | ||
$this->transactions = DatabaseConnection::i()->getContext()->table("cryptotransactions"); | ||
|
||
parent::__construct(); | ||
} | ||
|
||
protected function configure(): void | ||
{ | ||
$this->setDescription("Fetches TON transactions to top up the users' balance") | ||
->setHelp("This command checks for new transactions on TON Wallet and then top up the balance of specified users"); | ||
} | ||
|
||
protected function execute(InputInterface $input, OutputInterface $output): int | ||
{ | ||
$header = $output->section(); | ||
|
||
$header->writeln([ | ||
"TONCOIN Fetcher", | ||
"=====================", | ||
"", | ||
]); | ||
|
||
if (!OPENVK_ROOT_CONF["openvk"]["preferences"]["ton"]["enabled"]) { | ||
$header->writeln("Sorry, but you handn't enabled the TON support in your config file yet."); | ||
|
||
return Command::FAILURE; | ||
} | ||
|
||
$testnetSubdomain = OPENVK_ROOT_CONF["openvk"]["preferences"]["ton"]["testnet"] ? "testnet." : ""; | ||
$url = "https://" . $testnetSubdomain . "toncenter.com/api/v2/getTransactions?"; | ||
|
||
$opts = [ | ||
"http" => [ | ||
"method" => "GET", | ||
"header" => "Accept: application/json", | ||
], | ||
]; | ||
|
||
$selection = $this->transactions->select('hash, lt')->order("id DESC")->limit(1)->fetch(); | ||
$trHash = $selection->hash ?? null; | ||
$trLt = $selection->lt ?? null; | ||
|
||
$data = http_build_query([ | ||
"address" => OPENVK_ROOT_CONF["openvk"]["preferences"]["ton"]["address"], | ||
"limit" => 100, | ||
"hash" => $trHash, | ||
"to_lt" => $trLt, | ||
]); | ||
|
||
$response = file_get_contents($url . $data, false, stream_context_create($opts)); | ||
$response = json_decode($response, true); | ||
|
||
$header->writeln("Gonna up the balance of users"); | ||
foreach ($response["result"] as $transfer) { | ||
$outputArray; | ||
preg_match('/' . OPENVK_ROOT_CONF["openvk"]["preferences"]["ton"]["regex"] . '/', $transfer["in_msg"]["message"], $outputArray); | ||
$userId = ctype_digit($outputArray[1]) ? intval($outputArray[1]) : null; | ||
if (is_null($userId)) { | ||
$header->writeln("Well, that's a donation. Thanks! XD"); | ||
} else { | ||
$user = (new Users())->get($userId); | ||
if (!$user) { | ||
$header->writeln("Well, that's a donation. Thanks! XD"); | ||
} else { | ||
$value = ($transfer["in_msg"]["value"] / NANOTON) / OPENVK_ROOT_CONF["openvk"]["preferences"]["ton"]["rate"]; | ||
$user->setCoins($user->getCoins() + $value); | ||
$user->save(); | ||
(new CoinsTransferNotification($user, (new Users())->get(OPENVK_ROOT_CONF["openvk"]["preferences"]["support"]["adminAccount"]), (int) $value, "Via TON cryptocurrency"))->emit(); | ||
$header->writeln($value . " coins are added to " . $user->getId() . " user id"); | ||
$this->transactions->insert([ | ||
"id" => null, | ||
"hash" => $transfer["transaction_id"]["hash"], | ||
"lt" => $transfer["transaction_id"]["lt"], | ||
]); | ||
} | ||
} | ||
} | ||
|
||
$header->writeln("Processing finished :3"); | ||
|
||
return Command::SUCCESS; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.