From 90207f98fa52f258e4be32bc80cdbfc31e3a4765 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20H=C3=A5rek=20Andreassen?= Date: Sat, 30 Mar 2024 15:41:22 +0100 Subject: [PATCH 01/13] feat: Add query to `title` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tim Hårek Andreassen --- routes/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/index.tsx b/routes/index.tsx index 9213b35..e8ba877 100644 --- a/routes/index.tsx +++ b/routes/index.tsx @@ -26,7 +26,7 @@ export default function Home({ data }: PageProps) { return ( <> - NRSS + {data.query ? `Søk: ${data.query} - ` : ""}NRSS
-- 2.40.1 From 6b083a4f0588884006b792012dacaf2f87c85bc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20H=C3=A5rek=20Andreassen?= Date: Sat, 30 Mar 2024 15:42:06 +0100 Subject: [PATCH 02/13] feat: Add emoji favicon MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tim Hårek Andreassen --- routes/_app.tsx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/routes/_app.tsx b/routes/_app.tsx index 324f36b..2844050 100644 --- a/routes/_app.tsx +++ b/routes/_app.tsx @@ -6,6 +6,11 @@ export default function App({ Component }: PageProps) { + + NRSS -- 2.40.1 From 7212b351622bd03353bed2494b3cfc8ffec2afab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20H=C3=A5rek=20Andreassen?= Date: Sat, 30 Mar 2024 15:46:24 +0100 Subject: [PATCH 03/13] style: Make app name clickable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Easier to reset a search Signed-off-by: Tim Hårek Andreassen --- routes/index.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/routes/index.tsx b/routes/index.tsx index e8ba877..c27eae8 100644 --- a/routes/index.tsx +++ b/routes/index.tsx @@ -30,7 +30,9 @@ export default function Home({ data }: PageProps) {
-

NRSS

+

+ 📻 NRSS +

NRK-podcast som RSS

-- 2.40.1 From b20a2a12920984102d8fe934ed86335fb5de58b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20H=C3=A5rek=20Andreassen?= Date: Sat, 30 Mar 2024 15:50:25 +0100 Subject: [PATCH 04/13] style: Simplify colors and spacing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tim Hårek Andreassen --- components/SeriesCard.tsx | 4 ++-- routes/index.tsx | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/components/SeriesCard.tsx b/components/SeriesCard.tsx index a6cf1b9..0dae82e 100644 --- a/components/SeriesCard.tsx +++ b/components/SeriesCard.tsx @@ -5,9 +5,9 @@ export default function SeriesCard(props: { serie: SearchResult; origin: string const feedUrl = new URL(`/api/feeds/${props.serie.seriesId}`, props.origin); const image = props.serie.images[0]; return ( -
+
-

{props.serie.title}

+

{props.serie.title}

{props.serie.description}

{feedUrl.toString()} diff --git a/routes/index.tsx b/routes/index.tsx index c27eae8..d8f4062 100644 --- a/routes/index.tsx +++ b/routes/index.tsx @@ -28,7 +28,7 @@ export default function Home({ data }: PageProps) { {data.query ? `Søk: ${data.query} - ` : ""}NRSS -
+

📻 NRSS @@ -38,7 +38,7 @@ export default function Home({ data }: PageProps) { {data.result ? ( -
+
{data.result.map((result) => ( Date: Sat, 30 Mar 2024 15:51:53 +0100 Subject: [PATCH 05/13] feat: Add Header-component MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tim Hårek Andreassen --- components/Header.tsx | 10 ++++++++++ routes/index.tsx | 8 ++------ 2 files changed, 12 insertions(+), 6 deletions(-) create mode 100644 components/Header.tsx diff --git a/components/Header.tsx b/components/Header.tsx new file mode 100644 index 0000000..b2e499e --- /dev/null +++ b/components/Header.tsx @@ -0,0 +1,10 @@ +export default function Header() { + return ( +
+

+ 📻 NRSS +

+

NRK-podcast som RSS

+
+ ); +} diff --git a/routes/index.tsx b/routes/index.tsx index d8f4062..073e894 100644 --- a/routes/index.tsx +++ b/routes/index.tsx @@ -1,5 +1,6 @@ import { Head } from "$fresh/runtime.ts"; import { Handlers, PageProps } from "$fresh/server.ts"; +import Header from "../components/Header.tsx"; import Search from "../components/Search.tsx"; import SeriesCard from "../components/SeriesCard.tsx"; import { nrkRadio, SearchResultList } from "../lib/nrk.ts"; @@ -29,12 +30,7 @@ export default function Home({ data }: PageProps) { {data.query ? `Søk: ${data.query} - ` : ""}NRSS
-
-

- 📻 NRSS -

-

NRK-podcast som RSS

-
+
{data.result ? ( -- 2.40.1 From 40e3025af465a188d4a83d109f2c37fee6a61af2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20H=C3=A5rek=20Andreassen?= Date: Sat, 30 Mar 2024 15:55:08 +0100 Subject: [PATCH 06/13] feat: Add Footer-component MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tim Hårek Andreassen --- components/Footer.tsx | 9 +++++++++ deno.json | 5 ++++- routes/index.tsx | 2 ++ 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 components/Footer.tsx diff --git a/components/Footer.tsx b/components/Footer.tsx new file mode 100644 index 0000000..83abf9f --- /dev/null +++ b/components/Footer.tsx @@ -0,0 +1,9 @@ +import config from "../deno.json" with { type: "json" }; + +export default function Footer() { + return ( +
+ Kildekode +
+ ); +} diff --git a/deno.json b/deno.json index 17eea29..f602654 100644 --- a/deno.json +++ b/deno.json @@ -1,5 +1,8 @@ { "lock": false, + "name": "NRSS", + "source": "https://github.com/olaven/NRSS", + "author": " Olav Sundfør ", "tasks": { "start": "deno run -A --watch=static/,routes/ dev.ts", "check": "deno fmt --check && deno lint && deno check **/*.ts && deno check **/*.tsx" @@ -35,4 +38,4 @@ ] } } -} +} \ No newline at end of file diff --git a/routes/index.tsx b/routes/index.tsx index 073e894..dd14a23 100644 --- a/routes/index.tsx +++ b/routes/index.tsx @@ -1,5 +1,6 @@ import { Head } from "$fresh/runtime.ts"; import { Handlers, PageProps } from "$fresh/server.ts"; +import Footer from "../components/Footer.tsx"; import Header from "../components/Header.tsx"; import Search from "../components/Search.tsx"; import SeriesCard from "../components/SeriesCard.tsx"; @@ -68,6 +69,7 @@ export default function Home({ data }: PageProps) { {" "} for en oversikt over hvordan det gjøres i populære podcastspillere.

+
); -- 2.40.1 From 64a2d7bee8395b9aa56b0d40d7ec27d1ab3f2937 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20H=C3=A5rek=20Andreassen?= Date: Sat, 30 Mar 2024 15:59:39 +0100 Subject: [PATCH 07/13] fix: Add bg color to CopyButton MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tim Hårek Andreassen --- islands/CopyButton.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/islands/CopyButton.tsx b/islands/CopyButton.tsx index 8acca88..759c2ef 100644 --- a/islands/CopyButton.tsx +++ b/islands/CopyButton.tsx @@ -25,7 +25,7 @@ export default function CopyButton({ text, disabled = false, children }: Props) startReset(); }} disabled={!IS_BROWSER || disabled} - class="px-2 py-1 border(gray-100 2) hover:bg-gray-200 mx-auto" + class="px-2 py-1 border(gray-100 2) hover:bg-gray-200 mx-auto bg-blue-200" > {clicked ? "Kopiert!" : children} -- 2.40.1 From 39a54505c8087f03b0e2849de99ab4fe596b20bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20H=C3=A5rek=20Andreassen?= Date: Sat, 30 Mar 2024 16:14:44 +0100 Subject: [PATCH 08/13] feat: Add markdown-rendering support for quick docs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tim Hårek Andreassen --- deno.json | 3 ++- docs/what.md | 12 ++++++++++++ routes/index.tsx | 36 ++++++++++-------------------------- 3 files changed, 24 insertions(+), 27 deletions(-) create mode 100644 docs/what.md diff --git a/deno.json b/deno.json index f602654..3a3c00e 100644 --- a/deno.json +++ b/deno.json @@ -15,7 +15,8 @@ "@preact/signals": "https://esm.sh/*@preact/signals@1.2.2", "@preact/signals-core": "https://esm.sh/*@preact/signals-core@1.5.1", "twind": "https://esm.sh/twind@0.16.17", - "twind/": "https://esm.sh/twind@0.16.17/" + "twind/": "https://esm.sh/twind@0.16.17/", + "$gfm": "https://deno.land/x/gfm@0.6.0/mod.ts" }, "compilerOptions": { "jsx": "react-jsx", diff --git a/docs/what.md b/docs/what.md new file mode 100644 index 0000000..10a85a3 --- /dev/null +++ b/docs/what.md @@ -0,0 +1,12 @@ +## Hva er dette? + +Hei! Denne løsningen er laget som en reaksjon på at statsfinansierte NRK lukker ned innholdet sitt til sin +egen app fremfor å bygge oppunder åpne standarder som RSS. + +Denne siden er laget fort og gæli - den er ustabil og kommer til å krasje :) Sjekk gjerne ut [kildekoden](https://github.com/olaven/NRSS). + +## Hvordan bruker jeg dette? + +Søk på NRK-podcasten du vil høre på. Kopier deretter URL-en under bildet. Lim denne inn i akkurat den +podcastspilleren du måtte foretrekke! Se [her](https://help.omnystudio.com/en/articles/5222518-podcast-apps-that-support-add-rss-feed) +for en oversikt over hvordan det gjøres i populære podcastspillere. diff --git a/routes/index.tsx b/routes/index.tsx index dd14a23..267c327 100644 --- a/routes/index.tsx +++ b/routes/index.tsx @@ -5,11 +5,13 @@ import Header from "../components/Header.tsx"; import Search from "../components/Search.tsx"; import SeriesCard from "../components/SeriesCard.tsx"; import { nrkRadio, SearchResultList } from "../lib/nrk.ts"; +import { CSS, render } from "$gfm"; interface HandlerData { query: string; - result?: SearchResultList; origin: string; + rawMarkdown: string; + result?: SearchResultList; } export const handler: Handlers = { @@ -20,7 +22,8 @@ export const handler: Handlers = { if (query) { result = await nrkRadio.search(query); } - return ctx.render({ query: query || "", result, origin: url.origin }); + const rawMarkdown = await Deno.readTextFile(new URL("../docs/what.md", import.meta.url)); + return ctx.render({ query: query || "", result, origin: url.origin, rawMarkdown }); }, }; @@ -29,6 +32,7 @@ export default function Home({ data }: PageProps) { <> {data.query ? `Søk: ${data.query} - ` : ""}NRSS +