Skip to content

Commit 9e11fef

Browse files
committed
フラグ
1 parent 52d583a commit 9e11fef

File tree

5 files changed

+58
-33
lines changed

5 files changed

+58
-33
lines changed

package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
"dependencies": {
1919
"@icons-pack/react-simple-icons": "^10.1.0",
2020
"@internationalized/date": "^3.5.6",
21-
"@midra/nco-api": "^1.8.9",
21+
"@midra/nco-api": "^1.8.10",
2222
"@midra/nco-parser": "^1.0.27",
2323
"@nextui-org/react": "^2.4.8",
2424
"@webext-core/messaging": "^2.0.2",
@@ -53,6 +53,6 @@
5353
"tailwindcss": "^3.4.14",
5454
"typescript": "^5.6.3",
5555
"utility-types": "^3.11.0",
56-
"wxt": "^0.19.12"
56+
"wxt": "^0.19.13"
5757
}
5858
}

pnpm-lock.yaml

+17-17
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/entrypoints/popup/MainPane/Search/SyobocalResults/SubtitleDetail.tsx

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { SyoboCalProgram } from '@midra/nco-api/types/syobocal/json'
1+
import type { SyoboCalProgramDb } from '@midra/nco-api/types/syobocal/db'
22
import type { ScTitleItem } from './TitleItem'
33
import type { ScSubtitleItem } from './SubtitleItem'
44

@@ -36,7 +36,7 @@ export const SubtitleDetail = forwardRef<
3636
>(({ title, subtitle }, ref) => {
3737
const [isLoading, setIsLoading] = useState(false)
3838
const [currentTid, setCurrentTid] = useState('')
39-
const [programs, setPrograms] = useState<SyoboCalProgram[]>([])
39+
const [programs, setPrograms] = useState<SyoboCalProgramDb[]>([])
4040

4141
const stateSlotDetails = useNcoState('slotDetails')
4242

@@ -70,18 +70,18 @@ export const SubtitleDetail = forwardRef<
7070

7171
const { signal } = controller
7272

73-
new Promise<SyoboCalProgram[]>((resolve, reject) => {
73+
new Promise<SyoboCalProgramDb[]>((resolve, reject) => {
7474
signal.addEventListener('abort', reject, { once: true })
7575

7676
ncoApi.syobocal
77-
.json(['ProgramByCount'], {
77+
.db('ProgLookup', {
7878
TID: title.TID,
7979
Count: Number(subtitle[0]),
8080
ChID: SYOBOCAL_CHANNEL_IDS,
8181
})
8282
.then((response) => {
8383
if (response) {
84-
const programs = Object.values(response.Programs)
84+
const programs = Object.values(response)
8585

8686
resolve(programs)
8787
} else {

src/ncoverlay/searcher.ts

+14-8
Original file line numberDiff line numberDiff line change
@@ -70,12 +70,12 @@ export class NCOSearcher {
7070
: null,
7171
])
7272

73-
const currentTime = Date.now() / 1000
73+
const currentTime = Date.now()
7474

7575
const syobocalPrograms =
7676
searchSyobocalResults &&
7777
searchSyobocalResults.programs.filter(
78-
(val) => parseInt(val.EdTime) < currentTime
78+
(val) => new Date(val.EdTime).getTime() < currentTime
7979
)
8080

8181
logger.log('searchResults:', searchResults)
@@ -132,7 +132,10 @@ export class NCOSearcher {
132132
.trim()
133133

134134
syobocalPrograms.forEach((program) => {
135-
const id = `${syobocalToJikkyoChId(program.ChID)}:${program.StTime}-${program.EdTime}`
135+
const starttime = new Date(program.StTime).getTime() / 1000
136+
const endtime = new Date(program.EdTime).getTime() / 1000
137+
138+
const id = `${syobocalToJikkyoChId(program.ChID)}:${starttime}-${endtime}`
136139

137140
if (loadedIds.includes(id)) return
138141

@@ -155,9 +158,12 @@ export class NCOSearcher {
155158
.map((v) => v.id)
156159

157160
const scPrograms = syobocalPrograms?.filter((program) => {
158-
return jikkyoIds.includes(
159-
`${syobocalToJikkyoChId(program.ChID)}:${program.StTime}-${program.EdTime}`
160-
)
161+
const starttime = new Date(program.StTime).getTime() / 1000
162+
const endtime = new Date(program.EdTime).getTime() / 1000
163+
164+
const id = `${syobocalToJikkyoChId(program.ChID)}:${starttime}-${endtime}`
165+
166+
return jikkyoIds.includes(id)
161167
})
162168

163169
const [
@@ -192,8 +198,8 @@ export class NCOSearcher {
192198
? getJikkyoKakologs(
193199
scPrograms.map((val) => ({
194200
jkChId: syobocalToJikkyoChId(val.ChID)!,
195-
starttime: parseInt(val.StTime),
196-
endtime: parseInt(val.EdTime),
201+
starttime: new Date(val.StTime).getTime() / 1000,
202+
endtime: new Date(val.EdTime).getTime() / 1000,
197203
}))
198204
)
199205
: null,

src/utils/api/programToSlotDetail.ts

+20-1
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,32 @@ export const programToSlotDetail = (
2424

2525
const id = `${syobocalToJikkyoChId(program.ChID)}:${starttime / 1000}-${endtime / 1000}`
2626

27+
const flags: string[] = []
28+
29+
if ('Flag' in program) {
30+
let flag = Number(program.Flag)
31+
32+
if (8 <= flag) {
33+
flag -= 8
34+
flags.push('🈞')
35+
}
36+
if (4 <= flag) {
37+
flag -= 4
38+
flags.push('🈡')
39+
}
40+
if (2 <= flag) {
41+
flag -= 2
42+
flags.push('🈟')
43+
}
44+
}
45+
2746
return {
2847
type: 'jikkyo',
2948
id,
3049
status: 'pending',
3150
info: {
3251
id: program.TID,
33-
title,
52+
title: `${flags[0] ?? ''} ${title}`.trim(),
3453
duration: (endtime - starttime) / 1000,
3554
date: [starttime, endtime],
3655
count: {

0 commit comments

Comments
 (0)