summaryrefslogtreecommitdiff
path: root/README.md
blob: f98103836114504a94c31fdf44ce2788d98e4df7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108

JFR Pary - dane licytacji
=========================

Narzędzie dodające do strony wyników z JFR Pary dane licytacji, zbierane w pliku
BWS "pierniczkami" nowego typu.

Przykładowe efekty działania:
[rozdania szkoleniowe z BOOM 2015](http://www.pzbs.pl/wyniki/boom/2015/boom_wirtualne_me.html), 
[Kadra U-20 z butlerem ligowym](http://emkael.info/brydz/wyniki/2015/u20_szczyrk/ligowe.html).

Wymagania systemowe
-------------------

* python 2.x (testowane i tworzone w wersji 2.7.10)
* BeautifulSoup4
* lxml (jako parser dla BS4)
* argparse

Opcjonalnie, wrapper Basha konwertujący dane z BWS do CSV, używa `mdb-export`
z pakietu `mdbtools`.

Instalacja
----------

Ściągnij zawartość tego repozytorium.

W katalogu WWW Par skonfiguruj JS i CSS niezbędny do prezentacji danych
licytacji:
* skopiuj [`css/bidding.css`](css/bidding.css) do katalogu WWW
* dołącz plik [`css/bidding.css`](css/bidding.css) gdzieś w arkuszach stylów turnieju
(np. poprzez `@import` w `kolorki.css`)
* skopiuj [`javas/bidding.js`](javas/bidding.js) do podkatalogu javas katalogu WWW (plik dołączany
jest automatycznie do stron z wynikami)
* skopiuj [`images/link.png`](images/link.png) do podkatalogu images katalogu WWW

Już, gotowe.

Użycie
------

Skrypt [`bidding_data.py`](bidding_data.py) operuje na następujących
danych wejściowych:
* plikach HTML wygenerowanych po zakończeniu turnieju stron statycznych
* plikach CSV z danymi o licytacji i ustawieniu par, wyeksportowanymi z pliku
BWS

Aby uzyskać pliki CSV niezbędne do działania narzędzia, należy zapisać całą
zawartość tabel `BiddingData` oraz `RoundData` do osobnych plików CSV.

W środowiskach linuksowych dokonuje tego narzędzie `mdb-export` z pakietu
`mdb-tools`:
```
mdb-export PLIK.bws BiddingData > DANE_LICYTACJI.csv
mdb-export PLIK.bws RoundData > DANE_USTAWIENIA.csv
```

Po wygenerowaniu w/w plików CSV, [`bidding_data.py`](bidding_data.py)
przyjmuje następujące parametry:
```
python bidding_data.py DANE_LICYTACJI.csv DANE_USTAWIENIA.csv KATALOG_ROBOCZY_Z_PREFIKSEM_TURNIEJU [mapowanie numerów rozdań]
```

`DANE_LICYTACJI.csv` i `DANE_USTAWIENIA.csv` to pliki z danymi wyeskportowanymi
z BWS.

`KATALOG_ROBOCZY_Z_PREFIKSEM_TURNIEJU` to ściezka to katalogu WWW z doklejonym
Parowym prefiksem turnieju (czyli np. `..\www\moj_turniej`).

Udostępniany ze skryptem wrapper [`bidding_data.sh`](bidding_data.sh)
obsługuje eksport z BWS poprzez `mdb-export`, wystarczy więc:
```
./bidding_data.sh PLIK.bws KATALOG_ROBOCZY_Z_PREFIKSEM_TURNIEJU [mapowanie numerów rozdań]
```

Narzędzie obsługuje niestandardowe zakresy numeracji rozdań w turnieju.

Domyślnie, mapowanie numeru rozdań z Par na numer rozdania w BWS
(numer fizycznego pudełka), odbywa się automatycznie (na podstawie danych z BWS).

Możliwe jest jednak podanie własnego mapowania numerów rozdań (przydatne np.
wtedy, gdy w turnieju te same pudełka używane są więcej niż jeden raz, a gdy 
fizyczne numery rozdań używane są wiele razy w jednym BWS - wręcz niezbędne).

Osiąga się to poprzez podanie dodatkowych parametrów za katalogiem roboczym.
Mapowanie określają, kolejno, trzy liczby:
* numer pierwszego rozdania wg numeracji JFR Pary
* numer ostatniego rozdania wg numeracji JFR Pary
* numer pierwszego rozdania w BWS (zakłada się ciągłość numeracji
w ramach mapowania)

Na przykład, podanie parametrów `1 8 23` sprawi, że protokoły od `*001.html`
do `*008.html` zostaną uzupełnione o licytację z rozdań 23-30.

Lista przyszłych usprawnień
---------------------------

Patrz: [`TODO.md`](TODO.md)

Autor
-----

Michał Klichowicz (mkl)

Licencja
--------

Patrz: [`LICENSE.md`](LICENSE.md)