Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gabrielrf/rss2telegram
Automatically sends rss feed posts to Telegram
https://github.com/gabrielrf/rss2telegram
github-actions pytelegrambotapi telegram telegram-bot
Last synced: 22 days ago
JSON representation
Automatically sends rss feed posts to Telegram
- Host: GitHub
- URL: https://github.com/gabrielrf/rss2telegram
- Owner: GabrielRF
- License: unlicense
- Created: 2022-07-08T18:11:04.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-08-13T14:19:56.000Z (3 months ago)
- Last Synced: 2024-08-13T17:23:28.974Z (3 months ago)
- Topics: github-actions, pytelegrambotapi, telegram, telegram-bot
- Language: Python
- Homepage:
- Size: 34.2 KB
- Stars: 20
- Watchers: 3
- Forks: 35
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Rss2Telegram
Envio automático de feed RSS para pessoa, canal ou grupo no Telegram.
[Mais explicações e exemplos de uso aqui](https://blog.gabrf.com/posts/Rss2Telegram/).
## Participe:
Participe das conversas sobre o projeto na aba [Discussions](https://github.com/GabrielRF/Rss2Telegram/discussions).
Issues também são sempre bem vindas.
## Configuração:
Defina as variáveis na aba `Secrets` do repositório:
`BOT_TOKEN`: Token do bot que enviará as mensagens no canal ([@BotFather](https://t.me/BotFather));
Defina as variáveis na aba `Variables` do repositório:
`DESTINATION`: Destinos das mensagens separados por vírgulas (`@destino` ou ID). Opcionalmente, remova a variável e crie um arquivo de nome `DESTINATION.txt` com os valores;
`URL`: Endereços de feeds RSS, separados por "enter", ou seja, um por linha. Opcionalmente, remova a variável e crie um arquivo de nome `URL.txt` com os valores;
`PARAMETERS`: (opcional) Parâmetros que serão adicionados ao fim do link;
`MESSAGE_TEMPLATE`: (opcional) Texto da mensagem. Valor padrão: `{TITLE}` ([ver opções](#opções-de-variáveis));
`BUTTON_TEXT`: (opcional) Texto do botão com o link. Sugestão: `{SITE_NAME}`. Se esta variável não for criada não será enviado um botão. ([Ver opções](#opções-de-variáveis));
`EMOJIS`: (opcional) Emojis separados por vírgulas. Podem ser usados na mensagem ou no botão;
`TOPIC`: (opcional) ID do tópico em que a mensagem será enviada. Necessário para grupos com a opção de tópicos ativada. [Como obter um ID de um tópico](#id-de-tópico)
`TELEGRAPH_TOKEN`: (opcional) Chave para acesso ao Telegraph. [Como obter uma chave Telegraph](#chave-telegraph)
`HIDE_BUTTON`: (opcional) Caso definida, desabilita o botão no envio, permitindo assim a existência do `Leitura Rápida`.
### Opções de variáveis
`{SITE_NAME}`: Nome do site;
`{TITLE}`: Título do post;
`{SUMMARY}`: Sumário do post;
`{LINK}`: Link do post;
`{EMOJI}`: Emoji escolhido aleatoriamente da lista.
## Filtros
Por padrão, todos os elementos do feed RSS serão enviados. Caso queira filtrar o conteúdo, crie um arquivo chamado `RULES.txt` e adicione as regras desejadas ao arquivo. As regras serão executadas em ordem!
> O valor contido em termo funcionará independente de letras maiúsculas ou minúsculas.
`ACCEPT:ALL`: Todas as mensagens serão enviadas;
`DROP:ALL`: Todas as mensagens não serão enviadas;
`ACCEPT:termo`: A mensagem será enviada se `termo` estiver presente;
`DROP:termo`: A mensagem não será enviada se `termo` estiver presente.
### Exemplos de Filtros:
1. Todos as mensagens serão enviadas, menos as que tiverem o termo `política`:
```
ACCEPT:ALL
DROP:Política
```2. Nenhuma mensagem será enviada, com exceção das mensagens com os termos `futebol` e `vôlei`:
```
DROP:ALL
ACCEPT:futebol
ACCEPT:vôlei
```## Uso
Faça um *Fork*, defina as variáveis e habilite a ação em "*Enable workflow*". Pronto!
![Enable Workflow](https://user-images.githubusercontent.com/7331540/178158090-bf774cae-071b-4ac2-ab03-9c5c1132b79e.png)
A ação irá buscar as atualizações a cada hora conforme definido no arquivo [cron.yml](.github/workflows/cron.yml).
## ID de tópico
Caso o grupo tenha a opção de tópicos ativada, será necessário indicar em qual tópico a mensagem será enviada. Isto é feito usando-se a variável `TOPIC`. A maneira mais fácil de se obter um ID de um tópico é copiando o link de uma mensagem de um tópico. O ID será o penúltimo número do link.
Exemplo: O link para uma mensagem de um tópico seria `https://t.me/c/987654321/123/4567`. Neste caso, `123` seria o ID do tópico, o número que deveria ser colocado na variável.
## Chave Telegraph
> Atenção: Caso a variável TELEGRAPH_TOKEN esteja definida, o post não terá botão ou imagem, pois ambos não permitiriam a existência da opção "Visualização Rápida".
Para criar sua chave de acesso ao Telegraph e gerar a Visualização Rápida de qualquer site, acesse:
```
https://api.telegra.ph/createAccount?short_name=&author_name=
```* `SHORT_NAME`: Uma abreviação de seu nome;
* `AUTHOR_NAME`: Seu nome.
A resposta do site será algo como:
```
{
"ok": true,
"result": {
"short_name": "NOME",
"author_name": "NOME",
"author_url": "",
"access_token": "abcdefghijklmnopqrtuvxz123456789",
"auth_url": "https://edit.telegra.ph/auth/123456789012345678901234567890"
}
}
```O valor presente em `access_token` é o valor a ser usado na variável `TELEGRAPH_TOKEN`.