Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name MFC Stats
- // @namespace mfcstats
- // @description Get online models statistics
- // @include http://m.myfreecams.com/*
- // @license WTFPL — http://www.wtfpl.net/
- // @version 0.2
- // @grant none
- // ==/UserScript==
- (function () {
- var streamData,
- modelData,
- blobURL,
- filename,
- css,
- style,
- link,
- observer,
- listeners = [
- ];
- css = '.streamData {clear: both;font-weight: 700;font-size: x-large;}';
- style = document.createElement('style');
- style.type = 'text/css';
- style.appendChild(document.createTextNode(css));
- document.getElementsByTagName('head') [0].appendChild(style);
- var createBlob = function (streamData) {
- var streamBlob;
- streamBlob = new Blob([streamData], {
- type: 'text/csv'
- });
- return URL.createObjectURL(streamBlob);
- };
- var getStats = function () {
- modelData = mfcApp.currentUser.collection.models;
- streamData = 'userid,username,age,camscore,rank,roomcount\n';
- modelData.forEach(function (elt) {
- var modelAttr = elt.attributes;
- if (modelAttr.camscore !== undefined) {
- streamData = streamData + modelAttr.userid + ',' + modelAttr.username + ',' + modelAttr.age + ',' + modelAttr.camscore + ',' + modelAttr.rank + ',' + modelAttr.roomCount + '\n';
- }
- });
- blobURL = createBlob(streamData);
- filename = 'streamdata_' + new Date().toISOString() + '.csv';
- link = document.createElement('a');
- link.className = 'streamData';
- link.download = filename;
- link.href = blobURL;
- link.appendChild(document.createTextNode('Stats'));
- var menulogo = document.querySelector('.unhide_menu_logo');
- menulogo.parentNode.insertBefore(link, menulogo.nextSibling);
- };
- function ready(selector, fn) {
- listeners.push({
- selector: selector,
- fn: fn
- });
- observer = new MutationObserver(check);
- observer.observe(document, {
- childList: true,
- subtree: true
- });
- check();
- }
- function check() {
- listeners.forEach(function (listener) {
- var elements = document.querySelectorAll(listener.selector);
- for (var i = 0, iLen = elements.length, element; i < iLen; i++) {
- element = elements[i];
- if (!element.ready) {
- element.ready = true;
- listener.fn.call(element, element);
- }
- }
- });
- };
- ready('#column_menu_container', setTimeout(getStats, 5000));
- }) ();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement