Jump to content
View in the app

A better way to browse. Learn more.

IPBMafia.ru - поддержка Invision Community, релизы, темы, плагины и приложения

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Установка на свой сервер скрипта TelegramRSS - импорт RSS-ленты из публичного Телеграм канала/группы

rssfg-telegram-350.png.a3b15dd020328e7760210f680bb2c0d8.pngПроцесс последовательной установки расписан по пунктам тут: 

https://github.com/xtrime-ru/TelegramRSS#installation
https://github.com/xtrime-ru/TelegramApiServer?tab=readme-ov-file#installation

С автором скрипта можно связаться тут: 
Telegram: @xtrime
Email: alexander(at)i-c-a.su

 

Моя установка на Centos 7

1. Проверить, что порт 9504 на сервере доступен из сети. Это можно сделать по адресу https://www.reg.ru/web-tools/port-checker


2. Создать на сервере домен третьего уровня (или любой другой), который будет отвечать за создание RSS-ленты. Настроить для него SSL сертификат. Проверить, что домен доступен из сети в браузере (открывается тестовая страница).

Например: https://rss.vashdomen.ru

Если сервер работает через Nginx, внести следующую директиву в конфигурационный файл для этого домена (в двух местах, если Nginx работает для 80 и 443 портов):

/etc/nginx/vhosts/<пользователь>/rss.vashdomen.ru.conf

proxy_pass http://127.0.0.1:9504;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

Образец: https://github.com/xtrime-ru/TelegramRSS?tab=readme-ov-file#additional-steps


3. Зарегестрироваться  на https://my.telegram.org, получить App api_id, App api_hash. Процесс несложный, результат показан на скриншоте и доступен по адресу https://my.telegram.org/apps

pic1.thumb.jpg.bae591e378ffc5e1dfadf311be23fbe9.jpg


4. Авторизоваться в консоли сервера с правами root по ssh и в консоли ввести по очереди следующие команды для установки docker (докера) (будет установлен в ту папку, из которой выполнялась соманда curl):

curl -fsSL https://get.docker.com -o get-docker.sh
sh ./get-docker.sh


5. Установить Telegram Api Server (будет установлен в ту папку, из которой выполнялась соманда git) согласно мануалу: 

git clone https://github.com/xtrime-ru/TelegramApiServer.git TelegramApiServer
cd TelegramApiServer
cp .env.docker.example .env.docker
docker compose pull

Открыть файл для редактирования:

.../TelegramApiServer/.env.docker

Ввести данные API_ID и API_HASH, полученные в п.1:

pic3.thumb.jpg.a61f7b18b9c3a596fe41a97c995338b6.jpg

Сохранить файл и загрузить обратно на сервер.

Запустить docker, выполнив команду: 

docker compose run --rm api

Авторизовать сессию, введя по запросу свой номер телефона, к которому привязан Телеграм, в формате: +79998887766

Успешный запуск Tekegram Api Server будет подтвержден сообщением в консоли:

TelegramApiServer ready. 
Number of sessions: 1.

Выйти с помощью клавиш Ctrl+C

Запустить docker и добавить его в автозагрузку на случай рестарта сервера:

docker compose up -d
systemctl start docker.service
systemctl enable docker.service
systemctl enable containerd.service


6. Установить скрипт Telegram RSS

git clone https://github.com/xtrime-ru/TelegramRSS.git TelegramRSS
cd TelegramRSS
cp .env.docker.example .env.docker


Открыть на редактирование файл:
.../TelegramRSS/.env.docker

Отредактировать и загрузить обратно на сервер:

REAL_IP_HEADER=X-Forwarded-For

SELF_URL=https://rss.vashdomen.ru 
(см. п.2 выше)

FORBIDDEN_REFERERS_REGEX="^((?!vashdomen.ru).)*$"
(чтобы медиа из RSS-ленты открывались только на своём домене)

RPM=150
MEDIA_RPM=150
(количество запросов к летнте в минуту и количество запросов медиа в минуту)

Выполнить команду в консоли:

service docker restart


Примечение: у меня после установки оба пакета находятся в одной папке:

pic2.jpg.a6451023d87e20ba596ffe1e5dd8edb3.jpg


7. Проверить, что импорт доступен, выполнив тестовый запрос к произвольному Телеграм-каналу в консоли:

curl "https://rss.vashdomen.ru/rss/zv_art" 

или в браузере:

https://rss.vashdomen.ru/rss/zv_art


8. Отредактировать главную страницы сайта https://rss.vashdomen.ru  можно в следующем файле: 

.../TelegramRSS/public/index.html


9. Далее вы можете использовать данную ленту для импорта данных в форумы, виджеты, RSS-ридеры и т.п. Обратите внимание, что согласно пользовательскому соглашению, Телеграм встраивает свою рекламу в RSS-ленту, которую вы импортируете (см. ниже). Поэтому рекомендуется использовать импорт на свой сайт в премодерируемом режиме. Либо необходимо приобрести платную подписку для своего аккаунта в Телеграме. Либо вы можете модифицироватьт скрипт импорта и рассказать в комментариях, чем это быстро закончилось. Автор скрипта к рекламе не имеет никакого отношения.

Цитата

 

https://core.telegram.org/api/terms#3-advertising-amp-monetization

Пункт 3.3

3.3. If your app allows accessing content from Telegram channels (https://telegram.org/tour/channels), you must include support for official sponsored messages (https://core.telegram.org/api/sponsored-messages) in Telegram channels and may not interfere with this functionality.

https://core.telegram.org/api/sponsored-messages#sponsored-messages-in-third-party-apps

 


10. Как это все работает, показано на схеме ниже:

68747470733a2f2f6873746f2e6f72672f776562742f6a2d2f6f622f6b792f6a2d6f626b796531647636386e67737267693132716576757472612e706e67.thumb.png.cb217962260902df08d0fd9760785dea.png

User Feedback

Recommended Comments

Zero108

Актив

Если в целях тестирования вам необходимо временно отключить рекламу в RSS-ленте, то следует выполнить следующие манипуляции:

1. Открыть файлы и закомментировать:

.../TelegramRSS/app/Controller/BaseFeedController.php

    /*
        if ($isChannel) {
            $result['sponsored_messages'] = $this->client->getSponsoredMessages($channel);
        }
     */

.../TelegramRSS/app/TgClient.php

 /*
    public function getSponsoredMessages(string $peer): array
    {
        if ($this->isPremium === null) {
            $self = self::getContents($this->get('getSelf'));
            $this->isPremium = $self['premium'] ?? null;
        }
        $messages = [];
        if (!$this->isPremium) {
            $messages = self::getContents($this->get('getSponsoredMessages', $peer));
            $futures = [];
            foreach ($messages as $message) {
                if (!empty($message['from_id'])) {
                    $futures[] = async(function() use(&$message) {
                        $id = $this->getId($message['from_id']);
                        $message['peer'] = $this->getInfo($id);
                    });
                }
            }
            awaitAll($futures);
        }
        return $messages;
    }

    public function viewSponsoredMessage(string $peer, array $message)
    {
        return $this->get('viewSponsoredMessage', ['peer' => $peer, 'message' => $message]);
    }*/

2. Перезапустить сервис docker:

service docker restart

(Или аналогичная команда для вашей ОС).

PS Рекламы приходит очень много - порядка 30-40 сообщений из нескольких RSS-лент. Намного больше, чем сообщений в импортируемых каналах/группах.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Добавить комментарий...

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.