# Додаткові можливості

## Параметри командного рядка

Під час запуску &appname; за допомогою командного рядка ви можете вказати параметри, пов’язані з відкриттям файлів даних. Переглянути список цих параметрів можна за допомогою команди `tellico --help`. Можна також увімкнути ведення діагностичного журналу, яке призведе до показу повідомлень діагностики для пункту меню. Використання параметра `--logfile` переспрямує виведення даних до файла.

    Користування: tellico [параметри Qt] [параметри KDE] [параметри] [назва файла]

    Tellico — інструмент керування збірками, вільний і простий

    Параметри:
      --nofile                  Не відкривати повторно останній відкритий файл
      --bibtex                  Імпортувати файл <назва файла> як файл bibtex
      --mods                    Імпортувати файл <назва файла> як файл MODS
      --ris                     Імпортувати файл <назва файла> як файл RIS
      --pdf                     Імпортувати файл <назва файла> як файл PDF
      --log                     вести діагностичний журнал
      --logfile <файл_журналу>       записати журнал до файла <файл_журналу>

    Аргументи:
      назва файла                  Назва файла, який слід відкрити

## Інтерфейс &DBus;

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

### Команди &DBus;

Tellico надає вам доступ до двох основних об’єктів &DBus;: `Tellico` і `Collection`.

#### Об’єкт `Tellico`

Нижче наведено повний список команд &DBus; для об’єкта `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;.

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

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

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

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

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

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

#### Об’єкт `Collection`

Нижче наведено повний список команд &DBus; у об’єкті `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()`.

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

### Приклади &DBus;

Ось декілька прикладів керування &appname; за допомогою скриптів з використанням інтерфейсу &DBus;. Зауважте, що програма `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