💚 سلام دوستان عزیزم 💚

🛑 برای یک برنامه بسیار ارزشمند و هیجان‌انگیز به زبان پایتون آماده شوید!

فلسفه برنامه شماره سی و سه (۳۳):

زمانی که ما از طریق Wireless LAN Adapter دستگاه‌مان (لپتاب‌مان)، یک دستگاه WIFI Router، در اطراف‌مان را پیدا (شناسایی) کرده و با یک گذرواژه به آن متصل می‌شویم، اطلاعات مربوط به آن WIFI Router، در قالب یک فایل ‌Profile، بر روی دستگاه ما ذخیره می‌گردد، و گذرواژه‌ای که در زمان اتصال، ثبت کرده‌ایم، (متاسفانه) به صورت Plain Text، در همان فایل ذخیره می‌گردد!

حال می‌خواهیم برنامه‌ای بنویسیم، که فهرست تمام اسامی WIFI Profile های ثبت شده بر روی دستگاه ما را چاپ نموده و در مقابل هر یک از آن‌ها، گذرواژه مربوطه (ذخیره شده) را نمایش دهد!

نکته: همانند پروژه‌های قبل نیز، می‌خواهیم این کار را به صورت مرحله به مرحله (در چهار مرحله) انجام داده و در نهایت، به یک کد کامل، با رعایت تمام اصول Clean Code و Best Practice دست پیدا کنیم.

#SourceCode #SourceCode10033 #Practical #EthicalHacking
ادمین:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
کانال پایتون:
@DT_PYTHON_LEARNING
.
👍43
📌 عنوان برنامه: برنامه‌ای بنویسید که فهرست تمام WIFI Profile های ثبت شده بر روی دستگاه‌تان را چاپ نموده و در مقابل هر یک از آن‌ها، گذرواژه مربوطه (ذخیره شده) را نمایش دهد؟

مرحله اول

- قدم اول:
در محیط Windows PowerShell دستور ذیل را اجرا کرده و نتیجه آن‌را مشاهده می‌کنیم:

# ********************
netsh wlan show profiles
# ********************

- قدم دوم: حال این دستور را توسط زبان برنامه‌نویسی پایتون اجرا می‌کنیم و نتیجه اجرای این دستور را در متغیری به نام profiles_string ذخیره می‌کنیم:

# ********************
import subprocess

command = "netsh wlan show profiles"
profiles_string = subprocess.getoutput(cmd=command)
print(profiles_string)
# ********************

- قدم سوم: با استفاده از دستورات و توابع مربوط به string، سعی می‌کنیم که از این متن، یک لیست ایجاد کنیم که آیتم‌های آن، اسامی WIFI Network ها باشد:

# ********************
import subprocess

command = "netsh wlan show profiles"
profiles_string = subprocess.getoutput(cmd=command)

index = profiles_string.find("User profiles")

profiles_string = profiles_string[index:]
profiles_string = profiles_string.replace("User profiles", "")
profiles_string = profiles_string.replace("-------------", "")
profiles_string = profiles_string.replace("\r", "")

profiles_lines = profiles_string.split(sep="\n")

wifi_names = []
for line in profiles_lines:
if line != "":
parts = line.split(sep=":")
wifi_name = parts[1].strip()
wifi_names.append(wifi_name)

wifi_names.sort()

for wifi_name in wifi_names:
print(f"[{wifi_name}]")
# ********************

#SourceCode #SourceCode10033 #Practical #EthicalHacking
ادمین:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
کانال پایتون:
@DT_PYTHON_LEARNING
.
3👍2
📌 عنوان برنامه: برنامه‌ای بنویسید که فهرست تمام WIFI Profile های ثبت شده بر روی دستگاه‌تان را چاپ نموده و در مقابل هر یک از آن‌ها، گذرواژه مربوطه (ذخیره شده) را نمایش دهد؟

مرحله دوم

- فرض کنید که نام یکی از WIFI های شما، MobinNet110 باشد.

- قدم اول: در محیط Windows PowerShell دستور ذیل را اجرا کرده و نتیجه آن‌را مشاهده می‌کنیم:

# ********************
netsh wlan show profile name="MobinNet110" key=clear
# ********************

- قدم دوم: حال این دستور را توسط زبان برنامه‌نویسی پایتون اجرا می‌کنیم و نتیجه اجرای این دستور را در متغیری به نام profile_string ذخیره می‌کنیم:

# ********************
import subprocess

wifi_name = "MobinNet110"

command = f'netsh wlan show profile name="{wifi_name}" key=clear'
profile_string = subprocess.getoutput(cmd=command)
print(profile_string)
# ********************

- قدم سوم: با استفاده از دستورات و توابع مربوط به string، سعی می‌کنیم که از این متن، گذرواژه (password) موجود در متن را استخراج کرده و آن‌را نمایش می‌دهیم:

# ********************
import subprocess

wifi_name = "MobinNet110"

command = f'netsh wlan show profile name="{wifi_name}" key=clear'
profile_string = subprocess.getoutput(cmd=command)

index_1 = profile_string.find("Key Content")
index_2 = profile_string.find("Cost settings")

profile_string = profile_string[index_1:index_2]
profile_string = profile_string.replace(":", "")
profile_string = profile_string.replace("Key Content", "")

password = profile_string.strip()
print(f"[{password}]")
# ********************

#SourceCode #SourceCode10033 #Practical #EthicalHacking
ادمین:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
کانال پایتون:
@DT_PYTHON_LEARNING
.
2👍2
📌 عنوان برنامه: برنامه‌ای بنویسید که فهرست تمام WIFI Profile های ثبت شده بر روی دستگاه‌تان را چاپ نموده و در مقابل هر یک از آن‌ها، گذرواژه مربوطه (ذخیره شده) را نمایش دهد؟

مرحله سوم

- حال کافی است که کدهای مرحله یک و مرحله دو را در هم ادغام نماییم!

# ********************
import subprocess

command = "netsh wlan show profiles"
profiles_string = subprocess.getoutput(cmd=command)

index = profiles_string.find("User profiles")

profiles_string = profiles_string[index:]
profiles_string = profiles_string.replace("User profiles", "")
profiles_string = profiles_string.replace("-------------", "")
profiles_string = profiles_string.replace("\r", "")

profiles_lines = profiles_string.split(sep="\n")

wifi_names = []
for line in profiles_lines:
if line != "":
parts = line.split(sep=":")
wifi_name = parts[1].strip()
wifi_names.append(wifi_name)

wifi_names.sort()

for wifi_name in wifi_names:
command = f'netsh wlan show profile name="{wifi_name}" key=clear'
profile_string = subprocess.getoutput(cmd=command)

index_1 = profile_string.find("Key Content")
index_2 = profile_string.find("Cost settings")

profile_string = profile_string[index_1:index_2]
profile_string = profile_string.replace(":", "")
profile_string = profile_string.replace("Key Content", "")

password = profile_string.strip()
print(f"[{wifi_name}]: [{password}]")
# ********************

نکته: همان‌طور که ملاحظه می‌کنید، برنامه به زیبایی کار می‌کند، ولی خروجی نتایج، از نظر ظاهری و قیافه چندان جذابیت ندارد، لذا در مرحله چهارم (مرحله آخر) یک سری تکنیک‌های حرفه‌ای به این کد اضافه می‌کنیم تا نتایج مورد قبول و پسند ما قرار گیرد!

#SourceCode #SourceCode10033 #Practical #EthicalHacking
ادمین:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
کانال پایتون:
@DT_PYTHON_LEARNING
.
3👍1
📌 عنوان برنامه: برنامه‌ای بنویسید که فهرست تمام WIFI Profile های ثبت شده بر روی دستگاه‌تان را چاپ نموده و در مقابل هر یک از آن‌ها، گذرواژه مربوطه (ذخیره شده) را نمایش دهد؟

مرحله چهارم (پایانی)

🛑 یک برنامه کاربردی و هیجان‌انگیز با کلی تکنیک‌های حرفه‌ای برنامه‌نویسی!

# ********************
import os, subprocess

os.system(command="cls")

command = "netsh wlan show profiles"
profiles_string = subprocess.getoutput(cmd=command)

index = profiles_string.find("User profiles")

profiles_string = profiles_string[index:]
profiles_string = profiles_string.replace("User profiles", "")
profiles_string = profiles_string.replace("-------------", "")
profiles_string = profiles_string.replace("\r", "")

profiles_lines = profiles_string.split(sep="\n")

wifi_names = []
for line in profiles_lines:
if line != "":
parts = line.split(sep=":")
wifi_name = parts[1].strip()
wifi_names.append(wifi_name)

wifi_names.sort()

for index, wifi_name in enumerate(wifi_names):
command = f'netsh wlan show profile name="{wifi_name}" key=clear'
profile_string = subprocess.getoutput(cmd=command)

index_1 = profile_string.find("Key Content")
index_2 = profile_string.find("Cost settings")

profile_string = profile_string[index_1:index_2]
profile_string = profile_string.replace(":", "")
profile_string = profile_string.replace("Key Content", "")

password = profile_string.strip()
print(f"[{(index + 1):>2}] - [{wifi_name:<32}]: [{password}]")

print()
# ********************

#SourceCode #SourceCode10033 #Practical #EthicalHacking
ادمین:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
کانال پایتون:
@DT_PYTHON_LEARNING
.
3👍2
معروف‌ترین سایت‌ها/اپلیکیشن‌هایی که با Python نوشته شده‌اند:

1. Instagram
2. Pinterest
3. Disqus
4. Spotify
5. Dropbox
6. Uber
7. Reddit

📌 منبع:
https://DjangoStars.com

#Site #Statistics

ادمین:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
کانال پایتون:
@DT_PYTHON_LEARNING
.
4👍2
[No_Starch_Press]_Black_Hat_Python.pdf
4.6 MB
☘️ معرفی کتاب‌های الکترونیکی ☘️

Title: Black Hat Python
Author: Justin Seitz / Tim Arnold

Published Date: 2021
Publisher: No Starch Press

Pages: 188
Edition: Second
Language: English

Description: Python Programming for Hacker and Pentesters

#Book #EthicalHacking

🆔 @Dariush_Tasdighi
🆔
@IranianExperts
🆔
@DT_PYTHON_LEARNING
.
4👍3
Forwarded from 🛑 Iranian Experts 🛑 (𝓓𝓪𝓻𝓲𝓾𝓼𝓱 𝓣𝓪𝓼𝓭𝓲𝓰𝓱𝓲)
معرفی یک سایت فوق‌العاده!
https://www.VirusTotal.com

گاهی اوقات پیش می‌آید که یک فایلی بدست ما رسیده است، که نسبت به ویروسی بودن آن مشکوک هستیم. هر چند که آن‌را توسط Antivirus خودمان، اسکن (Scan) کرده‌ایم و آنتی‌ویروس، هیچ مورد مشکوکی را شناسایی نکرده است! برای این منظور می‌توانیم وارد این سایت شده و فایل خودمان را در این سایت آپلود نموده، تا توسط حداقل ۵۰ موتور/بانک‌اطلاعاتی آنتی‌ویروس دیگر بررسی گردد!

📌 برای دوستانی که در زمینه Ethical Hacking فعالیت می‌کنند، نیز این سایت بسیار مفید می‌باشد! بدین صورت که بعد از نوشتن یک بدافزار بومی، می‌توانند از طریق این سایت، بررسی نمایند که بدافزار نوشته شده، توسط چه آنتی‌ویروس‌هایی ممکن است شناسایی شود! در ضمن، این عزیزان می‌توانند در این سایت ثبت‌نام کرده و بعد از دریافت API Key، از طریق سامانه‌های خود، اقدام به ارسال فایل‌های مشکوک نموده و آن‌ها را بررسی نمایند. البته نسخه رایگان این سایت، محدودیت‌هایی دارد که قابل چشم‌پوشی و اغماض می‌باشد.

#Site #EthicalHacking

ادمین:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
کانال پایتون:
@DT_PYTHON_LEARNING
.
👍43
📌 عنوان برنامه: برنامه‌ای بنویسید که به سایت IMDB متصل شده و از اطلاعات درج شده در متن صفحات HTML آن:

۱. فهرست ۲۵۰ فیلم برتر جهان
۲. فهرست تمام فیلم‌هایی که در نام آن‌ها کلمات Star Wars وجود دارد
۳. فهرست ۵۰ سریال برتر که در ژانر علمی / تخیلی می‌باشند
۴. فهرست ۵۰ فیلم برتر که در ژانر علمی / تخیلی می‌باشند

را بدست آورده و به ما نمایش دهد؟

نکته: این برنامه، برای عزیزانی نوشته شده است که هنوز در حوزه زبان برنامه‌نویسی پایتون Junior می‌باشند! در برنامه بعدی از امکانات هیجان‌انگیز زیادی استفاده می‌گردد و برنامه بعدی برای عزیزان Senior مناسب می‌باشد.

نکته: تقریبا تا پایان سال ۲۰۲۲، برای حل این تمرین، کتابخانه‌ای به نام IMDBPY وجود داشت که از ابتدای سال ۲۰۲۳، توسعه‌دهنده این کتابخانه، کتابخانه دیگری به نام Cinemagoer، با امکانات جذاب‌تری توسعه داده است که ما آخرین نسخه آن استفاده می‌کنیم!

نکته: متاسفانه پاسخ شما یک، در بعضی از مواقع کار نمی‌کند! ولی بقیه پاسخ‌ها به درستی کار می‌کنند.

# ********************
# pip install cinemagoer
# https://cinemagoer.github.io/
# https://github.com/cinemagoer/cinemagoer
# ********************
from imdb import Cinemagoer

instance = Cinemagoer()

# 1
movies = instance.get_top250_movies()
# 2
# movies = instance.search_movie(title="Star Wars")
# 3
# movies = instance.get_top50_tv_by_genres(genres="Sci-Fi")
# 4
# movies = instance.get_top50_movies_by_genres(genres="Sci-Fi")

for movie in movies:
print(movie)
# ********************

#SourceCode #SourceCode10034 #Practical #General
ادمین:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
کانال پایتون:
@DT_PYTHON_LEARNING
.
5👍2
📌 عنوان برنامه: برنامه‌ای بنویسید که به سایت IMDB متصل شده و از اطلاعات درج شده در متن صفحات HTML آن:

۱. فهرست ۲۵۰ فیلم برتر جهان
۲. فهرست تمام فیلم‌هایی که در نام آن‌ها کلمات Star Wars وجود دارد
۳. فهرست ۵۰ سریال برتر که در ژانر علمی / تخیلی می‌باشند
۴. فهرست ۵۰ فیلم برتر که در ژانر علمی / تخیلی می‌باشند

را بدست آورده و به ما نمایش دهد؟

نکته: در این برنامه، می‌خواهیم اطلاعات برحسب سال تولید مرتب شده و در ابتدای هر سطر اطلاعاتی، شماره ردیف نمایش داده شده و در همان سطر، سال تولید، Rating، و مناسب سن بودن نیز نمایش داده شود.

نکته: این برنامه، برای عزیزان Senior نوشته شده است!

نکته: تقریبا تا پایان سال ۲۰۲۲، برای حل این تمرین، کتابخانه‌ای به نام IMDBPY وجود داشت که از سال ۲۰۲۳، توسعه‌دهنده این کتابخانه، کتابخانه دیگری به نام Cinemagoer، با امکانات جذاب‌تری توسعه می‌دهد!

نکته: متاسفانه پاسخ شما یک، بعضی وقت‌ها کار نمی‌کند! ولی بقیه پاسخ‌ها به درستی کار می‌کنند.

# ********************
# pip install cinemagoer
# https://cinemagoer.github.io/
# https://github.com/cinemagoer/cinemagoer
# ********************
from imdb import Cinemagoer

instance = Cinemagoer()

# 1
# movies = instance.get_top250_movies()
# 2
movies = instance.search_movie(title="Star Wars")
# 3
# movies = instance.get_top50_tv_by_genres(genres="Sci-Fi")
# 4
# movies = instance.get_top50_movies_by_genres(genres="Sci-Fi")

movies.sort(key=lambda item: item["year"], reverse=True)

for index, movie in enumerate(movies):
id = movie.movieID

title = movie["title"]

year = movie["year"]

rating = "-"
if "rating" in movie:
rating = movie["rating"]

certificate = "-"
if "certificates" in movie:
certificate = movie["certificates"][0]

message = f"[{index + 1:>2}] {title:<55} Year: {year:<4} Rating: {rating:<3} Certificate: {certificate:<8}"
# message += f" [{id:>8}]"

print(message)
# ********************

#SourceCode #SourceCode10034 #Practical #General
ادمین:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
کانال پایتون:
@DT_PYTHON_LEARNING
.
👍53
❤️ سلام دوستان عزیزم ❤️

ضمن عرض سلام و خیر مقدم به یکایک شما عزیزان و بزرگواران، لازم دیدم که به یک نکته در خصوص این کانال اشاره نموده و از شما تقاضایی نمایم:

🔴 متاسفانه اکثر Source Code های موجود در اینترنت، دوره‌های آموزشی، داخلی یا خارجی و غیره، معمولا در کمال شلختگی نوشته شده، فلسفه Source Code ها بعضا مطرح نگردیده، کدها قدیمی و یا بلااستفاده و غیره می‌باشند!

🟢 ولی در این کانال، تمام Source Code ها، در کمال دقت، وسواس و با رعایت تمام تکنیک‌های مربوط به Clean Code, Beatiful Code, Best Practice نوشته می‌شوند و صرفا یک Copy / Paste ساده نخواهد بود! لذا از شما عزیزان، صمیمانه تقاضا می‌گردد، در صورتی که در متون و یا Source Code ها، ایراد و یا اشکالی مشاهده نمودید، آن‌را به اینجانب اعلام نموده تا ضمن آن‌که در اسرع وقت، نسبت به اصلاح آن‌ها اقدام نماییم، نام شما در همان مطلب درج خواهد گردید و از حسن نظر و دقت و توجه شما، کمال تقدیر و تشکر به عمل خواهد آمد. 👌

با تشکر و احترام
داریوش تصدیقی 🙏

ادمین:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
کانال پایتون:
@DT_PYTHON_LEARNING
.
Please open Telegram to view this post
VIEW IN TELEGRAM
23👍6
🔴 Learning Main Guard Pattern in Python!

❤️ سلام دوستان عزیزم، انشاءالله در خصوص مفهوم Main Guard و فلسفه آن در زبان برنامه‌نویسی پایتون، در دوره آموزش جامع پایتون، توضیحات مفصلی خواهم داد! ولی تا قبل از آن لازم دیدم که به شما عزیزان تذکر دهم که برای نوشتن برنامه‌های پایتون، مثلا برای چاپ ساده عبارت Hello, World و غیره، به جای نوشتن دستور ذیل:

# ********************
print("Hello, World!")
# ********************

باید (بهتر است) از دستورات (روش) ذیل استفاده نمایید:

# ********************
def main():
print("Hello, World!")

if __name__ == "main":
main()
# ********************

📌 تذکر: در تمام سورس‌کدهایی که تاکنون در این کانال نوشته شده و یا نوشته خواهند شد، به دلیل آن‌که حجم سورس‌کدها زیاد نشود، از این الگوی برنامه‌نویسی استفاده نخواهیم کرد، ولی شما باید در پروژه‌های خود حتما از این الگو استفاده نمایید!

#BestPractice

🆔 @Dariush_Tasdighi
🆔
@IranianExperts
🆔
@DT_PYTHON_LEARNING
.
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍3
Media is too big
VIEW IN TELEGRAM
🔴 بخشی از دوره حضوری پایتون برای نوجوانان در موسسه آموزشی سماتک

نکته:
دوره بسیار جذاب و هیجان‌انگیزی بود، ۲۴ نوجوان و جوان مستعد، باهوش و با انگیزه، که همگی توانستند با موفقیت این دوره را سپری کرده و نمره خوبی دریافت نمایند...

نکته: علاقه، تلاش و پشت‌کار این عزیزان، به حدی مرا به وجد آورده و هیجان‌زده کرد که تصمیم گرفتم این کانال پایتون را راه‌اندازی نمایم...

#Movie

🆔 @Dariush_Tasdighi
🆔 @IranianExperts
🆔 @DT_PYTHON_LEARNING
.
Please open Telegram to view this post
VIEW IN TELEGRAM
21👍6
📌 عنوان برنامه شماره یک: برنامه‌ای بنویسید که محتوای دو متغیر عددی (x, y) را با استفاده از متغیر کمکی تغییر دهد؟
- راهنمایی: در سه خط

# ********************
x = 10
y = 15

z = x
x = y
y = z
# ********************

📌 عنوان برنامه شماره دو: برنامه‌ای بنویسید که محتوای دو متغیر عددی (x, y) را بدون! استفاده از متغیر کمکی تغییر دهد؟
- راهنمایی: در سه خط

# ********************
x = 10
y = 15

x = x + y
y = x - y
x = x - y
# ********************

📌 عنوان برنامه شماره سه: برنامه‌ای بنویسید که محتوای دو متغیر عددی (x, y) را بدون! استفاده متغیر کمکی، و صرفا در یک خط تغییر دهد؟

# ********************
x = 10
y = 15

x, y = y, x
# ********************

نکته مهم: پاسخ هیجان‌انگیز برنامه شماره سه، صرفا در زبان برنامه‌نویسی پایتون امکان‌پذیر است! و نمونه آن (تا جایی که در جریان هستم) در زبان‌های برنامه‌نویسی دیگر وجود ندارد!

نکته: دستور ذیل:

x, y = y, x

در واقع معادل دستور ذیل می‌باشد (Tupple) که با یک عملیات Unzip، ما را به نتیجه می‌رساند:

x, y = (y, x)

#SourceCode #SourceCode10035 #Basic

🆔 @Dariush_Tasdighi
🆔
@IranianExperts
🆔
@DT_PYTHON_LEARNING
.
7👍3
📌 عنوان برنامه: برنامه‌ای بنویسید که متنی (sentence) که برای آن تعریف شده است را بررسی کرده، و حرف (حروفی) که بیشترین تکرار را دارد(ند) را به ما نمایش دهد:

# ********************
sentence = "This is a common interview question"
# ********************

نکته: با توجه به متن فوق، پاسخ صحیح حروف i و فضای خالی، با پنج‌بار تکرار می‌باشد.

نکته مهم:
این سوالی است که معمولا در اکثر مصاحبه‌های استخدامی پایتون، از عزیزان پرسیده می‌شود!

# ********************
sentence = "This is a common interview question"

char_frequency = {}
for char in sentence:
if not char in char_frequency:
char_frequency[char] = 1
else:
char_frequency[char] += 1

items = char_frequency.items()
sorted_char_frequency = sorted(items, key=lambda item: item[1], reverse=True)

max_count = sorted_char_frequency[0][1]
print(f"Max Count: {max_count}")

for item in sorted_char_frequency:
if item[1] == max_count:
print(f"[{item[0]}]")
else:
break
# ********************

#SourceCode #SourceCode10036 #Basic

🆔 @Dariush_Tasdighi
🆔 @IranianExperts
🆔 @DT_PYTHON_LEARNING
.
👍62
❤️ سلام دوستان عزیزم ❤️

🔴 برای یک برنامه هیجان‌انگیز و کاربردی دیگر، با زبان برنامه‌نویسی پایتون آماده شوید...

شرح برنامه:‌ برنامه‌ای که اطلاعات اکانت Github خودمان و یا شخص دیگری را دریافت کرده، و به طور خودکار، تمام Repository های Fork نشده آن اکانت (Account) را شناسایی کرده، و در ضمن، نام Branch اصلی هر یک از آن Repository ها را استخراج کرده (master / main)، سپس پوشه‌ای به همان نام Account ایجاد نموده، و کلیه سورس‌کدهای هر یک از Repository ها را، در قالب یک فایل ZIP، به زیبایی دانلود می‌کند!

📌 نکته: ضمنا برنامه کاملا هوشمند بوده و اگر مثلا چند هفته و یا چند ماه بعد، مجددا برنامه را برای همان اکانت اجرا نماییم، صرفا Repository های Update شده را دانلود می‌کند!

نکته: به دلیل جذابیت و کاربردی بودن این برنامه، و این‌که به غیر از گرفتن کلی ایده‌های جذاب، کلی از نکات و تکنیک‌های زبان برنامه‌نویسی پایتون را نیز فرا خواهید گرفت و یا برایتان مرور می‌گردد، احتمالا علاوه بر انتشار سورس‌کد، فیلم آموزشی این برنامه نیز تولید و منتشر خواهد شد...

🔴 نکته مهم: قابل توجه شاگردان عزیز و گرامی اینجانب، در کلاس‌های عمومی C# Fundamental و یا Programming in C# 1، و البته دیگر عزیزان: شما از این پس می‌توانید، با استفاده از این برنامه، هر از گاهی، نسبت به دانلود کلیه سورس‌کدهای موجود در اکانت‌های Github اینجانب اقدام نمایید:

https://github.com/dariush-tasdighi
https://github.com/learning-csharp

#SourceCode #SourceCode10037 #Practical #EthicalHacking

🆔 @Dariush_Tasdighi
🆔
@IranianExperts
🆔
@DT_PYTHON_LEARNING
.
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍2
Media is too big
VIEW IN TELEGRAM
❤️ سلام دوستان عزیزم ❤️

شرح برنامه:‌
برنامه‌ای که اطلاعات اکانت Github خودمان و یا شخص دیگری را دریافت کرده، و به طور خودکار، تمام Repository های Fork نشده آن اکانت (Account) را شناسایی کرده، و در ضمن، نام Branch اصلی هر یک از آن Repository ها را استخراج کرده (master / main)، سپس پوشه‌ای به همان نام Account ایجاد نموده، و کلیه سورس‌کدهای هر یک از Repository ها را، در قالب یک فایل ZIP، به زیبایی دانلود می‌کند!

📌 نکته: ضمنا برنامه کاملا هوشمند بوده و اگر مثلا چند هفته و یا چند ماه بعد، مجددا برنامه را برای همان اکانت اجرا نماییم، صرفا Repository های Update شده را دانلود می‌کند!

🔴 نکته: دوستان عزیزم، فارغ از این‌که به زبان برنامه‌نویسی پایتون علاقه دارید یا خیر! و یا دانشی در این خصوص دارید یا خیر! قویا مشاهده این فیلم را به شما توصیه می‌کنم!

https://github.com/dariush-tasdighi
https://github.com/learning-csharp

#Movie #SourceCode #SourceCode10037 #Practical #EthicalHacking

🆔 @Dariush_Tasdighi
🆔
@IranianExperts
🆔
@DT_PYTHON_LEARNING
.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍54
عنوان برنامه:‌ دانلود فایل‌های یک Repository

# ********************
import os, requests

os.system(command="cls")
username = input("What is github account: ").lower()

url = f"https://api.github.com/users/{username}/repos"

try:
response = requests.get(url=url)
except:
print(f"Connection Error!")
quit()

if (
not response
or response.status_code != 200
or response.text == ""
or response.text == "[]"
or "Not Found" in response.text
):
print(f"Repository '{username}' not found or empty!")
quit()

response_json = response.json()

non_fork_list = []

for item in response_json:
if item["fork"] == False:
name = item["name"].upper()
updated_at = item["updated_at"]
default_branch = item["default_branch"]
data = (name, default_branch, updated_at)
non_fork_list.append(data)

non_fork_list.sort()

for index, item in enumerate(non_fork_list):
message = f"[{(index + 1):>3}] - [{item[2]:<20}] - [{item[1]:<10}] - {item[0]}"
print(message)

if os.path.exists(path=username) == False:
os.mkdir(path=username)

index = 0
for item in non_fork_list:
updated_at = (
item[2].replace(":", "_").replace("-", "_").replace("T", "_").replace("Z", "")
)

file_name = f"{item[0]}_{updated_at}.zip"
path_name = f"{username}\{file_name}"
if os.path.exists(path=path_name):
break

index += 1

url = f"https://github.com/{username}/{item[0]}/archive/refs/heads/{item[1]}.zip"

response = requests.get(url=url, stream=True)
if response.status_code == 200:
with open(file=path_name, mode="wb") as file:
for chunk in response.iter_content(chunk_size=1024):
file.write(chunk)

message = f"[{(index):>3}] - File '{file_name}' downloaded."
print(message)
# ********************

#SourceCode #SourceCode10037 #Practical #EthicalHacking

🆔 @Dariush_Tasdighi
🆔
@IranianExperts
🆔
@DT_PYTHON_LEARNING
.
👍72
🟢 آموزش

هر کدام از ساختمان داده‌های پایتون، چه قابلیت‌هایی دارند!

#Python #Learning #Basic

🆔 @Dariush_Tasdighi
🆔
@IranianExperts
🆔
@DT_PYTHON_LEARNING
.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍117
📌 عنوان برنامه: برنامه‌ای بنویسید که نسبت به شرایط و علاقه‌مان، رنگ قلم و رنگ زمینه خروجی تغییر کند؟

نکته: تا امروز، تمام برنامه‌هایی که نوشته‌ایم، برنامه‌های اصطلاحا Console Application بوده و نتیجه آن‌ها در محیط Console / Terminal به صورت سفید (رنگ قلم) روی سیاه (رنگ زمینه) اجرا می‌شدند. این دو رنگ (سفید/سیاه) شاید در دراز مدت، حس خوبی از نظر ظاهری به ما ندهند! ضمن آن‌که در برنامه‌های جدی، خصوصا در برنامه‌های مربوط به Ethical Hacking، شاید بخواهیم اتفاقات خاص و یا نامطلوب را مثلا با رنگ قلم / زمینه قرمز (برای تاکید یا توجه بیشتر) به کاربر نمایش دهیم! برای این منظور نصب Module ذیل، و استفاده از دستورات و پارامترهای مربوط به آن، نتیجه (ظاهر) مناسب‌تری ایجاد می‌کند:

# ********************
# pip install colorama
# https://github.com/tartley/colorama
# ********************
from colorama import Fore, Back

print(f"{Fore.RED}Hello, World (1)!")
print(f"{Fore.YELLOW}Hello, World (2)!{Fore.RESET}")
print(f"{Back.GREEN}Hello, World (3)!{Back.RESET}")
print(f"{Fore.MAGENTA}Hello, World (4)!")
print(f"Hello, World (5)!")
print(f"{Fore.RESET}Hello, World (6)!")
# ********************

#SourceCode #SourceCode10038 #Basic #General

🆔 @Dariush_Tasdighi
🆔
@IranianExperts
🆔
@DT_PYTHON_LEARNING
.
5👍2