diff --git a/resources/js/config.js b/resources/js/config.js
index ed15897..3b4274b 100644
--- a/resources/js/config.js
+++ b/resources/js/config.js
@@ -1 +1 @@
-var __DOCS_CONFIG__ = {"id":"4Y/Jf4Jp1Ms4zLghFGNl5169uNp6OaOk3rP","key":"5pHoXLsZ4ro4PzKmUOOvNV5Vy8BxDHqILNYJlEDLG0c.jswXeuTMRqds8ZH2rop1JyTgmI3FWenK/F16wu1t92feQlO9qbe7UI61iH8IPY1pe1SdNulkpTM9fMZAIFNOiQ.111","base":"/","host":"","version":"1.0.0","useRelativePaths":true,"documentName":"index.html","appendDocumentName":false,"trailingSlash":true,"preloadSearch":false,"cacheBustingToken":"3.5.0.758290362614","cacheBustingStrategy":"query","sidebarFilterPlaceholder":"Filter","toolbarFilterPlaceholder":"Filter","showSidebarFilter":true,"filterNotFoundMsg":"No member names found containing the query \"{query}\"","maxHistoryItems":15,"homeIcon":"
","access":[{"value":"public","label":"Public"},{"value":"protected","label":"Protected"}],"toolbarLinks":[{"id":"fields","label":"Fields"},{"id":"properties","label":"Properties"},{"id":"methods","label":"Methods"},{"id":"events","label":"Events"}],"sidebar":[{"n":"/","l":"QBittorrentBot"},{"n":"getting_started","l":"Getting Started","i":[{"n":"configuration_file","l":"Configuration File"},{"n":"migrating_to_v2","l":"Migrating to V2"}]},{"n":"advanced","l":"Advanced","i":[{"n":"add_new_client_manager","l":"Add new client manager"},{"n":"add_entries_configuration","l":"Add new entries in configuration file"},{"n":"manager_user_roles","l":"Managing users roles"}]},{"n":"faq","l":"FAQ"},{"n":"screenshots","l":"Screenshots"}],"search":{"mode":0,"minChars":2,"maxResults":20,"placeholder":"Search","hotkeys":["k"],"noResultsFoundMsg":"Sorry, no results found.","recognizeLanguages":true,"languages":[0],"preload":false},"resources":{"History_Title_Label":"History","History_ClearLink_Label":"Clear","History_NoHistory_Label":"No history items","API_AccessFilter_Label":"Access","API_ParameterSection_Label":"PARAMETERS","API_SignatureSection_Label":"SIGNATURE","API_CopyHint_Label":"Copy","API_CopyNameHint_Label":"Copy name","API_CopyLinkHint_Label":"Copy link","API_CopiedAckHint_Label":"Copied!","API_MoreOverloads_Label":"more","API_MoreDropdownItems_Label":"More","API_OptionalParameter_Label":"optional","API_DefaultParameterValue_Label":"Default value","API_InheritedFilter_Label":"Inherited","Search_Input_Placeholder":"Search","Toc_Contents_Label":"Contents","Toc_RelatedClasses_Label":"Related Classes","History_JustNowTime_Label":"just now","History_AgoTime_Label":"ago","History_YearTime_Label":"y","History_MonthTime_Label":"mo","History_DayTime_Label":"d","History_HourTime_Label":"h","History_MinuteTime_Label":"m","History_SecondTime_Label":"s"}};
+var __DOCS_CONFIG__ = {"id":"XzxntU1kXfVS5jrA215UO+intRNOz/fPisz","key":"d/OKC3IPy+ZQTd93IEkzJf2a+g5Mw0uOMcy720qiLHQ.I9bvmyvYtHAnxcUsVtSQXKqnXW31i9SLXVr0KTZDuIitn/No467xwKqWTggdqbgCicsPQe75cgOKfwij0ezfQQ.66","base":"/","host":"","version":"1.0.0","useRelativePaths":true,"documentName":"index.html","appendDocumentName":false,"trailingSlash":true,"preloadSearch":false,"cacheBustingToken":"3.5.0.759074512186","cacheBustingStrategy":"query","sidebarFilterPlaceholder":"Filter","toolbarFilterPlaceholder":"Filter","showSidebarFilter":true,"filterNotFoundMsg":"No member names found containing the query \"{query}\"","maxHistoryItems":15,"homeIcon":"
","access":[{"value":"public","label":"Public"},{"value":"protected","label":"Protected"}],"toolbarLinks":[{"id":"fields","label":"Fields"},{"id":"properties","label":"Properties"},{"id":"methods","label":"Methods"},{"id":"events","label":"Events"}],"sidebar":[{"n":"/","l":"QBittorrentBot"},{"n":"getting_started","l":"Getting Started","i":[{"n":"configuration_file","l":"Configuration File"},{"n":"installation","l":"Installation-Updating"},{"n":"migrating_to_v2","l":"Migrating to V2"}]},{"n":"advanced","l":"Advanced","i":[{"n":"add_new_client_manager","l":"Add new client manager"},{"n":"telegram_proxy","l":"Configure proxy for Telegram"},{"n":"add_entries_configuration","l":"Add new entries in configuration file"},{"n":"manager_user_roles","l":"Managing users roles"}]},{"n":"contributing","l":"Contributing"},{"n":"faq","l":"FAQ"},{"n":"screenshots","l":"Screenshots"}],"search":{"mode":0,"minChars":2,"maxResults":20,"placeholder":"Search","hotkeys":["k"],"noResultsFoundMsg":"Sorry, no results found.","recognizeLanguages":true,"languages":[0],"preload":false},"resources":{"History_Title_Label":"History","History_ClearLink_Label":"Clear","History_NoHistory_Label":"No history items","API_AccessFilter_Label":"Access","API_ParameterSection_Label":"PARAMETERS","API_SignatureSection_Label":"SIGNATURE","API_CopyHint_Label":"Copy","API_CopyNameHint_Label":"Copy name","API_CopyLinkHint_Label":"Copy link","API_CopiedAckHint_Label":"Copied!","API_MoreOverloads_Label":"more","API_MoreDropdownItems_Label":"More","API_OptionalParameter_Label":"optional","API_DefaultParameterValue_Label":"Default value","API_InheritedFilter_Label":"Inherited","Search_Input_Placeholder":"Search","Toc_Contents_Label":"Contents","Toc_RelatedClasses_Label":"Related Classes","History_JustNowTime_Label":"just now","History_AgoTime_Label":"ago","History_YearTime_Label":"y","History_MonthTime_Label":"mo","History_DayTime_Label":"d","History_HourTime_Label":"h","History_MinuteTime_Label":"m","History_SecondTime_Label":"s"}};
diff --git a/resources/js/search.json b/resources/js/search.json
index 55ea34e..0827530 100644
--- a/resources/js/search.json
+++ b/resources/js/search.json
@@ -1 +1 @@
-[[{"l":"QBittorrentBot","p":["QBittorrentBot is a Telegram bot that allows you to control your qBittorrent downloads from your Telegram account.","This means that you can add, remove, pause, resume, and delete torrents, as well as view a list of your active downloads, all without having to open the qBittorrent application.","A lot has changed from version 2, if you have any errors, please take a look here."]},{"l":"Features","p":["Here are some of the things you can do with QBittorrentBot:","Add torrents: You can add torrents to your qBittorrent download queue by sending magnet links or torrent files to the bot.","List active downloads: You can get a list of your current downloads, including their progress, status, and estimated completion time.","Pause/Resume downloads: You can pause or resume ongoing downloads with a single command.","Delete torrents: You can remove unwanted downloads from your queue with a single command.","Add/Remove/Edit categories: You can categorize your torrents for better organization and accessibility.","Edit settings: You can edit user and torrent client settings directly from the bot","Check client connection: You can check the connection with the client directly from the bot"]},{"l":"Benefits","p":["Here are some of the benefits of using QBittorrentBot:","Security: You can add multiple users who have access to the bot and each of them can have different permissions(reader, manager, administrator)","Convenience: You can manage your torrents from anywhere, as long as you have your Telegram app with you.","Efficiency: You don't have to switch between apps to control your torrents.","Organization: You can categorize your torrents for better organization and accessibility.","Docker support: You can deploy and manage the bot seamlessly using Docker for enhanced isolation, security, and flexibility.","QBittorrentBot is an open-source project, so you can contribute to its development if you want to make it even more powerful and user-friendly."]}],[{"l":"Getting Started","p":["In order to start using the bot, you must first create a folder where the bot will fish for settings and where it will save logs","For example: let's create a folder called QBittorrentBot in the home of the user user. The path to the folder will then be /home/user/docker/QBittorrentBot.","Before starting the bot you need to place the configuration file in this folder. You can rename the config.json.template file to config.json and change the parameters as desired. Go here to read more about the configuration file.","Once that is done you can start the bot using docker, you can use either docker or docker compose.","Open your terminal and execute the following command to start the bot container:","docker run -d -v /home/user/docker/QBittorrentBot:/app/config:rw --name qbittorrent-bot ch3p4ll3/qbittorrent-bot:latest","Create a file named docker-compose.yml inside a directory with the following content:","Run the following command to start the bot using Docker Compose: docker compose up -d"]}],[{"l":"Configuration File","p":["The configuration file serves as a central repository for all the necessary information that the QBittorrentBot needs to operate effectively. It defines the connection parameters, credentials, and user settings that the bot utilizes to interact with the qBittorrent server and Telegram API.","Below you can find an example of the configuration file:","Here's a brief overview of the configuration file and its key sections:","Clients Section: Establishes the connection details for the qBittorrent server, including the hostname, port number, username, and password. This enables the bot to interact with the qBittorrent server and manage torrents.","Telegram Section: Contains the bot token, API ID, and API hash, which are essential for authenticating the bot with the Telegram API. These credentials allow the bot to communicate with the Telegram server and receive user commands. Click here to find out how to retrive your API ID and API Hash","Users Section: Lists the authorized users of the QBittorrentBot, along with their Telegram user IDs, notification preferences, and user roles. This section defines the users who can interact with the bot, receive notifications, and manage torrents."]},{"l":"Client","p":["This section defines the configuration for the qBittorrent client that the bot will be interacting with.","Name","Type","Value","ClientTypeEnum","The type of client.","host","HttpUrl","The IP address of the qBittorrent server.","user","str","The username for the qBittorrent server.","password","The password for the qBittorrent server."]},{"l":"Telegram","p":["This section defines the configuration for the Telegram bot that the QBittorrentBot will be communicating with.","Name","Type","Value","bot_token","str","The bot token for the QBittorrentBot. This is a unique identifier that is used to authenticate the bot with the Telegram API.","api_id","int","The API ID for the QBittorrentBot. This is a unique identifier that is used to identify the bot to the Telegram API.","api_hash","The API hash for the QBittorrentBot. This is a string of characters that is used to verify the authenticity of the bot's requests to the Telegram API."]},{"l":"Users","p":["This section defines the list of users who are authorized to use the QBittorrentBot. Each user is defined by their Telegram user ID, whether or not they should be notified about completed torrents, and their role.","Name","Type","Value","user_id","int","The Telegram user ID of the user. This is a unique identifier that is used to identify the user to the Telegram API.","notify","bool","Whether or not the user should be notified about new torrents.","role","UserRolesEnum","The role of the user."]},{"l":"Enums"},{"l":"ClientTypeEnum","p":["Name","Type","Value(to be used in json)","QBittorrent","str"]},{"l":"UserRolesEnum","p":["Name","Type","Value(to be used in json)","Remarks","Reader","str","Can perform only reading operations(view torrents)","Manager","Can perform only managing operations(view torrents + can download files + can add/edit categories + set torrent priority + can stop/start downloads)","Administrator","Can perform all operations (Manager + remove torrent + remove category + edit configs)"]},{"l":"Other types"},{"l":"HttpUrl","p":["A type that will accept any http or https URL.","TLD required","Host required","Max length 2083"]}],[{"l":"Migrating to V2","p":["Much has changed with the new version, especially the management of the configuration file. Some fields have been added, while others have changed names, so first check that you have all the fields in the json with the correct name."]},{"l":"New fields","p":["Two new fields were introduced: type and role in the client and users sections, respectively.","The type field determines the type of torrent client you want to use(currently only qbittorrent is supported, so its value must be qbittorrent)","The role field, on the other hand, determines the role of a particular user. Currently there are 3 roles:","Reader","Manager","Administrator","You can find more information here"]},{"l":"Changed names","p":["There are 2 changes to the field names, the first is the name of the qbittorrent section which has been renamed to client. While the second is the ip field inside che client section which has been renamed to host"]},{"l":"Removed fileds","p":["The port field has been removed from the qbittorrent section. This is due to the fact that I opted to use the host field to simultaneously enter the protocol( http/ https), the ip address or the domain of qbittorrent and the port"]},{"l":"V1 vs V2","p":["configurations in comparison"]}],[{"l":"Advanced","p":["This section will speigate the advanced functions of the bot, such as creating new client managers, and managing user roles"]}],[{"l":"Add new client manager","p":["Adding a new client manager to QBittorrentBot involves creating a new class that implements the ClientManager interface. This interface defines the methods that the bot uses to interact with the client, such as adding, removing, pausing, and resuming torrents.","To do this you need to follow a couple of steps:","Clone the repository locally using the command: git clone https://github.com/ch3p4ll3/QBittorrentBot.git","Navigate to the folder src/client_manager","Create a new file for your client manager class. Name the file something like client_manager.py. For example, if you are writing a manager for utorrent the name will be utorrent_manager.py","Define your client manager class. The class should inherit from the ClientManager class and implement all of its methods. For example, the utorrent_manager.py file might look like this:","Navigate to the src/configs/ folder and edit the enums.py file by adding to the ClientTypeEnum class an enum for your client. For example, if we wanted to add a manager for utorrent the class would become like this:","Return to the src/client_manager folder and edit the client_repo.py file by adding to the dictionary named repositories an entry associating the newly created enum with the new manager. Example:","Register your client manager in the config file. The config file is a JSON file that defines the configuration for the QBittorrentBot. You can add your new client manager to the client section of the config file. For example, the config file might look like this:","Build the docker image","Start the docker container","You can now use the bot with the new client, have fun\uD83E\uDD73"]}],[{"l":"Add new entries in configuration file","p":["Adding a new entry to the QBittorrentBot configuration file involves several steps:","Clone the repository: git clone https://github.com/ch3p4ll3/QBittorrentBot.git","Navigate to the folder: src/configs","Modify the pydantic class: Identify the pydantic class where the new entry should be added. Add a new attribute to the class to represent the new entry.","Create a validation function (if necessary): If the new entry requires additional validation beyond the type provided by pydantic, create a validation function. The validation function should inspect the value of the new entry and check for any constraints or rules that need to be enforced.","Add the new entry to the config file: Open the configuration file (usually config.json). Add a new property to the configuration object for the new entry. Set the value of the new property to the desired initial value.","Update the convert_type_from_string function (if necessary): If the new entry type requires a custom conversion from a string representation, add the conversion function to the utils file. The function should take a string representation of the new entry type and return the corresponding data type.","Update the bot code (if necessary): If the new entry is being used by the bot code, update the relevant parts of the code to handle the new entry type and its values.","Build the docker image","Start the docker container","You can now use the bot with the new entry, have fun\uD83E\uDD73"]}],[{"l":"Managing users roles","p":["QBittorrentBot provides a user role management system to control access to different actions and functionalities within the bot. The system defines three roles: Reader, Manager, and Admin, each with increasing permissions and capabilities."]},{"l":"Reader","p":["The Reader role grants basic access to view the list of active torrents and inspect the details of individual torrents. Users with the Reader role can view the torrent name, download speed, upload speed, progress, and file size. They can also view the category to which each torrent belongs."]},{"l":"Manager","p":["The Manager role extends the Reader role with additional permissions, allowing users to perform actions beyond mere observation. Manager-level users can download new torrents by sending magnet links or torrent files to the bot. They can also add or edit categories to organize their torrents effectively. Additionally, Manager users can set torrent priorities, enabling them to manage the download order and prioritize specific torrents. Moreover, they can pause or resume ongoing downloads, providing flexibility in managing their torrent activity."]},{"l":"Admin","p":["The Admin role, the most privileged, grants the user full control over the bot's functionalities. In addition to the capabilities of the Manager role, Admin users can remove torrents from their download lists, eliminating unwanted downloads. They can also remove categories, streamlining their torrent organization structure. And, as the highest-level role, Admin users have the authority to edit the bot's configuration files, modifying its settings and behavior.","This role management system ensures that users are granted access appropriate to their needs and responsibilities. Readers can observe and manage their torrent activity, Managers can perform more extensive actions, and Admins have full control over the bot's operation. This structure enhances security and prevents unauthorized users from modifying configuration files or deleting torrents."]}],[{"l":"FAQ"},{"i":"what-is-qbittorrentbot","l":"What is QBittorrentBot?","p":["QBittorrentBot is a Telegram bot that allows you to control your qBittorrent downloads from within the Telegram app. It can add torrents, manage your torrent list, and much more."]},{"i":"what-are-the-benefits-of-using-qbittorrentbot","l":"What are the benefits of using QBittorrentBot?","p":["There are several benefits to using QBittorrentBot, including:","Convenience: You can control your torrents from anywhere, without having to open the qBittorrent app.","Efficiency: You can manage your torrents without switching between apps.","Organization: You can categorize your torrents for better organization and accessibility.","Docker Support: You can deploy and manage the bot seamlessly using Docker containers."]},{"i":"how-do-i-add-qbittorrentbot-to-my-telegram-account","l":"How do I add QBittorrentBot to my Telegram account?","p":["Follow this guide to start using QBittorrentBot Getting Started"]},{"i":"how-do-i-edit-the-configuration-for-the-qbittorrentbot","l":"How do I edit the configuration for the QBittorrentBot?","p":["The QBittorrentBot configuration file is located at config.json. This file stores the bot's settings, such as the connection details for the qBittorrent client, the API IDs and hashes, and the list of authorized users. To edit the configuration file, you can open it in a text editor and make the necessary changes."]},{"i":"how-do-i-check-the-status-of-my-torrents","l":"How do I check the status of my torrents?","p":["You can check the status of your torrents by using the list torrents button. This command will display a list of all your active torrents, including their name, status, progress, and download/upload speed."]},{"i":"what-is-the-difference-between-a-magnet-link-and-a-torrent-file","l":"What is the difference between a magnet link and a torrent file?","p":["A magnet link is a URI scheme that allows you to download a torrent without having to download the entire torrent file. A torrent file is a file that contains metadata about the torrent, such as the filename, file size, and number of pieces."]},{"i":"what-are-the-different-user-roles-available-in-qbittorrentbot","l":"What are the different user roles available in QBittorrentBot?","p":["QBittorrentBot supports three user roles: Reader, Manager, and Admin. Each role has different permissions, as follows:","Reader: Can view lists of active torrents and view individual torrent details.","Manager: Can perform all Reader actions, plus add/edit categories, set torrent priorities, and pause/resume downloads.","Admin: Can perform all Manager actions, plus remove torrents, remove categories, and edit configs."]},{"i":"how-do-i-change-the-user-role-for-a-user","l":"How do I change the user role for a user?","p":["You can change the user role for a user by editing the config.json file. Open the file and find the user's entry. Change the role field to the desired role (e.g., \"reader\", \"manager\", or \"admin\"). Save the file and restart the bot or, if you are an admin you can reload the configuration from the bot."]},{"i":"how-do-i-install-qbittorrentbot-on-my-server","l":"How do I install QBittorrentBot on my server?","p":["You can install QBittorrentBot on your server using Docker. First, install Docker on your server. Then, create a Docker image from the QBittorrentBot Dockerfile. Finally, run the Docker image to start the bot."]},{"i":"how-do-i-add-a-new-manager-to-my-qbittorrentbot","l":"How do I add a new manager to my QBittorrentBot?","p":["Please follow this guide Add new client manager"]},{"i":"how-do-i-add-a-new-entry-to-the-qbittorrentbot-configuration-file","l":"How do I add a new entry to the QBittorrentBot configuration file?","p":["Please follow this guide Add new entries in configuration file"]},{"i":"how-do-i-contribute-to-the-development-of-qbittorrentbot","l":"How do I contribute to the development of QBittorrentBot?","p":["QBittorrentBot is an open-source project. You can contribute to the development by reporting bugs, suggesting improvements, or submitting pull requests. The project's code is hosted on GitHub."]}],[{"l":"Screenshots","p":["Main Menu (Administrator view)","List and filter torrents View torrent info"]},{"i":"administrator--section","l":"Administrator section","p":["Administrator Settings Edit Client Settings"]}]]
\ No newline at end of file
+[[{"l":"QBittorrentBot","p":["QBittorrentBot is a Telegram bot that allows you to control your qBittorrent downloads from your Telegram account.","This means that you can add, remove, pause, resume, and delete torrents, as well as view a list of your active downloads, all without having to open the qBittorrent application.","A lot has changed from version 2, if you have any errors, please take a look here."]},{"l":"Features","p":["Here are some of the things you can do with QBittorrentBot:","Add torrents: You can add torrents to your qBittorrent download queue by sending magnet links or torrent files to the bot.","List active downloads: You can get a list of your current downloads, including their progress, status, and estimated completion time.","Pause/Resume downloads: You can pause or resume ongoing downloads with a single command.","Delete torrents: You can remove unwanted downloads from your queue with a single command.","Add/Remove/Edit categories: You can categorize your torrents for better organization and accessibility.","Edit settings: You can edit user and torrent client settings directly from the bot","Check client connection: You can check the connection with the client directly from the bot"]},{"l":"Benefits","p":["Here are some of the benefits of using QBittorrentBot:","Security: You can add multiple users who have access to the bot and each of them can have different permissions(reader, manager, administrator)","Convenience: You can manage your torrents from anywhere, as long as you have your Telegram app with you.","Efficiency: You don't have to switch between apps to control your torrents.","Organization: You can categorize your torrents for better organization and accessibility.","Docker support: You can deploy and manage the bot seamlessly using Docker for enhanced isolation, security, and flexibility.","QBittorrentBot is an open-source project, so you can contribute to its development if you want to make it even more powerful and user-friendly."]}],[{"l":"Getting Started","p":["QBittorrentBot is a Telegram bot that allows you to control your qBittorrent client from within the Telegram messaging app. This makes it easy to add new torrents, manage your existing downloads, and get status updates without having to switch between applications."]},{"l":"Prerequisites","p":["A Telegram account","A bot token obtained from botfather","Telegram API ID","A running qBittorrent instance with WebUI enabled","Access to your qBittorrent server's IP address and port number"]}],[{"l":"Configuration File","p":["The configuration file serves as a central repository for all the necessary information that the QBittorrentBot needs to operate effectively. It defines the connection parameters, credentials, and user settings that the bot utilizes to interact with the qBittorrent server and Telegram API.","Below you can find an example of the configuration file:","Here's a brief overview of the configuration file and its key sections:","Clients Section: Establishes the connection details for the qBittorrent server, including the hostname, port number, username, and password. This enables the bot to interact with the qBittorrent server and manage torrents.","Telegram Section: Contains the bot token, API ID, and API hash, which are essential for authenticating the bot with the Telegram API. These credentials allow the bot to communicate with the Telegram server and receive user commands. Click here to find out how to retrive your API ID and API Hash","Users Section: Lists the authorized users of the QBittorrentBot, along with their Telegram user IDs, notification preferences, and user roles. This section defines the users who can interact with the bot, receive notifications, and manage torrents."]},{"l":"Client","p":["This section defines the configuration for the qBittorrent client that the bot will be interacting with.","Name","Type","Remarks","ClientTypeEnum","The type of client.","host","HttpUrl","The IP address of the qBittorrent server.","user","str","The username for the qBittorrent server.","password","The password for the qBittorrent server."]},{"l":"Telegram","p":["This section defines the configuration for the Telegram bot that the QBittorrentBot will be communicating with.","Name","Type","Remarks","bot_token","str","The bot token for the QBittorrentBot. This is a unique identifier that is used to authenticate the bot with the Telegram API.","api_id","int","The API ID for the QBittorrentBot. This is a unique identifier that is used to identify the bot to the Telegram API.","api_hash","The API hash for the QBittorrentBot. This is a string of characters that is used to verify the authenticity of the bot's requests to the Telegram API.","proxy","TelegramProxySettings","Optional, the settings for using a proxy to contact telegram servers"]},{"l":"Users","p":["bool","int","Language used by the user, list of supported languages. Default: en","locale","Name","notify","Remarks","role","str","The role of the user. Default: administrator","The Telegram user ID of the user. This is a unique identifier that is used to identify the user to the Telegram API.","This section defines the list of users who are authorized to use the QBittorrentBot. Each user is defined by their Telegram user ID, whether or not they should be notified about completed torrents, and their role.","Type","user_id","UserRolesEnum","Whether or not the user should be notified about new torrents."]},{"l":"Enums"},{"l":"ClientTypeEnum","p":["Name","Type","Value(to be used in json)","QBittorrent","str"]},{"l":"UserRolesEnum","p":["Name","Type","Value(to be used in json)","Remarks","Reader","str","Can perform only reading operations(view torrents)","Manager","Can perform only managing operations(view torrents + can download files + can add/edit categories + set torrent priority + can stop/start downloads)","Administrator","Can perform all operations (Manager + remove torrent + remove category + edit configs)"]},{"l":"Telegram Proxy Scheme","p":["Name","Type","Value(to be used in json)","Sock4","str","socks4","Sock5","socks5","Http"]},{"l":"Other types"},{"l":"HttpUrl","p":["A type that will accept any http or https URL.","TLD required","Host required","Max length 2083"]},{"l":"Languages","p":["Name","Type","Value(to be used in json)","English","str","en","Italian","it","Ukrainian","uk_UA","Russian(Ukraine)","ru_UA"]},{"l":"Telegram Proxy Settings","p":["QBittorrentBot supports proxies with and without authentication. This feature allows QBittorrentBot to exchange data with Telegram through an intermediate SOCKS 4/5 or HTTP proxy server.","Name","Type","Remarks","scheme","TelegramProxyScheme","The scheme to be used to connect to the proxy","hostname","str","The hostname of the proxy","username","Optional, the proxy user","password","Optional, the proxy password"]}],[{"l":"Installation","p":["In order to start using the bot, you must first create a folder where the bot will fish for settings and where it will save logs","For example: let's create a folder called QBittorrentBot in the home of the user user. The path to the folder will then be /home/user/docker/QBittorrentBot.","Before starting the bot you need to place the configuration file in this folder. You can rename the config.json.template file to config.json and change the parameters as desired. Go here to read more about the configuration file.","Once that is done you can start the bot using docker, you can use either docker or docker compose.","Open your terminal and execute the following command to start the bot container:","docker run -d -v /home/user/docker/QBittorrentBot:/app/config:rw --name qbittorrent-bot ch3p4ll3/qbittorrent-bot:latest","Create a file named docker-compose.yml inside a directory with the following content:","Run the following command to start the bot using Docker Compose: docker compose up -d"]},{"l":"Updating","p":["To update to the latest version of QBittorrentBot, use the following commands to stop then remove the old version:","docker stop qbittorrent-bot","docker rm qbittorrent-bot","Now that you have stopped and removed the old version of QBittorrentBot, you must ensure that you have the latest version of the image locally. You can do this with a docker pull command:","docker pull ch3p4ll3/qbittorrent-bot:latest","Finally, deploy the updated version of Portainer:","docker run -d -v /home/user/docker/QBittorrentBot:/app/config:rw --name qbittorrent-bot ch3p4ll3/qbittorrent-bot:latest","To update to the latest version of QBittorrentBot, navigate to the folder where you created the docker-compose.yml file.","Then use the following command to pull the latest version of the image:","docker compose pull","Finally use the following command to start the bot using Docker Compose: docker compose up -d"]},{"l":"Running without docker","p":["it is preferable to use the bot using docker, this gives the developers to isolate their app from its environment, solving the “it works on my machine” headache.","In case you could not use docker you can use the bot without it. To do so, follow the following steps:","Clone this repo git clone https://github.com/ch3p4ll3/QBittorrentBot.git","Move in the project directory","Install dependencies with pip3 install -r requirements.txt","Create a config.json file","Start the bot with python3 main.py"]}],[{"l":"Migrating to V2","p":["Much has changed with the new version, especially the management of the configuration file. Some fields have been added, while others have changed names, so first check that you have all the fields in the json with the correct name."]},{"l":"New fields","p":["Two new fields were introduced: type and role in the client and users sections, respectively.","The type field determines the type of torrent client you want to use(currently only qbittorrent is supported, so its value must be qbittorrent)","The role field, on the other hand, determines the role of a particular user. Currently there are 3 roles:","Reader","Manager","Administrator","You can find more information here"]},{"l":"Changed names","p":["There are 2 changes to the field names, the first is the name of the qbittorrent section which has been renamed to client. While the second is the ip field inside che client section which has been renamed to host"]},{"l":"Removed fileds","p":["The port field has been removed from the qbittorrent section. This is due to the fact that I opted to use the host field to simultaneously enter the protocol( http/ https), the ip address or the domain of qbittorrent and the port"]},{"l":"V1 vs V2","p":["configurations in comparison"]}],[{"l":"Advanced","p":["This section will speigate the advanced functions of the bot, such as creating new client managers, and managing user roles"]}],[{"l":"Add new client manager","p":["Adding a new client manager to QBittorrentBot involves creating a new class that implements the ClientManager interface. This interface defines the methods that the bot uses to interact with the client, such as adding, removing, pausing, and resuming torrents.","To do this you need to follow a couple of steps:","Clone the repository locally using the command: git clone https://github.com/ch3p4ll3/QBittorrentBot.git","Navigate to the folder src/client_manager","Create a new file for your client manager class. Name the file something like client_manager.py. For example, if you are writing a manager for utorrent the name will be utorrent_manager.py","Define your client manager class. The class should inherit from the ClientManager class and implement all of its methods. For example, the utorrent_manager.py file might look like this:","Navigate to the src/configs/ folder and edit the enums.py file by adding to the ClientTypeEnum class an enum for your client. For example, if we wanted to add a manager for utorrent the class would become like this:","Return to the src/client_manager folder and edit the client_repo.py file by adding to the dictionary named repositories an entry associating the newly created enum with the new manager. Example:","Register your client manager in the config file. The config file is a JSON file that defines the configuration for the QBittorrentBot. You can add your new client manager to the client section of the config file. For example, the config file might look like this:","Build the docker image","Start the docker container","You can now use the bot with the new client, have fun\uD83E\uDD73"]}],[{"l":"Configure proxy for Telegram","p":["QBittorrent Bot can be configured to use a Telegram proxy to connect to the Telegram API. This can be useful if you are behind a firewall that blocks direct connections to Telegram.","To configure QBittorrent Bot to use a Telegram proxy, you will need to add a proxy section to the config.json file in the telegram section. The telegram section should have the following format:","Where:","scheme is the protocol to use for the proxy connection. This can be http, sock4 or sock5","hostname is the hostname or IP address of the proxy server.","port is the port number of the proxy server.","username(optional) is the username for the proxy server.","password(optional) is the password for the proxy server.","Once you have added the proxy section to the config.json file, you will need to restart QBittorrent Bot for the changes to take effect."]}],[{"l":"Add new entries in configuration file","p":["Adding a new entry to the QBittorrentBot configuration file involves several steps:","Clone the repository: git clone https://github.com/ch3p4ll3/QBittorrentBot.git","Navigate to the folder: src/configs","Modify the pydantic class: Identify the pydantic class where the new entry should be added. Add a new attribute to the class to represent the new entry.","Create a validation function (if necessary): If the new entry requires additional validation beyond the type provided by pydantic, create a validation function. The validation function should inspect the value of the new entry and check for any constraints or rules that need to be enforced.","Add the new entry to the config file: Open the configuration file (usually config.json). Add a new property to the configuration object for the new entry. Set the value of the new property to the desired initial value.","Update the convert_type_from_string function (if necessary): If the new entry type requires a custom conversion from a string representation, add the conversion function to the utils file. The function should take a string representation of the new entry type and return the corresponding data type.","Update the bot code (if necessary): If the new entry is being used by the bot code, update the relevant parts of the code to handle the new entry type and its values.","Build the docker image","Start the docker container","You can now use the bot with the new entry, have fun\uD83E\uDD73"]}],[{"l":"Managing users roles","p":["QBittorrentBot provides a user role management system to control access to different actions and functionalities within the bot. The system defines three roles: Reader, Manager, and Admin, each with increasing permissions and capabilities."]},{"l":"Reader","p":["The Reader role grants basic access to view the list of active torrents and inspect the details of individual torrents. Users with the Reader role can view the torrent name, download speed, upload speed, progress, and file size. They can also view the category to which each torrent belongs."]},{"l":"Manager","p":["The Manager role extends the Reader role with additional permissions, allowing users to perform actions beyond mere observation. Manager-level users can download new torrents by sending magnet links or torrent files to the bot. They can also add or edit categories to organize their torrents effectively. Additionally, Manager users can set torrent priorities, enabling them to manage the download order and prioritize specific torrents. Moreover, they can pause or resume ongoing downloads, providing flexibility in managing their torrent activity."]},{"l":"Admin","p":["The Admin role, the most privileged, grants the user full control over the bot's functionalities. In addition to the capabilities of the Manager role, Admin users can remove torrents from their download lists, eliminating unwanted downloads. They can also remove categories, streamlining their torrent organization structure. And, as the highest-level role, Admin users have the authority to edit the bot's configuration files, modifying its settings and behavior.","This role management system ensures that users are granted access appropriate to their needs and responsibilities. Readers can observe and manage their torrent activity, Managers can perform more extensive actions, and Admins have full control over the bot's operation. This structure enhances security and prevents unauthorized users from modifying configuration files or deleting torrents."]}],[{"l":"Contributing","p":["QBittorrentBot is an open-source Telegram bot that enables seamless management of qBittorrent downloads directly from Telegram.","By contributing to QBittorrentBot, you can help improve this valuable tool for qBittorrent users. Your contributions can range from fixing bugs and enhancing existing features to adding new functionalities that enhance the bot's capabilities."]},{"l":"Adding translations","p":["If you are multilingual and would like to help us make QBittorrentBot more accessible to a wider audience, you can contribute by adding new translations or improving existing ones using Transifex:","Visit the QBittorrentBot Transifex Project.","If you don't have a Transifex account, sign up for one. If you already have an account, log in.","Navigate to the \"Languages\" tab to view the available languages. Choose the language you want to contribute to.","Locate the specific string you wish to translate. Please note that the text between \"${\" and \"}\" should not be edited, as they are placeholders for dynamic content.","Click on the string you want to translate, enter your translation in the provided field, and save your changes.","If your language is not listed, you can request its addition.","Once you have completed your translations, submit them for review. The project maintainers will review and approve your contributions.","Thank you for helping improve QBittorrentBot with your valuable translations!","Contributing Contributing"]}],[{"l":"FAQ"},{"i":"what-is-qbittorrentbot","l":"What is QBittorrentBot?","p":["QBittorrentBot is a Telegram bot that allows you to control your qBittorrent downloads from within the Telegram app. It can add torrents, manage your torrent list, and much more."]},{"i":"what-are-the-benefits-of-using-qbittorrentbot","l":"What are the benefits of using QBittorrentBot?","p":["There are several benefits to using QBittorrentBot, including:","Convenience: You can control your torrents from anywhere, without having to open the qBittorrent app.","Efficiency: You can manage your torrents without switching between apps.","Organization: You can categorize your torrents for better organization and accessibility.","Docker Support: You can deploy and manage the bot seamlessly using Docker containers."]},{"i":"how-do-i-add-qbittorrentbot-to-my-telegram-account","l":"How do I add QBittorrentBot to my Telegram account?","p":["Follow this guide to start using QBittorrentBot Getting Started"]},{"i":"how-do-i-edit-the-configuration-for-the-qbittorrentbot","l":"How do I edit the configuration for the QBittorrentBot?","p":["The QBittorrentBot configuration file is located at config.json. This file stores the bot's settings, such as the connection details for the qBittorrent client, the API IDs and hashes, and the list of authorized users. To edit the configuration file, you can open it in a text editor and make the necessary changes."]},{"i":"how-do-i-check-the-status-of-my-torrents","l":"How do I check the status of my torrents?","p":["You can check the status of your torrents by using the list torrents button. This command will display a list of all your active torrents, including their name, status, progress, and download/upload speed."]},{"i":"what-is-the-difference-between-a-magnet-link-and-a-torrent-file","l":"What is the difference between a magnet link and a torrent file?","p":["A magnet link is a URI scheme that allows you to download a torrent without having to download the entire torrent file. A torrent file is a file that contains metadata about the torrent, such as the filename, file size, and number of pieces."]},{"i":"what-are-the-different-user-roles-available-in-qbittorrentbot","l":"What are the different user roles available in QBittorrentBot?","p":["QBittorrentBot supports three user roles: Reader, Manager, and Admin. Each role has different permissions, as follows:","Reader: Can view lists of active torrents and view individual torrent details.","Manager: Can perform all Reader actions, plus add/edit categories, set torrent priorities, and pause/resume downloads.","Admin: Can perform all Manager actions, plus remove torrents, remove categories, and edit configs."]},{"i":"how-do-i-change-the-user-role-for-a-user","l":"How do I change the user role for a user?","p":["You can change the user role for a user by editing the config.json file. Open the file and find the user's entry. Change the role field to the desired role (e.g., \"reader\", \"manager\", or \"admin\"). Save the file and restart the bot or, if you are an admin you can reload the configuration from the bot."]},{"i":"how-do-i-install-qbittorrentbot-on-my-server","l":"How do I install QBittorrentBot on my server?","p":["You can install QBittorrentBot on your server using Docker. First, install Docker on your server. Then, create a Docker image from the QBittorrentBot Dockerfile. Finally, run the Docker image to start the bot."]},{"i":"how-do-i-add-a-new-manager-to-my-qbittorrentbot","l":"How do I add a new manager to my QBittorrentBot?","p":["Please follow this guide Add new client manager"]},{"i":"how-do-i-add-a-new-entry-to-the-qbittorrentbot-configuration-file","l":"How do I add a new entry to the QBittorrentBot configuration file?","p":["Please follow this guide Add new entries in configuration file"]},{"i":"how-do-i-contribute-to-the-development-of-qbittorrentbot","l":"How do I contribute to the development of QBittorrentBot?","p":["QBittorrentBot is an open-source project. You can contribute to the development by reporting bugs, suggesting improvements, or submitting pull requests. The project's code is hosted on GitHub.","FAQ"]}],[{"l":"Screenshots","p":["Main Menu (Administrator view)","List and filter torrents View torrent info"]},{"i":"administrator--section","l":"Administrator section","p":["Administrator Settings Edit Client Settings"]}]]
\ No newline at end of file
diff --git a/screenshots/index.html b/screenshots/index.html
index 70e2053..6e8c124 100644
--- a/screenshots/index.html
+++ b/screenshots/index.html
@@ -3,7 +3,7 @@
-
+
@@ -32,11 +32,11 @@
-
+
-
+
-
+
diff --git a/sitemap.xml.gz b/sitemap.xml.gz
index 2d36f61..db3a7da 100644
Binary files a/sitemap.xml.gz and b/sitemap.xml.gz differ