Socket
Book a DemoInstallSign in
Socket

rtu-nodarbibas-api

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

rtu-nodarbibas-api

NPM package for scraping RTU schedule data from nodarbibas.rtu.lv

latest
Source
npmnpm
Version
1.0.2
Version published
Weekly downloads
6
-40%
Maintainers
1
Weekly downloads
 
Created
Source

RTU Nodarbibas API

TypeScript library for interacting with RTU (Rīgas Tehniskā universitāte) scheduling system.

Installation

npm install rtu-nodarbibas-api

Quick Start

import { RTUApiClient, RTUHtmlParser, apiClient, htmlParser } from 'rtu-nodarbibas-api';

// Use default instances
const events = await apiClient.fetchSemesterProgramEvents({
  semesterProgramId: 123,
  year: 2024,
  month: 3
});

// Or create custom instances
const client = new RTUApiClient({ timeout: 15000 });
const parser = new RTUHtmlParser();

API Methods

RTUApiClient

POST requests to RTU backend endpoints:

// Fetch semester program events
fetchSemesterProgramEvents(params: {
  semesterProgramId: number;
  year: number;
  month: number;
}): Promise<SemesterEvent[]>

// Fetch subjects for a semester program
fetchSemesterProgramSubjects(semesterProgramId: number): Promise<Subject[]>

// Check if semester program is published
checkSemesterProgramPublished(semesterProgramId: number): Promise<boolean>

// Find groups by course
findGroupsByCourse(params: {
  courseId: number;
  semesterId: number;
  programId: number;
}): Promise<Group[]>

// Find courses by program
findCoursesByProgram(params: {
  semesterId: number;
  programId: number;
}): Promise<Course[]>

// Cache management
clearCache(): void
clearExpiredCache(): void

RTUHtmlParser

Parse structured data from RTU HTML:

// Parse semester options from HTML select
parseHtmlSemesters(html: string): Semester[]

// Parse hidden semester metadata
parseHtmlSemesterMetadata(html: string): SemesterMetadata

// Parse program options grouped by faculty
parseHtmlPrograms(html: string): Faculty[]

// Parse schedule table data
parseHtmlScheduleTable(html: string): ScheduleEvent[]

// Parse faculty information
parseHtmlFaculties(html: string): FacultyInfo[]

// Parse breadcrumb navigation
parseHtmlBreadcrumb(html: string): BreadcrumbItem[]

// Parse pagination information
parseHtmlPagination(html: string): Pagination

// Parse page metadata from HTML head
parseHtmlMetadata(html: string): PageMetadata

// Parse time slot from time range string
parseTimeSlot(timeRange: string): TimeSlot

// Utility methods
normalizeText(text: string): string
extractNumber(text: string): number

Configuration

const client = new RTUApiClient({
  baseUrl: 'https://nodarbibas.rtu.lv',
  timeout: 10000,
  userAgent: 'Custom User Agent',
  cacheTimeout: 300000 // 5 minutes
});

Types

All TypeScript interfaces are exported: SemesterEvent, Subject, Group, Course, Faculty, ScheduleEvent, Pagination, etc.

Examples

Complete Workflow: Fetch Schedule by Period, Program, Course & Group

// 1. Find courses for a specific program and semester
const courses = await apiClient.findCoursesByProgram({
  semesterId: 45,
  programId: 123
});

// 2. Find groups for a specific course
const groups = await apiClient.findGroupsByCourse({
  courseId: courses[0].id,
  semesterId: 45,
  programId: 123
});

// 3. Fetch events for the selected period
const events = await apiClient.fetchSemesterProgramEvents({
  semesterProgramId: 123,
  year: 2024,
  month: 3
});

// 4. Get subjects for additional context
const subjects = await apiClient.fetchSemesterProgramSubjects(123);

Parse HTML Content

// Parse HTML content
const semesters = htmlParser.parseHtmlSemesters(htmlContent);
const programs = htmlParser.parseHtmlPrograms(programHtml);

// Parse schedule table
const schedule = htmlParser.parseHtmlScheduleTable(tableHtml);
const timeSlot = htmlParser.parseTimeSlot('09:00 - 10:30');

Keywords

rtu

FAQs

Package last updated on 09 Sep 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts