forked from dymik739/modular-bot-framework-for-telegram
		
	Added README.md
This commit is contained in:
		
							parent
							
								
									67271b9ad8
								
							
						
					
					
						commit
						3a5999945e
					
				
							
								
								
									
										48
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,48 @@
 | 
			
		||||
# Modular Bot Framework for Telegram (MBFT)
 | 
			
		||||
Modular bot framework for telegram (MBFT for short) allows you to quickly create stable, modular and highly customizable bots.
 | 
			
		||||
The concept comes from the original project created for Twitch chat that has shown its high stability (it has worked for over 10 months without a single crash).
 | 
			
		||||
Now it is being rewritten for Telegram to serve many different purposes.
 | 
			
		||||
 | 
			
		||||
## Installing and running the bot
 | 
			
		||||
 | 
			
		||||
The installation can be easily done by cloning this repository and providing the Telegram bot token using the config/token file.
 | 
			
		||||
In commands, it is done like this:
 | 
			
		||||
```bash
 | 
			
		||||
# cloning the repo
 | 
			
		||||
git clone http://109.86.70.81:3000/dymik739/modular-bot-framework-for-telegram
 | 
			
		||||
cd modular-bot-framework-for-telegram/
 | 
			
		||||
 | 
			
		||||
# creating "config" folder and providing a token
 | 
			
		||||
mkdir config/
 | 
			
		||||
printf "YOUR_AUTH_TOKEN" > config/token
 | 
			
		||||
 | 
			
		||||
# running the bot
 | 
			
		||||
python3 main.py
 | 
			
		||||
# or, using the screen utility:
 | 
			
		||||
screen -S mbft python3 main.py
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Writing modules (for modVM v1)
 | 
			
		||||
 | 
			
		||||
To start making your module, you need to create a folder in the modules/ directory and give it a unique name (just like with any other folder).
 | 
			
		||||
After that, you need to create two files: for code and for metadata.
 | 
			
		||||
 | 
			
		||||
Firstly, you want to make a file called "meta.json" - it will let the module loader know where you placed your code as well as some other useful metadata. Let's look at a sample meta.json file:
 | 
			
		||||
```
 | 
			
		||||
{
 | 
			
		||||
    "index_file": index.py, # locates your source code; index.py by default
 | 
			
		||||
    "start_on_boot": true, # tells mod loader to start your module automatically; false by default
 | 
			
		||||
    "version": 1, # this points to the specific version of modVM your code needs to run; 1 by default
 | 
			
		||||
    "alias": "testapp" # adds an alias to your module which can be later specified in control commands
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
After that you can start writing your code in the index.py file; every code is different, but there are some generic rules to understand and follow:
 | 
			
		||||
- your code receives message that can be accessed at self.MESSAGE
 | 
			
		||||
- message text can be found at self.MESSAGE.text
 | 
			
		||||
- to send a responce, you need to write a string with responce text to self.RESPONCE
 | 
			
		||||
- you can use modules already available to you (json, codecs); please, try to avoid importing unneccesary modules
 | 
			
		||||
- if you need to access files amd folders in your module dicertory, you can easily do so by using self.path + "filename"; self.path always contains your current folder name
 | 
			
		||||
- please, avoid using time.sleep() in any scenario; modules are syncronous, so usage of this method will stall the entire bot
 | 
			
		||||
 | 
			
		||||
If you want to submit your code, please check if it works by running the bot and testing the output; if you want to submit the code for someone to do more work on it, you should set "start_on_boot" to "false" in meta.json file (the same should be done for testing/unstable modules)
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user