Reference for all built-in template language functionsΒΆ
Here, we document all the built-in functions available in the calibre template language. Every function is implemented as a class in python and you can click the source links to see the source code, in case the documentation is insufficient. The functions are arranged in logical groups by type.
ArithmeticΒΆ
Date functionsΒΆ
days_between(date1, date2)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinDaysBetween
[source]ΒΆ days_between(date1, date2) -- kembalikan bilangan hari diantara date1 dan date2. Bilangan adalah positif jika date1 lebih besar dari date2, jika tidak ia bernilai negatif. Jika date1 atau date2 tidak mempunyai tarikh, maka fungsi kembalikan rentetan kosong.
Formatting valuesΒΆ
finish_formatting(val, fmt, prefix, suffix)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinFinishFormatting
[source]ΒΆ finish_formatting(val, fmt, prefix, suffix) -- laksanakan format, awalan, dan akhiran pada nilai dalam cara yang sama dibuat dalam templat seperti {series_index:05.2f| - |- }. Sebagai contoh, program berikut hasilkan output yang sama seperti di atas template: program: finish_formatting(field("series_index"), "05.2f", " - ", " - ")
format_date(val, format_string)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinFormatDate
[source]ΒΆ format_date(val, format_string) -- formatkan nilai, iaitu tarikh, menggunakan format_string, mengembalikan rentetan. Kod pemformatan adalah: d : hari dalam nombor tanpa sifar dihadapan (1 hingga 31) dd : hari sebagai nombor dengan sifar dihadapan (01 hingga 31) ddd : singkatan nama hari (contoh. "Isn" hingga "Ahd"). dddd : nama hari tempatan panjang (contoh "Isnin" hingga "Ahad"). M : bulan sebagai nombor tanpa sifar dihadapan (1 hingga 12). MM : bulan sebagai nombor dengan sifat dihadapan (01 hingga 12) MMM : singkatan nama bulan tempatan (contoh. "Jan" hingga "Dis"). MMMM : nama bulan tempatan panjang (contoh "Januari" hingga "Disember"). yy : tahun dalam dua nombor digit (00 hingga 99). yyyy : tahun dalam empat nombor digit. h : jam tanpa sifar dihadapan 0 (0 hingga 11 atau 0 hingga 23, bergantung pada am/pm) hh : jam dengan sifar dihadapan 0 (00 hingga 11 atau 00 hingga 23, bergantung pada am/pm) m : minit tanpa sifar dihadapan 0 (0 hingga 59) mm : minit dengan sifar dihadapan 0 (00 hingga 59) s : saat tanpa sifar dihadapan 0 (0 hingga 59) ss : saat tanpa sifar dihadapan 0 (00 hingga 59) ap : guna jam 12 selain dari jam 24, dengan "ap" diganti dengan rentetan tempatan bagi am atau pm AP : guna jam 12 selain dari jam 2, dengan "AP" diganti oleh rentetan tempatan untuk AM atau PM iso : tarikh dengan masa dan zon waktu. Mesti dalam format semasa sahaja
format_number(v, template)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinFormatNumber
[source]ΒΆ format_number(v, template) -- format the number v using a Python formatting template such as "{0:5.2f}" or "{0:,d}" or "${0:5,.2f}". The field_name part of the template must be a 0 (zero) (the "{0:" in the above examples). See the template language and Python documentation for more examples. You can leave off the leading "{0:" and trailing "}" if the template contains only a format. Returns the empty string if formatting fails.
rating_to_stars(value, use_half_stars)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinRatingToStars
[source]ΒΆ rating_to_stars(value, use_half_stars) -- Returns the rating as string of star characters. The value is a number between 0 and 5. Set use_half_stars to 1 if you want half star characters for custom ratings columns that support non-integer ratings, for example 2.5.
Get values from metadataΒΆ
approximate_formats()ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinApproximateFormats
[source]ΒΆ approximate_formats() -- kembalikan senarai dipisah-tanda-koma bagi format yang mana satu keadaan dikaitkan dengan buku. Tiada jaminan senarai ini adalah betul, walaupun ia mungkin betul. Fungsi ini boleh dipanggil dalam mod program templat menggunakan template "{:'approximate_formats()'}". Perhatian nama format sentiasa berhuruf besar, seperti dalam EPUB. Fungsi hanya berfungsi dalam GUI. Jika anda mahu guna nilai ini dalam templat save-to-disk atau send-to-device maka anda mesti buat "Column built from other columns" suai, guna fungsi dalam templat lajur, dan guna nilai lajur tersebut dalam templat simpan/hantar anda
author_links(val_separator, pair_separator)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinAuthorLinks
[source]ΒΆ author_links(val_separator, pair_separator) -- kembalikan rentetan mengandungi senarai pengarang dan nilai pautan pengarang dalam bentuk author1 val_separator author1link pair_separator author2 val_separator author2link dan lain-lain. Pengarang dipisah dari nilai pautannya oleh rentetan val_separator tanpa jarak ditambah kepadanya. Pasangan author:linkvalue dipisah dengan argumen rentetan pair_separator string tanda jarak ditambah kepadanya. Ia bergantung kepada anda untuk memilih rentetan pemisah yang tidak muncul dalam nama atau pautan pengarang. Pengarang disertakan walaupun jika pautan pengarang kosong.
author_sorts(val_separator)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinAuthorSorts
[source]ΒΆ author_sorts(val_separator) -- kembalikan rentetan mengandungi senarai nilai isih pengarang untuk pengarang buku. Isih adalah salah satu data meta pengarang (berbeza dari author_sort di dalam buku). Senarai yang dikembalikan mempunyai bentuk author isih 1 val_separator author isih 2 dan lain-lain. Nilai isih pengarang dalam senarai ini adalah dalam tertib yang sama seperti pengarang buku. Jika anda mahu jarak disekitar val_separator maka sertakannya di dalam rentetan pemisah
booksize()ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinBooksize
[source]ΒΆ booksize() -- kembalikan nilai medan saiz. Fungsi ini hanya berkesan dalam GUI. Jika anda mahu guna nilai ini dalam templat save-to-disk atau send-to-device maka anda mesti buat "Column built from other columns" suai, gunakan fungsi yang mana dalam lajur templat, dan gunan ilai lajur dalam templat simpan/hantar anda
connected_device_name(storage_location)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinConnectedDeviceName
[source]ΒΆ connected_device_name(storage_location) -- if a device is connected then return the device name, otherwise return the empty string. Each storage location on a device can have a different name. The location names are 'main', 'carda' and 'cardb'. This function works only in the GUI.
formats_modtimes(date_format)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinFormatsModtimes
[source]ΒΆ formats_modtimes(date_format) -- kembalikan senarai dipisah-tanda-koma bagi item dipisah tanda-titik-bertindih yang mewakili waktu pengubahsuaian untuk format sesebuah buku. Parameter date_format menyatakan bagaimana tarikh diformatkan. Sila rujuk fungsi format_date untuk perincian. Anda boleh guna fungsi pilih untuk dapatkan waktu mod bagi format tertentu. Perhatian nama format sentiasa berhuruf-besar, sepertimana dalam EPUB.
formats_paths()ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinFormatsPaths
[source]ΒΆ formats_paths() -- kembalikan senarai dipisah tanda-koma bagi item dipisah tanda-titik-bertindih mewakili laluan penuh ke format sesebuah buku. Anda boleh guna fungsi pilih untuk dapatkan laluan untuk format tertentu. Perhatian nama format sentiasa berhuruf besar, sepertimana dalam EPUB.
formats_sizes()ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinFormatsSizes
[source]ΒΆ formats_sizes() -- kembalikan senarai dipisah tanda-koma bagi item dipisah tanda-titik-bertindih mewakili saiz dalam baik bagi format sesebuah buku. Anda boleh guna fungsi pilih untuk dapatkan saiz bagi format tertentu. Perhatian nama format sentiasa berhuruf besar, sepertimana dalam EPUB.
language_strings(lang_codes, localize)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinLanguageStrings
[source]ΒΆ language_strings(lang_codes, localize) -- kembalikan rentetan kod bahasa yang dilepasi dalam lang_codes. Jika dilokalkan adalah sifar, kembalikan rentetan dalam bahasa Inggeris. Jika dilokalkan tidak benilai sifar, maka kembalikan rentetan dalam bahasa lokal semasa. Lang_codes adalah senarai dipisah-tanda-koma.
ondevice()ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinOndevice
[source]ΒΆ ondevice() -- kembalikan Ya jika ondevice ditetapkan, jika tidak kembalikan rentetan kosong. Fungsi ini hanya berkesan dalam GUI. Jika anda mahu guna nilai ini dalam templat save-to-disk atau send-to-device maka anda mesti buat "Column built from other columns" suai, gunakan fungsi yang mana dalam lajur templat, dan gunan ilai lajur dalam templat simpan/hantar anda
user_categories()ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinUserCategories
[source]ΒΆ user_categories() -- kembalikan senarai dipisah-tanda-koma bagi kategori pengguna yang terkandung dalam buku ini. Fungsi ini hanya berfungsi dalam GUI. Jika anda mahu guna nilai ini dalam templat save-to-disk atau send-to-device maka anda mesti buat "Column built from other columns" suai, guna fungsi dalam templat lajur, dan guna nilai lajur dalam templat simpan/hantar anda
virtual_libraries()ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinVirtualLibraries
[source]ΒΆ virtual_libraries() -- return a comma-separated list of Virtual libraries that contain this book. This function works only in the GUI. If you want to use these values in save-to-disk or send-to-device templates then you must make a custom "Column built from other columns", use the function in that column's template, and use that column's value in your save/send templates
If-then-elseΒΆ
check_yes_no(field_name, is_undefined, is_false, is_true)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinCheckYesNo
[source]ΒΆ check_yes_no(field_name, is_undefined, is_false, is_true) -- checks the value of the yes/no field named by the lookup key field_name for a value specified by the parameters, returning "yes" if a match is found, otherwise returning an empty string. Set the parameter is_undefined, is_false, or is_true to 1 (the number) to check that condition, otherwise set it to 0. Example: check_yes_no("#bool", 1, 0, 1) returns "yes" if the yes/no field "#bool" is either undefined (neither True nor False) or True. More than one of is_undefined, is_false, or is_true can be set to 1. This function is usually used by the test() or is_empty() functions.
Iterating over valuesΒΆ
lookup(val, pattern, field, pattern, field, ..., else_field)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinLookup
[source]ΒΆ lookup(val, pattern, field, pattern, field, ..., else_field) -- seperti switch, kecuali argumen adalah nama medan (data meta), bukan teks. Nilai medan bersesuaian akan diperoleh dan digunakan. Perhatian oleh kerana lajur komposit adalah medan, anda boleh guna fungsi ini dalam satu medan komposit untuk guna nila bagi beberapa medan komposit yang lain. Ia sangat-sangat berguna ketika membina laluan penyimpanan pembolehubah
switch(val, pattern, value, pattern, value, ..., else_value)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinSwitch
[source]ΒΆ switch(val, pattern, value, pattern, value, ..., else_value) -- bagi setiap pattern, value pair, semak jika val sepadan dengan ungkapan nalar pattern dan jika ia, kembalikan value tersebut. Jika tiada pola dipadankan, maka else_value dikembalikan. Anda boleh adakan sebanyak mana pasangan pattern, value yang anda kehendaki
List lookupΒΆ
_identifier_in_list(val, id, found_val, not_found_val)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinIdentifierInList
[source]ΒΆ _identifier_in_list(val, id, found_val, not_found_val) -- anggap val sebagai senarai pengecam yang dipisah dengan tanda koma, membandingkan rentetan terhadap setiap nilai dalam senarai. Satu pengecam mempunyai format "identifier:value". Parameter id patut sama ada "id" atau "id:regexp". Padanan kata pertama jika terdapat mana-mana pengecam yang id tersebut. Padanan kata kedua jika ungkapan nalar sepadan dengan nilai pengecam. Jika terdapat satu padanan kembalikan found_val, jika tidak kembalikan not_found_val.
in_list(val, separator, pattern, found_val, ..., not_found_val)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinInList
[source]ΒΆ in_list(val, separator, pattern, found_val, ..., not_found_val) -- treat val as a list of items separated by separator, evaluating the pattern against each value in the list. If the pattern matches a value, return found_val, otherwise return not_found_val. The pattern and found_value can be repeated as many times as desired, permitting returning different values depending on the search. The patterns are checked in order. The first match is returned.
list_item(val, index, separator)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinListitem
[source]ΒΆ list_item(val, index, separator) -- tafsir nilai sebagai senarai item dipisah dengan separator, kembalikan item ke-index. Item pertam adalah nombor sifar. Item terakhir boleh dikembalikan menggunakan list_item(-1,separator). Jika item tidak berada dalam senarai, nilai kosong dikembalikan. Pemisah mempunyai maksud yang sama dalam fungsi kiraan.
str_in_list(val, separator, string, found_val, ..., not_found_val)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinStrInList
[source]ΒΆ str_in_list(val, separator, string, found_val, ..., not_found_val) -- treat val as a list of items separated by separator, comparing the string against each value in the list. If the string matches a value (ignoring case) then return found_val, otherwise return not_found_val. If the string contains separators, then it is also treated as a list and each value is checked. The string and found_value can be repeated as many times as desired, permitting returning different values depending on the search. The strings are checked in order. The first match is returned.
List manipulationΒΆ
count(val, separator)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinCount
[source]ΒΆ count(val, separator) -- tafsir nilai sebagai senarai item dipisah dengan tanda separator, mengembalikan sebilangan item di dalam senarai. Kebanyakan senarai gunakan tanda koma sebagai pemisah, tetapi pengarang boleh gunakan tanda ampersan. Contoh: {tags:count(,)}, {authors:count(&)}
list_difference(list1, list2, separator)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinListDifference
[source]ΒΆ list_difference(list1, list2, separator) -- kembalikan senarai dengan membuang item list1 yang ditemui dalam list2, menggunakan perbandingan tak-sensitif-kata. Item dalam list1 dan list2 diasing dengan tanda-pemisah, begitu juga item dalam senarai dikembalikan.
list_equals(list1, sep1, list2, sep2, yes_val, no_val)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinListEquals
[source]ΒΆ list_equals(list1, sep1, list2, sep2, yes_val, no_val) -- kembalikan yes_val jika list1 dan list2 mengandungi item yang sama, jika tidak kembalikan no_val. Item ditentukan oleh pemisahan setiap senarai menggunakan aksara pemisah yang sesuai (sep1 atau sep2). Tertib item dalam senarai tidak relevan. Perbandingan adalah tidak-sensitif-kata.
list_intersection(list1, list2, separator)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinListIntersection
[source]ΒΆ list_intersection(list1, list2, separator) -- kembalikan senarai dengan membuang item list1 yang ditemui dalam list2, menggunakan perbandingan tak-sensitif-kata. Item dalam list1 dan list2 diasing dengan tanda-pemisah, begitu juga item dalam senarai dikembalikan.
list_re(src_list, separator, include_re, opt_replace)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinListRe
[source]ΒΆ list_re(src_list, separator, include_re, opt_replace) -- Biina senarai dengan pemisahan pertama src_list ke dalam item menggunakan aksara pemisah. Bagi setiap item di dalam senarai, tandakan jika memadani include_re. Jika ia berlaku, maka tambah ia ke dalam senarai yang dikembalikan. Jika opt_replace bukan rentetan kosong, maka laksana penggantian sebelum menambah item ke dalam senarai dikembalikan.
list_re_group(src_list, separator, include_re, search_re, group_1_template, ...)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinListReGroup
[source]ΒΆ list_re_group(src_list, separator, include_re, search_re, group_1_template, ...) -- Seperti list_re pengecualian penggantian bukan pilihan. Ia menggunakan re_group(list_item, search_re, group_1_template, ...) bila membuat penggantian pada senarai hasil.
list_sort(list, direction, separator)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinListSort
[source]ΒΆ list_sort(list, direction, separator) -- kembalikan senarai terisih menggunakan isih sensitif-kata. Jika arah adalah sifat, senarai diisih menaik, jika tidak menurun. Item senarai diasing dengan tanda-pemisah, begitu juga item dalam senarai dikembalikan.
list_union(list1, list2, separator)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinListUnion
[source]ΒΆ list_union(list1, list2, separator) -- kembalikan senarai yang dibuat dengan menggabungkan item di dalam list1 dan list2, membuang item pendua menggunakan perbandingan tak-sensitif-kata. Jika item berbeza kata, yang berada dalam list1 digunakan. Item dalam list1 dan list2 diasing dengan tanda-pemisah, begitu juga item dalam senarai dikembalikan.
subitems(val, start_index, end_index)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinSubitems
[source]ΒΆ subitems(val, start_index, end_index) -- Fungsi ini digunakan untuk pecahkan senarai item seperti genre. Ia tafsir nilai sebagai senarai item dipisah tanda-koma, yang mana setiap item adalah senarai dipisah tanda-noktah. Kembalikan senarai baharu dibuat oleh pencarian pertama semua item dipisah tanda-noktah, kemudian bagi setiap item tersebut, ekstrak komponen start_index hingga the end_index, seterusnya gabungkan keputusan bersama-sama. Komponen pertama ialah senarai dipisah tanda-noktah yang mempunyai indeks sifar. Jika indeks adalah negatif, maka ia dikira dari penghujung senarai. Dalam kes khas, end_index sifar dianggap sebagai panjang senarai. Contoh penggunaan mod templat asas dan anggap nilai #genre bagi "A.B.C": {#genre:subitems(0,1)} kembalikan "A". {#genre:subitems(0,2)} kembalikan "A.B". {#genre:subitems(1,0)} kembalikan "B.C". Menganggap nilai #genre bagi "A.B.C, D.E.F", {#genre:subitems(0,1)} kembalikan "A, D". {#genre:subitems(0,2)} kembalikan "A.B, D.E"
sublist(val, start_index, end_index, separator)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinSublist
[source]ΒΆ sublist(val, start_index, end_index, separator) -- interpret the value as a list of items separated by separator, returning a new list made from the start_index to the end_index item. The first item is number zero. If an index is negative, then it counts from the end of the list. As a special case, an end_index of zero is assumed to be the length of the list. Examples using basic template mode and assuming that the tags column (which is comma-separated) contains "A, B, C": {tags:sublist(0,1,\,)} returns "A". {tags:sublist(-1,0,\,)} returns "C". {tags:sublist(0,-1,\,)} returns "A, B".
RecursionΒΆ
eval(template)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinEval
[source]ΒΆ eval(template) -- nilaikan templat, melepasi pembolehubah setempat (yang telah diumpuk) selain dari data meta buku. Ia membenarkan penggunaan pemproses templat untuk bina keputusan yang lebih kompleks dari pembolehubah semasa. Oleh kerana aksara { and } adalah istimewa, anda mesti gunakan [[ untuk aksara { dan ]] untuk aksara }; ia ditukar secara automatik. Perhatian awalan dan akhiran (sintaks |prefix|suffix) tidak dapat digunakan dalam argumen bagi fungsi ini bila menggunakan mod program templat.
template(x)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinTemplate
[source]ΒΆ template(x) -- nilaikan x sebagai templat. Penilaian ini selesai dalam konteks ia sendiri, bermaksud pembolehubah tidak berkongsi diantara pemanggil dengan penilaian templat. Oleh kerana aksara { and } adalah istimewa, anda mesti gunakan [[ untuk aksara { dan ]] untuk aksara }; ia ditukar secara automatik. Sebagai contoh, template('[[title_sort]]') akan nilaikan templat {title_sort} dan kembalikan nilainya. Perhatian awalan dan akhiran (sintaks |prefix|suffix) tidak daapt digunakan dalam argumen bagi fungsi ini bila menggunakan mod program templat.
RelationalΒΆ
first_matching_cmp(val, cmp1, result1, cmp2, r2, ..., else_result)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinFirstMatchingCmp
[source]ΒΆ first_matching_cmp(val, cmp1, result1, cmp2, r2, ..., else_result) -- bandingkan "val < cmpN" dalam jujukan, mengembalikan resultN bagi perbandingan pertama yang berjaya. Kembalikan else_result jika tiada perbandingan yang berjaya. Contohnya: first_matching_cmp(10,5,"small",10,"middle",15,"large","giant") kembalikan "large". Contohnya yang sama dengan nilai pertama 16 kembalikan "giant".
String manipulationΒΆ
re_group(val, pattern, template_for_group_1, for_group_2, ...)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinReGroup
[source]ΒΆ re_group(val, pattern, template_for_group_1, for_group_2, ...) -- kembalikan rentetan yang dibuat dengan melaksanakan pola ungkapan nalar pada val dan ganti setiap kejadian yang sepadan dengan rentetan yang dikira dengan menggantikan setiap kumpulan sepadan dengan nilai dikembalikan oleh templat berkenaan. Nilai sepadan asal bagi kumpulan tersedia sebagai $. Dalam mod program templat, seperti untuk templat dan fungsi eval, anda guna [[ { dan ]] untuk }. Contoh berikut dalam mod program templat adalah untuk siri lebih dari satu perkataan dan huruf besar perkataan pertama: {series:'re_group($, "(S* )(.*)", "[[$:uppercase()]]", "[[$]]")'}
shorten(val, left chars, middle text, right chars)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinShorten
[source]ΒΆ shorten(val, left chars, middle text, right chars) -- Kembalikan versi pendek val, mengandungi aksara left chars dari permulaan val ,diikuti dengan middle text, diikuti dengan aksara right chars dari penghujung rentetan. Left chars dan`right chars` mestilah integer. Contoh, anggap tajuk buku ialah Ancient English Laws in the Times of Ivanhoe, dan anda mahu ia dimuat-suakan dengan jarak maksimum 15 aksara. Jika anda guna {title:shorten(9,-,5)}, hasil akan jadi Ancient E-nhoe. Jika panjang medan kurang dari aksara kiri + aksara kanan + panjang teks tengah bagi middle text, maka medan akan guna yang asal. Contohnya, tajuk The Dome tidak akan berubah.
strcat_max(max, string1, prefix2, string2, ...)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinStrcatMax
[source]ΒΆ strcat_max(max, string1, prefix2, string2, ...) -- Kembalikan rentetan yang terbentuk oleh pemangkasan argumen. Nilai dikembalikan adalah diawali pada string1. Pasangan Prefix, string ditambah ke penghujung nilai asalkan panjang rentetan yang terhasil adalah kurang dari max. String1 dikembalikan walaupun jika string1 lebih panjang berbanding max. Anda boleh lepasi sebanyak mana pasangan prefix, string yang anda kehendaki.
substr(str, start, end)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinSubstr
[source]ΒΆ substr(str, start, end) -- kembalikan aksara start hingga end bagi str. Aksara pertama dalam str ialah aksara sifar. Jika penghujung adalah negatif, maka ia menunjukkan kebanyakan aksara dikira dari sebelah kanan. Jika penghujung adalah sifar, maka ia menunjukkan aksara terakhir. Sebagai contoh, substr('12345', 1, 0) kembalikan '2345', dan substr('12345', 1, -1) kembalikan '234'.
swap_around_articles(val, separator)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinSwapAroundArticles
[source]ΒΆ swap_around_articles(val, separator) -- returns the val with articles moved to the end. The value can be a list, in which case each member of the list is processed. If the value is a list then you must provide the list value separator. If no separator is provided then the value is treated as being a single value, not a list.
transliterate(a)ΒΆ
-
class
calibre.utils.formatter_functions.
BuiltinTransliterate
[source]ΒΆ transliterate(a) -- Kembalikan rentetan dalam abjad latin terbentuk oleh penganggaran sebutan perkataan dalam rentetan sumber. Sebagai contoh, jika sumber ialah "Π€ΡΠ΄ΠΎΡ ΠΠΈΡ Π°ΜΠΉΠ»ΠΎΠ²ΠΈΡ ΠΠΎΡΡΠΎΠ΅Π²ΡΠΊΠΈΠΉ" fungsi kembalikan "Fiodor Mikhailovich Dostoievskii".
API of the Metadata objectsΒΆ
The python implementation of the template functions is passed in a Metadata object. Knowing it's API is useful if you want to define your own template functions.
-
class
calibre.ebooks.metadata.book.base.
Metadata
(title, authors=('Tidak Diketahui'), other=None, template_cache=None, formatter=None)[source]ΒΆ A class representing all the metadata for a book. The various standard metadata fields are available as attributes of this object. You can also stick arbitrary attributes onto this object.
Metadata from custom columns should be accessed via the get() method, passing in the lookup name for the column, for example: "#mytags".
Use the
is_null()
method to test if a field is null.This object also has functions to format fields into strings.
The list of standard metadata fields grows with time is in
STANDARD_METADATA_FIELDS
.Please keep the method based API of this class to a minimum. Every method becomes a reserved field name.
-
is_null
(field)[source]ΒΆ Return True if the value of field is null in this object. 'null' means it is unknown or evaluates to False. So a title of _('Unknown') is null or a language of 'und' is null.
Be careful with numeric fields since this will return True for zero as well as None.
Also returns True if the field does not exist.
-
deepcopy
(class_generator=<function Metadata.<lambda>>)[source]ΒΆ Do not use this method unless you know what you are doing, if you want to create a simple clone of this object, use
deepcopy_metadata()
instead. Class_generator must be a function that returns an instance of Metadata or a subclass of it.
-
get_identifiers
()[source]ΒΆ Return a copy of the identifiers dictionary. The dict is small, and the penalty for using a reference where a copy is needed is large. Also, we don't want any manipulations of the returned dict to show up in the book.
-
set_identifiers
(identifiers)[source]ΒΆ Set all identifiers. Note that if you previously set ISBN, calling this method will delete it.
-
standard_field_keys
()[source]ΒΆ return a list of all possible keys, even if this book doesn't have them
-
all_non_none_fields
()[source]ΒΆ Return a dictionary containing all non-None metadata fields, including the custom ones.
-
get_standard_metadata
(field, make_copy)[source]ΒΆ return field metadata from the field if it is there. Otherwise return None. field is the key name, not the label. Return a copy if requested, just in case the user wants to change values in the dict.
-
get_all_standard_metadata
(make_copy)[source]ΒΆ return a dict containing all the standard field metadata associated with the book.
-
get_all_user_metadata
(make_copy)[source]ΒΆ return a dict containing all the custom field metadata associated with the book.
-
get_user_metadata
(field, make_copy)[source]ΒΆ return field metadata from the object if it is there. Otherwise return None. field is the key name, not the label. Return a copy if requested, just in case the user wants to change values in the dict.
-
set_all_user_metadata
(metadata)[source]ΒΆ store custom field metadata into the object. Field is the key name not the label
-
set_user_metadata
(field, metadata)[source]ΒΆ store custom field metadata for one column into the object. Field is the key name not the label
-
remove_stale_user_metadata
(other_mi)[source]ΒΆ Remove user metadata keys (custom column keys) if they don't exist in 'other_mi', which must be a metadata object
-
template_to_attribute
(other, ops)[source]ΒΆ Takes a list [(src,dest), (src,dest)], evaluates the template in the context of other, then copies the result to self[dest]. This is on a best-efforts basis. Some assignments can make no sense.
-
smart_update
(other, replace_metadata=False)[source]ΒΆ Merge the information in other into self. In case of conflicts, the information in other takes precedence, unless the information in other is NULL.
-
-
calibre.ebooks.metadata.book.base.
STANDARD_METADATA_FIELDS
ΒΆ The set of standard metadata fields.
__docformat__ = 'restructuredtext en'
'''
All fields must have a NULL value represented as None for simple types,
an empty list/dictionary for complex types and (None, None) for cover_data
'''
SOCIAL_METADATA_FIELDS = frozenset((
'tags', # Ordered list
'rating', # A floating point number between 0 and 10
'comments', # A simple HTML enabled string
'series', # A simple string
'series_index', # A floating point number
# Of the form { scheme1:value1, scheme2:value2}
# For example: {'isbn':'123456789', 'doi':'xxxx', ... }
'identifiers',
))
'''
The list of names that convert to identifiers when in get and set.
'''
TOP_LEVEL_IDENTIFIERS = frozenset((
'isbn',
))
PUBLICATION_METADATA_FIELDS = frozenset((
'title', # title must never be None. Should be _('Unknown')
# Pseudo field that can be set, but if not set is auto generated
# from title and languages
'title_sort',
'authors', # Ordered list. Must never be None, can be [_('Unknown')]
'author_sort_map', # Map of sort strings for each author
# Pseudo field that can be set, but if not set is auto generated
# from authors and languages
'author_sort',
'book_producer',
'timestamp', # Dates and times must be timezone aware
'pubdate',
'last_modified',
'rights',
# So far only known publication type is periodical:calibre
# If None, means book
'publication_type',
'uuid', # A UUID usually of type 4
'languages', # ordered list of languages in this publication
'publisher', # Simple string, no special semantics
# Absolute path to image file encoded in filesystem_encoding
'cover',
# Of the form (format, data) where format is, for e.g. 'jpeg', 'png', 'gif'...
'cover_data',
# Either thumbnail data, or an object with the attribute
# image_path which is the path to an image file, encoded
# in filesystem_encoding
'thumbnail',
))
BOOK_STRUCTURE_FIELDS = frozenset((
# These are used by code, Null values are None.
'toc', 'spine', 'guide', 'manifest',
))
USER_METADATA_FIELDS = frozenset((
# A dict of dicts similar to field_metadata. Each field description dict
# also contains a value field with the key #value#.
'user_metadata',
))
DEVICE_METADATA_FIELDS = frozenset((
'device_collections', # Ordered list of strings
'lpath', # Unicode, / separated
'size', # In bytes
'mime', # Mimetype of the book file being represented
))
CALIBRE_METADATA_FIELDS = frozenset((
'application_id', # An application id, currently set to the db_id.
'db_id', # the calibre primary key of the item.
'formats', # list of formats (extensions) for this book
# a dict of user category names, where the value is a list of item names
# from the book that are in that category
'user_categories',
# a dict of author to an associated hyperlink
'author_link_map',
))
ALL_METADATA_FIELDS = SOCIAL_METADATA_FIELDS.union(
PUBLICATION_METADATA_FIELDS).union(
BOOK_STRUCTURE_FIELDS).union(
USER_METADATA_FIELDS).union(
DEVICE_METADATA_FIELDS).union(
CALIBRE_METADATA_FIELDS)
# All fields except custom fields
STANDARD_METADATA_FIELDS = SOCIAL_METADATA_FIELDS.union(
PUBLICATION_METADATA_FIELDS).union(
BOOK_STRUCTURE_FIELDS).union(
DEVICE_METADATA_FIELDS).union(
CALIBRE_METADATA_FIELDS)
# Metadata fields that smart update must do special processing to copy.
SC_FIELDS_NOT_COPIED = frozenset(('title', 'title_sort', 'authors',
'author_sort', 'author_sort_map',
'cover_data', 'tags', 'languages',
'identifiers'))
# Metadata fields that smart update should copy only if the source is not None
SC_FIELDS_COPY_NOT_NULL = frozenset(('device_collections', 'lpath', 'size', 'comments', 'thumbnail'))
# Metadata fields that smart update should copy without special handling
SC_COPYABLE_FIELDS = SOCIAL_METADATA_FIELDS.union(
PUBLICATION_METADATA_FIELDS).union(
BOOK_STRUCTURE_FIELDS).union(
DEVICE_METADATA_FIELDS).union(
CALIBRE_METADATA_FIELDS) - \
SC_FIELDS_NOT_COPIED.union(
SC_FIELDS_COPY_NOT_NULL)
SERIALIZABLE_FIELDS = SOCIAL_METADATA_FIELDS.union(
USER_METADATA_FIELDS).union(
PUBLICATION_METADATA_FIELDS).union(
CALIBRE_METADATA_FIELDS).union(
DEVICE_METADATA_FIELDS) - \
frozenset(('device_collections', 'formats',
'cover_data'))
# these are rebuilt when needed