Greasy Fork is available in English.

Tarif/Service

Инструмент для Beeline

// ==UserScript==
// @name         Tarif/Service
// @namespace    Tarif/Service
// @name:ru      Tarif/Service
// @description:ru     Инструмент для Beeline
// @description:en     Tool for Beeline
// @include     https://*.beeline.ru/*
// @version     0.2
// @grant       none
// @author      BEELINE
// @description Инструмент для Beeline
// ==/UserScript==

$('body').prepend(`
<style>
.zTool {
    margin: 10px;
}
.zTool * {
    margin: 5px;
}
.zTool pre {
    white-space: pre-wrap;
    word-wrap: break-word;
}
#socs th {
    border: 1px solid black;
    padding: 5px;
    font-weight: bold;
}
#socs td {
    border: 1px solid black;
    padding: 5px;
}
a {
    cursor: pointer;
}

.hide {
	display: none;
} 

#accordeon {
	width: 350px;
	border: 1px solid #fff;
	box-shadow: 0 0 10px grey;
	margin: 10px;
}
 
.acc-head {
	padding: 5px 10px;
	background: #c0c0c0;
	cursor: pointer;
}
 
.acc-body {
	padding: 10px;
	border-bottom: 1px solid #c0c0c0;
	margin-bottom: 5px;
	display: none;
}


</style>
`);

if (~$('body').text().indexOf('Войдите, чтобы получить доступ к вашим персональным данным.')) {
    $('body').prepend(`<div class="zTool"><b>Авторизируйтесь для пользования инструментом!</b></div>`);
} else {
    $('body').prepend(`
<div class="zTool">
    <hr>
    <section id="blockOff">
        
        <input hidden id="URLz" class="URIoff" size="100%" type="text">
        <input hidden id="URLzz" class="UURIoff" size="100%" type="text">
        
        <table id="dataoff">
            <tbody>
                <tr class="hide">
                    <td>Имя:</td>
                    <td>Значение:</td>
Параметры:                    
                </tr>
                <tr class="get hide">
                    <td>
                        <input type="text" value="X-Requested-With" size="30">
					</td>
                    <td>
                        <input type="text" value="XMLHttpRequest" size="50">
					</td>
                </tr>
                <tr class="get hide">
                    <td>
                        <input type="text" value="isMultiOffer" size="30">
					</td>
                    <td>
                        <input type="text" value="true" size="50" placeholder="Введите soc или нажмите на нужный ниже">
					</td>
                </tr>
                <tr class="get hide">
                    <td>
                        <input type="text" value="freeActivation" size="30">
					</td>
                    <td>
                        <input type="text" value="true" size="50" placeholder="Введите сок скидки">
					</td>
                </tr>
                <tr class="get hide">
                    <td>
                        <input type="text" value="rcRatePeriod" size="30">
					</td>
                    <td>
                        <input id="" type="text" value="1" size="50" placeholder="">
					</td>
                </tr>
                <tr class="get hide">
                    <td>
                        <input type="text" value="subgroupId" size="30">
					</td>
                    <td>
                        <input id="" type="text" value="821232" size="50" placeholder="">
					</td>
                </tr>
                <tr class="get hide">
                    <td>
                        <input type="text" value="campId" size="30">
					</td>
                    <td>
                        <input id="" type="text" value="701080" size="50" placeholder="">
					</td>
                </tr>
                <tr class="get">
                    <td class="hide">
                        <input type="text" value="soc" size="30">
					</td>
                    <td>
                        <input id="soc_input" type="text" value="" size="50" placeholder="Введите СОК тарифа/услуги">
					</td>
				</tr>
                <tr class="get">
                    <td class="hide">
                        <input type="text" value="discountSoc" size="30">
					</td>
                    <td>
                        <input id="socс_input" type="text" value="" size="50" placeholder="Введите сок скидки">
					</td>
                </tr>
                    <tr class="get hide">
                    <td class="hide">
                        <input type="text" value="basketSocs" size="30">
					</td>
                    <td>
                        <input id="" type="text" value="" size="50" placeholder="Введите сок услуги">
					</td>
                </tr>
           
            </tbody>
        </table>
        <hr>
			<div id="accordeon">
				<div class="acc-head">
					<b>Тарифы</b>
				</div>
			<div class="ac-body" style="display:none">
				<b>Все только для своих</b>
				<p><a class="soc">06VSERLTS</a> - СФО</p>
				<p><a class="soc">06VSERT2X</a> - ЮФО и СКФО(Вдтс 2х)</p>
				<p><a class="soc">06VSERT3X</a> - ЮФО и СКФО(Вдтс 3х)</p>
				<p><a class="soc">04VSERTLS</a> - ЮФО и СКФО</p>
				<p><a class="soc">04VSERT2X</a> - ЮФО и СКФО(Вдтс 2х)</p>
				<p><a class="soc">04VSERT3X</a> - ЮФО и СКФО(Вдтс 3х)</p>
				<p><a class="soc">CNTVSRLTS</a> - УрФО</p>
				<p><a class="soc">VIPVSRLTS</a> - ЦФО (Москва)</p>
				<p><a class="soc">SPBVSRLTS</a> - СЗФО (СПб)</p>
				<p><a class="soc">SPBVSRLTS</a> - СЗФО (СПб)</p>
				
				<p><a class="soc">CRVSRLTS</a> - ЦФО</p>
				<p><a class="soc">BMVSRLTS</a> - ЦФО (Владимир, Рязань)</p>
				<p><a class="soc">BRNVSRLTS</a> - ЦФО (Брянск)</p>
				<p><a class="soc">CNTVSRLTS</a> - ПФО</p>
				<p><a class="soc">NNGVSRLTS</a> - ПФО (Ниж.Новгород)</p>
				<p><a class="soc">SZVSRLTS</a> - СЗФО</p>
				<p>&nbsp </p>
				<p><b>Специальный/Социальный</b></p>
				<p><a class="soc">CMS1SOC19</a> - ЮФО и СКФО</p>
				<p><a class="soc">VSOC19</a> - Москва</p>
				<p>&nbsp </p>
				<p><b>Все длясемьи - переходной</b></p>
				<p><a class="soc">YUG_SEB</a> - СКФО</p>
				<p><a class="soc">VSE_SEB</a> - Москва И Моск. обл.</p>
				<p><a class="soc">74SEB</a> - Урал/Челябинск</p>
			</div>
				<div class="acc-head">
				<b>Безлимитный интернет</b>
			</div>
			<div class="ac-body" style="display:none">
				<p><a class="soc">UN_IT</a> - Можно на тарифы без АП (Би+ и Секунда)</p>
				<p><a class="soc">UN_ANL1</a> - </p>
				<p><a class="soc">UNL_PRES0</a> - </p>
				<p><a class="soc">UNL_CVM0</a> - 0 руб.</p>
				<p><a class="soc">UNL_CVM1</a> - 1.67р./сут.</p>
				<p><a class="soc">UNL_CVM3</a> - 3.3р./сут.</p>
				<p><a class="soc">UNLINT_20</a> - на 3 месяца (0р./сут.)</p>
				<p><a class="soc">UN_ANL1</a> - </p>
				<p><a class="soc">UNL_F2020</a> - </p>
				<p><a class="soc">UNL_PRES</a> - </p>
				<p><a class="soc">UNL_L_3D</a> - 4р в сутки</p>
				<p><a class="soc">UHW_0</a> - безпредельный интеренет</p>
				<p><a class="soc">UNLG19_2</a> - </p>
			</div>
			<div class="acc-head">
					<b>Раздача интернета</b>
				</div>
			<div class="ac-body" style="display:none">
						<p><a class="soc">TETR_3M</a> - 3 месяца</p>
			</div>
			<div class="acc-head">
					<b>Безлимитные звонки</b>
				</div>
			<div class="ac-body" style="display:none">
				<p><a class="soc">BUNRF</a> -Безлимитные на билайн РФ</p>
				<p><a class="soc">BEEUNLRF1</a> - </p>
				<p><a class="soc">CVMMGVSR</a> - 100 мин на междугородные</p>
				<p><a class="soc">BEEUNLRF2</a> - </p>
				<p><a class="soc">BEEUNLRF3</a> - на номера билайн</p>
				<p><a class="soc">BUNRF</a> - минуты</p>
				<p><a class="soc">TM_BIRTHD</a> - Бонус 100 мин в месяц</p>
				<p><a class="soc">04ZERO_TM</a> - 10 мин каждый день на билайн</p>
			</div>
			<div class="acc-head">
					<b>SMS</b>
				</div>
			<div class="ac-body" style="display:none">
				<p><a class="soc">UNLSMS20</a> - Безлимитные SMS (0р./сут.)</p>
				<p><a class="soc">SMS_0</a> - Пакет 300 SMS (0р./сут.)</p>
				<p><a class="soc">SMSUNLRF1</a> - SMS</p>
				<p><a class="soc">09_SPR300</a> - 300 SMS</p>
				<p><a class="soc">09_SP300</a> - 300 SMS</p>
				<p><a class="soc">09_SPR150</a> - 150 SMS</p>
				<p><a class="soc">09_SP150</a> - 150 SMS</p>
				<p><a class="soc">09_SPR75</a> - 75 SMS</p>
				<p><a class="soc">09_SP75</a> - 75 SMS</p>
			</div>
			<div class="acc-head">
					<b>Скидки подключаемые напрямую:</b>
				</div>
			<div class="ac-body" style="display:none">
					<p><a class="socс">GKITF</a> - 40%!</p>
					<p><a class="socс">VDISC40</a> - 40%</p>
					<p><a class="socс">ORSCM_T_F</a> - 40% на прямую</p>
					<p><a class="socс">VOIFFT</a> - 50% на год</p>
					<p><a class="socс">DIS50YAND</a> - 50% без смены тарифа</p>
					<p><a class="socс">TMDISC50</a> - 50%</p>
					<p><a class="socс">SALE_50</a> - 50% на месяц</p>
					<p><a class="socс">ORSCM_T_S</a> - 60% на прямую</p>
					<p><a class="socс">ORSCM_T_E</a> - 80% на пряму</p>
					<p><a class="socс">ORSCM_O_H</a> - 100% на месяц, на прямую</p>
					<p><a class="socс">NAKHAPB</a> - скидка поверх фикта (для тарифов с АП в день!!!)</p>
					<p><a class="socс">3PR_DIS1</a> - 100% на 3 месяца за 1р в сутки</p>
				</div>
				<div class="acc-head">
					<b>Скидки подключаемые через смену тарифа:</b>
				</div>
				<div class="ac-body" style="display:none">
					<p><a class="socс">MDISC50</a> - 50% бессрочно</p>
					<p><a class="socс">TMDISC10-90</a> - 10%-90% год</p>
					<p><a class="socс">TMDIS10-90</a> - 10%-90% бессрочно</p>
					<p><a class="socс">ORSCM_T_F</a> - 40% год </p>
					<p><a class="socс">ORSCM_T_S</a> - 60% год </p>
					<p><a class="socс">ORSCM_T_E</a> - 80% год</p>
					<p><a class="socс">ORSCM_O_H</a> - 100% на месяц</p>
					<p><a class="socс">6VPLCD3</a> - 100% на 6мес. с АП 3р/день.</p>
					<p><a class="socс">6VPLCD1</a> - 100% на 6мес. с АП 1р/день.</p>
				</div>
			</div>



<hr>


        
Подключить:
        <button onclick="send('off')">Тариф</button>
        <button onclick="send1('off')">Услугу</button><br>
        <button onclick="getSocs()">Проверить подключенные услуги</button><br>

<hr>
KIWI браузер скачан с <a href="https://t.me/BEELINE_LIFE">BEELINE LIFE LINE</a>


    </section>
    <hr>

    <span style="display: none" id="zLoading">Отправляем запрос...</span>
    <b id="zOtvetText" style="display:none">Ответ:</b>
    <pre id="zOtvet"></pre>

    <script>
        var socs = $('.soc');
        for (var i = 0; i < socs.length; i++) {
            socs[i].onclick = function() {
                $('#soc_input').val(this.innerHTML);
            }
        }
        var socs = $('.socс');
        for (var i = 0; i < socs.length; i++) {
            socs[i].onclick = function() {
                $('#socс_input').val(this.innerHTML);
            }
        }
        function send(type) {
            var data = [];
            $('#data' + type + ' tbody tr.get').each(function() {
                data[$(this).find('td:nth-child(1) input').val()] = $(this).find('td:nth-child(2) input').val();
            });
            data = Object.assign({}, data);
            $('#zLoading').show();
            $('#zOtvetText').hide();
            $('#zOtvet').hide();
            $.ajax({
                url: $('.URI' + type).val(),
                type: 'POST',
                contentType: "application/json;charset=UTF-8",
                data: JSON.stringify(data),
                complete: function(jqXHR, textStatus) {
                    switch (jqXHR.status) {
                        case 200:
                            $('#zLoading').hide();
                            $('#zOtvetText').show();
                            var data = JSON.parse(jqXHR.responseText),
                                resp;
                            if (data.isSucceeded) {
                                resp = '<font color="green">Тариф успешно подключен!</font>';
                            } else {
                                resp = '<font color="red">Тариф не подключен!</font>';
                            }

                            $('#zOtvet').show().html(resp);
                            break;
                        default:
                            $('#zLoading').hide();
                            $('#zOtvetText').show();
                            $('#zOtvet').show().html('Какая-то ошибка!');
                    }
                }
            });
        }
        function send1(type) {
            var data = [];
            $('#data' + type + ' tbody tr.get').each(function() {
                data[$(this).find('td:nth-child(1) input').val()] = $(this).find('td:nth-child(2) input').val();
            });
            data = Object.assign({}, data);
            $('#zLoading').show();
            $('#zOtvetText').hide();
            $('#zOtvet').hide();
            $.ajax({
                url: $('.UURI' + type).val(),
                type: 'POST',
                contentType: "application/json;charset=UTF-8",
                data: JSON.stringify(data),
                complete: function(jqXHR, textStatus) {
                    switch (jqXHR.status) {
                        case 200:
                            $('#zLoading').hide();
                            $('#zOtvetText').show();
                            var data = JSON.parse(jqXHR.responseText),
                                resp;
                            if (data.isSucceeded) {
                                resp = '<font color="green">Услуга успешно подключена!</font>';
                            } else {
                                resp = '<font color="red">Услуга не подключена!</font>';
                            }

                            $('#zOtvet').show().html(resp);
                            break;
                        default:
                            $('#zLoading').hide();
                            $('#zOtvetText').show();
                            $('#zOtvet').show().html('Какая-то ошибка!');
                    }
                }
            });
        }
        function getSocs() {
            $('#zLoading').show();
            $('#zOtvetText').hide();
            $('#zOtvet').hide();
            $.ajax({
                url: 'https://' + document.domain + '/gtm/getdatalayerauth',
                type: 'POST',
                contentType: "application/json;charset=UTF-8",
                complete: function(jqXHR, textStatus) {
                    switch (jqXHR.status) {
                        case 200:
                            $('#zLoading').hide();
                            $('#zOtvetText').show();
                            var list = [],
                                data = JSON.parse(jqXHR.responseText);
                            data = data.View.List[0].AvailableServices;
                            for (var i = 0; i < data.length; i++) {
                                list.push(data[i].AvailableServiceId + ' - ' + data[i].AvailableServiceName + '<br>');
                            }
                            $('#zOtvet').show().html(list);
                            break;
                        default:
                            $('#zLoading').hide();
                            $('#zOtvetText').show();
                            $('#zOtvet').show().html('Какая-то ошибка!');
                    }
                }
            });
        }
    </script>
	<script>
		$(document).ready(function() {
			$('#accordeon .acc-head').on('click', f_acc);
		});
		 
		function f_acc(){
			$('#accordeon .acc-body').not($(this).next()).slideUp(1000);
			$(this).next().slideToggle(500);
		}
	</script>    
</div>
`);
    document.getElementById('URLz').value = "https://"+document.domain+"/customers/products/mobile/tariffs/connecttariffbascket/"
    document.getElementById('URLzz').value = "https://"+document.domain+"/customers/products/mobile/services/connectmobileserviceforupsaleoffer/"
}