NodeBB's composer is groovy


  • 🚽 Regular

    So I was taking a look at what kind of network traffic goes with NodeBB out of morbid curiosity and I've found this

    0_1482062283506_Capture-inspector.png

    (why doesn't Firefox allow me to resize those columns 🗯)

    application/vnd.groove-tool-template you say?

    Something, something, groove.net

    groove.net redirects to http://www.microsoft.com/en-us/groove

    0_1482061811700_groovy-capture.png

    I didn't realize it was a music composer.

    (Btw, the base64-encoded data returned by this request decodes to what seems to be some sort of

    HTML template<div component="composer" class="composer<!-- IF resizable --> resizable<!-- ENDIF resizable --><!-- IF !isTopicOrMain --> reply<!-- ENDIF !isTopicOrMain -->">

    <div class="composer-container">
    <nav class="navbar navbar-fixed-top mobile-navbar visible-xs visible-sm">
    <div class="pull-left">
    <button class="btn btn-sm btn-primary composer-discard" data-action="discard" tabindex="-1"><i class="fa fa-times"></i></button>
    </div>
    <!-- IF isTopic -->
    <div class="category-name-container">
    <span class="category-name"></span> <i class="fa fa-sort"></i>
    </div>
    <!-- ENDIF isTopic -->
    <div class="pull-right">
    <button class="btn btn-sm btn-primary composer-submit" data-action="post" tabindex="-1"><i class="fa fa-chevron-right"></i></button>
    </div>
    <!-- IF !isTopicOrMain -->
    <h4 class="title">[[topic:composer.replying_to, "{title}"]]</h4>
    <!-- ENDIF !isTopicOrMain -->
    </nav>
    <div class="row title-container">
    <!-- IF showHandleInput -->
    <div class="col-sm-3 col-md-12">
    <input class="handle form-control" type="text" tabindex="1" placeholder="[[topic:composer.handle_placeholder]]" value="{handle}" />
    </div>
    <div class="<!-- IF isTopic -->col-lg-9<!-- ELSE -->col-lg-12<!-- ENDIF isTopic --> col-md-12">
    <!-- IF isTopicOrMain -->
    <input class="title form-control" type="text" tabindex="1" placeholder="[[topic:composer.title_placeholder]]" value="{title}"/>
    <!-- ELSE -->
    <span class="title form-control">[[topic:composer.replying_to, "{title}"]]</span>
    <!-- ENDIF isTopicOrMain -->
    </div>
    <!-- ELSE -->
    <div class="<!-- IF isTopic -->col-lg-9<!-- ELSE -->col-lg-12<!-- ENDIF isTopic --> col-md-12">
    <!-- IF isTopicOrMain -->
    <input class="title form-control" type="text" tabindex="1" placeholder="[[topic:composer.title_placeholder]]" value="{title}"/>
    <!-- ELSE -->
    <span class="title form-control">[[topic:composer.replying_to, "{title}"]]</span>
    <!-- ENDIF isTopicOrMain -->
    </div>
    <!-- ENDIF showHandleInput -->
    <!-- IF isTopic -->
    <div class="category-list-container col-lg-3 col-md-12 hidden-sm hidden-xs">
    <select tabindex="3" class="form-control category-list"></select>
    </div>
    <!-- ENDIF isTopic -->
    </div>

    &lt;div class=&quot;category-tag-row&quot;&gt;
      &lt;div class=&quot;btn-toolbar formatting-bar&quot;&gt;
        &lt;ul class=&quot;formatting-group&quot;&gt;
          &lt;!-- BEGIN formatting --&gt;
            &lt;!-- IF formatting.spacer --&gt;
            &lt;li class=&quot;spacer&quot;&gt;&lt;/li&gt;
            &lt;!-- ELSE --&gt;
            &lt;!-- IF !formatting.mobile --&gt;
            &lt;li tabindex=&quot;-1&quot; data-format=&quot;{formatting.name}&quot; title=&quot;{formatting.title}&quot;&gt;&lt;i class=&quot;{formatting.className}&quot;&gt;&lt;/i&gt;&lt;/li&gt;
            &lt;!-- ENDIF !formatting.mobile --&gt;
            &lt;!-- ENDIF formatting.spacer --&gt;
          &lt;!-- END formatting --&gt;
    
          &lt;!--[if gte IE 9]&gt;&lt;!--&gt;
            &lt;li class=&quot;img-upload-btn hide&quot; data-format=&quot;picture&quot; tabindex=&quot;-1&quot; title=&quot;[[modules:composer.upload-picture]]&quot;&gt;
              &lt;i class=&quot;fa fa-cloud-upload&quot;&gt;&lt;/i&gt;
            &lt;/li&gt;
            &lt;li class=&quot;file-upload-btn hide&quot; data-format=&quot;upload&quot; tabindex=&quot;-1&quot; title=&quot;[[modules:composer.upload-file]]&quot;&gt;
              &lt;i class=&quot;fa fa-upload&quot;&gt;&lt;/i&gt;
            &lt;/li&gt;
          &lt;!--&lt;![endif]--&gt;
    
          &lt;!-- IF allowTopicsThumbnail --&gt;
          &lt;li tabindex=&quot;-1&quot;&gt;
            &lt;i class=&quot;fa fa-th-large topic-thumb-btn topic-thumb-toggle-btn hide&quot; title=&quot;[[topic:composer.thumb_title]]&quot;&gt;&lt;/i&gt;
          &lt;/li&gt;
          &lt;div class=&quot;topic-thumb-container center-block hide&quot;&gt;
            &lt;form id=&quot;thumbForm&quot; method=&quot;post&quot; class=&quot;topic-thumb-form form-inline&quot; enctype=&quot;multipart/form-data&quot;&gt;
              &lt;img class=&quot;topic-thumb-preview&quot;&gt;&lt;/img&gt;
              &lt;div class=&quot;form-group&quot;&gt;
                &lt;label for=&quot;topic-thumb-url&quot;&gt;[[topic:composer.thumb_url_label]]&lt;/label&gt;
                &lt;input type=&quot;text&quot; id=&quot;topic-thumb-url&quot; class=&quot;form-control&quot; placeholder=&quot;[[topic:composer.thumb_url_placeholder]]&quot; /&gt;
              &lt;/div&gt;
              &lt;div class=&quot;form-group&quot;&gt;
                &lt;label for=&quot;topic-thumb-file&quot;&gt;[[topic:composer.thumb_file_label]]&lt;/label&gt;
                &lt;input type=&quot;file&quot; id=&quot;topic-thumb-file&quot; class=&quot;form-control&quot; /&gt;
              &lt;/div&gt;
              &lt;div class=&quot;form-group topic-thumb-ctrl&quot;&gt;
                &lt;i class=&quot;fa fa-spinner fa-spin hide topic-thumb-spinner&quot; title=&quot;[[topic:composer.uploading]]&quot;&gt;&lt;/i&gt;
                &lt;i class=&quot;fa fa-times topic-thumb-btn hide topic-thumb-clear-btn&quot; title=&quot;[[topic:composer.thumb_remove]]&quot;&gt;&lt;/i&gt;
              &lt;/div&gt;
            &lt;/form&gt;
          &lt;/div&gt;
          &lt;!-- ENDIF allowTopicsThumbnail --&gt;
    
          &lt;form id=&quot;fileForm&quot; method=&quot;post&quot; enctype=&quot;multipart/form-data&quot;&gt;
            &lt;!--[if gte IE 9]&gt;&lt;!--&gt;
              &lt;input type=&quot;file&quot; id=&quot;files&quot; name=&quot;files[]&quot; multiple class=&quot;gte-ie9 hide&quot;/&gt;
            &lt;!--&lt;![endif]--&gt;
            &lt;!--[if lt IE 9]&gt;
              &lt;input type=&quot;file&quot; id=&quot;files&quot; name=&quot;files[]&quot; class=&quot;lt-ie9 hide&quot; value=&quot;Upload&quot;/&gt;
            &lt;![endif]--&gt;
          &lt;/form&gt;
        &lt;/ul&gt;
    
        &lt;div class=&quot;btn-group pull-right action-bar hidden-sm hidden-xs&quot;&gt;
          &lt;button class=&quot;btn btn-default composer-discard&quot; data-action=&quot;discard&quot; tabindex=&quot;-1&quot;&gt;&lt;i class=&quot;fa fa-times&quot;&gt;&lt;/i&gt; [[topic:composer.discard]]&lt;/button&gt;
    
          &lt;button class=&quot;btn btn-primary composer-submit&quot; data-action=&quot;post&quot; tabindex=&quot;6&quot;&gt;&lt;i class=&quot;fa fa-check&quot;&gt;&lt;/i&gt; [[topic:composer.submit]]&lt;/button&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    
    &lt;div class=&quot;row write-preview-container&quot;&gt;
      &lt;div class=&quot;write-container&quot;&gt;
        &lt;div class=&quot;help-text&quot;&gt;
          &lt;span class=&quot;help hidden&quot;&gt;[[modules:composer.compose]] &lt;i class=&quot;fa fa-question-circle&quot;&gt;&lt;/i&gt;&lt;/span&gt;
          &lt;span class=&quot;toggle-preview hide&quot;&gt;[[modules:composer.show_preview]]&lt;/span&gt;
        &lt;/div&gt;
        &lt;textarea class=&quot;write&quot; tabindex=&quot;4&quot;&gt;&lt;/textarea&gt;
      &lt;/div&gt;
      &lt;div class=&quot;hidden-sm hidden-xs preview-container&quot;&gt;
        &lt;div class=&quot;help-text&quot;&gt;
          &lt;span class=&quot;toggle-preview&quot;&gt;[[modules:composer.hide_preview]]&lt;/span&gt;
        &lt;/div&gt;
        &lt;div class=&quot;preview well&quot;&gt;&lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    
    &lt;!-- IF isTopicOrMain --&gt;
    &lt;div class=&quot;tag-row&quot;&gt;
      &lt;div class=&quot;tags-container&quot;&gt;
        &lt;input class=&quot;tags&quot; type=&quot;text&quot; class=&quot;form-control&quot; placeholder=&quot;[[tags:enter_tags_here, {minimumTagLength}, {maximumTagLength}]]&quot; tabindex=&quot;5&quot;/&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;!-- ENDIF isTopicOrMain --&gt;
    
    &lt;!-- IF isTopic --&gt;
    &lt;ul class=&quot;category-selector visible-xs visible-sm&quot;&gt;
    
    &lt;/ul&gt;
    &lt;!-- ENDIF isTopic --&gt;
    
    &lt;div class=&quot;imagedrop&quot;&gt;&lt;div&gt;[[topic:composer.drag_and_drop_images]]&lt;/div&gt;&lt;/div&gt;
    
    &lt;div class=&quot;resizer&quot;&gt;&lt;div class=&quot;trigger text-center&quot;&gt;&lt;i class=&quot;fa&quot;&gt;&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;
    

    </div>
    </div>

    .

     

    So I'm guessing somewhere along the line the webserver was left to its own devises, had to guess a MIME type, figured the.tpl file extension would be this stupid thing?


    Also, no, I didn't need to read the bottom of those characters, thanks NodeBB.
    0_1482061107370_upload-9bb17d4a-e906-472f-95ff-8dec25b8af42



  • @Zecc said in NodeBB's composer is groovy:

    application/vnd.groove-tool-message you say?

    No, that's not what it says!


  • Trolleybus Mechanic

    Groove is in the HEAAAAAAAAAAAARRRRRT.

    Groove is in the heart.

    https://www.youtube.com/watch?v=etviGf1uWlg


  • Notification Spam Recipient

    I thought Groove was the thing that sat between SharePoint and OneDrive?

    Edit: ah yeah there it is:


  • 🚽 Regular

    @ben_lubar said in NodeBB's composer is groovy:

    @Zecc said in NodeBB's composer is groovy:

    application/vnd.groove-tool-message you say?

    No, that's not what it says!

    I made a mistake somewhere along, but close enough.


  • 🚽 Regular

    @Zecc said in NodeBB's composer is groovy:

    (why doesn't Firefox allow me to resize does those columns

    🤦🏽


  • 🚽 Regular

    @Tsaukpaetra said in NodeBB's composer is groovy:

    there it is

    Whoomp