← Back to docs

irclog-api-guide

Language: SV | EN | SV

IRC Memory Lane - API Guide för Avancerade

För de som vill göra egna sökningar eller integrera med andra system.

Vad är API:et?

API:et låter dig göra sökningar direkt utan webgränssnittet. Perfekt om du vill:

Börja

1. Skaffa en API-nyckel

  1. Logga in på IRC Memory Lane
  2. Gå till InställningarAPI-nycklar
  3. Klicka Skapa ny nyckel
  4. Kopiera nyckeln (visas bara en gång!)

2. Använd nyckeln i dina anrop

Lägg till nyckeln i varje request:

curl -H "Authorization: Bearer DIN_NYCKEL" \
  https://tools.tornevall.net/api/irclog/search?q=hello

Exempel - Sök i loggar

Simpel sökning

GET /api/irclog/search?q=hello&channel_id=123

Returnerar första 100 resultat som innehåller "hello" i kanal 123.

Avancerad sökning

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
}

Highlights - Spara favoriter via API

Hämta dina highlights

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"
    }
  ]
}

Skapa ett highlight

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!

Använda datan

JavaScript/Node.js

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);
  });
});

Python

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

<?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";
}
?>

Felkoder

Om något går fel:

{
  "error": "Något gick fel",
  "code": "ERROR_CODE"
}

Vanliga felkoder:

Gränser

Behöver du högre gränser? Kontakta admin!

Datumformat

Använd alltid ISO 8601-format för datum:

2024-01-15        ← Bara datum
2024-01-15T14:30:00Z   ← Datum + tid (UTC)

Mer info


Version: 1.0
Uppdaterad: 2026-02-24