Coding Skill Builder đŞđ(Full AI Based)
Open in Telegram
đ Welcome to Coding Skill Builder! Unlock your potential with quick tips and tutorials on personal development, professional skills, and creative pursuits. Join our community and start building your skills today! đŞđ⨠⊠https://t.me/+4hTMRVjnQ2oyMGQ1
Show more287
Subscribers
No data24 hours
No data7 days
-630 days
Posts Archive
Day 12: Multi-Command Workflows â Mastering Complex Interactions! đ
Welcome to Day 12 of our exciting journey! Today, weâre diving into the world of multi-command workflows, a powerful feature that enables your bot to handle intricate tasks in a step-by-step manner. This approach is ideal for creating forms, managing multi-step processes, or engaging in scenarios that require multiple user inputs. Get ready to enhance your bot's interactivity!
---
âWhat Are Multi-Command Workflows?
Multi-command workflows allow you to break down complex tasks into manageable steps. Each step corresponds to a separate command, making it easier to guide users through the process. Hereâs how it typically unfolds:
1. Initial Interaction: The bot poses a question in Command 1.
2. User Response: The user's reply triggers Command 2.
3. Processing Input: Command 2 processes the input and seamlessly transitions to Command 3.
This structured approach ensures that your bot can efficiently manage lengthy interactions while providing a smooth user experience.
---
âHow to Build Multi-Command Workflows
1ď¸âŁ Engage Users: Use
Bot.sendMessage() to pose questions and gather input.
2ď¸âŁ Link Commands: Utilize Bot.runCommand() to connect each step of the workflow.
3ď¸âŁ Store Responses: Save user inputs with User.setProperty() for future reference in subsequent steps.
---
âExample 1: User Registration
Step 1: Start Registration
Command: /register
Bot.sendMessage("Welcome! Whatâs your name?");
Bot.runCommand("/saveName");
Step 2: Save the Name
Command: /saveName
User.setProperty("name", message, "string");
Bot.sendMessage("Hi, " + message + "! How old are you?");
Bot.runCommand("/saveAge");
Step 3: Save the Age
Command: /saveAge
User.setProperty("age", message, "integer");
Bot.sendMessage("Registration complete! â
\nName: " + User.getProperty("name") + "\nAge: " + User.getProperty("age"));
---
âExample 2: Quiz Workflow
Step 1: Start the Quiz
Command: /startquiz
Bot.sendMessage("Question 1: What is the capital of France?\n\nA) Paris\nB) Berlin\nC) Madrid");
Bot.runCommand("/checkAnswer1");
Step 2: Check Answer 1
Command: /checkAnswer1
if (message.toLowerCase() == "a" || message.toLowerCase() == "paris") {
User.setProperty("score", 1, "integer");
Bot.sendMessage("â
Correct! Now for Question 2...");
} else {
User.setProperty("score", 0, "integer");
Bot.sendMessage("â Wrong! The correct answer is A) Paris. Next question...");
}
Bot.runCommand("/question2");
Step 3: Ask Question 2
Command: /question2
Bot.sendMessage("Question 2: What is 5 + 3?\n\nA) 6\nB) 8\nC) 10");
Bot.runCommand("/checkAnswer2");
Step 4: Check Answer 2 and Display Results
Command: /checkAnswer2
let score = User.getProperty("score");
if (message.toLowerCase() == "b" || message.toLowerCase() == "8") {
score += 1;
}
Bot.sendMessage("đ Quiz Complete! Your score: " + score + "/2");
---
âExample 3: Multi-Step Order Form
Step 1: Ask for Product
Command: /order
Bot.sendMessage("What product would you like to order?");
Bot.runCommand("/saveProduct");
Step 2: Ask for Quantity
Command: /saveProduct
User.setProperty("product", message, "string");
Bot.sendMessage("How many " + message + "s would you like?");
Bot.runCommand("/confirmOrder");
Step 3: Confirm the Order
Command: /confirmOrder
User.setProperty("quantity", message, "integer");
let product = User.getProperty("product");
let quantity = User.getProperty("quantity");
Bot.sendMessage("â
Order placed!\nProduct: " + product + "\nQuantity: " + quantity);
---
âAssignment for Day 12
1ď¸âŁ Create a Registration Workflow:
Collect the userâs name, email, and age using multiple commands. Display the saved data in the final step.
2ď¸âŁ Build a Quiz Bot:Day 11: Advanced Logic and Automation â Crafting Smarter, More Powerful Bots! đ¤
Welcome to Day 11! Today, weâre diving deep into the realm of advanced logic and automation techniques that will transform your bots into intelligent, efficient companions. By harnessing the power of conditional statements, loops, and event-driven actions, you can create bots capable of solving complex problems, automating tedious tasks, and dynamically responding to user interactions. Letâs get started on this exciting journey!
---
âKey Concepts for Today
1ď¸âŁ Complex Conditions (Nested Logic): Master the art of handling multiple conditions to deliver tailored responses that meet user needs.
2ď¸âŁ Loops: Streamline repetitive tasks and manage data collections effortlessly.
3ď¸âŁ Event-Driven Automation: Trigger commands or actions based on user events or changes in bot state, creating a more interactive experience.
---
â1. Nested Conditions for Complex Logic
Example: Multi-Level Access Control
Letâs build a bot that checks the userâs role and responds accordingly, ensuring a personalized experience.
let role = User.getProperty("role");
if (role == "admin") {
Bot.sendMessage("đŽ Welcome, Admin! You have full access to all features.");
} else if (role == "moderator") {
Bot.sendMessage("đĄď¸ Welcome, Moderator! You have limited access to manage content.");
} else {
Bot.sendMessage("đ¤ Welcome, User! Enjoy your basic access and explore our features.");
}
---
â2. Using Loops for Repetitive Tasks
Example: List User Data
Loops empower you to perform actions repeatedly without the hassle of coding each step individually.
Letâs create a command that lists all items in a userâs inventory:
let items = User.getProperty("inventory") || [];
let message = "đ Your Inventory:\n";
for (let i = 0; i < items.length; i++) {
message += (i + 1) + ". " + items[i] + "\n";
}
Bot.sendMessage(message);
---
â3. Automate Repeating Actions with Intervals
You can leverage Libs.ResourcesLib or commands to automate recurring actions, such as awarding coins every hour.
Example: Hourly Reward
Automatically reward users with coins every hour:
let coins = Libs.ResourcesLib.userRes("coins");
coins.add(10); // Add 10 coins
Bot.sendMessage("đ° Youâve received 10 coins! Your total balance is now: " + coins.value());
Utilize Libs.CooldownLib to ensure this command runs only once per hour when triggered by users.
---
â4. Event-Driven Actions
Trigger commands based on user activities or changes in stored state for a more engaging experience.
Example: Award Milestone Rewards
Reward users when they reach a score of 100 points:
let score = User.getProperty("score") || 0;
if (score >= 100) {
Bot.sendMessage("đ Congratulations! Youâve reached an impressive milestone of 100 points!");
User.setProperty("score", 0, "integer"); // Reset score for new challenges
} else {
Bot.sendMessage("Your current score: " + score + ". Keep going to reach that milestone!");
}
---
âAssignment for Day 11
1ď¸âŁ Create an Access Control System:
Implement nested conditions to establish multi-level roles (e.g., Admin, Moderator, User). Control access to specific commands based on the userâs role.
2ď¸âŁ Build an Inventory Manager:
Utilize loops to display a comprehensive list of items in a userâs inventory. Add functionality to allow users to add or remove items seamlessly.
3ď¸âŁ Automate Milestone Rewards:
Set up triggers to award users when they achieve a specific score, followed by resetting their score for future challenges.
---
Tomorrow, on Day 12, weâll explore how to integrate multi-command workflows for more complex bot interactions. Keep pushing your bots to new heights and unleash their full potential! đDay 10: Webhooks â Unlock Real-Time Communication for Your Bot! đ
Welcome to Day 10 of our journey! Today, weâre diving into the powerful world of webhooksâan advanced technique that empowers your bot to receive real-time updates from external services. With webhooks, your bot can respond instantly to events such as payments, form submissions, or any external triggers, enhancing its interactivity and responsiveness.
---
âWhat Is a Webhook?
Think of a webhook as a notification system that operates in real-time. When an event occurs in an external service, it sends data (known as a payload) to your botâs designated webhook URL. This allows your bot to process the incoming data and take immediate action, creating a seamless user experience.
---
âHow Webhooks Work in Bots.Business:
1ď¸âŁ Set Up a Webhook Listener: Utilize
WebhookLib to enable your bot to listen for incoming webhook events effortlessly.
2ď¸âŁ Process the Payload: Parse the incoming data and integrate it into your botâs commands for dynamic responses.
3ď¸âŁ Trigger Actions: Respond to events in real-time based on the information received from the webhook data.
---
âStep-by-Step Example: Payment Webhook
Letâs build a bot that listens for payment notifications and automatically confirms payments.
âStep 1: Set Up a Webhook Listener
Create a command /setupwebhook to enable the webhook:
Libs.Webhooks.setupWebhook({
url: "your-bot-webhook-url",
command: "/processpayment" // Command to handle the webhook data
});
Bot.sendMessage("â
Webhook is successfully set up and ready to receive payment updates!");
---
âStep 2: Process the Webhook Payload
Now, create a command /processpayment to manage incoming payment data:
let payment = JSON.parse(content); // Parse the webhook payload
let userId = payment.user_id;
let amount = payment.amount;
Bot.sendMessageToChatWithId(userId, "đ Payment of $" + amount + " has been received! Thank you for your support!");
---
âExample 2: Form Submission Webhook
Next, letâs create a bot that listens for data from Google Form submissions.
âStep 1: Set Up Webhook Listener
Create a command /setupformwebhook:
Libs.Webhooks.setupWebhook({
url: "your-bot-webhook-url",
command: "/processform"
});
Bot.sendMessage("â
Webhook for form submissions is now set up!");
---
âStep 2: Process the Submitted Data
Create a command /processform to handle the incoming form data:
let formData = JSON.parse(content);
let userName = formData.name;
let userResponse = formData.response;
Bot.sendMessage("đ New form submission received:\nName: " + userName + "\nResponse: " + userResponse);
---
âError Handling in Webhooks
In case something goes wrong during webhook processing, implement error handling:
Error Command: /webhookerror
Bot.sendMessage("â An error occurred while processing the webhook. Please try again later.");
---
âTips for Effective Webhooks:
1ď¸âŁ Ensure your botâs webhook URL is publicly accessible (typically provided by Bots.Business).
2ď¸âŁ Test the webhook functionality using tools like Postman or services like Webhook.site to simulate events.
3ď¸âŁ Always implement graceful error handling to prevent disruptions in service and enhance user satisfaction.
---
âAssignment:
1ď¸âŁ Create a webhook that listens for payment updates and promptly notifies users upon receiving their payments.
2ď¸âŁ Set up a webhook to process Google Form submissions and dynamically display the collected data.
3ď¸âŁ Enhance your webhook processing commands with robust error handling to manage potential failures effectively.
---
Join us tomorrow for Day 11, where weâll explore advanced logic and automation techniques to elevate your bot-building skills even further. Keep experimenting with webhooks, and let your creativity shine! đđ Test Your Knowledge: Days 1-10 Challenge! đŻ
Hey learners! đ Youâve successfully completed 10 days of the 30-Day Bots.Business JavaScript (BJS) learning journey. Now, itâs time to put your knowledge to the test and see how much youâve learned so far! đĄ
---
Challenge Questions
1ď¸âŁ Day 1:
What does the following command do?
Bot.sendMessage("Hello, Bots.Business!");
A) Sends a message to the user.
B) Creates a new bot.
C) Saves data for later use.
---
2ď¸âŁ Day 2:
How do you save and retrieve a userâs name?
Save:
User.setProperty("name", "John", "string");
Retrieve:
Fill in the blank:
let name = ____;
---
3ď¸âŁ Day 4:
What does this condition do?
if (message == "yes") {
Bot.sendMessage("You chose YES!");
} else {
Bot.sendMessage("You chose NO.");
}
A) It asks the user a question.
B) It checks the userâs input and responds based on their answer.
C) It saves the userâs input for later.
---
4ď¸âŁ Day 5:
How do you add 10 coins to a userâs account using ResourcesLib?
Write the correct code:
let coins = Libs.ResourcesLib.userRes("coins");
__;
Bot.sendMessage("You now have " + coins.value() + " coins!");
---
5ď¸âŁ Day 7:
How do you handle user inputs in multiple steps?
A) Use Bot.sendMessage() and Bot.runCommand() to link commands.
B) Use HTTP.get() for user responses.
C) Use Libs.CooldownLib to handle user input.
---
6ď¸âŁ Day 9:
Which method would you use to fetch data from an API?
A) HTTP.get()
B) Bot.sendMessage()
C) User.setProperty()
---
7ď¸âŁ Day 10:
What is a webhook used for in Bots.Business?
A) To track user points.
B) To receive real-time updates from external services.
C) To manage access to commands.
---
đŹ Post your answers below or send them directly! Letâs see how well youâve mastered the first 10 days! đ
Stay tuned for more exciting lessons, and keep pushing your bots to the next level! đDay 9: Harnessing the Power of Custom APIs â Connect Your Bot to the World! đ
Welcome to Day 9 of our journey! Today, weâre diving into the exciting world of Custom APIs, unlocking new dimensions of functionality for your bot. By leveraging APIs, you can enable your bot to interact with external systems, retrieving valuable data such as weather forecasts, stock market trends, and even integrating with a variety of third-party services.
---
âWhat Is an API?
An API (Application Programming Interface) serves as a bridge for communication between two systems, allowing them to exchange data seamlessly. With APIs at your disposal, your bot can:
⢠Fetch real-time information from the internet (e.g., current weather, trending news).
⢠Perform advanced functions like currency conversion or language translation.
⢠Send or retrieve data to and from external databases effortlessly.
---
âHow It Works in Bots.Business:
1ď¸âŁ Utilize
HTTP.get() or HTTP.post() to initiate API requests.
2ď¸âŁ Implement callback commands to handle and process the API responses.
3ď¸âŁ Parse and present the data using JavaScript for a dynamic user experience.
---
âExample 1: Fetching a Joke Using HTTP.get()
Letâs lighten the mood by fetching a joke from a free joke API.
Command 1: /getjoke
HTTP.get({
url: "https://official-joke-api.appspot.com/random_joke",
success: "/processjoke"
});
Command 2: /processjoke
let response = JSON.parse(content); // Parse the API response
let joke = response.setup + "\n" + response.punchline;
Bot.sendMessage("đ Hereâs a joke for you:\n" + joke);
---
âExample 2: Fetching Current Weather
Now, letâs check the weather for a specific city using OpenWeatherMapâs API.
Command 1: /getweather
Bot.sendMessage("Please enter the name of your city:");
Bot.runCommand("/fetchweather");
Command 2: /fetchweather
let city = message;
let apiKey = "your_openweathermap_api_key";
HTTP.get({
url: "https://api.openweathermap.org/data/2.5/weather?q=" + city + "&appid=" + apiKey + "&units=metric",
success: "/processweather"
});
Command 3: /processweather
let response = JSON.parse(content);
let temp = response.main.temp;
let description = response.weather[0].description;
Bot.sendMessage("đ¤ď¸ The current temperature in " + response.name + " is " + temp + "°C with " + description + ".");
---
âExample 3: Sending Data with HTTP.post()
Letâs see how to send user data to a third-party system using HTTP.post().
Command: /senddata
HTTP.post({
url: "https://example.com/api/save",
body: { user_id: user.telegramid, name: user.first_name },
success: "/dataresponse"
});
Callback Command: /dataresponse
Bot.sendMessage("â
Your data has been sent successfully!");
---
âError Handling
Always implement error handling when working with APIs to ensure a smooth user experience:
HTTP.get({
url: "https://api.example.com/data",
success: "/onsuccess",
error: "/onerror"
});
Command for Error Handling: /onerror
Bot.sendMessage("â Failed to fetch data. Please try again later.");
---
âAssignment:
1ď¸âŁ Create a command that fetches and displays random jokes using an API.
2ď¸âŁ Build a weather bot that retrieves and presents current weather information for any given city.
3ď¸âŁ Utilize HTTP.post() to send user data (e.g., name, ID) to an external API and confirm successful transmission.
---
Join us tomorrow for Day 10, where weâll explore webhooks and learn how to receive real-time updates from external services. Stay engaged and keep pushing the boundaries of what your bot can do! đDay 8: Advanced User Management â Personalize Your Bots! đ¤
Welcome to Day 8! Today, weâll dive into advanced user management techniques that empower your bot to store, retrieve, and utilize personalized data, enhancing interactivity and user engagement.
---
âWhy Manage Users?
User management allows your bot to:
⢠Remember user-specific details like name, age, preferences, or scores.
⢠Personalize responses based on stored data.
⢠Create features such as progress tracking or user-specific leaderboards.
---
âHow It Works:
1ď¸âŁ Use
User.setProperty() to store user-specific data.
2ď¸âŁ Use User.getProperty() to retrieve data later.
3ď¸âŁ Employ conditional logic to provide tailored responses.
---
âExamples:
â1. Save and Retrieve User Preferences
Save the user's favorite color and use it in future responses.
Command 1: /setcolor
Bot.sendMessage("Whatâs your favorite color?");
Bot.runCommand("/savecolor");
Command 2: /savecolor
User.setProperty("color", message, "string");
Bot.sendMessage("Got it! Your favorite color is " + message + ".");
Command 3: /getcolor
let color = User.getProperty("color");
if (color) {
Bot.sendMessage("Your favorite color is " + color + ".");
} else {
Bot.sendMessage("I donât know your favorite color yet. Use /setcolor to tell me!");
}
---
â2. Track and Display User Progress
Create a bot that tracks user points or achievements.
Command 1: /addpoints
let points = User.getProperty("points") || 0;
points += 10; // Add 10 points
User.setProperty("points", points, "integer");
Bot.sendMessage("Youâve earned 10 points! đ Total points: " + points);
Command 2: /checkpoints
let points = User.getProperty("points") || 0;
Bot.sendMessage("Your total points: " + points);
---
â3. Create User-Specific Access Levels
Grant admin privileges to certain users.
Command 1: /setadmin (for bot owner)
User.setProperty("isAdmin", true, "boolean");
Bot.sendMessage("This user is now an admin.");
Command 2: /checkadmin
let isAdmin = User.getProperty("isAdmin");
if (isAdmin) {
Bot.sendMessage("Welcome, Admin! You have full access.");
} else {
Bot.sendMessage("â You are not an admin.");
}
---
âAssignment:
1ď¸âŁ Create a user profile system that stores a userâs name, age, and favorite color. Use commands to retrieve and display this information.
2ď¸âŁ Track user-specific scores or points and display a message when they reach a milestone (e.g., 100 points).
3ď¸âŁ Build an access control system using user-specific admin roles to restrict certain commands.
---
Tomorrow, in Day 9, weâll explore custom APIs to connect your bot with external systems and services. Stay tuned and keep experimenting! đDay 7: Handling Dynamic User Inputs â Creating Interactive Bots! đŹ
Welcome to Day 7 of our exciting journey! Today, we're diving into the world of dynamic user inputs to transform your bot into a truly interactive assistant. With these new skills, your bot will be able to engage users by asking questions, collecting responses, and taking action based on their answers. Letâs get started! đ
---
âHow It Works:
1ď¸âŁ Ask a Question: Utilize
Bot.sendMessage() to prompt the user for information.
2ď¸âŁ Process the Response: Implement Bot.runCommand() to handle the user's reply in a subsequent command.
3ď¸âŁ Store or Validate Data: Use User.setProperty() to save responses for future use or validation.
---
âExamples:
1. Collect and Save User Data
Command 1: /askname
Bot.sendMessage("What is your name?");
Bot.runCommand("/savename");
Command 2: /savename
User.setProperty("name", message, "string");
Bot.sendMessage("Thank you, " + message + "! Your name has been successfully saved.");
---
2. Validate a Password
Prompt the user for a password and verify it:
let correctPassword = "botsbusiness";
if (message == correctPassword) {
Bot.sendMessage("â
Access granted! Welcome aboard!");
} else {
Bot.sendMessage("â Incorrect password. Please try again.");
}
---
3. Mini Calculator
Gather two numbers and perform addition:
let num1 = User.getProperty("num1");
let num2 = parseInt(message);
Bot.sendMessage("The sum of " + num1 + " and " + num2 + " is: " + (num1 + num2));
---
âAssignment:
1ď¸âŁ Build a User Registration System: Create a process to collect and save a userâs name and email address effectively.
2ď¸âŁ Create a Password Validator: Implement a system that grants or denies access based on user-provided passwords.
3ď¸âŁ Develop an Interactive Calculator: Design a calculator that can perform addition, subtraction, multiplication, and division based on user inputs.
---
âLooking Ahead:
Get ready for Day 8, where weâll explore user management and advanced bot logic! Keep practicing and enhancing your skills! đDay 6: Unlocking the Power of Advanced Libraries â Supercharge Your Bot! đ
Welcome to Day 6 of our thrilling 30-day learning adventure! đ Today, weâre diving deep into some of the most powerful libraries available in Bots.Business, designed to elevate your bot's functionality and intelligence. These tools will empower you to protect, organize, and expand your bot with ease and efficiency.
---
âLibraries Weâll Explore Today
1ď¸âŁ Guard Library (For Command Limitations)
2ď¸âŁ DatetimeFormatLib (Handling Dates and Times)
3ď¸âŁ ReferralLib (Building Referral Systems)
---
â1. Guard Library: Enforce Command Limits đĄď¸
The Guard Library enables you to manage how frequently users can access specific commands, ensuring a smoother user experience.
Example: Temporarily Block a Command for 5 Minutes
if (Libs.Guard.isBlocked()) {
Bot.sendMessage("â You can only use this command once every 5 minutes.");
return;
}
Libs.Guard.blockCommand(5 * 60); // Block for 5 minutes
Bot.sendMessage("â
Command executed successfully!");
---
â2. DatetimeFormatLib: Master Dates Times â°
This library simplifies the manipulation of dates and times in various formats, making it easy to present time-sensitive information to your users.
Example: Display the Current Date and Time
let currentDate = Libs.DatetimeFormat.format(new Date(), "dddd, MMMM DD YYYY, HH:mm:ss");
Bot.sendMessage("đ
Current Date and Time: " + currentDate);
---
â3. ReferralLib: Build an Engaging Referral Program đ
The Referral Library is your ticket to creating a robust referral system, allowing you to track user invitations and reward them accordingly.
Example: Reward Users for Referrals
let refUser = Libs.ReferralLib.getAttractedByUser();
if (refUser) {
let referrerCoins = Libs.ResourcesLib.anotherUserRes("coins", refUser.telegramid);
referrerCoins.add(10);
Bot.sendMessageToChatWithId(refUser.telegramid, "đ You earned 10 coins for referring a new user!");
}
Bot.sendMessage("â
Referral tracked successfully!");
---
âDay 6 Challenge đ
Put your newfound knowledge to the test with these exciting challenges:
1ď¸âŁ Set a Command Cooldown: Use the Guard Library to limit a command to be executed once every 10 minutes.
2ď¸âŁ Create a Countdown Timer: Utilize DatetimeFormatLib to display a countdown to a significant date (e.g., New Year).
3ď¸âŁ Implement a Referral Bonus: Leverage ReferralLib to reward users who successfully invite their friends.
---
âWhatâs Next?
Join us tomorrow as we explore dynamic user interactions that will make your bots even more engaging and interactive! Keep practicing, and remember to share your progress with the community! đŞâ¨âAssignment for Day 5 đ
1. Create a Coin System: đ°
Implement commands /addcoins, /checkcoins, and /spendcoins using ResourcesLib.
Bonus: Introduce a feature allowing users to gift coins to other users. đ
2. Set Up a Cooldown Command: âł
Create a command /dailybonus that grants users 50 coins but only once every 24 hours. đ
3. Create a Leaderboard: đ
Utilize TopBoardLib to track and display a leaderboard of user points. đ
Day 5: Introduction to Bots.Business Libraries
Welcome to Day 5 of the 30-Day Bots.Business JavaScript (BJS) Learning Session! Today, weâre diving into one of the most powerful features of Bots.Business: Libraries. These pre-built tools simplify the process of extending your botâs functionality and incorporating advanced features without the need to code everything from scratch.
---
What Are Bots.Business Libraries?
Libraries in Bots.Business consist of pre-designed scripts that offer specific features or tools for your bots. Rather than manually coding complex functionalities, you can leverage libraries to efficiently manage tasks such as user resource management, bot protection, or data synchronization with external applications.
---
Popular Libraries in Bots.Business
Here are some commonly utilized libraries youâll be working with:
1. ResourcesLib
This library assists in managing user resources like coins, points, energy, etc.
Example: Track how many virtual coins a user possesses.
2. Guard
This library safeguards your bot from spammers and abusive behaviors.
Example: Limit the frequency with which a command can be executed within a specified timeframe.
3. CooldownLib
This library establishes cooldown periods for commands.
Example: Prevent users from executing a command too frequently.
4. DatetimeFormatLib
This library formats and handles dates and times.
Example: Display the current date in a user-friendly format.
5. TopBoardLib
This library tracks leaderboards for competitive features.
Example: Showcase the top 10 users based on their points.
---
How to Use Libraries
Libraries come pre-installed in Bots.Business. To utilize one:
1. Include the library in your bot by adding its script at the top of your command.
2. Employ the libraryâs methods within your botâs code.
For instance, to utilize the ResourcesLib, you would write:
let resource = Libs.ResourcesLib.userRes("coins");
This code creates a resource called "coins" for each user.
---
Example 1: ResourcesLib (User Resources)
Letâs develop a system to manage virtual coins for users.
Command 1: /addcoins
Add coins to the userâs account:
let coins = Libs.ResourcesLib.userRes("coins");
coins.add(10); // Adds 10 coins
Bot.sendMessage("You have been given 10 coins! Total coins: " + coins.value());
Command 2: /checkcoins
Check the userâs current coin balance:
let coins = Libs.ResourcesLib.userRes("coins");
Bot.sendMessage("Your total coins: " + coins.value());
Command 3: /spendcoins
Spend coins if the user has enough:
let coins = Libs.ResourcesLib.userRes("coins");
if (coins.have(5)) {
coins.remove(5);
Bot.sendMessage("You spent 5 coins! Remaining coins: " + coins.value());
} else {
Bot.sendMessage("You donât have enough coins!");
}
---
Example 2: CooldownLib
Cooldowns ensure that users canât spam a command repeatedly.
Command: /claimreward
Allow users to claim a reward only once every 24 hours:
let cooldown = Libs.CooldownLib;
if (!cooldown.checkCooldown("daily_reward")) {
Bot.sendMessage("Youâve already claimed your reward today. Try again later.");
return;
}
cooldown.setCooldown("daily_reward", 24 * 60 * 60); // 24 hours in seconds
Bot.sendMessage("Youâve claimed your daily reward!");
---
Example 3: TopBoardLib (Leaderboard)
Create a leaderboard to track user scores.
Command 1: /addscore
Add a userâs score to the leaderboard:
let leaderboard = Libs.TopBoardLib;
leaderboard.addUser("game_scores", user.telegramid, 100); // Adds 100 points
Bot.sendMessage("Youâve been awarded 100 points!");
Command 2: /leaderboard
Show the top 5 users:
let leaderboard = Libs.TopBoardLib;
let top = leaderboard.getTop("game_scores", 5);
Bot.sendMessage("Top 5 Users:\n" + top);Day 4: Leveraging Conditions (if/else) in Bots.Business JavaScript
Welcome to Day 4 of the 30-Day Bots.Business JavaScript (BJS) Learning Session! So far, weâve explored commands, variables, and how to store user data. Today, weâre excited to elevate your bot-building skills by introducing conditions. With conditions, your bot can make informed decisions and respond differently based on user input or stored data.
---
âWhat Are Conditions?
Conditions enable your bot to evaluate specific scenarios and take appropriate actions. The most common way to implement conditions in BJS is through if/else statements.
---
âBasic Syntax
if (condition) {
// Code to execute if the condition is true
} else {
// Code to execute if the condition is false
}
---
âExample 1: Greeting Based on Userâs Name
Letâs create a command /checkname that checks whether the userâs name is stored and responds accordingly:
let name = User.getProperty("name");
if (name) {
Bot.sendMessage("Hello, " + name + "! Welcome back!");
} else {
Bot.sendMessage("I donât know your name yet. Please set it using /setname.");
}
---
âExample 2: Check User's Age
We can utilize conditions to assess a userâs age and provide tailored responses:
Command: /checkage
let age = User.getProperty("age");
if (!age) {
Bot.sendMessage("I don't know your age yet. Use /saveage to set it.");
} else if (age < 18) {
Bot.sendMessage("Youâre under 18! Some features might not be available.");
} else {
Bot.sendMessage("Youâre 18 or older! Enjoy all the features of this bot.");
}
---
âExample 3: Using Inputs Dynamically
Letâs implement a command that verifies if the user sends a specific input (e.g., a password):
Command: /checkpassword
let userPassword = "secret123"; // Define a password
if (message == userPassword) {
Bot.sendMessage("Access granted! â
");
} else {
Bot.sendMessage("Access denied! â Incorrect password.");
}
---
âNested Conditions
You can also nest if statements within one another for more complex logic. Hereâs an example:
let age = User.getProperty("age");
if (age) {
if (age < 18) {
Bot.sendMessage("Youâre under 18!");
} else {
Bot.sendMessage("Youâre 18 or older!");
}
} else {
Bot.sendMessage("I donât know your age yet. Use /saveage to set it.");
}
---
âAssignment for Day 4
1ď¸âŁ Create a command /checkaccess:
Utilize a stored variable (e.g., User.getProperty("isAdmin")) to determine if a user is an admin or not.
⢠If the user is an admin, send:
"Welcome, Admin! You have full access."
⢠Otherwise, send:
"Access denied! You are not an admin."
2ď¸âŁ Create a command /testscore:
Prompt the user for a test score and respond based on the value:
⢠If the score is 80 or above, reply:
"Great job! You passed!"
⢠If the score is below 80, reply:
"Keep trying! You can do better!"
3ď¸âŁ Bonus Challenge:
Develop a bot that asks for a userâs favorite number.
⢠If the number is divisible by 2, respond:
"Thatâs an even number!"
⢠If itâs not, respond:
"Thatâs an odd number!"
---
âWhatâs Next?
In Day 5, weâll delve into Bots.Business Libraries and discover how to enhance your botâs functionality with pre-built tools such as ResourcesLib, Guard, and more. Keep practicing, and donât forget to test your bot commands! đ3ď¸âŁ What will this code do?
let count = User.getProperty("interaction_count") || 0;
count += 1;
User.setProperty("interaction_count", count, "number");
Bot.sendMessage("Youâve interacted " + count + " times!");2ď¸âŁ How do you save a userâs name in a variable?
1ď¸âŁ What will this script do?
Bot.sendMessage("Hello, " + user.first_name + "!");Hey learners! đ
You've completed 3 days of the Bots.Business learning session. It's time to put your knowledge to the test! đŞ
âDay 3: Using Variables in Bots.Business JavaScript (BJS)
Welcome to Day 3! Today, weâll dive deeper into using variables in your bot to enhance its interactivity and personalization.
---
âWhat Are Variables?
Variables are essential components in programming that allow you to store and manage data. In the context of Bots.Business JavaScript, variables can help you:
⢠Remember user-specific information: such as names, ages, and preferences.
⢠Track statistics: like the number of interactions or scores.
⢠Pass data between commands.
You can store various types of data in variables, including strings (text), numbers, and more.
---
âHow to Use Variables in BJS
1. Declaring a Variable
To create a variable and assign it a value:
let myVariable = "Hello, World!";
2. Using a Variable
You can use the variable to send messages or perform actions:
Bot.sendMessage(myVariable);
3. Modifying a Variable
To change the value of a variable:
let myVariable = "Goodbye, World!";
---
âWorking with User-Specific Variables
In Bots.Business, user-specific data is often managed using User.setProperty and User.getProperty methods.
âStoring Data: User.setProperty()
To store user-specific data:
User.setProperty("key", value, "string");
⢠key: Unique identifier (e.g., "name", "age").
⢠value: The data to store (e.g., "John", 25).
⢠type: The type of data (e.g., "string", "number", "boolean").
Example:
User.setProperty("name", "John", "string");
âRetrieving Data: User.getProperty()
To retrieve stored data:
let name = User.getProperty("name");
Bot.sendMessage("Your name is: " + name);
---
âExample: Storing and Using a Name
Letâs create two commands: /setname to store the userâs name and /getname to retrieve it.
1. Command: /setname
// Assume user input is captured in userInput
User.setProperty("name", userInput, "string"); // Replace userInput with actual input
Bot.sendMessage("Your name has been saved!");
2. Command: /getname
let name = User.getProperty("name");
Bot.sendMessage("Your saved name is: " + name);
---
âExample: Counting User Interactions
You can track how many times a user interacts with your bot using variables.
1. Command: /interact
let count = User.getProperty("interaction_count") || 0; // Default to 0 if not set
count += 1;
User.setProperty("interaction_count", count, "number");
Bot.sendMessage("You have interacted with this bot " + count + " times!");
---
âAssignment for Day 3
1. Create a command /saveage that asks the user for their age and stores it in a variable.
⢠Hint: Use User.setProperty("age", userInput, "number");.
2. Create a command /getage that retrieves and displays the saved age.
⢠Hint: Use User.getProperty("age");.
3. Bonus Challenge:
⢠Create a command /reset that clears the saved age and interaction count.
⢠Hint: Use User.setProperty("key", null); to reset a variable.
---
âWhatâs Next?
In Day 4, we will explore conditions (if/else statements) and how to make your bot respond differently based on user input or stored variables. Keep practicing what youâve learned today, and feel free to share your progress! Happy coding!To add both the first name and last name in the message, you can modify the code as follows:
Bot.sendMessage("Hi, " + user.first_name + " " + user.last_name + "! Nice to meet you.");
By adding user.last_name next to user.first_name with a space in between, you will include both the first name and last name in the greeting message. This code will now address the user by their first name and last name, making the message more personalized.âDay 2: Bot Commands and Responses đ
Welcome to Day 2 of the 30-Day Bots.Business JavaScript (BJS) Learning Session! đ Yesterday, we covered the basics of Bots.Business and created a simple bot with a /start command. Today, weâll dive deeper into commands and learn how to make your bot respond to user input dynamically. đŹ
---
âWhat Are Commands? â
In Bots.Business, commands are the backbone of your bot. Each command is a specific trigger that tells your bot how to respond when a user sends a particular message. Commands can have predefined text responses or JavaScript code for more dynamic actions. âď¸
---
âHow to Create Commands đ ď¸
1. Step 1: Open the Command Editor
Go to your botâs Commands section in the Bots.Business dashboard. đ
2. Step 2: Add a New Command
Create a new command by typing its name (e.g., /info, /help). âď¸
Add the response or JavaScript code you want the bot to execute when the command is triggered. đ
3. Step 3: Save and Test
Save the command and test it in Telegram by typing the command in your bot's chat. đą
---
âStatic Response Example đ
Letâs create a simple command called
/help that responds with a static message:
⢠Command Name: /help
⢠Response: "Welcome to the help section! Use /start to begin or /info to learn more about me." đ
When a user types /help, the bot will reply with this predefined text.
---
âDynamic Response Example Using JavaScript đť
You can use JavaScript to make responses more dynamic. For example, letâs create a /greet command that uses the userâs name to greet them:
Bot.sendMessage("Hello, " + user.first_name + "! How can I assist you today?");
⢠Create a command /greet in the Command Editor. â¨
⢠Add the above script to the command.
⢠Save and test it by typing /greet in your botâs chat. â
If the userâs first name is John, the bot will reply:
"Hello, John! How can I assist you today?" đ
---
âHandling Custom Inputs đ¨
You can also create commands to handle inputs from users. For instance, letâs create a /ask command that prompts the user for their favorite color:
Bot.sendMessage("Whatâs your favorite color?");
To handle the userâs reply, you can create another command to capture their response. For example:
Bot.sendMessage("Nice choice! I love that color too.");
---
âAssignment for Day 2 đ
1. Create a command /about with the static response:
"This is a demo bot created with Bots.Business JavaScript. Stay tuned for more!" đ
2. Create a dynamic command /myname that replies with the userâs name. Use this script:
Bot.sendMessage("Hi, " + user.first_name + "! Nice to meet you.");
3. Optional Challenge:
Create a command /askcolor that asks the user their favorite color and responds dynamically to their input. (Hint: Use a callback command to handle the input.) đŻ
---
âWhatâs Next? đŽ
Tomorrow, in Day 3, weâll explore Variables in Bots.Business JavaScript. Variables will allow us to store and manipulate user data to create more personalized and interactive bots. Keep practicing and experimenting! đŞWhat is the correct way to make your bot send a "Hello!" message when the user types /hello?
