För de som vill göra egna sökningar eller integrera med andra system.
API:et låter dig göra sökningar direkt utan webgränssnittet. Perfekt om du vill:
Lägg till nyckeln i varje request:
curl -H "Authorization: Bearer DIN_NYCKEL" \
https://tools.tornevall.net/api/irclog/search?q=hello
GET /api/irclog/search?q=hello&channel_id=123
Returnerar första 100 resultat som innehåller "hello" i kanal 123.
POST /api/irclog/search
Authorization: Bearer DIN_NYCKEL
Content-Type: application/json
{
"query": "php mysql",
"channel_id": 123,
"nick": "Robin",
"date_from": "2024-01-01",
"date_to": "2024-12-31",
"limit": 50,
"page": 1
}
Svar:
{
"results": [
{
"id": 12345,
"channel": "#general",
"network": "EFNet",
"nick": "Robin",
"message": "php och mysql",
"occurred_at": "2024-01-15T14:30:00Z",
"permalink": "/irclog/h/abc123xyz"
}
],
"total": 42,
"page": 1,
"per_page": 50
}
GET /api/irclog/highlights
Authorization: Bearer DIN_NYCKEL
Svar:
{
"highlights": [
{
"id": 789,
"title": "Roligt citat",
"event": {
"nick": "Robin",
"message": "Det var roligt!",
"date": "2024-01-15T14:30:00Z"
},
"permalink": "/irclog/h/abc123xyz"
}
]
}
POST /api/irclog/highlights
Authorization: Bearer DIN_NYCKEL
Content-Type: application/json
{
"log_event_id": 12345,
"title": "Viktigt citat",
"note": "Denna person hade rätt",
"is_public": true
}
Svar:
{
"id": 789,
"permalink": "/irclog/h/abc123xyz"
}
Nu kan du dela länken /irclog/h/abc123xyz med andra!
const API_KEY = 'din_nyckel_här';
// Sökning
async function search(query) {
const response = await fetch(
'https://tools.tornevall.net/api/irclog/search?q=' + query,
{
headers: {
'Authorization': 'Bearer ' + API_KEY
}
}
);
const data = await response.json();
return data.results;
}
// Använd det
search('php mysql').then(results => {
results.forEach(r => {
console.log(r.nick + ': ' + r.message);
});
});
import requests
API_KEY = 'din_nyckel_här'
headers = {'Authorization': f'Bearer {API_KEY}'}
# Sökning
response = requests.post(
'https://tools.tornevall.net/api/irclog/search',
headers=headers,
json={
'query': 'php mysql',
'channel_id': 123,
'limit': 50
}
)
results = response.json()['results']
for msg in results:
print(f"{msg['nick']}: {msg['message']}")
<?php
$apiKey = 'din_nyckel_här';
$ch = curl_init('https://tools.tornevall.net/api/irclog/search');
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json'
],
CURLOPT_POSTFIELDS => json_encode([
'query' => 'php mysql',
'channel_id' => 123,
'limit' => 50
])
]);
$response = curl_exec($ch);
$data = json_decode($response, true);
foreach ($data['results'] as $msg) {
echo $msg['nick'] . ': ' . $msg['message'] . "\n";
}
?>
Om något går fel:
{
"error": "Något gick fel",
"code": "ERROR_CODE"
}
Vanliga felkoder:
AUTH_REQUIRED - Du glömde API-nyckelnNOT_FOUND - Kanalen eller datan finns inteRATE_LIMIT - Du gjorde för många förfrågningar (max 100/minut)VALIDATION_ERROR - Felaktig parameterBehöver du högre gränser? Kontakta admin!
Använd alltid ISO 8601-format för datum:
2024-01-15 ← Bara datum
2024-01-15T14:30:00Z ← Datum + tid (UTC)
docs/sv/irclog-anvandandarguide.mdVersion: 1.0
Uppdaterad: 2026-02-24