مطالب
Blogger auto poster

حتما مطالب «خلاصه اشتراک‌های روز xyz» را دیده‌اید و شاید گفته باشید که ... عجب حالی دارد؛ هر شب ساعت 12، یک لیست مرتب را ارسال می‌کند! باید خدمتتان عرض کنم که بیشتر از 90 درصد کار تهیه و ارسال این لیست‌ها، خودکار است؛ منهای روزی چندبار کلیک کردن بر روی لینک Share در عناوین Google reader و همین! (البته اخیرا شده ارسال Public به GooglePlus)
برای اتوماسیون این‌کار، یک برنامه را تهیه کرده‌ام که این‌کارها را انجام می‌دهد:
هر چند دقیقه یکبار (قابل تنظیم است)، فید حاصل از مطالب به اشتراک گذاشته شده در Google reader را می‌خواند و ذخیره می‌کند (یا موارد عمومی گوگل پلاس را). بانک اطلاعاتی آن هم یک فایل XML ساده است. از این جهت که روزی حدودا 20 رکورد یا کمتر، نیازی به بانک اطلاعاتی آنچنانی ندارد. سپس آخر هر شب، تمام این‌ها را تبدیل به یک لیست Html ایی کرده و به صورت خودکار در این بلاگ ارسال می‌کند.
بنابراین تنها کاری که من به صورت دستی انجام می‌دهم کلیک کردن بر روی لینک Share در Google reader است (یا ارسال به GooglePlus). سپس این‌ها به صورت خودکار به فید مرتبط اضافه می‌شوند و مابقی آن هم که عنوان شد.



از کجا می‌شود آن‌را دریافت کرد؟
این پروژه به صورت سورس باز از آدرس زیر قابل دریافت است:


سورس باز بودن آن هم از این جهت برای خیلی‌ها شاید اهمیت داشته باشد که بالاخره باید نام کاربری و کلمه عبور اکانت جی میل خود را در آن وارد کنند. آیا امن است؟ آیا اطلاعات من جایی ارسال نمی‌شود؟ پاسخ به این سؤالات هم با مطالعه سورس برنامه قابل دریافت است.


چگونه باید آن‌را تنظیم کرد؟
کلیه تنظیمات این برنامه و یا سرویس آن، در فایل .config همراه آن قرار دارند. این فایل xml ایی را با مثلا notepad باز کرده و تغییرات لازم را در آن اعمال کنید (یا از طریق رابط کاربری برنامه هم قابل انجام است):

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="BlogUrl" value="https://www.blogger.com/feeds/blogId/posts/default" />
<add key="UserName" value="name@gmail.com" />
<add key="Password" value="myPass..." />
<add key="PostAt" value="00:05" />
<add key="FeedToParse" value="http://feeds2.feedburner.com/VahidsSharedItemsInGoogleReader" />
<add key="DBName" value="D:\Prog\db.xml"/>
<add key="Tag" value="News, daily news" />
<add key="Title" value="خلاصه اشتراک‌های روز " />
<add key="UsePersianDate" value="true" />
<add key="ErrorsLogFile" value="D:\Prog\errors.log"/>
<add key="ReadSitesDataIntervalMin" value="15"/>
<add key="GooglePlusUserId" value="105013528531611201860"/>

<!--proxy settings-->
<add key="IsProxyEnabled" value="false"/>
<add key="ProxyServerAddress" value="127.0.0.1"/>
<add key="ProxyServerPort" value="8080"/>
<add key="ProxyServerUserName" value="user1"/>
<add key="ProxyServerPassword" value="pass1"/>
</appSettings>
</configuration>

  • BlogUrl آدرس ویژه وبلاگ شما در بلاگر است. این مورد تنها نکته‌ی مهم تنظیمات جاری است:
برای یافتن آن به آدرس http://www.blogger.com/home مراجعه کنید. روی لینک «ویرایش پیام‌ها» که کلیک نمائید چیزی شبیه به لینک زیر خواهد بود:
http://www.blogger.com/posts.g?blogID=number
این عدد ذکر شده پس از blogId همان عددی است که باید در آدرس BlogUrl خود جایگزین کنید.
  • نام کاربری و کلمه عبور، همان آدرس ایمیل و کلمه عبور جی‌میل شما هستند (جهت ارسال خودکار مطلب به بلاگ شما نیاز است).
  • PostAt مشخص می‌کند که در چه ساعت و دقیقه‌ای باید ارسال روزانه صورت گیرد. لطفا به فرمت آن دقت کنید. به همین شکل باید باشد و هر زمانی که آن‌را تنظیم کنید، تنها اطلاعات یک روز قبل را ارسال خواهد کرد. مهم نیست 5 دقیقه بامداد باشد یا 5 صبح یا 6 عصر. بدیهی است مطالب امروز هم در PostAt روز بعد ارسال می‌شوند و همینطور الی آخر. (البته در خود برنامه امکان انتخاب موارد دلخواه و سپس ارسال دستی آن‌ها هم هست. حالت خودکار همانی است که توضیح داده شد.)
  • FeedToParse آدرس فید اشتراک‌های شما در گوگل ریدر است که قرار است اطلاعات آن دریافت و ذخیره و سپس خلاصه آن ارسال شود (این مورد اختیاری است؛ از این جهت که گوگل آن‌را اخیرا غیرفعال کرده).
  • DBName نام و مسیر بانک اطلاعاتی برنامه است. فقط کافی است این مسیر را اصلاح کنید. بانک اطلاعاتی هم به صورت خودکار در زمان اولین بار اجرای آن ساخته می‌شود و نیاز به تنظیم دیگری ندارد (همان پیش فرض آن کافی است).
  • Tag در اینجا نام برچسب‌هایی است که قرار است مطلب خودکار ارسالی تحت آن‌ها یا در گروه آن‌ها در وبلاگ شما ارسال شوند. بهتر است حداقل یک مورد را ذکر کنید. بیشتر از یک مورد را باید با کاما از هم جدا کنید.
  • Title عنوان مطلب خودکاری است که در سایت شما نمایش داده می‌شود. برنامه به صورت خودکار تاریخ روز قبل را هم به آن اضافه می‌کند. (حداقل فعلا اینطور است)
  • UsePersianDate در اینجا تاریخ شمسی و راست به چپ بودن خروجی را تعیین می‌کند. اگر نیازی به آن نداشتید،‌ آن‌را false کنید.
  • ErrorsLogFile محل فایل log خطاهای برنامه را مشخص می‌کند. اگر در حین کار برنامه خطایی رخ دهد در این فایل که مسیر آن‌را نیاز است اصلاح کنید، ثبت خواهد شد (پیش فرض آن کافی است).
  • ReadSitesDataIntervalMin مشخص می‌کند که هر چند دقیقه یکبار فید ذکر شده در قسمت FeedToParse باید بررسی شود (یا موارد گوگل پلاس شما بررسی شوند). عموما هر 10 دقیقه یکبار کافی است.
  • GooglePlusUserId همان شماره کاربری شما در گوگل پلاس است. برای یافتن آن باید به صفحه «پروفایل» در گوگل پلاس، مراجعه کرده و به آدرس آن دقت نمود: https://plus.google.com/u/0/userId/posts . این userId را در تنظیمات برنامه وارد کنید (فقط موارد Public شما توسط برنامه دریافت خواهند شد).
سایر موارد هم کاملا مشخص است و نیاز به توضیحات خاصی ندارند.


چند نکته
در این برنامه توضیحات شما در حین به اشتراک گذاری در گوگل پلاس نسبت به توضیحات انگلیسی اصلی آن ارجحیت دارد.
توضیحی منسوخ شده ...!
اگر به طراحی گوگل ریدر دقت کرده باشید، حداقل دو لینک به اشتراک گذاری دارد. به اشتراک گذاری ساده و به اشتراک گذاری به همراه کامنت. اگر مورد دوم را انتخاب کنید و توضیحی فارسی را ارائه دهید (اصطلاحا annotation اضافه کنید)، سرویس برنامه جاری توانایی تشخیص آن‌را داشته و از آن بجای عنوان لینک‌ مورد نظر استفاده خواهد کرد. استفاده مهم آن می‌تواند تبدیل عناوین انگلیسی به فارسی جهت ارائه در سایت باشد. (این مورد اختیاری است)
روش دوم: زمانیکه گزینه share with note را انتخاب کنید،‌ اگر بر روی عنوان مطلب ظاهر شده کلیک نمائید،‌ قابل ویرایش می‌شود (نکته‌ای که در نگاه اول مشخص نیست).