prepared for the student
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "kodorvan/neurobot",
|
||||
"name": "kodorvan/edabil",
|
||||
"description": "",
|
||||
"homepage": "https://git.svoboda.works/kodorvan/neurobot",
|
||||
"homepage": "https://git.svoboda.works/kodorvan/edabil",
|
||||
"type": "game",
|
||||
"keywords": [
|
||||
"minimal",
|
||||
@@ -18,8 +18,8 @@
|
||||
}
|
||||
],
|
||||
"support": {
|
||||
"wiki": "https://git.svoboda.works/kodorvan/neurobot/wiki",
|
||||
"issues": "https://git.svoboda.works/kodorvan/neurobot/issues"
|
||||
"wiki": "https://git.svoboda.works/kodorvan/edabil/wiki",
|
||||
"issues": "https://git.svoboda.works/kodorvan/edabil/issues"
|
||||
},
|
||||
"require": {
|
||||
"php": "^8.5",
|
||||
@@ -49,12 +49,12 @@
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"kodorvan\\neurobot\\": "kodorvan/neurobot/system"
|
||||
"kodorvan\\edabil\\": "kodorvan/edabil/system"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"kodorvan\\neurobot\\tests\\": "kodorvan/neurobot/tests"
|
||||
"kodorvan\\edabil\\tests\\": "kodorvan/edabil/tests"
|
||||
}
|
||||
},
|
||||
"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",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "a8338790c91ddfe22352530ff06fbcd0",
|
||||
"content-hash": "8d90c860659db86cb981e675d0041753",
|
||||
"packages": [
|
||||
{
|
||||
"name": "badfarm/zanzara",
|
||||
@@ -848,7 +848,7 @@
|
||||
},
|
||||
{
|
||||
"name": "illuminate/macroable",
|
||||
"version": "v12.51.0",
|
||||
"version": "v12.53.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/illuminate/macroable.git",
|
||||
@@ -1207,11 +1207,11 @@
|
||||
},
|
||||
{
|
||||
"name": "mirzaev/unmarkdown",
|
||||
"version": "1.0.3",
|
||||
"version": "1.0.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://git.svoboda.works/mirzaev/unmarkdown",
|
||||
"reference": "ae97b9e4644dc591965694570277cdafdc46247d"
|
||||
"reference": "a0309030f65b024b8a35cd60fba396f6b8e063ee"
|
||||
},
|
||||
"require": {
|
||||
"php": "^8.4"
|
||||
@@ -1243,7 +1243,7 @@
|
||||
"support": {
|
||||
"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",
|
||||
@@ -1358,16 +1358,16 @@
|
||||
},
|
||||
{
|
||||
"name": "nutgram/nutgram",
|
||||
"version": "4.42.0",
|
||||
"version": "4.44.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/nutgram/nutgram.git",
|
||||
"reference": "034257dbc29947b73e04b5d92b07d780d8962810"
|
||||
"reference": "9e69c5eb5bdf79ff96c0396007f909e19fd8a956"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/nutgram/nutgram/zipball/034257dbc29947b73e04b5d92b07d780d8962810",
|
||||
"reference": "034257dbc29947b73e04b5d92b07d780d8962810",
|
||||
"url": "https://api.github.com/repos/nutgram/nutgram/zipball/9e69c5eb5bdf79ff96c0396007f909e19fd8a956",
|
||||
"reference": "9e69c5eb5bdf79ff96c0396007f909e19fd8a956",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1429,7 +1429,7 @@
|
||||
],
|
||||
"support": {
|
||||
"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": [
|
||||
{
|
||||
@@ -1441,7 +1441,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2026-02-12T17:23:52+00:00"
|
||||
"time": "2026-03-02T00:33:48+00:00"
|
||||
},
|
||||
{
|
||||
"name": "nyholm/psr7",
|
||||
@@ -3549,16 +3549,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/cache",
|
||||
"version": "v8.0.5",
|
||||
"version": "v8.0.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/cache.git",
|
||||
"reference": "92e9960386c7e01f58198038c199d522959a843c"
|
||||
"reference": "59184fa14658d7724cd9b8743d91c1b1aa618bff"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/cache/zipball/92e9960386c7e01f58198038c199d522959a843c",
|
||||
"reference": "92e9960386c7e01f58198038c199d522959a843c",
|
||||
"url": "https://api.github.com/repos/symfony/cache/zipball/59184fa14658d7724cd9b8743d91c1b1aa618bff",
|
||||
"reference": "59184fa14658d7724cd9b8743d91c1b1aa618bff",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3625,7 +3625,7 @@
|
||||
"psr6"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/cache/tree/v8.0.5"
|
||||
"source": "https://github.com/symfony/cache/tree/v8.0.6"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -3645,7 +3645,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2026-01-27T16:18:07+00:00"
|
||||
"time": "2026-02-21T23:29:37+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/cache-contracts",
|
||||
@@ -3725,16 +3725,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/config",
|
||||
"version": "v8.0.3",
|
||||
"version": "v8.0.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/config.git",
|
||||
"reference": "58063686fd7b8e676f14b5a4808cb85265c5216e"
|
||||
"reference": "94ea198de42f93dffa920a098cac3961a82e63b7"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/config/zipball/58063686fd7b8e676f14b5a4808cb85265c5216e",
|
||||
"reference": "58063686fd7b8e676f14b5a4808cb85265c5216e",
|
||||
"url": "https://api.github.com/repos/symfony/config/zipball/94ea198de42f93dffa920a098cac3961a82e63b7",
|
||||
"reference": "94ea198de42f93dffa920a098cac3961a82e63b7",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3779,7 +3779,7 @@
|
||||
"description": "Helps you find, load, combine, autofill and validate configuration values of any kind",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/config/tree/v8.0.3"
|
||||
"source": "https://github.com/symfony/config/tree/v8.0.6"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -3799,20 +3799,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2025-12-23T14:52:06+00:00"
|
||||
"time": "2026-02-25T16:59:43+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/dependency-injection",
|
||||
"version": "v8.0.3",
|
||||
"version": "v8.0.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/dependency-injection.git",
|
||||
"reference": "8db0d4c1dd4c533a29210c68074999ba45ad6d3e"
|
||||
"reference": "edd98864a7b9eaaa10f389bd414e7d9e816bb59d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/dependency-injection/zipball/8db0d4c1dd4c533a29210c68074999ba45ad6d3e",
|
||||
"reference": "8db0d4c1dd4c533a29210c68074999ba45ad6d3e",
|
||||
"url": "https://api.github.com/repos/symfony/dependency-injection/zipball/edd98864a7b9eaaa10f389bd414e7d9e816bb59d",
|
||||
"reference": "edd98864a7b9eaaa10f389bd414e7d9e816bb59d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3860,7 +3860,7 @@
|
||||
"description": "Allows you to standardize and centralize the way objects are constructed in your application",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/dependency-injection/tree/v8.0.3"
|
||||
"source": "https://github.com/symfony/dependency-injection/tree/v8.0.6"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -3880,7 +3880,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2025-12-23T14:52:06+00:00"
|
||||
"time": "2026-02-25T16:59:43+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/deprecation-contracts",
|
||||
@@ -3951,16 +3951,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/error-handler",
|
||||
"version": "v8.0.0",
|
||||
"version": "v8.0.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/error-handler.git",
|
||||
"reference": "d77ec7dda0c274178745d152e82baf7ea827fd73"
|
||||
"reference": "7620b97ec0ab1d2d6c7fb737aa55da411bea776a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/error-handler/zipball/d77ec7dda0c274178745d152e82baf7ea827fd73",
|
||||
"reference": "d77ec7dda0c274178745d152e82baf7ea827fd73",
|
||||
"url": "https://api.github.com/repos/symfony/error-handler/zipball/7620b97ec0ab1d2d6c7fb737aa55da411bea776a",
|
||||
"reference": "7620b97ec0ab1d2d6c7fb737aa55da411bea776a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4008,7 +4008,7 @@
|
||||
"description": "Provides tools to manage errors and ease debugging PHP code",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/error-handler/tree/v8.0.0"
|
||||
"source": "https://github.com/symfony/error-handler/tree/v8.0.4"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -4028,20 +4028,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2025-11-05T14:36:47+00:00"
|
||||
"time": "2026-01-23T11:07:10+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/event-dispatcher",
|
||||
"version": "v8.0.0",
|
||||
"version": "v8.0.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/event-dispatcher.git",
|
||||
"reference": "573f95783a2ec6e38752979db139f09fec033f03"
|
||||
"reference": "99301401da182b6cfaa4700dbe9987bb75474b47"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/573f95783a2ec6e38752979db139f09fec033f03",
|
||||
"reference": "573f95783a2ec6e38752979db139f09fec033f03",
|
||||
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/99301401da182b6cfaa4700dbe9987bb75474b47",
|
||||
"reference": "99301401da182b6cfaa4700dbe9987bb75474b47",
|
||||
"shasum": ""
|
||||
},
|
||||
"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",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/event-dispatcher/tree/v8.0.0"
|
||||
"source": "https://github.com/symfony/event-dispatcher/tree/v8.0.4"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -4113,7 +4113,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2025-10-30T14:17:19+00:00"
|
||||
"time": "2026-01-05T11:45:55+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/event-dispatcher-contracts",
|
||||
@@ -4193,16 +4193,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/filesystem",
|
||||
"version": "v8.0.1",
|
||||
"version": "v8.0.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/filesystem.git",
|
||||
"reference": "d937d400b980523dc9ee946bb69972b5e619058d"
|
||||
"reference": "7bf9162d7a0dff98d079b72948508fa48018a770"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/filesystem/zipball/d937d400b980523dc9ee946bb69972b5e619058d",
|
||||
"reference": "d937d400b980523dc9ee946bb69972b5e619058d",
|
||||
"url": "https://api.github.com/repos/symfony/filesystem/zipball/7bf9162d7a0dff98d079b72948508fa48018a770",
|
||||
"reference": "7bf9162d7a0dff98d079b72948508fa48018a770",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4239,7 +4239,7 @@
|
||||
"description": "Provides basic utilities for the filesystem",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/filesystem/tree/v8.0.1"
|
||||
"source": "https://github.com/symfony/filesystem/tree/v8.0.6"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -4259,20 +4259,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2025-12-01T09:13:36+00:00"
|
||||
"time": "2026-02-25T16:59:43+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/finder",
|
||||
"version": "v8.0.3",
|
||||
"version": "v8.0.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/finder.git",
|
||||
"reference": "dd3a2953570a283a2ba4e17063bb98c734cf5b12"
|
||||
"reference": "441404f09a54de6d1bd6ad219e088cdf4c91f97c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/finder/zipball/dd3a2953570a283a2ba4e17063bb98c734cf5b12",
|
||||
"reference": "dd3a2953570a283a2ba4e17063bb98c734cf5b12",
|
||||
"url": "https://api.github.com/repos/symfony/finder/zipball/441404f09a54de6d1bd6ad219e088cdf4c91f97c",
|
||||
"reference": "441404f09a54de6d1bd6ad219e088cdf4c91f97c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4307,7 +4307,7 @@
|
||||
"description": "Finds files and directories via an intuitive fluent interface",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/finder/tree/v8.0.3"
|
||||
"source": "https://github.com/symfony/finder/tree/v8.0.6"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -4327,20 +4327,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2025-12-23T14:52:06+00:00"
|
||||
"time": "2026-01-29T09:41:02+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/framework-bundle",
|
||||
"version": "v8.0.3",
|
||||
"version": "v8.0.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/framework-bundle.git",
|
||||
"reference": "738a92519fbc3ac37192b28052574bf2d1e8f63a"
|
||||
"reference": "86ebd86908edca06e3af5994bc46881575fbe813"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/framework-bundle/zipball/738a92519fbc3ac37192b28052574bf2d1e8f63a",
|
||||
"reference": "738a92519fbc3ac37192b28052574bf2d1e8f63a",
|
||||
"url": "https://api.github.com/repos/symfony/framework-bundle/zipball/86ebd86908edca06e3af5994bc46881575fbe813",
|
||||
"reference": "86ebd86908edca06e3af5994bc46881575fbe813",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4348,8 +4348,8 @@
|
||||
"ext-xml": "*",
|
||||
"php": ">=8.4",
|
||||
"symfony/cache": "^7.4|^8.0",
|
||||
"symfony/config": "^7.4.3|^8.0.3",
|
||||
"symfony/dependency-injection": "^7.4|^8.0",
|
||||
"symfony/config": "^7.4.4|^8.0.4",
|
||||
"symfony/dependency-injection": "^7.4.4|^8.0.4",
|
||||
"symfony/deprecation-contracts": "^2.5|^3",
|
||||
"symfony/error-handler": "^7.4|^8.0",
|
||||
"symfony/event-dispatcher": "^7.4|^8.0",
|
||||
@@ -4363,8 +4363,8 @@
|
||||
},
|
||||
"conflict": {
|
||||
"doctrine/persistence": "<1.3",
|
||||
"phpdocumentor/reflection-docblock": "<3.2.2",
|
||||
"phpdocumentor/type-resolver": "<1.4.0",
|
||||
"phpdocumentor/reflection-docblock": "<5.2|>=7",
|
||||
"phpdocumentor/type-resolver": "<1.5.1",
|
||||
"symfony/console": "<7.4",
|
||||
"symfony/form": "<7.4",
|
||||
"symfony/json-streamer": "<7.4",
|
||||
@@ -4378,7 +4378,7 @@
|
||||
"require-dev": {
|
||||
"doctrine/persistence": "^1.3|^2|^3",
|
||||
"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",
|
||||
"seld/jsonlint": "^1.10",
|
||||
"symfony/asset": "^7.4|^8.0",
|
||||
@@ -4447,7 +4447,7 @@
|
||||
"description": "Provides a tight integration between Symfony components and the Symfony full-stack framework",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/framework-bundle/tree/v8.0.3"
|
||||
"source": "https://github.com/symfony/framework-bundle/tree/v8.0.6"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -4467,20 +4467,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2025-12-23T14:52:06+00:00"
|
||||
"time": "2026-02-25T16:59:43+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/http-client",
|
||||
"version": "v7.4.3",
|
||||
"version": "v7.4.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/http-client.git",
|
||||
"reference": "d01dfac1e0dc99f18da48b18101c23ce57929616"
|
||||
"reference": "2bde8afd5ab2fe0b05a9c2d4c3c0e28ceb98a154"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/http-client/zipball/d01dfac1e0dc99f18da48b18101c23ce57929616",
|
||||
"reference": "d01dfac1e0dc99f18da48b18101c23ce57929616",
|
||||
"url": "https://api.github.com/repos/symfony/http-client/zipball/2bde8afd5ab2fe0b05a9c2d4c3c0e28ceb98a154",
|
||||
"reference": "2bde8afd5ab2fe0b05a9c2d4c3c0e28ceb98a154",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4548,7 +4548,7 @@
|
||||
"http"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/http-client/tree/v7.4.3"
|
||||
"source": "https://github.com/symfony/http-client/tree/v7.4.6"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -4568,7 +4568,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2025-12-23T14:50:43+00:00"
|
||||
"time": "2026-02-18T09:46:18+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/http-client-contracts",
|
||||
@@ -4650,16 +4650,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/http-foundation",
|
||||
"version": "v8.0.3",
|
||||
"version": "v8.0.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/http-foundation.git",
|
||||
"reference": "514ec3aa7982f296b0ad0825f75b6be5779ae9e7"
|
||||
"reference": "7745ff1aad45d855fe25b08969269ef83b1ad8bc"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/514ec3aa7982f296b0ad0825f75b6be5779ae9e7",
|
||||
"reference": "514ec3aa7982f296b0ad0825f75b6be5779ae9e7",
|
||||
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/7745ff1aad45d855fe25b08969269ef83b1ad8bc",
|
||||
"reference": "7745ff1aad45d855fe25b08969269ef83b1ad8bc",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4706,7 +4706,7 @@
|
||||
"description": "Defines an object-oriented layer for the HTTP specification",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/http-foundation/tree/v8.0.3"
|
||||
"source": "https://github.com/symfony/http-foundation/tree/v8.0.6"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -4726,20 +4726,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2025-12-23T14:52:06+00:00"
|
||||
"time": "2026-02-21T16:28:39+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/http-kernel",
|
||||
"version": "v8.0.3",
|
||||
"version": "v8.0.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/http-kernel.git",
|
||||
"reference": "e6dfb348eb1dd4df14c39e6dc7e283bab4199fd9"
|
||||
"reference": "b567e571e74b5774b3d3cb4d35bdafa5f37e51a9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/e6dfb348eb1dd4df14c39e6dc7e283bab4199fd9",
|
||||
"reference": "e6dfb348eb1dd4df14c39e6dc7e283bab4199fd9",
|
||||
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/b567e571e74b5774b3d3cb4d35bdafa5f37e51a9",
|
||||
"reference": "b567e571e74b5774b3d3cb4d35bdafa5f37e51a9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4810,7 +4810,7 @@
|
||||
"description": "Provides a structured process for converting a Request into a Response",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/http-kernel/tree/v8.0.3"
|
||||
"source": "https://github.com/symfony/http-kernel/tree/v8.0.6"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -4830,20 +4830,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2025-12-31T09:29:34+00:00"
|
||||
"time": "2026-02-26T08:36:42+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/intl",
|
||||
"version": "v8.0.1",
|
||||
"version": "v8.0.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/intl.git",
|
||||
"reference": "f9eca217ae8f2be0b3ad80723d6a3b518b90cd66"
|
||||
"reference": "4e14323828f51a293edbce15ca98d4f3dd927cbf"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/intl/zipball/f9eca217ae8f2be0b3ad80723d6a3b518b90cd66",
|
||||
"reference": "f9eca217ae8f2be0b3ad80723d6a3b518b90cd66",
|
||||
"url": "https://api.github.com/repos/symfony/intl/zipball/4e14323828f51a293edbce15ca98d4f3dd927cbf",
|
||||
"reference": "4e14323828f51a293edbce15ca98d4f3dd927cbf",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4899,7 +4899,7 @@
|
||||
"localization"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/intl/tree/v8.0.1"
|
||||
"source": "https://github.com/symfony/intl/tree/v8.0.6"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -4919,7 +4919,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2025-12-01T09:13:36+00:00"
|
||||
"time": "2026-02-09T10:14:57+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-ctype",
|
||||
@@ -5251,16 +5251,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/routing",
|
||||
"version": "v8.0.3",
|
||||
"version": "v8.0.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/routing.git",
|
||||
"reference": "3827ac6e03dcd86e430fb6ae6056acf5b51aece3"
|
||||
"reference": "053c40fd46e1d19c5c5a94cada93ce6c3facdd55"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/routing/zipball/3827ac6e03dcd86e430fb6ae6056acf5b51aece3",
|
||||
"reference": "3827ac6e03dcd86e430fb6ae6056acf5b51aece3",
|
||||
"url": "https://api.github.com/repos/symfony/routing/zipball/053c40fd46e1d19c5c5a94cada93ce6c3facdd55",
|
||||
"reference": "053c40fd46e1d19c5c5a94cada93ce6c3facdd55",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -5307,7 +5307,7 @@
|
||||
"url"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/routing/tree/v8.0.3"
|
||||
"source": "https://github.com/symfony/routing/tree/v8.0.6"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -5327,7 +5327,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2025-12-19T10:01:18+00:00"
|
||||
"time": "2026-02-25T16:59:43+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/service-contracts",
|
||||
@@ -5500,16 +5500,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/twig-bridge",
|
||||
"version": "v8.0.3",
|
||||
"version": "v8.0.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/twig-bridge.git",
|
||||
"reference": "2a2978a44127bae9aaee0ed5319954eb492d81c3"
|
||||
"reference": "a29b174218f6eb324bf24f60440ac81d17f6ee0d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/twig-bridge/zipball/2a2978a44127bae9aaee0ed5319954eb492d81c3",
|
||||
"reference": "2a2978a44127bae9aaee0ed5319954eb492d81c3",
|
||||
"url": "https://api.github.com/repos/symfony/twig-bridge/zipball/a29b174218f6eb324bf24f60440ac81d17f6ee0d",
|
||||
"reference": "a29b174218f6eb324bf24f60440ac81d17f6ee0d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -5518,13 +5518,14 @@
|
||||
"twig/twig": "^3.21"
|
||||
},
|
||||
"conflict": {
|
||||
"phpdocumentor/reflection-docblock": "<3.2.2",
|
||||
"phpdocumentor/type-resolver": "<1.4.0"
|
||||
"phpdocumentor/reflection-docblock": "<5.2|>=7",
|
||||
"phpdocumentor/type-resolver": "<1.5.1",
|
||||
"symfony/form": "<7.4.4|>8.0,<8.0.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"egulias/email-validator": "^2.1.10|^3|^4",
|
||||
"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-mapper": "^7.4|^8.0",
|
||||
"symfony/console": "^7.4|^8.0",
|
||||
@@ -5532,7 +5533,7 @@
|
||||
"symfony/emoji": "^7.4|^8.0",
|
||||
"symfony/expression-language": "^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/http-foundation": "^7.4|^8.0",
|
||||
"symfony/http-kernel": "^7.4|^8.0",
|
||||
@@ -5582,7 +5583,7 @@
|
||||
"description": "Provides integration for Twig with various Symfony components",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/twig-bridge/tree/v8.0.3"
|
||||
"source": "https://github.com/symfony/twig-bridge/tree/v8.0.6"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -5602,20 +5603,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2025-12-16T08:10:18+00:00"
|
||||
"time": "2026-02-25T16:59:43+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/twig-bundle",
|
||||
"version": "v8.0.3",
|
||||
"version": "v8.0.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/twig-bundle.git",
|
||||
"reference": "58c54c97af6a3fdb7ea9a3931ea1c4b8bd282b2f"
|
||||
"reference": "5a68f2e0e06996514bf04900c3982b93b42487af"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/twig-bundle/zipball/58c54c97af6a3fdb7ea9a3931ea1c4b8bd282b2f",
|
||||
"reference": "58c54c97af6a3fdb7ea9a3931ea1c4b8bd282b2f",
|
||||
"url": "https://api.github.com/repos/symfony/twig-bundle/zipball/5a68f2e0e06996514bf04900c3982b93b42487af",
|
||||
"reference": "5a68f2e0e06996514bf04900c3982b93b42487af",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -5666,7 +5667,7 @@
|
||||
"description": "Provides a tight integration of Twig into the Symfony full-stack framework",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/twig-bundle/tree/v8.0.3"
|
||||
"source": "https://github.com/symfony/twig-bundle/tree/v8.0.4"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -5686,20 +5687,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2025-12-19T10:01:18+00:00"
|
||||
"time": "2026-01-06T12:43:21+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/var-dumper",
|
||||
"version": "v8.0.3",
|
||||
"version": "v8.0.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/var-dumper.git",
|
||||
"reference": "3bc368228532ad538cc216768caa8968be95a8d6"
|
||||
"reference": "2e14f7e0bf5ff02c6e63bd31cb8e4855a13d6209"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/3bc368228532ad538cc216768caa8968be95a8d6",
|
||||
"reference": "3bc368228532ad538cc216768caa8968be95a8d6",
|
||||
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/2e14f7e0bf5ff02c6e63bd31cb8e4855a13d6209",
|
||||
"reference": "2e14f7e0bf5ff02c6e63bd31cb8e4855a13d6209",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -5753,7 +5754,7 @@
|
||||
"dump"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/var-dumper/tree/v8.0.3"
|
||||
"source": "https://github.com/symfony/var-dumper/tree/v8.0.6"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -5773,7 +5774,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2025-12-18T11:23:51+00:00"
|
||||
"time": "2026-02-15T10:53:29+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/var-exporter",
|
||||
@@ -6048,16 +6049,16 @@
|
||||
},
|
||||
{
|
||||
"name": "twig/extra-bundle",
|
||||
"version": "v3.22.2",
|
||||
"version": "v3.23.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/twigphp/twig-extra-bundle.git",
|
||||
"reference": "09de9be7f6c0d19ede7b5a1dbfcfb2e9d1e0ea9e"
|
||||
"reference": "7a27e784dc56eddfef5e9295829b290ce06f1682"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/09de9be7f6c0d19ede7b5a1dbfcfb2e9d1e0ea9e",
|
||||
"reference": "09de9be7f6c0d19ede7b5a1dbfcfb2e9d1e0ea9e",
|
||||
"url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/7a27e784dc56eddfef5e9295829b290ce06f1682",
|
||||
"reference": "7a27e784dc56eddfef5e9295829b290ce06f1682",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -6106,7 +6107,7 @@
|
||||
"twig"
|
||||
],
|
||||
"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": [
|
||||
{
|
||||
@@ -6118,20 +6119,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2025-12-05T08:51:53+00:00"
|
||||
"time": "2025-12-18T20:46:15+00:00"
|
||||
},
|
||||
{
|
||||
"name": "twig/intl-extra",
|
||||
"version": "v3.22.1",
|
||||
"version": "v3.23.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/twigphp/intl-extra.git",
|
||||
"reference": "93ac31e53cdd3f2e541f42690cd0c54ca8138ab1"
|
||||
"reference": "32f15a38d45a8d0ec11bc8a3d97d3ac2a261499f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/twigphp/intl-extra/zipball/93ac31e53cdd3f2e541f42690cd0c54ca8138ab1",
|
||||
"reference": "93ac31e53cdd3f2e541f42690cd0c54ca8138ab1",
|
||||
"url": "https://api.github.com/repos/twigphp/intl-extra/zipball/32f15a38d45a8d0ec11bc8a3d97d3ac2a261499f",
|
||||
"reference": "32f15a38d45a8d0ec11bc8a3d97d3ac2a261499f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -6170,7 +6171,7 @@
|
||||
"twig"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/twigphp/intl-extra/tree/v3.22.1"
|
||||
"source": "https://github.com/twigphp/intl-extra/tree/v3.23.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -6182,20 +6183,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2025-11-02T11:00:49+00:00"
|
||||
"time": "2026-01-17T13:57:47+00:00"
|
||||
},
|
||||
{
|
||||
"name": "twig/twig",
|
||||
"version": "v3.22.2",
|
||||
"version": "v3.23.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/twigphp/Twig.git",
|
||||
"reference": "946ddeafa3c9f4ce279d1f34051af041db0e16f2"
|
||||
"reference": "a64dc5d2cc7d6cafb9347f6cd802d0d06d0351c9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/twigphp/Twig/zipball/946ddeafa3c9f4ce279d1f34051af041db0e16f2",
|
||||
"reference": "946ddeafa3c9f4ce279d1f34051af041db0e16f2",
|
||||
"url": "https://api.github.com/repos/twigphp/Twig/zipball/a64dc5d2cc7d6cafb9347f6cd802d0d06d0351c9",
|
||||
"reference": "a64dc5d2cc7d6cafb9347f6cd802d0d06d0351c9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -6249,7 +6250,7 @@
|
||||
],
|
||||
"support": {
|
||||
"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": [
|
||||
{
|
||||
@@ -6261,7 +6262,7 @@
|
||||
"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",
|
||||
@@ -6896,16 +6897,16 @@
|
||||
},
|
||||
{
|
||||
"name": "yoomoney/yookassa-sdk-php",
|
||||
"version": "2.13.0",
|
||||
"version": "2.13.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://git.yoomoney.ru/scm/sdk/yookassa-sdk-php.git",
|
||||
"reference": "846375280694d418025ba9ec5bcdbdfac6773932"
|
||||
"reference": "f5f3cdad71710d06baf0f9c8d455a42d0d8b8e65"
|
||||
},
|
||||
"dist": {
|
||||
"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",
|
||||
"reference": "846375280694d418025ba9ec5bcdbdfac6773932"
|
||||
"url": "https://git.yoomoney.ru/rest/api/latest/projects/SDK/repos/yookassa-sdk-php/archive?at=refs%2Ftags%2F2.13.1&format=zip",
|
||||
"reference": "f5f3cdad71710d06baf0f9c8d455a42d0d8b8e65"
|
||||
},
|
||||
"require": {
|
||||
"ext-curl": "*",
|
||||
@@ -6947,7 +6948,7 @@
|
||||
"yookassa",
|
||||
"yoomoney"
|
||||
],
|
||||
"time": "2025-12-17T09:05:11+00:00"
|
||||
"time": "2026-02-18T13:51:08+00:00"
|
||||
}
|
||||
],
|
||||
"packages-dev": [],
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/bin/fish
|
||||
|
||||
if not test -L kodorvan/neurobot/system/public/js/modules/damper.mjs
|
||||
ln -s ../../../../../../damper.mjs/damper.mjs 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/edabil/system/public/js/modules/damper.mjs
|
||||
end
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace kodorvan\neurobot\controllers;
|
||||
namespace kodorvan\edabil\controllers;
|
||||
|
||||
// Files of the project
|
||||
use kodorvan\neurobot\views\templater,
|
||||
kodorvan\neurobot\models\core as models;
|
||||
use kodorvan\edabil\views\templater,
|
||||
kodorvan\edabil\models\core as models;
|
||||
|
||||
// Library for languages support
|
||||
use mirzaev\languages\language;
|
||||
@@ -20,7 +20,7 @@ use mirzaev\minimal\core as minimal,
|
||||
/**
|
||||
* Controllers core
|
||||
*
|
||||
* @package kodorvan\neurobot\controllers
|
||||
* @package kodorvan\edabil\controllers
|
||||
*
|
||||
* @param language $language Language
|
||||
* @param response $response Response
|
||||
@@ -2,10 +2,10 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace kodorvan\neurobot\controllers;
|
||||
namespace kodorvan\edabil\controllers;
|
||||
|
||||
// Files of the project
|
||||
use kodorvan\neurobot\controllers\core;
|
||||
use kodorvan\edabil\controllers\core;
|
||||
|
||||
// Framework for PHP
|
||||
use mirzaev\minimal\http\enumerations\content,
|
||||
@@ -14,7 +14,7 @@ use mirzaev\minimal\http\enumerations\content,
|
||||
/**
|
||||
* Index
|
||||
*
|
||||
* @package kodorvan\neurobot\controllers
|
||||
* @package kodorvan\edabil\controllers
|
||||
*
|
||||
* @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);
|
||||
|
||||
namespace kodorvan\neurobot\models;
|
||||
namespace kodorvan\edabil\models;
|
||||
|
||||
// Files of the project
|
||||
use kodorvan\neurobot\models\core,
|
||||
kodorvan\neurobot\models\authorizations,
|
||||
kodorvan\neurobot\models\chat,
|
||||
kodorvan\neurobot\models\settings,
|
||||
kodorvan\neurobot\models\tariff,
|
||||
kodorvan\neurobot\models\code,
|
||||
kodorvan\neurobot\models\enumerations\tariff as tariff_type;
|
||||
use kodorvan\edabil\models\core,
|
||||
kodorvan\edabil\models\authorizations,
|
||||
kodorvan\edabil\models\chat,
|
||||
kodorvan\edabil\models\settings,
|
||||
kodorvan\edabil\models\tariff,
|
||||
kodorvan\edabil\models\code,
|
||||
kodorvan\edabil\models\enumerations\tariff as tariff_type;
|
||||
|
||||
// The library for languages support
|
||||
use mirzaev\languages\language;
|
||||
@@ -40,7 +40,7 @@ use Exception as exception,
|
||||
/**
|
||||
* Account
|
||||
*
|
||||
* @package kodorvan\neurobot\models
|
||||
* @package kodorvan\edabil\models
|
||||
*
|
||||
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
||||
* @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('currency', type::string, ['length' => 3]), */
|
||||
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('updated', type::integer_unsigned),
|
||||
new column('created', type::integer_unsigned)
|
||||
@@ -302,10 +299,6 @@ final class account extends core implements record_interface
|
||||
$name_second,
|
||||
$language instanceof language ? $language->name : (string) $language,
|
||||
(int) $robot,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
/* */
|
||||
(int) $active,
|
||||
svoboda::timestamp(),
|
||||
svoboda::timestamp()
|
||||
@@ -415,192 +408,4 @@ final class account extends core implements record_interface
|
||||
// Exit (fail)
|
||||
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);
|
||||
|
||||
namespace kodorvan\neurobot\models;
|
||||
namespace kodorvan\edabil\models;
|
||||
|
||||
// Files of the project
|
||||
use kodorvan\neurobot\models\core;
|
||||
use kodorvan\edabil\models\core;
|
||||
|
||||
// Svoboda time
|
||||
use svoboda\time\statement as svoboda;
|
||||
@@ -31,7 +31,7 @@ use Exception as exception,
|
||||
/**
|
||||
* Authorizations
|
||||
*
|
||||
* @package kodorvan\neurobot\models
|
||||
* @package kodorvan\edabil\models
|
||||
*
|
||||
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
||||
* @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('settings', 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_settings', type::char),
|
||||
new column('active', type::char),
|
||||
@@ -116,21 +98,6 @@ final class authorizations extends core implements record_interface
|
||||
* @param int $system
|
||||
* @param int $settings
|
||||
* @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_settings
|
||||
* @param bool $active Is the record active?
|
||||
@@ -142,21 +109,6 @@ final class authorizations extends core implements record_interface
|
||||
int $system = 1,
|
||||
int $settings = 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_settings = 0,
|
||||
bool $active = true,
|
||||
@@ -168,21 +120,6 @@ final class authorizations extends core implements record_interface
|
||||
$system,
|
||||
$settings,
|
||||
$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_settings,
|
||||
(int) $active,
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace kodorvan\neurobot\models;
|
||||
namespace kodorvan\edabil\models;
|
||||
|
||||
// Framework for PHP
|
||||
use mirzaev\minimal\model,
|
||||
@@ -14,7 +14,7 @@ use exception;
|
||||
/**
|
||||
* Models core
|
||||
*
|
||||
* @package kodorvan\neurobot\models
|
||||
* @package kodorvan\edabil\models
|
||||
*
|
||||
* @method void __construct() Constructor
|
||||
*
|
||||
@@ -2,10 +2,10 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace kodorvan\neurobot\models;
|
||||
namespace kodorvan\edabil\models;
|
||||
|
||||
// Files of the project
|
||||
use kodorvan\neurobot\models\core;
|
||||
use kodorvan\edabil\models\core;
|
||||
|
||||
// Baza database
|
||||
use mirzaev\baza\database,
|
||||
@@ -26,7 +26,7 @@ use ArrayAccess as array_access,
|
||||
/**
|
||||
* Localization
|
||||
*
|
||||
* @package kodorvan\neurobot\models
|
||||
* @package kodorvan\edabil\models
|
||||
*
|
||||
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
||||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace kodorvan\neurobot\models;
|
||||
namespace kodorvan\edabil\models;
|
||||
|
||||
// Files of the project
|
||||
use kodorvan\neurobot\models\core,
|
||||
kodorvan\neurobot\models\tariff,
|
||||
kodorvan\neurobot\models\enumerations\tariff as tariff_type,
|
||||
kodorvan\neurobot\models\enumerations\acquiring as acquiring;
|
||||
use kodorvan\edabil\models\core,
|
||||
kodorvan\edabil\models\tariff,
|
||||
kodorvan\edabil\models\enumerations\tariff as tariff_type,
|
||||
kodorvan\edabil\models\enumerations\acquiring as acquiring;
|
||||
|
||||
// Svoboda time
|
||||
use svoboda\time\statement as svoboda;
|
||||
@@ -20,17 +20,10 @@ use mirzaev\baza\database,
|
||||
mirzaev\baza\enumerations\encoding,
|
||||
mirzaev\baza\enumerations\type;
|
||||
|
||||
// Library for neural networks support
|
||||
use mirzaev\neuroseti\network,
|
||||
mirzaev\neuroseti\api;
|
||||
|
||||
// Active Record pattern
|
||||
use mirzaev\record\interfaces\record as record_interface,
|
||||
mirzaev\record\traits\record as record_trait;
|
||||
|
||||
// Port of the fast BPE tokeniser for OpenAI
|
||||
use Yethee\Tiktoken\EncoderProvider as tiktoken;
|
||||
|
||||
// Built-in libraries
|
||||
use Exception as exception,
|
||||
RuntimeException as exception_runtime;
|
||||
@@ -38,7 +31,7 @@ use Exception as exception,
|
||||
/**
|
||||
* Settings
|
||||
*
|
||||
* @package kodorvan\neurobot\models
|
||||
* @package kodorvan\edabil\models
|
||||
*
|
||||
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
||||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||
@@ -76,7 +69,6 @@ final class settings extends core implements record_interface
|
||||
->columns(
|
||||
new column('identifier', 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('updated', type::integer_unsigned),
|
||||
new column('created', type::integer_unsigned)
|
||||
@@ -91,20 +83,17 @@ final class settings extends core implements record_interface
|
||||
* Write
|
||||
*
|
||||
* @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?
|
||||
*
|
||||
* @return record|false The record, if created
|
||||
*/
|
||||
public function write(
|
||||
int $account = 0,
|
||||
int $chat_memory_messages = 3,
|
||||
bool $active = true,
|
||||
): record|false {
|
||||
$record = $this->database->record(
|
||||
$this->database->count() + 1,
|
||||
$account,
|
||||
$chat_memory_messages,
|
||||
(int) $active,
|
||||
svoboda::timestamp(),
|
||||
svoboda::timestamp()
|
||||
@@ -2,14 +2,14 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace kodorvan\neurobot\models\telegram\commands;
|
||||
namespace kodorvan\edabil\models\telegram\commands;
|
||||
|
||||
// Files of the project
|
||||
use kodorvan\neurobot\models\core,
|
||||
kodorvan\neurobot\models\account as model,
|
||||
kodorvan\neurobot\models\settings,
|
||||
kodorvan\neurobot\models\localization,
|
||||
kodorvan\neurobot\models\telegram\processes\language\select as process_language_select;
|
||||
use kodorvan\edabil\models\core,
|
||||
kodorvan\edabil\models\account as model,
|
||||
kodorvan\edabil\models\settings,
|
||||
kodorvan\edabil\models\localization,
|
||||
kodorvan\edabil\models\telegram\processes\language\select as process_language_select;
|
||||
|
||||
// Library for languages support
|
||||
use mirzaev\languages\language;
|
||||
@@ -29,7 +29,7 @@ use SergiX44\Nutgram\Nutgram as telegram,
|
||||
/**
|
||||
* 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
|
||||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||
@@ -2,14 +2,14 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace kodorvan\neurobot\models\telegram\commands;
|
||||
namespace kodorvan\edabil\models\telegram\commands;
|
||||
|
||||
// Files of the project
|
||||
use kodorvan\neurobot\models\core,
|
||||
kodorvan\neurobot\models\account,
|
||||
kodorvan\neurobot\models\settings,
|
||||
kodorvan\neurobot\models\localization,
|
||||
kodorvan\neurobot\models\telegram\processes\language\select as process_language_select;
|
||||
use kodorvan\edabil\models\core,
|
||||
kodorvan\edabil\models\account,
|
||||
kodorvan\edabil\models\settings,
|
||||
kodorvan\edabil\models\localization,
|
||||
kodorvan\edabil\models\telegram\processes\language\select as process_language_select;
|
||||
|
||||
// Library for languages support
|
||||
use mirzaev\languages\language as type;
|
||||
@@ -29,7 +29,7 @@ use SergiX44\Nutgram\Nutgram as telegram,
|
||||
/**
|
||||
* 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
|
||||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace kodorvan\neurobot\models\telegram\commands;
|
||||
namespace kodorvan\edabil\models\telegram\commands;
|
||||
|
||||
// Files of the project
|
||||
use kodorvan\neurobot\models\core,
|
||||
kodorvan\neurobot\models\account,
|
||||
kodorvan\neurobot\models\settings,
|
||||
kodorvan\neurobot\models\telegram\processes\language\select as process_language_select;
|
||||
use kodorvan\edabil\models\core,
|
||||
kodorvan\edabil\models\account,
|
||||
kodorvan\edabil\models\settings,
|
||||
kodorvan\edabil\models\telegram\processes\language\select as process_language_select;
|
||||
|
||||
// Library for languages support
|
||||
use mirzaev\languages\language;
|
||||
@@ -26,7 +26,7 @@ use SergiX44\Nutgram\Nutgram as telegram,
|
||||
/**
|
||||
* 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
|
||||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||
@@ -2,15 +2,14 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace kodorvan\neurobot\models\telegram\commands;
|
||||
namespace kodorvan\edabil\models\telegram\commands;
|
||||
|
||||
// Files of the project
|
||||
use kodorvan\neurobot\models\core,
|
||||
kodorvan\neurobot\models\account,
|
||||
kodorvan\neurobot\models\settings,
|
||||
kodorvan\neurobot\models\tariff,
|
||||
kodorvan\neurobot\models\localization,
|
||||
kodorvan\neurobot\models\telegram\processes\language\select as process_language_select;
|
||||
use kodorvan\edabil\models\core,
|
||||
kodorvan\edabil\models\account,
|
||||
kodorvan\edabil\models\settings,
|
||||
kodorvan\edabil\models\localization,
|
||||
kodorvan\edabil\models\telegram\processes\language\select as process_language_select;
|
||||
|
||||
// Library for languages support
|
||||
use mirzaev\languages\language;
|
||||
@@ -30,7 +29,7 @@ use SergiX44\Nutgram\Nutgram as telegram,
|
||||
/**
|
||||
* 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
|
||||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||
@@ -83,60 +82,26 @@ final class start extends command
|
||||
// Initializing the 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
|
||||
$keyboard = keyboard::make();
|
||||
|
||||
// Writing the row into the keyboard
|
||||
$keyboard->addRow(
|
||||
$button_tariff,
|
||||
button::make(
|
||||
text: '🧠 ' . $chat->network->label(),
|
||||
callback_data: 'network'
|
||||
)
|
||||
);
|
||||
|
||||
// Writing the row into the keyboard
|
||||
$keyboard->addRow(
|
||||
button::make(
|
||||
text: '⚙️ ' . $localization['menu_button_settings'],
|
||||
callback_data: 'settings'
|
||||
text: '🧠 Bebra',
|
||||
callback_data: 'bebra'
|
||||
)
|
||||
);
|
||||
|
||||
$robot->sendMessage(
|
||||
text: implode(
|
||||
"\n\n",
|
||||
[
|
||||
"📋 *$localization->menu_title*",
|
||||
$localization->menu_howto
|
||||
]
|
||||
array_filter(
|
||||
[
|
||||
"📋 *$localization->menu_title*",
|
||||
unmarkdown($localization->menu_pipetc)
|
||||
]
|
||||
)
|
||||
),
|
||||
parse_mode: mode::MARKDOWN,
|
||||
disable_notification: true,
|
||||
@@ -2,11 +2,11 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace kodorvan\neurobot\models\telegram\middlewares;
|
||||
namespace kodorvan\edabil\models\telegram\middlewares;
|
||||
|
||||
// Files of the project
|
||||
use kodorvan\neurobot\models\account as model,
|
||||
kodorvan\neurobot\models\authorizations;
|
||||
use kodorvan\edabil\models\account as model,
|
||||
kodorvan\edabil\models\authorizations;
|
||||
|
||||
// The library for languages support
|
||||
use mirzaev\languages\language;
|
||||
@@ -24,7 +24,7 @@ use Error as error;
|
||||
/**
|
||||
* 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
|
||||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||
@@ -2,11 +2,11 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace kodorvan\neurobot\models\telegram\middlewares;
|
||||
namespace kodorvan\edabil\models\telegram\middlewares;
|
||||
|
||||
// Files of the project
|
||||
use kodorvan\neurobot\models\account,
|
||||
kodorvan\neurobot\models\authorizations as model;
|
||||
use kodorvan\edabil\models\account,
|
||||
kodorvan\edabil\models\authorizations as model;
|
||||
|
||||
// The library for languages support
|
||||
use mirzaev\languages\language;
|
||||
@@ -24,7 +24,7 @@ use Error as error;
|
||||
/**
|
||||
* 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
|
||||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||
@@ -2,11 +2,11 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace kodorvan\neurobot\models\telegram\middlewares;
|
||||
namespace kodorvan\edabil\models\telegram\middlewares;
|
||||
|
||||
// Files of the project
|
||||
use kodorvan\neurobot\models\account,
|
||||
kodorvan\neurobot\models\authorizations;
|
||||
use kodorvan\edabil\models\account,
|
||||
kodorvan\edabil\models\authorizations;
|
||||
|
||||
// The library for languages support
|
||||
use mirzaev\languages\language as type;
|
||||
@@ -24,7 +24,7 @@ use Error as error;
|
||||
/**
|
||||
* 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
|
||||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace kodorvan\neurobot\models\telegram\middlewares;
|
||||
namespace kodorvan\edabil\models\telegram\middlewares;
|
||||
|
||||
// Files of the project
|
||||
use kodorvan\neurobot\models\core,
|
||||
kodorvan\neurobot\models\account,
|
||||
kodorvan\neurobot\models\localization as model,
|
||||
kodorvan\neurobot\models\authorizations;
|
||||
use kodorvan\edabil\models\core,
|
||||
kodorvan\edabil\models\account,
|
||||
kodorvan\edabil\models\localization as model,
|
||||
kodorvan\edabil\models\authorizations;
|
||||
|
||||
// The library for languages support
|
||||
use mirzaev\languages\language;
|
||||
@@ -27,7 +27,7 @@ use Exception as exception,
|
||||
/**
|
||||
* 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
|
||||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace kodorvan\neurobot\models\telegram\middlewares;
|
||||
namespace kodorvan\edabil\models\telegram\middlewares;
|
||||
|
||||
// Files of the project
|
||||
use kodorvan\neurobot\models\core,
|
||||
kodorvan\neurobot\models\account,
|
||||
kodorvan\neurobot\models\localization,
|
||||
kodorvan\neurobot\models\authorizations;
|
||||
use kodorvan\edabil\models\core,
|
||||
kodorvan\edabil\models\account,
|
||||
kodorvan\edabil\models\localization,
|
||||
kodorvan\edabil\models\authorizations;
|
||||
|
||||
// The library for languages support
|
||||
use mirzaev\languages\language;
|
||||
@@ -26,7 +26,7 @@ use Error as error;
|
||||
/**
|
||||
* 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
|
||||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||
@@ -2,11 +2,11 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace kodorvan\neurobot\models\telegram\middlewares\system;
|
||||
namespace kodorvan\edabil\models\telegram\middlewares\system;
|
||||
|
||||
// Files of the project
|
||||
use kodorvan\neurobot\models\account,
|
||||
kodorvan\neurobot\models\authorizations;
|
||||
use kodorvan\edabil\models\account,
|
||||
kodorvan\edabil\models\authorizations;
|
||||
|
||||
// The library for languages support
|
||||
use mirzaev\languages\language;
|
||||
@@ -24,7 +24,7 @@ use Error as error;
|
||||
/**
|
||||
* 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
|
||||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||
@@ -2,10 +2,10 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace kodorvan\neurobot\models\telegram\processes\language;
|
||||
namespace kodorvan\edabil\models\telegram\processes\language;
|
||||
|
||||
// Files of the project
|
||||
use kodorvan\neurobot\models\core;
|
||||
use kodorvan\edabil\models\core;
|
||||
|
||||
// Library for languages support
|
||||
use mirzaev\languages\language;
|
||||
@@ -20,7 +20,7 @@ use Zanzara\Context as context,
|
||||
/**
|
||||
* 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
|
||||
* @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] = [
|
||||
[
|
||||
'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