const totalStars = repos.reduce(
(sum, repo) => sum + repo.stargazers_count,
0
);
متد
reduce روی تمام پروژهها حرکت میکند و تعداد ستارههای هر پروژه را با هم جمع میکند.فرض کنید سه پروژه داریم:
Repository
Stars
Portfolio
15
Chat App
8
Dashboard
12
خروجی برابر خواهد بود با:
35
۳- پیدا کردن زبانهای پرکاربرد
ابتدا یک
Map ساخته میشود.const languageCounts = new Map();
سپس تمام Repositoryها پیمایش میشوند.
for (const repo of repos)
اگر پروژه زبان برنامهنویسی نداشته باشد، از آن عبور میشود.
if (!repo.language) continue;
در غیر این صورت تعداد استفاده از آن زبان افزایش پیدا میکند.
مثلاً نتیجه Map ممکن است این باشد:
TypeScript → 7
JavaScript → 5
Python → 2
Go → 1
در نهایت این زبانها بر اساس تعداد مرتب شده و فقط شش مورد اول انتخاب میشوند.
خروجی نهایی
در پایان تابع این شیء را برمیگرداند:
{
repoCount: repos.length,
totalStars,
topLanguages
}نمونه خروجی:
{
repoCount: 18,
totalStars: 142,
topLanguages: [
"TypeScript",
"JavaScript",
"Python",
"Go",
"Rust",
"C#"
]
}👾3
می تونید سورس کد کل پروژه رو داخل گیت هاب من داشته باشید
https://github.com/V0IDNETWORK/V0IDNETWORK-portfolio-v2
https://github.com/V0IDNETWORK/V0IDNETWORK-portfolio-v2
GitHub
GitHub - V0IDNETWORK/V0IDNETWORK-portfolio-v2
Contribute to V0IDNETWORK/V0IDNETWORK-portfolio-v2 development by creating an account on GitHub.
🤗3
Forwarded from کاف
This media is not supported in your browser
VIEW IN TELEGRAM
لحظهای که صدها مرد برای یک زنِ استثنایی از جا بلند شدند…
تمام آن تشویقها فقط برای یک نام بود: ماری کوری.
زنی که عمرش را وقف علم کرد و مسیر تاریخ را تغییر داد.
NiNa @Kafiha
تمام آن تشویقها فقط برای یک نام بود: ماری کوری.
زنی که عمرش را وقف علم کرد و مسیر تاریخ را تغییر داد.
او با آزمایشهایش روی اورانیوم، مفهوم رادیواکتیویته را کشف کرد،
ویژگیهای رادیواکتیو توریوم را شناخت
و توانست رادیوم را از دل ماده جدا کند—کاری که جهان علم را وارد عصر تازهای کرد ⚛️🔥
ماری کوری نهتنها اولین زنی بود که نوبل گرفت،
بلکه اولین دانشمندی شد که این جایزه را دو بار دریافت کرد؛
یکی در فیزیک (۱۹۰۳) و دیگری در شیمی (۱۹۱۱).
او پایهگذار علم رادیولوژی و یکی از تأثیرگذارترین چهرههای تاریخ علم است.
مادام کوری ثابت کرد
نبوغ جنسیت نمیشناسد؛ فقط اراده، کنجکاوی و شجاعت میخواهد.
و او هر سه را داشت… به شکلی که جهان را مجبور کرد بایستد و برایش دست بزند 👏
NiNa @Kafiha
❤3
VOIDNETWORK
اینا چیه من میسازم😂
from textual.app import App, ComposeResult
from textual.containers import Horizontal, Vertical
from textual.widgets import (
Header,
Footer,
Button,
Static,
DataTable,
ProgressBar,
Input,
)
class MailSender(App):
CSS = """
Screen {
background: #0b1220;
color: white;
}
Header {
background: #2563eb;
color: white;
}
Footer {
background: #111827;
color: #9ca3af;
}
#sidebar {
width: 30;
background: #111827;
border: round #2563eb;
padding: 1;
}
#content {
background: #0f172a;
padding: 1 2;
}
Button {
width: 100%;
height: 3;
margin-bottom: 1;
background: #1e293b;
color: white;
border: round #334155;
}
Button:hover {
background: #2563eb;
color: white;
border: round #3b82f6;
}
Button:focus {
background: #3b82f6;
color: black;
text-style: bold;
}
Input {
margin-top: 1;
border: round #2563eb;
background: #111827;
color: white;
}
DataTable {
margin-top: 1;
height: 1fr;
border: round #334155;
}
ProgressBar {
margin-top: 1;
color: #22c55e;
}
#stats {
height: 10;
padding: 1;
border: round #8b5cf6;
background: #111827;
color: white;
}
"""
def compose(self) -> ComposeResult:
yield Header()
with Horizontal():
with Vertical(id="sidebar"):
yield Static("📧 Mail Sender Pro\n")
yield Button("📊 Dashboard")
yield Button("👥 Contacts")
yield Button("📝 Templates")
yield Button("📨 Campaigns")
yield Button("⚙️ SMTP")
yield Button("📄 Logs")
yield Button("❌ Exit", id="exit")
with Vertical(id="content"):
yield Static(
"""[b]Dashboard[/b]
Total Emails : 12450
Sent : 12120
Failed : 330
SMTP : Connected
""",
id="stats",
)
yield Input(
placeholder="Search email..."
)
table = DataTable()
table.add_columns("Email", "Status")
table.add_row("ali@gmail.com", "✅ Sent")
table.add_row("sara@gmail.com", "✅ Sent")
table.add_row("test@test.com", "❌ Failed")
table.add_row("info@company.com", "⏳ Sending")
yield table
progress = ProgressBar(total=100)
progress.advance(73)
yield progress
yield Footer()
def on_button_pressed(self, event: Button.Pressed):
if event.button.id == "exit":
self.exit()
if __name__ == "__main__":
MailSender().run()
🦄3
VOIDNETWORK
اینا چیه من میسازم😂
راستش کارفرما ازم خواسته بود یه سیستم برای مدیریت ارتباط با کاربران و کارمند هاشون توسعه بدم سیستمی که بتونن خیلی راحت و متمرکز برای همه کاربران، یک کاربر خاص، همه کارمند ها یا حتی فقط یک کارمند، پیامک یا ایمیل ارسال کنن نکته مهم این بود که ارسال پیام ها کاملاً هدفمند، قابل مدیریت و مقیاس پذیر باشه و مدیر سیستم بتونه بدون دردسر مخاطب ها رو انتخاب و کمپین های مختلف رو اجرا کنه
برای همین کل پروژه رو در دو نسخه مجزا پیاده سازی کردم نسخه اول یک پنل گرافیکی (GUI Panel) بود که تمرکزش روی تجربه کاربری سادگی مدیریت و دسترسی سریع به تمام امکانات بود از انتخاب گیرنده ها گرفته تا ارسال انبوه یا تکی پیام مدیریت قالبهای پیام و کنترل فرآیند ارسال
در کنار اون یک نسخه مبتنی بر CLI هم توسعه دادم که بیشتر برای سناریو های اتوماسیون اجرای اسکریپت ها استفاده روی سرور ها و ادغام با سایر سرویس ها طراحی شده بود. این نسخه با وجود رابط متنی،تمام قابلیت های اصلی پنل گرافیکی رو در اختیار قرار میداد و برای محیط هایی که نیاز به سرعت انعطاف و اجرای خودکار فرآیند ها وجود داشت، گزینه بسیار مناسبی بود.
برای همین کل پروژه رو در دو نسخه مجزا پیاده سازی کردم نسخه اول یک پنل گرافیکی (GUI Panel) بود که تمرکزش روی تجربه کاربری سادگی مدیریت و دسترسی سریع به تمام امکانات بود از انتخاب گیرنده ها گرفته تا ارسال انبوه یا تکی پیام مدیریت قالبهای پیام و کنترل فرآیند ارسال
در کنار اون یک نسخه مبتنی بر CLI هم توسعه دادم که بیشتر برای سناریو های اتوماسیون اجرای اسکریپت ها استفاده روی سرور ها و ادغام با سایر سرویس ها طراحی شده بود. این نسخه با وجود رابط متنی،تمام قابلیت های اصلی پنل گرافیکی رو در اختیار قرار میداد و برای محیط هایی که نیاز به سرعت انعطاف و اجرای خودکار فرآیند ها وجود داشت، گزینه بسیار مناسبی بود.
❤2👏1
VOID
Lady is here
رفتم که بخرمش
فروشنده گفت هزینه نصب ویندوز و آنتی ویروس بقیه برنامه های مورد نیاز میشه ۱ میلیون 😂
منم گفتم اوکیه ولی ویندوز نمیخوام
گفت پس چی؟ گفتم ارچ لینوکس بریز روش حتما هم KDE
بنده خدا هم گفت باشه
فردا زنگ زد گفت ویندوز ریختم
فروشنده گفت هزینه نصب ویندوز و آنتی ویروس بقیه برنامه های مورد نیاز میشه ۱ میلیون 😂
منم گفتم اوکیه ولی ویندوز نمیخوام
گفت پس چی؟ گفتم ارچ لینوکس بریز روش حتما هم KDE
بنده خدا هم گفت باشه
فردا زنگ زد گفت ویندوز ریختم
❤2🥰1
لطفا به پیوی مراجعه کنید
به فروش رسید
کم کم دارم به آخرین مراحل توسعه یکی از پروژه های مورد علاقهم می رسم پروژهای که واقعا با اشتیاق و دقت روش کار کردم.
VOIDADB
یک ابزار متن باز و کراس پلتفرم برای مدیریت و کنترل دستگاه های اندرویدی از طریق Wireless ADB با رابط گرافیکی مدرن، CLI قدرتمند و معماری ماژولار که هم بهعنوان یک اپلیکیشن و هم به عنوان یک کتابخانه Python قابل استفاده خواهد بود.
هنوز کار تموم نشده اما بیصبرانه منتظرم نسخه نهایی رو منتشر کنم و بازخورد جامعه متنباز رو ببینم.
VOIDADB
یک ابزار متن باز و کراس پلتفرم برای مدیریت و کنترل دستگاه های اندرویدی از طریق Wireless ADB با رابط گرافیکی مدرن، CLI قدرتمند و معماری ماژولار که هم بهعنوان یک اپلیکیشن و هم به عنوان یک کتابخانه Python قابل استفاده خواهد بود.
هنوز کار تموم نشده اما بیصبرانه منتظرم نسخه نهایی رو منتشر کنم و بازخورد جامعه متنباز رو ببینم.
🏆3
VOIDNETWORK
کم کم دارم به آخرین مراحل توسعه یکی از پروژه های مورد علاقهم می رسم پروژهای که واقعا با اشتیاق و دقت روش کار کردم. VOIDADB یک ابزار متن باز و کراس پلتفرم برای مدیریت و کنترل دستگاه های اندرویدی از طریق Wireless ADB با رابط گرافیکی مدرن، CLI قدرتمند…
This media is not supported in your browser
VIEW IN TELEGRAM
یه review
❤1