From be97f6b660f54a761db5471ebe9244a11975e46a Mon Sep 17 00:00:00 2001 From: maeda577 Date: Sat, 17 Sep 2022 08:40:19 +0000 Subject: [PATCH 1/4] =?UTF-8?q?ProgramViewDialog=E3=81=AE=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE=E3=82=92=E5=A4=89=E3=81=88=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ProgramView.tsx | 12 ++---------- src/ProgramViewTable.tsx | 14 +++++++++++--- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/ProgramView.tsx b/src/ProgramView.tsx index d4a0436..aeca259 100644 --- a/src/ProgramView.tsx +++ b/src/ProgramView.tsx @@ -5,9 +5,8 @@ import Tab from '@mui/material/Tab'; import Tabs from '@mui/material/Tabs'; import Stack from '@mui/material/Stack'; -import ProgramViewDialog from './ProgramViewDialog'; import ProgramViewTable from './ProgramViewTable'; -import type { MiraviewConfig, Program, Service, ProgramPair } from './types'; +import type { MiraviewConfig, Program, Service } from './types'; // 番組情報を便利にまとめる 第1キーは日付の0時ちょうどのunixtime、第2キーはnetwork_idで第3キーはservice_id // service_id単一では重複する可能性があり、ネットワーク内では一意。ARIB TR-B15のTable 5-9に書いてある @@ -89,8 +88,6 @@ function groupPrograms(programs?: Program[]): Map(new Date(Date.now() - (5 * 60 * 60 * 1000)).setHours(0, 0, 0, 0)); - // クリックされた番組 - const [focusProgram, setFocusProgram] = React.useState(undefined); // 番組情報一覧 第一キーは日付の0時ちょうどのunixtime、第二キーはnetwork_idで第三キーはservice_id const programs = React.useMemo(() => groupPrograms(props.programs), [props.programs]); @@ -110,16 +107,11 @@ function ProgramView(props: { config: MiraviewConfig, programs?: Program[], serv - setFocusProgram(undefined) } - /> ); } diff --git a/src/ProgramViewTable.tsx b/src/ProgramViewTable.tsx index 8bd8365..95ade1c 100644 --- a/src/ProgramViewTable.tsx +++ b/src/ProgramViewTable.tsx @@ -13,16 +13,19 @@ import TableRow from '@mui/material/TableRow'; import Typography from '@mui/material/Typography'; import './ProgramViewTable.css'; -import type { Program, Service, ProgramPair } from './types'; +import ProgramViewDialog from './ProgramViewDialog'; +import type { MiraviewConfig, Program, Service, ProgramPair } from './types'; // 1日あたりの番組表のテーブル // servicesはその日の放送がなくても入っている // programsは実際にある放送だけが入っている前提 第1キーはnetwork_idで第2キーはservice_id -function ProgramViewTable(props: { services?: Service[]; programs?: Map>; onLinkClick: (program: ProgramPair) => void; }): JSX.Element { +function ProgramViewTable(props: { config: MiraviewConfig; services?: Service[]; programs?: Map>; }): JSX.Element { // 現在時刻の横棒のref const nowLineRef = React.useRef(null); // 現在時刻の横棒の高さ計算に使う時刻 const [now, setNow] = React.useState(Date.now()); + // クリックされた番組 + const [focusProgram, setFocusProgram] = React.useState(undefined); React.useEffect(() => { // 1回だけ横棒までスクロールする @@ -103,7 +106,7 @@ function ProgramViewTable(props: { services?: Service[]; programs?: Map props.onLinkClick({ program: prg, service: srv })}> + onClick={() => setFocusProgram({ program: prg, service: srv })}> { programTimeFormat.format(prg.startAt) + ' ' + prg.name } } @@ -115,6 +118,11 @@ function ProgramViewTable(props: { services?: Service[]; programs?: Map + setFocusProgram(undefined) } + /> ); } From eb51881a94833d8150ebde42bd6142e1f464502e Mon Sep 17 00:00:00 2001 From: maeda577 Date: Sat, 17 Sep 2022 09:31:45 +0000 Subject: [PATCH 2/4] =?UTF-8?q?=E3=83=81=E3=83=A3=E3=83=B3=E3=83=8D?= =?UTF-8?q?=E3=83=AB=E3=83=98=E3=83=83=E3=83=80=E3=82=92=E6=94=BE=E9=80=81?= =?UTF-8?q?=E3=81=B8=E3=81=AE=E3=83=AA=E3=83=B3=E3=82=AF=E3=81=AB=E3=81=97?= =?UTF-8?q?=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ProgramViewTable.tsx | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/ProgramViewTable.tsx b/src/ProgramViewTable.tsx index 95ade1c..53ac339 100644 --- a/src/ProgramViewTable.tsx +++ b/src/ProgramViewTable.tsx @@ -16,6 +16,15 @@ import './ProgramViewTable.css'; import ProgramViewDialog from './ProgramViewDialog'; import type { MiraviewConfig, Program, Service, ProgramPair } from './types'; +function getStreamUrl(config: MiraviewConfig, service: Service) : string | undefined { + if (!config.streamProtocol) { + return undefined + } + const streamUrl = new URL(`/api/services/${service.id}/stream`, config.mirakcUri); + streamUrl.protocol = config.streamProtocol; + return streamUrl.href; +} + // 1日あたりの番組表のテーブル // servicesはその日の放送がなくても入っている // programsは実際にある放送だけが入っている前提 第1キーはnetwork_idで第2キーはservice_id @@ -80,7 +89,11 @@ function ProgramViewTable(props: { config: MiraviewConfig; services?: Service[]; { filteredServices.map(srv => ( - {srv.name} + { + props.config.streamProtocol ? + {srv.name} : + {srv.name} + } ))} From 301b17415f1a7e6561c601639020ed9dfbfae00d Mon Sep 17 00:00:00 2001 From: maeda577 Date: Sat, 17 Sep 2022 10:59:22 +0000 Subject: [PATCH 3/4] =?UTF-8?q?=E3=83=98=E3=83=AB=E3=83=97=E3=83=A1?= =?UTF-8?q?=E3=83=83=E3=82=BB=E3=83=BC=E3=82=B8=E3=82=92=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ConfigView.tsx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/ConfigView.tsx b/src/ConfigView.tsx index 815a884..608d62a 100644 --- a/src/ConfigView.tsx +++ b/src/ConfigView.tsx @@ -128,15 +128,16 @@ function ConfigView(props: { onSave?: (savedConfig: MiraviewConfig) => void; }): 全般 - + ) => { setPopoverMessage({ messages: [ - '番組ダイアログ下部にある選局ボタンの、リンク先プロトコルを指定します', + 'リアルタイム視聴へのリンクに使用するプロトコルを指定します', + 'リンクは番組ダイアログ下部にある選局ボタンと、番組表のチャンネル名に張られています', '使用可能な文字は英数字と . + _ - です', 'デフォルト値はvlcです', - '空欄にした場合、選局ボタンが無効になります', + '空欄にした場合、リンクが無効になります', ], anchorEl: event.currentTarget }); From f803004eb3f843a6ce6cd06f917eab2d7b3b00ba Mon Sep 17 00:00:00 2001 From: maeda577 Date: Sat, 17 Sep 2022 10:59:49 +0000 Subject: [PATCH 4/4] =?UTF-8?q?0.1.2=E6=8E=A1=E7=95=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f57facc..a3f8e88 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "miraview", - "version": "0.1.1", + "version": "0.1.2", "private": true, "homepage": ".", "dependencies": {