13.19
Įrašų paieška
/<guild_id>/api/transcripts/searchIeško kiekviename uždarytame serverio biliete, o ne vien jo duomenyse: kas viduje pasakyta, kas tai pasakė, kas dalyvavo, kada jis atvertas ar uždarytas, kuriam skydeliui priklauso, kokį vertinimą gavo ar kokį Discord kanalo identifikatorių turėjo. Tai tas pats variklis kaip gili paieška valdymo pulte. Reikia teisės `search_transcripts` (numatytai išjungta).
/<guild_id>/api/transcripts/searchTas pats, tik filtrai siunčiami JSON turiniu, o ne užklausos parametrais. Patogiau ilgoms paieškoms ir dalyvių sąrašams. Nusiuntus abu, galioja turinys.
Kiekvienas rezultatas neša bilieto duomenis, iki 8 dalyvių, o jei ieškojote pagal turinį, ir iki 3 tinkančių žinučių atkarpų, kad matytumėte, *kodėl* bilietas rastas. Paimkite TicketId iš bet kurio rezultato ir perduokite jį Įrašo paėmimui, kad gautumėte visą žinučių sąrašą, arba Įrašo paėmimui HTML pavidalu, kad gautumėte parengtą archyvą.
Filtrai (visi nebūtini; derinkite kiek norite)
| Pavadinimas | Tipas | Privaloma | Aprašas |
|---|---|---|---|
| q | string | neprivaloma | Laisva paieška žinučių turinyje, daugiausia 200 rašmenų. Trumpesnius nei 3 rašmenų žodžius rodyklė praleidžia. |
| said_by | string | neprivaloma | Atsižvelgia tik į turinį, kurį parašė šis Discord naudotojo identifikatorius. Naudokite kartu su q. |
| participants | string[] | neprivaloma | Iki 5 naudotojų, rašiusių biliete, kiekvienas kaip Discord naudotojo identifikatorius arba naudotojo vardo dalis. GET atveju atskiriami kableliais, POST atveju pateikiami sąrašu. |
| participants_mode | string | neprivaloma | all (numatyta) reikalauja, kad visi nurodyti dalyviai būtų rašę tame pačiame biliete; any randa bilietus, kuriuose rašė bent vienas iš jų. |
| include_bots | boolean | neprivaloma | Įtraukia ir botų žinutes bei botus dalyvius. Numatyta reikšmė yra false. |
| opened_by | string | neprivaloma | Bilietą atvėręs žmogus, nurodomas Discord naudotojo identifikatoriumi arba naudotojo vardo dalimi. |
| closed_by | string | neprivaloma | Bilietą uždariusio žmogaus Discord naudotojo identifikatorius. |
| channel_id | string | neprivaloma | Discord kanalo ar gijos identifikatorius, kurį naudojo bilietas. |
| panel_id | number | neprivaloma | Tik iš šio skydelio atverti bilietai. |
| opened_from | number | neprivaloma | Unix laiko žyma: tik bilietai, atverti tuo metu arba vėliau. |
| opened_to | number | neprivaloma | Unix laiko žyma: tik bilietai, atverti tuo metu arba anksčiau. |
| closed_from | number | neprivaloma | Unix laiko žyma: tik bilietai, uždaryti tuo metu arba vėliau. |
| closed_to | number | neprivaloma | Unix laiko žyma: tik bilietai, uždaryti tuo metu arba anksčiau. |
| rating_min | number | neprivaloma | Mažiausias vertinimas, 1-5. |
| rating_max | number | neprivaloma | Didžiausias vertinimas, 1-5. |
| limit | number | neprivaloma | Rezultatų puslapyje, 1-50 (numatyta 25). |
| offset | number | neprivaloma | Kiek rezultatų praleidžiama verčiant puslapius, daugiausia 10000 (numatyta 0). |
Paieška apribota iki 10 užklausų per minutę kiekvienam raktui, skaičiuojant atskirai nuo kito skaitymo, ir vyksta griežtai ribotu laiku. Paieška, nespėjusi baigti darbo, grąžina 504. Užuot kartoję tą pačią užklausą, susiaurinkite filtrus (pridėkite laikotarpį ar skydelį) ir bandykite dar kartą. Patikros nepraėjusios reikšmės atmetamos, o ne sugriauna visą užklausą, tad atsakyme grąžintame objekte filters pasižiūrėkite, kas iš tiesų pritaikyta.
Paieška skaito įrašų rodyklę, kuri kuriama, kol serveris turi Premium, ir pirmą kartą jį įsigijus apima ir jūsų ligtolinį archyvą. Objektas coverage kiekviename atsakyme nurodo, kiek jūsų įrašų jau yra rodyklėje (indexed) iš visų laikomų (total). Jei archyvo apdorojimas dar vyksta, tie du skaičiai kol kas nesutaps.
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 }
}