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