# Uso avançado

## Opções de Linha de Comando

Ao executar o &appname; a partir da linha de comando, existem várias opções para abrir arquivos de dados. Elas podem ser visualizadas executando `tellico --help`. O registro de diagnóstico também pode ser ativado, o que criará um item de menu para exibir o registro de diagnóstico. A opção `--logfile` redireciona o registro para um arquivo.

    Uso: tellico [opções] [arquivo]

    Tellico - um aplicativo gerenciador de coleções, livre e simples

    Opções:
      --nofile                  Não reabrir o último arquivo aberto
      --bibtex                  Importar o <arquivo> como um arquivo bibtex
      --mods                    Importar o <arquivo> como um arquivo MODS
      --ris                     Importar o <arquivo> como um arquivo RIS
      --pdf                     Importar o <arquivo> como um arquivo PDF
      --log                     Registra a saída de diagnóstico
      --logfile <logfile>       Salva o registro de saída para <arquivo>

    Argumentos:
      [arquivo]                  O arquivo a abrir

## Interface &DBus;

O &appname; tem uma interface mínima de &DBus;, que pode ser usada para programar ou interagir com uma aplicação em execução, a partir da linha de comando. Como acontece com todas as chamadas de &DBus;, você terá que indicar a aplicação com que deseja interagir, assim como a interface em particular. O nome do serviço de &DBus; é `org.kde.tellico`.

### Comandos do &DBus;

Estão disponíveis dois objetos &DBus; na interface do Tellico: `Tellico` e `Collections`.

#### O Objeto `Tellico`

A lista completa de comandos de &DBus; do objeto `tellico` encontra-se disponível abaixo:

    bool importTellico(QString arquivo, QString ação)
    bool importBibtex(QString arquivo, QString ação)
    bool importMODS(QString arquivo, QString ação)
    bool importPDF(QString arquivo, QString ação)
    bool importRIS(QString arquivo, QString ação)
    bool exportXML(QString arquivo, bool filtrado)
    bool exportZip(QString arquivo, bool filtrado)
    bool exportBibtex(QString arquivo, bool filtrado)
    bool exportHTML(QString arquivo, bool filtrado)
    bool exportCSV(QString arquivo, bool filtrado)
    QList<int> selectedEntries()
    QList<int> filteredEntries()
    void openFile(QString arquivo)
    void setFilter(QString texto)
    bool showEntry(int id)

Para os quatro comandos de importação, o primeiro argumento é o arquivo a importar, e o segundo é a ação de importação. Três ações estão disponíveis: replace (substituir), append (adicionar), e merge (mesclar). Quatro formatos de arquivo são suportados para importação: arquivos &XML; Tellico, arquivos Bibtex, arquivos MODS e arquivos RIS. Os metadados de arquivos &PDF; também podem ser importados.

Para qualquer um dos comandos para exportar texto, um nome de arquivo `--` será direcionado para a saída padrão.

A coleção atualmente aberta no &appname; poderá ser exportada para um arquivo no formato &XML; ou ZIP, ambos do Tellico, em Bibtex, &HTML; ou valores separados por vírgulas (CSV). Os comandos de exportação recebem um argumento opcional para indicar se a coleção deve ser limitada ao filtro atual ou não.

Uma lista dos IDs dos elementos atualmente selecionados ou filtrados permite facilitar a apresentação ou atualização dos itens na janela.

Você poderá abrir um novo arquivo de dados com o comando `openFile()`. Deverá indicar a localização completa.

Poderá definir um novo filtro com o comando `setFilter()`, o qual é o equivalente a escrever o mesmo filtro no campo respectivo da janela principal.

Fornecido um ID de um elemento, o `showEntry()` irá selecionar esse item e mostrar os seus detalhes na janela principal.

#### O Objeto `Collections`

A lista completa de comandos &DBus; do objeto `Collections` encontra-se descrita abaixo:

    int addEntry()
    bool removeEntry(int idItem)
    QStringList allValues(QString nomeCampo)
    QStringList entryValues(int idItem, QString nomeCampo)
    QStringList selectedBibtexKeys()
    QString entryBibtexKey(int idItem)
    bool setEntryValue(int idItem, QString nomeCampo, QString valor)
    bool addEntryValue(int idItem, QString nomeCampo, QString valor)

Você poderá criar um novo elemento vazio na coleção atual, usando o comando `addEntry()`. O valor devolvido é o ID do elemento, que poderá ser usado para definir os valores dos campos do mesmo elemento. Você poderá apagar um elemento da coleção com o comando `removeEntry()`.

Se invocar o `allValues()` com apenas um nome de campo, irá devolver todos os valores desse campo, para os itens selecionados no momento. Se não for selecionado nenhum elemento, é devolvida uma lista vazia. Se for incluído um ID de elemento no comando, são devolvidos os valores dos campos para esse elemento em particular.

Se a coleção atual for uma bibliografia, a invocação do `selectedBibtexKeys()` irá devolver a citação do Bibtex para todos os itens selecionados. A 'bibtexKey' de um item específico poderá ser obtida com o comando `entryBibtexKey()`.

Você poderá editar os elementos diretamente com a interface &DBus;. Fornecido um ID de elemento, o `setEntryValue()` irá configurar o valor do campo diretamente. Para adicionar um valor, sem afetar os valores existentes, use o `addEntryValue()`. O novo valor é adicionado ao fim da lista existente.

### Exemplos de &DBus;

Aqui estão alguns exemplos de scripts para o &appname; usando a interface &DBus;. Observe que o comando `qdbus` pode existir como `qdbus-qt5` ou algo semelhante em seu sistema.

    Abrir um arquivo do Bibtex
    % qdbus org.kde.tellico /Tellico org.kde.tellico.importBibtex "/home/roberto/referência.bib" "replace"
    true

    Exportar um arquivo do Bibtex
    % qdbus org.kde.tellico /Tellico org.kde.tellico.exportBibtex ~/documentos/referência.bib
    true

    Exportar um arquivo do Bibtex usando o filtro atual
    % qdbus org.kde.tellico /Tellico org.kde.tellico.exportBibtex ~/documentos/referência.bib true
    true

    Apresentar a chave de citação da seleção atual
    % qdbus org.kde.tellico /Collections org.kde.tellico.selectedBibtexKeys
    stephenson2004

    Adicionar um novo elemento e modificar o título
    % o_meu_id=`qdbus org.kde.tellico /Collections org.kde.tellico.addEntry`
    % qdbus org.kde.tellico /Collections org.kde.tellico.setEntryValue $meu_id título "Meu Livro Novo"
    true