From fb0e76ca34de85a50ca306ae7f0f07fa93a4431a Mon Sep 17 00:00:00 2001 From: Michael Lee Date: Wed, 1 Nov 2023 22:30:20 +0800 Subject: [PATCH] Update README --- README.md | 82 ++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 51 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index 0934ae3..26f8715 100644 --- a/README.md +++ b/README.md @@ -11,8 +11,8 @@ - [About](#about) - [A Simple Demo](#a-simple-demo) - [How To Use](#how-to-use) - - [Using OCI Image](#using-oci-image) - - [Using Prebuilt Binaries](#using-prebuilt-binaries) + - [Use Docker Image](#use-docker-image) + - [Use Prebuilt Binaries](#use-prebuilt-binarieswork-in-progress) - [Filtering Rules](#filtering-rules) - [Filter Examples](#filter-examples) - [Q & A](#qa) @@ -30,19 +30,19 @@ tg-focus is a **T**ele**g**ram message filter that helps you **focus**. It supports several forms of messages, including -1. Text messages +1. Text messages(raw/reply/forward messages) 2. Media captions 3. Emoji messages 4. Channel updates By customizing *Focus Filters*, tg-focus can forward any specific -message from any chat to a dedicated chat *TG-FOCUS*, that way users -have full control of the messages they see. +message from any chat to a dedicated chat named *TG-FOCUS*, that way +users have full control of the messages they see. Telegram is famous for its openness. While users are free to make a speech in any public chat, they should be equally free to choose what they see. Telegram's official client apps already have excellent -support for the former feature, tg-focus and other counterparts are +support for the former need, tg-focus and other counterparts are trying to fill the blank in the latter one. Notable features: @@ -58,43 +58,43 @@ Notable features: [TOML](https://toml.io/en/) format. - **Ready to deploy**: Releases are made in three forms: source, - binary, and OCI image. Users can run it directly on a laptop, - or use [docker](https://www.docker.com)/[podman](https://podman.io/) to - deploy it on their servers, without interfering with each other. + prebuilt docker image and prebuilt binary(work-in-progress). With + docker image, users can run it effortlessly on a laptop(Linux, PC + or Mac) or their servers. # A Simple Demo Below is a 9-step demonstration of common use cases for tg-focus. - + - + - + [Back to start](#a-simple-demo) - + [Back to start](#a-simple-demo) - + [Back to start](#a-simple-demo) - + [Back to start](#a-simple-demo) - + [Back to start](#a-simple-demo) - + [Back to start](#a-simple-demo) - + [Back to start](#a-simple-demo) @@ -107,13 +107,19 @@ Before anything make sure you have: 2. Telegram API ID and corresponding API HASH, they can be obtained at https://my.telegram.org. -Suppose you're: +There are two different way to deploy and launch a tg-focus instance: -## Using OCI Image +1. Use docker image +2. Use prebuilt binaries(work-in-progress) -Make sure have docker or podman installed on your system already: +Suppose you are going to: -1. Pull the image and run: +## Use Docker Image + +Make sure have Docker or Podman installed on your machine: + +1. Pull the image and run it in the background, assuming the newly +created container's name is CONTAINER-NAME: ```sh docker pull docker.io/micl2e2/tg-focus:latest @@ -124,30 +130,33 @@ docker run -d docker.io/micl2e2/tg-focus API HASH, and your phone number: ```sh -docker exec -it tf-conf auth +docker exec -it CONTAINER-NAME tf-conf auth ``` 3. If logined successfullly, a new chat named *TG-FOCUS* will be created, the subsequent messages will be filtered and forwarded to this chat. -4. Change the *Focus Filter*s any time you like, to make adjustment on - the messages you'd like to receive on that chat. +4. Note that by default, tg-focus will forward **all** messages + you receive. You can change the *Focus Filter*s(the filter + configuration) any time you like, to custom the messages you'd like + to receive on that chat. ```sh -docker exec -it tf-conf filters +docker exec -it CONTAINER-NAME tf-conf filters ``` 5. Done -## Using Prebuilt Binaries +## Use Prebuilt Binaries(work-in-progress) 1. Download the binaries. -2. Login your Telegram account first, it needs API ID, API HASH, and your -phone number, the first two can be obtained in https://my.telegram.org: +2. Login your Telegram account first, it needs API ID, API HASH, and +your phone number, the first two can be obtained in +https://my.telegram.org: ```sh /path/to/tf-conf auth @@ -318,18 +327,29 @@ code, even on your local machine. # Development +Note that currently the development is documented only for Linux +platforms. + ## Dependencies -- CMake +- Bash +- Git - C++20 compatible compiler -- TDLib (meaning the dependencies of TDLib) +- CMake ## Building + ```sh # Get the source git clone --depth=1 https://github.com/micl2e2/tg-focus +# Make sure in the source root directory +cd tg-focus + +# Download the dependencies of tg-focus +bash dev/install-deps.bash + # Setup a release build cmake -DCMAKE_BUILD_TYPE=Release -B build