/PDF-Bot-2

A bot for PDF for doing Many Things....

Primary LanguagePythonMIT LicenseMIT

Telegram PDF Bot

Typing SVG

Telegram Bot MIT License Code style: black Crowdin Telegram Channel

Readme Card

A Telegram bot that can:

  • Compress, crop, decrypt, encrypt, merge, preview, rename, rotate, scale and split PDF files
  • Compare text differences between two PDF files
  • Create PDF files from text messages
  • Add watermark to PDF files
  • Multiple languages support
  • Add text layers to PDF files to make them searchable with text
  • Extract images and text from PDF files
  • Convert PDF files into images
  • Beautify handwritten notes images into PDF files
  • Convert webpages and images into PDF files

Repo Special 😅

What's Special in this repo & To-Do's ???

  • Make It Heroku Deployable
  • Remove GCP and use another free Cloud Storage.
    • Add Broadcasting Feature
  • Make it more stable and fast

Mandatory Vars....

DEV_TELE_ID - Your Telegram ID.
TELE_TOKEN - Telegram Bot Token get from @BotFather
GOOGLE_APPLICATION_CREDENTIALS - Your GCP Credentials get from Google Cloud 

Where To Get The Mandatory Vars..

DEV_TELE_ID - Get it from Thunder ⚡ Bot by sending /id

TELE_TOKEN - Get it from @BotFather

GOOGLE_APPLICATION_CREDENTIALS - Get it from Google Cloud ☁️

Optional Vars....

STRIPE_TOKEN - Stripe.com token for receiving Donations.
SLACK_TOKEN - slack.com api token to recieve Feedbacks on Slack.com if not entered you will recieve in your Telegram 

Where To Get The Optional Vars...

STRIPE_TOKEN - Get it from stripe.com

SLACK_TOKEN - Get it from slack.com

Installation

Getting GCP Ceredinials ⚠️ Important ⚠️

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes

Setup Database

The bot uses Datastore on Google Cloud Platform (GCP). Create a new project on GCP and enabble Datastore in the project. Install the gcloud CLI and run gcloud init to initialise it with your project.

Follow me if Love ❣️ the repo.

The Easy Way (Heroku)

Follow these steps for a successful deployment.....

  • Star ⭐ the repo 😅 and import it as Private.
  • Upload your GCP Credentials in the root directory with name GCP_FILE.json
  • Click on the Below Deploy Button ✅

Deploy

  • Enter the Ceredinials and Click in deploy.
  • After Deployment Completed Click on Manage App & Turn on the Dynos....
  • Booyah!! Your PDF Bot is successfully started.
  • Enjoy the Bot 🥳.

Deploy using GitHub Workflows.....

  • Star ⭐ the repo 😅 and import it as Private.
  • Upload your GCP Credentials in the root directory with name GCP_FILE.json
  • Go to Project->Settings->Secrets and Click New repository secret and Add All the following Vars as the Repository Secrets.

HEROKU_API_KEY: Your Heroku Account API

HEROKU_APP_NAME : Heroku App Name

HEROKU_EMAIL : Your Heroku Email 📨 Id

DEV_TELE_ID : Your Telegram ID.

TELE_TOKEN : Telegram Bot Token get from @BotFather

GOOGLE_APPLICATION_CREDENTIALS : Your GCP Credentials get from Google Cloud

  • Go To The Actions Tab and Choose Manually Deploy To Heroku and click on run workflow.

Follow me if Love ❣️ the repo.

Local Host

OS Requirements

Ubuntu

apt-get install poppler-utils libcairo2 libpango-1.0-0 libpangocairo-1.0-0 libgdk-pixbuf2.0-0 libffi-dev shared-mime-info

macOS

brew install libxml2 libxslt poppler cairo pango gdk-pixbuf libffi

Setup Virtual Environment

Create a virtual environment with the following command:

virtualenv venv
source venv/bin/activate

Bot Requirements

Run the following command to install the required packages:

pip install -r requirements.txt

Compile the translation files

Run the following command to compile all the translation files:

pybabel compile -D pdf_bot -d locale/

Setup Your Environment Variables

Copy the .env example file and edit the variables within the file:

cp .env.example .env

Running The Bot

You can then start the bot with the following command:

python bot.py

Follow me if Love ❣️ the repo.

Follow me if Love ❣️ the repo.

Found a Bug 🐛

Feel free to create a pull or create a issue now and describe your issue freely.

Repo Metrics

Credits