TPY Data Management and Storage
User Properties
TPY provides built-in functions to store and retrieve user-specific data. This data persists across sessions, allowing you to create personalized experiences.
Setting User Properties
// Store different types of data
User.setProperty("username", "john_doe"); // String
User.setProperty("age", 25); // Number
User.setProperty("is_premium", true); // Boolean
User.setProperty("preferences", {theme: "dark", lang: "en"}); // Object
User.setProperty("last_login", Date.now()); // Timestamp
Getting User Properties
// Retrieve stored data
var username = User.getProperty("username");
var age = User.getProperty("age");
var isPremium = User.getProperty("is_premium");
var preferences = User.getProperty("preferences");
if (preferences) {
bot.sendMessage("Your theme: " + preferences.theme);
}
Checking if Properties Exist
if (User.getProperty("first_visit") === null) {
// First time user
User.setProperty("first_visit", Date.now());
bot.sendMessage("Welcome! Thanks for your first visit.");
} else {
var visits = User.getProperty("visit_count") || 0;
User.setProperty("visit_count", visits + 1);
bot.sendMessage("Welcome back! This is your " + (visits + 1) + " visit.");
}
Working with Complex Data
Store and manipulate complex data structures like arrays and objects:
// Store user's favorite items
var favorites = User.getProperty("favorites") || [];
favorites.push(itemId);
User.setProperty("favorites", favorites);
// Store user settings
var settings = User.getProperty("settings") || {
notifications: true,
language: "en",
theme: "light"
};
settings.theme = "dark";
User.setProperty("settings", settings);
Data Expiration and Cleanup
Implement data expiration for temporary information:
// Store with timestamp
User.setProperty("temp_code", {
value: verificationCode,
expires: Date.now() + 3600000 // 1 hour
});
// Check expiration when retrieving
var tempData = User.getProperty("temp_code");
if (tempData && tempData.expires > Date.now()) {
// Data is still valid
bot.sendMessage("Your code: " + tempData.value);
} else {
// Data expired or doesn't exist
User.setProperty("temp_code", null); // Clean up
bot.sendMessage("Code expired. Please request a new one.");
}
User Session Management
Manage user sessions and state for multi-step interactions:
// Set user state
User.setProperty("current_state", "awaiting_email");
// In another command, check the state
var state = User.getProperty("current_state");
if (state === "awaiting_email") {
var email = request.text;
if (isValidEmail(email)) {
User.setProperty("user_email", email);
User.setProperty("current_state", null); // Clear state
bot.sendMessage("Email saved! Thank you.");
} else {
bot.sendMessage("Please enter a valid email address.");
}
}
Learn More
For advanced data management techniques, visit:
🔗 Telebot Creator Documentation
Data Privacy
Always inform users about what data you collect and how you use it. Implement data deletion functionality to comply with privacy regulations.
📚 Source
This tutorial is based on the official Telebot Creator Documentation. Visit their site for the most up-to-date information and advanced guides.