Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // <b>Заявка уже отправлена.</b> Повторно заявка отправлена не будет.
- // <div class="friends_req_sended"><div class="friends_req_header"><b>Заявка отправлена.</b></div><a class="mem_link" href="/ohmygodfuck" exuser="true">Михаил Добронравов</a><a id="pupohmygodfuck_659" class="vk_usermenu_btn" onclick="pupShow(event,'ohmygodfuck_659','ohmygodfuck',this); return false;" onmousedown="event.cancelBubble = true;">▼ </a> получил уведомление и подтвердит, что Вы его друг.</div>
- var bot = (function() {
- var hello = ['Здравствуй', 'Привет', 'Ку', 'Салют'];
- function shuffle(arr) {
- var i = 0, j, l = arr.length, temp;
- while (i < l) {
- j = Math.floor(Math.random() * l);
- temp = arr[i];
- arr[i++] = arr[j];
- arr[j] = temp;
- }
- }
- function parseMessage(input, extra) {
- var out = { media: '' },
- replacements = {
- hello: hello[ Math.floor( Math.random() * hello.length ) ],
- greeting: greeting()
- };
- for (var prop in extra) {
- replacements[prop] = extra[prop];
- }
- out.message = input.replace(/\{(.+?)\}/g, function(str, match) {
- match = match.split('|');
- return match[ Math.floor( Math.random() * match.length ) ];
- }).replace(/%(.+?)%/g, function(str, match) {
- return replacements[match] ? replacements[match] : str;
- }).replace(/<(\w+)>(.*)<\/\1>/i, function(str, tag, content) {
- if (tag == 'media') {
- out.media = content;
- return '';
- }
- return str;
- });
- return out;
- }
- function greeting() {
- var hour = new Date().getHours();
- return hour >= 22 || hour < 6 ? 'Доброй ночи' : ( hour >= 18 ? 'Добрый вечер' : (hour >= 12 ? 'Добрый день' : 'Доброе утро') );
- }
- function mail(message, user_id) {
- ajax.post('id' + user_id, {}, {
- onDone: function(a, b, c) {
- var reps = {},
- fullname = c.match(/"back":"([^"]+)"/)[1],
- hash = c.match(/hash: '(\w+)'/),
- temp;
- // хэша нет
- if (!hash) {
- return topMsg('Невозможно отправить личное сообщение @id' + user_id, 3, '#ffb4a3');
- }
- temp = fullname.split(' ');
- temp = parseMessage(message, {
- fullname: fullname,
- name: temp[0],
- surname: temp[1]
- });
- ajax.post('al_mail.php', {
- act: 'a_send',
- al: 1,
- chas: hash[1],
- from: 'box',
- media: temp.media,
- message: temp.message,
- title: '',
- to_ids: user_id
- }, {
- onDone: function(msg) {
- Notifier.showEvent({
- title: 'Отправка письма',
- text: msg,
- author_photo: c.match(/wdd_img\\" src=\\"([^"]+)\\"/)[1].replace(/\\\//g, '/'),
- author_link: '',
- add_photo: ''
- });
- }
- });
- }
- });
- }
- function mail2list(message, ids, interval_seconds) {
- interval_seconds = interval_seconds || 1;
- var i = 0, loop = setInterval(function() {
- if (!ids[i]) {
- topMsg('Рассылка писем завершена.', 3);
- return clearInterval(loop);
- }
- if ( !geByClass('captcha')[0] ) {
- mail(message, ids[i++]);
- }
- }, interval_seconds * 1000);
- }
- // получить список друзей
- // gid - id группы, если указан, то все друзья состоящие в группе обнуляются
- // getFriends(function(a) { console.log(a) }, { online: true, filters: { sex: 'ж', city: 'Москва', age_from: 16, age_to: 23 } });
- function getFriends(cb, opts) {
- opts = opts || {};
- ajax.post('al_friends.php', {
- act: 'load_friends_silent',
- al: 1,
- gid: opts['gid'] || 0,
- id: vk.id
- }, {
- onDone: function(a, b, c) {
- // a - друзья, b - учебные заведения, c - города
- var friends;
- eval('friends = (' + a + ').all');
- if ( opts['gid'] ) {
- friends = friends.filter(function(el) {
- return el;
- });
- }
- if ( opts['online'] ) {
- friends = friends.filter(function(el) {
- return parseInt( el[4] );
- });
- }
- if ( opts['filters'] ) {
- if (opts['filters']['city']) {
- for (var i = 0, l = c.cities.length; i < l; ++i) {
- if (c.cities[i][1] == opts['filters']['city']) {
- opts['filters']['city'] = c.cities[i][0];
- break;
- }
- }
- }
- ajax.post('friends', {
- act: 'filter_friends',
- ads_section: 'friends',
- age_from: opts['filters']['age_from'] || 0,
- age_to: opts['filters']['age_to'] || 0,
- al: 1,
- al_ad: 1,
- // код города
- city: opts['filters']['city'] || 0,
- // 1 - женский, 2 - мужской
- sex: opts['filters']['sex'] ? ( opts['filters']['sex'] == 'м' ? 2 : ( opts['filters']['sex'] == 'ж' ? 1 : 0 ) ) : 0,
- uid: vk.id
- }, {
- onDone: function(filtered) {
- friends = friends.filter(function(el) {
- return filtered.indexOf( el[0] ) > -1;
- });
- cb(friends);
- }
- });
- return;
- }
- cb(friends);
- }
- });
- }
- return {
- mail: mail,
- mail2list: mail2list,
- getFriends: getFriends,
- // добавление возможных друзей
- addSuggestions: function() {
- var offset = 0;
- function doStuff() {
- ajax.post('friends', {
- al: 1,
- act: 'get_section_friends',
- section: 'suggestions',
- offset: offset
- }, {
- onDone: function(data) {
- eval('data=(' + data + ').suggestions');
- if (data.length) {
- var i = 0, loop = setInterval(function() {
- if ( !geByClass('captcha')[0] ) {
- ajax.post('al_friends.php', {
- act: 'add',
- mid: data[i][0],
- hash: data[i][8][0],
- request: 1,
- select_list: 1
- }, {
- onDone: function(msg) {
- console.log(msg);
- if (msg == 'К сожалению, Вы не можете добавлять больше друзей за один день. Пожалуйста, попробуйте завтра.') {
- i = -1;
- }
- if (!data[i]) {
- clearInterval(loop);
- doStuff();
- }
- Notifier.showEvent({
- title: 'Добавление друзей',
- text: msg,
- author_photo: data[i++][1],
- author_link: '',
- add_photo: ''
- });
- if (msg == 'К сожалению, Вы не можете добавлять больше друзей за один день. Пожалуйста, попробуйте завтра.') {
- return clearInterval(loop);
- }
- },
- onFail: function(a, b, c) {
- alert('Fail:\n\n' + JSON.stringify(a) + '\n\n' + JSON.stringify(b) + '\n\n' + JSON.stringify(c));
- }
- });
- }
- }, 10000);
- }
- offset += 40;
- }
- });
- }
- doStuff();
- },
- // приглашение друзей в группу
- inviteTo: function(group_id, filters) {
- // список друзей получаем
- getFriends(function(arr) {
- if (arr.length) {
- var i = 0, loop = setInterval(function() {
- // проверяем есть ли капча
- if ( !geByClass('captcha')[0] ) {
- ajax.post('al_page.php', {
- act: 'a_invite',
- gid: group_id,
- mid: arr[i][0],
- hash: arr[i][11]
- }, {
- onDone: function(flg, msg) {
- if (msg == 'Вы можете пригласить только 40 человек в день.') {
- i = -1;
- }
- if (!arr[i]) {
- topMsg('Рассылка приглашений в группу завершена.', 3);
- return clearInterval(loop);
- }
- Notifier.showEvent({
- title: 'Приглашение в группу',
- text: msg,
- author_photo: arr[i++][1],
- author_link: '',
- add_photo: ''
- });
- }
- });
- }
- }, 1000);
- }
- }, {
- gid: group_id,
- filters: filters
- });
- },
- mail2friends: function(message, interval_seconds, opts) {
- getFriends(function(arr) {
- arr = arr.map(function(el) {
- return el[0];
- });
- shuffle(arr);
- mail2list(message, arr, interval_seconds);
- }, opts);
- }
- } // return
- })();
Advertisement
Add Comment
Please, Sign In to add comment