prepared for the student
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "kodorvan/neurobot",
|
"name": "kodorvan/edabil",
|
||||||
"description": "",
|
"description": "",
|
||||||
"homepage": "https://git.svoboda.works/kodorvan/neurobot",
|
"homepage": "https://git.svoboda.works/kodorvan/edabil",
|
||||||
"type": "game",
|
"type": "game",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"minimal",
|
"minimal",
|
||||||
@@ -18,8 +18,8 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"wiki": "https://git.svoboda.works/kodorvan/neurobot/wiki",
|
"wiki": "https://git.svoboda.works/kodorvan/edabil/wiki",
|
||||||
"issues": "https://git.svoboda.works/kodorvan/neurobot/issues"
|
"issues": "https://git.svoboda.works/kodorvan/edabil/issues"
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^8.5",
|
"php": "^8.5",
|
||||||
@@ -49,12 +49,12 @@
|
|||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"kodorvan\\neurobot\\": "kodorvan/neurobot/system"
|
"kodorvan\\edabil\\": "kodorvan/edabil/system"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload-dev": {
|
"autoload-dev": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"kodorvan\\neurobot\\tests\\": "kodorvan/neurobot/tests"
|
"kodorvan\\edabil\\tests\\": "kodorvan/edabil/tests"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
279
composer.lock
generated
279
composer.lock
generated
@@ -4,7 +4,7 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "a8338790c91ddfe22352530ff06fbcd0",
|
"content-hash": "8d90c860659db86cb981e675d0041753",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "badfarm/zanzara",
|
"name": "badfarm/zanzara",
|
||||||
@@ -848,7 +848,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "illuminate/macroable",
|
"name": "illuminate/macroable",
|
||||||
"version": "v12.51.0",
|
"version": "v12.53.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/illuminate/macroable.git",
|
"url": "https://github.com/illuminate/macroable.git",
|
||||||
@@ -1207,11 +1207,11 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "mirzaev/unmarkdown",
|
"name": "mirzaev/unmarkdown",
|
||||||
"version": "1.0.3",
|
"version": "1.0.5",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://git.svoboda.works/mirzaev/unmarkdown",
|
"url": "https://git.svoboda.works/mirzaev/unmarkdown",
|
||||||
"reference": "ae97b9e4644dc591965694570277cdafdc46247d"
|
"reference": "a0309030f65b024b8a35cd60fba396f6b8e063ee"
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^8.4"
|
"php": "^8.4"
|
||||||
@@ -1243,7 +1243,7 @@
|
|||||||
"support": {
|
"support": {
|
||||||
"issues": "https://git.svoboda.works/mirzaev/unmarkdown/issues"
|
"issues": "https://git.svoboda.works/mirzaev/unmarkdown/issues"
|
||||||
},
|
},
|
||||||
"time": "2025-11-09T11:37:20+00:00"
|
"time": "2026-01-14T10:49:12+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "netresearch/jsonmapper",
|
"name": "netresearch/jsonmapper",
|
||||||
@@ -1358,16 +1358,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "nutgram/nutgram",
|
"name": "nutgram/nutgram",
|
||||||
"version": "4.42.0",
|
"version": "4.44.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/nutgram/nutgram.git",
|
"url": "https://github.com/nutgram/nutgram.git",
|
||||||
"reference": "034257dbc29947b73e04b5d92b07d780d8962810"
|
"reference": "9e69c5eb5bdf79ff96c0396007f909e19fd8a956"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/nutgram/nutgram/zipball/034257dbc29947b73e04b5d92b07d780d8962810",
|
"url": "https://api.github.com/repos/nutgram/nutgram/zipball/9e69c5eb5bdf79ff96c0396007f909e19fd8a956",
|
||||||
"reference": "034257dbc29947b73e04b5d92b07d780d8962810",
|
"reference": "9e69c5eb5bdf79ff96c0396007f909e19fd8a956",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -1429,7 +1429,7 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/nutgram/nutgram/issues",
|
"issues": "https://github.com/nutgram/nutgram/issues",
|
||||||
"source": "https://github.com/nutgram/nutgram/tree/4.42.0"
|
"source": "https://github.com/nutgram/nutgram/tree/4.44.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -1441,7 +1441,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2026-02-12T17:23:52+00:00"
|
"time": "2026-03-02T00:33:48+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "nyholm/psr7",
|
"name": "nyholm/psr7",
|
||||||
@@ -3549,16 +3549,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/cache",
|
"name": "symfony/cache",
|
||||||
"version": "v8.0.5",
|
"version": "v8.0.6",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/cache.git",
|
"url": "https://github.com/symfony/cache.git",
|
||||||
"reference": "92e9960386c7e01f58198038c199d522959a843c"
|
"reference": "59184fa14658d7724cd9b8743d91c1b1aa618bff"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/cache/zipball/92e9960386c7e01f58198038c199d522959a843c",
|
"url": "https://api.github.com/repos/symfony/cache/zipball/59184fa14658d7724cd9b8743d91c1b1aa618bff",
|
||||||
"reference": "92e9960386c7e01f58198038c199d522959a843c",
|
"reference": "59184fa14658d7724cd9b8743d91c1b1aa618bff",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -3625,7 +3625,7 @@
|
|||||||
"psr6"
|
"psr6"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/cache/tree/v8.0.5"
|
"source": "https://github.com/symfony/cache/tree/v8.0.6"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -3645,7 +3645,7 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2026-01-27T16:18:07+00:00"
|
"time": "2026-02-21T23:29:37+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/cache-contracts",
|
"name": "symfony/cache-contracts",
|
||||||
@@ -3725,16 +3725,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/config",
|
"name": "symfony/config",
|
||||||
"version": "v8.0.3",
|
"version": "v8.0.6",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/config.git",
|
"url": "https://github.com/symfony/config.git",
|
||||||
"reference": "58063686fd7b8e676f14b5a4808cb85265c5216e"
|
"reference": "94ea198de42f93dffa920a098cac3961a82e63b7"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/config/zipball/58063686fd7b8e676f14b5a4808cb85265c5216e",
|
"url": "https://api.github.com/repos/symfony/config/zipball/94ea198de42f93dffa920a098cac3961a82e63b7",
|
||||||
"reference": "58063686fd7b8e676f14b5a4808cb85265c5216e",
|
"reference": "94ea198de42f93dffa920a098cac3961a82e63b7",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -3779,7 +3779,7 @@
|
|||||||
"description": "Helps you find, load, combine, autofill and validate configuration values of any kind",
|
"description": "Helps you find, load, combine, autofill and validate configuration values of any kind",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/config/tree/v8.0.3"
|
"source": "https://github.com/symfony/config/tree/v8.0.6"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -3799,20 +3799,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2025-12-23T14:52:06+00:00"
|
"time": "2026-02-25T16:59:43+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/dependency-injection",
|
"name": "symfony/dependency-injection",
|
||||||
"version": "v8.0.3",
|
"version": "v8.0.6",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/dependency-injection.git",
|
"url": "https://github.com/symfony/dependency-injection.git",
|
||||||
"reference": "8db0d4c1dd4c533a29210c68074999ba45ad6d3e"
|
"reference": "edd98864a7b9eaaa10f389bd414e7d9e816bb59d"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/dependency-injection/zipball/8db0d4c1dd4c533a29210c68074999ba45ad6d3e",
|
"url": "https://api.github.com/repos/symfony/dependency-injection/zipball/edd98864a7b9eaaa10f389bd414e7d9e816bb59d",
|
||||||
"reference": "8db0d4c1dd4c533a29210c68074999ba45ad6d3e",
|
"reference": "edd98864a7b9eaaa10f389bd414e7d9e816bb59d",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -3860,7 +3860,7 @@
|
|||||||
"description": "Allows you to standardize and centralize the way objects are constructed in your application",
|
"description": "Allows you to standardize and centralize the way objects are constructed in your application",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/dependency-injection/tree/v8.0.3"
|
"source": "https://github.com/symfony/dependency-injection/tree/v8.0.6"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -3880,7 +3880,7 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2025-12-23T14:52:06+00:00"
|
"time": "2026-02-25T16:59:43+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/deprecation-contracts",
|
"name": "symfony/deprecation-contracts",
|
||||||
@@ -3951,16 +3951,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/error-handler",
|
"name": "symfony/error-handler",
|
||||||
"version": "v8.0.0",
|
"version": "v8.0.4",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/error-handler.git",
|
"url": "https://github.com/symfony/error-handler.git",
|
||||||
"reference": "d77ec7dda0c274178745d152e82baf7ea827fd73"
|
"reference": "7620b97ec0ab1d2d6c7fb737aa55da411bea776a"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/error-handler/zipball/d77ec7dda0c274178745d152e82baf7ea827fd73",
|
"url": "https://api.github.com/repos/symfony/error-handler/zipball/7620b97ec0ab1d2d6c7fb737aa55da411bea776a",
|
||||||
"reference": "d77ec7dda0c274178745d152e82baf7ea827fd73",
|
"reference": "7620b97ec0ab1d2d6c7fb737aa55da411bea776a",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -4008,7 +4008,7 @@
|
|||||||
"description": "Provides tools to manage errors and ease debugging PHP code",
|
"description": "Provides tools to manage errors and ease debugging PHP code",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/error-handler/tree/v8.0.0"
|
"source": "https://github.com/symfony/error-handler/tree/v8.0.4"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -4028,20 +4028,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2025-11-05T14:36:47+00:00"
|
"time": "2026-01-23T11:07:10+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/event-dispatcher",
|
"name": "symfony/event-dispatcher",
|
||||||
"version": "v8.0.0",
|
"version": "v8.0.4",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/event-dispatcher.git",
|
"url": "https://github.com/symfony/event-dispatcher.git",
|
||||||
"reference": "573f95783a2ec6e38752979db139f09fec033f03"
|
"reference": "99301401da182b6cfaa4700dbe9987bb75474b47"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/573f95783a2ec6e38752979db139f09fec033f03",
|
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/99301401da182b6cfaa4700dbe9987bb75474b47",
|
||||||
"reference": "573f95783a2ec6e38752979db139f09fec033f03",
|
"reference": "99301401da182b6cfaa4700dbe9987bb75474b47",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -4093,7 +4093,7 @@
|
|||||||
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
|
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/event-dispatcher/tree/v8.0.0"
|
"source": "https://github.com/symfony/event-dispatcher/tree/v8.0.4"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -4113,7 +4113,7 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2025-10-30T14:17:19+00:00"
|
"time": "2026-01-05T11:45:55+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/event-dispatcher-contracts",
|
"name": "symfony/event-dispatcher-contracts",
|
||||||
@@ -4193,16 +4193,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/filesystem",
|
"name": "symfony/filesystem",
|
||||||
"version": "v8.0.1",
|
"version": "v8.0.6",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/filesystem.git",
|
"url": "https://github.com/symfony/filesystem.git",
|
||||||
"reference": "d937d400b980523dc9ee946bb69972b5e619058d"
|
"reference": "7bf9162d7a0dff98d079b72948508fa48018a770"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/filesystem/zipball/d937d400b980523dc9ee946bb69972b5e619058d",
|
"url": "https://api.github.com/repos/symfony/filesystem/zipball/7bf9162d7a0dff98d079b72948508fa48018a770",
|
||||||
"reference": "d937d400b980523dc9ee946bb69972b5e619058d",
|
"reference": "7bf9162d7a0dff98d079b72948508fa48018a770",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -4239,7 +4239,7 @@
|
|||||||
"description": "Provides basic utilities for the filesystem",
|
"description": "Provides basic utilities for the filesystem",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/filesystem/tree/v8.0.1"
|
"source": "https://github.com/symfony/filesystem/tree/v8.0.6"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -4259,20 +4259,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2025-12-01T09:13:36+00:00"
|
"time": "2026-02-25T16:59:43+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/finder",
|
"name": "symfony/finder",
|
||||||
"version": "v8.0.3",
|
"version": "v8.0.6",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/finder.git",
|
"url": "https://github.com/symfony/finder.git",
|
||||||
"reference": "dd3a2953570a283a2ba4e17063bb98c734cf5b12"
|
"reference": "441404f09a54de6d1bd6ad219e088cdf4c91f97c"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/finder/zipball/dd3a2953570a283a2ba4e17063bb98c734cf5b12",
|
"url": "https://api.github.com/repos/symfony/finder/zipball/441404f09a54de6d1bd6ad219e088cdf4c91f97c",
|
||||||
"reference": "dd3a2953570a283a2ba4e17063bb98c734cf5b12",
|
"reference": "441404f09a54de6d1bd6ad219e088cdf4c91f97c",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -4307,7 +4307,7 @@
|
|||||||
"description": "Finds files and directories via an intuitive fluent interface",
|
"description": "Finds files and directories via an intuitive fluent interface",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/finder/tree/v8.0.3"
|
"source": "https://github.com/symfony/finder/tree/v8.0.6"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -4327,20 +4327,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2025-12-23T14:52:06+00:00"
|
"time": "2026-01-29T09:41:02+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/framework-bundle",
|
"name": "symfony/framework-bundle",
|
||||||
"version": "v8.0.3",
|
"version": "v8.0.6",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/framework-bundle.git",
|
"url": "https://github.com/symfony/framework-bundle.git",
|
||||||
"reference": "738a92519fbc3ac37192b28052574bf2d1e8f63a"
|
"reference": "86ebd86908edca06e3af5994bc46881575fbe813"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/framework-bundle/zipball/738a92519fbc3ac37192b28052574bf2d1e8f63a",
|
"url": "https://api.github.com/repos/symfony/framework-bundle/zipball/86ebd86908edca06e3af5994bc46881575fbe813",
|
||||||
"reference": "738a92519fbc3ac37192b28052574bf2d1e8f63a",
|
"reference": "86ebd86908edca06e3af5994bc46881575fbe813",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -4348,8 +4348,8 @@
|
|||||||
"ext-xml": "*",
|
"ext-xml": "*",
|
||||||
"php": ">=8.4",
|
"php": ">=8.4",
|
||||||
"symfony/cache": "^7.4|^8.0",
|
"symfony/cache": "^7.4|^8.0",
|
||||||
"symfony/config": "^7.4.3|^8.0.3",
|
"symfony/config": "^7.4.4|^8.0.4",
|
||||||
"symfony/dependency-injection": "^7.4|^8.0",
|
"symfony/dependency-injection": "^7.4.4|^8.0.4",
|
||||||
"symfony/deprecation-contracts": "^2.5|^3",
|
"symfony/deprecation-contracts": "^2.5|^3",
|
||||||
"symfony/error-handler": "^7.4|^8.0",
|
"symfony/error-handler": "^7.4|^8.0",
|
||||||
"symfony/event-dispatcher": "^7.4|^8.0",
|
"symfony/event-dispatcher": "^7.4|^8.0",
|
||||||
@@ -4363,8 +4363,8 @@
|
|||||||
},
|
},
|
||||||
"conflict": {
|
"conflict": {
|
||||||
"doctrine/persistence": "<1.3",
|
"doctrine/persistence": "<1.3",
|
||||||
"phpdocumentor/reflection-docblock": "<3.2.2",
|
"phpdocumentor/reflection-docblock": "<5.2|>=7",
|
||||||
"phpdocumentor/type-resolver": "<1.4.0",
|
"phpdocumentor/type-resolver": "<1.5.1",
|
||||||
"symfony/console": "<7.4",
|
"symfony/console": "<7.4",
|
||||||
"symfony/form": "<7.4",
|
"symfony/form": "<7.4",
|
||||||
"symfony/json-streamer": "<7.4",
|
"symfony/json-streamer": "<7.4",
|
||||||
@@ -4378,7 +4378,7 @@
|
|||||||
"require-dev": {
|
"require-dev": {
|
||||||
"doctrine/persistence": "^1.3|^2|^3",
|
"doctrine/persistence": "^1.3|^2|^3",
|
||||||
"dragonmantank/cron-expression": "^3.1",
|
"dragonmantank/cron-expression": "^3.1",
|
||||||
"phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
|
"phpdocumentor/reflection-docblock": "^5.2|^6.0",
|
||||||
"phpstan/phpdoc-parser": "^1.0|^2.0",
|
"phpstan/phpdoc-parser": "^1.0|^2.0",
|
||||||
"seld/jsonlint": "^1.10",
|
"seld/jsonlint": "^1.10",
|
||||||
"symfony/asset": "^7.4|^8.0",
|
"symfony/asset": "^7.4|^8.0",
|
||||||
@@ -4447,7 +4447,7 @@
|
|||||||
"description": "Provides a tight integration between Symfony components and the Symfony full-stack framework",
|
"description": "Provides a tight integration between Symfony components and the Symfony full-stack framework",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/framework-bundle/tree/v8.0.3"
|
"source": "https://github.com/symfony/framework-bundle/tree/v8.0.6"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -4467,20 +4467,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2025-12-23T14:52:06+00:00"
|
"time": "2026-02-25T16:59:43+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/http-client",
|
"name": "symfony/http-client",
|
||||||
"version": "v7.4.3",
|
"version": "v7.4.6",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/http-client.git",
|
"url": "https://github.com/symfony/http-client.git",
|
||||||
"reference": "d01dfac1e0dc99f18da48b18101c23ce57929616"
|
"reference": "2bde8afd5ab2fe0b05a9c2d4c3c0e28ceb98a154"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/http-client/zipball/d01dfac1e0dc99f18da48b18101c23ce57929616",
|
"url": "https://api.github.com/repos/symfony/http-client/zipball/2bde8afd5ab2fe0b05a9c2d4c3c0e28ceb98a154",
|
||||||
"reference": "d01dfac1e0dc99f18da48b18101c23ce57929616",
|
"reference": "2bde8afd5ab2fe0b05a9c2d4c3c0e28ceb98a154",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -4548,7 +4548,7 @@
|
|||||||
"http"
|
"http"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/http-client/tree/v7.4.3"
|
"source": "https://github.com/symfony/http-client/tree/v7.4.6"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -4568,7 +4568,7 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2025-12-23T14:50:43+00:00"
|
"time": "2026-02-18T09:46:18+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/http-client-contracts",
|
"name": "symfony/http-client-contracts",
|
||||||
@@ -4650,16 +4650,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/http-foundation",
|
"name": "symfony/http-foundation",
|
||||||
"version": "v8.0.3",
|
"version": "v8.0.6",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/http-foundation.git",
|
"url": "https://github.com/symfony/http-foundation.git",
|
||||||
"reference": "514ec3aa7982f296b0ad0825f75b6be5779ae9e7"
|
"reference": "7745ff1aad45d855fe25b08969269ef83b1ad8bc"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/514ec3aa7982f296b0ad0825f75b6be5779ae9e7",
|
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/7745ff1aad45d855fe25b08969269ef83b1ad8bc",
|
||||||
"reference": "514ec3aa7982f296b0ad0825f75b6be5779ae9e7",
|
"reference": "7745ff1aad45d855fe25b08969269ef83b1ad8bc",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -4706,7 +4706,7 @@
|
|||||||
"description": "Defines an object-oriented layer for the HTTP specification",
|
"description": "Defines an object-oriented layer for the HTTP specification",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/http-foundation/tree/v8.0.3"
|
"source": "https://github.com/symfony/http-foundation/tree/v8.0.6"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -4726,20 +4726,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2025-12-23T14:52:06+00:00"
|
"time": "2026-02-21T16:28:39+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/http-kernel",
|
"name": "symfony/http-kernel",
|
||||||
"version": "v8.0.3",
|
"version": "v8.0.6",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/http-kernel.git",
|
"url": "https://github.com/symfony/http-kernel.git",
|
||||||
"reference": "e6dfb348eb1dd4df14c39e6dc7e283bab4199fd9"
|
"reference": "b567e571e74b5774b3d3cb4d35bdafa5f37e51a9"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/e6dfb348eb1dd4df14c39e6dc7e283bab4199fd9",
|
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/b567e571e74b5774b3d3cb4d35bdafa5f37e51a9",
|
||||||
"reference": "e6dfb348eb1dd4df14c39e6dc7e283bab4199fd9",
|
"reference": "b567e571e74b5774b3d3cb4d35bdafa5f37e51a9",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -4810,7 +4810,7 @@
|
|||||||
"description": "Provides a structured process for converting a Request into a Response",
|
"description": "Provides a structured process for converting a Request into a Response",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/http-kernel/tree/v8.0.3"
|
"source": "https://github.com/symfony/http-kernel/tree/v8.0.6"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -4830,20 +4830,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2025-12-31T09:29:34+00:00"
|
"time": "2026-02-26T08:36:42+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/intl",
|
"name": "symfony/intl",
|
||||||
"version": "v8.0.1",
|
"version": "v8.0.6",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/intl.git",
|
"url": "https://github.com/symfony/intl.git",
|
||||||
"reference": "f9eca217ae8f2be0b3ad80723d6a3b518b90cd66"
|
"reference": "4e14323828f51a293edbce15ca98d4f3dd927cbf"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/intl/zipball/f9eca217ae8f2be0b3ad80723d6a3b518b90cd66",
|
"url": "https://api.github.com/repos/symfony/intl/zipball/4e14323828f51a293edbce15ca98d4f3dd927cbf",
|
||||||
"reference": "f9eca217ae8f2be0b3ad80723d6a3b518b90cd66",
|
"reference": "4e14323828f51a293edbce15ca98d4f3dd927cbf",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -4899,7 +4899,7 @@
|
|||||||
"localization"
|
"localization"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/intl/tree/v8.0.1"
|
"source": "https://github.com/symfony/intl/tree/v8.0.6"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -4919,7 +4919,7 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2025-12-01T09:13:36+00:00"
|
"time": "2026-02-09T10:14:57+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-ctype",
|
"name": "symfony/polyfill-ctype",
|
||||||
@@ -5251,16 +5251,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/routing",
|
"name": "symfony/routing",
|
||||||
"version": "v8.0.3",
|
"version": "v8.0.6",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/routing.git",
|
"url": "https://github.com/symfony/routing.git",
|
||||||
"reference": "3827ac6e03dcd86e430fb6ae6056acf5b51aece3"
|
"reference": "053c40fd46e1d19c5c5a94cada93ce6c3facdd55"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/routing/zipball/3827ac6e03dcd86e430fb6ae6056acf5b51aece3",
|
"url": "https://api.github.com/repos/symfony/routing/zipball/053c40fd46e1d19c5c5a94cada93ce6c3facdd55",
|
||||||
"reference": "3827ac6e03dcd86e430fb6ae6056acf5b51aece3",
|
"reference": "053c40fd46e1d19c5c5a94cada93ce6c3facdd55",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -5307,7 +5307,7 @@
|
|||||||
"url"
|
"url"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/routing/tree/v8.0.3"
|
"source": "https://github.com/symfony/routing/tree/v8.0.6"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -5327,7 +5327,7 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2025-12-19T10:01:18+00:00"
|
"time": "2026-02-25T16:59:43+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/service-contracts",
|
"name": "symfony/service-contracts",
|
||||||
@@ -5500,16 +5500,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/twig-bridge",
|
"name": "symfony/twig-bridge",
|
||||||
"version": "v8.0.3",
|
"version": "v8.0.6",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/twig-bridge.git",
|
"url": "https://github.com/symfony/twig-bridge.git",
|
||||||
"reference": "2a2978a44127bae9aaee0ed5319954eb492d81c3"
|
"reference": "a29b174218f6eb324bf24f60440ac81d17f6ee0d"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/twig-bridge/zipball/2a2978a44127bae9aaee0ed5319954eb492d81c3",
|
"url": "https://api.github.com/repos/symfony/twig-bridge/zipball/a29b174218f6eb324bf24f60440ac81d17f6ee0d",
|
||||||
"reference": "2a2978a44127bae9aaee0ed5319954eb492d81c3",
|
"reference": "a29b174218f6eb324bf24f60440ac81d17f6ee0d",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -5518,13 +5518,14 @@
|
|||||||
"twig/twig": "^3.21"
|
"twig/twig": "^3.21"
|
||||||
},
|
},
|
||||||
"conflict": {
|
"conflict": {
|
||||||
"phpdocumentor/reflection-docblock": "<3.2.2",
|
"phpdocumentor/reflection-docblock": "<5.2|>=7",
|
||||||
"phpdocumentor/type-resolver": "<1.4.0"
|
"phpdocumentor/type-resolver": "<1.5.1",
|
||||||
|
"symfony/form": "<7.4.4|>8.0,<8.0.4"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"egulias/email-validator": "^2.1.10|^3|^4",
|
"egulias/email-validator": "^2.1.10|^3|^4",
|
||||||
"league/html-to-markdown": "^5.0",
|
"league/html-to-markdown": "^5.0",
|
||||||
"phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
|
"phpdocumentor/reflection-docblock": "^5.2|^6.0",
|
||||||
"symfony/asset": "^7.4|^8.0",
|
"symfony/asset": "^7.4|^8.0",
|
||||||
"symfony/asset-mapper": "^7.4|^8.0",
|
"symfony/asset-mapper": "^7.4|^8.0",
|
||||||
"symfony/console": "^7.4|^8.0",
|
"symfony/console": "^7.4|^8.0",
|
||||||
@@ -5532,7 +5533,7 @@
|
|||||||
"symfony/emoji": "^7.4|^8.0",
|
"symfony/emoji": "^7.4|^8.0",
|
||||||
"symfony/expression-language": "^7.4|^8.0",
|
"symfony/expression-language": "^7.4|^8.0",
|
||||||
"symfony/finder": "^7.4|^8.0",
|
"symfony/finder": "^7.4|^8.0",
|
||||||
"symfony/form": "^7.4.1|^8.0.1",
|
"symfony/form": "^7.4.4|^8.0.4",
|
||||||
"symfony/html-sanitizer": "^7.4|^8.0",
|
"symfony/html-sanitizer": "^7.4|^8.0",
|
||||||
"symfony/http-foundation": "^7.4|^8.0",
|
"symfony/http-foundation": "^7.4|^8.0",
|
||||||
"symfony/http-kernel": "^7.4|^8.0",
|
"symfony/http-kernel": "^7.4|^8.0",
|
||||||
@@ -5582,7 +5583,7 @@
|
|||||||
"description": "Provides integration for Twig with various Symfony components",
|
"description": "Provides integration for Twig with various Symfony components",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/twig-bridge/tree/v8.0.3"
|
"source": "https://github.com/symfony/twig-bridge/tree/v8.0.6"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -5602,20 +5603,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2025-12-16T08:10:18+00:00"
|
"time": "2026-02-25T16:59:43+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/twig-bundle",
|
"name": "symfony/twig-bundle",
|
||||||
"version": "v8.0.3",
|
"version": "v8.0.4",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/twig-bundle.git",
|
"url": "https://github.com/symfony/twig-bundle.git",
|
||||||
"reference": "58c54c97af6a3fdb7ea9a3931ea1c4b8bd282b2f"
|
"reference": "5a68f2e0e06996514bf04900c3982b93b42487af"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/twig-bundle/zipball/58c54c97af6a3fdb7ea9a3931ea1c4b8bd282b2f",
|
"url": "https://api.github.com/repos/symfony/twig-bundle/zipball/5a68f2e0e06996514bf04900c3982b93b42487af",
|
||||||
"reference": "58c54c97af6a3fdb7ea9a3931ea1c4b8bd282b2f",
|
"reference": "5a68f2e0e06996514bf04900c3982b93b42487af",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -5666,7 +5667,7 @@
|
|||||||
"description": "Provides a tight integration of Twig into the Symfony full-stack framework",
|
"description": "Provides a tight integration of Twig into the Symfony full-stack framework",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/twig-bundle/tree/v8.0.3"
|
"source": "https://github.com/symfony/twig-bundle/tree/v8.0.4"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -5686,20 +5687,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2025-12-19T10:01:18+00:00"
|
"time": "2026-01-06T12:43:21+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/var-dumper",
|
"name": "symfony/var-dumper",
|
||||||
"version": "v8.0.3",
|
"version": "v8.0.6",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/var-dumper.git",
|
"url": "https://github.com/symfony/var-dumper.git",
|
||||||
"reference": "3bc368228532ad538cc216768caa8968be95a8d6"
|
"reference": "2e14f7e0bf5ff02c6e63bd31cb8e4855a13d6209"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/3bc368228532ad538cc216768caa8968be95a8d6",
|
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/2e14f7e0bf5ff02c6e63bd31cb8e4855a13d6209",
|
||||||
"reference": "3bc368228532ad538cc216768caa8968be95a8d6",
|
"reference": "2e14f7e0bf5ff02c6e63bd31cb8e4855a13d6209",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -5753,7 +5754,7 @@
|
|||||||
"dump"
|
"dump"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/var-dumper/tree/v8.0.3"
|
"source": "https://github.com/symfony/var-dumper/tree/v8.0.6"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -5773,7 +5774,7 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2025-12-18T11:23:51+00:00"
|
"time": "2026-02-15T10:53:29+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/var-exporter",
|
"name": "symfony/var-exporter",
|
||||||
@@ -6048,16 +6049,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "twig/extra-bundle",
|
"name": "twig/extra-bundle",
|
||||||
"version": "v3.22.2",
|
"version": "v3.23.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/twigphp/twig-extra-bundle.git",
|
"url": "https://github.com/twigphp/twig-extra-bundle.git",
|
||||||
"reference": "09de9be7f6c0d19ede7b5a1dbfcfb2e9d1e0ea9e"
|
"reference": "7a27e784dc56eddfef5e9295829b290ce06f1682"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/09de9be7f6c0d19ede7b5a1dbfcfb2e9d1e0ea9e",
|
"url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/7a27e784dc56eddfef5e9295829b290ce06f1682",
|
||||||
"reference": "09de9be7f6c0d19ede7b5a1dbfcfb2e9d1e0ea9e",
|
"reference": "7a27e784dc56eddfef5e9295829b290ce06f1682",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -6106,7 +6107,7 @@
|
|||||||
"twig"
|
"twig"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.22.2"
|
"source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.23.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -6118,20 +6119,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2025-12-05T08:51:53+00:00"
|
"time": "2025-12-18T20:46:15+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "twig/intl-extra",
|
"name": "twig/intl-extra",
|
||||||
"version": "v3.22.1",
|
"version": "v3.23.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/twigphp/intl-extra.git",
|
"url": "https://github.com/twigphp/intl-extra.git",
|
||||||
"reference": "93ac31e53cdd3f2e541f42690cd0c54ca8138ab1"
|
"reference": "32f15a38d45a8d0ec11bc8a3d97d3ac2a261499f"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/twigphp/intl-extra/zipball/93ac31e53cdd3f2e541f42690cd0c54ca8138ab1",
|
"url": "https://api.github.com/repos/twigphp/intl-extra/zipball/32f15a38d45a8d0ec11bc8a3d97d3ac2a261499f",
|
||||||
"reference": "93ac31e53cdd3f2e541f42690cd0c54ca8138ab1",
|
"reference": "32f15a38d45a8d0ec11bc8a3d97d3ac2a261499f",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -6170,7 +6171,7 @@
|
|||||||
"twig"
|
"twig"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/twigphp/intl-extra/tree/v3.22.1"
|
"source": "https://github.com/twigphp/intl-extra/tree/v3.23.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -6182,20 +6183,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2025-11-02T11:00:49+00:00"
|
"time": "2026-01-17T13:57:47+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "twig/twig",
|
"name": "twig/twig",
|
||||||
"version": "v3.22.2",
|
"version": "v3.23.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/twigphp/Twig.git",
|
"url": "https://github.com/twigphp/Twig.git",
|
||||||
"reference": "946ddeafa3c9f4ce279d1f34051af041db0e16f2"
|
"reference": "a64dc5d2cc7d6cafb9347f6cd802d0d06d0351c9"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/twigphp/Twig/zipball/946ddeafa3c9f4ce279d1f34051af041db0e16f2",
|
"url": "https://api.github.com/repos/twigphp/Twig/zipball/a64dc5d2cc7d6cafb9347f6cd802d0d06d0351c9",
|
||||||
"reference": "946ddeafa3c9f4ce279d1f34051af041db0e16f2",
|
"reference": "a64dc5d2cc7d6cafb9347f6cd802d0d06d0351c9",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -6249,7 +6250,7 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/twigphp/Twig/issues",
|
"issues": "https://github.com/twigphp/Twig/issues",
|
||||||
"source": "https://github.com/twigphp/Twig/tree/v3.22.2"
|
"source": "https://github.com/twigphp/Twig/tree/v3.23.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -6261,7 +6262,7 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2025-12-14T11:28:47+00:00"
|
"time": "2026-01-23T21:00:41+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "wyrihaximus/composer-update-bin-autoload-path",
|
"name": "wyrihaximus/composer-update-bin-autoload-path",
|
||||||
@@ -6896,16 +6897,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "yoomoney/yookassa-sdk-php",
|
"name": "yoomoney/yookassa-sdk-php",
|
||||||
"version": "2.13.0",
|
"version": "2.13.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://git.yoomoney.ru/scm/sdk/yookassa-sdk-php.git",
|
"url": "https://git.yoomoney.ru/scm/sdk/yookassa-sdk-php.git",
|
||||||
"reference": "846375280694d418025ba9ec5bcdbdfac6773932"
|
"reference": "f5f3cdad71710d06baf0f9c8d455a42d0d8b8e65"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://git.yoomoney.ru/rest/api/latest/projects/SDK/repos/yookassa-sdk-php/archive?at=refs%2Ftags%2F2.13.0&format=zip",
|
"url": "https://git.yoomoney.ru/rest/api/latest/projects/SDK/repos/yookassa-sdk-php/archive?at=refs%2Ftags%2F2.13.1&format=zip",
|
||||||
"reference": "846375280694d418025ba9ec5bcdbdfac6773932"
|
"reference": "f5f3cdad71710d06baf0f9c8d455a42d0d8b8e65"
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"ext-curl": "*",
|
"ext-curl": "*",
|
||||||
@@ -6947,7 +6948,7 @@
|
|||||||
"yookassa",
|
"yookassa",
|
||||||
"yoomoney"
|
"yoomoney"
|
||||||
],
|
],
|
||||||
"time": "2025-12-17T09:05:11+00:00"
|
"time": "2026-02-18T13:51:08+00:00"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"packages-dev": [],
|
"packages-dev": [],
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/bin/fish
|
#!/bin/fish
|
||||||
|
|
||||||
if not test -L kodorvan/neurobot/system/public/js/modules/damper.mjs
|
if not test -L kodorvan/edabil/system/public/js/modules/damper.mjs
|
||||||
ln -s ../../../../../../damper.mjs/damper.mjs kodorvan/neurobot/system/public/js/modules/damper.mjs
|
ln -s ../../../../../../damper.mjs/damper.mjs kodorvan/edabil/system/public/js/modules/damper.mjs
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace kodorvan\neurobot\controllers;
|
namespace kodorvan\edabil\controllers;
|
||||||
|
|
||||||
// Files of the project
|
// Files of the project
|
||||||
use kodorvan\neurobot\views\templater,
|
use kodorvan\edabil\views\templater,
|
||||||
kodorvan\neurobot\models\core as models;
|
kodorvan\edabil\models\core as models;
|
||||||
|
|
||||||
// Library for languages support
|
// Library for languages support
|
||||||
use mirzaev\languages\language;
|
use mirzaev\languages\language;
|
||||||
@@ -20,7 +20,7 @@ use mirzaev\minimal\core as minimal,
|
|||||||
/**
|
/**
|
||||||
* Controllers core
|
* Controllers core
|
||||||
*
|
*
|
||||||
* @package kodorvan\neurobot\controllers
|
* @package kodorvan\edabil\controllers
|
||||||
*
|
*
|
||||||
* @param language $language Language
|
* @param language $language Language
|
||||||
* @param response $response Response
|
* @param response $response Response
|
||||||
@@ -2,10 +2,10 @@
|
|||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace kodorvan\neurobot\controllers;
|
namespace kodorvan\edabil\controllers;
|
||||||
|
|
||||||
// Files of the project
|
// Files of the project
|
||||||
use kodorvan\neurobot\controllers\core;
|
use kodorvan\edabil\controllers\core;
|
||||||
|
|
||||||
// Framework for PHP
|
// Framework for PHP
|
||||||
use mirzaev\minimal\http\enumerations\content,
|
use mirzaev\minimal\http\enumerations\content,
|
||||||
@@ -14,7 +14,7 @@ use mirzaev\minimal\http\enumerations\content,
|
|||||||
/**
|
/**
|
||||||
* Index
|
* Index
|
||||||
*
|
*
|
||||||
* @package kodorvan\neurobot\controllers
|
* @package kodorvan\edabil\controllers
|
||||||
*
|
*
|
||||||
* @param array $errors Registry of errors
|
* @param array $errors Registry of errors
|
||||||
*
|
*
|
||||||
55
kodorvan/edabil/system/localizations/english.php
Executable file
55
kodorvan/edabil/system/localizations/english.php
Executable file
@@ -0,0 +1,55 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Exit (success)
|
||||||
|
return [
|
||||||
|
// System
|
||||||
|
'svoboda' => 'Svoboda',
|
||||||
|
'kodorvan' => 'Kodorvan',
|
||||||
|
'edabil' => 'Edabil',
|
||||||
|
'empty' => 'Empty',
|
||||||
|
'yes' => 'Yes',
|
||||||
|
'no' => 'No',
|
||||||
|
|
||||||
|
// Main menu
|
||||||
|
'menu_title' => 'Main menu',
|
||||||
|
'menu_pipetc' => 'Just pipetc girls..',
|
||||||
|
|
||||||
|
// Account
|
||||||
|
'account_title' => 'Account',
|
||||||
|
'account_authorized_system' => 'Access to the system',
|
||||||
|
'account_authorized_settings' => 'Access to settings',
|
||||||
|
'account_authorized_system_accounts' => 'System access to accounts management',
|
||||||
|
'account_authorized_system_settings' => 'System access to the system settings',
|
||||||
|
'account_button_localizations' => 'Localizations',
|
||||||
|
'account_localization_create_failted_to_initialize_language' => 'Failed to initialize language',
|
||||||
|
|
||||||
|
// Language setting
|
||||||
|
'settings_select_language_title' => 'Select language',
|
||||||
|
'settings_select_language_description' => 'The selected language will be writed in your account settings',
|
||||||
|
'settings_language_update_success' => 'Language replaced:',
|
||||||
|
'settings_language_update_fail' => 'Failed to replace language',
|
||||||
|
|
||||||
|
// Language selection
|
||||||
|
'select_language_title' => 'Select language',
|
||||||
|
'select_language_description' => 'The selected language will be used in the current process',
|
||||||
|
'select_language_button_add' => 'Add a language',
|
||||||
|
|
||||||
|
// Settings
|
||||||
|
'settings_initialization_fail' => 'Не удалось инициализировать настройки аккаунта',
|
||||||
|
'settings_title' => 'Settings',
|
||||||
|
'settings_button_chat_memory_messages' => "Messages memory",
|
||||||
|
|
||||||
|
// Authorization
|
||||||
|
'not_authorized_system' => 'You do not have access to the system',
|
||||||
|
'not_authorized_messages' => 'You do not have access to send messages',
|
||||||
|
'not_authorized_settings' => 'You do not have access to the settings',
|
||||||
|
'not_authorized_system_settings' => 'You do not have access to the system settings',
|
||||||
|
'not_authorized_system_distributions' => 'You do not have access to distributions administration',
|
||||||
|
|
||||||
|
// Messages
|
||||||
|
'message_initialization_fail' => 'Не удалось инициализировать сообщение Телеграм',
|
||||||
|
'message_text_initialization_fail' => 'Не удалось инициализировать текст сообщения Телеграм',
|
||||||
|
|
||||||
|
// Other
|
||||||
|
'why_so_shroomious' => 'why so shroomious'
|
||||||
|
];
|
||||||
55
kodorvan/edabil/system/localizations/russian.php
Executable file
55
kodorvan/edabil/system/localizations/russian.php
Executable file
@@ -0,0 +1,55 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Выход (успех)
|
||||||
|
return [
|
||||||
|
// Система
|
||||||
|
'svoboda' => 'Свобода',
|
||||||
|
'kodorvan' => 'Кодорвань',
|
||||||
|
'edabil' => 'Едабил',
|
||||||
|
'empty' => 'Пусто',
|
||||||
|
'yes' => 'Да',
|
||||||
|
'no' => 'Нет',
|
||||||
|
|
||||||
|
// Главное меню
|
||||||
|
'menu_title' => 'Главное меню',
|
||||||
|
'menu_pipetc' => 'проста пипец девачки..',
|
||||||
|
|
||||||
|
// Аккаунт
|
||||||
|
'account_title' => 'Аккаунт',
|
||||||
|
'account_authorized_system' => 'Доступ к системе',
|
||||||
|
'account_authorized_messages' => 'Доступ к сообщениям',
|
||||||
|
'account_authorized_settings' => 'Доступ к изменению настроек',
|
||||||
|
'account_authorized_system_accounts' => 'Системный доступ к управлению аккаунтами',
|
||||||
|
'account_authorized_system_settings' => 'Системный доступ к системным настройкам',
|
||||||
|
'account_button_localizations' => 'Локализации',
|
||||||
|
|
||||||
|
// Настройки языка
|
||||||
|
'settings_select_language_title' => 'Выбери язык',
|
||||||
|
'settings_select_language_description' => 'Выбранный язык будет записан в настройки аккаунта',
|
||||||
|
'settings_language_update_success' => 'Язык заменён:',
|
||||||
|
'settings_language_update_fail' => 'Не удалось заменить язык',
|
||||||
|
|
||||||
|
// Выбор языка
|
||||||
|
'select_language_title' => 'Выбери язык',
|
||||||
|
'select_language_description' => 'Выбранный язык будет использован в текущем процессе',
|
||||||
|
'select_language_button_add' => 'Добавить язык',
|
||||||
|
|
||||||
|
// Настройки
|
||||||
|
'settings_initialization_fail' => 'Не удалось инициализировать настройки аккаунта',
|
||||||
|
'settings_title' => 'Настройки',
|
||||||
|
|
||||||
|
// Авторизация
|
||||||
|
'not_authorized_system' => 'У тебя нет доступа к системе',
|
||||||
|
'not_authorized_messages' => 'У тебя нет доступа к сообщениям',
|
||||||
|
'not_authorized_joins' => 'У тебя нет доступа к вступлениям',
|
||||||
|
'not_authorized_settings' => 'У тебя нет доступа к настройкам',
|
||||||
|
'not_authorized_system_settings' => 'У тебя нет доступа к системным настройкам',
|
||||||
|
'not_authorized_system_distributions' => 'У тебя нет доступа к администрированию дистрибутивов',
|
||||||
|
|
||||||
|
// Сообщения
|
||||||
|
'message_initialization_fail' => 'Не удалось инициализировать сообщение Телеграм',
|
||||||
|
'message_text_initialization_fail' => 'Не удалось инициализировать текст сообщения Телеграм',
|
||||||
|
|
||||||
|
// Прочее
|
||||||
|
'why_so_shroomious' => 'почему такой грибъёзный'
|
||||||
|
];
|
||||||
@@ -2,16 +2,16 @@
|
|||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace kodorvan\neurobot\models;
|
namespace kodorvan\edabil\models;
|
||||||
|
|
||||||
// Files of the project
|
// Files of the project
|
||||||
use kodorvan\neurobot\models\core,
|
use kodorvan\edabil\models\core,
|
||||||
kodorvan\neurobot\models\authorizations,
|
kodorvan\edabil\models\authorizations,
|
||||||
kodorvan\neurobot\models\chat,
|
kodorvan\edabil\models\chat,
|
||||||
kodorvan\neurobot\models\settings,
|
kodorvan\edabil\models\settings,
|
||||||
kodorvan\neurobot\models\tariff,
|
kodorvan\edabil\models\tariff,
|
||||||
kodorvan\neurobot\models\code,
|
kodorvan\edabil\models\code,
|
||||||
kodorvan\neurobot\models\enumerations\tariff as tariff_type;
|
kodorvan\edabil\models\enumerations\tariff as tariff_type;
|
||||||
|
|
||||||
// The library for languages support
|
// The library for languages support
|
||||||
use mirzaev\languages\language;
|
use mirzaev\languages\language;
|
||||||
@@ -40,7 +40,7 @@ use Exception as exception,
|
|||||||
/**
|
/**
|
||||||
* Account
|
* Account
|
||||||
*
|
*
|
||||||
* @package kodorvan\neurobot\models
|
* @package kodorvan\edabil\models
|
||||||
*
|
*
|
||||||
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
||||||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||||
@@ -91,9 +91,6 @@ final class account extends core implements record_interface
|
|||||||
new column('language', type::string, ['length' => 2]),
|
new column('language', type::string, ['length' => 2]),
|
||||||
/* new column('currency', type::string, ['length' => 3]), */
|
/* new column('currency', type::string, ['length' => 3]), */
|
||||||
new column('robot', type::char),
|
new column('robot', type::char),
|
||||||
new column('chat', type::long_long_unsigned),
|
|
||||||
new column('tariff', type::long_long_unsigned),
|
|
||||||
new column('welcome', type::char),
|
|
||||||
new column('active', type::char),
|
new column('active', type::char),
|
||||||
new column('updated', type::integer_unsigned),
|
new column('updated', type::integer_unsigned),
|
||||||
new column('created', type::integer_unsigned)
|
new column('created', type::integer_unsigned)
|
||||||
@@ -302,10 +299,6 @@ final class account extends core implements record_interface
|
|||||||
$name_second,
|
$name_second,
|
||||||
$language instanceof language ? $language->name : (string) $language,
|
$language instanceof language ? $language->name : (string) $language,
|
||||||
(int) $robot,
|
(int) $robot,
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
/* */
|
|
||||||
(int) $active,
|
(int) $active,
|
||||||
svoboda::timestamp(),
|
svoboda::timestamp(),
|
||||||
svoboda::timestamp()
|
svoboda::timestamp()
|
||||||
@@ -415,192 +408,4 @@ final class account extends core implements record_interface
|
|||||||
// Exit (fail)
|
// Exit (fail)
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Chat
|
|
||||||
*
|
|
||||||
* Search for the account chat (or create)
|
|
||||||
*
|
|
||||||
* @return chat|null The account chat
|
|
||||||
*/
|
|
||||||
public function chat(): ?chat
|
|
||||||
{
|
|
||||||
// Search for the account chat
|
|
||||||
$chat = new chat()->read(filter: fn(record $record) => $record->identifier === $this->record->chat && $record->active === 1);
|
|
||||||
|
|
||||||
if ($chat instanceof chat) {
|
|
||||||
// Found the account chat
|
|
||||||
|
|
||||||
// Deserializing the chat
|
|
||||||
$chat->deserialize();
|
|
||||||
|
|
||||||
// Exit (success)
|
|
||||||
return $chat;
|
|
||||||
} else {
|
|
||||||
// Not found the account chat
|
|
||||||
|
|
||||||
// Initializing the chat model
|
|
||||||
$chat = new chat();
|
|
||||||
|
|
||||||
// @todo проверку на то что чат создан добавить здесь и при регистрации аккаунта, затем сделать то же самое для тарифов и прочего
|
|
||||||
|
|
||||||
// Creating the account chat
|
|
||||||
$this->chat = $chat->write(account: $this->identifier, network: NETWORK_DEFAULT);
|
|
||||||
|
|
||||||
// Serializing the account
|
|
||||||
$this->serialize();
|
|
||||||
|
|
||||||
// Writing the record into the database
|
|
||||||
$record = $this->update();
|
|
||||||
|
|
||||||
// Deserializing the account
|
|
||||||
$this->deserialize();
|
|
||||||
|
|
||||||
// Search for the account chat
|
|
||||||
$chat = new chat()->read(filter: fn(record $record) => $record->identifier === $this->record->chat && $record->active === 1);
|
|
||||||
|
|
||||||
if ($chat instanceof chat) {
|
|
||||||
// Found the account chat
|
|
||||||
|
|
||||||
// Deserializing the chat
|
|
||||||
$chat->deserialize();
|
|
||||||
|
|
||||||
// Exit (success)
|
|
||||||
return $chat;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Exit (fail)
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Tariff
|
|
||||||
*
|
|
||||||
* Search for the account tariff
|
|
||||||
*
|
|
||||||
* @return tariff|null The account tariff
|
|
||||||
*/
|
|
||||||
public function tariff(): ?tariff
|
|
||||||
{
|
|
||||||
// Search for the account tariff
|
|
||||||
$tariff = new tariff()->read(
|
|
||||||
filter: fn(record $record) =>
|
|
||||||
$record->identifier === $this->record->tariff
|
|
||||||
&& $record->account === $this->record->identifier
|
|
||||||
&& $record->active === 1
|
|
||||||
&& $record->used <= $record->tokens
|
|
||||||
);
|
|
||||||
|
|
||||||
if ($tariff instanceof tariff) {
|
|
||||||
// Found the account tariff
|
|
||||||
|
|
||||||
// Deserializing the tariff
|
|
||||||
$tariff->deserialize();
|
|
||||||
|
|
||||||
// Exit (success)
|
|
||||||
return $tariff;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Exit (fail)
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Code
|
|
||||||
*
|
|
||||||
* Activate the tariff activation code
|
|
||||||
*
|
|
||||||
* @param string $code The code
|
|
||||||
*
|
|
||||||
* @return bool Is the code was activated?
|
|
||||||
*/
|
|
||||||
public function code(string $code): bool
|
|
||||||
{
|
|
||||||
// Search for the code
|
|
||||||
$record = new code()->database->read(
|
|
||||||
filter: fn(record $record) => $record->value === $code && $record->activated === 0 && $record->account === 0,
|
|
||||||
update: function (record &$record) {
|
|
||||||
$record->account = $this->record->identifier;
|
|
||||||
$record->activated = 1;
|
|
||||||
$record->updated = svoboda::timestamp();
|
|
||||||
},
|
|
||||||
amount: 1
|
|
||||||
)[0] ?? null;
|
|
||||||
|
|
||||||
if ($record instanceof record) {
|
|
||||||
// Found and activated the code
|
|
||||||
|
|
||||||
// Initializing the code instance
|
|
||||||
$code = new code($record);
|
|
||||||
|
|
||||||
// Writing the code record into the code instance
|
|
||||||
$code->record = $record;
|
|
||||||
|
|
||||||
// Initializing the "activated" registry
|
|
||||||
$activated = false;
|
|
||||||
|
|
||||||
if ($code->tariff !== 0) {
|
|
||||||
// The code has a tariff
|
|
||||||
|
|
||||||
// Search for the tariff
|
|
||||||
$tariff = new tariff()->database->read(
|
|
||||||
filter: fn(record $record) => $record->identifier === $code->tariff,
|
|
||||||
update: function (record &$record) {
|
|
||||||
$record->account = $this->record->identifier;
|
|
||||||
$record->active = 1;
|
|
||||||
$record->updated = svoboda::timestamp();
|
|
||||||
},
|
|
||||||
amount: 1
|
|
||||||
)[0] ?? null;
|
|
||||||
|
|
||||||
if ($tariff instanceof record) {
|
|
||||||
// Found and connected the tariff
|
|
||||||
|
|
||||||
// Writing the tariff into the account (select the active tariff)
|
|
||||||
$this->record->tariff = $tariff->identifier;
|
|
||||||
|
|
||||||
// Serializing the account data
|
|
||||||
$this->serialize();
|
|
||||||
|
|
||||||
// Writing the updated account unto the database
|
|
||||||
$this->update();
|
|
||||||
|
|
||||||
// Deserializing the account data
|
|
||||||
$this->deserialize();
|
|
||||||
|
|
||||||
// Writing the "activated" registry
|
|
||||||
$activated = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($code->bundle !== 0) {
|
|
||||||
// The code has a bundle
|
|
||||||
|
|
||||||
// Search for the bundle
|
|
||||||
$bundle = new bundle()->database->read(
|
|
||||||
filter: fn(record $record) => $record->identifier === $code->bundle,
|
|
||||||
update: function (record &$record) {
|
|
||||||
$record->account = $this->recoed->identifier;
|
|
||||||
$record->updated = svoboda::timestamp();
|
|
||||||
},
|
|
||||||
amount: 1
|
|
||||||
)[0] ?? null;
|
|
||||||
|
|
||||||
if ($bundle instanceof record) {
|
|
||||||
// Found and connected the bundle
|
|
||||||
|
|
||||||
// Writing the "activated" registry
|
|
||||||
$activated = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Exit (success/fail)
|
|
||||||
return $activated;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Exit (fail)
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -2,10 +2,10 @@
|
|||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace kodorvan\neurobot\models;
|
namespace kodorvan\edabil\models;
|
||||||
|
|
||||||
// Files of the project
|
// Files of the project
|
||||||
use kodorvan\neurobot\models\core;
|
use kodorvan\edabil\models\core;
|
||||||
|
|
||||||
// Svoboda time
|
// Svoboda time
|
||||||
use svoboda\time\statement as svoboda;
|
use svoboda\time\statement as svoboda;
|
||||||
@@ -31,7 +31,7 @@ use Exception as exception,
|
|||||||
/**
|
/**
|
||||||
* Authorizations
|
* Authorizations
|
||||||
*
|
*
|
||||||
* @package kodorvan\neurobot\models
|
* @package kodorvan\edabil\models
|
||||||
*
|
*
|
||||||
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
||||||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||||
@@ -79,24 +79,6 @@ final class authorizations extends core implements record_interface
|
|||||||
new column('system', type::char),
|
new column('system', type::char),
|
||||||
new column('settings', type::char),
|
new column('settings', type::char),
|
||||||
new column('chat', type::char),
|
new column('chat', type::char),
|
||||||
new column('gpt_3_5_turbo', type::char),
|
|
||||||
new column('gpt_4_1', type::char),
|
|
||||||
new column('gpt_4_1_mini', type::char),
|
|
||||||
new column('gpt_4_1_nano', type::char),
|
|
||||||
new column('o4_mini', type::char),
|
|
||||||
new column('gpt_5', type::char),
|
|
||||||
new column('gpt_5_mini', type::char),
|
|
||||||
new column('gpt_5_nano', type::char),
|
|
||||||
new column('gpt_5_pro', type::char),
|
|
||||||
new column('gpt_5_1', type::char),
|
|
||||||
new column('gpt_5_2', type::char),
|
|
||||||
new column('sora_2', type::char),
|
|
||||||
new column('sora_2_pro', type::char),
|
|
||||||
/* new column('sora_2_pro_hight', type::char), */
|
|
||||||
new column('gpt_image_1', type::char),
|
|
||||||
new column('gpt_image_1_mini', type::char),
|
|
||||||
/* new column('gpt_image_1_text', type::char),
|
|
||||||
new column('gpt_image_1_text_mini', type::char), */
|
|
||||||
new column('system_accounts', type::char),
|
new column('system_accounts', type::char),
|
||||||
new column('system_settings', type::char),
|
new column('system_settings', type::char),
|
||||||
new column('active', type::char),
|
new column('active', type::char),
|
||||||
@@ -116,21 +98,6 @@ final class authorizations extends core implements record_interface
|
|||||||
* @param int $system
|
* @param int $system
|
||||||
* @param int $settings
|
* @param int $settings
|
||||||
* @param int $chat
|
* @param int $chat
|
||||||
* @param int $gpt_3_5_turbo
|
|
||||||
* @param int $gpt_4_1
|
|
||||||
* @param int $gpt_4_1_mini
|
|
||||||
* @param int $gpt_4_1_nano
|
|
||||||
* @param int $o4_mini
|
|
||||||
* @param int $gpt_5
|
|
||||||
* @param int $gpt_5_mini
|
|
||||||
* @param int $gpt_5_nano
|
|
||||||
* @param int $gpt_5_pro
|
|
||||||
* @param int $gpt_5_1
|
|
||||||
* @param int $gpt_5_2
|
|
||||||
* @param int $sora_2
|
|
||||||
* @param int $sora_2_pro
|
|
||||||
* @param int $gpt_image_1
|
|
||||||
* @param int $gpt_image_1_mini
|
|
||||||
* @param int $system_accounts
|
* @param int $system_accounts
|
||||||
* @param int $system_settings
|
* @param int $system_settings
|
||||||
* @param bool $active Is the record active?
|
* @param bool $active Is the record active?
|
||||||
@@ -142,21 +109,6 @@ final class authorizations extends core implements record_interface
|
|||||||
int $system = 1,
|
int $system = 1,
|
||||||
int $settings = 1,
|
int $settings = 1,
|
||||||
int $chat = 1,
|
int $chat = 1,
|
||||||
int $gpt_3_5_turbo = 0,
|
|
||||||
int $gpt_4_1 = 0,
|
|
||||||
int $gpt_4_1_mini = 0,
|
|
||||||
int $gpt_4_1_nano = 0,
|
|
||||||
int $o4_mini = 0,
|
|
||||||
int $gpt_5 = 1,
|
|
||||||
int $gpt_5_mini = 0,
|
|
||||||
int $gpt_5_nano = 0,
|
|
||||||
int $gpt_5_pro = 1,
|
|
||||||
int $gpt_5_1 = 1,
|
|
||||||
int $gpt_5_2 = 1,
|
|
||||||
int $sora_2 = 0,
|
|
||||||
int $sora_2_pro = 0,
|
|
||||||
int $gpt_image_1 = 0,
|
|
||||||
int $gpt_image_1_mini = 0,
|
|
||||||
int $system_accounts = 0,
|
int $system_accounts = 0,
|
||||||
int $system_settings = 0,
|
int $system_settings = 0,
|
||||||
bool $active = true,
|
bool $active = true,
|
||||||
@@ -168,21 +120,6 @@ final class authorizations extends core implements record_interface
|
|||||||
$system,
|
$system,
|
||||||
$settings,
|
$settings,
|
||||||
$chat,
|
$chat,
|
||||||
$gpt_3_5_turbo,
|
|
||||||
$gpt_4_1,
|
|
||||||
$gpt_4_1_mini,
|
|
||||||
$gpt_4_1_nano,
|
|
||||||
$o4_mini,
|
|
||||||
$gpt_5,
|
|
||||||
$gpt_5_mini,
|
|
||||||
$gpt_5_nano,
|
|
||||||
$gpt_5_pro,
|
|
||||||
$gpt_5_1,
|
|
||||||
$gpt_5_2,
|
|
||||||
$sora_2,
|
|
||||||
$sora_2_pro,
|
|
||||||
$gpt_image_1,
|
|
||||||
$gpt_image_1_mini,
|
|
||||||
$system_accounts,
|
$system_accounts,
|
||||||
$system_settings,
|
$system_settings,
|
||||||
(int) $active,
|
(int) $active,
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace kodorvan\neurobot\models;
|
namespace kodorvan\edabil\models;
|
||||||
|
|
||||||
// Framework for PHP
|
// Framework for PHP
|
||||||
use mirzaev\minimal\model,
|
use mirzaev\minimal\model,
|
||||||
@@ -14,7 +14,7 @@ use exception;
|
|||||||
/**
|
/**
|
||||||
* Models core
|
* Models core
|
||||||
*
|
*
|
||||||
* @package kodorvan\neurobot\models
|
* @package kodorvan\edabil\models
|
||||||
*
|
*
|
||||||
* @method void __construct() Constructor
|
* @method void __construct() Constructor
|
||||||
*
|
*
|
||||||
@@ -2,10 +2,10 @@
|
|||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace kodorvan\neurobot\models;
|
namespace kodorvan\edabil\models;
|
||||||
|
|
||||||
// Files of the project
|
// Files of the project
|
||||||
use kodorvan\neurobot\models\core;
|
use kodorvan\edabil\models\core;
|
||||||
|
|
||||||
// Baza database
|
// Baza database
|
||||||
use mirzaev\baza\database,
|
use mirzaev\baza\database,
|
||||||
@@ -26,7 +26,7 @@ use ArrayAccess as array_access,
|
|||||||
/**
|
/**
|
||||||
* Localization
|
* Localization
|
||||||
*
|
*
|
||||||
* @package kodorvan\neurobot\models
|
* @package kodorvan\edabil\models
|
||||||
*
|
*
|
||||||
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
||||||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||||
@@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace kodorvan\neurobot\models;
|
namespace kodorvan\edabil\models;
|
||||||
|
|
||||||
// Files of the project
|
// Files of the project
|
||||||
use kodorvan\neurobot\models\core,
|
use kodorvan\edabil\models\core,
|
||||||
kodorvan\neurobot\models\tariff,
|
kodorvan\edabil\models\tariff,
|
||||||
kodorvan\neurobot\models\enumerations\tariff as tariff_type,
|
kodorvan\edabil\models\enumerations\tariff as tariff_type,
|
||||||
kodorvan\neurobot\models\enumerations\acquiring as acquiring;
|
kodorvan\edabil\models\enumerations\acquiring as acquiring;
|
||||||
|
|
||||||
// Svoboda time
|
// Svoboda time
|
||||||
use svoboda\time\statement as svoboda;
|
use svoboda\time\statement as svoboda;
|
||||||
@@ -20,17 +20,10 @@ use mirzaev\baza\database,
|
|||||||
mirzaev\baza\enumerations\encoding,
|
mirzaev\baza\enumerations\encoding,
|
||||||
mirzaev\baza\enumerations\type;
|
mirzaev\baza\enumerations\type;
|
||||||
|
|
||||||
// Library for neural networks support
|
|
||||||
use mirzaev\neuroseti\network,
|
|
||||||
mirzaev\neuroseti\api;
|
|
||||||
|
|
||||||
// Active Record pattern
|
// Active Record pattern
|
||||||
use mirzaev\record\interfaces\record as record_interface,
|
use mirzaev\record\interfaces\record as record_interface,
|
||||||
mirzaev\record\traits\record as record_trait;
|
mirzaev\record\traits\record as record_trait;
|
||||||
|
|
||||||
// Port of the fast BPE tokeniser for OpenAI
|
|
||||||
use Yethee\Tiktoken\EncoderProvider as tiktoken;
|
|
||||||
|
|
||||||
// Built-in libraries
|
// Built-in libraries
|
||||||
use Exception as exception,
|
use Exception as exception,
|
||||||
RuntimeException as exception_runtime;
|
RuntimeException as exception_runtime;
|
||||||
@@ -38,7 +31,7 @@ use Exception as exception,
|
|||||||
/**
|
/**
|
||||||
* Settings
|
* Settings
|
||||||
*
|
*
|
||||||
* @package kodorvan\neurobot\models
|
* @package kodorvan\edabil\models
|
||||||
*
|
*
|
||||||
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
||||||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||||
@@ -76,7 +69,6 @@ final class settings extends core implements record_interface
|
|||||||
->columns(
|
->columns(
|
||||||
new column('identifier', type::long_long_unsigned),
|
new column('identifier', type::long_long_unsigned),
|
||||||
new column('account', type::long_long_unsigned),
|
new column('account', type::long_long_unsigned),
|
||||||
new column('chat_memory_messages', type::integer_unsigned),
|
|
||||||
new column('active', type::char),
|
new column('active', type::char),
|
||||||
new column('updated', type::integer_unsigned),
|
new column('updated', type::integer_unsigned),
|
||||||
new column('created', type::integer_unsigned)
|
new column('created', type::integer_unsigned)
|
||||||
@@ -91,20 +83,17 @@ final class settings extends core implements record_interface
|
|||||||
* Write
|
* Write
|
||||||
*
|
*
|
||||||
* @param int $account The account identifier (0 for disable)
|
* @param int $account The account identifier (0 for disable)
|
||||||
* @param int $chat_memory_messages Amout messages to send into a neural network
|
|
||||||
* @param int $active Is the record active?
|
* @param int $active Is the record active?
|
||||||
*
|
*
|
||||||
* @return record|false The record, if created
|
* @return record|false The record, if created
|
||||||
*/
|
*/
|
||||||
public function write(
|
public function write(
|
||||||
int $account = 0,
|
int $account = 0,
|
||||||
int $chat_memory_messages = 3,
|
|
||||||
bool $active = true,
|
bool $active = true,
|
||||||
): record|false {
|
): record|false {
|
||||||
$record = $this->database->record(
|
$record = $this->database->record(
|
||||||
$this->database->count() + 1,
|
$this->database->count() + 1,
|
||||||
$account,
|
$account,
|
||||||
$chat_memory_messages,
|
|
||||||
(int) $active,
|
(int) $active,
|
||||||
svoboda::timestamp(),
|
svoboda::timestamp(),
|
||||||
svoboda::timestamp()
|
svoboda::timestamp()
|
||||||
@@ -2,14 +2,14 @@
|
|||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace kodorvan\neurobot\models\telegram\commands;
|
namespace kodorvan\edabil\models\telegram\commands;
|
||||||
|
|
||||||
// Files of the project
|
// Files of the project
|
||||||
use kodorvan\neurobot\models\core,
|
use kodorvan\edabil\models\core,
|
||||||
kodorvan\neurobot\models\account as model,
|
kodorvan\edabil\models\account as model,
|
||||||
kodorvan\neurobot\models\settings,
|
kodorvan\edabil\models\settings,
|
||||||
kodorvan\neurobot\models\localization,
|
kodorvan\edabil\models\localization,
|
||||||
kodorvan\neurobot\models\telegram\processes\language\select as process_language_select;
|
kodorvan\edabil\models\telegram\processes\language\select as process_language_select;
|
||||||
|
|
||||||
// Library for languages support
|
// Library for languages support
|
||||||
use mirzaev\languages\language;
|
use mirzaev\languages\language;
|
||||||
@@ -29,7 +29,7 @@ use SergiX44\Nutgram\Nutgram as telegram,
|
|||||||
/**
|
/**
|
||||||
* Command: account
|
* Command: account
|
||||||
*
|
*
|
||||||
* @package kodorvan\neurobot\models\telegram\commands
|
* @package kodorvan\edabil\models\telegram\commands
|
||||||
*
|
*
|
||||||
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
||||||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||||
@@ -2,14 +2,14 @@
|
|||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace kodorvan\neurobot\models\telegram\commands;
|
namespace kodorvan\edabil\models\telegram\commands;
|
||||||
|
|
||||||
// Files of the project
|
// Files of the project
|
||||||
use kodorvan\neurobot\models\core,
|
use kodorvan\edabil\models\core,
|
||||||
kodorvan\neurobot\models\account,
|
kodorvan\edabil\models\account,
|
||||||
kodorvan\neurobot\models\settings,
|
kodorvan\edabil\models\settings,
|
||||||
kodorvan\neurobot\models\localization,
|
kodorvan\edabil\models\localization,
|
||||||
kodorvan\neurobot\models\telegram\processes\language\select as process_language_select;
|
kodorvan\edabil\models\telegram\processes\language\select as process_language_select;
|
||||||
|
|
||||||
// Library for languages support
|
// Library for languages support
|
||||||
use mirzaev\languages\language as type;
|
use mirzaev\languages\language as type;
|
||||||
@@ -29,7 +29,7 @@ use SergiX44\Nutgram\Nutgram as telegram,
|
|||||||
/**
|
/**
|
||||||
* Command: language
|
* Command: language
|
||||||
*
|
*
|
||||||
* @package kodorvan\neurobot\models\telegram\commands
|
* @package kodorvan\edabil\models\telegram\commands
|
||||||
*
|
*
|
||||||
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
||||||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||||
@@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace kodorvan\neurobot\models\telegram\commands;
|
namespace kodorvan\edabil\models\telegram\commands;
|
||||||
|
|
||||||
// Files of the project
|
// Files of the project
|
||||||
use kodorvan\neurobot\models\core,
|
use kodorvan\edabil\models\core,
|
||||||
kodorvan\neurobot\models\account,
|
kodorvan\edabil\models\account,
|
||||||
kodorvan\neurobot\models\settings,
|
kodorvan\edabil\models\settings,
|
||||||
kodorvan\neurobot\models\telegram\processes\language\select as process_language_select;
|
kodorvan\edabil\models\telegram\processes\language\select as process_language_select;
|
||||||
|
|
||||||
// Library for languages support
|
// Library for languages support
|
||||||
use mirzaev\languages\language;
|
use mirzaev\languages\language;
|
||||||
@@ -26,7 +26,7 @@ use SergiX44\Nutgram\Nutgram as telegram,
|
|||||||
/**
|
/**
|
||||||
* Command: society
|
* Command: society
|
||||||
*
|
*
|
||||||
* @package kodorvan\neurobot\models\telegram\commands
|
* @package kodorvan\edabil\models\telegram\commands
|
||||||
*
|
*
|
||||||
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
||||||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||||
@@ -2,15 +2,14 @@
|
|||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace kodorvan\neurobot\models\telegram\commands;
|
namespace kodorvan\edabil\models\telegram\commands;
|
||||||
|
|
||||||
// Files of the project
|
// Files of the project
|
||||||
use kodorvan\neurobot\models\core,
|
use kodorvan\edabil\models\core,
|
||||||
kodorvan\neurobot\models\account,
|
kodorvan\edabil\models\account,
|
||||||
kodorvan\neurobot\models\settings,
|
kodorvan\edabil\models\settings,
|
||||||
kodorvan\neurobot\models\tariff,
|
kodorvan\edabil\models\localization,
|
||||||
kodorvan\neurobot\models\localization,
|
kodorvan\edabil\models\telegram\processes\language\select as process_language_select;
|
||||||
kodorvan\neurobot\models\telegram\processes\language\select as process_language_select;
|
|
||||||
|
|
||||||
// Library for languages support
|
// Library for languages support
|
||||||
use mirzaev\languages\language;
|
use mirzaev\languages\language;
|
||||||
@@ -30,7 +29,7 @@ use SergiX44\Nutgram\Nutgram as telegram,
|
|||||||
/**
|
/**
|
||||||
* Command: start
|
* Command: start
|
||||||
*
|
*
|
||||||
* @package kodorvan\neurobot\models\telegram\commands
|
* @package kodorvan\edabil\models\telegram\commands
|
||||||
*
|
*
|
||||||
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
||||||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||||
@@ -83,60 +82,26 @@ final class start extends command
|
|||||||
// Initializing the account
|
// Initializing the account
|
||||||
$account = $robot->get('account');
|
$account = $robot->get('account');
|
||||||
|
|
||||||
// Initializing the account tariff
|
|
||||||
$tariff = $account->tariff();
|
|
||||||
|
|
||||||
// Declaring the tariff button
|
|
||||||
$button_tariff = [];
|
|
||||||
|
|
||||||
if ($tariff instanceof tariff) {
|
|
||||||
// Initialized the account tariff
|
|
||||||
|
|
||||||
// Initializing the tariff button
|
|
||||||
$button_tariff = button::make(
|
|
||||||
text: '🔐 ' . $tariff->type->label($language) . " ($tariff->used/$tariff->tokens)",
|
|
||||||
callback_data: 'tariffs'
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
// Not initialized the account tariff
|
|
||||||
|
|
||||||
// Initializing the tariff button
|
|
||||||
$button_tariff = button::make(
|
|
||||||
text: "⚠️ $localization->menu_tariff_empty",
|
|
||||||
callback_data: 'tariffs'
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Initializing the account chat
|
|
||||||
$chat = $account->chat();
|
|
||||||
|
|
||||||
// Initializing the keyboard
|
// Initializing the keyboard
|
||||||
$keyboard = keyboard::make();
|
$keyboard = keyboard::make();
|
||||||
|
|
||||||
// Writing the row into the keyboard
|
// Writing the row into the keyboard
|
||||||
$keyboard->addRow(
|
$keyboard->addRow(
|
||||||
$button_tariff,
|
|
||||||
button::make(
|
button::make(
|
||||||
text: '🧠 ' . $chat->network->label(),
|
text: '🧠 Bebra',
|
||||||
callback_data: 'network'
|
callback_data: 'bebra'
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
// Writing the row into the keyboard
|
|
||||||
$keyboard->addRow(
|
|
||||||
button::make(
|
|
||||||
text: '⚙️ ' . $localization['menu_button_settings'],
|
|
||||||
callback_data: 'settings'
|
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
$robot->sendMessage(
|
$robot->sendMessage(
|
||||||
text: implode(
|
text: implode(
|
||||||
"\n\n",
|
"\n\n",
|
||||||
[
|
array_filter(
|
||||||
"📋 *$localization->menu_title*",
|
[
|
||||||
$localization->menu_howto
|
"📋 *$localization->menu_title*",
|
||||||
]
|
unmarkdown($localization->menu_pipetc)
|
||||||
|
]
|
||||||
|
)
|
||||||
),
|
),
|
||||||
parse_mode: mode::MARKDOWN,
|
parse_mode: mode::MARKDOWN,
|
||||||
disable_notification: true,
|
disable_notification: true,
|
||||||
@@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace kodorvan\neurobot\models\telegram\middlewares;
|
namespace kodorvan\edabil\models\telegram\middlewares;
|
||||||
|
|
||||||
// Files of the project
|
// Files of the project
|
||||||
use kodorvan\neurobot\models\account as model,
|
use kodorvan\edabil\models\account as model,
|
||||||
kodorvan\neurobot\models\authorizations;
|
kodorvan\edabil\models\authorizations;
|
||||||
|
|
||||||
// The library for languages support
|
// The library for languages support
|
||||||
use mirzaev\languages\language;
|
use mirzaev\languages\language;
|
||||||
@@ -24,7 +24,7 @@ use Error as error;
|
|||||||
/**
|
/**
|
||||||
* Telegram middleware: account
|
* Telegram middleware: account
|
||||||
*
|
*
|
||||||
* @package kodorvan\neurobot\models\telegram\middlewares
|
* @package kodorvan\edabil\models\telegram\middlewares
|
||||||
*
|
*
|
||||||
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
||||||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||||
@@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace kodorvan\neurobot\models\telegram\middlewares;
|
namespace kodorvan\edabil\models\telegram\middlewares;
|
||||||
|
|
||||||
// Files of the project
|
// Files of the project
|
||||||
use kodorvan\neurobot\models\account,
|
use kodorvan\edabil\models\account,
|
||||||
kodorvan\neurobot\models\authorizations as model;
|
kodorvan\edabil\models\authorizations as model;
|
||||||
|
|
||||||
// The library for languages support
|
// The library for languages support
|
||||||
use mirzaev\languages\language;
|
use mirzaev\languages\language;
|
||||||
@@ -24,7 +24,7 @@ use Error as error;
|
|||||||
/**
|
/**
|
||||||
* Telegram middleware: authorizations
|
* Telegram middleware: authorizations
|
||||||
*
|
*
|
||||||
* @package kodorvan\neurobot\models\telegram\middlewares
|
* @package kodorvan\edabil\models\telegram\middlewares
|
||||||
*
|
*
|
||||||
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
||||||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||||
@@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace kodorvan\neurobot\models\telegram\middlewares;
|
namespace kodorvan\edabil\models\telegram\middlewares;
|
||||||
|
|
||||||
// Files of the project
|
// Files of the project
|
||||||
use kodorvan\neurobot\models\account,
|
use kodorvan\edabil\models\account,
|
||||||
kodorvan\neurobot\models\authorizations;
|
kodorvan\edabil\models\authorizations;
|
||||||
|
|
||||||
// The library for languages support
|
// The library for languages support
|
||||||
use mirzaev\languages\language as type;
|
use mirzaev\languages\language as type;
|
||||||
@@ -24,7 +24,7 @@ use Error as error;
|
|||||||
/**
|
/**
|
||||||
* Telegram middleware: language
|
* Telegram middleware: language
|
||||||
*
|
*
|
||||||
* @package kodorvan\neurobot\models\telegram\middlewares
|
* @package kodorvan\edabil\models\telegram\middlewares
|
||||||
*
|
*
|
||||||
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
||||||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||||
@@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace kodorvan\neurobot\models\telegram\middlewares;
|
namespace kodorvan\edabil\models\telegram\middlewares;
|
||||||
|
|
||||||
// Files of the project
|
// Files of the project
|
||||||
use kodorvan\neurobot\models\core,
|
use kodorvan\edabil\models\core,
|
||||||
kodorvan\neurobot\models\account,
|
kodorvan\edabil\models\account,
|
||||||
kodorvan\neurobot\models\localization as model,
|
kodorvan\edabil\models\localization as model,
|
||||||
kodorvan\neurobot\models\authorizations;
|
kodorvan\edabil\models\authorizations;
|
||||||
|
|
||||||
// The library for languages support
|
// The library for languages support
|
||||||
use mirzaev\languages\language;
|
use mirzaev\languages\language;
|
||||||
@@ -27,7 +27,7 @@ use Exception as exception,
|
|||||||
/**
|
/**
|
||||||
* Telegram middleware: localization
|
* Telegram middleware: localization
|
||||||
*
|
*
|
||||||
* @package kodorvan\neurobot\models\telegram\middlewares
|
* @package kodorvan\edabil\models\telegram\middlewares
|
||||||
*
|
*
|
||||||
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
||||||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||||
@@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace kodorvan\neurobot\models\telegram\middlewares;
|
namespace kodorvan\edabil\models\telegram\middlewares;
|
||||||
|
|
||||||
// Files of the project
|
// Files of the project
|
||||||
use kodorvan\neurobot\models\core,
|
use kodorvan\edabil\models\core,
|
||||||
kodorvan\neurobot\models\account,
|
kodorvan\edabil\models\account,
|
||||||
kodorvan\neurobot\models\localization,
|
kodorvan\edabil\models\localization,
|
||||||
kodorvan\neurobot\models\authorizations;
|
kodorvan\edabil\models\authorizations;
|
||||||
|
|
||||||
// The library for languages support
|
// The library for languages support
|
||||||
use mirzaev\languages\language;
|
use mirzaev\languages\language;
|
||||||
@@ -26,7 +26,7 @@ use Error as error;
|
|||||||
/**
|
/**
|
||||||
* Telegram middleware: language
|
* Telegram middleware: language
|
||||||
*
|
*
|
||||||
* @package kodorvan\neurobot\models\telegram\middlewares
|
* @package kodorvan\edabil\models\telegram\middlewares
|
||||||
*
|
*
|
||||||
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
||||||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||||
@@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace kodorvan\neurobot\models\telegram\middlewares\system;
|
namespace kodorvan\edabil\models\telegram\middlewares\system;
|
||||||
|
|
||||||
// Files of the project
|
// Files of the project
|
||||||
use kodorvan\neurobot\models\account,
|
use kodorvan\edabil\models\account,
|
||||||
kodorvan\neurobot\models\authorizations;
|
kodorvan\edabil\models\authorizations;
|
||||||
|
|
||||||
// The library for languages support
|
// The library for languages support
|
||||||
use mirzaev\languages\language;
|
use mirzaev\languages\language;
|
||||||
@@ -24,7 +24,7 @@ use Error as error;
|
|||||||
/**
|
/**
|
||||||
* Telegram middleware: system settings
|
* Telegram middleware: system settings
|
||||||
*
|
*
|
||||||
* @package kodorvan\neurobot\models\telegram\middlewares\system
|
* @package kodorvan\edabil\models\telegram\middlewares\system
|
||||||
*
|
*
|
||||||
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
||||||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||||
@@ -2,10 +2,10 @@
|
|||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace kodorvan\neurobot\models\telegram\processes\language;
|
namespace kodorvan\edabil\models\telegram\processes\language;
|
||||||
|
|
||||||
// Files of the project
|
// Files of the project
|
||||||
use kodorvan\neurobot\models\core;
|
use kodorvan\edabil\models\core;
|
||||||
|
|
||||||
// Library for languages support
|
// Library for languages support
|
||||||
use mirzaev\languages\language;
|
use mirzaev\languages\language;
|
||||||
@@ -20,7 +20,7 @@ use Zanzara\Context as context,
|
|||||||
/**
|
/**
|
||||||
* Telegram language select
|
* Telegram language select
|
||||||
*
|
*
|
||||||
* @package kodorvan\neurobot\models\telegram\processes\language
|
* @package kodorvan\edabil\models\telegram\processes\language
|
||||||
*
|
*
|
||||||
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
||||||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||||
@@ -98,7 +98,7 @@ final class select extends core
|
|||||||
$keyboard[$row === 0 && empty($keyboard[0]) ? 0 : ++$row] = [
|
$keyboard[$row === 0 && empty($keyboard[0]) ? 0 : ++$row] = [
|
||||||
[
|
[
|
||||||
'text' => '🗂 ' . $localization['select_language_button_add'],
|
'text' => '🗂 ' . $localization['select_language_button_add'],
|
||||||
'url' => 'https://git.svoboda.works/kodorvan/neurobot/src/branch/stable/kodorvan/neurobot/system/localizations'
|
'url' => 'https://git.svoboda.works/kodorvan/edabil/src/branch/stable/kodorvan/edabil/system/localizations'
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
|
|
||||||
124
kodorvan/edabil/system/models/telegram/settings.php
Executable file
124
kodorvan/edabil/system/models/telegram/settings.php
Executable file
@@ -0,0 +1,124 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace kodorvan\edabil\models\telegram;
|
||||||
|
|
||||||
|
// Files of the project
|
||||||
|
use kodorvan\edabil\models\core,
|
||||||
|
kodorvan\edabil\models\account,
|
||||||
|
kodorvan\edabil\models\chat,
|
||||||
|
kodorvan\edabil\models\localization,
|
||||||
|
kodorvan\edabil\models\settings as model,
|
||||||
|
kodorvan\edabil\models\telegram\processes\language\select as process_language_select;
|
||||||
|
|
||||||
|
// Library for languages support
|
||||||
|
use mirzaev\languages\language;
|
||||||
|
|
||||||
|
// The library for escaping all markdown symbols
|
||||||
|
use function mirzaev\unmarkdown;
|
||||||
|
|
||||||
|
// Framework for Telegram
|
||||||
|
use SergiX44\Nutgram\Nutgram as telegram,
|
||||||
|
SergiX44\Nutgram\Telegram\Properties\ParseMode as mode,
|
||||||
|
SergiX44\Nutgram\Telegram\Types\Message\Message as message,
|
||||||
|
SergiX44\Nutgram\Handlers\Type\Command as command,
|
||||||
|
SergiX44\Nutgram\Telegram\Types\Internal\InputFile as input,
|
||||||
|
SergiX44\Nutgram\Telegram\Types\Keyboard\InlineKeyboardMarkup as keyboard,
|
||||||
|
SergiX44\Nutgram\Telegram\Types\Keyboard\InlineKeyboardButton as button;
|
||||||
|
|
||||||
|
// Built-in libraries
|
||||||
|
use Error as error;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Telegram settings
|
||||||
|
*
|
||||||
|
* @package kodorvan\edabil\models\telegram
|
||||||
|
*
|
||||||
|
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
||||||
|
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||||
|
*/
|
||||||
|
final class settings extends core
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Language
|
||||||
|
*
|
||||||
|
* Write the language into the account and the robot instance
|
||||||
|
*
|
||||||
|
* @param telegram $robot The chat-robot instance
|
||||||
|
* @param language $language The language
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public static function language(telegram $robot, language $language = LANGUAGE_DEFAULT): void
|
||||||
|
{
|
||||||
|
// Initializing the account
|
||||||
|
$account = $robot->get('account');
|
||||||
|
|
||||||
|
if ($account instanceof account) {
|
||||||
|
// Initialized the account
|
||||||
|
|
||||||
|
// Initializing the menu message localization
|
||||||
|
$localization = new localization($language);
|
||||||
|
|
||||||
|
if ($localization instanceof localization) {
|
||||||
|
// Initialized the localization
|
||||||
|
|
||||||
|
// Initializing the account old language
|
||||||
|
$from = $account->language;
|
||||||
|
|
||||||
|
// Writing the language into the account
|
||||||
|
$account->language = $language;
|
||||||
|
|
||||||
|
// Serializing the account
|
||||||
|
$account->serialize();
|
||||||
|
|
||||||
|
// Writing the account into the database;
|
||||||
|
$updated = $account->update();
|
||||||
|
|
||||||
|
// Deserializing the account
|
||||||
|
$account->deserialize();
|
||||||
|
|
||||||
|
if ($updated instanceof account) {
|
||||||
|
// Writed the account into the database
|
||||||
|
|
||||||
|
// Writing the account into the robot instance
|
||||||
|
$robot->set('account', $account);
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Initializing the account new language
|
||||||
|
$to = $account->language;
|
||||||
|
|
||||||
|
// Sending the message
|
||||||
|
$robot->sendMessage(
|
||||||
|
text: "✅ *$localization->settings_language_update_success:* " . trim($from->flag() . ' ' . $from->label($to)) . ' → *' . trim($to->flag() . ' ' . $to->label($to)) . '*',
|
||||||
|
parse_mode: mode::MARKDOWN,
|
||||||
|
disable_notification: true
|
||||||
|
);
|
||||||
|
|
||||||
|
// Sending the message
|
||||||
|
$robot->answerCallbackQuery(
|
||||||
|
text: $to->label($to),
|
||||||
|
show_alert: false
|
||||||
|
);
|
||||||
|
} catch (error $error) {
|
||||||
|
// Failed to send the message about language update
|
||||||
|
|
||||||
|
// Writing into the errors output buffer
|
||||||
|
error_log((string) $error);
|
||||||
|
|
||||||
|
// Sending the message
|
||||||
|
$robot->sendMessage(
|
||||||
|
text: "❎ *$localization->settings_language_update_fail*",
|
||||||
|
parse_mode: mode::MARKDOWN,
|
||||||
|
disable_notification: true
|
||||||
|
);
|
||||||
|
|
||||||
|
// Ending the conversation process
|
||||||
|
$robot->endConversation();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user