https://github.com/Firemoon777/tgfs
telegram attachments in FUSE filesystem
https://github.com/Firemoon777/tgfs
filesystem fuse fuse-filesystem telegram
Last synced: about 1 year ago
JSON representation
telegram attachments in FUSE filesystem
- Host: GitHub
- URL: https://github.com/Firemoon777/tgfs
- Owner: Firemoon777
- License: gpl-3.0
- Created: 2016-10-30T14:44:17.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2018-01-22T06:38:04.000Z (over 8 years ago)
- Last Synced: 2024-11-10T10:39:03.284Z (over 1 year ago)
- Topics: filesystem, fuse, fuse-filesystem, telegram
- Language: C
- Size: 207 KB
- Stars: 186
- Watchers: 11
- Forks: 14
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## tgfs [](https://travis-ci.org/Firemoon777/tgfs)
User space filesystem for [Telegram](http://telegram.org) 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`
- [X] 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