https://github.com/markusl/kilometrikisa
Access data from Kilometrikisa cycling competition.
https://github.com/markusl/kilometrikisa
api es6 javascript kilometrikisa
Last synced: 5 months ago
JSON representation
Access data from Kilometrikisa cycling competition.
- Host: GitHub
- URL: https://github.com/markusl/kilometrikisa
- Owner: markusl
- Created: 2017-07-01T13:23:32.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2023-03-01T15:24:31.000Z (over 3 years ago)
- Last Synced: 2025-04-06T09:28:24.887Z (about 1 year ago)
- Topics: api, es6, javascript, kilometrikisa
- Language: TypeScript
- Homepage:
- Size: 837 KB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Kilometrikisa
This module will enable you to easily access information on the [Kilometrikisa](https://www.kilometrikisa.fi/) site.
## Usage
### Setup the cookie jar
Before using the library, you might need to configure a cookie
jar for storing the cookies needed for logging in.
```javascript
import * as Kilometrikisa from 'kilometrikisa';
import axiosCookieJarSupport from '@3846masa/axios-cookiejar-support';
import * as tough from 'tough-cookie';
// Setup cookie jar
const cookieJar = new tough.CookieJar();
Kilometrikisa.setupAxiosCookieJar(axiosCookieJarSupport, cookieJar);
// Use library
Kilometrikisa.login('username', 'password')
.then(user => ...);
```
### Log in and fetch basic user information
```javascript
const user = await Kilometrikisa.login('username', 'password');
console.log(user);
```
### Fetch results for user
```javascript
Kilometrikisa.login(kktestLogin, kktestPw)
.then(() => Kilometrikisa.getUserResults())
.then(results => {
const totalKm = results.reduce((s, v) => s + v.km, 0);
console.log(totalKm + " km driven");
});
```
```javascript
// Example output
[
...
{ date: '2017-06-27', km: 10.7 },
{ date: '2017-06-28', km: 28 },
{ date: '2017-06-29', km: 24.6 },
{ date: '2017-06-30', km: 0 },
{ date: '2017-07-01', km: 21.7 },
{ date: '2017-07-02', km: 26.2 },
{ date: '2017-07-03', km: 12.4 },
...
]
```
### Fetch top 100 statistics
```javascript
const n = 2;
const page = await Kilometrikisa.allTeamsTopListPage();
const teams = await Kilometrikisa.getTeamInfoPages(page, n);
console.log(teams);
```
### Fetch detailed information for the team where the user belongs to
```javascript
Kilometrikisa.login('username', 'password')
.then(() => Kilometrikisa.getContests())
.then((contests) => Kilometrikisa.fetchTeamResults(contests[0]))
.then(teamResults => {
console.log(teamResults.name);
console.log(teamResults.results);
});
```
### Update information to the contest log
Note that this API will only work when the contest is active.
```javascript
Kilometrikisa.login('username', 'password')
.then(() => Kilometrikisa.updateLog('2021-08-22', 100.5))
.then(() => console.log('Log updated'));
```
### Get the contests user has participated in
```javascript
Kilometrikisa.login('username', 'password')
.then(() => Kilometrikisa.getContests())
.then((result) => {
console.log(result[0].teamName + ' ' result[0].contest + ' ' + result[0].time);
console.log(result[0].link);
});
```
### Get the latest contest information
```javascript
const contests = await Kilometrikisa.getAllContests();
const latest = contests[0];
console.log(latest.name); // Talvikilometrikisa 2021
console.log(latest.link); // /contests/talvikilometrikisa-2021/teams/
```