您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds links to privates in your chat log (see picture) http://i.imgur.com/UM0A50S.jpg
// ==UserScript== // @name MyFreeCams PVT video link adder // @version 1.2 // @description Adds links to privates in your chat log (see picture) http://i.imgur.com/UM0A50S.jpg // @author Camgurlfan // @compatible tested with chromium and opera (/w tampermonkey) // @updateurl https://greasyfork.org/scripts/17170-myfreecams-pvt-video-link-adder/code/MyFreeCams%20PVT%20video%20link%20adder.user.js // @run-at document-end // @include http://www.myfreecams.com/php/chat_logs.php* // @include https://www.myfreecams.com/php/chat_logs.php* // @icon http://a.mfcimg.com/mfc2/images/icons/png/archive.16x16.png // @grant unsafeWindow // @grant GM_addStyle // @namespace https://greasyfork.org/users/30835 // ==/UserScript== /******************************************************************************************************************* chat logs *******************************************************************************************************************/ if (location.href.indexOf('myfreecams.com/php/chat_logs.php') != -1) { unsafeWindow.GetLog.LoadJWPlayer = function() { var V1_FLV = (0); // 0: FLV (Legacy format, older archive) var V1_F4V = (1 << 0); // 1: F4V (Legacy format, older archive) var V2_NONE = (1 << 1); // 2: No Recorded files var V2_FLV = (1 << 2); // 4: FLV Recorded by FMS/Wowza var V2_F4V = (1 << 3); // 8: F4V Recorded by FMS var V2_MP4X = (1 << 4); // 16: Transcoded MP4 (Some other F4V or FLV bit set) var V2_MP4W = (1 << 5); // 32: MP4 Recorded by Wowza (not a transcode) var aMatches = GetLog.sArchiveFile.match(/\.(\w{3})$/); var sFormat = aMatches[1]; var size = VideoResize.GetSize(); var isPlaying = false; var isBuffering = false; var hasError = false; oSources = []; if (GetLog.bUseFallbackArchive) { var aMatches; if (aMatches = GetLog.sFallbackArchive.match(/\.(\w{3})$/)) { var sFallbackFormat = aMatches[1]; oSources.push({ file: GetLog.sFallbackArchive, label: sFallbackFormat + ' fallback' }); } } else { oSources.push({ file: GetLog.sArchiveFile, label: sFormat }); } console.log("Loading " + oSources[0].file); var fFallback = function() { if (GetLog.sArchiveFormat & V2_MP4X && !GetLog.bUseFallbackArchive) { GetLog.bUseFallbackArchive = true; aMatches = GetLog.sFallbackArchive.match(/\.(\w{3})$/); var sFallbackFormat = aMatches[1]; console.log('JWPlayer MP4 Fallback ' + ("fallback to " + sFallbackFormat + " , file: " + GetLog.sArchiveFile)); g_oReportBack.Send('JWPlayer MP4 Fallback', ("fallback to " + sFallbackFormat + " , file: " + GetLog.sArchiveFile)); GetLog.LoadJWPlayer(); } }; jwplayer('mediaplayer').setup({ sources: oSources, autostart: true, base: '/vendor/swf/', height: size.height, width: size.width }); jwplayer('mediaplayer').onSetupError( function(err) { console.log(err); hasError = true; g_oReportBack = new MfcReportBack('chat_logs'); g_oReportBack.Send('JWPlayer SetupError', (err.message + ", file: " + GetLog.sArchiveFile)); } ); jwplayer('mediaplayer').onError( function(err) { console.log(err); hasError = true; g_oReportBack = new MfcReportBack('chat_logs'); g_oReportBack.Send('JWPlayer Error', (err.message + ", file: " + GetLog.sArchiveFile)); fFallback(); } ); jwplayer('mediaplayer').onBuffer( function(info) { console.log(info); isBuffering = true; } ); jwplayer('mediaplayer').onPlay( function(info) { console.log(info); isPlaying = true; } ); setTimeout(function() { if (isPlaying === false && hasError === false) { g_oReportBack = new MfcReportBack('chat_logs'); var message; if (isBuffering) message = "file buffered but did not play within 10 secs. , file: " + GetLog.sArchiveFile; else message = "file did not play or buffer within 10 secs. , file: " + GetLog.sArchiveFile; console.log('JWPlayer Observation: ' + message); g_oReportBack.Send('JWPlayer Observation', message); fFallback(); } }, 5000); var oChatArea; if (oChatArea == document.getElementById('chat_area')) oChatArea.height = (size.client_height - size.height - 200); console.log(GetLog.sArchiveFile); }; unsafeWindow.GetLog.Response = function() { if (g_oReq.readyState != 4) return; document.getElementById('log_contents').style.heigth = '400px'; var sRes = g_oReq.responseText; if (g_UA.IE <= 7) { sRes = sRes.replace(/<div id=mediaplayer>[^<]*<\/div>/, "<div style='padding:20px;'>Archives are no longer viewable with Internet Explorer versions 6 or 7 as it does not support modern video compression.<br><br> Please <a href=http://windows.microsoft.com/en-us/internet-explorer/browser-ie target=_blank>update Internet Explorer</a>, or consider <a href=https://www.google.com/intl/en/chrome/browser/ target=_blank>installing Google Chrome</a> as an alternative.</div>"); } document.getElementById('log_contents').innerHTML = sRes; GetLog.bUseFallbackArchive = false; var aMatches; if (aMatches = sRes.match(/archive_format:(\d+)/)) { GetLog.sArchiveFormat = aMatches[1]; } if (aMatches = sRes.match(/fallback_archive:([^\s\-]*)/)) { GetLog.sFallbackArchive = decodeURIComponent(aMatches[1]); } if (aMatches = sRes.match(/JWPlayer:([^<]*)/)) { GetLog.sArchiveFile = decodeURIComponent(aMatches[1]); GetLog.LoadJWPlayer(); } var downloadLink = document.createElement("a"); downloadLink.href = GetLog.sArchiveFile; downloadLink.setAttribute("title", GetLog.sArchiveFile); downloadLink.innerHTML = "DOWNLOAD " + GetLog.sArchiveFile.match(/[^/]+$/gi).toString(); downloadLink.setAttribute("style", "float:left;text-transform: uppercase;padding: 1px 8px;text-decoration: none; border-radius: 8px;font-size: 9px; font-variant: small-caps;margin: 1px 4px;"); downloadLink.style.border = "1px white solid"; downloadLink.style.backgroundColor = "green"; downloadLink.style.color = "white"; downloadLink.addEventListener("mouseout", function() { downloadLink.style.border = "1px green solid"; downloadLink.style.backgroundColor = "white"; downloadLink.style.color = "green"; }); downloadLink.addEventListener("mouseover", function() { downloadLink.style.border = "1px white solid"; downloadLink.style.backgroundColor = "green"; downloadLink.style.color = "white"; }); if (document.querySelector("#chat_area > div > span.chat_log_index_private_session")) { document.querySelector("#chat_area > div > span.chat_log_index_private_session").appendChild(downloadLink); } else { document.querySelector("#chat_area > div").appendChild(downloadLink); } VideoResize.Execute(); }; }