NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @id TattsPro // @name Tatts Pro // @namespace http://goslotto.ru/viewtopic.php?f=35&t=3830 // @version 2.0.2 // @author flobik <info@northweb.ru> // @description Заполняет билеты в лотереях Tatts.com комбинациями из текстового файла. // @include https://thelott.com/tattersalls/buy-lotto/purchase-ticket?product=* // @updateURL https://openuserjs.org/install/flobik/Tatts_Pro.user.js // @downloadURL https://openuserjs.org/install/flobik/Tatts_Pro.user.js // @run-at document-end // @grant none // @icon data:image/png;base64,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 // ==/UserScript== /* CHANGELOG 2.0.2 (01.06.2016) - Фикс для нового домена (спасибо Barsik) 2.0.1 (10.10.2015) - Фикс позиции блока с корзиной 2.0 (15.01.2015) - Скрипт переписан с нуля - Новый интерфейс - Новый принцип отправки билетов на сервер - Исправлены ошибки - Поддержка всех игр Tatts - Поддержка Tampermonkey и Greasemonkey - Автообновление 1.3 (05.02.2012) - Возможность не ставить цифру 0 перед числом, меньше 10 (при условии разделения чисел пробелами) 1.2 (05.02.2012) - Возможность использования комб с пробелами-разделителями 1.1 (21.12.2011) - Добавлена поддержка браузера Google Chrome - Исправлено несколько опечаток в сообщениях 1.0 (19.12.2011) - Первый релиз */ //Запуск скрипта в режиме IIFE (Immediately-Invoked Function Expression) (function($, window, document){ 'use strict'; //Константы var maxTickets = 20, //Максимум билетов в корзине maxCombsPerTicket = 50, //Максимум комб в билете minCombsPerTicket = 4, //Минимум комб в билете dotsTimerTimeout = 1000; //Задержка между изменением многоточия //Переменные var elTattsPro, //Ссылка на форму elCombsInput, //Поле выбора файла game, //Текущая игра dots = [], //Ссылки на точки в многоточии curDot = -1, //Текущий шаг многоточия dotsTimerEnabled = false, //Включен ли таймер обновления многоточия maxSelection = 0; //Максимальное число, которое можно выбрать в текущей лотерее //Сохраняющиеся на протяжении ввода всех комб переменные var data = { combs: [], //Готовые комбинации combsBreak: 0, //Комба, после которой нужно закончить ввод билета, чтобы в следующем билете было минимум 4 комбы curComb: 0, //Индекс вводимой комбинации draw: 0, //Тираж system: 0 //Система }; //Обработка ошибки function Error(text) { alert(text); elCombsInput.val(''); return false; } //Функции для работы с localStorage function StorageDelete(name) { localStorage.removeItem(name); } function StorageGet(name, defaultValue) { var value = localStorage[name]; return value == null ? defaultValue : JSON.parse(value); } function StorageSet(name, value) { localStorage[name] = JSON.stringify(value); } //Импортирует CSS function InjectCSS(css) { var head, style; head = document.getElementsByTagName('head')[0]; if (!head) { return; } style = document.createElement('style'); style.type = 'text/css'; style.innerHTML = css; head.appendChild(style); } //Изменение отображаемой панели интерфейса function ShowGUI(panel) { //Скрытие все панелей $('#TattsPro .Panel').hide(); //Отображение необходимой панели $('#TattsPro #'+panel+'.Panel').show(); //Запуск таймера многоточия if (panel == 'Process') { dotsTimerEnabled = true; DotsTimerIteration(); } else { dotsTimerEnabled = false; } } //Обновление информации в GUI function UpdateGUI(panel) { switch (panel) { case 'Start': $('#Start span[data-tp="Draw"]').html(data.draw); $('#Start span[data-tp="System"]').html(data.system); $('#Start span[data-tp="CombsCount"]').html(data.combs.length); $('#Start span[data-tp="TicketsCount"]').html(Math.ceil(data.combs.length / maxCombsPerTicket)); $('#Start span[data-tp="StepsCount"]').html(Math.ceil(data.combs.length / (maxCombsPerTicket * maxTickets))); break; case 'Process': $('#Process span[data-tp="CompletePercentage"]').html(Math.ceil((data.curComb / data.combs.length) * 100)); $('#Process span[data-tp="CombsRemain"]').html(data.combs.length - data.curComb); $('#Process span[data-tp="CombsCount"]').html(data.combs.length); $('#Process span[data-tp="Step"]').html(Math.floor(data.curComb / (maxCombsPerTicket * maxTickets)) + 1); $('#Process span[data-tp="StepsCount"]').html(Math.ceil(data.combs.length / (maxCombsPerTicket * maxTickets))); break; case 'Continue': $('#Continue span[data-tp="CompletePercentage"]').html(Math.ceil((data.curComb / data.combs.length) * 100)); $('#Continue span[data-tp="CombsRemain"]').html(data.combs.length - data.curComb); $('#Continue span[data-tp="CombsCount"]').html(data.combs.length); $('#Continue span[data-tp="Step"]').html(Math.floor(data.curComb / (maxCombsPerTicket * maxTickets)) + 1); $('#Continue span[data-tp="StepsCount"]').html(Math.ceil(data.combs.length / (maxCombsPerTicket * maxTickets))); break; } } //Таймер многоточия function DotsTimerIteration() { if (++curDot == 3) curDot = -1; for (var i = 0; i < 3; i++) dots[i].css('visibility', (i <= curDot ? 'visible' : 'hidden')); if (dotsTimerEnabled) setTimeout(DotsTimerIteration, dotsTimerTimeout); } //Выбран файл с комбинациями function FileLoad() { //Файл var file = elCombsInput[0].files[0]; //Проверка типа файла if (!file.type.match(/text/)) return Error('Выбранный тип файла не поддерживается.'); //Чтение содержимого файла var reader = new FileReader(); reader.onload = function(e) { //Парсинг комбинаций var parseSuccess = ParseCombs(reader.result); //Проверка комбинаций (если парсинг удался) var checkSuccess = (parseSuccess ? CheckCombs() : false); //Подготовка к вводу билетов и отображение GUI с информацией if (parseSuccess && checkSuccess) { PrepareTicketsEnter(); UpdateGUI('Start'); ShowGUI('Start'); } } reader.readAsText(file); } //Парсинг комбинаций из текста function ParseCombs(text) { //Разрешены только цифры и пробельные символы if (!text.match(/^[\d|\s]+$/)) return Error('Неправильный формат комбинаций.'); //trim() text = text.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); //Добавление цифры 0 перед числами < 10 text = text.replace(/^(\d) /gm, '0$&'); text = text.replace(/ (\d)(?!\d)/gm, ' 0$1'); //Разбор комбинаций по строкам data.combs = []; var lines = text.split('\n'); for (var i = 0; i < lines.length; i++) { //Удаление всех пробельных символов var line = lines[i].replace(/\s/g, ''); //Количество чисел в комбинации var numCount = line.length / 2; //Временный массив с текущей комбинацией var curComb = []; //Парсинг комбинации for (var j = 0; j < numCount; j++) curComb[j] = parseInt(line.substr(j * 2, 2), 10); //Сохранение комбинации data.combs.push(curComb); } return true; } //Проверка комбинаций function CheckCombs() { //Минимум 4 комбинации if (data.combs.length < minCombsPerTicket) return Error('Необходимо минимум '+minCombsPerTicket+' комбинации.'); //Минимальное количество чисел в комбе var minCombsCount = $('.gameSelectionsDiv:first input').length + (game == 'Powerball' ? 1 : 0); //Количество чисел в первой комбе var firstCombNumCount = data.combs[0].length; //Все комбы одного формата, и есть минимальное кол-во чисел for (var i = 0; i < data.combs.length; i++) { if (data.combs[i].length != firstCombNumCount) return Error('Одна или несколько комбинаций отличаются по длине от первой комбинации.'); if (data.combs[i].length < minCombsCount) return Error('Одна или несколько комбинаций содержит менее '+minCombsCount+' чисел.'); } return true; } //Подготовка к вводу билетов function PrepareTicketsEnter() { //Количество комб в последнем билете var remainCombs = data.combs.length % maxCombsPerTicket; //Если их меньше минимального кол-ва, рассчитываем номер комбы, на которой закончится предпоследний/последний билет data.combsBreak = (remainCombs > 0 && remainCombs < minCombsPerTicket ? data.combs.length - minCombsPerTicket - 1 : data.combs.length - 1); //Индекс вводимой комбинации data.curComb = 0; //Выбранный тираж data.draw = parseInt($('.startDraw.selected').attr('startdraw'), 10); //Система data.system = (game == 'Powerball' ? data.combs[0].length - 1 : data.combs[0].length); } //Начало ввода билетов function EnterTickets() { //Интерфейс ввода билетов UpdateGUI('Process'); ShowGUI('Process'); //Запуск итерации ввода билетов EnterIteration(); } //Ввод билета function EnterIteration(AJAXData) { //Функция вызвана возвратом ответа от сервера if (typeof AJAXData != 'undefined') { UpdateGUI('Process'); //Обновление корзины trolley_generate(AJAXData); if (data.curComb == data.combs.length) { //Кончились комбы? StorageDelete('data'); ShowGUI('Complete'); return; } else if(AJAXData.trolley.freeItemCount == 0) { //Кончилось место в тележке StorageSet('data', data); ShowGUI('NeedPay'); return; } } //Индекс последней комбы в текущем билете if (data.curComb + maxCombsPerTicket <= data.combsBreak) var ticketLastCombIndex = data.curComb + maxCombsPerTicket - 1; //Максимум else if (data.curComb > data.combsBreak) var ticketLastCombIndex = data.combs.length - 1; //То, что осталось else var ticketLastCombIndex = data.combsBreak; //До линии разреза билета //Количество комб в билете //var curTicketCombsCount = ticketLastCombIndex - data.curComb + 1; //Подготовка данных билета var ticketData = { gameAutoPicks: [], //False, False, False... gameSelections: [], //Кодированные комбинации gamePowerballs: [] //Шары powerball }; //Разбор комбинаций for (;data.curComb <= ticketLastCombIndex; data.curComb++) { //Все билеты введены вручную... ticketData.gameAutoPicks[ticketData.gameAutoPicks.length] = 'False'; if (game != 'Powerball') { //Комбинация ticketData.gameSelections[ticketData.gameSelections.length] = EncodeComb(data.combs[data.curComb]); } else { //Комбинация ticketData.gameSelections[ticketData.gameSelections.length] = EncodeComb(data.combs[data.curComb].slice(0, data.combs[data.curComb].length - 1)); //Powerball ticketData.gamePowerballs[ticketData.gamePowerballs.length] = data.combs[data.curComb][data.combs[data.curComb].length - 1] } } //Формирование параметров AJAX запроса var queryData = { product: game, drawCount: 1, drawNumbers: data.draw, gameCount: ticketData.gameAutoPicks.length, gameAutoPicks: ticketData.gameAutoPicks.join(','), gameSelections: ticketData.gameSelections.join('_'), gamePowerballs: ticketData.gamePowerballs.join(','), powerhit: false, systemNumber: data.system, favouriteName: '', nswDayOfWeek: 0, autoPlayDrawCount: '', autoPlayJackpotAmount: '' }; //Отправка билета $.ajax({ url: 'https://thelott.com/CallProcedure.ashx?procedure=addTicketsToTrolley&nocache=' + Math.random(), type: "POST", data: queryData, success: EnterIteration }); } //Кодирует комбинацию (копия функции getGameSelectionMask(c)) function EncodeComb(c) { var a = []; for (var d = 0; d <= maxSelection; d++) a[d] = 0; while (a.length % 8 != 0) a.push(0); for (d = 0; d < c.length; d++) a[c[d]] = 1; var e = ""; for (d = 0; d < a.length / 8; d++) { var b = 0; for (j = 0; j < 8; j++) b += a[d * 8 + j] << j; e = StrPadLeft(b.toString(16), "0", 2) + e; } return e; } //Дополняет строку str символами pad слева до длинны length (копия функции string_padLeft(d, b, c)) function StrPadLeft(str, pad, length) { if (str.length >= length) return str; var e = []; for (var a = 1; a <= length - str.length; a++) e.push(pad); e.push(str); return e.join(""); } //Функция отмены ввода билетов function CancelTicketsEnter() { if (confirm("Вы уверены, что хотите отменить ввод билетов?")) { StorageDelete('data'); ShowGUI('Canceled'); } } //Инициализация скрипта function Init() { //Проверка совместимости if (window.FileReader === undefined) return Error('Ваш браузер не поддерживает HTML5 File API. Попробуйте последнюю версию Chrome или Firefox.'); //Выбранная игра game = product.name; //window.location.href.match(/product=(.+?)(?:&|$)/)[1]; //Максимальное число, которое можно выбрать в текущей лотерее maxSelection = product.maxSelection; //Сдвигаем корзину вниз $('#shopping-trolley').css('top', '310px'); //Добавляем CSS InjectCSS(resources.css); //Добавление формы скрипта $('#InputDiv').append(resources.html); //Ссылка на форму и её элементы elTattsPro = $('#TattsPro'); elCombsInput = $('#CombsInput'); for (var i = 0; i < 3; i++) dots[i] = $('.process .dot' + (i + 1)); //Стилизация заголовка CufonReplace('#TattsPro h2', { fontFamily: 'TheSans-ExtraBold', textShadow: '#FFFFFF 2px 0px', color: '-linear-gradient(#2f5ea9, .25=#4782ca,.50=#6bb8fd,.50=#6bb8fd)' }); //Проверка на наличие места в телеге if (trolleyData.trolley.freeItemCount == 0) { ShowGUI('NeedPay'); return; } //Продолжение ввода билетов var tmpData = StorageGet('data', false); if (tmpData !== false) { data = tmpData; UpdateGUI('Continue'); ShowGUI('Continue'); } //Событие выбора файла elCombsInput.change(function() { FileLoad(); }); //Событие начала ввода билетов, нажатие кнопки - продолжить ввод билетов $('#TattsProEnter, #TattsProContinue').click(function() { EnterTickets(); }); //Отмена ввода билетов $('#TattsProCancel').click(function() { CancelTicketsEnter(); }); } //Ресурсы var resources = {}; //Иконка OK resources.okIcon = 'data:image/png;base64,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'; //Иконка отмены resources.cancelIcon = 'data:image/png;base64,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'; //Иконка визы resources.visaIcon = 'data:image/png;base64,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'; //HTML resources.html = '\ <div id="TattsPro">\ <h2>Tatts Pro</h2>\ <div class="Panel" id="FileChoose">\ Выберите файл с комбинациями\ <div>\ <div class="TattsProButton Big">Открыть</div>\ <input id="CombsInput" type="file">\ </div>\ </div>\ <div class="Panel" id="Start">\ <table>\ <tr>\ <td>\ <strong>Комбинаций:</strong> <span data-tp="CombsCount">0</span><br>\ <strong>Билетов:</strong> <span data-tp="TicketsCount">0</span><br>\ <strong>Заходов:</strong> <span data-tp="StepsCount">0</span>\ </td>\ <td>\ <strong>Draw:</strong> <span data-tp="Draw">0000</span><br>\ <strong>Система:</strong> <span data-tp="System">0</span>\ </td>\ </tr>\ </table>\ <div id="TattsProEnter" class="TattsProButton Big">Начать ввод</div>\ </div>\ <div class="Panel" id="Process">\ <div class="data">\ <strong>Завершено:</strong> <span data-tp="CompletePercentage">0</span>%<br>\ <strong>Осталось комб.:</strong> <span data-tp="CombsRemain">0</span> из <span data-tp="CombsCount">0</span><br>\ <strong>Заход:</strong> <span data-tp="Step">0</span> из <span data-tp="StepsCount">0</span><br>\ </div>\ <div class="process">Идет ввод билетов<span class="dot dot1">.</span><span class="dot dot2">.</span><span class="dot dot3">.</span></div>\ </div>\ <div class="Panel" id="Continue">\ <div class="data">\ <strong>Завершено:</strong> <span data-tp="CompletePercentage">0</span>%<br>\ <strong>Осталось комб.:</strong> <span data-tp="CombsRemain">0</span> из <span data-tp="CombsCount">0</span><br>\ <strong>Заход:</strong> <span data-tp="Step">0</span> из <span data-tp="StepsCount">0</span><br>\ </div>\ Продолжить ввод билетов?<br>\ <div id="TattsProContinue" class="TattsProButton Small">Да</div> <div id="TattsProCancel" class="TattsProButton Small Red">Нет</div>\ </div>\ <div class="Panel" id="Complete">\ <img src="'+resources.okIcon+'"/><br>Ввод билетов завершен!\ </div>\ <div class="Panel" id="NeedPay">\ <img src="'+resources.visaIcon+'"/><br>Для продолжения необходимо оплатить уже введенные билеты.\ </div>\ <div class="Panel" id="Canceled">\ <img src="'+resources.cancelIcon+'"/><br>Ввод билетов отменен.\ </div>\ </div>\ '; //CSS resources.css = '\ #TattsPro {\ position: absolute;\ left: 660px;\ top: 0px;\ width: 235px;\ height: 150px;\ background-color: rgba(252, 253, 254, 0.29);\ padding: 10px;\ border-radius: 10px;\ }\ #TattsPro h2 {\ margin: 0px 0 5px 0px;\ }\ #FileChoose {\ text-align: center;\ padding-top: 26px;\ }\ #FileChoose > div {\ position: relative;\ overflow: hidden;\ margin: 10px;\ }\ .TattsProButton {\ background: #f0d300;\ border: 1px solid #E3A800;\ background: linear-gradient(to bottom, #f0d300 0%,#efab00 100%);\ color: #FFF;\ font-weight: bold;\ text-shadow: 0px 2px 0px #E59D00;\ cursor: pointer;\ }\ .TattsProButton.Big {\ border-radius: 9px;\ font-size: 18px;\ padding: 7px 0;\ }\ .TattsProButton.Small {\ border-radius: 6px;\ padding: 2px 0;\ width: 100px;\ display: inline-block;\ margin: 6px 2px 0 2px;\ }\ .TattsProButton.Red {\ background: #da0000;\ border: 1px solid #fc0101;\ background: linear-gradient(to bottom, #FF4C4C 0%,#DD0E0E 100%);\ color: #FFF;\ font-weight: bold;\ text-shadow: 0px 2px 0px rgba(0, 0, 0, 0.18);\ }\ #CombsInput {\ position: absolute;\ top: 0;\ right: 0;\ margin: 0;\ padding: 0;\ font-size: 60px;\ cursor: pointer;\ opacity: 0;\ filter: alpha(opacity=0);\ }\ #Start, #Process, #Continue, #Complete, #NeedPay, #Canceled {\ display: none;\ text-align: center;\ }\ #Start table {\ width: 100%;\ white-space: nowrap;\ margin: 18px 0 19px 0;\ }\ #Start table td {\ text-align: left;\ }\ #Start table td:first-child {\ padding-right: 5px;\ }\ #Process .data {\ text-align: left;\ margin: 18px 0 19px 0;\ }\ #Process .process {\ text-align: center;\ font-weight: bold;\ background: linear-gradient(to bottom, rgba(255, 241, 142, 0.65) 0%, rgba(255, 216, 116, 0.65) 100%);\ color: #C78F00;\ padding: 3px 0px;\ border-radius: 4px;\ }\ #Complete {\ text-align: center;\ margin-top: 10px;\ }\ #Complete img {\ margin-bottom: 11px;\ }\ #NeedPay {\ text-align: center;\ margin-top: -2px;\ line-height: 18px;\ }\ #Canceled {\ text-align: center;\ margin-top: 10px;\ }\ #Canceled img {\ margin-bottom: 11px;\ }\ #Continue .data {\ text-align: left;\ margin: 9px 0 9px 0;\ }\ '; //Запуск инициализации после загрузки страницы $(function() { Init(); }); })($, window, document);