diff --git a/article-api/src/main/scala/no/ndla/articleapi/db/migration/V58__ConvertNorgesfilmUrls.scala b/article-api/src/main/scala/no/ndla/articleapi/db/migration/V58__ConvertNorgesfilmUrls.scala new file mode 100644 index 000000000..8492d5e26 --- /dev/null +++ b/article-api/src/main/scala/no/ndla/articleapi/db/migration/V58__ConvertNorgesfilmUrls.scala @@ -0,0 +1,27 @@ +/* + * Part of NDLA article-api + * Copyright (C) 2025 NDLA + * + * See LICENSE + * + */ + +package no.ndla.articleapi.db.migration + +import no.ndla.articleapi.db.HtmlMigration +import org.jsoup.nodes.Element + +class V58__ConvertNorgesfilmUrls extends HtmlMigration { + override val convertVisualElement: Boolean = true + override def convertHtml(doc: Element, language: String): Element = { + doc + .select("ndlaembed[data-resource='iframe']") + .forEach(embed => { + val url = embed.attr("data-url") + if (url.contains("ndla.filmiundervisning.no/film/ndlafilm.aspx?")) { + embed.attr("data-url", url.replace("/ndlafilm.aspx?", "/")): Unit + } + }) + doc + } +} diff --git a/article-api/src/test/scala/no/ndla/articleapi/db/migration/V58__ConvertNorgesfilmUrlsTest.scala b/article-api/src/test/scala/no/ndla/articleapi/db/migration/V58__ConvertNorgesfilmUrlsTest.scala new file mode 100644 index 000000000..1cb34d375 --- /dev/null +++ b/article-api/src/test/scala/no/ndla/articleapi/db/migration/V58__ConvertNorgesfilmUrlsTest.scala @@ -0,0 +1,23 @@ +/* + * Part of NDLA article-api + * Copyright (C) 2025 NDLA + * + * See LICENSE + * + */ + +package no.ndla.articleapi.db.migration + +import no.ndla.articleapi.{TestEnvironment, UnitSuite} + +class V58__ConvertNorgesfilmUrlsTest extends UnitSuite with TestEnvironment { + test("That norgesfilm urls looses ndlafilm.aspx") { + val migration = new V58__ConvertNorgesfilmUrls + val oldArticle = + """
""" + val newArticle = + """
""" + + migration.convertContent(oldArticle, "nb") should be(newArticle) + } +} diff --git a/draft-api/src/main/scala/no/ndla/draftapi/db/migration/V69__ConvertNorgesfilmUrls.scala b/draft-api/src/main/scala/no/ndla/draftapi/db/migration/V69__ConvertNorgesfilmUrls.scala new file mode 100644 index 000000000..2d83356da --- /dev/null +++ b/draft-api/src/main/scala/no/ndla/draftapi/db/migration/V69__ConvertNorgesfilmUrls.scala @@ -0,0 +1,28 @@ +/* + * Part of NDLA draft-api + * Copyright (C) 2025 NDLA + * + * See LICENSE + * + */ + +package no.ndla.draftapi.db.migration + +import no.ndla.draftapi.db.HtmlMigration +import org.jsoup.nodes.Element + +class V69__ConvertNorgesfilmUrls extends HtmlMigration { + override val convertVisualElement: Boolean = true + override def convertHtml(doc: Element, language: String): Element = { + doc + .select("ndlaembed[data-resource='iframe']") + .forEach(embed => { + val url = embed.attr("data-url") + if (url.contains("ndla.filmiundervisning.no/film/ndlafilm.aspx?")) { + embed.attr("data-url", url.replace("/ndlafilm.aspx?", "/")): Unit + } + }) + doc + } + +} diff --git a/draft-api/src/test/scala/no/ndla/draftapi/db/migration/V69__ConvertNorgesfilmUrlsTest.scala b/draft-api/src/test/scala/no/ndla/draftapi/db/migration/V69__ConvertNorgesfilmUrlsTest.scala new file mode 100644 index 000000000..cd8e974ad --- /dev/null +++ b/draft-api/src/test/scala/no/ndla/draftapi/db/migration/V69__ConvertNorgesfilmUrlsTest.scala @@ -0,0 +1,23 @@ +/* + * Part of NDLA draft-api + * Copyright (C) 2025 NDLA + * + * See LICENSE + * + */ + +package no.ndla.draftapi.db.migration + +import no.ndla.draftapi.{TestEnvironment, UnitSuite} + +class V69__ConvertNorgesfilmUrlsTest extends UnitSuite with TestEnvironment { + test("That norgesfilm urls looses ndlafilm.aspx") { + val migration = new V69__ConvertNorgesfilmUrls + val oldArticle = + """
""" + val newArticle = + """
""" + + migration.convertContent(oldArticle, "nb") should be(newArticle) + } +}