NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Videos on CS:GO Stash // @namespace https://github.com/HatScripts/VideosOnCSGOStash // @version 1.0.3 // @description Adds videos from CS:GO Skin Showcase (youtube.com/ffffinal) to CS:GO Stash (csgostash.com) // @author HatScripts // @icon http://csgostash.com/favicon.ico // @include http*://csgostash.com/* // @downloadURL https://github.com/HatScripts/VideosOnCSGOStash/raw/master/videos-on-csgo-stash.user.js // @updateURL https://github.com/HatScripts/VideosOnCSGOStash/raw/master/videos-on-csgo-stash.user.js // @noframes // ==/UserScript== $(function () { $.searchVideos = function (query, maxVideos) { return $.getJSON("https://www.googleapis.com/youtube/v3/search", { key: "AIzaSyBba67Fu_vuKllOeKXC4v4L4-7GXD93TTs", part: "snippet", channelId: "UCBdaeqYDYlS4mxgiemhjRAw", type: "video", fields: "items(id/videoId,snippet/title)", q: query, maxResults: maxVideos }); }; $.addVideoLinks = function (searchResults) { resultBoxes.each(function () { var resultBox = $(this); var skinName = resultBox.find("h3:first").text(); if (skinName === "★") { skinName = "Vanilla"; } var regex = new RegExp("^(\[Prototype\])?\\W*(?:StatTrak™ )?" + weapon + "\\W*" + skinName + "\\W*(.+?)?\\W*Skin Showcase$", "i"); var videos = []; searchResults.items.forEach(function (video) { var groups = regex.exec(video.snippet.title); if (groups) { groups.shift(); videos.push({ id: video.id.videoId, details: groups.filter(function (g) { return g; }).join(", ") }); } }); videos.sort(function (a, b) { return a.details.localeCompare(b.details); }).forEach(function (video) { $.addVideoLink(resultBox, video.id, video.details); }); }); }; $.addVideoLink = function (resultBox, videoId, details) { var a = $("<a>", { href: "https://www.youtube.com/watch?v=" + videoId, target: "_blank" }).click(function (e) { var a = $(this); a.css("display", "none"); $.embedVideoIn(a.parent(), videoId); e.preventDefault(); }).append( $("<span>").addClass("glyphicon glyphicon-film") ).append("Load Skin Showcase Video"); if (details) { details = details.replace(/ \(|\) /, " - "); a.append(" (" + details + ")"); } resultBox.find(".details-link").append( $("<p>").append(a) ); }; $.embedVideoIn = function (element, videoId) { element.append( $("<div>").css({ position: "relative", "padding-bottom": "56.25%" }).append( $("<iframe>", { src: "https://www.youtube.com/embed/" + videoId + "?autoplay=1" // Plays automatically + "&loop=1" // Loops the video + "&showinfo=0" // Hides video title + "&iv_load_policy=3" // Hides annotations + "&rel=0", // Hides relevant videos frameborder: 0, allowfullscreen: "" }).css({ position: "absolute", top: 0, left: 0, width: "100%", height: "100%" }) ) ); }; var heading = $("h1:first").text(); if (heading) { var weapon = heading.substr(0, heading.indexOf(" Skins")); var resultBoxes = $(".result-box"); $.searchVideos(weapon, resultBoxes.length + 10).success($.addVideoLinks); } });