-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
239 lines (219 loc) · 12.7 KB
/
main.py
File metadata and controls
239 lines (219 loc) · 12.7 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
# main.py
import os
from dotenv import load_dotenv
load_dotenv()
import logging
import random
from telegram import Update, ReplyKeyboardMarkup
from telegram.ext import ApplicationBuilder, CommandHandler, MessageHandler, filters, ContextTypes
# ---------------------------------------------------------------------
# Logging configuration
# ---------------------------------------------------------------------
logging.basicConfig(
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
level=logging.INFO,
)
logger = logging.getLogger(__name__)
# ---------------------------------------------------------------------
# Load bot token from environment
# ---------------------------------------------------------------------
BOT_TOKEN = os.getenv("BOT_TOKEN")
if not BOT_TOKEN:
raise RuntimeError("BOT_TOKEN is not set. Please define it in your .env file.")
# ---------------------------------------------------------------------
# Message content
# ---------------------------------------------------------------------
jokes = [
"رژیم گرفتم، یخچال گفت غلط کردی.",
"به خوابم گفتم بیا، گفت فردا تماس میگیرم.",
"اونقدر تنبلم که اگه پول رو زمین باشه، اول فکر میکنم ارزش خم شدن داره یا نه.",
"رفتم ورزش، بدنم گفت شوخی میکنی؟",
"به خودم گفتم تمرکز کن، مغزم رفت چایی بریزه.",
"اعصابم انقدر خورده که اگه ساکت بشم، خطرناکم.",
"برنامهریزی کردم زود بخوابم، گوشیم مخالفت کرد.",
"اونقدر حواسم پرته که رمز کارت خودمو اشتباه میزنم.",
"به آینه نگاه کردم، گفت آمادهای حقیقتو بشنوی؟",
"خواستم مثبتاندیش باشم، قبض اومد.",
"اونقدر خستم که نشستم استراحت کنم، خوابم برد.",
"به خودم گفتم بجنب، گفت عجله نکن هنوز جوونیم.",
"انقدر تنبلم که حتی تنبلیمو انداختم فردا.",
"رفتم زود بخوابم، مغزم خاطرات سال ۸۶ رو پخش کرد.",
"حافظهم انقدر ضعیفه که میرم یه چیزی بیارم، خودمو گم میکنم.",
"به ساعت نگاه کردم، گفت باز تو؟",
"اونقدر فکر کردم، مغزم هنگ کرد.",
"شروع کردم کار کنم، دیدم گوشی دستمه.",
"به خودم انگیزه دادم، گفت حوصله ندارم.",
"انقدر گشنه بودم که یخچالو با احترام باز کردم.",
"به زندگی لبخند زدم، گفت نخند جدی باش.",
"خواستم آدم منظمی باشم، نامنظم شروع شد.",
"اونقدر حواسم پرته که اعلانهامم گیج شدن.",
"به خواب ظهر گفتم کوتاه باش، شب شد.",
"اعتماد به نفسم اونقدره که اشتباه میکنم با اعتماد.",
"به مغزم گفتم آروم باش، گفت الان وقتشه؟",
"رفتم تمرکز کنم، افکار صف بستن.",
"اونقدر خستم که حتی خستگی هم خستهست.",
"خواستم زود تموم کنم، شروعش سخت بود.",
"به خودم قول دادم عوض شم، خودم خندید.",
"انقدر کار دارم که هیچکدومو انجام نمیدم.",
"رفتم چیزی یادم بیاد، یادم رفت چی بود.",
"به آینده فکر کردم، آینده seen کرد.",
"اونقدر تنش دارم که چایم هم میلرزه.",
"شروع کردم به تلاش، حواسم پرت شد.",
"به خواب شب گفتم بیا، گفت شیفت شبم.",
"اونقدر حواسم پرته که تمرکز ازم شکایت کرده.",
"به خودم گفتم آخرین باره، دروغ گفتم.",
"اعصابم انقدر ضعیفه که با نوتیفیکیشن میریزه.",
"خواستم مفید باشم، نشد.",
"به مغزم گفتم همکاری کن، گفت فردا.",
"اونقدر فکر کردم، هیچی نشد.",
"رفتم استراحت کنم، خستهتر شدم.",
"به ساعت زنگدار گفتم چرا داد میزنی؟ گفت وظیفهمه.",
"اونقدر حواسم پرته که خودمم برام نوتیفیکیشن میفرستم.",
"شروع قوی داشتم، ادامه ندادم.",
"به زندگی برنامه دادم، خندید.",
"اونقدر خستم که نشستم، دیگه بلند نشدم."
]
motivations = [
"پیشرفت از بینقص بودن مهمتر است.",
"قدمهای کوچک هم تو را جلو میبرند.",
"تداوم، شتاب میسازد.",
"انضباط از انگیزه ماندگارتر است.",
"الان شروع کن، بعداً اصلاحش کن.",
"تلاشت در طول زمان جمع میشود.",
"روی چیزهایی تمرکز کن که کنترلشان دست توست.",
"انجامشده بهتر از کامل است.",
"تواناییات بیشتر از چیزی است که فکر میکنی.",
"اقدام، اعتمادبهنفس میسازد.",
"حتی در روزهای سخت هم حاضر باش.",
"رشد بیرون از منطقه امن شروع میشود.",
"یا یک روز، یا روز اول؛ انتخاب با توست.",
"اول متعهد شو، بعد راهش را پیدا کن.",
"شفافیت از عمل بهدست میآید.",
"حرکت، شتاب میآورد.",
"آیندهات، تلاش امروزت را پاداش میدهد.",
"نتیجه، دنبالِ پافشاری میآید.",
"امروز فقط یک درصد بهتر شو.",
"چالشها، تواناییها را تیز میکنند.",
"به مسیر اعتماد کن.",
"آنچه تمرین میکنی، رشد میکند.",
"هیچ پیشرفتی هدر نمیرود.",
"تمرکز، نتیجه میسازد.",
"با انجام دادن یاد میگیری.",
"قدرت از تکرار میآید.",
"تلاش باعث میشود استعداد دیده شود.",
"مسیر مهمتر از سرعت است.",
"عادتها، نتیجهها را شکل میدهند.",
"در حال ساختن چیزی ارزشمند هستی.",
"از همانجایی که هستی شروع کن.",
"انرژی از تعهد میآید.",
"هر قدم حساب میشود.",
"پیشرفت را به راحتی ترجیح بده.",
"کارت در نهایت جمع میشود.",
"پشتکار سود میدهد.",
"صبور و پیگیر بمان.",
"هدفمند عمل کن.",
"بهترینِ امروزت کافی است.",
"به جلو حرکت کن.",
"اعتمادبهنفس ساخته میشود، پیدا نمیشود.",
"پیشرفت، انگیزه میآورد.",
"کار را مداوم انجام بده.",
"از آنچه فکر میکنی نزدیکتری.",
"تلاش، فرصت میسازد.",
"تمرکز از شدت مهمتر است.",
"به مسیر بلندمدت متعهد بمان.",
"تلاش روزانه نتیجه را تغییر میدهد.",
"شتاب بساز، نه بهانه.",
"در حال قویتر شدن هستی."
]
productivity_tips = [
"روزت را با یک اولویت مشخص شروع کن.",
"سه کار اصلی روزت را بنویس.",
"کارهای بزرگ را به قدمهای کوچکتر تقسیم کن.",
"حواسپرتیهای واضح را حذف کن.",
"برای شروع کار زمان مشخص تعیین کن.",
"از یک فهرست کارهای ساده استفاده کن.",
"هر بار روی یک کار تمرکز کن.",
"کارهای مشابه را با هم انجام بده.",
"جلسههای کاری کوتاه و متمرکز داشته باش.",
"وقفههای کوتاه و منظم بگیر.",
"قبل از پایان امروز، فردا را برنامهریزی کن.",
"محیط کارت را مرتب نگه دار.",
"اعلانهای غیرضروری را خاموش کن.",
"در ساعتهایی کار کن که بیشترین انرژی را داری.",
"مشخص کن «تمامشدن» یعنی چه.",
"هدفهای روزانه واقعبینانه تعیین کن.",
"با سختترین کار شروع کن.",
"برای حفظ تمرکز از تایمر استفاده کن.",
"در صورت امکان جلسات را محدود کن.",
"همهچیز موردنیاز را از قبل آماده کن.",
"در پایان روز پیشرفتت را مرور کن.",
"از چندکارگی پرهیز کن.",
"روتینهای ساده بساز.",
"در تصمیمهای کوچک سریع تصمیم بگیر.",
"ردیابی کن زمانت کجا صرف میشود.",
"ایمیلها و پیامها را دستهبندی و زمانبندی کن.",
"به کارهای کمارزش «نه» بگو.",
"کارهای تکراری را تا حد امکان خودکار کن.",
"اطلاعات مهم را در دسترس نگه دار.",
"برای کارهای تکراری چکلیست داشته باش.",
"روی نتیجه تمرکز کن، نه شلوغی.",
"حتی برای خودت هم ضربالاجل تعیین کن.",
"تعویض مداوم کارها را کاهش بده.",
"در محیطهای آرام یا متمرکز کار کن.",
"قبل از شروع، انتظارات را شفاف کن.",
"شبکههای اجتماعی را در ساعات کاری محدود کن.",
"کارهای سریع را در صورت امکان همانلحظه انجام بده.",
"اولویتها را هفتگی مرور کن.",
"قبل از رفتن سراغ کار بعدی، قبلی را کامل تمام کن.",
"یک سیستم واحد و قابل اعتماد برای کارهایت داشته باش.",
"به اندازه کافی استراحت کن تا مؤثر بمانی.",
"هرجا میشود فرایندها را ساده کن.",
"میانبرهای صفحهکلید را برای کارهای رایج یاد بگیر.",
"در صورت امکان تفویض اختیار کن.",
"اهدافت را جلوی چشم نگه دار.",
"حتی وقتی انگیزه کم است، کار را شروع کن.",
"از کمالگرایی دوری کن.",
"تبها و برنامههای بلااستفاده را ببند.",
"آنچه جواب میدهد را مرور کن و اصلاح کن.",
"از زمان تمرکز بدون وقفه محافظت کن."
]
# ---------------------------------------------------------------------
# Handlers
# ---------------------------------------------------------------------
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
keyboard = [
["جوک بگو بهم"],
["به من انگیزه بده"],
["هر بار روی یک کار تمرکز کن"],
]
reply_markup = ReplyKeyboardMarkup(
keyboard=keyboard,
resize_keyboard=True,
one_time_keyboard=False,
)
await update.message.reply_text(
"Welcome. Choose one of the options below.",
reply_markup=reply_markup,
)
async def handle_buttons(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
text = update.message.text
if text == "جوک بگو بهم":
response = random.choice(jokes)
elif text == "به من انگیزه بده":
response = random.choice(motivations)
elif text == "هر بار روی یک کار تمرکز کن":
response = random.choice(productivity_tips)
else:
response = "Please use the buttons to choose an option."
await update.message.reply_text(response)
# ---------------------------------------------------------------------
# Main entry point
# ---------------------------------------------------------------------
def main() -> None:
application = ApplicationBuilder().token(BOT_TOKEN).build()
application.add_handler(CommandHandler("start", start))
application.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_buttons))
logger.info("Bot is starting...")
application.run_polling()
if __name__ == "__main__":
main()