Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Firemoon777/tgfs
telegram attachments in FUSE filesystem
https://github.com/Firemoon777/tgfs
filesystem fuse fuse-filesystem telegram
Last synced: 1 day 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 (about 8 years ago)
- Default Branch: master
- Last Pushed: 2018-01-22T06:38:04.000Z (almost 7 years ago)
- Last Synced: 2024-08-02T05:05:57.697Z (3 months ago)
- Topics: filesystem, fuse, fuse-filesystem, telegram
- Language: C
- Size: 207 KB
- Stars: 187
- Watchers: 11
- Forks: 14
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## tgfs [![Build Status](https://travis-ci.org/Firemoon777/tgfs.svg?branch=master)](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
```
### StartupYou 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` interpretationFilesystem root
```
$ ls -l mntdrwx------ 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