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

Tellico имеет минимальный интерфейс D-Bus, который возможно использовать для создания сценариев или взаимодействия с работающим приложением с помощью командной строки. Как и для всех остальных вызовов D-Bus, потребуется указать службу, с которой следует выполнить взаимодействие, и конкретный интерфейс. Имя службы D-Bus: org.kde.tellico.

Команды D-Bus

В интерфейсе Tellico доступны два первичных объекта D-Bus: Tellico и Collections.

Объект 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.

Текущую открытую в Tellico коллекцию возможно экспортировать в файл в одном из следующих форматов: XML Tellico, ZIP Tellico, BibTeX, HTML или CSV (список значений через запятую). Команды экспорта принимают дополнительный аргумент, который позволяет указать, следует ли ограничить экспорт коллекции только соответствующими текущему фильтру элементами.

Перечень идентификаторов записей, которые выбраны или отфильтрованы, позволяет облегчить отображение или обновление записей в области просмотра.

Для открытия нового файла данных возможно использовать команду openFile(). Необходимо указать полный путь.

Чтобы задать новый фильтр, воспользуйтесь командой setFilter() (это эквивалентно набору текста в области фильтра в главном окне).

Если указать идентификатор записи, при выполнении команды showEntry() эта запись будет выбрана, а информация о ней — показана в главном окне.

Объект Collections

Полный перечень команд D-Bus в объекте Collections приведён далее:

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 для определённой записи, воспользуйтесь командой entryBibtexKey().

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

Примеры D-Bus

Далее приводится несколько примеров создания сценариев Tellico с помощью интерфейса D-Bus.

Открытие файла 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 "Моя новая книга"
true