(function () {
// 1) Basic bot filter (extend if you like)
function isBot() {
return /(bot|crawl|spider|google|bing|slurp|yandex|facebook|linkedin|pinterest|preview|whatsapp|discord|telegram|headless|puppeteer)/i
.test(navigator.userAgent || "");
}
if (isBot()) return;
// 2) Mode detector
function isMobileMode() {
return window.matchMedia("(max-width: 767px)").matches ||
/Mobi|Android|iPhone|iPad|iPod/i.test(navigator.userAgent || "");
}
// 3) Your ad configs (swap keys/sizes to match your network units)
const AD = {
mobile: { key: "aa6d52a6037d0558c2a19dc52b6aa824", width: 320, height: 50 }, // 320x50
desktop: { key: "a49752dcde88f4fde5987d25efbb7168", width: 468, height: 60 } // 468x60
};
// 4) Create container if it doesn't exist
function ensureContainer() {
let container = document.getElementById("ad-container");
if (!container) {
container = document.createElement("div");
container.id = "ad-container";
container.style.display = "none";
document.body.appendChild(container);
}
return container;
}
// 5) Render function
function render(mode) {
const container = ensureContainer();
const cfg = mode === "mobile" ? AD.mobile : AD.desktop;
// Set global atOptions for ad network
window.atOptions = {
key: cfg.key,
format: "iframe",
height: cfg.height,
width: cfg.width,
params: {}
};
// Clear previous ad/script then inject
container.innerHTML = "";
container.style.display = "block";
const s = document.createElement("script");
s.src = `//selfportraitproved.com/${cfg.key}/invoke.js`;
s.async = true;
container.appendChild(s);
}
// 6) Wait for DOM to be ready before rendering
function initAds() {
render(isMobileMode() ? "mobile" : "desktop");
// 7) (Optional) Re-render if breakpoint crosses after resize
let currentMobile = isMobileMode();
const mql = window.matchMedia("(max-width: 767px)");
if (mql.addEventListener) {
mql.addEventListener("change", (e) => {
const nowMobile = e.matches;
if (nowMobile !== currentMobile) {
currentMobile = nowMobile;
render(currentMobile ? "mobile" : "desktop");
}
});
} else if (mql.addListener) { // older browsers
mql.addListener((e) => {
const nowMobile = e.matches;
if (nowMobile !== currentMobile) {
currentMobile = nowMobile;
render(currentMobile ? "mobile" : "desktop");
}
});
}
}
// 8) Execute when DOM is ready
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", initAds);
} else {
initAds();
}
})();
When the popular BBC action series, Luther, aired its series finale in 2019, we feared that we'd never see our favorite antihero again.
That all changed when news broke that Idris Elba would reprise his role as John Luther in Luther: The Fallen Sun.
While longtime fans were ecstatic about the character’s return to the small screen, there are many of us who hopped on the bandwagon a little late. Now, we’re wondering — do you need to watch the Luther series before you watch the new movie on Netflix? Read on to find out.
Do you need to watch the ‘Luther’ series before you watch ‘Luther: The Fallen Sun’ on Netflix?
Luther: The Fallen Sun is a sequel, but not in the way you'd think.
👉 For more insights, check out this resource.
Although it couldn’t hurt to binge all five seasons of Luther on Hulu before you tune into the Netflix film, you don’t really have to. Luther series creator Neil Cross signed on as the screenwriter for The Fallen Sun, which debuted on Netflix on Friday, March 10. In an interview with Netflix’s Tudum, Neil said that the new film caters to old fans and new viewers alike.
While the movie will give newcomers all the context they need to get caught up, The Fallen Sun also features a handful of easter eggs hidden just for longtime fans of the show.
👉 Discover more in this in-depth guide.
Neil said that he and The Fallen Sun director Jamie Payne, who also directed Season 5 of Luther, were “tweaking the balance until the very end.”
“We’re a loyal bunch, and respecting the existing fans was essential to us,” he told the outlet. “But we’re also a welcoming bunch. So it was just as important for there to be no cost of entry for new viewers.”
Series lead Idris Elba echoed the creator’s sentiments, adding that although The Fallen Sun tells a new story, John is the same old Luther.
“This film, whether you know John or not, has a start, a middle, and an end and you get thrown into it,” the actor shared. “Ultimately, it’s a thriller. He’s a good guy that likes to chase bad guys in bad ways. That’s basically it.”
Luther: The Fallen Sun is available for streaming on Netflix now!