13.19
Hledání v přepisech
/<guild_id>/api/transcripts/searchProhledá každý zavřený tiket na serveru, a to nejen jeho metadata: co v něm padlo, kdo to napsal, kdo se ho účastnil, kdy vznikl a kdy se zavřel, ke kterému panelu patří, jaké má hodnocení nebo jaké ID kanálu na Discordu používal. Jde o stejný nástroj jako hloubkové hledání na nástěnce. Vyžaduje oprávnění `search_transcripts` (ve výchozím stavu vypnuté).
/<guild_id>/api/transcripts/searchTotéž, jen s filtry poslanými v těle JSON místo v parametrech dotazu. Hodí se u dlouhých dotazů a seznamů účastníků. Když pošlete obojí, platí tělo.
Každý výsledek nese metadata tiketu, nejvýše 8 účastníků, a pokud jste hledali podle obsahu, i nejvýše 3 odpovídající úryvky zpráv, ať vidíte, *proč* se tiket našel. Hodnotu TicketId z libovolného výsledku předejte rovnou do Načtení přepisu pro úplný seznam zpráv, nebo do Načtení přepisu v HTML pro hotový archiv.
Filtry (všechny nepovinné, kombinujte, kolik chcete)
| Název | Typ | Povinné | Popis |
|---|---|---|---|
| q | string | volitelné | Volné hledání v obsahu zpráv, nejvýše 200 znaků. Slova kratší než 3 znaky index přeskakuje. |
| said_by | string | volitelné | Zahrne jen obsah napsaný tímto ID uživatele na Discordu. Kombinujte s polem q. |
| participants | string[] | volitelné | Nejvýše 5 uživatelů, kteří v tiketu psali, každý jako ID uživatele na Discordu nebo část uživatelského jména. U GET oddělené čárkami, u POST jako pole. |
| participants_mode | string | volitelné | Hodnota all (výchozí) vyžaduje, aby v témže tiketu psali všichni uvedení účastníci; any najde tikety, kde psal aspoň jeden z nich. |
| include_bots | boolean | volitelné | Zahrne do hledání i zprávy a účastníky, kteří jsou boti. Výchozí hodnota je false. |
| opened_by | string | volitelné | Zakladatel tiketu jako ID uživatele na Discordu nebo část uživatelského jména. |
| closed_by | string | volitelné | ID uživatele na Discordu, který tiket zavřel. |
| channel_id | string | volitelné | ID kanálu nebo vlákna na Discordu, kde tiket probíhal. |
| panel_id | number | volitelné | Jen tikety založené z tohoto panelu. |
| opened_from | number | volitelné | Unixové časové razítko: jen tikety založené v tomto čase nebo později. |
| opened_to | number | volitelné | Unixové časové razítko: jen tikety založené v tomto čase nebo dříve. |
| closed_from | number | volitelné | Unixové časové razítko: jen tikety zavřené v tomto čase nebo později. |
| closed_to | number | volitelné | Unixové časové razítko: jen tikety zavřené v tomto čase nebo dříve. |
| rating_min | number | volitelné | Nejnižší hodnocení, 1 až 5. |
| rating_max | number | volitelné | Nejvyšší hodnocení, 1 až 5. |
| limit | number | volitelné | Počet výsledků na stránku, 1 až 50 (výchozí 25). |
| offset | number | volitelné | Počet výsledků přeskočených kvůli stránkování, nejvýše 10000 (výchozí 0). |
Hledání má limit 10 požadavků za minutu na token, počítaný zvlášť od ostatního čtení, a běží v přísně omezeném čase. Hledání, které se nestihne dokončit, vrací 504. Místo opakování stejného dotazu filtry zužte (přidejte časové rozmezí nebo panel) a zkuste to znovu. Hodnoty, které neprojdou kontrolou, se zahodí a požadavek se kvůli nim neodmítne, takže si v odpovědi projděte vrácený objekt filters, ať víte, co se opravdu použilo.
Hledání čte index přepisů, který vzniká, dokud má server Premium, a při prvním pořízení se doplní i o váš dosavadní archiv. Objekt coverage v každé odpovědi říká, kolik vašich přepisů je zaindexovaných (indexed) z celkového uloženého počtu (total). Pokud doplňování indexu ještě běží, čísla se zatím neshodují.
curl -X GET \
-H "Authorization: Bearer <API_TOKEN>" \
"https://api.ticketsx.xyz/<guild_id>/api/transcripts/search?q=refund&participants=123456789,987654321&participants_mode=all&closed_from=1730000000&limit=25"curl -X POST \
-H "Authorization: Bearer <API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"q":"refund","participants":["123456789","987654321"],"participants_mode":"all","closed_from":1730000000,"limit":25}' \
https://api.ticketsx.xyz/<guild_id>/api/transcripts/search{
"transcripts": [
{
"TicketId": 42,
"AuthorId": "123456789",
"AuthorUsername": "jane",
"PanelId": 1,
"PanelName": "Support",
"Rating": 5,
"RatingCount": 1,
"CloseReason": "Resolved",
"CreatedAt": 1732200000,
"ClosedAt": 1732210000,
"ChannelId": "1122334455",
"ClosedBy": "987654321",
"Participants": [
{ "UserId": "123456789", "Username": "jane", "MessageCount": 12, "IsBot": false }
],
"Snippets": [
{ "AuthorId": "123456789", "AuthorUsername": "jane", "Content": "my refund never arrived", "CreatedAt": 1732200050 }
]
}
],
"pagination": { "total": 1, "limit": 25, "offset": 0, "returned": 1 },
"coverage": { "indexed": 480, "total": 480 },
"filters": { "q": "refund", "participants_mode": "all", "limit": 25 }
}