• Stars
    star
    187
  • Rank 206,464 (Top 5 %)
  • Language
    C
  • License
    GNU General Publi...
  • Created about 8 years ago
  • Updated almost 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

telegram attachments in FUSE filesystem

tgfs Build Status

User space filesystem for Telegram attachments

API, Protocol documentation

Documentation for Telegram API is available here: http://core.telegram.org/api

Documentation for MTproto protocol is available here: http://core.telegram.org/mtproto

Installation from source

Install libs

Debian:

sudo apt-get install fuse libfuse-dev libjansson-dev libreadline-dev libssl-dev libevent-dev

Arch Linux:

sudo pacman -S fuse2 jansson readline libevent

Fedora:

sudo dnf install fuse-devel libjansson-devel readline-devel readline-devel openssl-devel libevent-devel

Clone GitHub Repository

git clone --recursive https://github.com/Firemoon777/tgfs.git && cd tgfs

Build

./configure && make

Then, install

sudo make install

Installation from AUR (Archlinux)

yaourt -S tgfs

Startup

You must run telegram-tgfs before the first launch of tgfs. telegram-tgfs is telegram-cli patched to show list of attachments. After you have logged in you can use tgfs.

Usage

Create empty dir

mkdir mnt

Mount tgfs

tgfs mnt

ls -l interpretation

Filesystem root

$ ls -l mnt

drwx------ 0 firemoon firemoon 0 jan 12 21:12  Alex_Ivanov
drwx-----T 0 firemoon firemoon 0 jan 12 22:22  Firemoon777
dr-x------ 0 firemoon firemoon 0 jan  1  1970  Wizard's_jokes

  1. Permissions
    • rwx = user or chat (you can share anything)
    • r-x = public channel
    • sticky bit = self chat
  2. atime, ctime, mtime = last seen time
    • if time is equal to zero POSIX time, it means last active time is unknown
  3. display name

Directories with attachments

$ ls  Firemoon777/
Audio  Documents  Photo  Video  Voice

Directory with all voice messages

$ ls -lh  Firemoon777/Voice/
 
-r-------- 1 firemoon firemoon 2,9K aug 31  2015 '2015-08-31 08:30:08 - 1527876055.ogg'
-r-------- 1 firemoon firemoon 4,9K sep 28  2015 '2015-09-28 07:09:20 - 3870023017.ogg

Sending document to user

cp ~/test.zip test/Documents/Firemoon777/

Sending any media to user (file extention is important!)

cp ~/000.gif mnt/Firemoon777/ # Uploaded as gif
cp ~/001.jpg mnt/Firemoon777/ # Uploaded as photo
cp ~/002.zip mnt/Firemoon777/ # Uploaded as document

Removing media (required --enable-unlink mount option)

rm mnt/tgfs/Photo/remove_test.jpg

To do list:

  • Show profile picture
  • Setting profile photo with cp
  • Removing attachments with rm
  • FIFO-like files for chatting

Known issues

  • No dialog list reloading (if you start a new chat, you should unmount and mount tgfs again)
  • No progress bars (big file will be copied in few seconds, but appears in tg within a minute)
  • No multithreading
  • Files with spaces in name doesn't upload

Join

Project chat: https://t.me/joinchat/AAAAAApRIgKzmYvzXeh_0w