Guest User

Untitled

a guest
Sep 15th, 2024
562
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 12.15 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.     <title>Stream - qrxx.pl</title>
  7.     <link rel="icon" type="image/x-icon" href="https://parspng.com/wp-content/uploads/2022/01/tvpng.parspng.com-2.png">
  8.     <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/shaka-player/4.2.0/controls.min.css">
  9.     <link rel="stylesheet" href="https://lucksy.github.io/shaka-player-themes/dist/brands/youtube-theme/youtube-theme.css">
  10.     <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
  11.     <script src="https://cdnjs.cloudflare.com/ajax/libs/shaka-player/4.2.0/shaka-player.ui.js"></script>
  12.     <script src="https://lucksy.github.io/shaka-player-themes/dist/brands/youtube-theme/youtube-script.js"></script>
  13.     <script id="aclib" type="text/javascript" src="//acscdn.com/script/aclib.js"></script>
  14.     <style>
  15.         /* General Styles */
  16.         body {
  17.             margin: 0;
  18.             font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  19.             background-color: #121212;
  20.             color: #e0e0e0;
  21.             display: flex;
  22.             flex-direction: column;
  23.             min-height: 100vh;
  24.         }
  25.  
  26.         /* Header Styles */
  27.         .header {
  28.             display: flex;
  29.             justify-content: space-between;
  30.             align-items: center;
  31.             padding: 20px 40px;
  32.             background-color: #1e1e1e;
  33.             position: sticky;
  34.             top: 0;
  35.             z-index: 1000;
  36.             border-bottom: 1px solid #333;
  37.             box-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
  38.         }
  39.  
  40.         .header h1 {
  41.             margin: 0;
  42.             font-size: 32px;
  43.             color: #00aaff;
  44.         }
  45.  
  46.         .header .back-button {
  47.             padding: 10px 20px;
  48.             font-size: 16px;
  49.             color: #ffffff;
  50.             background-color: #00aaff;
  51.             border: none;
  52.             border-radius: 5px;
  53.             cursor: pointer;
  54.             transition: background-color 0.3s, transform 0.3s;
  55.             text-decoration: none;
  56.         }
  57.  
  58.         .header .back-button:hover {
  59.             background-color: #ffaa00;
  60.             transform: scale(1.05);
  61.         }
  62.  
  63.         /* Video Container Styles */
  64.         #video-container {
  65.             width: 100%;
  66.             height: auto;
  67.             max-width: 1200px; /* Adjust maximum width as needed */
  68.             margin: 20px auto;
  69.             box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  70.             border-radius: 10px;
  71.             overflow: hidden;
  72.             background-color: #2b2b2b;
  73.         }
  74.  
  75.         #video-container video {
  76.             width: 100%;
  77.             height: 100%;
  78.             border-radius: 10px;
  79.         }
  80.  
  81.         /* EPG Container Styles */
  82.         .epg-container {
  83.             max-width: 800px;
  84.             margin: 20px auto;
  85.             padding: 20px;
  86.             background-color: #1e1e1e;
  87.             border-radius: 10px;
  88.             box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
  89.         }
  90.  
  91.         .stationItem {
  92.             margin-bottom: 20px;
  93.             padding: 15px;
  94.             border-radius: 8px;
  95.             background-color: #2b2b2b;
  96.             box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  97.             transition: box-shadow 0.3s;
  98.             display: flex;
  99.             align-items: center;
  100.             justify-content: center; /* Center content vertically */
  101.         }
  102.  
  103.         .stationItem.loading::after {
  104.             content: 'Ładowanie EPG...';
  105.             color: #555;
  106.             font-size: 16px;
  107.             font-style: italic;
  108.         }
  109.  
  110.         .stationItem:hover {
  111.             box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2);
  112.         }
  113.  
  114.         .stationItem img {
  115.             width: 120px;
  116.             height: 90px;
  117.             object-fit: cover;
  118.             border-radius: 8px;
  119.             margin-right: 20px;
  120.         }
  121.  
  122.         .detail {
  123.             flex: 1;
  124.             color: #e0e0e0;
  125.         }
  126.  
  127.         .detail a {
  128.             text-decoration: none;
  129.             color: #00aaff;
  130.             font-weight: bold;
  131.             display: block;
  132.             margin-bottom: 5px;
  133.             font-size: 18px;
  134.             transition: color 0.3s;
  135.         }
  136.  
  137.         .detail a:hover {
  138.             color: #ffaa00;
  139.         }
  140.  
  141.         .detail p {
  142.             margin: 5px 0;
  143.             color: #bbbbbb;
  144.             font-size: 16px;
  145.         }
  146.  
  147.         .detail time {
  148.             display: block;
  149.             color: #999;
  150.             font-size: 0.9em;
  151.             margin-bottom: 5px;
  152.         }
  153.  
  154.         .detail p.genre {
  155.             font-style: italic;
  156.             margin-bottom: 5px;
  157.         }
  158.  
  159.         /* Buttons Container Styles */
  160.         .buttons-container {
  161.             display: flex;
  162.             justify-content: center;
  163.             gap: 20px;
  164.             margin: 20px 0;
  165.             flex-wrap: wrap;
  166.         }
  167.  
  168.         .buttons-container a {
  169.             text-decoration: none;
  170.         }
  171.  
  172.         .button {
  173.             padding: 15px 30px;
  174.             font-size: 18px;
  175.             color: #ffffff;
  176.             background-color: #00aaff;
  177.             border: none;
  178.             border-radius: 5px;
  179.             cursor: pointer;
  180.             transition: background-color 0.3s, transform 0.3s;
  181.         }
  182.  
  183.         .button:hover {
  184.             background-color: #ffaa00;
  185.             transform: scale(1.05);
  186.         }
  187.  
  188.         /* Responsive Styles */
  189.         @media (max-width: 768px) {
  190.             .header, .content {
  191.                 padding: 10px 20px;
  192.             }
  193.  
  194.             .header h1 {
  195.                 font-size: 24px;
  196.             }
  197.  
  198.             .header .back-button {
  199.                 font-size: 14px;
  200.                 padding: 8px 16px;
  201.             }
  202.  
  203.             #video-container {
  204.                 width: 100%;
  205.             }
  206.  
  207.             .buttons-container {
  208.                 flex-direction: column;
  209.                 align-items: center;
  210.             }
  211.  
  212.             .button {
  213.                 width: 100%;
  214.                 max-width: 200px;
  215.                 text-align: center;
  216.                 margin: 5px 0;
  217.             }
  218.         }
  219.  
  220.         /* Override styles for shaka-player controls */
  221.         .shaka-settings-menu {
  222.             background-color: #2b2b2b !important;
  223.             color: #e0e0e0 !important;
  224.             font-family: inherit !important;
  225.         }
  226.  
  227.         .shaka-settings-menu .shaka-overflow-menu {
  228.             overflow-y: auto !important;
  229.         }
  230.  
  231.         .shaka-settings-menu .shaka-button-container {
  232.             display: flex;
  233.             justify-content: space-between;
  234.             align-items: center;
  235.             padding: 8px 16px;
  236.             white-space: nowrap;
  237.         }
  238.  
  239.         .shaka-settings-menu .shaka-back-to-overflow-button,
  240.         .shaka-settings-menu .shaka-overflow-button {
  241.             flex: 1;
  242.             text-align: left;
  243.         }
  244.  
  245.         .shaka-settings-menu .shaka-back-to-overflow-button span,
  246.         .shaka-settings-menu .shaka-overflow-button span {
  247.             display: inline-block;
  248.             width: 100%;
  249.         }
  250.  
  251.         .shaka-settings-menu .shaka-settings-menu-header {
  252.             display: flex;
  253.             justify-content: space-between;
  254.             padding: 8px 16px;
  255.         }
  256.  
  257.         .shaka-settings-menu .shaka-back-to-overflow-button span {
  258.             text-align: left;
  259.         }
  260.  
  261.         .shaka-settings-menu .shaka-overflow-button {
  262.             text-align: right;
  263.         }
  264.  
  265.         .shaka-settings-menu .shaka-overflow-button span {
  266.             display: inline-block;
  267.             text-align: right;
  268.         }
  269.  
  270.         /* Hide the navigate_next icon */
  271.         .youtube-theme .shaka-overflow-menu span + span:after {
  272.             content: "";
  273.         }
  274.     </style>
  275. </head>
  276. <body>
  277.     <header class="header" data-protonpass-form="">
  278.         <h1>qrxx.pl</h1>
  279.         <a href="https://strim.qrxx.pl/" class="back-button">Powrot do listy kanalow</a>
  280.     </header>
  281.     <main class="content">
  282.         <div id="video-container" class="youtube-theme">
  283.             <video id="video" autoplay></video>
  284.         </div>
  285.         <div class="epg-container">
  286.             <div class="stationItem loading" id="firstProgram"></div>
  287.         </div>
  288.         </div>
  289.     </main>
  290.     <script>
  291.         document.addEventListener('DOMContentLoaded', function () {
  292.             shaka.polyfill.installAll();
  293.  
  294.             if (shaka.Player.isBrowserSupported()) {
  295.                 initPlayer();
  296.             } else {
  297.                 console.error('Browser not supported!');
  298.             }
  299.         });
  300.  
  301.         async function initPlayer() {
  302.             const video = document.getElementById('video');
  303.             const videoContainer = document.getElementById('video-container');
  304.             const player = new shaka.Player(video);
  305.  
  306.             player.addEventListener('error', onErrorEvent);
  307.  
  308.             const clearKeys = {
  309.                 'f3bb9bb88e0449ea927e8410de5dfeca': 'e53bcfe25cd8fbe95b207341bd7b4383'
  310.             };
  311.             player.configure({
  312.                 drm: {
  313.                     clearKeys: clearKeys
  314.                 },
  315.                 streaming: {
  316.                     rebufferingGoal: 2,
  317.                     bufferingGoal: 10,
  318.                     lowLatencyMode: true,
  319.                     inaccurateManifestTolerance: 2
  320.                 }
  321.             });
  322.  
  323.             const manifestUri = 'https://ineago.cf.insyscd.net/insysgo.live/live/eds/polsat-news-fhd/dash/polsat-news-fhd.mpd';
  324.  
  325.             try {
  326.                 await player.load(manifestUri);
  327.                 console.log('The video has now been loaded!');
  328.             } catch (error) {
  329.                 onError(error);
  330.             }
  331.  
  332.             const ui = new shaka.ui.Overlay(player, videoContainer, video);
  333.             ui.getControls();
  334.             video.controls = false;
  335.         }
  336.  
  337.         function onErrorEvent(event) {
  338.             onError(event.detail);
  339.         }
  340.  
  341.         function onError(error) {
  342.             console.error('Error code', error.code, 'object', error);
  343.         }
  344.  
  345.         async function fetchEPGData() {
  346.             try {
  347.                 const response = await fetch(`https://api.allorigins.win/get?url=${encodeURIComponent('https://www.teleman.pl/program-tv/stacje/Polsat-News')}`);
  348.                 const data = await response.json();
  349.                 const parser = new DOMParser();
  350.                 const doc = parser.parseFromString(data.contents, 'text/html');
  351.                
  352.                 // Select the first <li> element from the parsed HTML
  353.                 const firstProgram = doc.querySelector('.stationItems li');
  354.                
  355.                 if (firstProgram) {
  356.                     const programContainer = document.getElementById('firstProgram');
  357.                     programContainer.innerHTML = `
  358.                         ${firstProgram.querySelector('a img') ? `<img src="https:${firstProgram.querySelector('a img').getAttribute('src')}" alt="${firstProgram.querySelector('a img').getAttribute('alt')}">` : ''}
  359.                         <div class="detail">
  360.                             ${firstProgram.querySelector('em') ? `<time>${firstProgram.querySelector('em').innerHTML}</time>` : ''}
  361.                             <a>${firstProgram.querySelector('.detail a').innerText}</a>
  362.                             <p class="genre">${firstProgram.querySelector('.genre') ? firstProgram.querySelector('.genre').innerText : ''}</p>
  363.                             <p>${firstProgram.querySelector('.detail p:not(.genre)') ? firstProgram.querySelector('.detail p:not(.genre)').innerText : ''}</p>
  364.                         </div>
  365.                     `;
  366.                     programContainer.classList.remove('loading'); // Remove loading class
  367.                 }
  368.             } catch (error) {
  369.                 console.error('Error fetching EPG data:', error);
  370.             }
  371.         }
  372.  
  373.         // Fetch EPG data when the page loads
  374.         document.addEventListener('DOMContentLoaded', () => {
  375.             fetchEPGData();
  376.         });
  377.     </script>
  378. <script type="text/javascript">
  379.     aclib.runAutoTag({
  380.         zoneId: 'xqnxaucwru',
  381.     });
  382. </script>
  383. </body>
  384. </html>
Advertisement
Add Comment
Please, Sign In to add comment