Skip to main content

No project description provided

Project description

logo

tgfs

Use telegram as file storage, with a command line tool and WebDAV server. Refer to the wiki page for more detail.

Test codecov npm version

Tested on Windows, Ubuntu, MacOS

Installation

Through PYPI

$ pip install tgfs

Through Git

$ yarn install && yarn build
$ alias tgfs="yarn start:prod"

Use it as a WebDAV server

$ tgfs -w

or

$ tgfs --webdav

Tested WebDAV Clients:

cmd usage

  • ls

    $ tgfs cmd ls /
    
  • mkdir

    $ tgfs cmd mkdir /documents
    
    $ tgfs cmd mkdir -p /documents/pictures
    
  • cp

    $ tgfs cmd cp ~/some-file /
    
  • rm

    $ tgfs cmd rm /some-file
    
    $ tgfs cmd rm -r /some-folder
    

Step by Step Guide to Set up config

For feature development purpose, any configuration is unstable at the current stage. You may need to reconfigure following any update.

Automatically:

A config file will be auto-generated when you run the program for the first time. Just follow the instructions to create a Telegram app and a private channel to store the files.

Manually:

Preparation

  1. Duplicate the example-config.yaml file and name it config.yaml

Set up account details (why do I need this?)

  1. Go to Here, login with your phone number and create a Telegram app.
  2. Copy the api_id and api_hash from the Telegram app page (step 2) to the config file (telegram -> account -> api_id / api_hash)

Set up the channel to store files

  1. Create a new Telegram private channel (New Channel in the menu on the left)
  2. There should be a message like "Channel created". Right click the message and copy the post link.
  3. The format of the link should be like https://t.me/c/1234567/1, where 1234567 is the channel id. Copy the channel id to the config file (telegram -> private_file_channel)

Set up a Telegram bot (why do I need this?)

  1. Go to BotFather, send /newbot, and follow the steps to create a bot.
  2. Paste the bot token given by BotFater to the config file (telegram -> bot -> token)
  3. Go to your file channel (created in the previous step), add your bot to subscriber, and promote it to admin, with permission to send/edit/delete messages.

Config fields explanation

  • telegram

    • account/bot:
      • session_file: The file path to store the session data. If you want to use multiple accounts, you can set different session files for each account.
    • login_timeout: Time to wait before login attempt aborts (in milliseconds).
  • tgfs

    • users: the users authenticated by tgfs, used by both webdav authentication and monitor
    • download
      • chunk_size_kb: The chunk size in KB when downloading files. Bigger chunk size means less requests.
  • webdav

    • host: The host of the WebDAV server listening on.
    • port: The port of the WebDAV server listening on.
    • path: The root path for the WebDAV server. For example, setting this value to /webdav makes the WebDAV link http://[host]:[port]/webdav.

FAQ

Q: Why do I need a bot when my account is also able to send messages?

Frequently sending messages may get your account banned, so using a bot is the best way to manage the risk. You can create another bot when it is banned.

Q: Why do I need an account API then?

The functionality of bot API is limited. For example, a bot can neither read history messages, nor send files exceeding 50MB. The account API is used when a bot cannot do the job.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tgfs-0.1.0.tar.gz (27.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tgfs-0.1.0-py3-none-any.whl (38.9 kB view details)

Uploaded Python 3

File details

Details for the file tgfs-0.1.0.tar.gz.

File metadata

  • Download URL: tgfs-0.1.0.tar.gz
  • Upload date:
  • Size: 27.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.11.4 Windows/10

File hashes

Hashes for tgfs-0.1.0.tar.gz
Algorithm Hash digest
SHA256 75a2b66de9d6522e609f13c249c18f1d74ce329d7609c5b46420333fab1a60c2
MD5 fb7acc8cd880f2f92c9097ed02b2b715
BLAKE2b-256 4490f66f880451e105bb17080890f6758980eb093bf2d5f8f121563cd2e63a4a

See more details on using hashes here.

File details

Details for the file tgfs-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: tgfs-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 38.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.11.4 Windows/10

File hashes

Hashes for tgfs-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f239c477aedcb3a72e6c7958a76ea2e3d4c28be63b9c13fec5ee9358ce02f852
MD5 bd458ade3d21940744da1bff5a495aed
BLAKE2b-256 77ae5f1dd0863e96264c5a65e8283c4bda4c9f13895c3f4a70de9549b99ebb47

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page