Задать вопрос
@EVG82

Какая то yield не срабатывает?

Значит удалось установить что вот через вот это MadelineProto можно залить на сервера ТГ как т очастями видео более 50 мб
Выполнился этот код:
<?php

if (!file_exists('madeline.php')) {
    copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
}
include 'madeline.php';

$MadelineProto = new \danog\MadelineProto\API('session.madeline');
$MadelineProto->async(true);
$MadelineProto->loop(function () use ($MadelineProto) {
    yield $MadelineProto->start();

    $me = yield $MadelineProto->getSelf();

    $MadelineProto->logger($me);

    if (!$me['bot']) {
        yield $MadelineProto->messages->sendMessage(['peer' => '@danogentili', 'message' => "Hi!\nThanks for creating MadelineProto! <3"]);
        yield $MadelineProto->channels->joinChannel(['channel' => '@MadelineProto']);

        try {
            yield $MadelineProto->messages->importChatInvite(['hash' => 'https://t.me/joinchat/Bgrajz6K-aJKu0IpGsLpBg']);
        } catch (\danog\MadelineProto\RPCErrorException $e) {
            $MadelineProto->logger($e);
        }

        yield $MadelineProto->messages->sendMessage(['peer' => 'https://t.me/joinchat/Bgrajz6K-aJKu0IpGsLpBg', 'message' => 'Testing MadelineProto!']);
    }
    yield $MadelineProto->echo('OK, done!');
});


Затем перешел в раздел по загрузке файлов
и пытаюсь выполнить этот код:
$sentMessage = yield $MadelineProto->messages->sendMedia([
    'peer' => '@danogentili',
    'media' => [
        '_' => 'inputMediaUploadedDocument',
        'file' => 'video.mp4',
        'attributes' => [
            ['_' => 'documentAttributeVideo', 'round_message' => false, 'supports_streaming' => true]
        ]
    ],
    'message' => '[This is the caption](https://t.me/MadelineProto)',
    'parse_mode' => 'Markdown'
]);

Тут вопросы:
1 Правильно понимаю что это код PHP а не Питон?
2 Правильно понимаю, что этот код нужно в отдельный файл index.php и выполнять переходом на этот файл в браузере?
Но при выполнении кода мне пишет

"Выражение "yield" может использоваться только внутри функции"

И вот тут не догоняю, че делать!

3 Что нужно дописать в код?
4 Код нужно встроить в первый код, что выше дал?

5 Где нибудь просто написано как залить файл более 50 мб на сервер ТГ. Сжал свой файл со 180 мб до 35, но не принимает ТГ бот по прямой ссылке.
  • Вопрос задан
  • 296 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@hofspace
yield используй внутри функции
Например так

function test($MadelineProto){
yield ...
}

Пока сам до конца не разобрался, но если использовать yield внутри функции - он отрабатывает
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы