https://github.com/ivkos/uiss-client
node.js клиент за УИСС на Технически универститет - София
https://github.com/ivkos/uiss-client
node node-js node-module parser parser-api scraper technical-university tu-sofia uiss
Last synced: 3 months ago
JSON representation
node.js клиент за УИСС на Технически универститет - София
- Host: GitHub
- URL: https://github.com/ivkos/uiss-client
- Owner: ivkos
- License: mit
- Created: 2016-07-01T10:27:39.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2022-12-09T08:04:45.000Z (over 2 years ago)
- Last Synced: 2024-04-13T21:56:53.870Z (about 1 year ago)
- Topics: node, node-js, node-module, parser, parser-api, scraper, technical-university, tu-sofia, uiss
- Language: JavaScript
- Homepage:
- Size: 38.1 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
uiss-client
=============
[](https://www.npmjs.com/package/uiss-client)
[](https://www.npmjs.com/package/uiss-client)
[]()## Описание
`uiss-client` е node.js клиент за [УИСС](http://student.tu-sofia.bg) на Технически университет - София, позволяващ автоматизиране на проверката на оценки и получаване на информация за студент.## Инсталиране
```
npm install uiss-client
```## Примери
```js
const UissClient = require('uiss-client');const egn = '94xxxxyyyy';
const facultyId = 'xxxx13yyy';
``````js
UissClient
.login(egn, facultyId)
.then(session => {
return session.getStudent()
.then(student => console.log(student))
.then(() => session.logout());
})
.catch(err => console.error(err));
``````js
const moment = require("moment");UissClient
.login(egn, facultyId)
.then(session => {
return session.getGrades()
.then(grades => {
// Филтрира само оценките, внесени на и след 30.06.2016
const latest = grades.filter(
g => g.lastUpdate && g.lastUpdate.isSameOrAfter(moment("30.06.2016", "DD.MM.YYYY"))
);
console.log(latest);
})
.then(() => session.logout())
.catch(err => console.error(err));
});
```## Документация на UissClient
#### static Promise\ login(egn, facultyId)
Създава нова сесия в УИСС като се логва с подадените ЕГН (`egn`) и факултетен номер (`facultyId`). Връща `Promise` с инстанция на `UissClient` за текущата сесия.> Вижте [документацията на Promise в MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) и примерите по-горе за това как се използва `Promise`.
#### Promise\ getStudent()
Извлича информацията за студента от текущата сесия. Връща `Promise`. Обектът `Student` е с подобна на тази структура:
```
Student {
_name: 'XXXXXXXXXXXXXX',
_facultyId: 'XXXXXXXX',
_facultyName: 'XXXXXXXXXXXXXXXXXXXXX',
_major: 'XXXXXXXXXXXXXX',
_degreeType: 'Редовно',
_email: '[email protected]',
_status: '$12Действащ',
_semester: 6,
_completedSemester: 6,
_stream: N,
_group: NN }
```#### Promise\ getGrades()
Извлича оценките на студента. Връща `Promise` с масив от `Grade`. Обектът `Grade` е с подобна на тази структура:
```
Grade {
_gradeId: 44,
_name: 'ПРОГРАМНИ СРЕДИ',
_semesterId: 6,
_controlForm: 'Изпит',
_gradeText: 'мн.добър',
_gradeNumeric: 5,
_lastUpdate:
{ ... }
```
Полето `lastUpdate` е от тип `Moment`.> Вижте [документацията на Moment.js](http://momentjs.com/docs/) и примерите по-горе за това как се използва `Moment`.
#### Promise\ getCerts()
Извлича заверките на студента. Връща `Promise` с масив от `Cert`. Обектът `Cert` има подобна на следната
структура:```
Cert {
_signatures:
{ lectures: EmptySignature { _signeeName: 'Незаверен', _date: moment.invalid(/* NaN */) },
seminars: undefined,
labs:
Signature {
_signeeName: 'гл. ас. д-р ТАШЕВА',
_date: moment("2017-01-11T00:00:00.000") },
practice: undefined,
project: undefined },
_certId: 55,
_subjectName: 'ПРОГРАМИРАНЕ ЗА РАЗПРЕДЕЛЕНИ СРЕДИ',
_semesterId: 7 }
```#### Promise logout()
Прекратява текущата сесия.## Лиценз
`uiss-client` е свободен софтуер и се разпространява под [лиценза MIT](/LICENSE).