Escreva um pensamento em uma mensagem
Eu sou uma daquelas pessoas que escrevem pensamentos em mensagens instantâneas em uma frase. Isso cria algum inconveniente ao ler esse fluxo de pensamento, pois mensagens sucessivas rapidamente ocupam espaço livre verticalmente. Isso é especialmente perceptível nas conversas em grupo - as notificações são desativadas e você precisa rolar o bate-papo para ver a discussão se alguém escrever dessa maneira.
Pare com isso!
Não vou me treinar - não acho que seja um problema para quem escreve, é tão conveniente para ele - treinar milhões de pessoas é mais difícil do que ensinar um programa. As mensagens devem ser coladas pelo próprio cliente, para que seja
conveniente para todos , pelo menos opcionalmente. Eu nunca esperava isso da equipe do Telegram - então resolvi o problema com a ajuda de um pequeno cliente - um daemon Python e decidi compartilhar o código-fonte com a comunidade.
Detalhes, fonte e descrição sob o corte.
Como isso funciona
Uma das principais vantagens do Telegram é a
sincronização muito
rápida entre diferentes clientes. A API aberta permite que você crie seus próprios clientes e muitos outros já foram escritos. Não faço sentido escrever um cliente completo - a sincronização permite criar pequenos serviços que expandem os recursos de todos os clientes em todas as plataformas ao mesmo tempo. Anteriormente, eu falei sobre como você pode
aumentar o limite de upload de arquivos pelo bot de 50 MB para 1,5 GB , criar canais e outros recursos não disponíveis na API do Bot.
Um daemon autorizado é executado no servidor 24 horas por dia, 7 dias por semana, sincronizado com outros clientes - recebe mensagens de entrada e saída enviadas por mim de outros clientes. Se a pausa entre duas mensagens de saída consecutivas for inferior a 30 s - a primeira mensagem é editada através da API - o texto da segunda mensagem será adicionado a ela e a segunda mensagem será excluída. Devido à sincronização rápida, isso acontece quase instantaneamente.
Um pequeno vídeo no trabalho
Também seria bom desconectar a notificação da mesma pessoa no bate-papo se o intervalo entre as mensagens for pequeno e as mensagens não tiverem sido lidas, mas isso não puder ser feito por meio da API - portanto, esperaremos isso dos desenvolvedores do Telegram.
UPD Pensei e percebi que é possível - basta silenciar o bate-papo por um tempo, se houver um fluxo de mensagens de uma pessoa, mas ele já deve ser usado pelo destinatário para usar este daemon
Tradutor inline
Ao mesmo tempo, o tradutor integrou - eu também acho que isso deve estar no próprio cliente. O uso de bots embutidos é inconveniente por vários motivos, mas o principal é:
desejo obter o texto traduzido na linha de entrada e não enviá-lo para o bate-papo sem editar.Como regra, você precisa se lembrar de algum tipo de palavra / frase, e não a frase inteira (geralmente traduzida de forma torta).
A única maneira de sincronizar o texto de entrada entre clientes sem enviar uma mensagem é através de rascunhos. Infelizmente, um rascunho é criado ao alternar de um bate-papo para uma lista de bate-papos, mas essa muleta ainda é mais conveniente e mais rápida do que usar o aplicativo tradutor do google, copiando uma inserção.
No final da linha, adicione o código do idiomaDeslize para a direita para ir para a lista de bate-papoVoltamos - recebemos a linha traduzidaO idioma da string a ser traduzida é determinado automaticamente; o Google é usado para tradução.
Idiomas suportadossupported_langs = {'Afrikaans': 'af', 'Irish': 'ga', 'Albanian': 'sq', 'Italian': 'it', 'Arabic': 'ar', 'Japanese': 'ja', 'Azerbaijani': 'az', 'Kannada': 'kn', 'Basque': 'eu', 'Korean': 'ko', 'Bengali': 'bn', 'Latin': 'la', 'Belarusian': 'be', 'Latvian': 'lv', 'Bulgarian': 'bg', 'Lithuanian': 'lt', 'Catalan': 'ca', 'Macedonian': 'mk', 'Chinese Simplified': 'zh-CN', 'Malay': 'ms', 'Chinese Traditional': 'zh-TW', 'Maltese': 'mt', 'Croatian': 'hr', 'Norwegian': 'no', 'Czech': 'cs', 'Persian': 'fa', 'Danish': 'da', 'Polish': 'pl', 'Dutch': 'nl', 'Portuguese': 'pt', 'English': 'en', 'Romanian': 'ro', 'Esperanto': 'eo', 'Russian': 'ru', 'Estonian': 'et', 'Serbian': 'sr', 'Filipino': 'tl', 'Slovak': 'sk', 'Finnish': 'fi', 'Slovenian': 'sl', 'French': 'fr', 'Spanish': 'es', 'Galician': 'gl', 'Swahili': 'sw', 'Georgian': 'ka', 'Swedish': 'sv', 'German': 'de', 'Tamil': 'ta', 'Greek': 'el', 'Telugu': 'te', 'Gujarati': 'gu', 'Thai': 'th', 'Haitian Creole': 'ht', 'Turkish': 'tr', 'Hebrew': 'iw', 'Ukrainian': 'uk', 'Hindi': 'hi', 'Urdu': 'ur', 'Hungarian': 'hu', 'Vietnamese': 'vi', 'Icelandic': 'is', 'Welsh': 'cy', 'Indonesian': 'id', 'Yiddish': 'yi'}
Fontes Python AsyncIO
GithubTambém foram adicionados executáveis compilados para linux e windows no repositório - você pode executá-lo no seu PC doméstico, mas para o trabalho 24/7, é melhor usar o VDS.
A versão mais recente da biblioteca
telethon é usada para acessar a API.
Se alguém quiser melhorar o projeto - para o Wellcome.
Você pode ter uma ideia, discutir e fazer perguntas em um comentário ou em telegramas no perfil de informações.