-
Notifications
You must be signed in to change notification settings - Fork 0
Home

LogsParser is a .NET integration library for arizonarp.logsparser.info — the Arizona RP game-server log
viewer. It authenticates, fetches pages and turns their HTML into typed models.
This wiki is the API reference. For a condensed overview, see the repository README.
| Package |
LogsParser on NuGet |
| Version | 1.2.7 |
| Target frameworks |
net7.0, net8.0, net9.0, net10.0
|
| Dependencies |
Microsoft.Extensions.DependencyInjection, Microsoft.Extensions.Logging.Abstractions
|
| Licence | CC BY-NC 4.0 — non-commercial use only |
- parses logs, admin activity and top operations into immutable records
- authenticates with login, password and TOTP two-factor confirmation, reactively and on demand
- solves the React anti-DDoS challenge and retries the original request
- reads the current account and the filter catalogue with its
dynamic[n]parameters out of the page layout - tracks rate-limit headers and waits out
429responses instead of failing - leaves cookie persistence entirely to the caller
- works standalone or through
Microsoft.Extensions.DependencyInjection
dotnet add package LogsParser
using LogsParser;
using LogsParser.Abstractions;
using LogsParser.Models;
using LogsParser.Net;
using var dataSource = new LogsParserHttpDataSource(
credentials: new LogsParserCredentials("my_login", "my_password", "BASE32SECRET"),
cookieStorage: new MemoryCookieStorage());
var client = new LogsParserClient(dataSource);
var page = await client.GetLogsAsync(new LogsQuery(
ServerId: 201,
Filters: ["warn", "mute"],
PeriodFrom: DateTime.UtcNow.AddDays(-1),
PeriodTo: DateTime.UtcNow));
foreach (var entry in page.Entries)
{
Console.WriteLine($"{entry.Timestamp:u} {entry.Text}");
}There is no LoginAsync to call first: the transport reacts to the service's redirects, so the first data request
performs the login and the two-factor confirmation by itself.
| Page | What it covers |
|---|---|
| Getting Started | Installation, namespaces, the first request in manual and DI mode |
| LogsParserClient | The high-level facade: every public method, parameter and return type |
| Requests and URI Builder | Query models, LogsRequestUriBuilder, validation and normalisation rules |
| Models | Full reference for every public record |
| Parsers |
LogsHtmlParser and LogsFilterCatalogParser used without HTTP |
| Transport and Authentication |
ILogsParserDataSource, the auth state machine, retries, rate limiting, the anti-DDoS challenge |
| Cookie Storage | The ICookieStorage contract and persisting a session |
| Dependency Injection |
AddLogsParser, registration options, service lifetimes |
| Logging |
LogsParserLogging, categories and level taxonomy |
| Exceptions | The exception hierarchy and how to handle it |
The repository, the solution and the project folder are called LogTools. The assembly, the NuGet package and
every namespace are called LogsParser. Folder names inside the repository also do not match namespaces on
purpose — always take a namespace from the namespace statement, never from the path.
LogsParser · CC BY-NC 4.0 — non-commercial use only / только некоммерческое использование
English
- Home
- Getting Started
- LogsParserClient
- Requests and URI Builder
- Models
- Parsers
- Transport and Authentication
- Cookie Storage
- Dependency Injection
- Logging
- Exceptions
Русский
- Главная
- Начало работы
- LogsParserClient
- Запросы и построитель URI
- Модели
- Парсеры
- Транспорт и авторизация
- Хранение cookies
- Внедрение зависимостей
- Логирование
- Исключения