Gositi / discord-fs

An attempt at using Discord as a filesystem, using FUSE.
GNU General Public License v3.0
1 stars 0 forks source link

discord-fs

Discord as a filesystem. Version 1.4.0.

This is a program/bot allowing you to use Discord as your free, unlimited cloud-storage. You assign a channel, mount the filesystem and let the bot do the rest.

Note that this is mainly an experimental program and not something made, or at least intended, to be used seriously.

Usage

First off, you'll need Linux to run this (with FUSE and a modern version of Python installed, should already be installed by default on most distros). The program is developed on Ubuntu 24.04 with Python 3.12 and the preinstalled libraries, but there are no guarantees the program will work on any system. If you have issues with it (on a Linux system) I will of course try and look into it anyways!

Before using the program, you will need to do some setup. I will assume you are techy enough to do this yourself, so this will be in broad terms what to do.

After this is done you should be good to go. The program is started by executing dc-fs.py with a modern Python version, and closing it should be done by unmounting the filesystem. You can optionally specify another mountpoint as a command-line argument, otherwise the default mountpoint in fat.json will be used.

FAT file

The File Allocation Table, or FAT for short, along with the configuration data is stored in the file fat.json. Replacing it will essentially replace the entire filesystem, corrupting or losing it will be irrecoverable in most cases. If the file is not present it will be created at runtime and you will be prompted to fill in some data.

The data (in default order) which you need to fill in is the following:

Limitations

I plan to fix many of these limitations in later versions of the program, but until then it is good if you know about them.

Bugs

Here is a list of all currently known bugs and issues, prioritized by functionality impact.

Critical

These bugs will be fixed in the next patch release.

Important

These bugs will either be fixed in the next patch release or minor release.

Other

These bugs will be fixed whenever there is time, but most likely in a future minor release.

Roadmap

Updated versions of this program will be released continuously (whenever I decide to work on it). Please read the release notes for each new release, they might contain important information.

Below is how I currently plan on going forward with the project.

Next patch release (patch branch)

Next minor release (dev branch)

Future minor releases

Ideas for future major releases

Legal

Copyright (C) 2024 Simon Bryntse

License (GPL 3.0) provided in file LICENSE

Partially derived from https://github.com/skorokithakis/python-fuse-sample/blob/master/passthrough.py

Copyright (C) 2016 Stavros Korokithakis

License (BSD-2-Clause) provided in file LICENSE-2

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

I am not responsible for any harm caused by using this program, including but not limited to loss of data or termination of your Discord account(s). Additionally, I am not affiliated with Discord and this program is not endorsed by Discord in any way.