mp3 support

This commit is contained in:
2024-05-21 23:27:19 +02:00
parent 64292c2e26
commit bd838c7b3f
8 changed files with 5003 additions and 4022 deletions
+4
View File
@@ -67,3 +67,7 @@ export const PdfButton: React.FC<ButtonProps> = React.memo(
export const ZipButton: React.FC<ButtonProps> = React.memo(
({ label, link }) => <CustomButton label={label} link={link} />
)
export const Mp3Button: React.FC<ButtonProps> = React.memo(
({ label, link }) => <CustomButton label={label} link={link} />
)
+3
View File
@@ -6,6 +6,7 @@ export const useAppState = () => {
const [utPdfLink, setutPdfLink] = useState<string>('')
const [flZipLink, setflZipLink] = useState<string>('')
const [utZipLink, setutZipLink] = useState<string>('')
const [flMp3Link, setflMp3Link] = useState<string>('')
const [selectedSubject, setSelectedSubject] = useState<string>('')
const [selectedYear, setSelectedYear] = useState<string>('')
const [selectedPeriod, setSelectedPeriod] = useState<string>('')
@@ -23,6 +24,8 @@ export const useAppState = () => {
setflZipLink,
utZipLink,
setutZipLink,
flMp3Link,
setflMp3Link,
selectedSubject,
setSelectedSubject,
selectedYear,
+8 -2
View File
@@ -70,7 +70,7 @@ export default function handler(req: NextApiRequest, res: NextApiResponse) {
const megoldas = 'meg'
const shortev = ev.slice(-2)
let flPdfUrl, utPdfUrl, flZipUrl, utZipUrl
let flPdfUrl, utPdfUrl, flZipUrl, utZipUrl, flMp3Url
switch (vizsgatargy) {
case 'inf':
case 'infoism':
@@ -80,6 +80,12 @@ export default function handler(req: NextApiRequest, res: NextApiResponse) {
utZipUrl = `${baseUrl}${prefix}${megoldas}_${shortev}${honap}_${utmutato}.zip`
utPdfUrl = `${proxiedUrl}${prefix}_${shortev}${honap}_${utmutato}.pdf`
break
case 'angol':
case 'nemet':
flPdfUrl = `${proxiedUrl}${prefix}_${shortev}${honap}_${feladat}.pdf`
utPdfUrl = `${proxiedUrl}${prefix}_${shortev}${honap}_${utmutato}.pdf`
flMp3Url = `${baseUrl}${prefix}_${shortev}${honap}_${feladat}.mp3`
break
default:
flPdfUrl = `${proxiedUrl}${prefix}_${shortev}${honap}_${feladat}.pdf`
utPdfUrl = `${proxiedUrl}${prefix}_${shortev}${honap}_${utmutato}.pdf`
@@ -87,7 +93,7 @@ export default function handler(req: NextApiRequest, res: NextApiResponse) {
}
res.setHeader('Cache-Control', 's-maxage=31536000')
res.status(200).json({ flPdfUrl, utPdfUrl, flZipUrl, utZipUrl })
res.status(200).json({ flPdfUrl, utPdfUrl, flZipUrl, utZipUrl, flMp3Url })
} catch (error) {
res.status(500).json({ error: 'Internal Server Error', message: error })
}
+10 -2
View File
@@ -1,6 +1,6 @@
import React, { useEffect } from 'react'
import { ButtonGroup, Divider } from '@nextui-org/react'
import { PdfButton, ZipButton } from '@/components/Buttons'
import { PdfButton, ZipButton, Mp3Button } from '@/components/Buttons'
import { Footer } from '@/components/Footer'
import { fetchData } from '@/utils/fetch'
import useYears from '@/hooks/useYears'
@@ -23,6 +23,8 @@ export default function Home() {
setflZipLink,
utZipLink,
setutZipLink,
flMp3Link,
setflMp3Link,
selectedSubject,
setSelectedSubject,
selectedYear,
@@ -47,7 +49,8 @@ export default function Home() {
setflZipLink,
setutZipLink,
setflPdfLink,
setutPdfLink
setutPdfLink,
setflMp3Link,
)
}
}, [selectedLevel, selectedPeriod, selectedSubject, selectedYear])
@@ -102,6 +105,11 @@ export default function Home() {
</ButtonGroup>
</div>
)}
{['angol', 'nemet'].includes(selectedSubject) && (
<div className='space-x-3'>
<Mp3Button label='Hang' link={flMp3Link} />
</div>
)}
</div>
</div>
</div>
+7 -1
View File
@@ -6,7 +6,8 @@ export const fetchData = async (
setflZipLink: (link: string) => void,
setutZipLink: (link: string) => void,
setflPdfLink: (link: string) => void,
setutPdfLink: (link: string) => void
setutPdfLink: (link: string) => void,
setflMp3Link: (link: string) => void
) => {
try {
const url = `/api/erettsegi?vizsgatargy=${selectedSubject}&ev=${selectedYear}&idoszak=${selectedPeriod}&szint=${selectedLevel}`
@@ -19,6 +20,7 @@ export const fetchData = async (
utZipUrl: string
flPdfUrl: string
utPdfUrl: string
flMp3Url: string
}
if (data.utZipUrl && data.flZipUrl) {
@@ -30,6 +32,10 @@ export const fetchData = async (
setflPdfLink(data.flPdfUrl)
setutPdfLink(data.utPdfUrl)
}
if (data.flMp3Url) {
setflMp3Link(data.flMp3Url)
}
} else {
console.error('Hiba történt az API hívás során.')
}