diff --git a/composer.lock b/composer.lock index 836e112..faecd83 100644 --- a/composer.lock +++ b/composer.lock @@ -89,16 +89,16 @@ }, { "name": "amphp/byte-stream", - "version": "v2.0.2", + "version": "v2.1.0", "source": { "type": "git", "url": "https://github.com/amphp/byte-stream.git", - "reference": "408a3b4fc4f4c7604575dc8704f18c1bd91c3ceb" + "reference": "0a4b0e80dad92c75e6131f8ad253919211540338" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/byte-stream/zipball/408a3b4fc4f4c7604575dc8704f18c1bd91c3ceb", - "reference": "408a3b4fc4f4c7604575dc8704f18c1bd91c3ceb", + "url": "https://api.github.com/repos/amphp/byte-stream/zipball/0a4b0e80dad92c75e6131f8ad253919211540338", + "reference": "0a4b0e80dad92c75e6131f8ad253919211540338", "shasum": "" }, "require": { @@ -152,7 +152,7 @@ ], "support": { "issues": "https://github.com/amphp/byte-stream/issues", - "source": "https://github.com/amphp/byte-stream/tree/v2.0.2" + "source": "https://github.com/amphp/byte-stream/tree/v2.1.0" }, "funding": [ { @@ -160,7 +160,7 @@ "type": "github" } ], - "time": "2023-09-01T04:41:26+00:00" + "time": "2023-11-19T14:34:16+00:00" }, { "name": "amphp/cache", @@ -229,16 +229,16 @@ }, { "name": "amphp/dns", - "version": "v2.0.1", + "version": "v2.1.0", "source": { "type": "git", "url": "https://github.com/amphp/dns.git", - "reference": "e42876aa8306c754abd1b3e71a44e13066909fd1" + "reference": "c3b518f321f26e786554480de580f06b9f34d1cd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/dns/zipball/e42876aa8306c754abd1b3e71a44e13066909fd1", - "reference": "e42876aa8306c754abd1b3e71a44e13066909fd1", + "url": "https://api.github.com/repos/amphp/dns/zipball/c3b518f321f26e786554480de580f06b9f34d1cd", + "reference": "c3b518f321f26e786554480de580f06b9f34d1cd", "shasum": "" }, "require": { @@ -305,7 +305,7 @@ ], "support": { "issues": "https://github.com/amphp/dns/issues", - "source": "https://github.com/amphp/dns/tree/v2.0.1" + "source": "https://github.com/amphp/dns/tree/v2.1.0" }, "funding": [ { @@ -313,7 +313,7 @@ "type": "github" } ], - "time": "2023-01-21T16:00:09+00:00" + "time": "2023-11-18T15:49:57+00:00" }, { "name": "amphp/file", @@ -2516,12 +2516,12 @@ "source": { "type": "git", "url": "https://github.com/danog/MadelineProto.git", - "reference": "6200e8613a8c55287e99599db67677205cfc3b4d" + "reference": "4ddfc859ee3837b8f32c53a57e7ed8d94b39c094" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/danog/MadelineProto/zipball/6200e8613a8c55287e99599db67677205cfc3b4d", - "reference": "6200e8613a8c55287e99599db67677205cfc3b4d", + "url": "https://api.github.com/repos/danog/MadelineProto/zipball/4ddfc859ee3837b8f32c53a57e7ed8d94b39c094", + "reference": "4ddfc859ee3837b8f32c53a57e7ed8d94b39c094", "shasum": "" }, "require": { @@ -2557,7 +2557,7 @@ "phpseclib/phpseclib": "^3.0.22", "psr/http-factory": "^1.0", "psr/log": "^3", - "revolt/event-loop": "^1.0.4", + "revolt/event-loop": "^1.0.5", "symfony/polyfill-mbstring": "*", "webmozart/assert": "^1.11" }, @@ -2637,7 +2637,7 @@ "type": "github" } ], - "time": "2023-11-17T22:18:17+00:00" + "time": "2023-11-19T17:54:55+00:00" }, { "name": "danog/primemodule", @@ -3830,16 +3830,16 @@ }, { "name": "revolt/event-loop", - "version": "v1.0.4", + "version": "v1.0.5", "source": { "type": "git", "url": "https://github.com/revoltphp/event-loop.git", - "reference": "40292c18e53d9a1b7e6c807f4fda5908552e1ba5" + "reference": "fce6063869513de56f639aa522b2ef2fedbf8d73" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/revoltphp/event-loop/zipball/40292c18e53d9a1b7e6c807f4fda5908552e1ba5", - "reference": "40292c18e53d9a1b7e6c807f4fda5908552e1ba5", + "url": "https://api.github.com/repos/revoltphp/event-loop/zipball/fce6063869513de56f639aa522b2ef2fedbf8d73", + "reference": "fce6063869513de56f639aa522b2ef2fedbf8d73", "shasum": "" }, "require": { @@ -3849,7 +3849,7 @@ "ext-json": "*", "jetbrains/phpstorm-stubs": "^2019.3", "phpunit/phpunit": "^9", - "psalm/phar": "^4.7" + "psalm/phar": "^5.15" }, "type": "library", "extra": { @@ -3896,9 +3896,9 @@ ], "support": { "issues": "https://github.com/revoltphp/event-loop/issues", - "source": "https://github.com/revoltphp/event-loop/tree/v1.0.4" + "source": "https://github.com/revoltphp/event-loop/tree/v1.0.5" }, - "time": "2023-10-22T03:19:00+00:00" + "time": "2023-11-19T14:45:35+00:00" }, { "name": "symfony/polyfill-ctype", diff --git a/src/Client.php b/src/Client.php index 1b8c727..9385c57 100644 --- a/src/Client.php +++ b/src/Client.php @@ -62,7 +62,7 @@ public function addSession(string $session, array $settings = []): API Files::getSessionSettings($session), ); - $settingsObject = self::getSettingsFromArray($settings); + $settingsObject = self::getSettingsFromArray($session, $settings); $instance = new API($file, $settingsObject); $instance->updateSettings($settingsObject); @@ -159,8 +159,7 @@ public static function getWrapper(API $madelineProto): APIWrapper return $wrapper; } - private static function getSettingsFromArray(array $settings, SettingsAbstract $settingsObject = new Settings()): SettingsAbstract { - + private static function getSettingsFromArray(string $session, array $settings, SettingsAbstract $settingsObject = new Settings()): SettingsAbstract { foreach ($settings as $key => $value) { if (is_array($value)) { if ($key === 'db' && isset($value['type'])) { @@ -171,10 +170,12 @@ private static function getSettingsFromArray(array $settings, SettingsAbstract $ 'redis' => new Settings\Database\Redis(), }; $settingsObject->setDb($type); - if ($value['type'] === 'memory') { - self::getSettingsFromArray([], $type); + + if ($type instanceof Settings\Database\Memory) { + self::getSettingsFromArray($session, [], $type); } else { - self::getSettingsFromArray($value[$value['type']], $type); + $type->setEphemeralFilesystemPrefix($session); + self::getSettingsFromArray($session, $value[$value['type']], $type); } unset($value[$value['type']], $value['type'],); @@ -184,7 +185,7 @@ private static function getSettingsFromArray(array $settings, SettingsAbstract $ } $method = 'get' . ucfirst(str_replace('_', '', ucwords($key, '_'))); - self::getSettingsFromArray($value, $settingsObject->$method()); + self::getSettingsFromArray($session, $value, $settingsObject->$method()); } else { $method = 'set' . ucfirst(str_replace('_', '', ucwords($key, '_'))); $settingsObject->$method($value);