13.19
Átiratok keresése
/<guild_id>/api/transcripts/searchA szerver minden lezárt jegyében keres, nem csak az adataik között: mi hangzott el bennük, ki mondta, kik vettek részt, mikor nyíltak meg vagy zárultak le, melyik panelhez tartoznak, milyen értékelést kaptak, vagy melyik Discord-csatorna azonosítóján futottak. Ugyanaz a motor, mint a vezérlőpult mélykeresése. `search_transcripts` jogosultságot igényel (alapból kikapcsolva).
/<guild_id>/api/transcripts/searchUgyanez, csak a szűrőket lekérdezési paraméterek helyett JSON-törzsben küldöd. Hosszú lekérdezéseknél és résztvevőlistáknál kényelmesebb. Ha mindkettőt elküldöd, a törzs számít.
Minden találat tartalmazza a jegy adatait, legfeljebb 8 résztvevőt, és ha tartalomra kerestél, legfeljebb 3 illeszkedő üzenetrészletet, hogy lásd, *miért* került be a jegy. Bármelyik találat TicketId mezőjét vidd tovább az Átirat lekérése végpontra a teljes üzenetlistáért, vagy az Átirat lekérése HTML-ben végpontra a kész archívumért.
Szűrők (mind elhagyható; annyit kombinálsz, amennyit akarsz)
| Név | Típus | Kötelező | Leírás |
|---|---|---|---|
| q | string | nem kötelező | Szabad szöveges keresés az üzenetek tartalmában, legfeljebb 200 karakter. A 3 karakternél rövidebb szavakat az index nem veszi figyelembe. |
| said_by | string | nem kötelező | Csak az ehhez a Discord-azonosítóhoz tartozó tartalmat veszi számításba. A q mezővel együtt használd. |
| participants | string[] | nem kötelező | Legfeljebb 5 felhasználó, akik írtak a jegyben, mindegyik Discord-azonosítóként vagy a felhasználónév egy részleteként. GET esetén vesszővel elválasztva, POST esetén tömbként. |
| participants_mode | string | nem kötelező | Az all (alapértelmezett) azt kéri, hogy minden megadott résztvevő ugyanabban a jegyben írjon; az any azokat a jegyeket találja meg, amelyekben legalább egyikük írt. |
| include_bots | boolean | nem kötelező | A botüzeneteket és a botokat is beveszi a találatokba. Alapból false. |
| opened_by | string | nem kötelező | A jegy nyitója, Discord-azonosítóként vagy a felhasználónév egy részleteként. |
| closed_by | string | nem kötelező | A jegyet lezáró felhasználó Discord-azonosítója. |
| channel_id | string | nem kötelező | Az a Discord-csatorna- vagy szálazonosító, amelyen a jegy futott. |
| panel_id | number | nem kötelező | Csak az ebből a panelből nyílt jegyek. |
| opened_from | number | nem kötelező | Unix-időbélyeg: csak az ekkor vagy ezután megnyitott jegyek. |
| opened_to | number | nem kötelező | Unix-időbélyeg: csak az ekkor vagy ezelőtt megnyitott jegyek. |
| closed_from | number | nem kötelező | Unix-időbélyeg: csak az ekkor vagy ezután lezárt jegyek. |
| closed_to | number | nem kötelező | Unix-időbélyeg: csak az ekkor vagy ezelőtt lezárt jegyek. |
| rating_min | number | nem kötelező | A legkisebb értékelés, 1-5. |
| rating_max | number | nem kötelező | A legnagyobb értékelés, 1-5. |
| limit | number | nem kötelező | Oldalanként visszaadott találatok száma, 1-50 (alapból 25). |
| offset | number | nem kötelező | A lapozáshoz kihagyott találatok száma, legfeljebb 10000 (alapból 0). |
A keresés a többi olvasástól külön számolva kulcsonként percenként 10 kérésre van korlátozva, és szűkre szabott időkeretben fut. Az az egy keresés, amelyik nem ér véget időben, 504 választ ad. Szűkítsd a szűrőket (adj hozzá időszakot vagy panelt), és próbáld újra, ahelyett hogy ugyanazt a lekérdezést ismételnéd. Az ellenőrzésen fennakadó értékeket eldobjuk, nem utasítjuk el miattuk a kérést, ezért a válaszban visszaadott filters objektumban nézd meg, mi érvényesült valójában.
A keresés az átiratindexet olvassa, amely akkor épül, amíg a szervernek van Prémiuma, és az első előfizetéskor a meglévő archívumra is kiterjed. Minden válaszban a coverage objektum megmondja, hány átiratod van indexelve (indexed) az összes tároltból (total). Ha az archívum indexelése még fut, a két szám még nem egyezik.
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 }
}