This is a Telegram Bot that tracks packages from the Brazilian Mail Service.

Overview

RastreioBot

Build Status Donate Donate Twitter Follow

Rastreiobot

About

This is a Telegram Bot that tracks packages from the Brazilian Mail Service. It runs on Python 3 and uses MongoDB.

Try it!

Setup

We use Poetry to manage our dependencies. Check out its Poetry guide to install it on your machine.

To install the required packages, use the command below. It will install the runtime and also the development dependencies (e.g. Pytest).

$ poetry install

Create a file bot.conf following bot.conf_sample.

TOKEN Bot token generated by BotFather

int_check Minimum interval between checks for the same package (3600 means 1 hour)

*_log Log files

patreon List of people that donate to the bot

Banned List of banned users

usuario User provived by Correios

senha Password provided by Correios

token Token provided by Correios

key Key provided by TrackingMore

url Sentry URL

MongoDB

RaspberryPi

https://github.com/GabrielRF/Docker-MongoDB-RPi

Mac

brew install mongodb-community
brew services start mongodb-community

SQLite

touch data_base.db

create db structure

CREATE TABLE assinantes (
        id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
        chatid TEXT,
        picpayid TEXT);

Commands available

$ poetry run rastreio --help
Usage: rastreio [OPTIONS] COMMAND [ARGS]...

Options:
  --help  Show this message and exit.

Commands:
  packages:clean                  Clean old and duplicated packages
  packages:update                 Update active packages
  packages:delete 
   
      Delete a package
  bot:run [--maintenance]         Set bot to maintenance mode

   

Running tests

The tests are running on pytest, so, in order to run them, just do

poetry run pytest

Contribute

Pull requests and issues are welcome!

Contact

Telegram

Site

Comments
  • Ordenar pacotes cadastrados

    Ordenar pacotes cadastrados

    Seria legal poder indicar uma ordenação dos pacotes, e ver mais detalhes na listagem do /pacotes:

    • ordenar por pacote mais antigo, e daí, exibir tbm o número de dias desde a entrada do pacote no sistema dos Correios (ex: - PNXXXXXXXXXNL Minha encomenda (10 dias))
    • ordem alfabética. Eu estou usando tags ([DX] bugigangas) pra identificar a origem dos meus pacotes, e seria legal poder vê-los ordenados :)
    enhancement Hacktoberfest 
    opened by igorsantos07 16
  • /Comando

    /Comando

    Atualmente o Bot funciona com 3 botões (Pacote - Info - Concluídos) Ambos possuem uma barra ( / ) antes dos nomes, visualmente isto fica estranho, seria melhor retirar ela e deixar os botões mais limpos.

    enhancement 
    opened by ThigSchuch 9
  • Ordenar pacotes cadastrados

    Ordenar pacotes cadastrados

    Criei uma nova key no banco "data_postagem" pra poder ordenar quando faz a busca pelos pacotes. Os novos pacotes cadastrados já vão ter essa nova key. Para os antigos eu fiz uma migration. O bot vai continuar funcionando mesmo sem rodar a migration, porém os pacotes antigos não serão ordenados pela data de postagem dos correios. Criei a opção de ordenar alfabeticamente com os comandos /PacotesAlfa e /ConcluidosAlfa. A opção de ordenar pela data de postagem está como padrão.

    opened by andersonberg 8
  • Add a track code that doesn't is available

    Add a track code that doesn't is available

    Sometimes we have the tracking code that has not been updated yet in the Brazilian Post system and the bot doesnt add it to the package list. It would be interesting if the bot give us an option to add the code anyway.

    enhancement 
    opened by Joj4k 8
  • Deixa o código de rastreamento mono espaçado

    Deixa o código de rastreamento mono espaçado

    • Deixar o código de rastreamento mono espaçado facilita a ação de copiar, pois o Telegram automaticamente identifica o toque longo e sugere a cópia do trecho mono espaçado.
    opened by felipecrs 7
  • Pacotes

    Pacotes "entregues ao destinatário" mas que ainda recebem atualizações

    Há pacotes que recebem o status "Entregue ao destinatário" e continuam recebendo atualizações no sistema dos Correios. Tal situação ocorre em casos, por exemplo, em que o pacote é devolvido ou o endereço estava incorreto.

    A rotina de verificação pula em casos de pacotes entregues. Não acho que seja o caso de simplesmente parar esse salto, uma vez que iria aumentar e muito o número de verificações, principalmente em pacotes concluídos.

    Os pacotes concluídos são mantidos no bot por alguns dias (30, se não me engano), logo, verificar também pacotes já marcados como entregues aumentaria muito a carga do bot.

    Sugestões?

    enhancement help wanted 
    opened by GabrielRF 5
  • Melhorias para a contagem de dias

    Melhorias para a contagem de dias

    • [x] quando a contagem está abaixo de 2 dias, a palavra aparece no plural (ex: 1 dias)
    • [ ] a contagem só é atualizada quando há novos updates sobre o pacote. Exemplo: Data: 22/08/2017 09:39 (1 dias); aqui deveria dizer 6 dias, na verdade.
    enhancement 
    opened by igorsantos07 5
  • Verificação em lote de pacotes dos Correios

    Verificação em lote de pacotes dos Correios

    É possível enviar uma sequência de pacotes de uma vez só, bastando enviar na mesma string os diversos códigos. https://github.com/GabrielRF/RastreioBot/blob/81109675cc6e47327c128e1705d8ea1d51b7a0f4/apis/apicorreios.py#L131 Exemplo: <objetos>AB123456789CDEF123456789GHIJ123456789KL</objetos> faria a verificação de três pacotes de uma vez só.

    A resposta de cada um dos pacotes seria vista em objeto[i] https://github.com/GabrielRF/RastreioBot/blob/81109675cc6e47327c128e1705d8ea1d51b7a0f4/apis/apicorreios.py#L26

    Isso reduziria a quantidade de requests para conferir uma mesma quantidade de pacotes. O tamanho do lote* poderia ser uma variável em bot.conf

    * aparentemente tamanho máximo do lote é 5000.

    opened by GabrielRF 4
  • Aviso de

    Aviso de "não me coloque como administrador" está equivocado

    Comportamento Atual

    Mesmo o bot não sendo administrador do grupo, fica mandando está mensagem toda vez que é respondido.

    Comportamento Esperado

    Está mensagem só aparecer quando o bot é realmente admin. Em um grupo, é bem comum e útil responder os bots para comentar algo a respeito.

    Passos para reproduzir

    1. Crie um grupo
    2. Adicione o bot
    3. Dê qualquer comando
    4. Responda à mensagem enviada
    5. Veja o aviso

    Extra: responda o aviso e você estrará num looping :)

    Demonstração

    https://user-images.githubusercontent.com/60361387/127665207-0b3c3f33-0e82-48be-9181-fa5e5313e1d4.mp4

    opened by luisfelipesdn12 4
  • Compilar regex que são usadas multiplas vezes

    Compilar regex que são usadas multiplas vezes

    A função check_type usa regex para identificar que tipo de código o usuário envia (correios vs aliexpress). Já que as expressões regulares são usada multiplas vezes, podemos compilá-las fora da função e reusá-las.

    https://github.com/GabrielRF/RastreioBot/blob/master/misc.py#L13-L25

    Hacktoberfest hacktoberfest-accepted 
    opened by rougeth 4
  • Configurar coverage no Travis

    Configurar coverage no Travis

    • [ ] Adicionar biblioteca coverage ao requirements.txt;
    • [ ] Configurar Travis para executar coverage após testes;
    • [ ] Ideia: falhar testes se cobertura diminuir, ou seja, fazer PR sem testes. Isso pode adicionar uma barreira para quem for contribuir, mas ao mesmo tempo, traz segurança em aceitar novas contribuições.
    Hacktoberfest 
    opened by rougeth 4
  • Suporte aos pacotes da Sequoia

    Suporte aos pacotes da Sequoia

    Pode olhar uma implementação exemplo em nodejs aqui: https://github.com/fagiani/track-sequoia

    A Sequoia entrega pra Amazon, Shopee, Magalu, Mercado Livre, dentre outras grandes.

    enhancement 
    opened by fagiani 1
  • Starting struct project

    Starting struct project

    Pensei em começar a estruturar melhor o projeto, criando classes para separar as responsabilidades de cada função e facilitar a manutenção do código.

    Ponto de start da discussão de modularização do código Issue #37

    opened by jrbublitz 0
  • Migrar bot stopped.py

    Migrar bot stopped.py

    Descrição

    O arquivo stopped.py tem um bot definido para quando RastreioBot estiver em manutenção. Devemos criar um novo comando no arquivo rastreio/main.py, que chamará o bot.

    Requisitos para a atividade ser considerada como concluída

    • [ ] Comando rastreio bot:run --maintenance, por enquanto, se o parâmetro --maintenance não for passado, não fazer nada.
    • [ ] Arquivo stopped.py removido.
    • [ ] README.md atualizado com novo comando
    opened by rougeth 0
Owner
Gabriel R F
Engineer driven by the will to make life more efficient. Seeks solutions to automate tasks and save time. Enjoys using Git to store and share knowledge.
Gabriel R F
null 1 Feb 18, 2022
StudyLion is a Discord bot that tracks members' study and work time while offering members to view their statistics and use productivity tools such as: To-do lists, Pomodoro timers, reminders, and much more.

StudyLion - Discord Productivity Bot StudyLion is a Discord bot that tracks members' study and work time while offering members the ability to view th

null 45 Dec 26, 2022
A Discord Bot that tracks and displays cryptocurrencies using the CoinMarketCap API

PyBo - A Crypto Inspired Discord Bot Pybo (paɪ boʊ) is a Discord bot that utilizes the discord.py API wrapper to run the bot. Pybo also integrates the

null 0 Nov 17, 2022
LEC_Ditto is a bot that tracks the follows and unfollows of Twitter accounts

✨ LEC_Ditto ✨ I'm Ditto, and I'm a bot ?? . Getting Started | Installation | Usage Getting Started LEC_Ditto is a bot that tracks the follows and unfo

null 2 Mar 30, 2022
MemeBot - A discord bot that tracks how good people's memes are

MemeBot A discord Meme "Karma" Tracking bot Dependancies Make sure you have pymongo installed and a mongodb cluster setup with two collections. pip in

Uday Sharma 3 Aug 10, 2022
A pypi packages finder telegram bot.

PyPi-Bot A pypi packages information finder telegram bot. Made with Python3 (C) @FayasNoushad Copyright permission under MIT License License -> https:

Fayas Noushad 17 Oct 21, 2022
Telegram bot to stream videos in telegram voicechat for both groups and channels. Supports live strams, YouTube videos and telegram media.

Telegram VCVideoPlayBot An Telegram Bot By @ZauteKm To Stream Videos in Telegram Voice Chat. NOTE: Make sure you have started a VoiceChat in your Grou

Zaute 20 Oct 21, 2022
Telegram bot to stream videos in telegram voicechat for both groups and channels. Supports live strams, YouTube videos and telegram media.

Telegram bot to stream videos in telegram voicechat for both groups and channels. Supports live strams, YouTube videos and telegram media.

SUBIN 449 Dec 27, 2022
Get Notified about vaccine availability in your location on email & sms ✉️! Vaccinator Octocat tracks & sends personalised vaccine info everday. Go get your shot ! 💉

Vaccinater Get Notified about vaccine availability in your location on email & sms ✉️ ! Vaccinator Octocat tracks & sends personalised vaccine info ev

Mayukh Pankaj 6 Apr 28, 2022
Simple web browser to visualize HiC tracks

HiCBrowser : A simple web browser to visualize Hi-C and other genomic tracks Fidel Ramirez, José Villaveces, Vivek Bhardwaj Installation You can insta

The deepTools ecosystem 14 Jun 21, 2022
Tracks twitter spaces and sends it to a discord webhook.

Tracks twitter spaces and sends it to a discord webhook. Uses the twitter api to find twitter spaces and then the m3u8 url for the space is found using selenium and will have it posted using a discord webhook. Optionally It can also download the twitter space after it ends.

Sam Phung 20 Dec 17, 2022
A Python script to create customised Spotify playlists using the JSON, Spotipy Library and Spotify Web API, based on seed tracks in your history.

A Python script to create customised Spotify playlists using the JSON, Spotipy Library and Spotify Web API, based on seed tracks in your history.

Youngseo Park 1 Feb 1, 2022
Tracks how much money a profile has in their bank and graphs it, as long as they enable the bank api

Tracks how much money a profile has in their bank and graphs it, as long as they enable the bank api. (you could really use this to track anything from the hypixel api)

null 1 Feb 8, 2022
This is telegram bot to generate string session for using user bots. You can see live bot in https://telegram.dog/string_session_Nsbot

TG String Session Generate Pyrogram String Session Using this bot. Demo Bot: Configs: API_HASH Get from Here. API_ID Get from Here. BOT_TOKEN Telegram

Anonymous 27 Oct 28, 2022
A telegram bot which can show you the status of telegram bot

BotStatus-Ts-Bot An open source telegram Bot Status bot For demo you can check here The status is updated in every 1 hour About Bot This is a Bot stat

Ts_Bots 8 Nov 17, 2022
Telegram PHub Bot using ARQ Api and Pyrogram. This Bot can Download and Send PHub HQ videos in Telegram using ARQ API.

Tg_PHub_Bot Telegram PHub Bot using ARQ Api and Pyrogram. This Bot can Download and Send PHub HQ videos in Telegram using ARQ API. OS Support All linu

TheProgrammerCat 13 Oct 21, 2022
veez music bot is a telegram music bot project, allow you to play music on voice chat group telegram.

?? Veez Music Bot Music bot for playing music on telegram voice chat group. Requirements ?? FFmpeg NodeJS nodesource.com Python 3.7+ PyTgCalls ?? Get

levina 143 Jun 19, 2022
A simple telegram voting bot based on the python-telegram-bot api.

A simple telegram voting bot based on the python-telegram-bot api. *To make it more easy to use, I might make a C++ code in the future so you don't ha

null 3 Sep 13, 2021