Skip to content
Snippets Groups Projects
Select Git revision
  • 399597949a749d6ecf90f907a29d720029364f64
  • main default protected
  • threads
3 results

main.py

Blame
    • rick.mollard's avatar
      39959794
      new file: CampusSelector.py · 39959794
      rick.mollard authored
      	new file:   ConfigChecker.py
      	new file:   SwitchCommands.py
      	new file:   __pycache__/CampusSelector.cpython-310.pyc
      	new file:   __pycache__/ConfigChecker.cpython-310.pyc
      	new file:   __pycache__/FindLinkTransitions.cpython-310.pyc
      	new file:   __pycache__/PortFlipper.cpython-310.pyc
      	new file:   __pycache__/SwitchCommands.cpython-310.pyc
      	modified:   findfails.py
      	new file:   greaterNebraska.txt
      	modified:   highTransitions.py
      	new file:   highTransitions.txt
      	new file:   main.py
      	modified:   unkSwitches-cx.txt
      	new file:   unlCitySwitches-cx.txt
      	new file:   unoSwitches-cx.txt
      39959794
      History
      new file: CampusSelector.py
      rick.mollard authored
      	new file:   ConfigChecker.py
      	new file:   SwitchCommands.py
      	new file:   __pycache__/CampusSelector.cpython-310.pyc
      	new file:   __pycache__/ConfigChecker.cpython-310.pyc
      	new file:   __pycache__/FindLinkTransitions.cpython-310.pyc
      	new file:   __pycache__/PortFlipper.cpython-310.pyc
      	new file:   __pycache__/SwitchCommands.cpython-310.pyc
      	modified:   findfails.py
      	new file:   greaterNebraska.txt
      	modified:   highTransitions.py
      	new file:   highTransitions.txt
      	new file:   main.py
      	modified:   unkSwitches-cx.txt
      	new file:   unlCitySwitches-cx.txt
      	new file:   unoSwitches-cx.txt
    script.js 11.57 KiB
    let RecommendedContent = [];
    for (let i = 0; i < Medias.length;) {
        let maybeMedia = Medias[Math.floor(Math.random() * Medias.length)];
        if (!RecommendedContent.includes(maybeMedia)) {
            RecommendedContent.push(maybeMedia);
            i++;
        }
    }
    
    // == The rest of the code == //
    
    $(document).ready(function() {
        //Code when hamburger is clicked
        $('.hamburger-content').hide();
        $(document).on('click', '#hamburger', function() {
            $('.hamburger-content').toggle();
        });
    
        let loginServices = new Set();
        // get the logged in services
    
        let services = ['netflix', 'hulu', 'hbogo', 'showtime', 'primevideo', 'crunchyroll'];
        let genres = ['action', 'adventure', 'comedy', 'drama', 'romance', 'sci-fi'];
    
    
        for (service of services) {
            console.log(service);
            addTogglerListener(service);
        }
    
        function addTogglerListener(service) {
            $(document).on('click', '#' + service + '-switch', function() {
                // $('#' + service + '-switch').not(':checked').prop("checked", true);
                // updateList();
                if ($('#' + service + '-switch').val() === 'on') {
                    $('#' + service + '-switch').val('off');
                    if ($('.search-content').is(':visible')) {
                        updateSearch();
                    }
                    updateList();
                    console.log('yikes');
                } else {
                    $('#' + service + '-switch').val('on');
                    if ($('.search-content').is(':visible')) {
                        updateSearch();
                    }
                    updateList();
                    console.log('jeepers');
                }
            });
        }
    
    
    
        let serviceToLoginID = new Map();
        serviceToLoginID.set("#netflixLogin", ["Netflix", "netflix"]);
        serviceToLoginID.set("#huluLogin", ["Hulu", "hulu"]);
        serviceToLoginID.set("#hboLogin", ["HBO GO", "hbo"]);
        serviceToLoginID.set("#showtimeLogin", ["Showtime", "showtime"]);
        serviceToLoginID.set("#primeLogin", ["Prime Video", "prime"]);
        serviceToLoginID.set("#crunchyrollLogin", ["Crunchyroll", "crunchyroll"]);
    
        for (buttonid of serviceToLoginID.keys()) {
            addButtonListener(buttonid);
        }
    
        $('.page-content').hide();
        $('.service-login').hide();
        $('.search-content').hide();
    
        function addButtonListener(buttonid) {
            $(document).on('click', buttonid, function() {
                if ($(buttonid).hasClass("login")) {
                    //        $(buttonid).removeClass("login");
                    //        $(buttonid).addClass("logout");
                    //        $(buttonid).text("Logout");
                    //        loginServices.add(serviceToLoginID.get(buttonid)[0]);
                    displayServiceLoginPage(buttonid);
                    //          $('.page-content').show();
                    $('.starting-page').hide();
                } else {
                    $(buttonid).removeClass("logout");
                    $(buttonid).addClass("login");
                    $(buttonid).text("Login");
                    loginServices.delete(serviceToLoginID.get(buttonid)[0]);
                }
            });
        }
    
        let loginHamburger = undefined;
    
        function displayServiceLoginPage(buttonid) {
            $('.starting-page').hide();
            $('.page-content').hide();
            $('.search-content').hide();
            $('.hamburger-content').hide();
            $('.tv-show-page').hide();
            $('#login-service-name').removeClass()
            $('#login-service-name').addClass(serviceToLoginID.get(buttonid)[1])
            $('#login-service-name').text(serviceToLoginID.get(buttonid)[0])
            $('.service-login').show();
            loginHamburger = buttonid;
        }
    
        $('#login-form').submit(function(e) {
            e.preventDefault();
            if ($('#username-input').val() == 'cat' && $('#password-input').val() == 'dog') {
                $(loginHamburger).removeClass("login");
                $(loginHamburger).addClass("logout");
                $(loginHamburger).text("Logout");
                loginServices.add(serviceToLoginID.get(loginHamburger)[0]);
                $('.service-login').hide();
                $('.page-content').show();
                $('#username-input').val('');
                $('#password-input').val('');
            } else {
                alert("Incorrect username or password.");
            }
        });
    
    
    
    
        function sortbyGenre(genre) { // returns results that are the selected genre
            let results = [];
            for (var i = 0; i < Medias.length; i++) {
                for (var j = 0; j < genres.length; j++) {
                    if (Medias[i].genres[j] === genre) {
                        results.push(Medias[i]);
                    }
                }
            }
            return results;
        }
    
        // function sortbyGenre(genre) { // returns results that are the selected genre
        //     let results = [];
        //     for (var i = 0; i < Medias.length; i++) {
        //         if (Medias[i].genre === genre) {
        //             results.push(Medias[i]);
        //         }
        //     }
        //     return results;
        // }
    
        function updateList() {
            $('#recommended').empty();
            let activeServices = findActiveServices();
            for (var i = 0; i < RecommendedContent.length; i++) {
                for (service of activeServices) {
                    if (RecommendedContent[i].services[0].toLowerCase().replace(/\s+/g, '') === service) {
                        AddElement(RecommendedContent[i], "#recommended");
                    }
                }
            }
            updateGenres();
        }
    
        updateList();
    
        function updateGenres() {
            let genre = document.getElementById('genre-selector');
            let selected = genre.options[genre.selectedIndex].value;
    
            var myNode = document.getElementById("sortbygenre");
            // while (myNode.firstChild) {
            //     myNode.removeChild(myNode.firstChild);
            // }
            $('#sortbygenre').empty();
    
            let shows = sortbyGenre(selected);
            let activeServices = findActiveServices();
    
            for (var i = 0; i < shows.length; i++) {
                for (service of activeServices) {
                    if (shows[i].services[0].toLowerCase().replace(/\s+/g, '') === service) {
                        AddElement(shows[i], "#sortbygenre");
                    }
                }
            }
        }
    
        updateGenres();
    
        function findActiveServices() {
            let activeServices = [];
            for (service of services) {
                if ($('#' + service + '-switch').val() === 'on') {
                    activeServices.push(service);
                }
            }
            return activeServices;
        }
    
        let cameFromSearch = false;
    
        function AddElement(show, location) {
            let html = "<a href=\"#\" id=\"" + show.id + "\" class=\"content\" style=\"background: url(" + show.imgPath + "); background-position: center; background-size: cover;\"><h5 class=\"content-title\">" + show.title + "</h5><h4 class=\"content-service " + show.services[0] + "\">" + show.services[0] + "</h4></div>";
            $(location).append(html);
            addContentListener(show);
        }
    
        function addContentListener(show) {
            $(document).on('click', '#' + show.id, function() {
                console.log('yite');
                let html = "<div id=\"show-display\"><h5>" + show.title + "</h5></div>"
                $("#show-title").empty().append(show.title);
                $("#show-description").empty().append(show.description);
                $("#show-description").empty().append(show.description);
                $(".show-img-container").empty().append("<img src=\"" + show.imgPath + "\">");
                $("#show-rating-year").empty();
                for (let i = 0; i < Math.floor(show.rating / 2); i++) {
                    $("#show-rating-year").append("<img src=\"./Content/good.png\">")
                }
                if (show.rating % 2 === 1) {
                    $("#show-rating-year").append("<img src=\"./Content/half.png\">")
                }
                for (let i = 5; i > Math.ceil(show.rating / 2); i--) {
                    $("#show-rating-year").append("<img src=\"./Content/bad.png\">")
                }
                $("#show-rating-year").append(" - " + show.year);
                $(".service-container").empty();
                for (service of show.services) {
                  $(".service-container").append("<div class=\"content-service-block\" id=\"" + service.toLowerCase().replace(/\s+/g, '') + "\">" + service + "</div>");
                }
                if ($('.page-content').is(':visible')) {
                    $('.page-content').slideUp(300);
                    cameFromSearch = false;
                } else {
                    $('.search-content').slideUp(300);
                    cameFromSearch = true;
                }
                $('.tv-show-page').show();
            });
        }
    
    
        let ScrollAmount = 500;
    
        $('#recommended-scroll-right').click(function() {
            document.getElementById('recommended').scrollLeft += ScrollAmount;
        });
        $('#recommended-scroll-left').click(function() {
            document.getElementById('recommended').scrollLeft -= ScrollAmount;
        });
    
        $('#genre-scroll-right').click(function() {
            document.getElementById('sortbygenre').scrollLeft += ScrollAmount;
        });
        $('#genre-scroll-left').click(function() {
            document.getElementById('sortbygenre').scrollLeft -= ScrollAmount;
        });
    
        $('#results-scroll-right').click(function() {
            document.getElementById('results').scrollLeft += ScrollAmount;
        });
        $('#results-scroll-left').click(function() {
            document.getElementById('results').scrollLeft -= ScrollAmount;
        });
    
    
    
    
        $('#genre-selector').change(function() {
            updateGenres();
        });
    
        $('.tv-show-page').hide();
    
        $(document).on('click', '#show-back-arrow', function() {
            if (cameFromSearch) {
                $('.search-content').slideDown();
                setTimeout(function() {
                    $('.tv-show-page').toggle();
                }, 400);
            } else {
                $('.page-content').slideDown();
                setTimeout(function() {
                    $('.tv-show-page').toggle();
                }, 400);
            }
        });
    
        $(document).on('click', '#search-back-arrow', function() {
            $('.search-content').hide();
            $('.page-content').show();
        });
    
        let lastSearch = '';
    
        $("#search-form").submit(function(e) {
            e.preventDefault();
            lastSearch = $('#search-box').val();
            updateSearch();
        });
    
        function updateSearch() {
            const showsToAdd = [];
            let foundShow = false;
            let activeServices = findActiveServices();
            for (show of Medias) {
                if (show.title.toLowerCase().includes(lastSearch.toLowerCase())) {
                    for (service of activeServices) {
                        if (show.services[0].toLowerCase().replace(/\s+/g, '') === service) {
                            showsToAdd.push(show);
                            foundShow = true;
                        }
                    }
                }
            }
            $('#search-box').val('');
            $('.page-content').hide();
            $('.tv-show-page').hide();
            $('.service-login').hide();
            $('.starting-page').hide();
            $('.hamburger-content').hide();
            $('.search-content').show();
            if (!foundShow) {
                $('#not-found').show()
                $('#search-content-band').hide();
            } else {
                $('#results').empty();
                $('#not-found').hide();
                $('#search-content-band').show();
                for (show of showsToAdd) {
                    AddElement(show, '#results');
                }
            }
        }
    });