<commit_before><!DOCTYPE html>
<!--
Copyright 2016-2018 Brazil Ltd.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<meta charset="UTF-8">
<ngx-loading-bar></ngx-loading-bar>
<div class="programs view-content d-flex flex-column fit pt-5" [hotkeys]="hotkeys">
    <div class="view-content-header py-1 bg-black text-light">
        <form class="row m-0" [formGroup]="form">
            <div class="form-inline col-12 col-sm-6">
                <div class="input-group mr-sm-1" title="表示データ" *ngIf="archiveEnabled">
                    <label class="input-group-prepend" for="source">
                        <span class="input-group-text d-inline-block">
                            <span class="fas fa-database"></span>
                        </span>
                    </label>
                    <select id="source" class="form-control" formControlName="source">
                        <option value="archive">番組表</option>
                        <option value="recorded">録画情報</option>
                    </select>
                </div>
                <div class="input-group mr-sm-1" title="並び順">
                    <label class="input-group-prepend" for="sort">
                        <span class="input-group-text d-inline-block">
                            <span class="fas fa-sort"></span>
                        </span>
                    </label>
                    <select id="sort" class="form-control" formControlName="sort">
                        <option value="desc">放送日時(新しい順)</option>
                        <option value="asc">放送日時(古い順)</option>
                    </select>
                </div>
            </div>
            <div class="form-inline col-12 col-sm-6 d-block d-sm-flex justify-content-end text-right">
                <div class="input-group mr-sm-1 order-sm-2" title="表示数">
                    <label class="input-group-prepend" for="view">
                        <span class="input-group-text d-inline-block">
                            <span class="fas fa-arrows-alt-v"></span>
                        </span>
                    </label>
                    <select id="view" class="form-control" formControlName="view">
                        <option value="10">10件表示</option>
                        <option value="25">25件表示</option>
                        <option value="50">50件表示</option>
                        <option value="100">100件表示</option>
                    </select>
                </div>
                <div class="form-group mb-0 mr-sm-1 order-sm-1">
                    <span class="form-control-plaintext">
                        {{pageStatus}}
                    </span>
                </div>
            </div>
        </form>
    </div>
    <div class="h2 text-center" [class.d-none]="!query">検索結果</div>
    <div class="view-content-body flex-fill overflow-auto" #viewport>
        <div class="container">
            <ul class="list-unstyled mt-3">
                <li class="media media-program m-0 position-relative border-bottom border-secondary bg-white selectable" tabindex="0" *ngFor="let item of data" [class.selected]="selectedItem === item" (focus)="select(item)" (dblclick)="play(item)" (keydown.enter)="play(item)">
                    <a class="m-3" href="" tabindex="-1" *ngIf="previewEnabled" (click)="play(item); false">
                        <img class="preview" width="160" height="90"
                            [src]="(item.preview | async) || 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII='">
                    </a>
                    <div class="media-body" [class.ml-5]="!previewEnabled">
                        <div class="info">
                            <span class="date text-primary font-weight-bold">{{item.start | dateEx:hourFirst:hourFormat:'y/M/d HHHH:mm'}}</span>
                            <span class="channel quick-search quick-search-hidden">
                                {{item.channelName}}
                                <span class="quick-search-btn" title="チャンネルで検索" (click)="search('type:' + item.type + ' ch:' + item.channel)">
                                    <span class="fas fa-search"></span>
                                </span>
                            </span>
                            <span class="length">{{'(' + (item.duration / 60000) + '分)'}}</span>
                            <a class="badge" href="" title="カテゴリで検索" tabindex="-1" [ngClass]="'badge-' + item.category.codeName" (click)="search('cat:' + item.category.codeName); false">
                                {{item.category.name}}
                            </a>
                            <span class="badge badge-balloon" [class.lv1]="(item.commentSpeed | async) >= 10" [class.lv2]="(item.commentSpeed | async) >= 25" [class.lv3]="(item.commentSpeed | async) >= 50" [class.lv4]="(item.commentSpeed | async) >= 100" [class.lv5]="(item.commentSpeed | async) >= 200"
                                *ngIf="countMode !== 'none' && (item.commentCount | async) " [title]="'コメント数: ' + (item.commentCount | async) + '\n勢い： ' + (item.commentSpeed | async | number:'1.1-1') + '/分(最大' + (item.commentMaxSpeed | async) + '/分)'">
                                <ng-container [ngSwitch]="countMode">
                                    <ng-container *ngSwitchCase="'speed'">{{item.commentSpeed | async | number:'1.1-1'}}</ng-container>
                                    <ng-container *ngSwitchCase="'maxspeed'">{{item.commentMaxSpeed | async}}</ng-container>
                                    <ng-container *ngSwitchDefault>{{item.commentCount | async}}</ng-container>
                                </ng-container>
                            </span>
                        </div>
                        <div class="title quick-search quick-search-hidden font-weight-bold">
                            {{item.fullTitle}}
                            <span class="quick-search-btn" title="番組名で検索" (click)="search(item.title)">
                                <span class="fas fa-search"></span>
                            </span>
                        </div>
                        <div class="detail small">{{item.detail}}</div>
                    </div>
                </li>
            </ul>
        </div>
    </div>
    <div class="view-content-footer row m-0">
        <pagination class="mx-auto" [class.d-none]="true" [class.d-sm-flex]="view < hits" previousText="&lsaquo;" nextText="&rsaquo;" firstText="&laquo;" lastText="&raquo;" [maxSize]="10" [rotate]="true" [boundaryLinks]="true" [itemsPerPage]="view" [totalItems]="hits"
            (pageChanged)="onPageChanged($event)" [ngModel]="page"></pagination>
        <pagination class="mx-auto" [class.d-sm-none]="true" [class.d-none]="view >= hits" previousText="&lsaquo;" nextText="&rsaquo;" firstText="&laquo;" lastText="&raquo;" [maxSize]="1" [rotate]="true" [boundaryLinks]="true" [itemsPerPage]="view" [totalItems]="hits"
            (pageChanged)="onPageChanged($event)" [ngModel]="page"></pagination>
    </div>
    <form class="form-inline fixed-bottom col-3 col-sm-2 col-lg-1 m-4 mb-sm-5 mb-md-4 ml-auto">
        <button class="btn btn-primary ml-auto" type="button" title="選択した番組を再生" (click)="play()">再生</button>
    </form>
</div><commit_msg>miyoutv: 番組一覧の表示を調整<commit_after><!DOCTYPE html>
<!--
Copyright 2016-2018 Brazil Ltd.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<meta charset="UTF-8">
<ngx-loading-bar></ngx-loading-bar>
<div class="programs view-content d-flex flex-column fit pt-5" [hotkeys]="hotkeys">
    <div class="view-content-header py-1 bg-black text-light">
        <form class="row m-0" [formGroup]="form">
            <div class="form-inline col-12 col-sm-6">
                <div class="input-group mr-sm-1" title="表示データ" *ngIf="archiveEnabled">
                    <label class="input-group-prepend" for="source">
                        <span class="input-group-text d-inline-block">
                            <span class="fas fa-database"></span>
                        </span>
                    </label>
                    <select id="source" class="form-control" formControlName="source">
                        <option value="archive">番組表</option>
                        <option value="recorded">録画情報</option>
                    </select>
                </div>
                <div class="input-group mr-sm-1" title="並び順">
                    <label class="input-group-prepend" for="sort">
                        <span class="input-group-text d-inline-block">
                            <span class="fas fa-sort"></span>
                        </span>
                    </label>
                    <select id="sort" class="form-control" formControlName="sort">
                        <option value="desc">放送日時(新しい順)</option>
                        <option value="asc">放送日時(古い順)</option>
                    </select>
                </div>
            </div>
            <div class="form-inline col-12 col-sm-6 d-block d-sm-flex justify-content-end text-right">
                <div class="input-group mr-sm-1 order-sm-2" title="表示数">
                    <label class="input-group-prepend" for="view">
                        <span class="input-group-text d-inline-block">
                            <span class="fas fa-arrows-alt-v"></span>
                        </span>
                    </label>
                    <select id="view" class="form-control" formControlName="view">
                        <option value="10">10件表示</option>
                        <option value="25">25件表示</option>
                        <option value="50">50件表示</option>
                        <option value="100">100件表示</option>
                    </select>
                </div>
                <div class="form-group mb-0 mr-sm-1 order-sm-1">
                    <span class="form-control-plaintext text-light">
                        {{pageStatus}}
                    </span>
                </div>
            </div>
        </form>
    </div>
    <div class="h2 text-center" [class.d-none]="!query">検索結果</div>
    <div class="view-content-body flex-fill overflow-auto" #viewport>
        <div class="container">
            <ul class="list-unstyled mt-3">
                <li class="media media-program m-0 position-relative border-bottom border-secondary bg-white selectable" tabindex="0" *ngFor="let item of data" [class.selected]="selectedItem === item" (focus)="select(item)" (dblclick)="play(item)" (keydown.enter)="play(item)">
                    <a class="m-3" href="" tabindex="-1" *ngIf="previewEnabled" (click)="play(item); false">
                        <img class="preview" width="160" height="90"
                            [src]="(item.preview | async) || 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII='">
                    </a>
                    <div class="media-body" [class.ml-5]="!previewEnabled">
                        <div class="info">
                            <span class="date text-primary font-weight-bold">{{item.start | dateEx:hourFirst:hourFormat:'y/M/d HHHH:mm'}}</span>
                            <span class="channel quick-search quick-search-hidden">
                                {{item.channelName}}
                                <span class="quick-search-btn" title="チャンネルで検索" (click)="search('type:' + item.type + ' ch:' + item.channel)">
                                    <span class="fas fa-search"></span>
                                </span>
                            </span>
                            <span class="length">{{'(' + (item.duration / 60000) + '分)'}}</span>
                            <a class="badge" href="" title="カテゴリで検索" tabindex="-1" [ngClass]="'badge-' + item.category.codeName" (click)="search('cat:' + item.category.codeName); false">
                                {{item.category.name}}
                            </a>
                            <span class="badge badge-balloon" [class.lv1]="(item.commentSpeed | async) >= 10" [class.lv2]="(item.commentSpeed | async) >= 25" [class.lv3]="(item.commentSpeed | async) >= 50" [class.lv4]="(item.commentSpeed | async) >= 100" [class.lv5]="(item.commentSpeed | async) >= 200"
                                *ngIf="countMode !== 'none' && (item.commentCount | async) " [title]="'コメント数: ' + (item.commentCount | async) + '\n勢い： ' + (item.commentSpeed | async | number:'1.1-1') + '/分(最大' + (item.commentMaxSpeed | async) + '/分)'">
                                <ng-container [ngSwitch]="countMode">
                                    <ng-container *ngSwitchCase="'speed'">{{item.commentSpeed | async | number:'1.1-1'}}</ng-container>
                                    <ng-container *ngSwitchCase="'maxspeed'">{{item.commentMaxSpeed | async}}</ng-container>
                                    <ng-container *ngSwitchDefault>{{item.commentCount | async}}</ng-container>
                                </ng-container>
                            </span>
                        </div>
                        <div class="title quick-search quick-search-hidden font-weight-bold">
                            {{item.fullTitle}}
                            <span class="quick-search-btn" title="番組名で検索" (click)="search(item.title)">
                                <span class="fas fa-search"></span>
                            </span>
                        </div>
                        <div class="detail small">{{item.detail}}</div>
                    </div>
                </li>
            </ul>
        </div>
    </div>
    <div class="view-content-footer">
        <div class="row">
            <pagination class="mx-auto my-1" [class.d-none]="true" [class.d-sm-flex]="view < hits" previousText="&lsaquo;" nextText="&rsaquo;" firstText="&laquo;" lastText="&raquo;" [maxSize]="10" [rotate]="true" [boundaryLinks]="true" [itemsPerPage]="view" [totalItems]="hits"
                (pageChanged)="onPageChanged($event)" [ngModel]="page"></pagination>
            <pagination class="mx-auto my-1" [class.d-sm-none]="true" [class.d-none]="view >= hits" previousText="&lsaquo;" nextText="&rsaquo;" firstText="&laquo;" lastText="&raquo;" [maxSize]="1" [rotate]="true" [boundaryLinks]="true" [itemsPerPage]="view" [totalItems]="hits"
                (pageChanged)="onPageChanged($event)" [ngModel]="page"></pagination>
        </div>
    </div>
    <form class="form-inline fixed-bottom col-3 col-sm-2 col-lg-1 m-4 mb-sm-5 mb-md-4 ml-auto">
        <button class="btn btn-primary ml-auto" type="button" title="選択した番組を再生" (click)="play()">再生</button>
    </form>
</div>
{'fraction_non_alphanumeric': 0.15887910123835056, 'fraction_numerical': 0.013979318268862504, 'mean_word_length': 1.787226472157979, 'pattern_counts': {'":': 0, '<': 251, '<?xml version=': 0, '>': 261, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 8, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6535819', 'n_tokens_mistral': 4754, 'n_tokens_neox': 4521, 'n_words': 866}