From bc6a3c581f923dfa608449aba797e3005336e1dc Mon Sep 17 00:00:00 2001 From: root Date: Tue, 1 Jul 2025 23:56:42 +0330 Subject: [PATCH] remove somthings --- .../TelegramBot/GettingStarted.md | 172 --------------- .../TelegramBot/LocalTelegramBotServer.md | 41 ---- .../TelegramBot/WebHooks.md | 53 ----- .../db.sqlite3 => Linux/LPIC1/12-grep.md | 0 .../__init__.py => Linux/LPIC1/13-less.md | 0 .../LPIC1/14-head-tail.md | 0 Linux/LPIC1/15-wc.md | 0 .../info/__pycache__/__init__.cpython-39.pyc | Bin 134 -> 0 bytes .../__pycache__/serializers.cpython-39.pyc | Bin 973 -> 0 bytes .../info/__pycache__/urls.cpython-39.pyc | Bin 349 -> 0 bytes .../info/__pycache__/views.cpython-39.pyc | Bin 1635 -> 0 bytes .../Django/info/admin.py | 3 - .../Django/info/apps.py | 6 - .../Django/info/models.py | 3 - .../Django/info/serializers.py | 24 -- .../Django/info/tests.py | 3 - .../Django/info/urls.py | 7 - .../Django/info/views.py | 34 --- Web Development & Frameworks/Django/manage.py | 22 -- .../Django/sys_info.md | 40 ---- Web Development & Frameworks/nginx/Laravel.md | 153 ------------- Web Development & Frameworks/nginx/django.md | 206 ------------------ Web Development & Frameworks/nginx/dotnet.md | 114 ---------- 23 files changed, 881 deletions(-) delete mode 100755 Bots & Automation Tools/TelegramBot/GettingStarted.md delete mode 100755 Bots & Automation Tools/TelegramBot/LocalTelegramBotServer.md delete mode 100755 Bots & Automation Tools/TelegramBot/WebHooks.md rename Web Development & Frameworks/Django/db.sqlite3 => Linux/LPIC1/12-grep.md (100%) mode change 100755 => 100644 rename Web Development & Frameworks/Django/info/__init__.py => Linux/LPIC1/13-less.md (100%) mode change 100755 => 100644 rename Web Development & Frameworks/Django/info/migrations/__init__.py => Linux/LPIC1/14-head-tail.md (100%) mode change 100755 => 100644 create mode 100644 Linux/LPIC1/15-wc.md delete mode 100755 Web Development & Frameworks/Django/info/__pycache__/__init__.cpython-39.pyc delete mode 100755 Web Development & Frameworks/Django/info/__pycache__/serializers.cpython-39.pyc delete mode 100755 Web Development & Frameworks/Django/info/__pycache__/urls.cpython-39.pyc delete mode 100755 Web Development & Frameworks/Django/info/__pycache__/views.cpython-39.pyc delete mode 100755 Web Development & Frameworks/Django/info/admin.py delete mode 100755 Web Development & Frameworks/Django/info/apps.py delete mode 100755 Web Development & Frameworks/Django/info/models.py delete mode 100755 Web Development & Frameworks/Django/info/serializers.py delete mode 100755 Web Development & Frameworks/Django/info/tests.py delete mode 100755 Web Development & Frameworks/Django/info/urls.py delete mode 100755 Web Development & Frameworks/Django/info/views.py delete mode 100755 Web Development & Frameworks/Django/manage.py delete mode 100755 Web Development & Frameworks/Django/sys_info.md delete mode 100755 Web Development & Frameworks/nginx/Laravel.md delete mode 100755 Web Development & Frameworks/nginx/django.md delete mode 100755 Web Development & Frameworks/nginx/dotnet.md diff --git a/Bots & Automation Tools/TelegramBot/GettingStarted.md b/Bots & Automation Tools/TelegramBot/GettingStarted.md deleted file mode 100755 index 14d5501..0000000 --- a/Bots & Automation Tools/TelegramBot/GettingStarted.md +++ /dev/null @@ -1,172 +0,0 @@ -# کد نویسی برای بات تلگرام -ربات **تلگرام** (**telegram** bot) یک نوع حساب کاربری ویژه در **تلگرام** است که به صورت اتوماتیک پیام ها را ارسال و دریافت می نماید . کاربران از طریق ارسال دستورات گوناگون با ربات ها در ارتباط هستند و امکان مدیریت ربات ها از طریق API **تلگرام** و درخواست های HTTPS وجود دارد . عبارت bot برای ربات ها نمایش داده می شود. - -## ساخت بات با BotFather -اولین مرحله برای کد نویسی بات تلگرام ساختن بات است. از طریق [BotFather](https://telegram.me/BotFather) بات را خواهیم ساخت. پیام `start/` را در BotFather وارد کنید سپس روی **newbot - create a new bot/** کلیک کنید. بعد از مشاهده پیام **Alright, a new bot. How are we going to call it? Please choose a name for your bot.** یک اسم برای بات خود وارد کنید. -سپس بعد از مشاهده پیام **Good. Now let's choose a username for your bot. It must end in bot. Like this, for example: TetrisBot or tetris_bot.** یک نام **خاص و Unique انگلیسی** که حتما در آخرش کلمه **bot** را دارد وارد کنید. - -زمانی که بات شما ساخته شد توکن بات را که زیر **Use this token to access the HTTP API** قرار دارد را کپی کنید و در محل امنی قرار دهید. - -## آماده سازی محیط کد نویسی -به طور کلی از دو روش می توان برای بات های تلگرام برنامه نویسی کرد. -**روش اول: استفاده از Rest API رسمی تلگرام که نحوه استفاده از در سایت core.telegram.org/bots/api قابل دسترس است** -**روش دوم: استفاده از پکیج هایی که کد های پایه بات را برای زبان برنامه نویسی مورد نظر شما ساخته اند** -برخی از این پکیج های عبارت اند از: -برای سی شارپ ([Telegram.Bot](https://www.nuget.org/packages/Telegram.Bot)) - این پکیج از طریق کامند زیر در **Dotnet CLI** نصب می شود - - dotnet add package Telegram.Bot --version 19.0.0 - -برای پایتون ( [python-telegram-bot](https://pypi.org/project/python-telegram-bot/2.4/)) -این پکیج نیز از طریق کامند زیر قابل نصب است - - pip install python-telegram-bot==2.4 - -برای اینکه این آموزش بر Core و Universal بودن تاکید دارد ما از از طریق روش اول برای بات خود کد نویسی هر چند این روش کمی سخت تر است اما اگر به خوبی این روش را یادبگرید خود می توانید کتابخانه مانند دو نمونه بالا بنوسید - -## کد نویسی برای بات -پروژه ای با زبان مورد نظر خود ایجاد کنید و کتابخانه هایی مورد نیاز برای **Rest API** را روی پروژه نصب یا Import کنید. -برای مثال اگر از زبان برنامه نویسی سی شارپ استفاده می کنید باید **RestSharp** را نصب کنید و نحوه کار با آن را بلد باشید و اگر از پایتون استفاده می کنید باید کتابخانه **Request** را نصب و Import کنید. - -**قبل از شروع به این نکات درباره API تلگرام توجه کنید.** - -+ تلگرام به حروف بزرگ و کوچک در API حساس است -+ تلگرام فقط از **POST** و **GET** پشتیبانی می کند -+ همه درخواست ها باید کاملا با **UTF-8** باشند -+ تلگرام از هر 4 روش رایج ارسال درخواست **(application/json, multipart/form-data ,QueryString, application/x-www-form-urlencoded)** پشتیبانی می کند -**پیشنهاد:** من به شما پیشنهاد می کنم از QueryString یا application/json استفاده کنید. - -### روش QueryString چیست؟ -در این روش پارامتر های تابع که می خواهیم اجرا کنیم به عنوان QueryString در Url گذاشته می شوند مانند: - - https://test.ir/APIFunction?param1=inp1¶m2=inp2 - -همانطور که در مثال بالا آشکار است هر چه بعد از **?** قرا ر می گیرد **Query String** است. -پارامتر 1 یا **param1** اسم متغیر اول ماست و **inp1** ورودی متغیر **param1** است. -سپس پارامتر های ورودی با علامت **&** جدا شده اند. و پارمتر دوم یا **param2** و ورود آن قرار گرفته است. - -### روش application/json -در این روش Url فقط به آدرس تابع اشاره دارد نه به ورود های آن مانند: - - https://test.ir/APIFunction - - در این روش پارامتر ها به عنوان Json در بدنه ارسال می شوند. مانند زیر - - { - "Body":{ - "param1":"inp1", - "param2":"inp2", - }, - -البته ارسال بدنه با توجه به کتابخانه که برای API استفاده می کنید. متفاوت مثلا برای **RestSharp** از Request.AddBody باید استفاده کنید. - -## استاندارد های استفاده از API تلگرام -**آدرس پایه API:** - - https://api.telegram.org/bot/ - -**توکن:** به جای **** توکنی را که از بات فادر گرفتید قرار دهید -**نام تابع:** تابعی که می خواهید فراخوانی کنید را به جای **** قرار دهید - -**موفق بودن یا نا موفق بودن درخواست** -اگر درخواست شما **موفقیت آمیز** باشد با **OK:True** مواجه می شوید و جواب درخواست را به عنوان **Result** به شما برگردانده می شود -**مثال:** - - { - "ok":true, - "result":[] - } - -اگر درخواست شما **ناموفق** باشد. **OK: False** می شود و شما پارامتر به عنوان **Result** نخواهید داشت همچنین **error_code** و **description** را به ترتیب برای شماره خطا و توصیف خطا دریافت خواهید کرد. -**مثال: ** - - { - "ok":false, - "error_code":404, - "description":"Not Found" - } - -**بروزرسانی بات:** -هر بار که پیامی برای بات ارسال می شود را می توان با **getUpdate** بدست آورد. برای بدست آوردن لیست آپدیت می توانید Url زیر را GET کنید - - https://api.telegram.org/bot/getUpdates - -این درخواست لیستی از Update ها بر می گرداند. -برای مشاهده شئ Update به https://core.telegram.org/bots/api#update مراجعه کنید - -**دریافت اطلاعات کلی بات:** -برای دریافت اطلاعات کلی از آدرس زیر استفاده کنید - - https://api.telegram.org/bot/getMe - -**جواب:** - - { - "ok": true, - "result": { - "id": 6775339167, - "is_bot": true, - "first_name": "ForDocumentPack", - "username": "ForDocumentPackBot", - "can_join_groups": true, - "can_read_all_group_messages": false, - "supports_inline_queries": false - } - } - -## ساخت پروژه ساده -می خواهیم یک پروژه کد نویسی کنیم که زمانی که بات روشن می شود یک پیام خوش آمد گویی ارسال کند. -برای این کار از طریق تابع **getUpdates** پیام هایی که بات داده شده است را مشاهده می کنیم مانند زیر: - - { - "ok": true, - "result": [ - { - "update_id": 529754041, - "message": { - "message_id": 1, - "from": { - "id": 407692495, - "is_bot": false, - "first_name": "Mahdiyar", - "last_name": "Abdollahi", - "username": "Mdr_abdollahi", - "language_code": "en" - }, - "chat": { - "id": 407692495, - "first_name": "Mahdiyar", - "last_name": "Abdollahi", - "username": "Mdr_abdollahi", - "type": "private" - }, - "date": 1697995311, - "text": "/start", - "entities": [ - { - "offset": 0, - "length": 6, - "type": "bot_command" - } - ] - } - } - ] - } - -**نکته: get_updates را در حلقه بی نهایت بی اندازید تا همیشه بروزرسانی شود** -**نکته: بررسی کنید تا به کسانی که به آنها پاسخ داده اید دوباره پاسخ ندهید.** -**نکته: اگر به جای getUpdates از** [WebHooks](https://core.telegram.org/bots/api#getting-updates) **استفاده کنید نیاز به بررسی پاسخ های تکراری نیست** - -برای ارسال پیام نیاز به **chat_id** داریم. - - result => message => chat => id - -بعد از دریافت **chat_id** می توانیم با تابع **sendMessage** پیام برای کاربر ارسال کنید. - - https://api.telegram.org/bot/sendMessage - -**نکته: حتما باید پارامتر chat_id و text ارسال شود** -**نکته: حتما باید بصورت POST ارسال شود و پارامتر ها به صورت application/json باشد** - -شما می توانید تمامی تابع های API تلگرام را از سایت تلگرام مشاهده کنید -> https://core.telegram.org/bots/api diff --git a/Bots & Automation Tools/TelegramBot/LocalTelegramBotServer.md b/Bots & Automation Tools/TelegramBot/LocalTelegramBotServer.md deleted file mode 100755 index 333bbb0..0000000 --- a/Bots & Automation Tools/TelegramBot/LocalTelegramBotServer.md +++ /dev/null @@ -1,41 +0,0 @@ -# آموزش اجرای سرور بات تلگرام -در این سند قصد داریم که سرور بات تلگرام را به صورت لوکال بالا بیاوریم. توجه داشته باشید که شما می توانید از سرور های پیشفرض تلگرام به آدرس **api.telegram.org** استفاده کنید اما اگر قصد دارید که از قابلیت های ویژه مانند اتصال webhook لوکال استفاده نیاز به این سند دارید. -[کاربرد های سرور لوکال تلگرام](https://github.com/tdlib/telegram-bot-api#usage) - -**این آموزش فقط برای سیستم های بر پایه Ubuntu 22.04 تست شده است** - -## مرحله اول: نصب وابستگی ها -یک سری نرم افزار ها و پکیج ها را باید قبل از اجرای سرور نصب کرد -**اوپن اس اس ال - Open SSL** - - sudo apt-get install libssl-dev - -**کامپایلر سی پلاس پلاس نسخه 14 ما از g++ 14 استفاده خواهیم کرد** - - sudo add-apt-repository ppa:ubuntu-toolchain-r/test - sudo apt update - sudo apt install g++ - -**زی لیب - zlib** - - sudo apt install zlib1g - -**جی پرف - gperf** - - sudo apt install gperf - -**سی میک - cmake** - - sudo apt install cmake - -## مرحله دوم: نصب -برای نصب دستورات زیر را در ترمینال وارد کنید - - git clone --recursive https://github.com/tdlib/telegram-bot-api.git - cd telegram-bot-api - mkdir build - cd build - cmake -DCMAKE_BUILD_TYPE=Release .. - cmake --build . --target install - -``` diff --git a/Bots & Automation Tools/TelegramBot/WebHooks.md b/Bots & Automation Tools/TelegramBot/WebHooks.md deleted file mode 100755 index 96a2be6..0000000 --- a/Bots & Automation Tools/TelegramBot/WebHooks.md +++ /dev/null @@ -1,53 +0,0 @@ - -# استفاده از Web Hooks در گرفتن پیام های بات تلگرام -**توجه: پیش نیاز این سند Getting Started.MD است** - -دو روش برای دریافت پیام ارسالی به بات در تلگرام وجود دارد. **Get Updates Function** و **Web Hooks** روش **Get Updates Function** را در سند قبلی استفاده و بررسی کردیم. برای درک Web Hook باید اول Get Updates را خوب متوجه شویم - -## روش اول: Get Updates -در این روش که در سندی قبل از آن استفاده کردیم. شما به تلگرام مراجعه می کنید و تلگرام همه پیام هایی تاریخ بات را برای شما می فرستد در این روش چند چالش وجود دارد - -+ **در هر درخواست تمامی پیام ها ارسال می شود این به معنی است که در یک بات با مخاطبان متوسط هر درخواست شامل صد ها هزار پیام است که قبلا به آن پاسخ داده اید و به آن ها دیگر نیازی ندارید** - -+ **باید بررسی کنید که به کدام پیام پاسخ داده شده و به کدام پاسخ نداده شده است** - -+ **باید از حلقه بی نهایت استفاده کنید تا همیشه از تلگرام درخواست کند. پیاده سازی حلقه بی نهاییت در بسیاری از نرم افزار ها مانند وب سایت بسیار چالش بر انگیز یا غیر ممکن است.** - -راه کار بهتر روش Web Hooks است. - -## روش دوم: Web Hooks -در این روش به جای اینکه مانند روش **Get Updates** شما به تلگرام مراجعه کنید. تلگرام به شما مراجعه می کند. **پیام های جدید را که قبلا دریافت نکرده اید** به شما می دهد. این روش هر سه مشکل **Get Updates** را بر طرف می کند. البته این روش نیز بی نقص نیست و چالش به همراه دارد. مانند: - -+ **چون تلگرام باید برای شما چیزی ارسال کند نمی توان از این روش در فضای Local استفاده کرد** - -+ **محدودیت توسط تلگرام برای این روش اعمال شده است که ممکن است رفع این محدودیت ها هزینه بر یا وقت گیر باشد** - - -### محدودیت های Web Hooks - -+ **اگر از وب هوکس استفاده کنید دیگر نمی توانید از getUpdates استفاده کنید** -+ **فقط پورت های 443, 80, 88, 8443 برای اینکار قابل استفاده اند** -+ **فقط تلگرام به سایت هایی که دارای SSL هستند. پیام ها را ارسال می کند** - -## تنظیم از Web Hooks -برای تنظیم وب هوک از طریق تابع **setWebhook** آدرسی که می خواهیم به آن پیام ها ارسال شود را به عنوان **Url** ارسال می کنیم - - https://api.telegram.org/bot/setWebhook - -**نکنه: حتما از متد POST استفاده کنید و Url را با روش application/json بفرستید** - -برای مشاهده پارامتر های اختیاری Web Hooks به لینک زیر مراجعه کنید -[https://core.telegram.org/bots/api#setwebhook](Web%20Hooks) - -## پاک کردن Web Hooks -اگر به هر دلیلی خواستید وب هوک را پاک کنید یا از get Updates استفاده کنید با استفاده از تابع زیر وب هوکس پاک شده و Get Updates دوباره فعال می شود - - https://api.telegram.org/bot/deleteWebhook - -## مشاهده وضعیت Web Hooks -با تابع زیر می توان وضعیت وب هوک، سرعت پاسخ دهی، آخرین خطا ها، آخرین هشدار ها و... را مشاهده کرد - - https://api.telegram.org/bot/getwebhookinfo - -[برای مشاهده اطلاعات دریافتی از این تابع کلیک کنید](https://core.telegram.org/bots/api#webhookinfo) - diff --git a/Web Development & Frameworks/Django/db.sqlite3 b/Linux/LPIC1/12-grep.md old mode 100755 new mode 100644 similarity index 100% rename from Web Development & Frameworks/Django/db.sqlite3 rename to Linux/LPIC1/12-grep.md diff --git a/Web Development & Frameworks/Django/info/__init__.py b/Linux/LPIC1/13-less.md old mode 100755 new mode 100644 similarity index 100% rename from Web Development & Frameworks/Django/info/__init__.py rename to Linux/LPIC1/13-less.md diff --git a/Web Development & Frameworks/Django/info/migrations/__init__.py b/Linux/LPIC1/14-head-tail.md old mode 100755 new mode 100644 similarity index 100% rename from Web Development & Frameworks/Django/info/migrations/__init__.py rename to Linux/LPIC1/14-head-tail.md diff --git a/Linux/LPIC1/15-wc.md b/Linux/LPIC1/15-wc.md new file mode 100644 index 0000000..e69de29 diff --git a/Web Development & Frameworks/Django/info/__pycache__/__init__.cpython-39.pyc b/Web Development & Frameworks/Django/info/__pycache__/__init__.cpython-39.pyc deleted file mode 100755 index 5b44c4f93b81a9f4572cf36ed49a05370b0b73c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 134 zcmYe~<>g`k0%=K=R1p0bL?8o3AjbiSi&=m~3PUi1CZpdV2fS)7@dmah*c;^Q;(GE3s)^$IF)aoFVMrH6+LK|^Ms1njb5A@PogcP~!NjD`wi=Az?T;W0B$Se8E ziC5snOxCokrFG=*^UT=s=a~^{8Z#X3JcAc5W53AQA08T~IQ0TSGRYg(@`7{rj!8$l z-Mx-5l6?EaLE{vs z{)hmq;F1*%xZk}Wtne)d$RXO1wI`Ni%TvpV<<#<#<(~fVNlLv##nd?j)UO z$0jPvPP9;#CN9gimz##xNm+j0h-Md2B-A8l-2hjh7Bw`|_(MO4#!SSGs2g$FfQc7P zFNR$-T!UIdHyCfDK^m`8045O2p}qkV)tz01mz%1>%$Q&)mMf4&pjSeH{K?b|uN>je zJYV%K)8f8&nFi$TW@i(!-a^zC|c zn883%11X;%AfRL^YB}SPy!)5zR?jF*cO2u?v^nCV{kWo+xam-lEibhPwM&Q`Ay2H* z*?Xbnq15<6sUiMdMFa^!NBjVrFCLFPbc2ar?>g}fr)wy!i8D)Q?q6s-)7Jn1 diff --git a/Web Development & Frameworks/Django/info/__pycache__/urls.cpython-39.pyc b/Web Development & Frameworks/Django/info/__pycache__/urls.cpython-39.pyc deleted file mode 100755 index 6f97f530e6e518882f98a69411245709cd262daf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 349 zcmYk2&q~BF5XO`KOSQY=TS!H=coz}8D5w|3LoQ2j#%-l(OR`n^5Wa&ReWhHzxUV1x zPP)6W6Y>qe8RnZ1HJ$D=3UiX<59MzUyCDcJ=-L|+V8Cmpx#XNd0AU?GFys(n_z`_F zh#-Csi4%-RPBtts8CiHw#n-@(Wuj5HX7HUxX_Vnp*UP9> z2JZ6IW$>b!MLX+FZB0N!E`F`>&B}w@aqPNzZXc=OgtBwrk=bR}Z>w^0MLt_{8M)B* zC7Q;5G2_2tl;5MGY&90Du8Q@(`DtMXTakG&ieEqL2A7`c7Wx{`{rjyqnD8_>$JrqHZqK7tzszqG%z{_GG()QXbtuo}= za3G(OYk)k0ee^5w(nC*vg`PS?S(Xww2oM6Comp}?!|$76xv|k@IR1H<>ruqmzhtZr z{KuZ+G&2;6DPFS)mzhML zg|dToM|IKedb^8uPi1Il-tH-}!}5(wjLLHE1n8;KfLikNpU?iT^f9XGb8TkL)aXmT z*u{Ssjmcqs1ZX_PX|_>lCb?oVP+SGCnG98kK_a*LyPh;~@@%@>(9vV^Sq^~;f$#@T z^CJq&&iFYy3(nbTWW#x+_#1v2&*QV`oWXsI+JSh*cbL}_6{zq{u){8*(FJ#rDs6fB z7SlyT7+c!bk`l}T5YV0O4u__93InGb|^wo;e}}*R2K~HqWgdMhx^S$5Ao2U zIw+@mP4Q@GP7G}vdU1sKn8EDCg?rjkMC0p+XS~Z(oG-UlsS=h0+%~$1Tv`;PGzE>9WUoKH+ZzLi(IjXJN0! zYrQ6rfq_l1*HX^_X`N-SL5c_DT@SbGs>&P|ttt1k3mWVIEXeV(f?K#pZY>k~2>t?Y z!oRbR*I5woA?&}wC|4b_wM4$Z40_!kABO%O`hQJlTva~Vc_#ad<{X&)2JE=C254Pw z19p0`3)pDK4IB=9vqDHqci&q=(?6ZQ(p-<;fW@m~JZ$hiI{7{WVjJ#}Sk=~bZMgLD YqM4u26Ktq