Coder Social home page Coder Social logo

tgt's Introduction

Warning

This project is still in development and is not ready for use.

logo

A simple TUI for Telegram

Crates.io GitHub CI Linux GitHub CI Windows GitHub CI macOS GitHub License Crates.io Downloads

About

tgt is a terminal user interface for Telegram, written in Rust.

Contributing

Contributions to this project are welcome! If you have any suggestions, improvements, or bug fixes, feel free to submit a pull request. For more information, do not hesitate to contact us (see the Contact section).

The CONFIGURE_TDLIB.md file contains the steps to configure the tdlib in your local environment, starting from the compilation to the configuration of the environment variables.

Road Map

You can find the road map of the project here (in the pinned issues).

Building

You can use just, make or cargo, as build tools. If you want to use cargo, please make sure to read the Justfile or the Makefile to understand the flags used for each command. Here are the available commands:

just COMMAND
make COMMAND

COMMAND:
  all    # fmt, clippy, test, build
  build  # Build the project
  run    # Run the project
  fmt    # Format the code
  clippy # Run clippy
  test   # Run the tests
  clean  # Clean the project
  help   # Print the help message

License

This repository is licensed under the Apache License 2.0. Please review the license file provided in the repository for more information regarding the terms and conditions of the license.

Contact

tgt's People

Contributors

andreal2000 avatar davidoc26 avatar dependabot[bot] avatar federicobruzzone avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

tgt's Issues

[Iteration Plan] Alpha Release

Plan Items

BNF for an item:

Item ::= "-" "[" Check? "]" "[" TestAnnotations FeatureAnnotations "]" Description

Check ::= "x"
Description ::= [\d\w\s]+
TestAnnotations ::= [โœ…โŒ]
FeatureAnnotations ::= [๐Ÿƒโœ‹๐Ÿ™…]

Test annotations:

Mark Description
โœ… Tests completed
โŒ No Tests

Feature annotations:

Mark Description
๐Ÿƒ Work in progress
โœ‹ Blocked task
๐Ÿ™… Not assigned

Road Map

CI/CD

  • CI/CD for Linux
  • CI/CD for MacOS Intel
  • CI/CD for MacOS arm64
  • CI/CD for Windows
  • CI/CD for release

Logger

Telegram API

  • [๐Ÿƒ] project configuration for APIs
  • [โŒ] Authentication
  • [โŒ] Receive messages
  • [โŒ] Send messages
  • [โŒ] Handle updates from server
  • [โŒ] Handle logout
  • [โŒ] Handle view message (function)
  • [โŒ๐Ÿ™…] Change user status to online and offline using options

TUI

  • [โŒ] Handle small window for current components
  • [โŒ] Create basic components
  • [โŒ] Handle basic events

Components

App

  • [โŒ] Handle login

Chat List

  • [โŒ] Add ability to choose a chat
  • [โŒ] Toggle chat list

Chat Window

  • [โŒ] Display messages with time of arrival
  • [โŒ] Display if messages has been readed
  • [โŒ] Edit link
  • [โŒ] Delete message
  • [โŒ] Copy message
  • [โŒ๐Ÿ™…] Reply link
  • [โŒ] Handle message edited link link2
  • [โŒ] Display message in multiple lines

Prompt Window

  • [โŒ๐Ÿ™…] Add ability to write text without overflow and multiline

UI Backend

  • [โŒ] Create basic backend
  • [โŒ] Handle events from Crossterm

Deserialise and parse configuration

  • [โœ…] Logger config
  • [โœ…] Keybindings config (core window)
  • [โœ…] Keybindings config for the components
  • [โœ…] App config
  • [โœ…] Theme config (miss documentation)
  • [โŒ๐Ÿƒ] Telegram config
  • [โŒ๐Ÿ™…] Add single config file for all settings

Use configuration

  • Logger config
  • Keybindings config (core window)
  • Keybindings config for the components
  • App config
  • Theme
  • [๐Ÿƒ] Telegram config
  • [โŒ๐Ÿ™…] Language configuration file

Release

  • Upload to crates.io
  • Add install script (cross-platform)
  • Delete old crates realeses
  • Request an api key form telegram

For any kind of additional information do not hesitate to contact us.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.