توثيق API للوصفات

يتم تعريف واجهة برمجة تطبيقات كتابة الوصفات بواسطة BasicNewsRecipe

class calibre.web.feeds.news.BasicNewsRecipe(options, log, progress_reporter)[المصدر]

فئة أساسية تحتوي على المنطق اللازم في جميع الوصفات. عن طريق تجاوز المزيد والمزيد من الوظائف في هذه الفئة، يمكنك إنشاء وصفات أكثر تخصيصًا/قوة. للحصول على مقدمة تعليمية لإنشاء الوصفات، راجع إضافة موقعك الإخباري المفضل.

classmethod adeify_images(soup)[المصدر]

إذا كانت وصفتك عند تحويلها إلى EPUB تواجه مشاكل مع الصور عند عرضها في Adobe Digital Editions، فاستدعِ هذا الأسلوب من داخل postprocess_html().

classmethod image_url_processor(baseurl, url)[المصدر]

قم بإجراء بعض المعالجة على عناوين URL للصور (ربما إزالة قيود الحجم للصور التي تم إنشاؤها ديناميكيًا، وما إلى ذلك) وأعد عنوان URL المعالج. أعد None أو سلسلة فارغة لتخطي جلب الصورة.

classmethod print_version(url)[المصدر]

خذ url يشير إلى صفحة الويب التي تحتوي على محتوى المقال وأعد URL الذي يشير إلى النسخة المطبوعة من المقال. افتراضيًا لا يفعل شيئًا. على سبيل المثال:

def print_version(self, url):
    return url + '?&pagewanted=print'
classmethod tag_to_string(tag, use_alt=True, normalize_whitespace=True)[المصدر]

أسلوب ملائم لأخذ BeautifulSoup Tag واستخراج النص منه بشكل متكرر، بما في ذلك أي أقسام CDATA وسمات alt للعلامة. أعد سلسلة Unicode قد تكون فارغة.

use_alt: إذا كان True، حاول استخدام سمة alt للعلامات التي لا تحتوي على أي محتوى نصي

tag: BeautifulSoup Tag

abort_article(msg=None)[المصدر]

استدعِ هذا الأسلوب داخل أي من أساليب المعالجة المسبقة لإلغاء التنزيل للمقال الحالي. مفيد لتخطي المقالات التي تحتوي على محتوى غير مناسب، مثل مقالات الفيديو الخالصة.

abort_recipe_processing(msg)[المصدر]

يتسبب في قيام نظام تنزيل الوصفات بإلغاء تنزيل هذه الوصفة، مع عرض رسالة ملاحظات بسيطة للمستخدم.

add_toc_thumbnail(article, src)[المصدر]

استدعِ هذا من populate_article_metadata مع سمة src لعلامة <img> من المقال المناسبة للاستخدام كصورة مصغرة تمثل المقال في جدول المحتويات. ما إذا كانت الصورة المصغرة تُستخدم فعليًا يعتمد على الجهاز (حاليًا تُستخدم فقط بواسطة أجهزة Kindle). لاحظ أن الصورة المشار إليها يجب أن تكون قد تم تنزيلها بنجاح، وإلا فسيتم تجاهلها.

canonicalize_internal_url(url, is_link=True)[المصدر]

أعد مجموعة من التمثيلات القانونية لـ url. التنفيذ الافتراضي يستخدم فقط اسم مضيف الخادم ومسار عنوان URL، متجاهلاً أي معلمات استعلام أو أجزاء، إلخ. يجب أن تكون التمثيلات القانونية فريدة عبر جميع عناوين URL لمصدر الأخبار هذا. إذا لم تكن كذلك، فقد يتم حل الروابط الداخلية بشكل غير صحيح.

المعلمات:

is_link -- صحيح إذا كان عنوان URL يأتي من رابط داخلي في ملف HTML. خطأ إذا كان عنوان URL هو عنوان URL المستخدم لتنزيل مقال.

cleanup()[المصدر]

يتم استدعاؤها بعد تنزيل جميع المقالات. استخدمها لإجراء أي تنظيف مثل تسجيل الخروج من مواقع الاشتراك، وما إلى ذلك.

clone_browser(br)[المصدر]

استنسخ المتصفح br. تُستخدم المتصفحات المستنسخة للتنزيلات متعددة الخيوط، نظرًا لأن mechanize ليس آمنًا للخيوط. يجب أن تلتقط إجراءات الاستنساخ الافتراضية معظم تخصيصات المتصفح، ولكن إذا قمت بشيء غريب في وصفتك، فيجب عليك تجاوز هذا الأسلوب في وصفتك واستنساخ يدويًا.

تستخدم مثيلات المتصفح المستنسخة نفس CookieJar الآمنة للخيوط افتراضيًا، ما لم تقم بتخصيص معالجة ملفات تعريف الارتباط.

default_cover(cover_file)[المصدر]

إنشاء غلاف عام للوصفات التي لا تحتوي على غلاف

download()[المصدر]

تنزيل ومعالجة جميع المقالات من الخلاصات في هذه الوصفة. يجب استدعاء هذا الأسلوب مرة واحدة فقط على مثيل وصفة معين. استدعاؤه أكثر من مرة سيؤدي إلى سلوك غير معرف. :return: المسار إلى index.html

extract_readable_article(html, url)[المصدر]

يستخرج محتوى المقال الرئيسي من 'html'، وينظفه ويعيده كـ زوج (article_html, extracted_title). يستند إلى خوارزمية القراءة الأصلية من Arc90.

get_article_url(article)[المصدر]

تجاوز في فئة فرعية لتخصيص استخراج URL الذي يشير إلى محتوى كل مقال. أعد عنوان URL للمقال. يتم استدعاؤه مع article، وهو كائن يمثل مقالًا تم تحليله من خلاصة. راجع feedparser. افتراضيًا، يبحث عن الرابط الأصلي (للخلاصات الموزعة عبر خدمة مثل FeedBurner أو Pheedo) وإذا وجد، يعيد ذلك أو يعيد article.link.

get_browser(*args, **kwargs)[المصدر]

إرجاع مثيل متصفح يستخدم لجلب المستندات من الويب. افتراضيًا يعيد مثيل متصفح mechanize يدعم ملفات تعريف الارتباط، ويتجاهل robots.txt، ويتعامل مع التحديثات ولديه وكيل مستخدم شائع عشوائي.

لتخصيص المتصفح، تجاوز هذا الأسلوب في فئتك الفرعية كـ:

def get_browser(self, *a, **kw):
    br = super().get_browser(*a, **kw)
    # Add some headers
    br.addheaders += [
        ('My-Header', 'one'),
        ('My-Header2', 'two'),
    ]
    # Set some cookies
    br.set_cookie('name', 'value')
    br.set_cookie('name2', 'value2', domain='.mydomain.com')
    # Make a POST request with some data
    br.open('https://someurl.com', {'username': 'def', 'password': 'pwd'}).read()
    # Do a login via a simple web form (only supported with mechanize browsers)
    if self.username is not None and self.password is not None:
        br.open('https://www.nytimes.com/auth/login')
        br.select_form(name='login')
        br['USERID']   = self.username
        br['PASSWORD'] = self.password
        br.submit()
    return br
get_cover_url()[المصدر]

إرجاع URL إلى صورة الغلاف لهذا الإصدار أو None. افتراضيًا يعيد قيمة العضو self.cover_url والتي تكون عادةً None. إذا كنت تريد أن تقوم وصفتك بتنزيل غلاف للكتاب الإلكتروني، فقم بتجاوز هذا الأسلوب في فئتك الفرعية، أو عيّن المتغير العضو self.cover_url قبل استدعاء هذا الأسلوب.

get_extra_css()[المصدر]

افتراضيًا، يعيد self.extra_css. تجاوز إذا كنت تريد إنشاء extra_css برمجيًا.

get_feeds()[المصدر]

إرجاع قائمة من خلاصات RSS لجلبها لهذا الملف الشخصي. يجب أن يكون كل عنصر في القائمة عبارة عن tuple من عنصرين بالشكل (عنوان، عنوان URL). إذا كان العنوان None أو سلسلة فارغة، فسيتم استخدام العنوان من الخلاصة. هذا الأسلوب مفيد إذا كانت وصفتك تحتاج إلى إجراء بعض المعالجة لمعرفة قائمة الخلاصات التي يجب تنزيلها. إذا كان الأمر كذلك، فتجاوز في فئتك الفرعية.

get_masthead_title()[المصدر]

تجاوز في الفئة الفرعية لاستخدام شيء آخر غير عنوان الوصفة

get_masthead_url()[المصدر]

إرجاع URL إلى صورة رأس الصفحة لهذا الإصدار أو None. افتراضيًا يعيد قيمة العضو self.masthead_url الذي هو None عادةً. إذا كنت تريد أن تقوم وصفتك بتنزيل رأس صفحة لـ الكتاب الإلكتروني، فتجاوز هذا الأسلوب في فئتك الفرعية، أو عيّن المتغير العضو self.masthead_url قبل استدعاء هذا الأسلوب. تُستخدم صور رأس الصفحة في ملفات Kindle MOBI.

get_obfuscated_article(url)[المصدر]

إذا قمت بتعيين articles_are_obfuscated، يتم استدعاء هذا الأسلوب مع كل عنوان URL للمقال. يجب أن يعيد المسار إلى ملف على نظام الملفات يحتوي على HTML المقال. تتم معالجة هذا الملف بواسطة محرك جلب HTML التكراري، لذا يمكن أن يحتوي على روابط لصفحات/صور على الويب. بدلاً من ذلك، يمكنك إرجاع قاموس بالشكل: {'data': <بيانات HTML>، 'url': <عنوان URL المحلول للمقال>}. هذا يتجنب الحاجة إلى إنشاء ملفات مؤقتة. مفتاح url في القاموس مفيد إذا كان عنوان URL الفعلي للمقال مختلفًا عن عنوان URL الذي تم تمريره إلى هذا الأسلوب، على سبيل المثال، بسبب عمليات إعادة التوجيه. يمكن حذفه إذا لم يتغير عنوان URL.

عادةً ما يكون هذا الأسلوب مفيدًا للمواقع التي تحاول جعل الوصول إلى محتوى المقالات تلقائيًا صعبًا.

get_url_specific_delay(url)[المصدر]

إرجاع التأخير بالثواني قبل تنزيل عنوان URL هذا. إذا كنت ترغب في تحديد التأخير لعنوان URL المحدد برمجيًا، فتجاوز هذا الأسلوب في فئتك الفرعية، مع إرجاع self.delay افتراضيًا لعناوين URL التي لا تريد التأثير عليها.

يعيد:

عدد عشري، التأخير بالثواني.

index_to_soup(url_or_raw, raw=False, as_tree=False, save_raw=None)[المصدر]

أسلوب ملائم يأخذ عنوان URL لصفحة الفهرس ويعيد BeautifulSoup منه.

url_or_raw: إما عنوان URL أو صفحة الفهرس التي تم تنزيلها كسلسلة

أعد True إذا كان يجب اتباع الرابط أو False بخلاف ذلك. افتراضيًا، يطرح NotImplementedError مما يتسبب في تجاهل التنزيل.

المعلمات:
  • url -- عنوان URL الذي يجب اتباعه

  • tag -- العلامة التي اشتق منها عنوان URL

parse_feeds()[المصدر]

إنشاء قائمة مقالات من قائمة الخلاصات التي أعادها BasicNewsRecipe.get_feeds(). إرجاع قائمة بكائنات Feed.

parse_index()[المصدر]

يجب تنفيذ هذا الأسلوب في الوصفات التي تحلل موقع ويب بدلاً من الخلاصات لإنشاء قائمة من المقالات. الاستخدامات النموذجية هي لمصادر الأخبار التي تحتوي على صفحة ويب "إصدار مطبوع" تسرد جميع المقالات في الإصدار المطبوع الحالي. إذا تم تنفيذ هذه الدالة، فسيتم استخدامها بدلاً من BasicNewsRecipe.parse_feeds().

يجب أن تعيد قائمة. يجب أن يكون كل عنصر في القائمة tuple من عنصرين بالشكل ('عنوان الخلاصة', قائمة المقالات).

يجب أن تحتوي كل قائمة مقالات على قواميس بالشكل:

{
'title'       : article title,
'url'         : URL of print version,
'date'        : The publication date of the article as a string,
'description' : A summary of the article
'content'     : The full article (can be an empty string). Obsolete
                do not use, instead save the content to a temporary
                file and pass a file:///path/to/temp/file.html as
                the URL.
}

للحصول على مثال، راجع وصفة تنزيل The Atlantic. بالإضافة إلى ذلك، يمكنك إضافة 'author' لمؤلف المقال.

إذا كنت ترغب في إجهاض المعالجة لسبب ما وجعل calibre يعرض للمستخدم رسالة بسيطة بدلاً من خطأ، فاستدعِ abort_recipe_processing().

populate_article_metadata(article, soup, first)[المصدر]

يتم استدعاؤها عند تنزيل كل صفحة HTML تابعة للمقال. تهدف إلى استخدامها للحصول على بيانات وصفية للمقال مثل المؤلف/الملخص/إلخ. من HTML المحلل (soup).

المعلمات:
  • article -- كائن من الفئة calibre.web.feeds.Article. إذا قمت بتغيير الملخص، تذكر أيضًا تغيير text_summary

  • soup -- HTML المحلل التابع لهذا المقال

  • first -- صحيح إذا وفقط إذا كان HTML المحلل هو الصفحة الأولى من المقال.

postprocess_book(oeb, opts, log)[المصدر]

قم بتشغيل أي معالجة لاحقة مطلوبة على الكتاب الإلكتروني الذي تم تنزيله وتحليله.

المعلمات:
  • oeb -- كائن OEBBook

  • opts -- خيارات التحويل

postprocess_html(soup, first_fetch)[المصدر]

يتم استدعاء هذا الأسلوب مع مصدر كل ملف HTML تم تنزيله، بعد تحليله للروابط والصور. يمكن استخدامه لإجراء معالجة لاحقة قوية بشكل تعسفي على HTML. يجب أن يعيد soup بعد معالجته.

المعلمات:
  • soup -- مثيل BeautifulSoup يحتوي على HTML الذي تم تنزيله.

  • first_fetch -- صحيح إذا كانت هذه هي الصفحة الأولى من مقال.

preprocess_html(soup)[المصدر]

يتم استدعاء هذا الأسلوب مع مصدر كل ملف HTML تم تنزيله، قبل تحليله للروابط والصور. يتم استدعاؤه بعد التنظيف كما هو محدد بواسطة remove_tags وما إلى ذلك. يمكن استخدامه لإجراء معالجة مسبقة قوية بشكل تعسفي على HTML. يجب أن يعيد soup بعد معالجته.

soup: مثيل BeautifulSoup يحتوي على HTML الذي تم تنزيله.

preprocess_image(img_data, image_url)[المصدر]

قم بإجراء بعض المعالجة على بيانات الصورة التي تم تنزيلها. يتم استدعاء هذا على البيانات الخام قبل إجراء أي تغيير في الحجم. يجب أن يعيد البيانات الخام المعالجة. أعد None لتخطي الصورة.

preprocess_raw_html(raw_html, url)[المصدر]

يتم استدعاء هذا الأسلوب مع مصدر كل ملف HTML تم تنزيله، قبل تحليله إلى شجرة كائنات. raw_html هي سلسلة يونيكود تمثل HTML الخام الذي تم تنزيله من الويب. url هو عنوان URL الذي تم تنزيل HTML منه.

لاحظ أن هذا الأسلوب يعمل قبل preprocess_regexps.

يجب أن يعيد هذا الأسلوب raw_html المعالج ككائن unicode.

publication_date()[المصدر]

استخدم هذا الأسلوب لتعيين تاريخ نشر هذا الإصدار. الافتراضي هو لحظة التنزيل. يجب أن يعيد كائن datetime.datetime.

skip_ad_pages(soup)[المصدر]

يتم استدعاء هذا الأسلوب مع مصدر كل ملف HTML تم تنزيله، قبل تطبيق أي من سمات التنظيف مثل remove_tags، keep_only_tags. لاحظ أن preprocess_regexps ستكون قد تم تطبيقها بالفعل. وهو يهدف إلى السماح للوصفة بتخطي صفحات الإعلانات. إذا كانت soup تمثل صفحة إعلان، أعد HTML للصفحة الحقيقية. وإلا أعد None.

soup: مثيل BeautifulSoup يحتوي على HTML الذي تم تنزيله.

sort_index_by(index, weights)[المصدر]

أسلوب ملائم لفرز العناوين في index وفقًا لـ weights. يتم فرز index في مكانه. يعيد index.

index: قائمة عناوين.

weights: قاموس يربط الأوزان بالعناوين. إذا لم تكن أي عناوين في الفهرس موجودة في الأوزان، فيُفترض أن يكون لها وزن 0.

articles_are_obfuscated = False

عيّن إلى True وقم بتنفيذ get_obfuscated_article() للتعامل مع مواقع الويب التي تحاول جعل استخراج المحتوى صعبًا.

auto_cleanup = False

استخراج جميع النصوص تلقائيًا من صفحات المقالات التي تم تنزيلها. يستخدم الخوارزميات من مشروع readability. تعيين هذا إلى True يعني أنك لا داعي للقلق بشأن تنظيف HTML الذي تم تنزيله يدويًا (على الرغم من أن التنظيف اليدوي سيكون دائمًا أفضل).

auto_cleanup_keep = None

حدد العناصر التي يجب ألا يزيلها خوارزمية التنظيف التلقائي أبدًا. الصيغة هي تعبير XPath. على سبيل المثال:

auto_cleanup_keep = '//div[@id="article-image"]' will keep all divs with
                                               id="article-image"
auto_cleanup_keep = '//*[@class="important"]' will keep all elements
                                            with class="important"
auto_cleanup_keep = '//div[@id="article-image"]|//span[@class="important"]'
                  will keep all divs with id="article-image" and spans
                  with class="important"
browser_type = 'mechanize'

محرك المتصفح المحاكي الذي سيتم استخدامه عند التنزيل من الخوادم. الافتراضي هو استخدام محرك متصفح Python mechanize، الذي يدعم تسجيل الدخول. ومع ذلك، إذا لم تكن بحاجة إلى تسجيل الدخول، ففكر في تغيير هذا إلى إما 'webengine' الذي يستخدم متصفح Chromium فعليًا لإجراء طلبات الشبكة أو 'qt' الذي يستخدم الواجهة الخلفية لشبكة Qt. يدعم كل من 'webengine' و 'qt' بروتوكول HTTP/2، وهو ما لا يدعمه mechanize، وبالتالي يصعب بصمته لخدمات حماية الروبوتات.

center_navbar = True

إذا كان True، يكون شريط التنقل محاذيًا للوسط، وإلا يكون محاذيًا لليسار

compress_news_images = False

عيّن هذا إلى False لتجاهل جميع معلمات التحجيم والضغط وتمرير الصور دون تعديل. إذا كان True وتركت معلمات الضغط الأخرى عند قيمها الافتراضية، فسيتم تحجيم الصور لتناسب أبعاد الشاشة المحددة بواسطة ملف تعريف الإخراج وضغطها إلى حجم أقصاه (عرض * ارتفاع)/16 حيث العرض × الارتفاع هما أبعاد الصورة المحجّمة.

compress_news_images_auto_size = 16

العامل المستخدم عند ضغط صور JPEG تلقائيًا. إذا تم تعيينه على None، يتم تعطيل الضغط التلقائي. وإلا، سيتم تقليل حجم الصور إلى (عرض * ارتفاع)/compress_news_images_auto_size بايت إذا أمكن عن طريق تقليل مستوى الجودة، حيث العرض × الارتفاع هما أبعاد الصورة بالبكسل. الحد الأدنى لجودة JPEG سيكون 5/100، لذا من الممكن ألا يتم استيفاء هذا القيد. يمكن تجاوز هذه المعلمة بواسطة المعلمة compress_news_images_max_size التي توفر حجمًا أقصى ثابتًا للصور. لاحظ أنه إذا قمت بتمكين scale_news_images_to_device، فسيتم تحجيم الصورة أولاً ثم تقليل جودتها حتى يصبح حجمها أقل من (عرض * ارتفاع)/العامل حيث العرض والارتفاع هما الآن أبعاد الصورة المحجّمة. بمعنى آخر، يحدث هذا الضغط بعد التحجيم.

compress_news_images_max_size = None

عيّن جودة JPEG بحيث لا تتجاوز الصور الحجم المحدد (بالكيلوبايت). إذا تم تعيينها، فإن هذه المعلمة تتجاوز الضغط التلقائي عبر compress_news_images_auto_size. الحد الأدنى لجودة JPEG سيكون 5/100، لذا من الممكن ألا يتم استيفاء هذا القيد.

conversion_options = {}

خيارات خاصة بالوصفة للتحكم في تحويل المحتوى الذي تم تنزيله إلى كتاب إلكتروني. ستتجاوز هذه الخيارات أي قيم محددة من قبل المستخدم أو الإضافة، لذا استخدمها فقط إذا كان ذلك ضروريًا للغاية. على سبيل المثال:

conversion_options = {
  'base_font_size'   : 16,
  'linearize_tables' : True,
}
cover_margins = (0, 0, '#ffffff')

افتراضيًا، سيتم استخدام صورة الغلاف التي أعادها get_cover_url() كـ غلاف للدورية. تجاوز هذا في وصفتك يوجه calibre لتقديم الغلاف الذي تم تنزيله في إطار يكون عرضه وارتفاعه معبرًا عنه كنسبة مئوية من الغلاف الذي تم تنزيله. cover_margins = (10, 15، '#ffffff') يضيف هامشًا أبيض للغلاف 10px على اليسار واليمين، 15px في الأعلى والأسفل. أسماء الألوان معرفة هنا. لاحظ أنه لسبب ما، الأبيض لا يعمل دائمًا في Windows. استخدم #ffffff بدلاً من ذلك

delay = 0

التأخير الافتراضي بين التنزيلات المتتالية بالثواني. قد تكون الوسيطة رقمًا عشريًا للإشارة إلى وقت أكثر دقة. راجع get_url_specific_delay() لتنفيذ تأخيرات لكل عنوان URL.

description = ''

بضعة أسطر تصف المحتوى الذي تقوم هذه الوصفة بتنزيله. سيتم استخدام هذا بشكل أساسي في واجهة المستخدم الرسومية التي تعرض قائمة بالوصفات.

encoding = None

حدد ترميزًا تجاوزيًا للمواقع التي تحتوي على مواصفات مجموعة أحرف غير صحيحة. الأكثر شيوعًا هو تحديد latin1 واستخدام cp1252. إذا كان None، حاول اكتشاف الترميز. إذا كان قابلاً للاستدعاء، يتم استدعاء القابل للاستدعاء بحجتين: كائن الوصفة والمصدر الذي سيتم فك ترميزه. يجب أن يعيد المصدر المفكوك.

extra_css = None

حدد أي CSS إضافي يجب إضافته إلى ملفات HTML التي تم تنزيلها. سيتم إدراجه في علامات <style>، قبل علامة </head> الختامية مباشرة، وبالتالي يتجاوز جميع CSS باستثناء ما هو معلن باستخدام سمة style على علامات HTML الفردية. لاحظ أنه إذا كنت ترغب في إنشاء extra_css برمجيًا، فتجاوز الأسلوب get_extra_css() بدلاً من ذلك. على سبيل المثال:

extra_css = '.heading { font: serif x-large }'
feeds = None

قائمة الخلاصات المراد تنزيلها. يمكن أن تكون إما [url1, url2, ...] أو [('title1', url1), ('title2', url2),...]

filter_regexps = []

قائمة من التعبيرات العادية التي تحدد الروابط التي يجب تجاهلها. إذا كانت فارغة يتم تجاهلها. تستخدم فقط إذا لم يتم تنفيذ is_link_wanted. على سبيل المثال:

filter_regexps = [r'ads\.doubleclick\.net']

سيتم إزالة جميع عناوين URL التي تحتوي على ads.doubleclick.net.

يجب تعريف واحد فقط من BasicNewsRecipe.match_regexps أو BasicNewsRecipe.filter_regexps.

handle_gzip = True

عيّن إلى False إذا كنت لا ترغب في استخدام عمليات نقل مضغوطة بـ gzip مع متصفح mechanize. لاحظ أن بعض الخوادم القديمة قد تواجه مشاكل مع gzip.

ignore_duplicate_articles = None

تجاهل المقالات المكررة الموجودة في أكثر من قسم واحد. المقال المكرر هو مقال له نفس العنوان و/أو عنوان URL. لتجاهل المقالات ذات العنوان نفسه، عيّن هذا إلى:

ignore_duplicate_articles = {'title'}

لاستخدام عناوين URL بدلاً من ذلك، عيّنه إلى:

ignore_duplicate_articles = {'url'}

للمطابقة على العنوان أو عنوان URL، عيّنه إلى:

ignore_duplicate_articles = {'title', 'url'}
keep_only_tags = []

احتفظ فقط بالعلامات المحددة وأبنائها. للحصول على تنسيق تحديد علامة، راجع BasicNewsRecipe.remove_tags. إذا لم تكن هذه القائمة فارغة، فسيتم إفراغ علامة <body> وإعادة ملئها بالعلامات التي تتطابق مع الإدخالات في هذه القائمة. على سبيل المثال:

keep_only_tags = [dict(id=['content', 'heading'])]

سيحتفظ فقط بالعلامات التي تحتوي على سمة id بقيمة "content" أو "heading".

language = 'und'

اللغة التي توجد بها الأخبار. يجب أن تكون رمز ISO-639 بطول حرفين أو ثلاثة أحرف

masthead_url = None

افتراضيًا، سيستخدم calibre صورة افتراضية لرأس الصفحة (Kindle فقط). تجاوز هذا في وصفتك لتوفير عنوان URL لاستخدامه كرأس صفحة.

match_regexps = []

قائمة من التعبيرات العادية التي تحدد الروابط التي يجب اتباعها. إذا كانت فارغة، يتم تجاهلها. تستخدم فقط إذا لم يتم تنفيذ is_link_wanted. على سبيل المثال:

match_regexps = [r'page=[0-9]+']

ستطابق جميع عناوين URL التي تحتوي على page=some number.

يجب تعريف واحد فقط من BasicNewsRecipe.match_regexps أو BasicNewsRecipe.filter_regexps.

max_articles_per_feed = 100

الحد الأقصى لعدد المقالات التي يمكن تنزيلها من كل خلاصة. هذا مفيد بشكل أساسي للخلاصات التي لا تحتوي على تواريخ مقالات. لمعظم الخلاصات، يجب عليك استخدام BasicNewsRecipe.oldest_article

needs_subscription = False

إذا كان True، ستطلب واجهة المستخدم الرسومية من المستخدم اسم مستخدم وكلمة مرور لاستخدامهما أثناء التنزيل. إذا تم تعيينه على "اختياري"، يصبح استخدام اسم المستخدم وكلمة المرور اختياريًا

no_stylesheets = False

علامة ملائمة لتعطيل تحميل أوراق الأنماط لمواقع الويب التي تحتوي على أوراق أنماط معقدة للغاية وغير مناسبة للتحويل إلى تنسيقات الكتب الإلكترونية. إذا كان True، فلن يتم تنزيل أوراق الأنماط ومعالجتها

oldest_article = 7.0

أقدم مقال يمكن تنزيله من مصدر الأخبار هذا. بالأيام.

preprocess_regexps = []

قائمة من قواعد استبدال regexp لتشغيلها على HTML الذي تم تنزيله. يجب أن يكون كل عنصر في القائمة عبارة عن tuple من عنصرين. يجب أن يكون العنصر الأول في الـ tuple تعبيرًا عاديًا مجمعًا، والثاني دالة قابلة للاستدعاء تأخذ كائن مطابقة واحد وتعيد سلسلة لاستبدال المطابقة. على سبيل المثال:

preprocess_regexps = [
   (re.compile(r'<!--Article ends here-->.*</body>', re.DOTALL|re.IGNORECASE),
    lambda match: '</body>'),
]

سيتم إزالة كل شيء من <!--Article ends here--> إلى </body>.

publication_type = 'unknown'

نوع المنشور عيّن إلى صحيفة أو مجلة أو مدونة. إذا تم تعيينه إلى None، فلن يتم كتابة أي بيانات وصفية لنوع المنشور إلى ملف opf.

recipe_disabled = None

عيّن إلى سلسلة غير فارغة لتعطيل هذه الوصفة. ستُستخدم السلسلة كـ رسالة التعطيل

recipe_specific_options = None

حدد خيارات خاصة بهذه الوصفة. ستكون هذه الخيارات متاحة لـ المستخدم لتخصيصها في علامة التبويب المتقدمة في مربع حوار جلب الأخبار أو في سطر أوامر ebook-convert. يتم تحديد الخيارات كقاموس يربط اسم الخيار ببيانات وصفية حول الخيار. على سبيل المثال:

recipe_specific_options = {
    'edition_date': {
        'short': 'The issue date to download',
        'long':  'Specify a date in the format YYYY-mm-dd to download the issue corresponding to that date',
        'default': 'current',
    }
}

عند تشغيل الوصفة، ستكون self.recipe_specific_options قاموسًا يربط اسم الخيار بقيمة الخيار التي حددها المستخدم. عندما لا يتم تحديد الخيار من قبل المستخدم، سيكون له القيمة المحددة بواسطة 'default'. إذا لم يتم تحديد قيمة افتراضية، فلن يكون الخيار موجودًا في القاموس على الإطلاق، عندما لا يتم تحديده من قبل المستخدم.

recursions = 0

عدد مستويات الروابط التي يجب اتباعها في صفحات المقالات

remove_attributes = []

قائمة السمات التي سيتم إزالتها من جميع العلامات. على سبيل المثال:

remove_attributes = ['style', 'font']
remove_empty_feeds = False

إذا كان True، يتم إزالة الخلاصات الفارغة من الإخراج. لا يؤثر هذا الخيار إذا تم تجاوز parse_index في الفئة الفرعية. وهو مخصص فقط للوصفات التي تعيد قائمة من الخلاصات باستخدام feeds أو get_feeds(). كما يستخدم إذا استخدمت خيار ignore_duplicate_articles.

remove_javascript = True

علامة ملائمة لتجريد جميع علامات JavaScript من HTML الذي تم تنزيله

remove_tags = []

قائمة العلامات المراد إزالتها. يتم إزالة العلامات المحددة من HTML الذي تم تنزيله. يتم تحديد العلامة كقاموس بالشكل:

{
 name      : 'tag name',   #e.g. 'div'
 attrs     : a dictionary, #e.g. {'class': 'advertisement'}
}

جميع المفاتيح اختيارية. للحصول على شرح كامل لمعايير البحث، راجع Beautiful Soup مثال شائع:

remove_tags = [dict(name='div', class_='advert')]

سيؤدي هذا إلى إزالة جميع علامات <div class="advert"> وجميع أبنائها من HTML الذي تم تنزيله.

remove_tags_after = None

إزالة جميع العلامات التي تظهر بعد العلامة المحددة. للحصول على تنسيق تحديد علامة، راجع BasicNewsRecipe.remove_tags. على سبيل المثال:

remove_tags_after = [dict(id='content')]

سيتم إزالة جميع العلامات بعد العنصر الأول الذي يحتوي على id="content".

remove_tags_before = None

إزالة جميع العلامات التي تظهر قبل العلامة المحددة. للحصول على تنسيق تحديد علامة، راجع BasicNewsRecipe.remove_tags. على سبيل المثال:

remove_tags_before = dict(id='content')

سيتم إزالة جميع العلامات قبل العنصر الأول الذي يحتوي على id="content".

requires_version = (0, 6, 0)

الحد الأدنى لإصدار calibre المطلوب لاستخدام هذه الوصفة

إذا تم تعيينه على True، فسيتم تغيير الروابط في المقالات التي تم تنزيلها والتي تشير إلى مقالات أخرى تم تنزيلها لتشير إلى النسخة التي تم تنزيلها من المقال بدلاً من عنوان URL الأصلي على الويب. إذا قمت بتعيين هذا على True، فقد تحتاج أيضًا إلى تنفيذ canonicalize_internal_url() للعمل مع مخطط عنوان URL لموقعك الإلكتروني المحدد.

reverse_article_order = False

عكس ترتيب المقالات في كل خلاصة

scale_news_images = None

الحد الأقصى للأبعاد (العرض، الارتفاع) لتحجيم الصور إليها. إذا كان scale_news_images_to_device هو True، فسيتم تعيين هذا إلى أبعاد شاشة الجهاز المحددة بواسطة ملف تعريف الإخراج ما لم يكن هناك ملف تعريف محدد، وفي هذه الحالة يترك عند أي قيمة تم تعيينها (افتراضيًا None).

scale_news_images_to_device = True

إعادة تحجيم الصور لتناسب أبعاد شاشة الجهاز المحددة بواسطة ملف تعريف الإخراج. يتم تجاهله إذا لم يتم تعيين ملف تعريف إخراج.

simultaneous_downloads = 5

عدد التنزيلات المتزامنة. عيّن إلى 1 إذا كان الخادم صعب الإرضاء. يتم تقليله تلقائيًا إلى 1 إذا كان BasicNewsRecipe.delay > 0

summary_length = 500

الحد الأقصى لعدد الأحرف في الوصف المختصر

template_css = '\n            .article_date {\n                color: gray; font-family: monospace;\n            }\n\n            .article_description {\n                text-indent: 0pt;\n            }\n\n            a.article {\n                font-weight: bold; text-align:left;\n            }\n\n            a.feed {\n                font-weight: bold;\n            }\n\n            .calibre_navbar {\n                font-family:monospace;\n            }\n    '

CSS المستخدم لتصميم القوالب، أي أشرطة التنقل وجداول المحتويات. بدلاً من تجاوز هذا المتغير، يجب عليك استخدام extra_css في وصفتك لتخصيص المظهر.

timefmt = ' [%a, %d %b %Y]'

سلسلة التنسيق للتاريخ المعروض في الصفحة الأولى. افتراضيًا: اسم_اليوم، رقم_اليوم اسم_الشهر السنة

timeout = 120.0

مهلة جلب الملفات من الخادم بالثواني

title = 'مصدر أخبار غير معروف'

العنوان الذي سيتم استخدامه للكتاب الإلكتروني

use_embedded_content = None

عادةً ما نحاول تخمين ما إذا كانت الخلاصة تحتوي على مقالات كاملة مضمنة فيها بناءً على طول المحتوى المضمن. إذا كان None، فسيتم استخدام التخمين الافتراضي. إذا كان True، فسنفترض دائمًا أن الخلاصات تحتوي على محتوى مضمن، وإذا كان False، فسنفترض دائمًا أن الخلاصة لا تحتوي على محتوى مضمن.