-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
242 lines (226 loc) · 13.3 KB
/
Copy pathindex.html
File metadata and controls
242 lines (226 loc) · 13.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
<html lang="fa" dir="rtl"><head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="پایروبله - کتابخانه مدرن پایتون برای ساخت رباتهای پیامرسان بله. ساخت بات بله با پایتون به سادگی و سرعت بالا.">
<meta name="keywords" content="بات بله, ساخت بات بله, ربات بله, پایتون, کتابخانه پایتون, پیامرسان بله, PyRoBale, پایروبله, کتابخانه بله">
<title>پایروبله - کتابخانه پایتون برای ساخت رباتهای بله</title>
<link rel="icon" type="image/png" href="/favicon.png">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<header>
<div class="container">
<nav>
<div class="logo">
<img src="/logo.png" width="50px">
<p>پایروبله</p>
</div>
<ul class="nav-links">
<li><a href="https://docs.pyrobale.ir">مستندات</a></li>
<li><a href="https://github.com/pyrobale/pyrobale">گیتهاب</a></li>
<li><a href="/team">تیم توسعه</a></li>
</ul>
<div class="mobile-menu">
<i class="fas fa-bars"></i>
</div>
</nav>
</div>
</header>
<main>
<section class="hero" id="home">
<div class="container">
<div class="hero-content fade-in">
<h1>یک قدم تا ساخت بات بله</h1>
<p>پایروبله - کتابخانه مدرن پایتون برای ساخت رباتهای پیامرسان بله با سادگی و قدرت بینظیر</p>
<div style="display: flex; gap: 15px; justify-content: center; flex-wrap: wrap;">
<a href="http://docs.pyrobale.ir" class="btn btn-primary">
<i class="fas fa-play"></i>
شروع کنید
</a>
<a href="https://github.com/pyrobale/pyrobale" class="btn">
<i class="fab fa-github"></i>
گیتهاب
</a>
</div>
</div>
</div>
</section>
<section class="code-preview" id="code">
<div class="container">
<center><h2 class="section-title">یک نمونه ساده</h2></center>
<p style="text-align: center; margin-bottom: 20px; max-width: 700px; margin-left: auto; margin-right: auto;">با چند خط کد ساده، اولین ربات خود را بسازید. این کد یک ربات ساده میسازد که پیامهای کاربر را به خودش برمیگرداند (اکو میکند).</p>
<div class="code-container fade-in">
<div class="code-header">
<div class="code-title">bot.py</div>
<div class="code-actions">
<button class="code-action" title="کپی کردن">
<i class="far fa-copy"></i>
</button>
</div>
</div>
<div class="code-content">
<code>from pyrobale.client import Client
from pyrobale.objects import Message
client = Client("YOUR_BOT_TOKEN")
@client.on_message()
async def message_handler(message: Message):
await message.reply(message.text)
client.run()</code>
</div>
<div class="code-explanation">
<p><strong>توضیح کد:</strong> این کد یک ربات ساده ایجاد میکند که به تمام پیامهای دریافتی پاسخ میدهد و متن پیام را به کاربر بازمیگرداند.
<br>
<a href="https://github.com/pyrobale/pyrobale/tree/main/examples" style="color: yellow">مشاهده مثال های بیشتر</a></p>
</div>
</div>
</div>
</section>
<section class="features" id="features">
<div class="container">
<center><h2 class="section-title">ویژگیهای پایروبله</h2></center>
<div class="features-grid">
<div class="feature-card fade-in">
<div class="feature-icon">🚀</div>
<h3>سریع و کارآمد</h3>
<p>بر پایه async/await ساخته شده و عملکرد بالایی در پردازش پیامهای متعدد دارد</p>
</div>
<div class="feature-card fade-in">
<div class="feature-icon">🔓</div>
<h3>متنباز (Open Source)</h3>
<p>کاملاً متنباز و تحت پروانه MIT برای استفاده و توسعه آزاد</p>
</div>
<div class="feature-card fade-in">
<div class="feature-icon">📈</div>
<h3>توسعه فعال</h3>
<p>تیم توسعه فعال و بهروزرسانیهای منظم با ویژگیهای جدید</p>
</div>
<div class="feature-card fade-in">
<div class="feature-icon">💎</div>
<h3>مدرن و بهروز</h3>
<p>استفاده از جدیدترین قابلیتهای Python و بهترین روشهای توسعه</p>
</div>
<div class="feature-card fade-in">
<div class="feature-icon">🛡️</div>
<h3>قابل اعتماد</h3>
<p>مدیریت خطای هوشمند و پایداری بالا در شرایط مختلف</p>
</div>
<div class="feature-card fade-in">
<div class="feature-icon">📚</div>
<h3>مستندسازی کامل</h3>
<p>راهنمای جامع و مثالهای عملی برای شروع سریع</p>
</div>
</div>
</div>
</section>
<section class="faq" id="faq">
<div class="container">
<center><h2 class="section-title">سوالات متداول</h2></center>
<div class="faq-list">
<div class="faq-item">
<div class="faq-question">
چرا پایروبله را انتخاب کنم؟
<i class="fas fa-chevron-down"></i>
</div>
<div class="faq-answer">
<p>پایروبله یک کتابخانه مدرن و بهینهشده برای ساخت رباتهای بله است که با پایتون نوشته شده. این کتابخانه با معماری async/await عملکرد بالایی دارد و API سادهای ارائه میدهد که توسعه رباتهای پیچیده را آسان میکند. همچنین کاملاً متنباز است و تحت پروانه MIT منتشر میشود.</p>
</div>
</div>
<div class="faq-item">
<div class="faq-question">
آیا پایروبله رایگان است؟
<i class="fas fa-chevron-down"></i>
</div>
<div class="faq-answer">
<p>بله، پایروبله کاملاً رایگان و متنباز است و تحت پروانه MIT منتشر میشود. شما میتوانید از آن برای پروژههای شخصی و تجاری استفاده کنید، کد منبع را تغییر دهید و حتی در توسعه آن مشارکت کنید.</p>
</div>
</div>
<div class="faq-item">
<div class="faq-question">
چگونه میتوانم مشارکت کنم؟
<i class="fas fa-chevron-down"></i>
</div>
<div class="faq-answer">
<p>شما میتوانید از طریق گیتهاب پروژه در توسعه آن مشارکت کنید یا در فروم پایروبله سوالات و پیشنهادات خود را مطرح نمایید. همچنین میتوانید با گزارش باگها، پیشنهاد ویژگیهای جدید یا بهبود مستندات به پروژه کمک کنید.</p>
</div>
</div>
<div class="faq-item">
<div class="faq-question">
آیا مستندات کاملی وجود دارد؟
<i class="fas fa-chevron-down"></i>
</div>
<div class="faq-answer">
<p>بله، پایروبله دارای مستندات کامل و جامع است که شامل راهنمای نصب، آموزشهای گام به گام و مثالهای متعدد میشود. مستندات به طور منظم بهروزرسانی میشوند و پاسخگوی نیازهای توسعهدهندگان در سطوح مختلف هستند.</p>
</div>
</div>
<div class="faq-item">
<div class="faq-question">
چه ویژگیهای جذابی دارد؟
<i class="fas fa-chevron-down"></i>
</div>
<div class="faq-answer">
<p>پایروبله دارای ویژگیهای متعددی از جمله پشتیبانی از تمامی متدهای API بله، مدیریت session، قابلیت توسعه ماژولار، سیستم middleware، پشتیبانی از فایلها و رسانهها، و ابزارهای دیباگ است. همچنین از آخرین ویژگیهای پایتون مانند type hints بهره میبرد.</p>
</div>
</div>
</div>
</div>
</section>
</main>
<footer>
<div class="container">
<div class="footer-content">
<div class="footer-logo">پایروبله</div>
<p>کتابخانه مدرن پایتون برای ساخت رباتهای پیامرسان بله</p>
<div class="footer-links">
<a href="https://forum.pyrobale.ir">
<i class="fas fa-users"></i>
فروم
</a>
<a href="https://github.com/pyrobale/pyrobale">
<i class="fab fa-github"></i>
گیتهاب
</a>
<a href="https://docs.pyrobale.ir">
<i class="fas fa-book"></i>
مستندات
</a>
</div>
</div>
</div>
</footer>
<script>
document.querySelector('.mobile-menu').addEventListener('click', function() {
document.querySelector('.nav-links').classList.toggle('active');
});
document.querySelectorAll('.faq-question').forEach(question => {
question.addEventListener('click', () => {
const item = question.parentElement;
item.classList.toggle('active');
});
});
document.querySelector('.code-action').addEventListener('click', function() {
const code = document.querySelector('.code-content code').textContent;
navigator.clipboard.writeText(code).then(() => {
const originalIcon = this.innerHTML;
this.innerHTML = '<i class="fas fa-check"></i>';
setTimeout(() => {
this.innerHTML = originalIcon;
}, 2000);
});
});
const observerOptions = {
threshold: 0.1,
rootMargin: '0px 0px -50px 0px'
};
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('fade-in');
}
});
}, observerOptions);
document.querySelectorAll('.feature-card, .code-container, .developer-card').forEach(el => {
observer.observe(el);
});
</script>
</body></html>