No JS ???



Bots Of Charles / MF Shell guide

Telegram Bots

This page is in development
Esta pΓ‘gina estΓ‘ en desarrollo

Menu

Introduction

This bot is not normal
In Telegram, most URL uploaders and leechers have this 'boomerang' effect: you give them something, wether it's a Telegram file or a URL, they do their 'thing' and then they upload it to the chat, this is considered 'normal'. The first thing you need to know is that MF Shell is not a 'normal' bot, because this 'boomerang effect' does not exist, and this is because there are two ways to get the files back. The first one is the typical upload to the chat and the second one is sharing through the web server, also known as File-to-Link

MF Shell's main features
β†’ Organize files in whatever way you want. Create folders, rename files (even in batch), delete files, extract ZIP, RAR, 7Z files, create 7Z files, and more
β†’ Download content anywhere you want. Not just the typical Youtube or MEGA files, there's direct support from Google Drive files and folders, to android apps and even comics and manga
β†’ Made for big jobs. MF Shell has a waitlist and queues system, queues can be cancelled or paused, you can modify a queue. The waitlist are a mean for rationing the computational resources used by the bot
β†’ FTL on steroids. The web interface of the bot is very helpful for downloading massive amounts of content previously downloaded into the bot

Video tutorial
The guide can get very dense to read, this is why we have a tutorial video, showing off the basics of the bot

Watch the video

The video is just a mere introduction to understand the general use cases of the bot and a general workflow
The video barely scratches the surface, specially the basics, so after you whatch the video, keep reading the rest of the guide, and then go to the commands reference to search for what you need to do

The File System

The theory
In the bot, each user has its own directory (folder) were it can work, and inside that one, the user can create more subdirectories to group files and other subdirectories
Files and directories are both called resources, file system resources

There is a location (path) that is the current working directory (CWD). A user can change the CWD to go deeper or shallower in the structure. Also, each CWD has a parent path, except for the root "/", the root has no parent
If all of this sounds confusing, think about a tree upside down where each node (directory) has a different name

Looking around
To view the contents of the CWD you can run the '/ls' command like this:

/ls

The following image is an example of an '/ls' output

LOADING IMAGE...

As you can see in this image, at the beggining of the message you can see the CWD path and for each row (each element) you can tell wether the element is a file or a folder just by looking at the icon before the name, but more importantly, the number before the icon is the index of the element. In MF Shell when selecting files or directories, you do not use the filename, instead, you use the index that the file has in the CWD
Knowing this, we can take a look at a specific location, for example, the 'stufffff' directory, occupying index no. 1:

/ls 1

LOADING IMAGE...

Moving around
The '/ls' command is only useful for observing other elements, but looking at other paths does not mean that you changed your CWD
There are 2 commands that change your CWD: '/back' and '/cd'
The '/cd' command can change the CWD to a subdirectory:

/cd 1

LOADING IMAGE...

And the '/back' command changes the CWD to the parent command:

/back

LOADING IMAGE...

Using a single index of a file or directory as an argument in a command is called a 'Simple select'
The next chapter is about the selection types in MF Shell

The selectors

In the previous chapter, we discussed about the basics of the File System in MF Shell
In this chapter we will talk about the selectors (also called selection tyes) and how we can select elements

There are 3 selection types:
β†’ Simple select
β†’ Range select
β†’ Free select

All selection types can be used for managing queues or in file management

The selectors / Simple select

Basics
Form: 'N'
Where 'N' is an integer
In the context of file management, when N is positive or zero you are selecting an element that exists in the CWD, same goes for queue management
When 'N' is negative, what happens is that the selected element is a parent of the CWD (this does not applies to queue management), the selected parent depends on how far the number is from zero: you are going up N levels above the CWD

Real example
In the previous chapter we saw some examples of simple selectors while using '/ls' and '/cd' to learn about the file system, but let's see another example with the '/mv' command
The '/mv' command is used for moving files and directories and for simple renaming, it all depends on how you run it. Let's try renaming a file first:

/ls

LOADING IMAGE...

/mv 3 new name.txt

LOADING IMAGE...

The file has been renamed, now we will see how to move it, but first, we have to run '/ls' again, because since the name of the file changed and due to the fact that there are other files there's a possibility that the index of our target file changed in the CWD

/ls

LOADING IMAGE...

As we can see in the picture, the file changed it's position from 3 to 4. Knwong this, we can now run '/mv':

/mv 4 1

LOADING IMAGE...

If we run '/ls' to look at that specific directory, we will see that the file is now inside

/ls 1

LOADING IMAGE...

Advice:
Check the '/adl' command in the commands reference

If 'N' is negative, it will select a parent of the CWD: it will go up N levels above the CWD
Our CWD right now is '/today/videos/nice/here/' so if we run:

/cd -2

LOADING IMAGE...

What happened here is that we changed our CWD from '/today/videos/nice/here/' to '/today/videos/', and if you noticed, we moved 2 levels above the CWD

The selectors / Range select

Basics
Forms: 'N-M' or 'N-Mr'
Where 'N' and 'M' are positive integers and/or zero
'N' is a starting index (or offset), 'M' is the quantity of elements to select from 'N' and the 'r' is used for selecting in reverse
'N' is safe to be zero, since it can be an existing first element in whatever situation, but when 'M' is zero, it selects all elements starting with 'N'

In the context of file management, the range select only affects the elements present in the CWD, it has nothing to do with selecting parents of the CWD

The range select is very important, there will be very obvious situations where you have to select large groups of (consecutive) elements, like, for example, uploading files using the '/upload' command, or moving large groups of files using '/mv' or delete files in range using '/rm'

Pseudo example
Let's suppose that we have 16 elements in front of us, it doesn't matter if it's in a queue or selecting files from a CWD:

LOADING IMAGE...

'3-5': It selects the elements 3,4,5,6 and 7 because it has index 3 as the offset and it selects 5 elements from there
'11-2': It selects the elements 11 and 12 because 11 is the starting point or offset and 2 elements are selected
Notice how the elements are normally selected. Let's see a few more examples:

LOADING IMAGE...

'4-0': It selects all elements starting from the element no. 4. The special rule of 'M' being zero and selecting everything is being applied here
'0-0': Using the special rule of 'M' being zero, combined with 'N' being zero, has a result of selecting all the elements
'9-4r': The starting point is index 9, and four elements are being selected, but they are being selected in reverse and this is because of the reverse modifier. The reverse modifier for range selections has very specific and rare use cases

Real example
Let's see a real example of range select using the '/mv' command. This is how the CWD looks like:

/ls

LOADING IMAGE...

What we will do is move the last 3 files to that directory called 'watch later':

/mv 5-3 0

LOADING IMAGE...

/ls 0

LOADING IMAGE...

Since the goal was to move the last 3 files, other ways of range selecting for this particular case would have been '5-0' or '7-3r'

The selectors / Free select

Basics
Form: 'A,B,C,D,...,Z'
All elements are positive integers and/or zero separated by comma with no space in between
The elements selected must be unique: an element is only selected once
The amount of elements selected cannot exceed the amount of elements available for selecion

When working with files and directories, the free select only works with the elements present in the CWD, and (just like the range select) it has nothing to do with selecting parents of the CWD

The main adavantage of the free select is that you can select multiple, non-consecutive elements in a specific order. This is important because there are commands where the order in which elements are selected has an influence on the results. There are also situations where the elements that need to be selected for a certain task are not positioned consecutively

Pseudo example
Let's suppose that we have 8 elements, in a CWD or a queue:

LOADING IMAGE...

'1,3,6,7': Selects the elements 1,3,6 and 7, non-consecutive elements in that order
'4,5,2': Selects elements 4,5 and 2 in that specific order

Real example
Let's now see a real example of a free select using the '/upload' command. This is how the CWD looks like:

/ls

LOADING IMAGE...

What we will do is upload the elements (files) 2 and 0 in that order, this is the result:

/upload 2,0

LOADING IMAGE...

As you can see in the image, the first file to be uploaded was no. 2 and then the file no. 1

File transfering

In addition to the file management tools provided, the bot also has commands for downloading content to the bot, a command for uploading content from the bot to your chat with the bot ('/upload'), and a command for sharing your content in the bot through web, similar to an FTL ('/share')

File transfering / The downloads

From Telegram to the bot
Of course, Telegram files can be downloaded to the bot, this is usually done with the /download command replying to a file in the chat
In case you did not know: not all files in Telegram have a filename, specially photos, so if a file does not exist, the bot will generate a name automatically. For more information, read the commands reference

The web downloaders
There are 5 website and platform downloaders in this bot: /wget, /gddl, /megadl, /freak, and /video
In the specific case of /wget, /video and /freak, they have a list of compatible websites that are directly supported
The /wget command is a general purposes downloader, so it can also try to download files from unsupported websites, the other web downloaders cannot do this, they strictly download only if the website is supported by them. For more information about each web downloader, read the commands reference

The supported websites and platforms
You should know that just because a website or a platform is directly supported does not mean that any form of a link that leads to the content is compatible
For example, the '/wget' command supports Mediafire file links directly, but that doesn't mean that you can put any kind of Mediafire link that leads to a file, you have to put a specific type of link, in this case it's the link of the page of the file, which is extremely easy to get because it's the first link you see of the file that you want to download. The web downloaders expect compatible and supported website links in a specific way (basically, page links only) because they work based on the link's form to get the file, so stop (if you are used to it) complicating things using IDM or your browser's devtools when a website is already supported directly by a web downloader

File transfering / Pulling files out

Where are the files?
At the beggining of the guide we explained that in MF Shell the 'boomerang effect' very common in URL uploaders and leechers does not exist. When you download a file from a website or from Telegram, the file will be downloaded into the bot, at the CWD. You have to decide how to pull the files out

Telegram uploads
Probably the slowest way to pull out the files from the bot, because if you intend to download them to your device, you have to upload the files first to your chat with the bot in Telegram, and then, download the files to your device from Telegram. However, if you intend to use the files in another bot (Like PRO Mail), it's a whole different story
Uploading from the CWD to your chat with the bot is handled by the /upload command. For more information, read about it at the commands reference

Web sharing
This is the fastest way of pulling the files ut of the bot, because it's a direct download from the bot's server: There's no need to go through Telegram
Activating or deactivating content sharing is done using the /share command. For more information, read about it at the commands reference

Limits and queues

...