git-annex-importfeed(1) General Commands Manual git-annex-importfeed(1)

git-annex-importfeed - وارد کردن فایل‌ها از فیدهای پادکست

git annex importfeed [url ...]

محتویات پادکست‌ها و سایر فیدهای RSS و Atom را وارد مخزن می‌کند. فقط فایل‌هایی را دانلود می‌کند که محتوای آن‌ها پیش‌تر به مخزن اضافه نشده باشد؛ بنابراین می‌توانید فایل‌های حاصل را حذف کنید، نام آن‌ها را تغییر دهید و غیره، و اجرای مجدد دستور باعث ایجاد نسخه‌های تکراری از آن‌ها نخواهد شد.

هنگامی که yt-dlp نصب شده باشد، می‌توان از آن برای دانلود پیوندهای موجود در فید استفاده کرد. این قابلیت امکان وارد کردن مواردی مانند لیست‌های پخش یوتیوب (YouTube playlists) را فراهم می‌کند. (با این حال، این ویژگی به‌طور پیش‌فرض غیرفعال است زیرا ممکن است یک خطر امنیتی باشد. برای جزئیات بیشتر به مستندات annex.security.allowed-ip-addresses در git-annex(1) مراجعه کنید.)

برای اینکه فرایند واردسازی، متادیتا را از فید به فایل‌های واردشده اضافه کند:

git config annex.genmetadata true

به‌طور پیش‌فرض، فایل‌های دانلودشده در دایرکتوری با عنوان فید قرار می‌گیرند و نام‌گذاری فایل‌ها بر اساس عنوان آیتم درون فید انجام می‌شود. این رفتار را می‌توان با استفاده از گزینه --template تغییر داد.

فایل‌های موجود توسط این دستور بازنویسی (overwrite) نمی‌شوند. اگر فایلی با نام "some feed/foo.mp3" از قبل وجود داشته باشد، به جای آن در "some feed/2_foo.mp3" (یا 3، 4 و غیره) نوشته خواهد شد. گاهی اوقات ممکن است یک فید نشانی (URL) یک آیتم را تغییر دهد که در نتیجه نشانی جدید در چنین نام فایلی دانلود می‌شود.

دانلود اجباری آیتم‌هایی که قبلاً مشاهده شده‌اند.
این گزینه‌ها رفتاری مشابه با هنگام استفاده از git-annex-addurl(1) دارند.
جلوگیری از دانلود فوری نشانی‌ها (URLs). نشانی همچنان (از طریق درخواست HEAD) بررسی می‌شود تا از وجود آن اطمینان حاصل شود و در صورت امکان حجم آن به دست آید.
نشانی‌ها فوراً دانلود نمی‌شوند و از ذخیره کردن حجم محتوای نشانی خودداری می‌شود. این کار باعث می‌شود git-annex هر محتوایی را که در آینده در آنجا باشد بپذیرد.
جلوگیری از مدیریت و پردازش خاص نشانی‌ها توسط yt-dlp، bittorrent و سایر ریموت‌های ویژه (special remotes). برای مثال این گزینه باعث می‌شود importfeed یک فایل .torrent را دانلود کند، نه محتوایی را که به آن اشاره می‌کند.
الزام می‌کند که محتوای اشاره‌شده توسط نشانی با استفاده از yt-dlp یا یک ریموت ویژه دانلود شود، نه محتوای خام نشانی وب. اگر این کار ممکن نباشد، واردسازی با شکست مواجه شده و در نوبت بعدی وارد کردن فید دوباره تلاش خواهد شد.
به جای دانلود نشانی و تجزیه آن به عنوان یک فید rss/atom برای یافتن فایل‌های قابل ورود، از yt-dlp برای استخراج محتوای وب (screen scrape) به عنوان معادل فید و وارد کردن موارد یافت‌شده استفاده می‌کند.
محل ذخیره فایل‌ها را کنترل می‌کند.
الگوی پیش‌فرض به این صورت است: '${feedtitle}/${itemtitle}${extension}'
متغیرهای در دسترس در الگو شامل مواردی هستند که اطلاعات مربوط به فید را دارند: feedtitle، feedauthor، feedurl
و مواردی که اطلاعات مربوط به هر یک از آیتم‌های درون فید را نگه‌داری می‌کنند: itemtitle، itemauthor، itemsummary، itemdescription، itemrights، itemid.
همچنین title همان itemtitle است اما اگر آیتم عنوانی نداشته باشد به feedtitle بازمی‌گردد، و author همان itemauthor است اما اگر آیتم پدیدآورنده‌ای نداشته باشد به feedauthor بازمی‌گردد.
(تمامی موارد بالا هنگامی که annex.genmetadata تنظیم شده باشد به عنوان متادیتا نیز اضافه می‌شوند.)
متغیر extension پسوند فایل در فید است، یا اگر پسوند قابل تشخیص نباشد گاهی ".m" خواهد بود.
الگو همچنین دارای متغیرهایی برای زمان انتشار یک آیتم است:
itempubyear (YYYY)، itempubmonth (MM)، itempubday (DD)، itempubhour (HH)، itempubminute (MM)، itempubsecond (SS)، itempubdate (به صورت YYYY-MM-DD یا اگر تاریخ فید قابل تجزیه نباشد، مقدار خام موجود در فید).
(این متغیرها از منطقه زمانی UTC استفاده می‌کنند، نه منطقه زمانی محلی.)
به‌طور پیش‌فرض، فایل‌های gitignore رعایت می‌شوند و از دانلود نشانی در فایلی که نادیده گرفته شده خودداری خواهد شد. این گزینه باعث می‌شود چنین فایل‌هایی بدون در نظر گرفتن موارد نادیده‌گرفته‌شده اضافه شوند.
اجرای دانلودهای متعدد به صورت موازی. برای مثال: -J4
تنظیم این مقدار روی "cpus" یک کار را به ازای هر هسته پردازنده (CPU) اجرا می‌کند.
مشخص می‌کند که از کدام بک‌اند کلید-مقدار (key-value backend) استفاده شود.
فعال‌سازی خروجی JSON. این گزینه برای تجزیه توسط برنامه‌هایی که از git-annex استفاده می‌کنند در نظر گرفته شده است. هر خط از خروجی یک شیء JSON است.
گنجاندن اشیای پیشرفت در خروجی JSON.
پیام‌هایی که به‌طور معمول در خروجی خطای استاندارد چاپ می‌شدند، در عوض در داخل JSON گنجانده می‌شوند.
همچنین می‌توان از گزینه‌های git-annex-common-options(1) استفاده کرد.

git-annex(1)

git-annex-addurl(1)

Joey Hess <id@joeyh.name>