Аська и ее веб версия — старый, добрый бесплатный онлайн мессенджер с новыми возможностями

image Каждый раз, заходя в мессенджер, мы встречаем ботов в самых различных своих проявлениях. Одни рассказывают про погоду, другие разыгрывают бургеры, а третьи так и вообще кидают мемы под настроение. Наверняка у многих из вас проскакивала мысль: «А не сделать ли мне своего бота?». К сожалению, частенько такие мысли разбиваются о непонимание, как вообще сделать бота. Наверное, для этого нужно быть крутым айтишником и разбираться в миллионах технологий? На самом деле, нет. И сегодня мы попытаемся показать, что создание своего бота — процесс простой и понятный. Разберем полный цикл создания бота, от получения необходимых данных из мессенджера до написания кода и его запуска на сервере. Некоторое время назад в ICQ сильно обновилась платформа ботов. Она стала более дружелюбной, понятной и удобной. С помощью Python-библиотеки от разработчиков мы и будем создавать своего первого бота.

Первым делом

Для начала, нужно быть зарегистрированным в ICQ. Сделать это можно через приложение для мобильного телефона, компьютера или прямо из браузера в веб-версии. После регистрации можно приступать к заведению собственного бота в системе:

  1. Найти в ICQ.
  2. Написать ему команду /newbot.
  3. Отправить имя для своего нового бота (должно оканчиваться на bot).

После этого metabot пришлет данные вашего бота:

  • botId: уникальный номер бота;
  • nick: имя бота для поиска;
  • token: токен, который используется для сетевых запросов к серверу.

Всё, бот создан. Его можно найти в поиске, написать ему сообщение. Теперь нам нужно сделать так, чтобы бот был активным и что-то отвечал. На страннице https://icq.com/botapi/#/ есть полное описание методов API. Они используются для взаимодействия с сервером. Разберем некоторые из них подробнее. Базовый метод — /events/get. Он используется для получения новых событий бота. Например, если кто-то написал боту, то это событие будет отдаваться при запросе /events/get. Давайте напишем боту какое-нибудь сообщение и проверим появление соответствующего события. Сделать это можно, например, в браузере. Для этого нужно перейти по адресу https://api.icq.net/bot/v1/events/get?token=Ваш токен&pollTime=1&lastEventId=0. Параметр pollTime отвечает за длительность удержания запроса сервером. Например, если ввести значение 60, то сервер в течение 60 секунд будет ждать событий для бота, а если их не будет за это время, то сервер вернет пустой массив событий. lastEventId отвечает за последнее обработанное событие. Другими словами, события со значениями меньше, чем переданное, будут отсечены. После перехода по этому адресу на экране появится что-то подобное:

{  "events": [   {     "eventId": 41,      "payload": {          "chat": {            "chatId": "745294945",             "type": "private"          },          "from": {                 "firstName": "Andrey",                 "lastName": "Shvedov",                 "nick": "shvedoff",                 "userId": "745294945"          },          "msgId": "6831171945581511151",          "text": "а",          "timestamp": 1590506161      },      "type": "newMessage"   }  ],  "ok": true }

Таким же образом можно отправить сообщение от имени бота с помощью метода /messages/sendText. Изучать эти методы подробнее не нужно, у нас есть готовая Python-библиотека, которая позволяет, не вдаваясь в подробности, писать своего бота.

Пишем код?

Да, но для начала нам нужно подготовить для этого свой компьютер. Будем использовать Python третьей версии (скачайте версию для своей ОС здесь: https://www.python.org/downloads/ и менеджер пакетов pip здесь: https://pip.pypa.io/en/stable/installing/ ) Также, нужно установить библиотеку для работы с ботами:

$ pip3 install --upgrade mailru-im-bot 

Вот теперь можно приступать.

Пишем!

В качестве примера будем писать игрового бота, который будет проверять знания простейшей математики. Работать он будет так: человек пишет боту какое-нибудь сообщение, тот представляется и предлагает поиграть. После того, как пользователь соглашается, бот генерирует простой математический пример и 4 варианта на выбор. Когда пользователь нажимает кнопку с выбранным ответом, бот отвечает, правильно или неправильно. Итак, бот в первую очередь должен получать события от сервера. Для этого нам нужно, помимо импортирования всех библиотек, создать объект класса Bot и запустить получение обновлений:

import logging from bot.bot import Bot   logging.basicConfig(format='%(asctime)s %(levelname)s %(message)s',                     datefmt='%Y.%m.%d %I:%M:%S %p', level=logging.DEBUG)  TOKEN = "" #your token here  def main():     bot = Bot(token=TOKEN)     bot.start_polling()   if __name__ == '__main__':     main()

Здесь мы импортируем библиотеку для журналирования и запускаем ее. Также импортируем библиотеку для ICQ-ботов, задаем необходимый параметр token, создаем объект класса Bot и запускаем получение обновлений от сервера (bot.start_polling()). Сейчас наш бот может получать события, но не может их обрабатывать. Дополним бота, чтобы он мог отвечать на сообщения. Для этого добавим необходимые импорты:

import json from bot.handler import MessageHandler 

json нужен для форматирования части сообщения, отвечающей за кнопки. MessageHandler нужен для добавления в код обработчика новых сообщений. Далее, нам нужна функция, которая будет составлять сообщение для ответа:

def startup(bot, event):     default_markup = [         [{"text": "Начать!", "callbackData": "start"}]         ]      first_message_text = "Привет! Я - игровой бот. Начнем?"     bot.send_text(chat_id=event.from_chat,          text=first_message_text,          inline_keyboard_markup=json.dumps(default_markup))

Она принимает на вход созданного бота и событие нового сообщения. default_markup — матрица кнопок (объект «список», состоящий из массива строк кнопок. В нашем случае это единственная кнопка Начать!). first_message_text— строка, текст которой будет отправлен пользователю. Метод send_text принимает:

  • chat_id (поле из обрабатываемого события) — идентификатор чата, из которого было получено сообщение,
  • текст отправляемого сообщения,
  • и inline_keyboard_markup — наши кнопки.

Теперь осталось описать вызов этой функции при получении сообщения. Для этого в библиотеке есть специальная конструкция:

bot.dispatcher.add_handler(MessageHandler(callback=startup)) 

Она позволяет при получении нового сообщения автоматически вызывать функцию startup() с необходимыми параметрами. Этот обработчик нужно поместить в функцию main(). У нас получился вот такой код, который позволяет отправлять стартовое сообщение при получении ботом любого сообщения:

import logging import json from bot.bot import Bot from bot.handler import MessageHandler  logging.basicConfig(format='%(asctime)s %(levelname)s %(message)s',                     datefmt='%Y.%m.%d %I:%M:%S %p', level=logging.DEBUG)  TOKEN = «» #your token here  def startup(bot, event):     default_markup = [         [{«text»: «Начать!», «callbackData»: «start»}]         ]     first_message_text = «Привет! Я — игровой бот. Начнем?»     bot.send_text(chat_id=event.from_chat,         text=first_message_text,         inline_keyboard_markup=json.dumps(default_markup))  def main():     bot = Bot(token=TOKEN)     bot.dispatcher.add_handler(MessageHandler(callback=startup))     bot.start_polling()  if __name__ == '__main__':     main() 

Для пользователя это будет выглядеть так: image Рассмотрим подробнее кнопку, которую мы отправляли в сообщении:

[ [{«text»: «Начать!», «callbackData»: «start»}]]

Помимо текста, который написан на кнопке, в сообщении есть поле callbackData. При нажатии на кнопку сервер генерирует событие нажатия на кнопку. В нём он передает это поле как идентификатор нажатой кнопки. То есть, по этой строке, полученной от сервера, мы можем судить, какую именно кнопку нажал пользователь. таким образом, дальше нам нужно добавить в бота логику обработки нажатия на кнопку. Для этого нам снова потребуется импортировать необходимые методы:

from bot.handler import BotButtonCommandHandler from bot.filter import Filter 

Первая строка — обработчик события нажатия на кнопку, вторая — фильтр, помогающий понять, какая именно кнопка нажата. Также нам нужно описать логику ответа на нажатия кнопки:

def start(bot, event):     question = ''     operands = ["+", "-", "*"]     operations_count = randrange(3)+2     for i in range(operations_count):         question += str(randrange(9))         question += choice(operands)     question = question[:-1]     answer = eval(question)     buttons = [         [{'text': str(answer), 'callbackData': "right"},          {'text': str(answer+1), 'callbackData': "wrong"}],         [{'text': str(answer-1), 'callbackData': "wrong"},          {'text': str(answer+2), 'callbackData': "wrong"}]]     shuffle(buttons[0])     shuffle(buttons[1])     shuffle(buttons)     bot.answer_callback_query(         query_id=event.data['queryId'],         text='Новый вопрос')     bot.send_text(chat_id=event.data['message']['chat']['chatId'],         text=question,         inline_keyboard_markup=json.dumps(buttons)) 

По аналогии с сообщениями, функция принимает на вход такие же аргументы. Затем генерируется пример и массив кнопок с ответами. Один из ответов будет правильным. По этому признаку у ответов будут разные callbackData. В конце нужно обязательно вызвать метод answer_callback_query с параметрами:

  • query_id — уникальный номер события нажатия на кнопку,
  • и text — текст, который будет показан во всплывающей подсказке при нажатии на кнопку.

С помощью вызова этого метода мы покажем пользователю, что бот принял нажатие на кнопку. Иначе на кнопке какое-то время будет отображаться индикатор загрузки. Еще с помощью метода send_text нужно отправить само сообщение с вопросом и кнопками ответов. Давайте сразу добавим и функции для обработки правильных и неправильных ответов:

def right(bot, event):     bot.send_text(chat_id=event.data['message']['chat']['chatId'],         text='Правильно!')     start(bot, event)   def wrong(bot, event):     bot.send_text(chat_id=event.data['message']['chat']['chatId'],         text='Неправильно:(')     start(bot, event) 

Эти функции будут вызываться при нажатии на правильный и неправильный ответы. И после сообщения с правильным ответом пользователь получит новый вопрос. Всё, осталось только добавить обработчики нажатия на кнопки:

    bot.dispatcher.add_handler(BotButtonCommandHandler(         callback=start, filters=Filter.callback_data(«start»)))     bot.dispatcher.add_handler(BotButtonCommandHandler(         callback=wrong, filters=Filter.callback_data(«wrong»)))     bot.dispatcher.add_handler(BotButtonCommandHandler(         callback=right, filters=Filter.callback_data(«right»))) 

В каждом из этих трех обработчиков записан фильтр по callbackData (например, filters=Filter.callback_data(«start»)) и функция для вызова. На этом программирование бота завершено. Итоговый код выглядит так:

import logging import json from bot.bot import Bot from bot.handler import BotButtonCommandHandler from bot.handler import MessageHandler from bot.filter import Filter from random import randrange, choice, random, shuffle  logging.basicConfig(format='%(asctime)s %(levelname)s %(message)s',         datefmt='%Y.%m.%d %I:%M:%S %p', level=logging.DEBUG)  TOKEN = "" #your token here   def startup(bot, event):     default_markup = [         [{"text": "Начать!", "callbackData": "start"}]         ]      first_message_text = "Привет! Я - игровой бот. Начнем?"     bot.send_text(chat_id=event.from_chat,         text=first_message_text,         inline_keyboard_markup=json.dumps(default_markup))   def start(bot, event):     question = ''     operands = ["+", "-", "*"]     operations_count = randrange(3)+2     for i in range(operations_count):         question += str(randrange(9))         question += choice(operands)     question = question[:-1]     answer = eval(question)     buttons = [         [{'text': str(answer), 'callbackData': "right"},          {'text': str(answer+1), 'callbackData': "wrong"}],         [{'text': str(answer-1), 'callbackData': "wrong"},          {'text': str(answer+2), 'callbackData': "wrong"}]]     shuffle(buttons[0])     shuffle(buttons[1])     shuffle(buttons)     bot.answer_callback_query(         query_id=event.data['queryId'],         text='Новый вопрос')     bot.send_text(chat_id=event.data['message']['chat']['chatId'],         text=question,         inline_keyboard_markup=json.dumps(buttons))   def right(bot, event):     bot.send_text(chat_id=event.data['message']['chat']['chatId'],         text='Правильно!')     start(bot, event)   def wrong(bot, event):     bot.send_text(chat_id=event.data['message']['chat']['chatId'],         text='Неправильно:(')     start(bot, event)   def main():     bot = Bot(token=TOKEN)     bot.dispatcher.add_handler(MessageHandler(callback=startup))     bot.dispatcher.add_handler(BotButtonCommandHandler(         callback=start, filters=Filter.callback_data("start")))     bot.dispatcher.add_handler(BotButtonCommandHandler(         callback=wrong, filters=Filter.callback_data("wrong")))     bot.dispatcher.add_handler(BotButtonCommandHandler(         callback=right, filters=Filter.callback_data("right")))     bot.start_polling()   if __name__ == '__main__':     main()

Замечу, что в нем присутствуют импорты, необходимые для работы функции генерирования вопроса. Вместо этой и других функций можно написать какую-то свою логику 🙂

Где и как запускать?

Бота удобнее всего запускать на удаленном сервере. Есть множество сервисов, которые предлагают виртуальные серверы с доступами, достаточными для установки программ. Некоторые сервисы предоставляют бесплатный тестовый период. Раз уж мы Mail.ru, то и разбирать будем на примере Mail.ru Cloud Solutions. Там простой процесс регистрации, быстрый доступ к своему серверу, а также бесплатный тестовый период без привязки банковской карты и прочих трудностей.

  1. Регистрируем аккаунт на https://mcs.mail.ru/.
  2. Создаем инстанс виртуальной машины. Все настройки оставляем без изменений, их достаточно.
  3. Сервис предложит скачать ключ доступа. Скачиваем.
  4. Теперь заходим на свою виртуальную машину: ssh -i ./xxx.pem user@ip где ./xxx.pem — путь до скачанного ключа.
  5. После этого нам нужно установить необходимые программы и пакеты:
    $ sudo curl https://raw.githubusercontent.com/dvershinin/apt-get-centos/master/apt-get.sh -o /usr/local/bin/apt-get $ chmod 0755 /usr/local/bin/apt-get $ sudo apt-get install python3 $ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py $ python3 get-pip.py $ pip3 install --upgrade mailru-im-bot

    Здесь мы установили Python и все необходимые библиотеки для работы нашего бота.

  6. Осталось скопировать бота на сервер и запустить его. Из папки со скриптом выполняем: scp -i ./xxx.pem ./path/to_bot.py user@ip:~
    • ./xxx.pem — путь до ключа;
    • ./path/to_bot.py — путь до файла с ботом;
    • user@ip:~ — логин, адрес и путь, куда копировать бота.

    После этого файл с ботом окажется в домашней директории на удаленном сервере.

  7. Заходим обратно на сервер и запускаем: python3 ~/file_name.py, где file_name.py — имя нашего файла с ботом.

Что дальше?

В результате у нас получился самостоятельно работающий бот, лежащий на нашем личном сервере. Если вы хотите дальше осваивать создание ботов для аськи, то подробнее изучите документацию по API ботов и усложните внутреннюю логику работы вашего бота. А еще в ICQ есть чат, в котором можно задавать вопросы по ботам: https://icq.im/botapi_faq.

Полезные ссылки

https://icq.com/botapi/#/ — ICQ bot API.https://github.com/mail-ru-im/bot-python — Python-библиотека для ICQ-ботов.https://icq.im/metabot — получить токен и отредактировать бота.https://github.com/shvedoff/Icq_buttons — бот, выполняющий все возможные действия с кнопками.https://icq.im/AoLE1J5Ecm5DIjZh1gg — чат для вопросов по ботам. ИнтернетИнтернет-ПОТехникаМаркетЭльяс Касми —> 06 Апреля 2020 12:0306 Апр 2020 12:03|

Перерожденный ICQ

Холдинг Mail.ru Group запустил мессенджер ICQ New, основанный на оригинальном ICQ. Как сообщили CNews представители холдинга, мобильное приложение доступно для скачивания в магазинах приложений Google Play и Apple App Store.

Помимо этого, ICQ New вышел и для настольных ПК – на момент публикации материала с официального сайта мессенджера можно было скачать версии для Windows, Linux и macOS. Дополнительно доступна веб-версия сервиса, работающая напрямую из браузера, без необходимости установки программы на ПК.

Основные особенности мессенджера

Разработчики ICQ New делали упор на голосовую и видеосвязь, в том числе и групповую – мессенджер позволяет приглашать в такого рода беседы до 30 человек. В то же время количество участников классических текстовых чатов практически не имеет ограничений – по информации холдинга, в одной беседе могут принимать участие десятки тысяч человек. Еще одна новая функция мессенджера – возможность создания и ведения каналов.

ICQ New для настольных ПК внешне напоминает Telegram

ICQ New умеет в автоматическом режиме превращать аудио в текст (расшифровывать голосовые сообщения), используя распознавания речи за авторством MRG Tech Lab – технологического подразделения Mail.ru. Мессенджер также содержит новую систему быстрых ответов Smart Reply, за счет которой можно сократить время на написание ответа.

Используя нейросети, Smart Reply подсказывает пользователю готовые ответы на основе контекста беседы. В качестве ответов Smart Reply предлагает как короткие фразы, так и подходящие стикеры. В случае если пользователь решил написать сообщение самостоятельно, мессенджер предложит ему заменить слово, фразу или смайлик на стикер.

Чатботы, конфиденциальность и новый дизайн

Разработчики ICQ New создали для мессенджера новый визуальный стиль, позаимствовав у оригинального ICQ лишь фирменный логотип в виде цветка ромашки. Однако и он претерпел изменения, став более минималистичным и лишившись части лепестков – если в оригинальном логотипе их было восемь, то теперь осталось лишь пять. Внешне новый дизайн ICQ напоминает Telegram.

Мобильная версия ICQ New и обновленный логотип

В ICQ New появилась платформа для создания чат-ботов, позволяющая расширить список возможностей мессенджера. По данным представителей Mail.ru, в настоящее время в сервисе действуют боты WikipediaBot для поиска определений неизвестных слов «Википедии», и GiphyBot, который занимается подбором анимированных изображений в формате GIF.

Еще одно нововведение – это пересмотренный раздел настроек конфиденциальности. Месседжер позволяет пользователю запретить входящие голосовые и видео-вызовы и добавление его в группы и скрыть номер телефона даже от тех, кто состоит с ним в одном чате. Помимо этого, можно активировать функцию запроса PIN-кода при каждом запуске мессенджера, чтобы исключить попадание истории общения не в те руки.

История ICQ

Оригинальный мессенджер ICQ был создан в 1996 г. израильской компанией Mirabilis. В 1998 г. его новым владельцем стала американская корпорация AOL, купившая его за $287 млн. Специально для дальнейшего продвижения ICQ AOL основала отдельную одноименную компанию со штаб-квартирой в Израиле. За годы своего существования ICQ, изначально созданный под Windows, был портирован на множество различных платформ, включая Java2ME, использовавшуюся в классических сотовых телефонов.

Оригинальный логотип ICQ

В апреле 2010 г., как сообщал CNews, мессенджер ICQ стал российским: компания была приобретена за $187,5 млн фондом Digital Sky Technologies (DST), являвшимся акционером Mail.ru Group. Непосредственно к холдингу Mail.ru Group мессенджер перешел после реорганизации фонда DST.

Актуальную российскую аудиторию ICQ в Mail.ru не раскрывают, но, как пишет «Коммерсант» со ссылкой на данные исследовательской компании Mediascope, в январе 2020 г. она составляла 439 тыс. пользователей. Для сравнения, у заблокированного в России Telegram этот показатель равен 22 млн, а у Viber и WhatsApp – 34 и 68 млн соответственно.

Добавим, что Mail.ru владеет еще двумя мессенджерами – 2017 г. она запустила «ТамТам», а в 2019 г. начал работать корпоративный мессенджер MyTeam.

Короткая ссылка

В последнее время все более востребованным становится организация собственного чата. А для эффективной его работы очень важно подобрать качественный хостинг ICQ чатов. На сегодняшний день существует довольно много различных предложений в этой области. Тем более, что подобный хостинг предназначен не только для организации общения между собой, но и для различных интересных игр. Хостинг ICQ чатов, предлагаемый нами, имеет три варианта тарифных планов.

Первый план — Chat 1 предоставляет один чат при гарантированной RAM 0,256 Gb.

Второй — Chat 100 предлагает уже сто чатов, а RAM составляет 2,5 Gb.

Третий тарифный план — Chat 200 предлагает двести чатов, а RAM составляет 5 Gb.

Понятно, что стоимость этих тарифных планов также отличается между собой. Что же дает собственный чат? Помимо общения и игр, владелец чата может принимать участие в самых разнообразных викторинах. Помимо этого, имеется возможность зарабатывать собственные деньги. Для этого надо приобрести хостинг на более чем один чат, и продавать эти чаты другим желающим. Ведь от качественного хостинга во многом зависит нормальная работа чата, и, следовательно, возможность общения. Помимо этого, медленный хостинг сразу же отразится на работе чатов. Они будут тормозить, и, следовательно, удовольствие от общения в чате будет очень сомнительным.

Обращайтесь к нам и вы точно не пожалеете о приобретенном хостинге ни единой секунды!

Тарифы 100 и 200 в большей степени предназначены специально для тех кто сам хочет продавать чаты. Ниже представлен список тарифов.

 Тарифные планы: Chat 1 Chat 100 Chat 200
 CPU Core: 1,6 GHz 2,2 GHz 2,6 GHz
 RAM гарантированно: 0.256 GB 2.5 GB 5 GB
Количество чатов: 1 100 200
Резервное копирование:
Техническая поддержка 24/7:
 Версия Jimbot: jImBot Admin Edition 04.02.13
 Цены в месяц / год: 50 / 200 р. 100 / 600 р. 170 / 800 р.

Прежде чем заказать прочтите лицензионное сооглашение по данной по услуге.

ICQ — известная и достаточно популярная программа для общения. Более привычным названием является «Аська». В недавнем прошлом именно при помощи данного мессенджера миллионы пользователей общались между собой. Сейчас, с появлением социальных сетей популярность «Аськи» немного угасла, но многие, как и ранее отдают ей предпочтение. Ведь после создания новых версий Андроид эта программа предстала кардинально в другом виде. И сегодня мы хотим вас ознакомить с её основными особенностями.

Немного истории

ICQ — это сокращение от «I Seek You», что на русском звучит как «я ищу тебя». В настоящее время, этот мессенджер выполняет ту же миссию — организация общения пользователей при помощи соединения с использованием протокола OSKAR. При этом все возможности утилиты доступны на бесплатной основе.

Рождение данной утилиты датировано 1996 годом. За этот временной промежуток она менялась приличное количество раз. Создатели многократно проводили полную модернизацию, обновляя как интерфейс, так и доступные функции. Крайнее обновление «Аськи» предназначено как для Андроида четвертой, так и более ранних версий. Здесь пользователей ожидает широкий функционал, и утилита может стать отличной альтернативой тому же Вайберу или Ватцапу.

Функции ICQ и процедура регистрации

Войдя в программу вам понадобится заполнить простое поле регистрации:

  • — ник;
  • — е-mail;
  • — публичные данные;
  • — выбрать аватар.

При этом пройти регистрацию можно даже с мобильного устройства, без установки десктопного клиента и посещения сайта разработчика, как это было ранее. Сейчас достаточно пройти регистрацию с использованием мобильного номера, либо выполнить процедуру используя свой аккаунт в одной из предложенных социальных сетей!

После этого можно переходить к общению с другими пользователями, делиться с ним важной информацией, отправлять фото и т.д.

История сообщений

Это один из главных недостатков «Аськи». Все дело в том, что история переписок не хранится на серверах мессенджера, а сохраняется на используемом устройстве. При этом ситуация не меняется в зависимости от обновлений либо версий Андроида. Иными словами, общаясь с пользователями по телефону, а после переключившись на ПК, найти предыдущие сообщения вы увы не сможете.

Немного про интерфейс

  1. На главной страничке видим 4 раздела: контакты, пользователи в сети, история сообщений и поиск пользователей по нику либо ID.
  2. Новые сообщения появляются в виде красного кружка с цифрой (как на устройствах Apple).
  3. Опустившись ниже вы увидите клавишу всплывающего спойлера, предназначенного для выбора статуса владельца сети.
  4. В самом низу дисплея выведен список пользователей, занесенных в «избранное». Это люди, с которым вы общаетесь чаще всего.
  5. Предусмотрена и возможность подключения новостной ленты, собирающей информацию из социальных сетей. Для этого понадобится не только поставить на Андроид мессенджер ICQ, но и пользоваться социальными ресурсами.

По этим причинам мы и советуем вам оценить обновленное приложение для общения с другими пользователями. Для этого нужно лишь бесплатно скачать его с этой страничке, выполнить установку и пройти простую регистрацию, одним из предложенных методов, а после просто выйти на связь и найти новых друзей!

Знакомства, поиск друзей по аське (ICQ), самой популярной программе для общения. Выберите контакт и начинайте общаться.

Это только для брака, серьезных отношений. Для иных отношений используйте поиск по анкетам.

Контакты Добавить Поиск 

Илья, 29
Москва 778168369
Анастасия, 25
Москва 759030950
Александра, 31
Московская область 17031989
Евген, 31
Московская область 595530502
Дмитрий, 32
Великий Новгород 255595920
Андрей, 43
Муром 705772946
Евгений, 31
Москва 267190011
София Стеценко, 16
Украина 339916349
Дмитрий, 44
Краснодар 750141313
Дмитрий, 30
Екатеринбург 697476454
Сергей, 29
Украина 7011990
Павел, 37
Московская область 682064652
Александр, 35
Новосибирск 489618916
Саша, 31
Москва 660466147
Сергей, 24
Краснодар 629915212
Виктор, 47
Нижний Тагил 380360
Цебек, 41
Ставрополь 657852726
Галина Николаевна, 37
Череповец 900240
Евгения, 38
Курск 406464
Алла, 35
Владикавказ 22011980
Кит, 19
Москва 747390378
Руслан, 39
Анапа 9032007
Alexandr, 41
Омск 716731865
Андрей, 30
Москва 498924881
Jerk off, 30
США 264192898
Ян, 30
Новосибирск 427861875
Андрей, 28
Уфа 417442368
Сергей, 30
Саратов 724882262
Anastasia, 30
Екатеринбург 143543027
Борис, 24
Муром 610172203

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Citilink-kabinet.ru
Добавить комментарий