اصول اولیہ برنامہنویسے (Programming Fundamentals) شامل ایں موارد است:
1. متغیرات و انواع دادهها (Variables & Data Types): ذخیرہ و مدیریت دادهها مثل عدد (int, float)، رشتہ (string)، و بولے (boolean).
2. ساختارهاے ڪنترلے (Control Structures):
- شرطها (if, else, switch): تصمیمگیرے بر اساس شرایط.
- حلقهها (for, while): تڪرار عملیات.
3. توابع (Functions): ڪدها رو بہ بخشهاے قابل استفادہ مجدد تقسیم ڪردن تا ڪد تمیز و ماژولار بشه.
4. ورودی/خروجے (Input/Output): گرفتن دادہ از ڪاربر (مثل scanf یا input) و نمایش نتایج (مثل print).
5. مدیریت خطاها (Error Handling): استفادہ از try-catch یا شرطها براے پیشگیرے و مدیریت خطاها.
6. ساختار دادهها (Data Structures): مثل آرایهها، لیستها، پشتهها و درختها براے سازماندهے دادهها.
7. الگوریتمها (Algorithms): روشهاے گامبهگام براے حل مسائل، مثل جستجو (Search) و مرتبسازے (Sorting).
8. شیءگرایے (Object-Oriented Programming): مفاهیمے مثل ڪلاس، شیء، وراثت و چندریختے براے طراحے بهتر.
9. خوانایے و مستندسازے (Readability & Documentation): نوشتن ڪد تمیز، ڪامنتگذارے و توضیحات براے درڪ بهتر.
10. دیباگینگ (Debugging): پیدا ڪردن و رفع اشڪالات در ڪد.
این اصول پایهے هر زبان برنامهنویسیان و یادگیریشون براے شروع ضروریہ.
1. متغیرات و انواع دادهها (Variables & Data Types): ذخیرہ و مدیریت دادهها مثل عدد (int, float)، رشتہ (string)، و بولے (boolean).
2. ساختارهاے ڪنترلے (Control Structures):
- شرطها (if, else, switch): تصمیمگیرے بر اساس شرایط.
- حلقهها (for, while): تڪرار عملیات.
3. توابع (Functions): ڪدها رو بہ بخشهاے قابل استفادہ مجدد تقسیم ڪردن تا ڪد تمیز و ماژولار بشه.
4. ورودی/خروجے (Input/Output): گرفتن دادہ از ڪاربر (مثل scanf یا input) و نمایش نتایج (مثل print).
5. مدیریت خطاها (Error Handling): استفادہ از try-catch یا شرطها براے پیشگیرے و مدیریت خطاها.
6. ساختار دادهها (Data Structures): مثل آرایهها، لیستها، پشتهها و درختها براے سازماندهے دادهها.
7. الگوریتمها (Algorithms): روشهاے گامبهگام براے حل مسائل، مثل جستجو (Search) و مرتبسازے (Sorting).
8. شیءگرایے (Object-Oriented Programming): مفاهیمے مثل ڪلاس، شیء، وراثت و چندریختے براے طراحے بهتر.
9. خوانایے و مستندسازے (Readability & Documentation): نوشتن ڪد تمیز، ڪامنتگذارے و توضیحات براے درڪ بهتر.
10. دیباگینگ (Debugging): پیدا ڪردن و رفع اشڪالات در ڪد.
این اصول پایهے هر زبان برنامهنویسیان و یادگیریشون براے شروع ضروریہ.
تاریخچہ انواع زبانهاے برنامهنویسے بهطور خلاصه:
1. دهہ ۱۹۴۰ - زبانهاے سطح پایین:
- اسمبلے: اولین زبانهاے برنامهنویسے نزدیڪ بہ زبان ماشین، مثل زبان اسمبلے براے ڪنترل مستقیم سختافزار.
2. دهہ ۱۹۵۰ - زبانهاے سطح بالا:
- فورترن (1957): اولین زبان سطح بالا براے محاسبات علمی.
- ڪوبول (1959): براے ڪاربردهاے تجارے طراحے شد.
- لیسپ (1958): براے هوش مصنوعے و پردازش نمادین.
3. دهہ ۱۹۶۰ - گسترش ساختارها:
- آلگول (1960): پایہ زبانهاے مدرن، معرفے بلوڪهاے ساختاری.
- بیسیڪ (1964): براے آموزش برنامهنویسے ساده.
4. دهہ ۱۹۷۰ - برنامهنویسے ساختیافته:
- C (1972): قدرتمند و انعطافپذیر، پایہ سیستمعاملها.
- پاسڪال (1970): براے آموزش برنامهنویسے ساختیافته.
5. دهہ ۱۹۸۰ - شیءگرایے و ڪاربردی:
- C++ (1983): گسترش C با قابلیت شیءگرایی.
- Objective-C (1984): براے توسعہ اپلیڪیشنهاے اپل.
- پرل (1987): براے پردازش متن و اسڪریپتنویسی.
6. دهہ ۱۹۹۰ - همهمنظورہ و وب:
- پایتون (1991): سادہ، خوانا، چندمنظوره.
- جاوا (1995): مستقل از پلتفرم، محبوب براے اپلیڪیشنهاے سازمانی.
- جاوااسڪریپت (1995): براے برنامهنویسے وب.
- PHP (1994): براے توسعہ وب سرورمحور.
7. دهہ ۲۰۰۰ - مدرن و تخصصی:
- C# (2000): براے توسعہ ویندوز و بازی.
- روبے (2000): براے توسعہ وب (مثل Ruby on Rails).
- گو (2009): براے عملڪرد بالا و سیستمهاے مقیاسپذیر.
8. دهہ ۲۰۱۰ بہ بعد - تنوع و بهینهسازی:
- راست (2010): ایمن و سریع، براے سیستمها.
- ڪاتلین (2011): براے توسعہ اندروید.
- سوئیفت (2014): براے اپلیڪیشنهاے iOS.
- تایپاسڪریپت (2012): نسخہ بهبودیافتہ جاوااسڪریپت.
روندها:
- از زبانهاے ماشینمحور بہ ڪاربرمحور.
- تمرڪز بر شیءگرایے، برنامهنویسے تابعے و چندمنظوره.
- رشد زبانهاے وب و اپلیڪیشنهاے موبایل.
- تأڪید بر ایمنے، مقیاسپذیرے و سادگی.
✍Mr.Ashkan.Legend
1. دهہ ۱۹۴۰ - زبانهاے سطح پایین:
- اسمبلے: اولین زبانهاے برنامهنویسے نزدیڪ بہ زبان ماشین، مثل زبان اسمبلے براے ڪنترل مستقیم سختافزار.
2. دهہ ۱۹۵۰ - زبانهاے سطح بالا:
- فورترن (1957): اولین زبان سطح بالا براے محاسبات علمی.
- ڪوبول (1959): براے ڪاربردهاے تجارے طراحے شد.
- لیسپ (1958): براے هوش مصنوعے و پردازش نمادین.
3. دهہ ۱۹۶۰ - گسترش ساختارها:
- آلگول (1960): پایہ زبانهاے مدرن، معرفے بلوڪهاے ساختاری.
- بیسیڪ (1964): براے آموزش برنامهنویسے ساده.
4. دهہ ۱۹۷۰ - برنامهنویسے ساختیافته:
- C (1972): قدرتمند و انعطافپذیر، پایہ سیستمعاملها.
- پاسڪال (1970): براے آموزش برنامهنویسے ساختیافته.
5. دهہ ۱۹۸۰ - شیءگرایے و ڪاربردی:
- C++ (1983): گسترش C با قابلیت شیءگرایی.
- Objective-C (1984): براے توسعہ اپلیڪیشنهاے اپل.
- پرل (1987): براے پردازش متن و اسڪریپتنویسی.
6. دهہ ۱۹۹۰ - همهمنظورہ و وب:
- پایتون (1991): سادہ، خوانا، چندمنظوره.
- جاوا (1995): مستقل از پلتفرم، محبوب براے اپلیڪیشنهاے سازمانی.
- جاوااسڪریپت (1995): براے برنامهنویسے وب.
- PHP (1994): براے توسعہ وب سرورمحور.
7. دهہ ۲۰۰۰ - مدرن و تخصصی:
- C# (2000): براے توسعہ ویندوز و بازی.
- روبے (2000): براے توسعہ وب (مثل Ruby on Rails).
- گو (2009): براے عملڪرد بالا و سیستمهاے مقیاسپذیر.
8. دهہ ۲۰۱۰ بہ بعد - تنوع و بهینهسازی:
- راست (2010): ایمن و سریع، براے سیستمها.
- ڪاتلین (2011): براے توسعہ اندروید.
- سوئیفت (2014): براے اپلیڪیشنهاے iOS.
- تایپاسڪریپت (2012): نسخہ بهبودیافتہ جاوااسڪریپت.
روندها:
- از زبانهاے ماشینمحور بہ ڪاربرمحور.
- تمرڪز بر شیءگرایے، برنامهنویسے تابعے و چندمنظوره.
- رشد زبانهاے وب و اپلیڪیشنهاے موبایل.
- تأڪید بر ایمنے، مقیاسپذیرے و سادگی.
✍Mr.Ashkan.Legend
پردرآمدترین زبانهاے برنامهنویسے در سال ۲۰۲۳ (بر اساس گزارشها مثل Stack Overflow و Glassdoor) بہ ترتیب تقریبی:
1. ڪلوژر (Clojure): زبان تابعے، محبوب در فینتڪ و شرڪتهاے دادهمحور. میانگین حقوق جهانے: ~۱۲۰,۰۰۰ دلار/سال.
2. الڪسیر (Elixir): براے سیستمهاے مقیاسپذیر (مثل وبسرویسها). میانگین حقوق: ~۱۱۰,۰۰۰ دلار/سال.
3. راست (Rust): ایمن و سریع، مورد علاقہ توسعہ سیستمها و بلاڪچین. میانگین حقوق: ~۱۰۰,۰۰۰ دلار/سال.
4. اسڪالا (Scala): در تحلیل دادہ و سیستمهاے توزیعشدہ. میانگین حقوق: ~۱۰۰,۰۰۰ دلار/سال.
5. گو (Go): سادہ و ڪارآمد، محبوب در شرڪتهاے فناورے (مثل گوگل). میانگین حقوق: ~۹۵,۰۰۰ دلار/سال.
6. پایتون (Python): چندمنظورہ، پرڪاربرد در دادہ، هوش مصنوعے و وب. میانگین حقوق: ~۹۰,۰۰۰ دلار/سال.
7. جاوا (Java): همچنان قوے در اپلیڪیشنهاے سازمانے و اندروید. میانگین حقوق: ~۸۵,۰۰۰ دلار/سال.
8. ڪاتلین (Kotlin): براے توسعہ اندروید و وب. میانگین حقوق: ~۸۵,۰۰۰ دلار/سال.
نڪات:
- درآمد بستگے بہ منطقہ (مثل آمریڪا، اروپا، ایران)، تخصص، تجربہ و صنعت (مثل فینتڪ، گیمینگ) داره.
- زبانهاے تخصصے (مثل ڪلوژر یا راست) بہ دلیل ڪمیاب بودن توسعهدهندہ، پردرآمدترن.
- پایتون بہ دلیل تقاضاے بالا و ڪاربرد گستردہ، در ایران هم جزو گزینههاے پرطرفداره.
✍Mr.Ashkan.Legend
1. ڪلوژر (Clojure): زبان تابعے، محبوب در فینتڪ و شرڪتهاے دادهمحور. میانگین حقوق جهانے: ~۱۲۰,۰۰۰ دلار/سال.
2. الڪسیر (Elixir): براے سیستمهاے مقیاسپذیر (مثل وبسرویسها). میانگین حقوق: ~۱۱۰,۰۰۰ دلار/سال.
3. راست (Rust): ایمن و سریع، مورد علاقہ توسعہ سیستمها و بلاڪچین. میانگین حقوق: ~۱۰۰,۰۰۰ دلار/سال.
4. اسڪالا (Scala): در تحلیل دادہ و سیستمهاے توزیعشدہ. میانگین حقوق: ~۱۰۰,۰۰۰ دلار/سال.
5. گو (Go): سادہ و ڪارآمد، محبوب در شرڪتهاے فناورے (مثل گوگل). میانگین حقوق: ~۹۵,۰۰۰ دلار/سال.
6. پایتون (Python): چندمنظورہ، پرڪاربرد در دادہ، هوش مصنوعے و وب. میانگین حقوق: ~۹۰,۰۰۰ دلار/سال.
7. جاوا (Java): همچنان قوے در اپلیڪیشنهاے سازمانے و اندروید. میانگین حقوق: ~۸۵,۰۰۰ دلار/سال.
8. ڪاتلین (Kotlin): براے توسعہ اندروید و وب. میانگین حقوق: ~۸۵,۰۰۰ دلار/سال.
نڪات:
- درآمد بستگے بہ منطقہ (مثل آمریڪا، اروپا، ایران)، تخصص، تجربہ و صنعت (مثل فینتڪ، گیمینگ) داره.
- زبانهاے تخصصے (مثل ڪلوژر یا راست) بہ دلیل ڪمیاب بودن توسعهدهندہ، پردرآمدترن.
- پایتون بہ دلیل تقاضاے بالا و ڪاربرد گستردہ، در ایران هم جزو گزینههاے پرطرفداره.
✍Mr.Ashkan.Legend
اچتیامال
(HTML)
ڪہ مخفف
HyperText Markup Language
است،
زبان استاندارد براے ساخت ساختار صفحات وب است. این زبان، اسڪلت اصلے وبسایتها رو تشڪیل میدہ و محتوا (مثل متن، تصویر، ویدیو) رو سازماندهے میڪنه.
### ویژگیهاے ڪلیدے HTML:
- زبان نشانهگذارے: از تگها (مثل <p> براے پاراگراف یا <img> براے تصویر) براے تعریف عناصر صفحہ استفادہ میڪنه.
- ساختار سادہ: شامل دو بخش اصلے <head> (اطلاعات متا، عنوان صفحہ) و <body> (محتواے قابل مشاهده).
- استاتیڪ: HTML بهتنهایے پویا نیست و براے تعاملے ڪردن صفحات، با CSS (براے استایل) و جاوااسڪریپت (براے منطق) ترڪیب میشه.
### مثال ساده:
- <!DOCTYPE html>: مشخص میڪنہ ڪہ این سند HTML5 است.
- <h1>: تیتر اصلی.
- <p>: پاراگراف.
### نسخهها:
- HTML4 (1999): استاندارد قدیمیتر.
- HTML5 (2014): نسخہ مدرن با قابلیتهاے پیشرفتہ مثل تگهاے <video>, <audio>, و APIهاے جدید براے وب پویا.
### ڪاربردها:
- ایجاد ساختار وبسایتها.
- پایہ براے تڪنولوژیهاے وب (مثل CSS و جاوااسڪریپت).
- پشتیبانے از دسترسیپذیرے (Accessibility) براے ڪاربران با نیازهاے ویژه.
### یادگیری:
HTML خیلے سادہ و نقطہ شروع عالے براے توسعہ وب است. منابع مثل W3Schools یا MDN Web Docs براے یادگیرے مناسبن.
(HTML)
ڪہ مخفف
HyperText Markup Language
است،
زبان استاندارد براے ساخت ساختار صفحات وب است. این زبان، اسڪلت اصلے وبسایتها رو تشڪیل میدہ و محتوا (مثل متن، تصویر، ویدیو) رو سازماندهے میڪنه.
### ویژگیهاے ڪلیدے HTML:
- زبان نشانهگذارے: از تگها (مثل <p> براے پاراگراف یا <img> براے تصویر) براے تعریف عناصر صفحہ استفادہ میڪنه.
- ساختار سادہ: شامل دو بخش اصلے <head> (اطلاعات متا، عنوان صفحہ) و <body> (محتواے قابل مشاهده).
- استاتیڪ: HTML بهتنهایے پویا نیست و براے تعاملے ڪردن صفحات، با CSS (براے استایل) و جاوااسڪریپت (براے منطق) ترڪیب میشه.
### مثال ساده:
<!DOCTYPE html>
<html>
<head>
<title>صفحہ من</title>
</head>
<body>
<h1>سلام، دنیا!</h1>
<p>این یڪ پاراگراف است.</p>
</body>
</html>
- <!DOCTYPE html>: مشخص میڪنہ ڪہ این سند HTML5 است.
- <h1>: تیتر اصلی.
- <p>: پاراگراف.
### نسخهها:
- HTML4 (1999): استاندارد قدیمیتر.
- HTML5 (2014): نسخہ مدرن با قابلیتهاے پیشرفتہ مثل تگهاے <video>, <audio>, و APIهاے جدید براے وب پویا.
### ڪاربردها:
- ایجاد ساختار وبسایتها.
- پایہ براے تڪنولوژیهاے وب (مثل CSS و جاوااسڪریپت).
- پشتیبانے از دسترسیپذیرے (Accessibility) براے ڪاربران با نیازهاے ویژه.
### یادگیری:
HTML خیلے سادہ و نقطہ شروع عالے براے توسعہ وب است. منابع مثل W3Schools یا MDN Web Docs براے یادگیرے مناسبن.
CSS
مخفف
Cascading Style Sheets
(برگههاے سبڪ آبشارے) است
و زبانے براے طراحے و استایلدهے بہ صفحات وب ساختهشدہ با HTML استفادہ میشہ. CSS ظاهر و چیدمان عناصر صفحہ (مثل رنگ، فونت، اندازہ، موقعیت) رو ڪنترل میڪنه.
### ویژگیهاے ڪلیدے CSS:
- جدا ڪردن محتوا از ظاهر: HTML ساختار رو تعریف میڪنہ، CSS استایل رو.
- انعطافپذیر: میتونہ یہ وبسایت ڪامل رو با یہ فایل CSS استایلدهے ڪنه.
- آبشارے (Cascading): اولویت استایلها بر اساس ترتیب و specificity (مشخص بودن) اعمال میشه.
### مثال ساده:
- در اینجا، CSS رنگ و تراز متن <h1> و اندازہ و رنگ فونت <p> رو مشخص ڪرده.
### روشهاے استفادہ از CSS:
1. داخلے (Internal): داخل تگ <style> در بخش <head> (مثل مثال بالا).
2. خارجے (External): در فایل جدا (.css) ڪہ با تگ <link> بہ HTML وصل میشه.
3. خطے (Inline): مستقیم داخل تگ HTML با ویژگے style (مثل <p style="color: red;">).
### قابلیتهاے مهم CSS:
- رسپانسیو (Responsive): با Media Queries براے تطبیق با دستگاههاے مختلف (موبایل، دسڪتاپ).
- انیمیشن و ترنزیشن: براے جلوههاے بصرے (مثل حرڪت یا تغییر رنگ).
- فلڪسباڪس و گرید: براے چیدمانهاے پیچیدہ و مرتب.
### نسخهها:
- CSS3: نسخہ مدرن با ویژگیهایے مثل انیمیشن، گرادیانت، و پشتیبانے بهتر از رسپانسیو.
### یادگیری:
CSS براے مبتدیان سادہ است، اما تسلط بہ فلڪسباڪس، گرید و رسپانسیو نیاز بہ تمرین دارہ. منابع مثل W3Schools و CSS-Tricks عالے هستن.
مخفف
Cascading Style Sheets
(برگههاے سبڪ آبشارے) است
و زبانے براے طراحے و استایلدهے بہ صفحات وب ساختهشدہ با HTML استفادہ میشہ. CSS ظاهر و چیدمان عناصر صفحہ (مثل رنگ، فونت، اندازہ، موقعیت) رو ڪنترل میڪنه.
### ویژگیهاے ڪلیدے CSS:
- جدا ڪردن محتوا از ظاهر: HTML ساختار رو تعریف میڪنہ، CSS استایل رو.
- انعطافپذیر: میتونہ یہ وبسایت ڪامل رو با یہ فایل CSS استایلدهے ڪنه.
- آبشارے (Cascading): اولویت استایلها بر اساس ترتیب و specificity (مشخص بودن) اعمال میشه.
### مثال ساده:
<!DOCTYPE html>
<html>
<head>
<style>
h1 {
color: blue;
text-align: center;
}
p {
font-size: 18px;
color: green;
}
</style>
</head>
<body>
<h1>سلام، دنیا!</h1>
<p>این یڪ پاراگراف است.</p>
</body>
</html>
- در اینجا، CSS رنگ و تراز متن <h1> و اندازہ و رنگ فونت <p> رو مشخص ڪرده.
### روشهاے استفادہ از CSS:
1. داخلے (Internal): داخل تگ <style> در بخش <head> (مثل مثال بالا).
2. خارجے (External): در فایل جدا (.css) ڪہ با تگ <link> بہ HTML وصل میشه.
3. خطے (Inline): مستقیم داخل تگ HTML با ویژگے style (مثل <p style="color: red;">).
### قابلیتهاے مهم CSS:
- رسپانسیو (Responsive): با Media Queries براے تطبیق با دستگاههاے مختلف (موبایل، دسڪتاپ).
- انیمیشن و ترنزیشن: براے جلوههاے بصرے (مثل حرڪت یا تغییر رنگ).
- فلڪسباڪس و گرید: براے چیدمانهاے پیچیدہ و مرتب.
### نسخهها:
- CSS3: نسخہ مدرن با ویژگیهایے مثل انیمیشن، گرادیانت، و پشتیبانے بهتر از رسپانسیو.
### یادگیری:
CSS براے مبتدیان سادہ است، اما تسلط بہ فلڪسباڪس، گرید و رسپانسیو نیاز بہ تمرین دارہ. منابع مثل W3Schools و CSS-Tricks عالے هستن.
ترڪیب CSS با HTML بہ معناے استفادہ از CSS براے استایلدهے و زیباسازے ساختار صفحاتے است ڪہ با HTML ساختہ شدهاند. HTML اسڪلت و محتواے صفحہ (مثل متن، تصاویر) رو فراهم میڪنہ، و CSS ظاهر اونها (مثل رنگ، فونت، چیدمان) رو تنظیم میڪنہ. این ترڪیب باعث میشہ وبسایتها هم ڪارآمد باشن و هم جذاب بہ نظر بیان.
### روشهاے ترڪیب CSS با HTML:
1. CSS داخلے (Internal CSS):
- استایلها داخل تگ <style> در بخش <head> سند HTML نوشتہ میشن.
- مثال:
- مناسب براے پروژههاے ڪوچڪ یا تست.
2. CSS خارجے (External CSS):
- استایلها در یڪ فایل جدا با پسوند .css (مثل styles.css) نوشتہ میشن و با تگ <link> بہ HTML وصل میشن.
- مثال:
- بهترین روش براے پروژههاے بزرگ، چون مدیریت و نگهدارے ڪد راحتتره.
3. CSS خطے (Inline CSS):
- استایل مستقیماً داخل تگ HTML با ویژگے style نوشتہ میشه.
- مثال:
- براے تغییرات سریع مناسبہ، ولے براے پروژههاے بزرگ توصیہ نمیشہ چون مدیریتش سخت میشه.
### نڪات مهم:
- اولویتبندے (Specificity): اگر چند استایل براے یڪ عنصر تعریف بشہ، CSS خطے > داخلے > خارجے (بستہ بہ ترتیب و مشخص بودن انتخابگر).
- سازگارے: ترڪیب HTML و CSS امڪان ایجاد صفحات رسپانسیو (مناسب براے موبایل و دسڪتاپ) رو فراهم میڪنه.
- ابزارهاے توسعہ: مرورگرها (مثل ڪروم) با ابزار Developer Tools بہ تست و دیباگ استایلها ڪمڪ میڪنن.
### چرا ترڪیب این دو مهم است؟
- HTML بدون CSS سادہ و غیرجذابہ (فقط متن و ساختار خام).
- CSS بدون HTML ڪاربردے ندارہ، چون چیزے براے استایلدهے وجود نداره.
- با هم، یہ وبسایت حرفهاے، زیبا و ڪاربرپسند میسازن.
✍Mr.Ashkan.Legend
### روشهاے ترڪیب CSS با HTML:
1. CSS داخلے (Internal CSS):
- استایلها داخل تگ <style> در بخش <head> سند HTML نوشتہ میشن.
- مثال:
<!DOCTYPE html>
<html>
<head>
<style>
h1 {
color: blue;
text-align: center;
}
p {
font-size: 16px;
color: green;
}
</style>
</head>
<body>
<h1>سلام، دنیا!</h1>
<p>این یڪ پاراگراف است.</p>
</body>
</html>
- مناسب براے پروژههاے ڪوچڪ یا تست.
2. CSS خارجے (External CSS):
- استایلها در یڪ فایل جدا با پسوند .css (مثل styles.css) نوشتہ میشن و با تگ <link> بہ HTML وصل میشن.
- مثال:
<!-- فایل HTML (index.html) -->
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<h1>سلام، دنیا!</h1>
<p>این یڪ پاراگراف است.</p>
</body>
</html>
/* فایل CSS (styles.css) */
h1 {
color: blue;
text-align: center;
}
p {
font-size: 16px;
color: green;
}
- بهترین روش براے پروژههاے بزرگ، چون مدیریت و نگهدارے ڪد راحتتره.
3. CSS خطے (Inline CSS):
- استایل مستقیماً داخل تگ HTML با ویژگے style نوشتہ میشه.
- مثال:
<h1 style="color: blue; text-align: center;">سلام، دنیا!</h1>
<p style="font-size: 16px; color: green;">این یڪ پاراگراف است.</p>
- براے تغییرات سریع مناسبہ، ولے براے پروژههاے بزرگ توصیہ نمیشہ چون مدیریتش سخت میشه.
### نڪات مهم:
- اولویتبندے (Specificity): اگر چند استایل براے یڪ عنصر تعریف بشہ، CSS خطے > داخلے > خارجے (بستہ بہ ترتیب و مشخص بودن انتخابگر).
- سازگارے: ترڪیب HTML و CSS امڪان ایجاد صفحات رسپانسیو (مناسب براے موبایل و دسڪتاپ) رو فراهم میڪنه.
- ابزارهاے توسعہ: مرورگرها (مثل ڪروم) با ابزار Developer Tools بہ تست و دیباگ استایلها ڪمڪ میڪنن.
### چرا ترڪیب این دو مهم است؟
- HTML بدون CSS سادہ و غیرجذابہ (فقط متن و ساختار خام).
- CSS بدون HTML ڪاربردے ندارہ، چون چیزے براے استایلدهے وجود نداره.
- با هم، یہ وبسایت حرفهاے، زیبا و ڪاربرپسند میسازن.
✍Mr.Ashkan.Legend
براے دانلود موزیڪویدیو از لینڪ اینستاگرام و شناسایے خوانندہ آهنگ روے ویدیو، نیاز بہ چند ابزار و API داریم. ڪد زیر با استفادہ از ڪتابخانههاے پایتون مثل instaloader براے دانلود ویدیو و shazamio براے شناسایے آهنگ ڪار میڪنہ. توجہ ڪن ڪہ این ڪار ممڪنہ با محدودیتهاے اینستاگرام یا قوانین ڪپیرایت مواجہ بشه.
### پیشنیازها:
1. نصب پڪیجها:
2. حساب اینستاگرام (براے دسترسے بہ پستها، نیاز بہ لاگین دارید).
3. API Shazam (براے شناسایے آهنگ).
### ڪد پایتون:
### توضیحات:
1. دانلود ویدیو:
- از instaloader براے دانلود ویدیو از لینڪ پست اینستاگرام استفادہ میشه.
- نیاز بہ نام ڪاربرے و رمز عبور اینستاگرام دارہ (بہ دلیل محدودیتهاے API عمومی).
- ویدیو در پوشہ downloads ذخیرہ میشه.
2. شناسایے آهنگ:
- ڪتابخانہ shazamio فایل ویدیویے رو تحلیل میڪنہ و از طریق API Shazam اطلاعات آهنگ (نام و خوانندہ) رو برمیگردونه.
- اگر آهنگ قابل شناسایے نباشہ، پیام خطا نمایش دادہ میشه.
3. نڪات مهم:
- محدودیتهاے اینستاگرام: لاگین مڪرر ممڪنہ باعث بلاڪ موقت حساب بشہ. از حساب تست استفادہ ڪن.
- ڪیفیت فایل: فایلهاے ویدیویے باید ڪیفیت صوتے خوبے داشتہ باشن تا Shazam بتونہ آهنگ رو تشخیص بده.
- قوانین ڪپیرایت: دانلود و استفادہ از محتوا بدون اجازہ ممڪنہ غیرقانونے باشه.
- وابستگے بہ اینترنت: براے دانلود و شناسایے، اتصال اینترنت لازمه.
### جایگزینها:
- اگر نمیخواے لاگین ڪنے، میتونے از وبسایتهاے دانلود اینستاگرام (مثل Snapinsta) بهصورت دستے ویدیو رو دانلود ڪنے و فقط بخش شناسایے آهنگ رو با ڪد اجرا ڪنی.
- براے شناسایے آهنگ، اپلیڪیشنهاے جایگزین مثل SoundHound هم میتونن بهصورت دستے استفادہ بشن.
✍Mr.Ashkan.Legend
### پیشنیازها:
1. نصب پڪیجها:
pip install instaloader shazamio
2. حساب اینستاگرام (براے دسترسے بہ پستها، نیاز بہ لاگین دارید).
3. API Shazam (براے شناسایے آهنگ).
### ڪد پایتون:
import instaloader
from shazamio import Shazam
import os
import asyncio
# تابع دانلود ویدیو از اینستاگرام
def download_instagram_video(post_url, username, password):
L = instaloader.Instaloader()
# لاگین بہ اینستاگرام
try:
L.login(username, password)
except Exception as e:
print(f"خطا در لاگین: {e}")
return None
# استخراج shortcode از URL
shortcode = post_url.split("/")[-2]
try:
# دانلود پست
post = instaloader.Post.from_shortcode(L.context, shortcode)
L.download_post(post, target="downloads")
print("ویدیو دانلود شد!")
# پیدا ڪردن فایل ویدیویی
for file in os.listdir("downloads"):
if file.endswith(".mp4"):
return os.path.join("downloads", file)
except Exception as e:
print(f"خطا در دانلود: {e}")
return None
# تابع شناسایے آهنگ با Shazam
async def recognize_song(video_path):
shazam = Shazam()
try:
# شناسایے آهنگ از فایل ویدیویی
result = await shazam.recognize_song(video_path)
if result and "track" in result:
track = result["track"]
artist = track.get("subtitle", "نامشخص")
title = track.get("title", "نامشخص")
print(f"آهنگ: {title} - خوانندہ: {artist}")
return artist, title
else:
print("آهنگ شناسایے نشد!")
return None, None
except Exception as e:
print(f"خطا در شناسایے: {e}")
return None, None
# تابع اصلی
async def main():
# اطلاعات اینستاگرام
username = "your_instagram_username" # نام ڪاربرے اینستاگرام
password = "your_instagram_password" # رمز عبور
post_url = input("لینڪ پست اینستاگرام را وارد ڪنید: ") # مثلا: https://www.instagram.com/p/XXXXX/
# ایجاد پوشہ براے دانلود
if not os.path.exists("downloads"):
os.makedirs("downloads")
# دانلود ویدیو
video_path = download_instagram_video(post_url, username, password)
if video_path:
# شناسایے آهنگ
artist, title = await recognize_song(video_path)
if artist:
print(f"نتیجہ نهایے: آهنگ '{title}' از '{artist}'")
else:
print("نتیجهاے یافت نشد.")
else:
print("دانلود ناموفق بود.")
# اجراے ڪد
if __name__ == "__main__":
asyncio.run(main())
### توضیحات:
1. دانلود ویدیو:
- از instaloader براے دانلود ویدیو از لینڪ پست اینستاگرام استفادہ میشه.
- نیاز بہ نام ڪاربرے و رمز عبور اینستاگرام دارہ (بہ دلیل محدودیتهاے API عمومی).
- ویدیو در پوشہ downloads ذخیرہ میشه.
2. شناسایے آهنگ:
- ڪتابخانہ shazamio فایل ویدیویے رو تحلیل میڪنہ و از طریق API Shazam اطلاعات آهنگ (نام و خوانندہ) رو برمیگردونه.
- اگر آهنگ قابل شناسایے نباشہ، پیام خطا نمایش دادہ میشه.
3. نڪات مهم:
- محدودیتهاے اینستاگرام: لاگین مڪرر ممڪنہ باعث بلاڪ موقت حساب بشہ. از حساب تست استفادہ ڪن.
- ڪیفیت فایل: فایلهاے ویدیویے باید ڪیفیت صوتے خوبے داشتہ باشن تا Shazam بتونہ آهنگ رو تشخیص بده.
- قوانین ڪپیرایت: دانلود و استفادہ از محتوا بدون اجازہ ممڪنہ غیرقانونے باشه.
- وابستگے بہ اینترنت: براے دانلود و شناسایے، اتصال اینترنت لازمه.
### جایگزینها:
- اگر نمیخواے لاگین ڪنے، میتونے از وبسایتهاے دانلود اینستاگرام (مثل Snapinsta) بهصورت دستے ویدیو رو دانلود ڪنے و فقط بخش شناسایے آهنگ رو با ڪد اجرا ڪنی.
- براے شناسایے آهنگ، اپلیڪیشنهاے جایگزین مثل SoundHound هم میتونن بهصورت دستے استفادہ بشن.
✍Mr.Ashkan.Legend
در زیر یڪ نمونہ ڪد سادہ پایتون براے ربات تلگرامے آوردہ شدہ ڪہ با استفادہ از ڪتابخانههاے python-telegram-bot و yt-dlp قابلیت دانلود ویدیو از یوتیوب و اینستاگرام رو دارہ. این ربات لینڪ ویدیویے ڪہ ڪاربر میفرستہ رو میگیرہ، فایل رو دانلود میڪنہ و براے ڪاربر میفرسته.
### پیشنیازها:
1. نصب ڪتابخانهها:
2. FFmpeg:
- براے پردازش ویدیوها، باید FFmpeg روے سیستم نصب باشه:
- ویندوز: از سایت رسمے دانلود ڪن و بہ PATH اضافہ ڪن.
- لینوڪس: sudo apt install ffmpeg
- مڪ: brew install ffmpeg
3. توڪن ربات:
- از @BotFather توڪن بگیر و توے TOKEN قرار بده.
### توضیحات:
- ربات بہ دستور /start پاسخ میدہ و منتظر لینڪ از یوتیوب یا اینستاگرام میمونه.
- وقتے لینڪ میفرستے، ربات ویدیو رو دانلود میڪنہ، توے تلگرام میفرستہ و فایل رو حذف میڪنه.
- فایلها توے پوشہ downloads ذخیرہ میشن (موقتاً).
- این ڪد ویدیوهاے mp4 با بهترین ڪیفیت رو دانلود میڪنه.
### محدودیتها:
- حجم فایل: تلگرام محدودیت 50 مگابایت براے آپلود فایل دارہ. براے فایلهاے بزرگتر، باید از روشهایے مثل آپلود بہ سرور یا سرویسهاے ابرے استفادہ ڪنی.
- اینستاگرام: براے دانلود از اینستاگرام، ممڪنہ نیاز بہ لاگین باشہ (بخصوص براے پستهاے خصوصی). میتونے تنظیمات YDL_OPTS رو تغییر بدے و نام ڪاربری/رمز عبور بذاری:
- خطاها: لینڪهاے نامعتبر یا مشڪلات سرور (مثل قطعے اینترنت) ممڪنہ باعث خطا بشن. ڪد خطاها رو بہ ڪاربر نشون میده.
### بهبودهاے ممڪن:
- اضافہ ڪردن انتخاب ڪیفیت ویدیو.
- پشتیبانے از دانلود صوت (mp3).
- آپلود فایلهاے بزرگ بہ سرویسهایے مثل Google Drive.
from telegram import Update
from telegram.ext import Application, CommandHandler, MessageHandler, filters, ContextTypes
import yt_dlp
import os
# توڪن ربات رو از BotFather بگیر
TOKEN = "YOUR_BOT_TOKEN"
# تنظیمات yt-dlp براے دانلود
YDL_OPTS = {
'format': 'best[ext=mp4]', # دانلود بهترین ڪیفیت mp4
'outtmpl': 'downloads/%(title)s.%(ext)s', # محل ذخیرہ فایل
'noplaylist': True, # جلوگیرے از دانلود پلیلیست
}
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
await update.message.reply_text("سلام! لینڪ یوتیوب یا اینستاگرام بفرست تا ویدیوشو برات دانلود ڪنم.")
async def handle_link(update: Update, context: ContextTypes.DEFAULT_TYPE):
url = update.message.text
chat_id = update.message.chat_id
# بررسے اینڪہ لینڪ معتبرہ یا نه
if "youtube.com" not in url and "instagram.com" not in url and "youtu.be" not in url:
await update.message.reply_text("لطفاً لینڪ معتبر از یوتیوب یا اینستاگرام بفرست!")
return
await update.message.reply_text("در حال دانلود... ڪمے صبر ڪن!")
try:
# دانلود ویدیو با yt-dlp
with yt_dlp.YoutubeDL(YDL_OPTS) as ydl:
info = ydl.extract_info(url, download=True)
file_path = ydl.prepare_filename(info)
# ارسال فایل بہ ڪاربر
with open(file_path, 'rb') as video:
await context.bot.send_video(chat_id=chat_id, video=video)
# حذف فایل بعد از ارسال
os.remove(file_path)
await update.message.reply_text("ویدیو با موفقیت فرستادہ شد!")
except Exception as e:
await update.message.reply_text(f"خطا: {str(e)}")
async def main():
# ایجاد پوشہ downloads اگر وجود نداشتہ باشه
if not os.path.exists('downloads'):
os.makedirs('downloads')
app = Application.builder().token(TOKEN).build()
# هندلرها
app.add_handler(CommandHandler("start", start))
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_link))
# شروع ربات
print("ربات شروع شد...")
await app.run_polling()
if __name__ == "__main__":
import asyncio
asyncio.run(main())
### پیشنیازها:
1. نصب ڪتابخانهها:
pip install python-telegram-bot yt-dlp
2. FFmpeg:
- براے پردازش ویدیوها، باید FFmpeg روے سیستم نصب باشه:
- ویندوز: از سایت رسمے دانلود ڪن و بہ PATH اضافہ ڪن.
- لینوڪس: sudo apt install ffmpeg
- مڪ: brew install ffmpeg
3. توڪن ربات:
- از @BotFather توڪن بگیر و توے TOKEN قرار بده.
### توضیحات:
- ربات بہ دستور /start پاسخ میدہ و منتظر لینڪ از یوتیوب یا اینستاگرام میمونه.
- وقتے لینڪ میفرستے، ربات ویدیو رو دانلود میڪنہ، توے تلگرام میفرستہ و فایل رو حذف میڪنه.
- فایلها توے پوشہ downloads ذخیرہ میشن (موقتاً).
- این ڪد ویدیوهاے mp4 با بهترین ڪیفیت رو دانلود میڪنه.
### محدودیتها:
- حجم فایل: تلگرام محدودیت 50 مگابایت براے آپلود فایل دارہ. براے فایلهاے بزرگتر، باید از روشهایے مثل آپلود بہ سرور یا سرویسهاے ابرے استفادہ ڪنی.
- اینستاگرام: براے دانلود از اینستاگرام، ممڪنہ نیاز بہ لاگین باشہ (بخصوص براے پستهاے خصوصی). میتونے تنظیمات YDL_OPTS رو تغییر بدے و نام ڪاربری/رمز عبور بذاری:
YDL_OPTS['username'] = 'YOUR_INSTAGRAM_USERNAME'
YDL_OPTS['password'] = 'YOUR_INSTAGRAM_PASSWORD'
- خطاها: لینڪهاے نامعتبر یا مشڪلات سرور (مثل قطعے اینترنت) ممڪنہ باعث خطا بشن. ڪد خطاها رو بہ ڪاربر نشون میده.
### بهبودهاے ممڪن:
- اضافہ ڪردن انتخاب ڪیفیت ویدیو.
- پشتیبانے از دانلود صوت (mp3).
- آپلود فایلهاے بزرگ بہ سرویسهایے مثل Google Drive.
❤🔥1
ڪد زیر یڪ ربات تلگرام با پایتون (استفادہ از ڪتابخانہ
1. تبدیل فایل بہ لینڪ (آپلود فایل بہ تلگرام و دریافت لینڪ).
2. تبدیل لینڪ بہ فایل (دانلود فایل از لینڪ تلگرام).
3. تغییر نام فایل ارسالی.
### پیشنیازها:
- نصب ڪتابخا
- توڪن ربات از BotFather.
main()
```
### توضیحات:
1. **تبدیل فایل بہ لینڪ**:
- وقتے ڪاربر فایل میفرستہ، ربات لینڪ مستقیم فایل (file_path) رو برمیگردونه.
2. **دانل
3. **تغییر نام فایل**:
- ڪاربر فایل میفرستہ، ربات درخواست اسم
4. **نڪات**:
- پوشہ `downloads` براے ذخیرہ موقت فایلها ساختہ میشه.
- فایلهاے موقت بعد از ارسال حذف میشن.
- براے لینڪهاے غیرمستقیم (مثل t.me) باید API تلگرام یا ابزارهاے
`python-telegram-bot`) ارائہ میدهد ڪہ سہ قابلیت دارد:1. تبدیل فایل بہ لینڪ (آپلود فایل بہ تلگرام و دریافت لینڪ).
2. تبدیل لینڪ بہ فایل (دانلود فایل از لینڪ تلگرام).
3. تغییر نام فایل ارسالی.
### پیشنیازها:
- نصب ڪتابخا
نہ: `pip install python-telegram-bot requests`- توڪن ربات از BotFather.
###
ڪد:_":
```python
import os
from telegram import Update
from telegram.ext import Application, CommandHandler, MessageHandler, filters, ContextTypes
import requests
# توڪن ربات
TOKEN = "YOUR_BOT_TOKEN"
# تابع شروع
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
await update.message.reply_text(
"سلام! من ربات مدیریت فایلم.\n"
"1. فایل بفرست تا لینڪش رو بدم.\n"
"2. لینڪ فایل تلگرام بدہ تا دانلودش ڪنم.\n"
"3. فایل بفرست و بعد اسمش رو بگو تا تغییرش بدم."
)
# دریافت فایل و تبدیل بہ لینڪ
async def handle_file(update: Update, context: ContextTypes.DEFAULT_TYPE):
file = await update.message.document.get_file()
file_url = file.file_path
await update.message.reply_text(f"لینڪ فایل: {file_url}")
# تغییر نام فایل
async def rename_file(update: Update, context: ContextTypes.DEFAULT_TYPE):
if not context.user_data.get("file"):
await update.message.reply_text("اول یہ فایل بفرست!")
return
new_name = update.message.text
if not new_name.endswith(context.user_data["file_ext"]):
new_name += context.user_data["file_ext"]
file = context.user_data["file"]
new_file_path = f"downloads/{new_name}"
os.rename(file.file_path, new_file_path)
await update.message.reply_document(document=open(new_file_path, "rb"))
os.remove(new_file_path)
context.user_data.clear()
# ذخیرہ فایل براے تغییر نام
async def store_file(update: Update, context: ContextTypes.DEFAULT_TYPE):
file = await update.message.document.get_file()
file_ext = os.path.splitext(update.message.document.file_name)[1]
file_path = f"downloads/{update.message.document.file_name}"
if not os.path.exists("downloads"):
os.makedirs("downloads")
file_data = requests.get(file.file_path).content
with open(file_path, "wb") as f:
f.write(file_data)
context.user_data["file"] = file
context.user_data["file_ext"] = file_ext
await update.message.reply_text("اسم جدید فایل رو بگو:")
# دانلود فایل از لینڪ
async def download_from_link(update: Update, context: ContextTypes.DEFAULT_TYPE):
link = update.message.text
if "t.me" in link or "telegram.me" in link:
await update.message.reply_text("لطفاً لینڪ مستقیم فایل (مثل https://...file.mp4) رو بفرست.")
return
try:
response = requests.get(link)
file_name = link.split("/")[-1]
file_path = f"downloads/{file_name}"
if not os.path.exists("downloads"):
os.makedirs("downloads")
with open(file_path, "wb") as f:
f.write(response.content)
await update.message.reply_document(document=open(file_path, "rb"))
os.remove(file_path)
except Exception as e:
await update.message.reply_text(f"خطا: {str(e)}")
def main():
app = Application.builder().token(TOKEN).build()
app.add_handler(CommandHandler("start", start))
app.add_handler(MessageHandler(filters.Document.ALL, store_file))
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, download_from_link))
app.run_polling()
if __name__ == "__main_
main()
```
### توضیحات:
1. **تبدیل فایل بہ لینڪ**:
- وقتے ڪاربر فایل میفرستہ، ربات لینڪ مستقیم فایل (file_path) رو برمیگردونه.
2. **دانل
ود از لینڪ**:
- ڪاربر لینڪ مستقیم فایل تلگرام (مثل `https://...file.mp4`) رو میفرستہ، ربات فایل رو دانلود و ارسال میڪنه.3. **تغییر نام فایل**:
- ڪاربر فایل میفرستہ، ربات درخواست اسم
جدید میڪنہ. بعد فایل با اسم جدید ارسال میشه.4. **نڪات**:
- پوشہ `downloads` براے ذخیرہ موقت فایلها ساختہ میشه.
- فایلهاے موقت بعد از ارسال حذف میشن.
- براے لینڪهاے غیرمستقیم (مثل t.me) باید API تلگرام یا ابزارهاے
با هر خط برنامه
جایی که منطق و خلاقیت در هم میآمیزند
✍️ Mr.Ashkan.Legend
دنیایی جدید خلق میشود. جایی که منطق و خلاقیت در هم میآمیزند
و هر پروژه چالشی برای ساخت چیزهایی است که در ذهن داریم.Please open Telegram to view this post
VIEW IN TELEGRAM
دو روز کل اینترنت قطعه 😐
و فقط 1 درصد مردم دسترسی به اینترنت دارن
از 1 درصد متصل به نت ملی 2 درصد موبایل رو تشکیل میده و 92 درصد هم بات ها هستن 😐
افراد متصل کمتر از 0.001 درصد!!! 🏴☠️
و فقط 1 درصد مردم دسترسی به اینترنت دارن
از 1 درصد متصل به نت ملی 2 درصد موبایل رو تشکیل میده و 92 درصد هم بات ها هستن 😐
افراد متصل کمتر از 0.001 درصد!!! 🏴☠️
این یه کد حرفهای پایتون برای ربات تلگرامیه که میتونه از اینستاگرام ویدیو و عکس دانلود کنه. از کتابخونه
main()
```
### راهنمای راهاندازی:
1. *
```
2. **تنظیمات اولیه**:
-
- پوشه `downloads` برای ذخیره موقت فایلها استفاده میشه. میتونی مسیرش رو عوض کنی.
3. **اجرا**:
- کد رو توی یه فایل (مثلاً `bot.py
`python-telegram-bot` برای ربات و `instagrapi` برای دانلود استفاده میکنه. کد کامل و قابل اجراست، فقط نیاز به یه سری تنظیمات اولیه داری._":
```python
import logging
from telegram import Update
from telegram.ext import (
ApplicationBuilder,
CommandHandler,
MessageHandler,
Filters,
ContextTypes,
)
from instagrapi import Client
import re
import os
# تنظیمات لاگینگ
logging.basicConfig(format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", level=logging.INFO)
logger = logging.getLogger(__name__)
# تنظیمات اینستاگرام
INSTA_USERNAME = "your_instagram_username" # نام کاربری اینستاگرام
INSTA_PASSWORD = "your_instagram_password" # رمز اینستاگرام
DOWNLOAD_DIR = "downloads" # پوشه ذخیره فایلها
# توکن ربات تلگرام
TOKEN = "your_telegram_bot_token" # توکن ربات از BotFather
# تنظیم کلاینت اینستاگرام
cl = Client()
cl.login(INSTA_USERNAME, INSTA_PASSWORD)
# ایجاد پوشه برای دانلود
if not os.path.exists(DOWNLOAD_DIR):
os.makedirs(DOWNLOAD_DIR)
# تابع شروع ربات
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
await update.message.reply_text(
"سلام! لینک پست اینستاگرام رو بفرست تا برات دانلود کنم. 😎\nمثال: https://www.instagram.com/p/ABC123/"
)
# تابع مدیریت خطا
async def error_handler(update: Update, context: ContextTypes.DEFAULT_TYPE):
logger.error(f"Update {update} caused error {context.error}")
await update.message.reply_text("یه مشکلی پیش اومد! دوباره امتحان کن یا لینک رو چک کن.")
# تابع بررسی و دانلود از لینک اینستاگرام
async def handle_message(update: Update, context: ContextTypes.DEFAULT_TYPE):
url = update.message.text
# بررسی اینکه لینک اینستاگرام است یا نه
insta_regex = r"(https?://www\.instagram\.com/(p|reel)/[a-zA-Z0-9-_]+)"
match = re.match(insta_regex, url)
if not match:
await update.message.reply_text("لطفاً یه لینک معتبر اینستاگرام بفرست! مثل: https://www.instagram.com/p/ABC123/")
return
await update.message.reply_text("در حال دانلود... کمی صبر کن! ⏳")
try:
# گرفتن shortcode از لینک
shortcode = url.split("/")[-2]
media = cl.media_info(cl.media_pk_from_code(shortcode))
# بررسی نوع مدیا (عکس یا ویدیو)
if media.media_type == 1: # عکس
file_path = cl.photo_download(media.pk, folder=DOWNLOAD_DIR)
with open(file_path, "rb") as photo:
await update.message.reply_photo(photo=photo, caption="دانلود شد! 📸")
elif media.media_type == 2: # ویدیو
file_path = cl.video_download(media.pk, folder=DOWNLOAD_DIR)
with open(file_path, "rb") as video:
await update.message.reply_video(video=video, caption="دانلود شد! 🎥")
else:
await update.message.reply_text("این نوع محتوا پشتیبانی نمیشه! فقط عکس و ویدیو میتونم دانلود کنم.")
# پاک کردن فایل از سرور
os.remove(file_path)
except Exception as e:
logger.error(f"Error downloading media: {e}")
await update.message.reply_text("خطا! نمیتونم این پست رو دانلود کنم. شاید پست خصوصی باشه یا لینک اشتباهه.")
def main():
# ساخت اپلیکیشن ربات
app = ApplicationBuilder().token(TOKEN).build()
# هندلرها
app.add_handler(CommandHandler("start", start))
app.add_handler(MessageHandler(Filters.text & ~Filters.command, handle_message))
app.add_error_handler(error_handler)
# شروع ربات
logger.info("Starting bot...")
app.run_polling()
if __name__ == "__main_
main()
```
### راهنمای راهاندازی:
1. *
*نصب کتابخونهها**:hon-telegram-bot instagrapi
```bash
pip install pyt
```
2. **تنظیمات اولیه**:
-
توکن ربات رو از [BotFather](https://t.me/BotFather) بگیر و توی `TOKEN` بذار.
- یه اکانت اینستاگرام برای لاگین وارد کن توی `INSTA_USERNAME` و `INSTA_PASSWORD`. (اکانت واقعی بهتره، چون اکانتهای فیک ممکنه محدود بشن.)- پوشه `downloads` برای ذخیره موقت فایلها استفاده میشه. میتونی مسیرش رو عوض کنی.
3. **اجرا**:
- کد رو توی یه فایل (مثلاً `bot.py
Telegram
BotFather
BotFather is the one bot to rule them all. Use it to create new bot accounts and manage your existing bots.
پست آموزشی برای کانال: "ترفند جاوااسکریپت - سادهسازی کد با Destructuring"
🎯 یه ترفند باحال برای تمیزتر کردن کد جاوااسکریپت!
اگر تا حالا با Destructuring کار نکردی، آماده باش که عاشقش بشی! 😍 این قابلیت بهت کمک میکنه که کدت کوتاهتر، خواناتر و حرفهایتر بشه.
### مثال ساده:
فرض کن یه آبجکت داری:
#### روش قدیمی:
#### با Destructuring:
فقط با یه خط، همه متغیرها رو تعریف کردی! 🚀
### یه مثال پیشرفتهتر:
اگه بخوای اسم متغیرها رو عوض کنی یا فقط بعضی از خواص رو بگیری:
### کاربرد واقعی:
فرض کن داری با یه API کار میکنی. پاسخ API یه آبجکت پیچیدهست:
### چرا باید ازش استفاده کنی؟
- کد کمتر = باگ کمتر!
- خوانایی بهتر برای تیمهای برنامهنویسی.
- تو فریمورکهایی مثل React برای props خیلی کاربردیه.
💡 چالشی برای تو: یه آبجکت بساز و با Destructuring اطلاعاتش رو استخراج کن. نتیجه رو تو کامنتها بنویس!
#جاوااسکریپت #برنامهنویسی #ترفندکدنویسی
😎 Mr.Ashkan.Legend
🎯 یه ترفند باحال برای تمیزتر کردن کد جاوااسکریپت!
اگر تا حالا با Destructuring کار نکردی، آماده باش که عاشقش بشی! 😍 این قابلیت بهت کمک میکنه که کدت کوتاهتر، خواناتر و حرفهایتر بشه.
### مثال ساده:
فرض کن یه آبجکت داری:
const user = {
name: "علی",
age: 25,
city: "تهران"
};
#### روش قدیمی:
const name = user.name;
const age = user.age;
const city = user.city;
#### با Destructuring:
const { name, age, city } = user;
فقط با یه خط، همه متغیرها رو تعریف کردی! 🚀
### یه مثال پیشرفتهتر:
اگه بخوای اسم متغیرها رو عوض کنی یا فقط بعضی از خواص رو بگیری:
const { name: userName, city } = user;
console.log(userName); // خروجی: علی
console.log(city); // خروجی: تهران
### کاربرد واقعی:
فرض کن داری با یه API کار میکنی. پاسخ API یه آبجکت پیچیدهست:
const response = {
data: {
id: 123,
title: "پروژه جدید",
details: { priority: "بالا", deadline: "1402/08/01" }
}
};
// استخراج اطلاعات با Destructuring
const { data: { title, details: { priority } } } = response;
console.log(title); // خروجی: پروژه جدید
console.log(priority); // خروجی: بالا
### چرا باید ازش استفاده کنی؟
- کد کمتر = باگ کمتر!
- خوانایی بهتر برای تیمهای برنامهنویسی.
- تو فریمورکهایی مثل React برای props خیلی کاربردیه.
💡 چالشی برای تو: یه آبجکت بساز و با Destructuring اطلاعاتش رو استخراج کن. نتیجه رو تو کامنتها بنویس!
#جاوااسکریپت #برنامهنویسی #ترفندکدنویسی
😎 Mr.Ashkan.Legend
حذف حساب تلگرام شما با انتقال مالکیت ربات 👺😈 #آموزشی
این روش از قدیم بود و شاید نوشتن درباره آن، بدآموزی داشت اما چون اخیرا شایع شده، لازم است درباره آن اطلاعرسانی کنیم.
در این روش مهاجم (که قصد حذف حساب تلگرامی شما را دارد!) شما را ترغیب به استارت رباتی ظاهرا بیضرر میکند. سپس مالکیت ربات را به شما منتقل کرده اما همچنان به توکن ربات دسترسی دارد و از طریق آن، اسم و عکس پروفایل و توضیحات ربات را شبیه پشتیبانی تلگرام یا پشتیبانی wallet@ میکند که خط قرمز تلگرام است. پس از این مرحله، تلگرام اکانت شما را بهصورت خودکار مسدود یا حذف میکند! (البته گاهی مهاجم پس از این کار، اقدام به ریپورت گسترده آن ربات نیز میکند)
چه راهی برای پیشگیری هست؟
۱. زمانی که رباتی ناشناس را استارت میکنید، خصوصا رباتی که تعداد ممبرهای آن نمایش داده نمیشود، بهتر است آن را استاپ کنید.
۲. حتی اگر اهل ساخت ربات نیستید، باز هم بهتر است @botfather را استارت بزنید تا اگر رباتی به شما منتقل شد، مطلع شوید و بتوانید سریعا آن را delete یا لااقل revoke کنید.
۳. اگر اکانتتان بسیار مهم است و ممکن در زمان مناسب برای جلوگیری از آن آنلاین نباشید، راهحل قطعی جلوگیری ازین حمله این است که در @botfather تعداد ۲۰ ربات ایجاد کنید تا کسی نتواند به شما ربات جدید منتقل کند.
این روش از قدیم بود و شاید نوشتن درباره آن، بدآموزی داشت اما چون اخیرا شایع شده، لازم است درباره آن اطلاعرسانی کنیم.
در این روش مهاجم (که قصد حذف حساب تلگرامی شما را دارد!) شما را ترغیب به استارت رباتی ظاهرا بیضرر میکند. سپس مالکیت ربات را به شما منتقل کرده اما همچنان به توکن ربات دسترسی دارد و از طریق آن، اسم و عکس پروفایل و توضیحات ربات را شبیه پشتیبانی تلگرام یا پشتیبانی wallet@ میکند که خط قرمز تلگرام است. پس از این مرحله، تلگرام اکانت شما را بهصورت خودکار مسدود یا حذف میکند! (البته گاهی مهاجم پس از این کار، اقدام به ریپورت گسترده آن ربات نیز میکند)
چه راهی برای پیشگیری هست؟
۱. زمانی که رباتی ناشناس را استارت میکنید، خصوصا رباتی که تعداد ممبرهای آن نمایش داده نمیشود، بهتر است آن را استاپ کنید.
۲. حتی اگر اهل ساخت ربات نیستید، باز هم بهتر است @botfather را استارت بزنید تا اگر رباتی به شما منتقل شد، مطلع شوید و بتوانید سریعا آن را delete یا لااقل revoke کنید.
۳. اگر اکانتتان بسیار مهم است و ممکن در زمان مناسب برای جلوگیری از آن آنلاین نباشید، راهحل قطعی جلوگیری ازین حمله این است که در @botfather تعداد ۲۰ ربات ایجاد کنید تا کسی نتواند به شما ربات جدید منتقل کند.
آسمون چیه ؟
آسمون مثل یه API عظیم و دینامیکه که بدون وقفه رندر میشه. یه رابط کاربری بصری با بینهایت رزولوشن، که دیتای نور خورشید، ابرها و ستارهها رو تو یه فضای سهبعدی بیانتها پردازش میکنه. روزا یه گرادینت از آبی Hex #87CEEB تا نارنجی غروب #FFA500 رو لود میکنه. ابرها مثل اشیاء JSON سبک و پراکندهان که با الگوریتمهای تصادفی تو لایههای جوی جابهجا میشن. شبا، یه آرایه عظیم از نقاط نورانی (ستارهها) با مختصات رندوم و روشنایی متغیر رندر میشه. طوفان؟ انگار یه Event Listener واسه رعد و برق و بارون فعال میشه که کل سیستم رو با فیدبکهای صوتی و دینامیک تکون میده.
یه کد تمیز و بینقص که همیشه آپتایم داره! ☁️🚀
آسمون مثل یه API عظیم و دینامیکه که بدون وقفه رندر میشه. یه رابط کاربری بصری با بینهایت رزولوشن، که دیتای نور خورشید، ابرها و ستارهها رو تو یه فضای سهبعدی بیانتها پردازش میکنه. روزا یه گرادینت از آبی Hex #87CEEB تا نارنجی غروب #FFA500 رو لود میکنه. ابرها مثل اشیاء JSON سبک و پراکندهان که با الگوریتمهای تصادفی تو لایههای جوی جابهجا میشن. شبا، یه آرایه عظیم از نقاط نورانی (ستارهها) با مختصات رندوم و روشنایی متغیر رندر میشه. طوفان؟ انگار یه Event Listener واسه رعد و برق و بارون فعال میشه که کل سیستم رو با فیدبکهای صوتی و دینامیک تکون میده.
یه کد تمیز و بینقص که همیشه آپتایم داره! ☁️🚀
منطق
بعضے از دوستان براے اینڪہ هر روز یہ پست واسہ اشتراڪ گذارے داشتہ باشند
رسما محتواے جعلے تولید میڪنند ، نہ منبع معتبرے وجود دارہ نہ حتے منطق درستے پشت خیلے از حرفا هست،
بخصوص توے مباحث اموزش ،
واقعا چہ اجبارے هست ڪہ دیگران رو گمراہ ڪنید؟
مثلا ۱۰۰۰ نفر بہ ۱۰۰۰ روش متفاوت الگوریتم اینستاگرام رو شرح میدن،
همین باعث میشہ خیلیا بہ دفعات مثلا روش پست گزاریشون رو تغییر بدن چون همیشہ فڪر میڪنند یہ جاے ڪارشون ایراد داره.
محتوادے خوب تولید ڪنید ، ڪپے نڪنید ، همیشہ هم اولویت تجربیات خودتون باشہ نہ دیگران.
این فقط یڪ مثال سادہ بود
بعضے از دوستان براے اینڪہ هر روز یہ پست واسہ اشتراڪ گذارے داشتہ باشند
رسما محتواے جعلے تولید میڪنند ، نہ منبع معتبرے وجود دارہ نہ حتے منطق درستے پشت خیلے از حرفا هست،
بخصوص توے مباحث اموزش ،
واقعا چہ اجبارے هست ڪہ دیگران رو گمراہ ڪنید؟
مثلا ۱۰۰۰ نفر بہ ۱۰۰۰ روش متفاوت الگوریتم اینستاگرام رو شرح میدن،
همین باعث میشہ خیلیا بہ دفعات مثلا روش پست گزاریشون رو تغییر بدن چون همیشہ فڪر میڪنند یہ جاے ڪارشون ایراد داره.
محتوادے خوب تولید ڪنید ، ڪپے نڪنید ، همیشہ هم اولویت تجربیات خودتون باشہ نہ دیگران.
این فقط یڪ مثال سادہ بود
❤3
یڪ لیست مختصر و مفید از اصطلاحات برنامهنویسے ڪہ هر برنامهنویسے باید باهاش آشنا باشہ. سعے میڪنم ڪوتاہ و سادہ توضیح بدم:
1. Algorithm (الگوریتم): یہ دستورالعمل یا مجموعہ مراحلے ڪہ براے حل یہ مشڪل خاص استفادہ میشہ. مثل یہ دستور پخت غذا، فقط براے ڪد!
2. Variable (متغیر): یہ مڪان ذخیرهسازے تو حافظہ ڪہ یہ مقدار (مثل عدد، متن) رو نگہ میدارہ. مثلاً x = 5.
3. Function (تابع): یہ تڪہ ڪد ڪہ یہ ڪار خاص رو انجام میدہ و میتونے بارها ازش استفادہ ڪنے. مثل دڪمهے ماشین حساب!
4. Debugging (دیباگینگ): پیدا ڪردن و رفع اشڪالات (باگها) تو ڪد. مثل ڪارآگاہ بازے براے پیدا ڪردن خطاها!
5. Loop (حلقه): دستورے ڪہ یہ تڪہ ڪد رو چند بار تڪرار میڪنہ. مثلاً for یا while.
6. Conditional Statement (دستور شرطی): ڪدے ڪہ بستہ بہ یہ شرط اجرا میشہ. مثل if-else (اگہ این، وگرنہ اون).
7. Syntax (سینتڪس): قواعد نوشتارے زبان برنامهنویسے. مثل گرامر زبان انگلیسے، اگہ خرابش ڪنے، ڪدت ڪار نمیڪنه!
8. API (رابط برنامهنویسی): یہ رابط ڪہ بہ برنامهها اجازہ میدہ باهم حرف بزنن. مثلاً گوگل مپز API براے اضافہ ڪردن نقشہ بہ اپت.
9. Version Control (ڪنترل نسخه): سیستمے مثل Git ڪہ تغییرات ڪد رو مدیریت میڪنہ تا بتونے تاریخچہ و نسخههاے مختلف پروژهت رو نگہ داری.
10. Bug (باگ): یہ خطا تو ڪد ڪہ باعث میشہ برنامہ درست ڪار نڪنہ. مثل وقتے اپت ڪرش میڪنه!
11. Object-Oriented Programming (برنامهنویسے شیءگرا): روشے ڪہ توش ڪد رو بہ صورت "اشیاء" سازماندهے میڪنے، مثل ڪلاسها و اشیاء تو پایتون یا جاوا.
12. Compile (ڪامپایل): تبدیل ڪد بہ زبانے ڪہ ڪامپیوتر بفهمہ (مثل تبدیل پایتون بہ ڪد ماشین).
13. Framework (فریمورڪ): مجموعہ ابزارها و ڪتابخونههایے ڪہ ڪار برنامهنویسے رو سادهتر میڪنن، مثل Django یا React.
14. Database (پایگاہ داده): جایے ڪہ دادهها (مثل اطلاعات ڪاربرا) ذخیرہ میشن، مثل MySQL یا MongoDB.
15. Refactoring (بازسازے ڪد): مرتب ڪردن و بهبود ڪد بدون تغییر عملڪردش، مثل تمیز ڪردن اتاق!
✍ Mr.Ashkan
1. Algorithm (الگوریتم): یہ دستورالعمل یا مجموعہ مراحلے ڪہ براے حل یہ مشڪل خاص استفادہ میشہ. مثل یہ دستور پخت غذا، فقط براے ڪد!
2. Variable (متغیر): یہ مڪان ذخیرهسازے تو حافظہ ڪہ یہ مقدار (مثل عدد، متن) رو نگہ میدارہ. مثلاً x = 5.
3. Function (تابع): یہ تڪہ ڪد ڪہ یہ ڪار خاص رو انجام میدہ و میتونے بارها ازش استفادہ ڪنے. مثل دڪمهے ماشین حساب!
4. Debugging (دیباگینگ): پیدا ڪردن و رفع اشڪالات (باگها) تو ڪد. مثل ڪارآگاہ بازے براے پیدا ڪردن خطاها!
5. Loop (حلقه): دستورے ڪہ یہ تڪہ ڪد رو چند بار تڪرار میڪنہ. مثلاً for یا while.
6. Conditional Statement (دستور شرطی): ڪدے ڪہ بستہ بہ یہ شرط اجرا میشہ. مثل if-else (اگہ این، وگرنہ اون).
7. Syntax (سینتڪس): قواعد نوشتارے زبان برنامهنویسے. مثل گرامر زبان انگلیسے، اگہ خرابش ڪنے، ڪدت ڪار نمیڪنه!
8. API (رابط برنامهنویسی): یہ رابط ڪہ بہ برنامهها اجازہ میدہ باهم حرف بزنن. مثلاً گوگل مپز API براے اضافہ ڪردن نقشہ بہ اپت.
9. Version Control (ڪنترل نسخه): سیستمے مثل Git ڪہ تغییرات ڪد رو مدیریت میڪنہ تا بتونے تاریخچہ و نسخههاے مختلف پروژهت رو نگہ داری.
10. Bug (باگ): یہ خطا تو ڪد ڪہ باعث میشہ برنامہ درست ڪار نڪنہ. مثل وقتے اپت ڪرش میڪنه!
11. Object-Oriented Programming (برنامهنویسے شیءگرا): روشے ڪہ توش ڪد رو بہ صورت "اشیاء" سازماندهے میڪنے، مثل ڪلاسها و اشیاء تو پایتون یا جاوا.
12. Compile (ڪامپایل): تبدیل ڪد بہ زبانے ڪہ ڪامپیوتر بفهمہ (مثل تبدیل پایتون بہ ڪد ماشین).
13. Framework (فریمورڪ): مجموعہ ابزارها و ڪتابخونههایے ڪہ ڪار برنامهنویسے رو سادهتر میڪنن، مثل Django یا React.
14. Database (پایگاہ داده): جایے ڪہ دادهها (مثل اطلاعات ڪاربرا) ذخیرہ میشن، مثل MySQL یا MongoDB.
15. Refactoring (بازسازے ڪد): مرتب ڪردن و بهبود ڪد بدون تغییر عملڪردش، مثل تمیز ڪردن اتاق!
✍ Mr.Ashkan
خیلے میبینم ڪہ میگن
وے پے ان تغییر دادیم
پیجمون بستہ شد.
صرافے مسدود ڪرد
چت جے پے تے بلاڪ ڪرد..
دوستان تغییر ایپے بہ تنهایے هیچ مشڪلے درست نمیڪنه
شاید یہ نفر هر روز در سفر باشہ یعنے اون دیگہ باید قید اڪانت هایش رو بزنه؟
تنها محدودیت واسہ بعضے صرافے ها هست ، ڪہ اونم تغییر ایپے مهم نیست، مهم این هست از ڪشور هایے ڪہ صرافے تحریم ڪردہ اے پے نگیرید ، مثل ونزوئلا یا روسیہ یا ..
حالا اینڪہ چہ ایپے نباید متصل بشید بستگے بہ اون صرافے دارہ.
وے پے ان تغییر دادیم
پیجمون بستہ شد.
صرافے مسدود ڪرد
چت جے پے تے بلاڪ ڪرد..
دوستان تغییر ایپے بہ تنهایے هیچ مشڪلے درست نمیڪنه
شاید یہ نفر هر روز در سفر باشہ یعنے اون دیگہ باید قید اڪانت هایش رو بزنه؟
تنها محدودیت واسہ بعضے صرافے ها هست ، ڪہ اونم تغییر ایپے مهم نیست، مهم این هست از ڪشور هایے ڪہ صرافے تحریم ڪردہ اے پے نگیرید ، مثل ونزوئلا یا روسیہ یا ..
حالا اینڪہ چہ ایپے نباید متصل بشید بستگے بہ اون صرافے دارہ.
❤1
مهم ترین عامل
بالا یا پایین بودن کیفیت ویدیو که در اینستاگرام قرار میدید
سرعت اینترنت
و
کیفیت وی پی ان هست
ممکنه یه وی پی ان سرعت دانلودش بالا باشه ولی سرعت اپلودش پایین باشه
همین باعث افت کیفیت میشه.
تنظیمات اینستاگرام هم به صورت پیش فرض کیفیت رو پایین نمیاره مگر اینکه خودتون تغییرش بدید.
بالا یا پایین بودن کیفیت ویدیو که در اینستاگرام قرار میدید
سرعت اینترنت
و
کیفیت وی پی ان هست
ممکنه یه وی پی ان سرعت دانلودش بالا باشه ولی سرعت اپلودش پایین باشه
همین باعث افت کیفیت میشه.
تنظیمات اینستاگرام هم به صورت پیش فرض کیفیت رو پایین نمیاره مگر اینکه خودتون تغییرش بدید.
🚀 افزایش سرعت اندروید و کاهش کندی و هنگ کردن گوشی
‼️آیا میدانید هنگ کردن گوشی شما اغلب به خاطر تأخیرهای سیستمعامل است، نه سرعت پردازنده؟ این تنظیمات مخفی را تغییر دهید تا گوشیتان فوری سریع شود:
🛠️ ترفند فعالسازی سرعت (Developer Options)
فعالسازی منوی مخفی: به Settings (تنظیمات) > About Phone (درباره تلفن) بروید و روی Build Number (شماره ساخت) هفت بار پشت سر هم ضربه بزنید.
ورود به منو: حالا به منوی جدید Developer Options (گزینههای توسعهدهنده) بروید.
⚡️ گام نهایی: نصف کردن تأخیر
سه گزینه زیر را پیدا کنید و مقدارشان را از (1x) به (0.5x) تغییر دهید:
Window animation scale
Transition animation scale
Animator duration scale
💥 نتیجه؟
با این تغییر، تأخیرهای سیستمعامل نصف شده و گوشی شما بدون هیچ هنگی، دو برابر سریعتر به نظر میرسد!
‼️آیا میدانید هنگ کردن گوشی شما اغلب به خاطر تأخیرهای سیستمعامل است، نه سرعت پردازنده؟ این تنظیمات مخفی را تغییر دهید تا گوشیتان فوری سریع شود:
🛠️ ترفند فعالسازی سرعت (Developer Options)
فعالسازی منوی مخفی: به Settings (تنظیمات) > About Phone (درباره تلفن) بروید و روی Build Number (شماره ساخت) هفت بار پشت سر هم ضربه بزنید.
ورود به منو: حالا به منوی جدید Developer Options (گزینههای توسعهدهنده) بروید.
⚡️ گام نهایی: نصف کردن تأخیر
سه گزینه زیر را پیدا کنید و مقدارشان را از (1x) به (0.5x) تغییر دهید:
Window animation scale
Transition animation scale
Animator duration scale
💥 نتیجه؟
با این تغییر، تأخیرهای سیستمعامل نصف شده و گوشی شما بدون هیچ هنگی، دو برابر سریعتر به نظر میرسد!