• Extensions
  • FriendsOfFlarum Byōbu, well integrated, advanced private discussions

@JohnP One particular quirk is that this extension MUST be enabled before approval. This is fixed with the next release of approval, but for now this is one of the major reasons why I wouldn't recommend tagging this as broadly compatible.

Thank you luceos for your explanation about the current state of the extension, from what i understand your goal is to be able to publish a new release of byobu with the next release of flarum core ?

9 days later

FriendsOfFlarum Issue

I am getting the issue of The requested resource was not found.

POST https://site.com/api/discussions

Illuminate\Database\Eloquent\ModelNotFoundException: No query results for model [Flarum\Discussion\Discussion]. in /path_to_site/vendor/illuminate/database/Eloquent/Builder.php:503
Stack trace:
#0 /path_to_site/vendor/flarum/core/src/Discussion/DiscussionRepository.php(39): Illuminate\Database\Eloquent\Builder->firstOrFail()
#1 /path_to_site/vendor/flarum/core/src/Discussion/Command/ReadDiscussionHandler.php(47): Flarum\Discussion\DiscussionRepository->findOrFail(425, Object(Flarum\User\User))
#2 /path_to_site/vendor/illuminate/bus/Dispatcher.php(122): Flarum\Discussion\Command\ReadDiscussionHandler->handle(Object(Flarum\Discussion\Command\ReadDiscussion))
#3 /path_to_site/vendor/illuminate/pipeline/Pipeline.php(128): Illuminate\Bus\Dispatcher->Illuminate\Bus\{closure}(Object(Flarum\Discussion\Command\ReadDiscussion))
#4 /path_to_site/vendor/illuminate/pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Flarum\Discussion\Command\ReadDiscussion))
#5 /path_to_site/vendor/illuminate/bus/Dispatcher.php(132): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#6 /path_to_site/vendor/illuminate/bus/Dispatcher.php(78): Illuminate\Bus\Dispatcher->dispatchNow(Object(Flarum\Discussion\Command\ReadDiscussion))
#7 /path_to_site/vendor/flarum/core/src/Api/Controller/CreateDiscussionController.php(68): Illuminate\Bus\Dispatcher->dispatch(Object(Flarum\Discussion\Command\ReadDiscussion))
#8 /path_to_site/vendor/flarum/core/src/Api/Controller/AbstractSerializeController.php(102): Flarum\Api\Controller\CreateDiscussionController->data(Object(Laminas\Diactoros\ServerRequest), Object(Tobscure\JsonApi\Document))
#9 /path_to_site/vendor/flarum/core/src/Api/Controller/AbstractCreateController.php(22): Flarum\Api\Controller\AbstractSerializeController->handle(Object(Laminas\Diactoros\ServerRequest))
#10 /path_to_site/vendor/flarum/core/src/Http/RouteHandlerFactory.php(38): Flarum\Api\Controller\AbstractCreateController->handle(Object(Laminas\Diactoros\ServerRequest))
#11 /path_to_site/vendor/flarum/core/src/Http/Middleware/ExecuteRoute.php(27): Flarum\Http\RouteHandlerFactory->Flarum\Http\{closure}(Object(Laminas\Diactoros\ServerRequest), Array)
#12 /path_to_site/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\ExecuteRoute->process(Object(Laminas\Diactoros\ServerRequest), Object(Closure))
#13 /path_to_site/vendor/flarum/core/src/Api/Middleware/ThrottleApi.php(33): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#14 /path_to_site/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Api\Middleware\ThrottleApi->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#15 /path_to_site/vendor/flarum/core/src/Http/Middleware/CheckCsrfToken.php(44): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#16 /path_to_site/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\CheckCsrfToken->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#17 /path_to_site/vendor/flarum/core/src/Http/Middleware/ResolveRoute.php(67): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#18 /path_to_site/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\ResolveRoute->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#19 /path_to_site/vendor/flarum/core/src/Http/Middleware/SetLocale.php(50): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#20 /path_to_site/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\SetLocale->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#21 /path_to_site/vendor/flarum/core/src/Http/Middleware/AuthenticateWithHeader.php(55): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#22 /path_to_site/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\AuthenticateWithHeader->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#23 /path_to_site/vendor/flarum/core/src/Http/Middleware/AuthenticateWithSession.php(32): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#24 /path_to_site/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\AuthenticateWithSession->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#25 /path_to_site/vendor/flarum/core/src/Http/Middleware/RememberFromCookie.php(52): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#26 /path_to_site/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\RememberFromCookie->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#27 /path_to_site/vendor/flarum/core/src/Http/Middleware/StartSession.php(61): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#28 /path_to_site/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\StartSession->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#29 /path_to_site/vendor/flarum/core/src/Api/Middleware/FakeHttpMethods.php(29): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#30 /path_to_site/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Api\Middleware\FakeHttpMethods->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#31 /path_to_site/vendor/flarum/core/src/Http/Middleware/ParseJsonBody.php(28): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#32 /path_to_site/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\ParseJsonBody->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#33 /path_to_site/vendor/flarum/core/src/Http/Middleware/HandleErrors.php(57): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#34 /path_to_site/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\HandleErrors->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#35 /path_to_site/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(84): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#36 /path_to_site/vendor/middlewares/request-handler/src/RequestHandler.php(84): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#37 /path_to_site/vendor/laminas/laminas-stratigility/src/Next.php(61): Middlewares\RequestHandler->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#38 /path_to_site/vendor/middlewares/base-path-router/src/BasePathRouter.php(101): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#39 /path_to_site/vendor/laminas/laminas-stratigility/src/Next.php(61): Middlewares\BasePathRouter->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#40 /path_to_site/vendor/laminas/laminas-stratigility/src/Middleware/OriginalMessages.php(42): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#41 /path_to_site/vendor/laminas/laminas-stratigility/src/Next.php(61): Laminas\Stratigility\Middleware\OriginalMessages->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#42 /path_to_site/vendor/middlewares/base-path/src/BasePath.php(73): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#43 /path_to_site/vendor/laminas/laminas-stratigility/src/Next.php(61): Middlewares\BasePath->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#44 /path_to_site/vendor/flarum/core/src/Http/Middleware/ProcessIp.php(24): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#45 /path_to_site/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\ProcessIp->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#46 /path_to_site/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(84): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#47 /path_to_site/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(73): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\EmptyPipelineHandler))
#48 /path_to_site/vendor/laminas/laminas-httphandlerrunner/src/RequestHandlerRunner.php(96): Laminas\Stratigility\MiddlewarePipe->handle(Object(Laminas\Diactoros\ServerRequest))
#49 /path_to_site/vendor/flarum/core/src/Http/Server.php(44): Laminas\HttpHandlerRunner\RequestHandlerRunner->run()
#50 /path_to_site/index.php(26): Flarum\Http\Server->listen()
#51 {main}

    askvortsov Try disabling approval

    Dumb question 😅 How to do that? I tried to find this option but I couldn't.

      Not officially compatible but we have it working without too many quirks (that I've noticed up till now) - approval is off, but we don't use it anyway, so that's no big issue.

      It doesn't work at all for me since beta-15. Long (public) threads fail when Byobu is enabled.

      I guess it's a known issue. But I think even if it works for you now, it may not work once threads get to a certain length FYI.

      I greatly appreciate the work of @luceos and others. But I've always been baffled why Flarum can't figure out a basic private messaging system. It's a highly used feature in our community and a fundamental feature in all other forum platforms. 🤷‍♂️

      askvortsov yes, can fix the "The requested resource was not found." problem now by disable "approval"

      How many posts do you have in the threads? It looks like Byōbu and beta-16 slow down the API read requests so threads about 150+ posts cause a definitive timeouts. I'll do a deeper check later.

      10 days later

      1.0.0-beta.1

      ❗️ Not recommended for production communities

      • Flarum 1.0 (required)
      • Some performance gains (I'm aware that more are needed, hence the beta tag)

      Your feedback is critical - please provide as much information as neccessary to help bring this extension into shape as soon as possible 👍

      Installing
      composer require fof/byobu:^1.0.0-beta.1
      php flarum cache:clear
        8 days later

        mekici I'm afraid you'll have to be a little more specific. In what way is it "not working"? Console errors? Log errors? Unexpected behavior?

          IanM After upgrading to v1.0.1, I installed the Byobu extension. Now I checked, it started working interestingly. But there is a problem now

          • IanM replied to this.

            IanM

            Flarum core 1.0.1
            PHP version: 7.4.16
            Loaded extensions: Core, date, libxml, openssl, pcre, zlib, filter, hash, pcntl,                                                                                                              Reflection, SPL, session, standard, sodium, mysqlnd, PDO, xml, calendar, ctype,                                                                                                              curl, dom, mbstring, FFI, fileinfo, ftp, gd, gettext, gmp, iconv, imap, intl, j                                                                                                             son, exif, mysqli, pdo_mysql, Phar, posix, readline, shmop, SimpleXML, soap, soc                                                                                                             kets, sysvmsg, sysvsem, sysvshm, tokenizer, xmlreader, xmlrpc, xmlwriter, xsl, z                                                                                                             ip, Zend OPcache
            +-------------------------------+--------------+--------+
            | Flarum Extensions             |              |        |
            +-------------------------------+--------------+--------+
            | ID                            | Version      | Commit |
            +-------------------------------+--------------+--------+
            | flarum-flags                  | v1.0.0       |        |
            | flarum-approval               | v1.0.0       |        |
            | flarum-tags                   | v1.0.1       |        |
            | flarum-suspend                | v1.0.0       |        |
            | flarum-subscriptions          | v1.0.0       |        |
            | fof-byobu                     | 1.0.0-beta.1 |        |
            | phenomlab-fancybox-wrapper    | 0.8          |        |
            | fof-github-autolink           | 1.0.0        |        |
            | fof-drafts                    | 1.0.0        |        |
            | askvortsov-markdown-tables    | v1.2.1       |        |
            | flarum-markdown               | v1.0.1       |        |
            | zerosonesfun-member           | 0.2          |        |
            | clarkwinkelmann-circle-groups | 1.0.0        |        |
            | fof-upload                    | 1.0.1        |        |
            | flarum-lock                   | v1.0.0       |        |
            | askvortsov-pwa                | v3.0.3       |        |
            | fof-username-request          | 1.0.0        |        |
            | fof-user-bio                  | 1.0.0        |        |
            | fof-split                     | 1.0.0        |        |
            | fof-sitemap                   | 1.0.0        |        |
            | fof-pages                     | 1.0.0        |        |
            | fof-links                     | 1.0.0        |        |
            | fof-follow-tags               | 1.0.0        |        |
            | fof-best-answer               | 1.0.0        |        |
            | tolgaaaltas-lang-turkish      | 1.0.2        |        |
            | flarum-lang-english           | v1.0.0       |        |
            | flarum-emoji                  | v1.0.0       |        |
            | flarum-bbcode                 | v1.0.0       |        |
            | flarum-mentions               | v1.0.0       |        |
            | flarum-sticky                 | v1.0.0       |        |
            | flarum-likes                  | v1.0.0       |        |
            | flarum-statistics             | v1.0.0       |        |
            | flarum-pusher                 | v1.0.0       |        |
            | tolgaaaltas-turkish           | 1.0.2        |        |
            | fof-formatting                | 1.0.0        |        |
            | fof-nightmode                 | 1.0.0        |        |
            | fof-profile-image-crop        | 1.0.0        |        |
            | fof-spamblock                 | 1.0.0        |        |
            | fof-subscribed                | 1.0.0        |        |
            | fof-user-directory            | 1.0.1        |        |
            | askvortsov-moderator-warnings | v0.6.0       |        |
            | zerosonesfun-direct-links     | 2.1          |        |
            | fof-analytics                 | 1.0.0        |        |
            | fof-oauth                     | 1.0.0        |        |
            | fof-filter                    | 1.0.0        |        |
            | v17development-seo            | v1.8.0       |        |
            +-------------------------------+--------------+--------+
            • IanM replied to this.