<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های محمدرضا دیلمی</title>
        <link>https://virgool.io/feed/@imohamad</link>
        <description>Front-end Developer</description>
        <language>fa</language>
        <pubDate>2026-06-10 22:34:10</pubDate>
        <image>
            <url>https://static.virgool.io/images/default-avatar.jpg</url>
            <title>محمدرضا دیلمی</title>
            <link>https://virgool.io/@imohamad</link>
        </image>

                    <item>
                <title>دریافت اطلاعات از ویرگول</title>
                <link>https://virgool.io/@imohamad/get-data-from-virgool-z1ycckty8q2w</link>
                <description>شاید شما هم دوست داشته باشید آخرین مطالب ویرگول یا آخرین مطالب اکانت خودتون رو توی اپ جاوا اسکریپتیتون نشون بدید، یک ماژول برای NodeJs نوشتم که میتونید باهاش آخرین مطالب ویرگول و اکانت دلخواهتون رو نشون بدید.به سادگی آب خوردن استفاده کنیدابتدا از طریق npm نصب و به برنامه معرفیش کنید:npm install virgool-dataconst virgoolData = require(&quot;virgool-data&quot;);بعد از نصب برای دریافت آخرین پست‌های ویرگول از متد getPosts استفاده کنید:virgoolData.getPosts().then(posts =&gt; console.log(posts));این متد به شما یک Promise برمیگردونه که شامل اطلاعات آخرین پست‌ها هست:[
        {
            &quot;title&quot;: string, //تیتر مطلب
            &quot;link&quot;: string, //لینک مطلب
            &quot;reading&quot;: string, //خواندن ۲ دقیقه
            &quot;time&quot;: string, // ۲ هفته پیش
            &quot;category&quot;: string, // دسته بندی مطلب
            &quot;summary&quot;: string, // خلاصه مطلب
            &quot;cover&quot;: string, // تصویر مطلب
            &quot;like&quot;: string, // تعداد لایک
            &quot;comments&quot;: string, // تعداد نظرات
            &quot;author&quot;: {
                &quot;name&quot;: string, // نام نویسنده
                &quot;username&quot;: string, // نام کاربری نویسنده
                &quot;avatar&quot;: string // عکس پروفایل نویسنده
            }
        },
        {
          ...
        }
     ] برای دریافت اطلاعات یک کاربر هم میتونید از متد getProfile استفاده کنید://get user data - username must be without &quot;@&quot;
//ex: const username = &quot;imohamad&quot;;
virgoolData.getProfile(username).then(user =&gt; console.log(user));این متد هم به شما یک Promise برمیگردونه که شامل اطلاعات کاربر مدنظرتونه: [
        {
            &quot;name&quot;: string, // نام نویسنده
            &quot;username&quot;: string, // نام کاربری نویسنده
            &quot;avatar&quot;: string, // عکس پروفایل نویسنده
            &quot;bio&quot;: string, // بیوگرافی نویسنده
            &quot;followers&quot;: string, // دنبال کنندگان نویسنده
            &quot;following&quot;: string, // دنبال شونده های نویسنده
            &quot;postCount&quot;: number, // تعداد مطالب منتشر شده نویسنده
            &quot;posts&quot;: [
                {
                    &quot;title&quot;: string, // تیتر مطلب
                    &quot;link&quot;: string, // لینک مطلب
                    &quot;reading&quot;: string, // خواندن ۲ دقیقه
                    &quot;time&quot;: string, // ۲ هفته پیش
                    &quot;category&quot;: string, // دسته بندی مطلب
                    &quot;summary&quot;: string, // خلاصه مطلب
                    &quot;cover&quot;: string, // تصویر مطلب
                    &quot;like&quot;: string, // تعداد لایک مطلب
                    &quot;comments&quot;: string // تعداد کامنت های مطلب
                }
            ]
        }
]به همین سادگی و خوشمزگی.از طریق صفحه‌ی گیتهاب هم میتونید به افزودن قابلیت‌های بیشتر به این ماژول کمکم کنید، توی آپدیت‌های بعدی امکان جستجوی مطلب و دسته‌بندی رو هم اضافه میکنم!امیدوارم به دردتون بخوره.</description>
                <category>محمدرضا دیلمی</category>
                <author>محمدرضا دیلمی</author>
                <pubDate>Thu, 11 Oct 2018 17:17:51 +0330</pubDate>
            </item>
                    <item>
                <title>محافظت در برابر حملات فیشینگ توسط افزونه شاپرک</title>
                <link>https://virgool.io/@imohamad/shaparak-verifier-zayyggubbryc</link>
                <description>به عنوان اولین مطلب توی ویرگول خواستم در مورد یه افزونه بنویسم و یه شروعی بشه برای نوشته‌های بعدیم!داستان از این قراره که نزدیک دو سال پیش بود که علی برهانی توییتی زد و گفت یه افزونه برای مرورگر گوگل‌کروم ساخته که از حملات فیشینگ جلوگیری میکنه، به این صورت که زمانی که به درگاه شاپرک متصل میشید با چک کردن آدرس یه لوگوی شاپرک همراه با تیک تایید بهتون نشون میده، خب این خیلی هم خوبه و من واقعا خوشم اومد از این ایده، ولی مشکلی که هست این بود که کسایی که از مرورگر فایرفاکس استفاده میکنن چی؟ پس دست به کار شدم و نسخه‌ی اول شاپرک رو مشابه افزونه کروم برای فایرفاکس نوشتم و منتشر کردم.از اون زمان گذشت تا یک هفته‌ی پیش که من این افزونه رو به نسخه‌ی  ۲  ارتقا دادم، به چند دلیل که مهمترینش نصب نشدن روی نسخه‌ فایرفاکس  ۵۶  به بعد بود چون به طور کلی نحوه توسعه‌ی افزونه‌های فایرفاکس تغییر کرده بود و افزونه‌هایی که با متد قبلی نوشته شده بودن رو ساپورت نمیکرد.افزونه‌ی شاپرکتوی نسخه‌ی جدید پترن چک کردن آدرس دقیق‌تر شده، توی نسخه‌ی قبلی آیکن افزونه به تولبار مرورگر اضافه میشد و ممکن بود بین انبوه افزونه‌های نصب شده توسط کاربر گم بشه یا کاربر متوجه نشه، جدا از اون اگر مکانی توی تولبار برای وجود آیکن افزونه جدید وجود نداشت خود کاربر بایستی افزونه رو بطور دستی از طریق قسمت شخصی‌سازی فایرفاکس به تولبار مرورگرش اضافه میکرد و این به نظرم جالب نمیومد، پس توی نسخه‌ی جدید تصمیم گرفتم نمایش آیکن توی تولبار رو بردارم و به آدرس‌بار جایی که بیشتر توی چشم کاربر هست انتقال بدم.حالا دیگه با آپدیت شدن به نسخه‌ی جدید، این افزونه رو میشه روی هر گوشی که فایرفاکس موبایل روش نصب هست هم استفاده کرد.افزونه‌ی شاپرک در فایرفاکس موبایلامیدوارم به دردتون بخوره و توصیه میکنم حتما نصب کنید چون آدم ممکنه موقع چک کردن آدرس درگاه با خطای دید مواجه بشه، حواسش پرت باشه و متوجه جعلی بودن آدرس نشه،راستی اگه به مشکلی برخوردید میتونید از طریق صفحه‌ی گیتهاب افزونه به من اطلاع بدید، این افزونه رو میتونید برای فایرفاکس  و گوگل‌کروم دانلود کنید.</description>
                <category>محمدرضا دیلمی</category>
                <author>محمدرضا دیلمی</author>
                <pubDate>Fri, 28 Sep 2018 22:10:35 +0330</pubDate>
            </item>
            </channel>
</rss>