Projekt: Hesla Jednoty bratrské/2011

Z Wikiverzity
Skočit na navigaci Skočit na vyhledávání

Projekt: Hesla Jednoty bratrské[editovat]

– příprava Hesel pro rok 2011

w01-sql-import[editovat]

Import Losungen do databáze[editovat]

2009-12-31[editovat]

Dostal jsem Losungen 2011 jako soubor databáze Microsoft access, Losungen_für_2011_30.12.2009.mdb.

2010-01-08..[editovat]

2010-02-06[editovat]

  • /w01make skript, který:
    1. mysql : ověří, že existuje databáze hes11 – ukáže její tabulky (může být prázdná)
    2. mdb-schema : ukáže /TABLE Losungen v losungen2011.mdb
    3. diff -b -U0 losungen2010.schema losungen2011.schema : ukáže případný rozdíl s loňskou tabulkou MDB (vloni jsem ale žádnou neměl)
    4. mdb-export -D %F losungen2011.mdb Losungen > import.csv : exportuje data do CSV souboru, fromdos převede CRLF na LF
    5. mysql hes11 < /hes_struct.sql : vytvoří strukturu databáze hes11
    6. mysql -v -v --show-warnings hes11 < /load_data_infile.sql : importuje data do databáze
  • Výsledek – pomocná /tabulka import, obsahující stejná pole, jako původní mdb databáze, ale v jiném pořadí

w02-sql-univerzalni-tabulky[editovat]

generování univerzálních tabulek[editovat]

2010-02-25[editovat]

  • Z loňské databáze hes10bak byla vyexportována tabulka day do souboru day10decs.sql – obsahuje záznamy českých a německých nedělí, svátků, zvláštních týdnů atd. Pak byla naimportována do databáze hes11 jakožto pomocná tabulka day10decs
  • Skript hes-day_cs.pl čte tuto tabulku day10decs a vytváří dle ní tabulku day_cs, která obsahuje pouze českojazyčné kompletní záznamy, ovšem v prvním sloupci text_de má jako klíč německý název. Tato tabulka bude sloužit pro překlad německých dnů na české.
  • Z loňské databáze hes10bak byla vyexportována tabulka comment do souboru comment10decs.sql. V tomnto souboru byla lehce upravena a přetříděna, obsahuje záznamy německých a českých výročí, sloupec date je jako primární klíč. Potom byla importována do databáze hes11 jako tabulka comment_uni. (Databáze mdb na letošní rok 2011 totiž tato výročí neobsahuje.)

w03-sql-load[editovat]

2010-02-25[editovat]

  • Začátek práce na skriptu hes-sql-load.pl, jehož účelem bude naplnit vlastní tabulky databáze hes11 daty z tabulky import a za pomoci tabulek day_cs a comment_uni. Zároveň bude překládat německé verše na české. Základem skriptu pro překlad byl loňský skript los10hes.pl (ovšem ten nepracoval nad databází, ale procházel textový soubor los10-18.pre, ze kterého generoval hes10-18.pre).

2010-03-03[editovat]

  • Dokumentace zde
  • Odskok do projektu Bible: MySQL, abychom nemuseli lovit verše z textových souborů jako v loňských letech.

w04-php-mirkovi[editovat]

2010-04-24[editovat]

Úpravy skriptů z minulého roku:

  • functions.php
  • index.php

Verze 2011.34:

2010-04-29[editovat]

Export databáze pro Mirka:

  • hes11mirekMySQL40.sql

w05-od-mirka[editovat]

2010-07-22[editovat]

  • hes11mirek.sql.gz – export databáze od Mirka (má blbě nastavený systémový čas: 2010-11-15)

2010-07-27[editovat]

Importy do lokální databáze:

  • hes11mirkovi <- hes11mirek.sql.gz
45 queries executed.
tabulka počet
záznamů
comment 8
comment_uni 16
day 158
day10decs 156
day_cs 91
dayname 0
drittetext 365
import 365
losung 2423
reading 1744
seq 79
song 121
  • hes11odmirka <- hes11mirek.sql.gz
Import has been successfully finished, 51 queries executed.
tabulka počet
záznamů
comment 8
comment_uni 16
day 158
day10decs 156
day_cs 91
dayname 0
drittetext 365
import 365
losung 2423
reading 1744
seq 79
song 121

V plánu[editovat]

w18-Ps+comments[editovat]

2010-10-14[editovat]

Až teď jsem si všimnul, že v databázi chybí doplněná tabulka comments s významnými dny, takže skript, který to tam nacpe z tabulky comments_uni:

  • hes11sql-comments.pl

Další problém se žalmy (viz README): Problém: v databázi chyběly nedělní žalmy:

  • v Losungen_fuer2011-06.04.2010.rtf jsou, OK
  • v položce Import.Ft1_Angaben jsou, OK
  • v tabulce reading nejsou ani německy, ani česky:
 SELECT * FROM `reading` WHERE `which` = 'Ps'
  • Problém bude v části kódu:
            if($DL =~ /Psalm/) {                        # je to žalm
                if($f12==2) {                           # žalm na týden není jako druhý
                    $whDL = 'PF';                       # je to žalm pro svátek: Psalm für Fest
                } elsif ($sunday) {                     # takže je to první svátek, může být neděle:
                    $whDL = 'WP';                       # v neděli je Wochenpsalm
                } else {                                # poprvé ve svátek je to zase Psalm für Fest
                  $whDL = 'PF';
                }
            } else {                                    # když to není Žalm,
              $whDL = 'DL';                             #  tak je to 3. čtení
            }

Chyba je v tom, že v Losungen 2010 byl jednak Wochenpsalm `reading.WP` a jednak Psalm `reading.Ps` Od letoška už je jen Psalm, takže v tom skriptu má být správně 'Ps' a nikoliv 'WP'.

Náprava databáze:

SELECT COUNT(*) FROM `reading` WHERE `which`='WP';
  COUNT(*)
  100

SELECT COUNT(*) FROM `reading` WHERE `which`='WP' AND `lang`='cs';
  COUNT(*)
  50

SELECT COUNT(*) FROM `reading` WHERE `which`='Ps';
  COUNT(*)
  0

SELECT * FROM `reading` WHERE `which`='WP' AND `lang`='cs';

chybí neděle:

  • 2011-04-24 - to je Velký pátek, v Losungen je čtení: Johannes 19,16-30 :: 2.Korinther 5,(14b-18)19-21 :: Matthäus 27,45-56
  • 2001-12-25 - 2. svátek vánoční, v Losungen je čtení: Johannes 1,1-5(6-8)9-14 :: Hebräer 1,1-3(4-6) :: Lukas 2,29-32

(Celkem je 52 nedělí v roce)

UPDATE `reading` set `which`='Ps' WHERE `which`='WP';
   100 row(s) affected.

SELECT COUNT(*) FROM `reading` WHERE `which`='Ps';
  COUNT(*)
  100

Problém byl, že jsem to sem už nepoznamenal (toto dopisuji až dodatečně při přípravěProjekt: Hesla Jednoty bratrské/2013, kdy řeším stejné chyby), takže za rok (Projekt: Hesla Jednoty bratrské/2012) se stejné problémy opakovaly, avšak zůstaly nevyřešeny a došlo k tiskovým chybám :-( Není nadto psát dokumentaci včas...