Telegram для Android получил официальную версию с пиратским контентом
Павла Дурова никогда не устраивали форматы традиционных магазинов приложений вроде App Store и Google Play. Он не мог смириться ни с комиссией, которую они взимают с разработчиков, ни с правилами публикации софта. Однако до недавнего времени Дуров просто высказывал своё недовольство, но не предпринимал никаких мер по противодействию сложившимся устоям. Напротив, он исправно подчинялся требованиям, которые предъявлялись к Telegram, и намеренно ограничивал его развитие. Но теперь всё будет иначе.
Telegram будет развивать несколько версий параллельно
Вчера на официальном сайте Telegram появилась альтернативная версия мессенджера для Android. Она будет распространяться только через сайт и никогда не появится в Google Play. Нет, это такое же приложение, как и традиционный Telegram. Просто версия с сайта будет доступна только в формате APK, будет иметь меньше ограничений, чем классическая, и будет обновляться чаще и быстрее.
Скачать APK Telegram на Android
Скачать APK-версию Telegram с сайта проще простого:
-
со своего смартфона;
- Нажмите на кнопку «Скачать» и дождитесь загрузи;

APK Telegram доступна только на официальном сайте
- Откройте Chrome и перейдите в «Скачанные файлы»;
- Установите APK-файл Telegram и авторизуйтесь.
Основное ограничение, которое было снято в новой версии Telegram, — это ограничение на размещение пиратского контента. То есть пользователи смогут загружать, скачивать и взаимодействовать с нелицинзионным контентом так, как они захотят. Ни их, ни сам контент, ни источники его распространения блокироваться не будут, а пользователи смогут скачивать то, что они хотят, абсолютно бесплатно.
В парадных версиях Telegram для App Store и Google Play таких вольностей нет. Там модераторы вынуждены блокировать источники распространения пиратского контента, чтобы не вылететь из магазинов. Особенно строго это правило должно соблюдаться в App Store, потому что Apple очень трепетно относится к авторским правам и уже неоднократно предъявляла Telegram претензии за потакание пиратству.
Этот бот недоступен в связи с нарушением

Слева — версия Telegram из Google Play, справа — версия с сайта
С точки зрения интерфейса Telegram из Google Play и с сайта ничем не отличаются. А вот с точки зрения доступного контента – что логично – отличаются. Если вы попробуете открыть канал Flibusta с пиратскими книгами из обычной версии, то получите уведомление о том, что он недоступен из-за нарушения авторских прав. А вот из APK-версии – всё будет доступно без ограничений.
Другое преимущество Telegram, который распространяется через сайт сервиса, — это более быстрые и регулярные обновления. Не совсем понятно, планируют разработчики развивать их параллельно друг другу и поддерживать не пересекающиеся функции или просто смогут отправлять обновления на устройства пользователей напрямую без модерации. Однако обещание есть обещание – обновлений будет больше, а приходить они будут чаще.
Скорее всего, APK-версия Telegram была нужна, чтобы убить сразу двух зайцев. Во-первых, это, конечно, снять ограничение на взаимодействие с пиратским контентом. А, во-вторых, подложить соломку на случай, если Telegram удалят из Google Play. Конечно, правила каталога Google менее строги, чем правила App Store, но, учитывая, что поисковый гигант не постеснялся удалить Fortnite, высоко вероятно, что то же самое может произойти и с Telegram.
Почему это должно вообще произойти? Да потому, что Павел Дуров планирует начать внедрять в Telegram платные функции. Помимо рекламы, там появятся дополнительные возможности и для администраторов групп, и для обычных пользователей вроде платных стикеров и прокси-серверов. А поскольку продавать их в обход App Store и Google Play запрещено правилами, Telegram пришлось бы платить комиссию, чего Дуров категорически не хочет.
Отправка состояния сервера через Telegram
Я давно собирался написать статью про Telegram, чтобы помочь его продвижению в массы. Не то, чтобы он в нём нуждался, но хотелось просто описать свой опыт использования и поделиться восхищением.
Но такого добра, думаю, уже навалом написали, потому это будет полезная статья о том, как использовать Telegram для получения информации с Linux-сервера, а именно:
- статус Apache;
- статус MySQL;
- использование процессора;
- объём свободной оперативной памяти;
- использование места на жёстком диске.
Для этого будет использоваться консольный клиент telegram-cli.
Опишу своё рабочее окружение. Есть удалённый Linux-сервер с Ubuntu 14.04.1 LTS, размещённый у хостера. Я подключаюсь к нему по SSH под учётной записью root (то есть, домашняя папка: /root ).
Подразумевается, что вы знакомы с Linux, потому я не буду писать о том, как скопировать файл, как разрешить скрипт на выполнение и прочем подобном.
Установка telegram-cli
Сначала надо запилить библиотеки:
Теперь, находясь в /root , получаем из репозитория ветку test — она самая обновляемая, потому я взял её, хотя понятно, чем это может грозить.
Переходим в /root/tg . Там выполняем:
Дальше нужно создать каталог с данными и файл конфига:
Вот, кстати, то, что я это делаю всё от root , внесло коррективы в читаемые мной руководства. В основном это воплотилось в использовании опции -U root .
Итак, первый запуск:
Он запустится, выведет что-то типа:
Тут надо подождать, пока не появится запрос номера телефона, ввести его, получить SMS и ввести код из него:
Теперь можно посмотреть список контактов на аккаунте:
Написать одному из контактов сообщение можно так:
Выход из приложения:
Понятно, что для автоматической отправки сообщений такое не подходит, а нам нужна именно она. Создаём скрипт /root/tg_msg_send.sh :
Теперь можно отправлять сообщения так:
Скрипт сбора информации
Запрос статуса nginx добавился позднее, так как через какое-то время я установил и его. Потому если у вас nginx отсутствует, то удалите его переменную из этого скрипта.
Так как у нас тут теперь текстовый файл status.txt , а не просто строка сообщения, надо написать новый скрипт /root/tg_text_send.sh :
Создание задачи в планировщике
Сначала пишем ещё скрипт /root/tg_status_send.sh :
И теперь можно создавать задание в crontab :
Подробно о редактировании таблицы заданий можно прочитать в хорошей статье Schedule Tasks on Linux Using Crontab.
Моя строка задания такая:
Это значит, что скрипт (отправка сообщения с информацией по серверу) будет запускаться каждые полчаса, исключая ночное время.
После сохранения файла с таблицей не помешает перезагрузить службу:
Для контроля выполнения заданий можно просматривать журнал:
Всё, настройка завершена.
В результате я получаю на всех своих устройствах (компьютер, телефон, планшет — везде, где у меня установлен Telegram) сообщения о состоянии дел на сервере:

Можно усложнить задачу: хочу, чтобы статус отправлялся реже — раз в два часа, но зато каждые 15 минут проверять статус MySQL, и если он слёг, то информировать об этом панической картинкой и соответствующим сообщением.
Ищем подходящую картинку, загружаем её на сервер под именем achtung.png и кладём по пути /root/achtung.png . Пишем скрипт отправки картинки /root/tg_img_send.sh :
И скрипт, который будет смотреть за MySQL и слать картинку, если он полёг — /root/tg_achtung.sh :
Теперь, если MySQL упадёт, в течение 15 минут я получу такие сообщения:

Позже, возможно, напишу, как общаться с сервером онлайн, а не только получать сообщения по расписанию.
А нет, не напишу, как общаться, потому что они запилили поддержку ботов, так что это уже не очень нужно. Вот зато может быть напишу про своего бота, если сделаю уже написал.
Установка telegrtam-cli в Ubuntu и Debian

Теперь можно перейти в каталог и приступить к сборке:

А вот перед make мы рекомендуем открыть файл ./tgl/mtproto-utils.c и закомментировать или удалить там строки 101 и 115:
assert (0); // As long as nobody ever uses this code, assume it is broken.
В противном случае велик риск получить ошибку вот такого вида:
tgl/mtproto-utils.c:101: BN2ull: Assertion 0′ failed. SIGNAL received
И теперь самое долгое, вызываем команду ниже и идём заваривать чай
Если всё удачно прошло(если нет, копируйте красную ошибку, вставляйте в гугл и читайте с чем это связано, в данном примере представлена Ubuntu и Debian), то запускаем:
tg/bin/telegram-cli -k tg/tg-server.pub -W
Вас попросят войти и ТАДАМ!

Поздравляем. Теперь вы можете использовать консольный клиент телеграмма, но перед этим ознакомьтесь с командами.
Команды
Общение
msg <peer> Text — отправить сообщение пиру
fwd <user> <msg-seqno> — переслать сообщение пользователю. Вы можете видеть номера сообщений, запуская клиент с опцией -N
chat_with_peer <peer> — начать переписку с этим пиром. /exit или /quit для завершения этого режима.
add_contact <phone-number> <first-name> <last-name> — попытаться добавить контакт в список контактов по номеру телефона
rename_contact <user> <first-name> <last-name> — попытаться переименовать контакт. Если у вас есть несколько устройств, то будет битва
mark_read <peer> — отметить прочитанными все сообщения от пира
delete_msg <msg-seqno> — удалить сообщение (но не полностью)
restore_msg <msg-seqno> — восстановить удалённое сообщение. Невозможно для серкретного чата. Возможно только некоторое время спустя (один час, я думаю) после удаления
Мультимедия
send_photo <peer> <photo-file-name> — отправить фото
send_video <peer> <video-file-name> — отправить видео
send_text <peer> <text-file-name> — отправить содержимое файла текстом
load_photo/load_video/load_video_thumb/load_audio/load_document/load_document_thumb <msg-seqno> — загрузить фото/видео/аудио/документ в директорию загрузок
view_photo/view_video/view_video_thumb/view_audio/view_document/view_document_thumb <msg-seqno> — загрузить фото/видео в папку загрузок и открыть стандартным просмоторщиком
fwd_media <msg-seqno> послать медиа файл в сообщении. Используйте это, чтобы скрыть информацию об авторе медиа файла (хотя всё ещё будет возможно найтиuser_id из самого медиа файла, но невозможно получить access_hash этого пользователя)
set_profile_photo <photo-file-name> — установить фотографию профиля. Обрезается до квадрата
Групповые чаты
chat_info <chat> — вывести информацию о чате
chat_add_user <chat> <user> — добавить пользователя в чат
chat_del_user <chat> <user> — удалить пользователя из чата
rename_chat <chat> <new-name>
create_group_chat <chat topic> <user1> <user2> <user3> … — создать групповой чат с пользователями, используйте chat_add_user чтобы добавить больше пользователей
chat_set_photo <chat> <photo-file-name> — поставить фото на чат. Обрезается до квадрата
Поиск
search <peer> pattern — поиск pattern в сообщениях с пиром
global_search pattern — поиск pattern во всех сообщениях
Секретный чат
create_secret_chat <user> — создать секретный чат с пользователем
visualize_key <secret_chat> — вывести визуализацию ключа шифрования. Вы должны сравнить его с ключем вашего собеседника
set_ttl <secret_chat> <ttl> — установить ttl в секретном чате. Не смотря на то, что клиент игнорирует это, вашему собеседнику это может быть полезно
accept_secret_chat <secret_chat> — вручную принять секретный чат (действенно только если клиент запущен с ключём -E)
Статистика и информация
user_info <user> — вывести информацию о пользователе
history <peer> [limit] — вывести историю (и пометить прочитаными). Лимит по умолчанию = 40
dialog_list — вывести информацию о диалогах
contact_list — вывести информацию о пользователях в вашем списке контактов
suggested_contacts — вывести информацию о пользователях с которыми у вас много общих друзей
show_license — показать лицензию(GPLv2)
get_self — получить инфорцию о своем пользователе
Карточки
export_card — вывести ваше ‘карточку’ которую каждый позже может импортировать себе в контакты
import_card <card> — получить пользователя по карточке. После этого вы сможете писать ему сообщения