# Avancerad användning

## Kommandoradsväljare

När &appname; körs från kommandoraden finns det flera alternativ för att öppna datafiler. De kan visas genom att köra `tellico --help`. Diagnostikloggning kan också aktiveras, vilket skapar ett menyalternativ för att visa diagnostikloggen. Väljaren `--logfile` dirigerar om loggen till en fil.

    Användning: tellico [väljare] [filnamn]

    Tellico - ett samlingshanteringsprogram, fritt och enkelt

    Väljare:
      --nofile                  Öppna inte den senast öppnade filen igen
      --bibtex                  Importera <filnamn> som en bibtex-fil
      --mods                    Importera <filnamn> som en MODS-fil
      --ris                     Importera <filnamn> som en RIS-fil
      --pdf                     Importera <filnamn> som en PDF-fil
      --log                     Logga diagnostikutmatning
      --logfile <loggfil>       Skriv loggutmatning i <loggfil>
    \nArgument:
      [filnamn]                 Fil att öppna

## &DBus;-gränssnitt

&appname; har ett minimalt &DBus;-gränssnitt, som kan vara användbart för skript eller för att kommunicera med ett program som kör från kommandoraden. Som med alla &DBus;-anrop måste du ange programmet du vill kommunicera med, och det specifika gränssnittet. Namnet på &DBus;-tjänsten är `org.kde.tellico`.

### &DBus;-kommandon

Två &DBus;-objekt är tillgängliga i gränssnittet tellico: `Tellico` och `Collections`.

#### Objektet `Tellico`

Den fullständiga listan med &DBus;-kommandon i objektet `tellico` visas nedan:

    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)

För de fyra importkommandona är det första argumentet filen att importera, och det andra är importåtgärden. Tre åtgärder är tillgängliga: replace (ersätt), append (lägg till) och merge (sammanfoga). Fyra filformat för import stöds: Tellico &XML;-filer, Bibtex-filer, MODS-filer och RIS-filer. Metadata från &PDF;-filer kan också importeras.

För alla kommandon som exporterar text, skickas det till standardutmatningen med filnamnet `--`.

Samlingen som för närvarande är öppen i &appname; kan exporteras till en fil, antingen med Tellico &XML;-format, Tellico ZIP-format, Bibtex, &HTML; eller CSV (värden åtskilda med kommatecken). Exportkommandot har en valfri väljare för att ange om samlingen ska begränsas till nuvarande filtrering eller inte.

En lista med postidentifierarna som för närvarande är markerade eller filtreras ger möjlighet att visa eller uppdatera posterna i vyn.

En ny datafil kan öppnas genom att använda kommandot `openFile()`. Den fullständiga sökvägen måste anges.

Ett nytt filter kan anges med kommandot `setFilter()`, vilket är ekvivalent med att skriva i huvudfönstrets filterruta.

Givet en postidentifierare, markerar `showEntry()` den posten och visar postens detaljinformation i huvudfönstret.

#### Objektet `Collections`

Den fullständiga listan med &DBus;-kommandon i objektet `Collections` visas nedan:

    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)

En ny tom post kan skapas i den nuvarande samlingen genom att använda kommandot `addEntry()`. Returvärdet är postidentifieraren, som därefter kan användas för att tilldela postens fältvärden. En post kan tas bort från samlingen genom att anropa `removeEntry()`.

Att bara använda ett fältnamn för att anropa `allValues()` returnerar alla värden i fältet för posterna som för närvarande är markerade. Om inga poster är markerade är den returnerade listan tom. Om en postidentifierare ingår i kommandot, returneras fältvärden för den specifika posten.

Om den nuvarande samlingen är en bibliografi, returneras Bibtex hänvisningsnyckel för alla markerade poster genom att anropa kommandot `selectedBibtexKeys()`. Hänvisningsnyckeln för en specifik post kan hittas genom att använda kommandot `entryBibtexKey()`.

Poster kan redigeras direkt med &DBus;-gränssnittet. Givet en postidentifierare, tilldelar `setEntryValue()` fältvärdet direkt. För att lägga till ett värde utan att påverka befintliga värden, använd `addEntryValue()`. Det nya värdet läggs till sist i den befintliga listan.

### &DBus;-exempel

Här är några exempel på att använda skript i &appname; med &DBus;-gränssnittet. Observera att kommandot `qdbus` kan förekomma som `qdbus-qt5` eller något liknande på din dator.

    Öppna en Bibtex-fil
    % qdbus org.kde.tellico /Tellico org.kde.tellico.importBibtex "~/documents/reference.bib" "replace"
    true

    Exportera en Bibtex-fil
    % qdbus org.kde.tellico /Tellico org.kde.tellico.exportBibtex ~/documents/reference.bib
    true

    Exportera en Bibtex-fil med användning av nuvarande filtrering
    % qdbus org.kde.tellico /Tellico org.kde.tellico.exportBibtex ~/documents/reference.bib true
    true

    Visa den nuvarande markeringens hänvisningsnyckel
    % qdbus org.kde.tellico /Collections org.kde.tellico.selectedBibtexKeys
    stephenson2004

    Lägg till en ny post och ange titel
    % myid=`qdbus org.kde.tellico /Collections org.kde.tellico.addEntry`
    % qdbus org.kde.tellico /Collections org.kde.tellico.setEntryValue $myid title "Min nya bok"
    true