NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Mark From Calendar // @namespace http://tampermonkey.net/ // @version 1.03 // @description Mark episode as watched from calendar // @match http://www.tvmaze.com/calendar* // @match https://www.tvmaze.com/calendar* // @require https://code.jquery.com/ui/1.11.4/jquery-ui.js // @updateURL https://openuserjs.org/meta/gazza911/Mark_From_Calendar.meta.js // @license MIT // @grant none // ==/UserScript== // Change colour on hover / moving mouse over: // Default is '#3c948b' // Accepted formats: // Red, green, blue - rgb(r, g, b) // You can also use rgba(r, g, b, a) where 'a' is the tranparency - 0 is fully transparent, 1 is fully solid, in other words a decimal / percentage transparency // Hex value - #123456 // Hugh, saturation, lightness - hsl(h, s, l) // Named colour - string; all names can be found here: http://www.w3schools.com/colors/colors_names.asp // All other values can be obtained from here: http://www.w3schools.com/colors/colors_picker.asp var hoverColour = "#3c948b"; // Change colour of eye / watch symbol: // Default is 'Black' // Same formats as above var eyeColour = "Black"; // Change colour of eye / watch symbol: // Default is 'lightslategray' // Same formats as above var watchedEyeColour = "lightslategray"; // Change size: // Default is 115 (value is in percentage) - I would not suggest anything lower than 100% or higher than 140% var size = 115; // Only show on 'my followed shows', not 'most popular shows' ? // Default is 1 // 1 = Yes // 0 = No var followedOnly = 0; // Show eye icon on watched episodes (allows unwatching the episode) // Default is 1 // 1 = Yes // 0 = No var showOnWatched = 1; var current = $("#filter option:selected").val(); if (!followedOnly || current != "popular") { $('<div id="hoverColourCheck"></div>').appendTo('body'); $("#hoverColourCheck").css("color", hoverColour); // Reverts to default if invalid colour entered if (!$("#hoverColourCheck").attr("style")) { hoverColour = "Blue"; } $('<div id="eyeColourCheck"></div>').appendTo('body'); $("#eyeColourCheck").css("color", eyeColour); // Reverts to default if invalid colour entered if (!$("#eyeColourCheck").attr("style")) { eyeColour = "Black"; } $('<style>.toggleWatched { position:absolute; right:5px; } \n.fa-lg { color:' + eyeColour + '; position:relative; top:-10px; font-size:' + size + '%; } \n.fa-lg:hover { color:' + hoverColour + '; cursor: pointer } \n.watched .toggleWatched .fa-lg { color:' + watchedEyeColour + '; } \n.watched .toggleWatched .fa-lg:hover { color:' + hoverColour + '; } </style>').appendTo($('head')); var element = '<div style="padding:1px"><span class="toggleWatched"><i class="fa fa-eye fa-lg" title="Toggle watch status"></i></span></div>'; var dt = new Date(); var dtYear = dt.getFullYear(); var dtMonth = dt.getMonth() + 1; var dtDay = dt.getDate(); $('div.day:gt(6)').each(function() { var thisdt = $(this).attr("class").split("date-")[1]; var dsplit = thisdt.split("-"); var year = parseInt(dsplit[0]); var month = parseInt(dsplit[1]); var day = parseInt(dsplit[2]); if (year < dtYear || (year == dtYear && (month < dtMonth || (month == dtMonth && day <= dtDay)))) { var notWatched = $(this).find('li.entry'); if (showOnWatched) { $(element).prependTo(notWatched); } else { $(notWatched).each(function(){ if (!$(this).hasClass("watched")) { $(element).prependTo($(this)); } }); } } }); $(".toggleWatched").click(function() { var eplink = $(this).parents("li.entry").children(":last"); var epid = $(eplink).attr("href").split("/")[2]; var watchType = null; if ($(this).parents("li.entry").hasClass("watched")) { } else { watchType = 0; } $.post("http://www.tvmaze.com/watch/set?episode_id=" + epid, { "type": watchType }); $(this).parents("li.entry").toggleClass("watched"); if ($(this).parents("li.entry").attr("class") == "entry") { $(this).parents("li.entry").removeAttr("title"); $(this).find("i").attr("title", "Click to watch episode"); } else { $(this).parents("li.entry").attr("title", "You have watched this episode"); $(this).find("i").attr("title", "Click to un-watch episode"); } }); }