.. -*- coding: utf-8 -*- .. role:: sref(numref) .. role:: xref(numref) .. Copyright (C) 2022, Wolfgang Scherer, .. This file is part of Netflix More More Info. .. Permission is granted to copy, distribute and/or modify this document .. under the terms of the GNU Free Documentation License, Version 1.3 .. or any later version published by the Free Software Foundation; .. with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. .. A copy of the license is included in the section entitled "GNU .. Free Documentation License". .. inline comments (with du_comment_role) .. role:: rem(comment) .. role:: html(raw) :format: html .. role:: shx(code) :language: sh ################################################## :rem:`|||:sec:|||`\ Netflix More More Info ################################################## .. >>CODD See `the components of a doctoral dissertation and their order `_ .. >>CODD Dedication .. >>CODD Epigraph .. >>CODD Abstract .. raw:: html

There is a PDF version of this document available.

.. raw:: latex \iffalse .. rubric:: Quickstart .. raw:: latex \fi \providecommand{\sddlytocignore}[1]{#1\ignorespaces} \sddlytocignore{% \addcontentsline{toc}{\sdseclevel}{Quickstart}% \markboth{}{}% \phantomsection }% \begingroup \renewcommand{\abstractname}{Quickstart} \pagebreak[3] \begin{abstract} \nobreak\noindent\setlength{\parindent}{0pt}% .. \|:here:| #. Create a bookmark for the Javascript link `Netflix MMI`_. #. On Netflix, click any ``More Info`` or ``Episodes & Info`` button. #. Click on the bookmark for `Netflix MMI`_. The titles shown in the ``Collection`` and ``More Like This`` sections are augmented with an additional ``More Info`` link. The links `SIMKL TV`_ and `SIMKL MOV`_ examine show and movie titles on IMDB, Netflix, Prime Video, Disney Plus and search SIMKL TV or SIMKL Movies respectively. Just add them to your bookmarks and klick on them, when viewing a supported page. .. figctr:: Screenshots +----------------------------------------+----------------------------------------+ | Standard View | More More Info View | +========================================+========================================+ | .. image:: _static/netflix-mmi-000.jpg | .. image:: _static/netflix-mmi-001.jpg | +----------------------------------------+----------------------------------------+ .. _`Netflix MMI`: javascript:%28function%28%29%7Bvar%20netflix_info_styles%20%3D%20%60%20.videoMetadata--container-container%20%3E%20div:last-child%20%7B%20display:%20flex%3B%20%7D%20.videoMetadata--container-container%20%3E%20div:last-child%20%3E%20div%20%7B%20margin-left:%200.2em%3B%20%7D%60%3B%20if%20%28%21document.querySelector%28%22style.videoMetadata--more-info%22%29%29%20%7B%20style_sheet%20%3D%20document.createElement%28%22style%22%29%3B%20style_sheet.setAttribute%28%22class%22%2C%20%22videoMetadata--more-info%22%29%3B%20style_sheet.innerText%20%3D%20netflix_info_styles%3B%20document.head.appendChild%28style_sheet%29%3B%20%7D%20var%20netflix_info_class%20%3D%20%22color-supplementary%20hasIcon%20round%20ltr-1f1y58d%22%3B%20%28function%20%28%29%20%7B%20var%20round_button%20%3D%20document.querySelector%28%27button%5Bdata-uia%3D%22add-to-my-list%22%5D%2C%20button%5Bdata-uia%3D%22add-to-my-list-added%22%5D%2C%20button%5Bdata-uia%3D%22audio-toggle-unmuted%22%5D%27%29%3B%20if%20%28round_button%20%21%3D%3D%20null%29%20%7B%20netflix_info_class%20%3D%20round_button.getAttribute%28%27class%27%29%3B%20%7D%20console.log%28%27netflix_info_class:%27%2C%20netflix_info_class%29%3B%20%7D%29%28%29%3B%20document.querySelectorAll%28%22.more-like-this-item%2C%20.title-group-item%22%29.forEach%28function%20%28n%29%20%7B%20var%20style_sheet%2C%20ui_tc%2C%20href%2C%20info%2C%20meta%3B%20try%20%7B%20ui_tc%20%3D%20n.querySelector%28%22%5Bdata-ui-tracking-context%5D%22%29%3B%20ui_tc%20%3D%20ui_tc.getAttribute%28%22data-ui-tracking-context%22%29%3B%20ui_tc%20%3D%20decodeURIComponent%28ui_tc%29%3B%20ui_tc%20%3D%20JSON.parse%28ui_tc%29%3B%20href%20%3D%20%22https://www.netflix.com/browse%3Fjbv%3D%22%20%2B%20ui_tc.video_id.toString%28%29%3B%20info%20%3D%20document.createElement%28%22div%22%29%3B%20info.setAttribute%28%22class%22%2C%20%22videoMetadata--more-info%20ltr-79elbk%22%29%3B%20info.innerHTML%20%3D%20%27%3Ca%20data-uia%3D%22billboard-more-info%22%20aria-label%3D%22More%20Info%22%20role%3D%22link%22%20href%3D%22%27%20%2B%20href%20%2B%20%27%22%3E%3Cbutton%20class%3D%22%27%20%2B%20netflix_info_class%20%2B%20%27%22%20type%3D%22button%22%3E%3Cdiv%20class%3D%22ltr-1ksxkn9%22%3E%3Cdiv%20class%3D%22small%20ltr-18dhnor%22%20role%3D%22presentation%22%3E%3Cdiv%20style%3D%22min-width:24px%3B%20nin-height:%2024px%3B%20text-align:%20center%3B%22%3Ei%3C/div%3E%3C/div%3E%3C/div%3E%3C/button%3E%3C/a%3E%27%3B%20meta%20%3D%20n.querySelector%28%22.videoMetadata--container-container%20%3E%20div:last-child%22%29%3B%20if%20%28%21meta%29%20%7B%20var%20meta_ctr%20%3D%20n.querySelector%28%22.titleCard--metadataWrapper%20%3E%20div:first-child%22%29%3B%20meta_ctr.setAttribute%28%22class%22%2C%20%22videoMetadata--container-container%22%29%3B%20meta%20%3D%20document.createElement%28%22div%22%29%3B%20meta_ctr.append%28meta%29%20%7D%20meta.append%28info%29%3B%20console.log%28%22info:%22%2C%20info%29%3B%20%7D%20catch%20%28x%29%20%7B%20console.log%28%22x:%22%2C%20x%29%3B%20%7D%20%7D%29%3B%20%7D%29%28%29 .. :ide: SQUEEZE & QUOTE search type TV .. . (progn (forward-line 1) (search-forward ":") (let ((b (point))) (forward-line 1) (delete-region b (1- (point)))) (forward-char -1) (insert " ") (shell-command (concat "echo 'var search_type = \"tv\";' | python js-to-link.py - pv-movie-simkl-search.js") t)) .. _`SIMKL TV`: javascript:%28function%28%29%7Bvar%20search_type%20%3D%20%22tv%22%3B%20if%20%28typeof%28search_type%29%20%3D%3D%3D%20%27undefined%27%29%20%7B%20var%20search_type%20%3D%20%27tv%27%3B%20%7D%20var%20imdb_prefix%20%3D%20/%5Ehttps%3F:%5C/%5C/www.imdb.com%5C/title%5C//si%3B%20var%20title%20%3D%20null%3B%20var%20clean%20%3D%20false%3B%20var%20imdb_links%20%3D%20Array%28%20document.location.href%2C%20document.location.href.replace%28/.%2A%5B%3F%5Dimdb%3D%28tt%5B0-9%5D%2B%29/si%2C%20imdb_prefix%20%2B%20%22%241%22%29%20%29%3B%20var%20doc_text%20%3D%20document.querySelector%28%27body%27%29.textContent%3B%20var%20imdb_link_start%20%3D%20doc_text.search%28/%28https%3F:%5C/%5C/www.imdb.com%5C/title%5C/tt%5B0-9%5D%2B%29/si%29%3B%20if%20%28imdb_link_start%20%3E%3D%200%29%20%7B%20var%20_il%20%3D%20doc_text.substr%28imdb_link_start%29%3B%20imdb_links.push%28_il.replace%28/.%2A%28https%3F:%5C/%5C/www.imdb.com%5C/title%5C/tt%5B0-9%5D%2B%29.%2A/si%2C%20%22%241%22%29%29%3B%20%7D%20imdb_links.forEach%28function%28il%29%20%7B%20if%20%28title%20%3D%3D%3D%20null%29%20%7B%20if%20%28il.search%28imdb_prefix%29%20%3E%3D%200%29%20%7B%20title%20%3D%20il.replace%28/https%3F:%5C/%5C/www.imdb.com%5C/title%5C/%28tt%5B0-9%5D%2B%29.%2A/si%2C%20%22%241%22%29%3B%20if%20%28title.search%28/tt%5B0-9%5D%2B/%29%20%21%3D%200%29%20%7B%20title%20%3D%20null%3B%20%7D%20else%20%7B%20clean%20%3D%20true%3B%20%7D%20%7D%20%7D%20%7D%29%3B%20if%20%28title%20%3D%3D%3D%20null%29%20%7B%20var%20title_img_selectors%20%3D%20Array%28%20%27img.previewModal--player-titleTreatment-logo%27%2C%20%27%5Bdata-testid%3D%22title-art%22%5D%20img%27%2C%20%27%23unauth-navbar-target%20img%27%20%29%3B%20title_img_selectors.forEach%28function%28_tis%29%20%7B%20if%20%28title%20%3D%3D%3D%20null%29%20%7B%20var%20title_img%20%3D%20document.querySelector%28_tis%29%3B%20console.log%28%27title_img:%27%2C%20title_img%29%3B%20if%20%28title_img%20%21%3D%3D%20null%29%20%7B%20title%20%3D%20title_img.getAttribute%28%27alt%27%29%3B%20%7D%20%7D%20%7D%29%3B%20%7D%20if%20%28title%20%3D%3D%3D%20null%29%20%7B%20var%20title_selectors%20%3D%20Array%28%20%27%5Bdata-testid%3D%22hero-title-block__original-title%22%5D%27%2C%20%27%5Bdata-testid%3D%22hero-title-block__title%22%5D%27%2C%20%27%5Bdata-automation-id%3D%22title%22%5D%27%2C%20%27.episodeSelector-season-name%27%20%29%3B%20var%20title_text%20%3D%20null%3B%20title_selectors.forEach%28function%28_ts%29%20%7B%20if%20%28title%20%3D%3D%3D%20null%29%20%7B%20title_text%20%3D%20document.querySelector%28_ts%29%3B%20if%20%28title_text%20%21%3D%3D%20null%29%20%7B%20title%20%3D%20title_text.textContent%3B%20%7D%20%7D%20%7D%29%3B%20%7D%20if%20%28title%20%21%3D%3D%20null%29%20%7B%20var%20search_url%3B%20if%20%28%21clean%29%20%7B%20title%20%3D%20title.replace%28/%5E%28Originaltitel%7COriginal%20title%29:%20%2A/i%2C%20%22%22%29%3B%20title%20%3D%20title.replaceAll%28/%5C%5B%5B%5E%5C%5D%5D%2A%5D/gi%2C%20%22%22%29%3B%20console.log%28%27title:%27%2C%20title%29%3B%20title%20%3D%20title.replaceAll%28/%5B%27%22:%5D/gi%2C%20%22%22%29%3B%20title%20%3D%20title.replaceAll%28/%28%5E%20%2B%7C%20%2B%24%29/gi%2C%20%22%22%29%3B%20title%20%3D%20title.replaceAll%28/%20%2B/gi%2C%20%22%20%22%29%3B%20%7D%20search_url%20%3D%20%27https://simkl.com/search/%3Ftype%3D%27%20%2B%20search_type%20%2B%20%27%26q%3D%27%20%2B%20title%3B%20console.log%28%27search_url:%27%2C%20search_url%29%3B%20window.open%28search_url%2C%20%27_blank%27%29%3B%20%7D%20%7D%29%28%29 .. :ide: SQUEEZE & QUOTE search type MOVIES .. . (progn (forward-line 1) (search-forward ":") (let ((b (point))) (forward-line 1) (delete-region b (1- (point)))) (forward-char -1) (insert " ") (shell-command (concat "echo 'var search_type = \"movies\";' | python js-to-link.py - pv-movie-simkl-search.js") t)) .. _`SIMKL MOV`: javascript:%28function%28%29%7Bvar%20search_type%20%3D%20%22movies%22%3B%20if%20%28typeof%28search_type%29%20%3D%3D%3D%20%27undefined%27%29%20%7B%20var%20search_type%20%3D%20%27tv%27%3B%20%7D%20var%20imdb_prefix%20%3D%20/%5Ehttps%3F:%5C/%5C/www.imdb.com%5C/title%5C//si%3B%20var%20title%20%3D%20null%3B%20var%20clean%20%3D%20false%3B%20var%20imdb_links%20%3D%20Array%28%20document.location.href%2C%20document.location.href.replace%28/.%2A%5B%3F%5Dimdb%3D%28tt%5B0-9%5D%2B%29/si%2C%20imdb_prefix%20%2B%20%22%241%22%29%20%29%3B%20var%20doc_text%20%3D%20document.querySelector%28%27body%27%29.textContent%3B%20var%20imdb_link_start%20%3D%20doc_text.search%28/%28https%3F:%5C/%5C/www.imdb.com%5C/title%5C/tt%5B0-9%5D%2B%29/si%29%3B%20if%20%28imdb_link_start%20%3E%3D%200%29%20%7B%20var%20_il%20%3D%20doc_text.substr%28imdb_link_start%29%3B%20imdb_links.push%28_il.replace%28/.%2A%28https%3F:%5C/%5C/www.imdb.com%5C/title%5C/tt%5B0-9%5D%2B%29.%2A/si%2C%20%22%241%22%29%29%3B%20%7D%20imdb_links.forEach%28function%28il%29%20%7B%20if%20%28title%20%3D%3D%3D%20null%29%20%7B%20if%20%28il.search%28imdb_prefix%29%20%3E%3D%200%29%20%7B%20title%20%3D%20il.replace%28/https%3F:%5C/%5C/www.imdb.com%5C/title%5C/%28tt%5B0-9%5D%2B%29.%2A/si%2C%20%22%241%22%29%3B%20if%20%28title.search%28/tt%5B0-9%5D%2B/%29%20%21%3D%200%29%20%7B%20title%20%3D%20null%3B%20%7D%20else%20%7B%20clean%20%3D%20true%3B%20%7D%20%7D%20%7D%20%7D%29%3B%20if%20%28title%20%3D%3D%3D%20null%29%20%7B%20var%20title_img_selectors%20%3D%20Array%28%20%27img.previewModal--player-titleTreatment-logo%27%2C%20%27%5Bdata-testid%3D%22title-art%22%5D%20img%27%2C%20%27%23unauth-navbar-target%20img%27%20%29%3B%20title_img_selectors.forEach%28function%28_tis%29%20%7B%20if%20%28title%20%3D%3D%3D%20null%29%20%7B%20var%20title_img%20%3D%20document.querySelector%28_tis%29%3B%20console.log%28%27title_img:%27%2C%20title_img%29%3B%20if%20%28title_img%20%21%3D%3D%20null%29%20%7B%20title%20%3D%20title_img.getAttribute%28%27alt%27%29%3B%20%7D%20%7D%20%7D%29%3B%20%7D%20if%20%28title%20%3D%3D%3D%20null%29%20%7B%20var%20title_selectors%20%3D%20Array%28%20%27%5Bdata-testid%3D%22hero-title-block__original-title%22%5D%27%2C%20%27%5Bdata-testid%3D%22hero-title-block__title%22%5D%27%2C%20%27%5Bdata-automation-id%3D%22title%22%5D%27%2C%20%27.episodeSelector-season-name%27%20%29%3B%20var%20title_text%20%3D%20null%3B%20title_selectors.forEach%28function%28_ts%29%20%7B%20if%20%28title%20%3D%3D%3D%20null%29%20%7B%20title_text%20%3D%20document.querySelector%28_ts%29%3B%20if%20%28title_text%20%21%3D%3D%20null%29%20%7B%20title%20%3D%20title_text.textContent%3B%20%7D%20%7D%20%7D%29%3B%20%7D%20if%20%28title%20%21%3D%3D%20null%29%20%7B%20var%20search_url%3B%20if%20%28%21clean%29%20%7B%20title%20%3D%20title.replace%28/%5E%28Originaltitel%7COriginal%20title%29:%20%2A/i%2C%20%22%22%29%3B%20title%20%3D%20title.replaceAll%28/%5C%5B%5B%5E%5C%5D%5D%2A%5D/gi%2C%20%22%22%29%3B%20console.log%28%27title:%27%2C%20title%29%3B%20title%20%3D%20title.replaceAll%28/%5B%27%22:%5D/gi%2C%20%22%22%29%3B%20title%20%3D%20title.replaceAll%28/%28%5E%20%2B%7C%20%2B%24%29/gi%2C%20%22%22%29%3B%20title%20%3D%20title.replaceAll%28/%20%2B/gi%2C%20%22%20%22%29%3B%20%7D%20search_url%20%3D%20%27https://simkl.com/search/%3Ftype%3D%27%20%2B%20search_type%20%2B%20%27%26q%3D%27%20%2B%20title%3B%20console.log%28%27search_url:%27%2C%20search_url%29%3B%20window.open%28search_url%2C%20%27_blank%27%29%3B%20%7D%20%7D%29%28%29 .. raw:: latex \end{abstract} \endgroup .. \|:info:| put local definitions here .. include:: doc_defs.inc .. include:: abbrev_defs.inc .. include:: doc_defs_combined.inc .. .. \||<-snap->|| doc_standalone .. include:: doc/doc_defs_secret.inc .. \||<-snap->|| doc_standalone .. \||<-snap->|| not_doc_standalone .. include:: doc_defs_secret.inc .. \||<-snap->|| not_doc_standalone .. _`Wolfgang Scherer`: wolfgang.scherer@gmx.de