<commit_before>- content_for(:title, @race)

- content_for(:header) do
  ol.breadcrumb.shadow
    li.breadcrumb-item = link_to(site_title, root_path)
    li.breadcrumb-item = link_to('Versus', races_path, class: 'text-success')
    li.breadcrumb-item.active = link_to("Race #{@race.to_param}", race_path(@race, race_params), class: 'text-success')

.text-center v-if="false" = render partial: 'shared/spinner'
race inline-template=true race-id=<EMAIL> v-cloak=true
  div
    .text-center v-if="loading" = render partial: 'shared/spinner', locals: {message: 'Loading realtime race'}
    div v-show="!loading"
      .row.mx-2
        .col-md-6 = render partial: 'races/title', locals: {race: @race}
        #stats-box.col-md-6 = render partial: 'races/stats', locals: {race: @race}

    .p-1
      #entries-table.card.shadow
        = render partial: 'races/entries_table', locals: {race: @race}
    .row.row-cols-1.row-cols-md-2.mx-0
      .col.p-1
        .card
          .list-group.list-group-flush style='max-height: 500px; overflow-y: scroll'
            - unless @race.locked?
              race-chat inline-template=true v-if='race' :race='race'
                .list-group-item#input-list-item.p-0
                  = form_for(:chat, html: {onsubmit: 'event.preventDefault()'}) do |f|
                    .input-group
                      input.form-control#input-chat-text(
                        aria-label='Input message'
                        autocomplete='off'
                        autofocus=true
                        disabled=current_user.nil?
                        name='body'
                        placeholder='Chat...'
                        type='text'
                        v-model='body'
                      )
                      .input-group-append
                        button.btn.btn-dark#chat-submit(
                          :content='error'
                          :disabled='body === ""'
                          @click='chat'
                          aria-label='Submit message'
                          type='submit'
                          v-tippy=true
                        )
                          template v-if='loading' = render partial: 'shared/spinner'
                          span.text-danger v-else-if='error' => icon('fas', 'exclamation-triangle')
                          template v-else=true => icon('fas', 'comment')
            - @race.chat_messages.includes(user: [:twitch, :google]).order(created_at: :desc).each do |msg|
              = render 'chat_messages/show', chat_message: msg
            .list-group-item.p-0
              .media
                img.mr-3 src=asset_path('logo-darkbg-breathingroom.png') width=25 height=25 alt='Splits.io image only logo'
                .media-body
                  span.mr-2: .badge.badge-success Splits.io
                  i Race created
                  .float-right.pr-2
                    = render partial: 'shared/relative_time', locals: {time: @race.created_at}
      .col.p-1: race-disclaimer.card inline-template=true
        div
          .bg-darkish.p-4 v-if='!accepted' style='height: 100%'
            p
              ' Attachments are uploaded by the race creator. Do not download any attachments
              ul
                li that you do not recognize as necessary for your race,
                li that are executable files, or
                li if you do not both know and trust the race creator.
              ' Splits.io is not affiliated with the race creator or attachments and is not responsible for
              ' attachments or their effects on you and your device.
            button.btn.btn-outline-light @click='accept' I understand
          div v-show='accepted' v-cloak=true
            h6.card-header Attachments
            ul#attachments.list-group.list-group-flush = render partial: 'races/attachments', locals: {race: @race}
            - if @race.belongs_to?(current_user) && !@race.started?
              .card-footer
                = form_with(model: @race, url: api_v4_race_path(@race), method: 'PATCH', html: { \
                  class: 'w-100 d-flex justify-content-between auth-me' \
                }) do |f|
                  = f.file_field(:attachments, multiple: true, direct_upload: true, class: 'form-control-file')
                  = f.submit('Attach', class: 'btn btn-outline-light')

    .p-1
      race-streams inline-template=true  v-if='race' :race='race' v-cloak=true
        .card v-if='!finished'
          .card-header: .row.d-flex.align-items-center
            h6.col-md-6 Stream Deck
            .col-md-6
              multiselect(
                v-model="value"
                :options="options"
                :multiple='true'
                :clear-on-select='false'
                :close-on-select='false'
                :searchable='false'
                :preselect-first='false'
                placeholder="Streams"
                label="name"
                track-by="name"
              )
                template slot="selection" slot-scope="{ values, search, isOpen }"
                  span class="multiselect__single" v-if="values.length && !isOpen"
                    ' {{ value.length }}/{{ options.length }} options selected
          .card-body
            .card-deck#stream-deck
              .card v-for='stream in value' :key='stream.id'
                .card-body.p-0.twitch-stream
                  iframe(
                    :src='`https://player.twitch.tv/?channel=${stream.id}&muted=true`'
                    height='100%'
                    width='100%'
                    frameborder='0'
                    scrolling='no'
                    allowfullscreen='true'
                  )
            .center v-if='value.length === 0' Select streams to show from the box above<commit_msg>Update show.slim (#747)<commit_after>- content_for(:title, @race)

- content_for(:header) do
  ol.breadcrumb.shadow
    li.breadcrumb-item = link_to(site_title, root_path)
    li.breadcrumb-item = link_to('Versus', races_path, class: 'text-success')
    li.breadcrumb-item.active = link_to("Race #{@race.to_param}", race_path(@race, race_params), class: 'text-success')

.text-center v-if="false" = render partial: 'shared/spinner'
race inline-template=true race-id=<EMAIL> v-cloak=true
  div
    .text-center v-if="loading" = render partial: 'shared/spinner', locals: {message: 'Loading realtime race'}
    div v-show="!loading"
      .row.mx-2
        .col-md-6 = render partial: 'races/title', locals: {race: @race}
        #stats-box.col-md-6 = render partial: 'races/stats', locals: {race: @race}

    .p-1
      #entries-table.card.shadow
        = render partial: 'races/entries_table', locals: {race: @race}
    .row.row-cols-1.row-cols-md-2.mx-0
      .col.p-1
        .card
          .list-group.list-group-flush style='max-height: 500px; overflow-y: scroll'
            - unless @race.locked?
              race-chat inline-template=true v-if='race' :race='race'
                .list-group-item#input-list-item.p-0
                  = form_for(:chat, html: {onsubmit: 'event.preventDefault()'}) do |f|
                    .input-group
                      input.form-control#input-chat-text(
                        aria-label='Input message'
                        autocomplete='off'
                        autofocus=true
                        disabled=current_user.nil?
                        name='body'
                        placeholder='Chat...'
                        type='text'
                        v-model='body'
                      )
                      .input-group-append
                        button.btn.btn-dark#chat-submit(
                          :content='error'
                          :disabled='body === ""'
                          @click='chat'
                          aria-label='Submit message'
                          type='submit'
                          v-tippy=true
                        )
                          template v-if='loading' = render partial: 'shared/spinner'
                          span.text-danger v-else-if='error' => icon('fas', 'exclamation-triangle')
                          template v-else=true => icon('fas', 'comment')
            - @race.chat_messages.includes(user: [:twitch, :google]).order(created_at: :desc).each do |msg|
              = render 'chat_messages/show', chat_message: msg
            .list-group-item.p-0
              .media
                img.mr-3 src=asset_path('logo-darkbg-breathingroom.png') width=25 height=25 alt='Splits.io image only logo'
                .media-body
                  span.mr-2: .badge.badge-success Splits.io
                  i Race created
                  .float-right.pr-2
                    = render partial: 'shared/relative_time', locals: {time: @race.created_at}
      .col.p-1: race-disclaimer.card inline-template=true
        div
          .bg-darkish.p-4 v-if='!accepted' style='height: 100%'
            p
              ' Attachments are uploaded by the race creator. Do not download any attachments
              ul
                li that you do not recognize as necessary for your race,
                li that are executable files, or
                li if you do not both know and trust the race creator.
              ' Splits.io is not affiliated with the race creator or attachments and is not responsible for
              ' attachments or their effects on you and your device.
            button.btn.btn-outline-light @click='accept' I understand
          div v-show='accepted' v-cloak=true
            h6.card-header Attachments
            ul#attachments.list-group.list-group-flush = render partial: 'races/attachments', locals: {race: @race}
            - if @race.belongs_to?(current_user) && !@race.started?
              .card-footer
                = form_with(model: @race, url: api_v4_race_path(@race), method: 'PATCH', html: { \
                  class: 'w-100 d-flex justify-content-between auth-me' \
                }) do |f|
                  = f.file_field(:attachments, multiple: true, direct_upload: true, class: 'form-control-file')
                  = f.submit('Attach', class: 'btn btn-outline-light')

    .p-1
      race-streams inline-template=true  v-if='race' :race='race' v-cloak=true
        .card v-if='!finished'
          .card-header: .row.d-flex.align-items-center
            h6.col-md-6 Stream Deck
            .col-md-6
              multiselect(
                v-model="value"
                :options="options"
                :multiple='true'
                :clear-on-select='false'
                :close-on-select='false'
                :searchable='false'
                :preselect-first='false'
                placeholder="Streams"
                label="name"
                track-by="name"
              )
                template slot="selection" slot-scope="{ values, search, isOpen }"
                  span class="multiselect__single" v-if="values.length && !isOpen"
                    ' {{ value.length }}/{{ options.length }} options selected
          .card-body
            .card-deck#stream-deck
              .card v-for='stream in value' :key='stream.id'
                .card-body.p-0.twitch-stream
                  iframe(
                    :src='`https://player.twitch.tv/?channel=${stream.id}&muted=true&parent=splits.io`'
                    height='100%'
                    width='100%'
                    frameborder='0'
                    scrolling='no'
                    allowfullscreen='true'
                  )
            .center v-if='value.length === 0' Select streams to show from the box above
{'fraction_non_alphanumeric': 0.12336272579402448, 'fraction_numerical': 0.007619210684016779, 'mean_word_length': 1.523655217109527, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 9, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5184140', 'n_tokens_mistral': 3456, 'n_tokens_neox': 3224, 'n_words': 679}