Інтерфейс D-Bus

У Tellico передбачено мінімальний інтерфейс D-Bus, яким можна скористатися для керування програмою за допомогою скриптів або взаємодії з запущеною програмою за посередництвом командного рядка. Як і для всіх інших викликів D-Bus, вам доведеться вказати програму, з якою ви бажаєте працювати і певний інтерфейс. Назвою служби для D-Bus буде org.kde.tellico.

Команди D-Bus

Tellico надає вам доступ до двох основних об’єктів D-Bus: Tellico і Collection.

Об’єкт Tellico

Нижче наведено повний список команд D-Bus для об’єкта tellico:

bool importTellico(QString file, QString action)
bool importBibtex(QString file, QString action)
bool importMODS(QString file, QString action)
bool importPDF(QString file, QString action)
bool importRIS(QString file, QString action)
bool exportXML(QString file, bool filtered)
bool exportZip(QString file, bool filtered)
bool exportBibtex(QString file, bool filtered)
bool exportHTML(QString file, bool filtered)
bool exportCSV(QString file, bool filtered)
QList<int> selectedEntries()
QList<int> filteredEntries()
void openFile(QString file)
void setFilter(QString text)
bool showEntry(int id)

Для чотирьох найважливіших команд першим аргументом є назва файла, який слід імпортувати, а другим — дія з імпортування. Можна використовувати одну з трьох дій: replace, append або merge. Підтримується імпорт файлів у чотирьох форматах: файли XML Tellico, файли Bibtex, файли MODS і файли RIS. Також можна імпортувати метадані з файлів PDF.

Для усіх команд для експортування тексту назва файла -- означає виведення даних каналом до стандартного виведення.

Поточну відкриту у Tellico збірку можна експортувати до файла у одному з таких форматів: формат XML Tellico, формат ZIP Tellico, Bibtex, HTML, формат відокремлених комами значень (CSV). Для команд експортування можна додавати необов’язковий аргумент, який визначає, чи буде обмежено збірку поточний фільтром.

Список ідентифікаторів записів, які зараз обрано або відфільтровано може допомогти у показі і оновлення записі у області перегляду.

Новий файл даних можна відкрити за допомогою команди openFile(). Вам слід вказати шлях до файла повністю.

Новий фільтр можна встановити за допомогою команди setFilter(), яка є еквівалентом введення відповідного рядка у поле фільтрування головного вікна.

За вказаним ідентифікатором запису showEntry() обере запис і покаже відомості про нього у головному вікні.

Об’єкт Collection

Нижче наведено повний список команд D-Bus у об’єкті Collection:

int addEntry()
bool removeEntry(int entryID)
QStringList allValues(QString fieldName)
QStringList entryValues(int entryID, QString fieldName)
QStringList selectedBibtexKeys()
QString entryBibtexKey(int entryID)
bool setEntryValue(int entryID, QString fieldName, QString value)
bool addEntryValue(int entryID, QString fieldName, QString value)

Новий порожній запис у поточній збірці можна створити за допомогою команди addEntry(). Ця команда поверне значення ідентифікатора запису, яким потім можна скористатися для встановлення значень полів запису. Вилучити запис зі збірки можна за допомогою виклику команди removeEntry().

Виклик команди allValues() з зазначенням лише назви поля поверне всі значення для цього поля у поточних вибраних записах. Якщо не було обрано жодного запису, повернутий список буде порожнім. Якщо до параметрів команди буде додано ідентифікатор запису, буде повернуто значення полів вказаного запису.

Якщо поточна збірка є бібліографією, виклик команди selectedBibtexKeys() поверне ключі цитування Bibtex для всіх вибраних записів. Ключ Bibtex (значення bibtexKey) для окремого запису можна визначити за допомогою команди entryBibtexKey().

Записи можна змінювати безпосередньо за допомогою інтерфейсу D-Bus. За вказаним ідентифікатором запису команда setEntryValue() встановить значення поля. Щоб додати значення, не змінюючи існуючих значень, скористайтеся командою addEntryValue(). Нове значення буде додано в кінець існуючого списку.

Приклади D-Bus

Ось декілька прикладів керування Tellico за допомогою скриптів з використанням інтерфейсу D-Bus. Зауважте, що програма qdbus у вашій системі може називатися qdbus-qt5 або якось подібно.

Відкриття файла Bibtex
% qdbus org.kde.tellico /Tellico org.kde.tellico.importBibtex "/home/robby/reference.bib" "replace"
true
Експорт до файла Bibtex
% qdbus org.kde.tellico /Tellico org.kde.tellico.exportBibtex ~/documents/reference.bib
true
Експорт до файла Bibtex із використанням поточного фільтра
% qdbus org.kde.tellico /Tellico org.kde.tellico.exportBibtex ~/documents/reference.bib true
true
Повернути ключ цитування поточного вибраного пункту
% qdbus org.kde.tellico /Collections org.kde.tellico.selectedBibtexKeys
stephenson2004
Додати новий запис і вказати його заголовок
% myid=`qdbus org.kde.tellico /Collections org.kde.tellico.addEntry`
% qdbus org.kde.tellico /Collections org.kde.tellico.setEntryValue $myid title "My New Book"
true