Merge lp:~phill-ridout/openlp/ftw-update into lp:openlp

Proposed by Phill
Status: Superseded
Proposed branch: lp:~phill-ridout/openlp/ftw-update
Merge into: lp:openlp
Diff against target: 1049 lines (+816/-0) (has conflicts)
4 files modified
download.cfg (+316/-0)
download_3.0.json (+326/-0)
scripts/hashgen.py (+89/-0)
scripts/jsongen.py (+85/-0)
Conflict adding file scripts.  Moved existing file to scripts.moved.
To merge this branch: bzr merge lp:~phill-ridout/openlp/ftw-update
Reviewer Review Type Date Requested Status
OpenLP Core Pending
Review via email: mp+370401@code.launchpad.net

Commit message

Update all resources to the latest versions. Put them in folders identifying their version number, so as to avoid overwriting data that previous versions of OpenLP use.

To post a comment you must log in.

Unmerged revisions

24. By Phill

Update themes

23. By Phill

Upgrade bibles to v2

22. By Phill

Change error message

21. By Phill

Upgrade the songs db to version 7

20. By Phill

Add a JSON formatted config file for easier parsing and associated script

19. By Azaziah

-NOT TO BE MERGED BEFORE 2.4.6 IS RELEASED-

- Added all of the Finnish songs to a songbook
- Removed one duplicated song
- A couple of typos fixed in the song titles

This is to be merged at the same time or after 2.4.6 is released,
which fixes the following bugs related to the OpenLP importer:

Bug #1652003: OpenLP Importer 2 fails to import song numbers 2.4 >
Bug #1632567: OpenLP importer can't handle new song songbook DB structure
(AttributeError: 'OldSong' object has no attribute 'book...

18. By Laura Ekstrand

Added Geo Purple theme. Now it's registered in the download.cfg file.

17. By Azaziah

- Fixed the: Norsk-SMB-1921 Bible (some of the books were missing)

16. By Raoul Snyman

Update SHA256 hashes; Just check for config file rather than failing

15. By Azaziah

- Added the Norsk-SMB-1921 Bible
- Fixed the spelling of "jesaja" to "Jesaja" on NB-1930 Bible

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added directory 'bibles'
2=== added file 'bibles/ASV.sqlite'
3Binary files bibles/ASV.sqlite 1970-01-01 00:00:00 +0000 and bibles/ASV.sqlite 2019-07-20 21:18:16 +0000 differ
4=== added file 'bibles/Afrikaans_Bybel.sqlite'
5Binary files bibles/Afrikaans_Bybel.sqlite 1970-01-01 00:00:00 +0000 and bibles/Afrikaans_Bybel.sqlite 2019-07-20 21:18:16 +0000 differ
6=== added file 'bibles/Ang_Dating_Biblia.sqlite'
7Binary files bibles/Ang_Dating_Biblia.sqlite 1970-01-01 00:00:00 +0000 and bibles/Ang_Dating_Biblia.sqlite 2019-07-20 21:18:16 +0000 differ
8=== added file 'bibles/Bible_Preklad_21_stoleti.sqlite'
9Binary files bibles/Bible_Preklad_21_stoleti.sqlite 1970-01-01 00:00:00 +0000 and bibles/Bible_Preklad_21_stoleti.sqlite 2019-07-20 21:18:16 +0000 differ
10=== added file 'bibles/Cesky_studijni_preklad.sqlite'
11Binary files bibles/Cesky_studijni_preklad.sqlite 1970-01-01 00:00:00 +0000 and bibles/Cesky_studijni_preklad.sqlite 2019-07-20 21:18:16 +0000 differ
12=== added file 'bibles/Elberfelder_1905.sqlite'
13Binary files bibles/Elberfelder_1905.sqlite 1970-01-01 00:00:00 +0000 and bibles/Elberfelder_1905.sqlite 2019-07-20 21:18:16 +0000 differ
14=== added file 'bibles/Esperanto_Bible.sqlite'
15Binary files bibles/Esperanto_Bible.sqlite 1970-01-01 00:00:00 +0000 and bibles/Esperanto_Bible.sqlite 2019-07-20 21:18:16 +0000 differ
16=== added file 'bibles/FI_33_38_OpenLP.sqlite'
17Binary files bibles/FI_33_38_OpenLP.sqlite 1970-01-01 00:00:00 +0000 and bibles/FI_33_38_OpenLP.sqlite 2019-07-20 21:18:16 +0000 differ
18=== added file 'bibles/FI_92_OpenLP.sqlite'
19Binary files bibles/FI_92_OpenLP.sqlite 1970-01-01 00:00:00 +0000 and bibles/FI_92_OpenLP.sqlite 2019-07-20 21:18:16 +0000 differ
20=== added file 'bibles/FI_Raamattu_Kansalle_OpenLP.sqlite'
21Binary files bibles/FI_Raamattu_Kansalle_OpenLP.sqlite 1970-01-01 00:00:00 +0000 and bibles/FI_Raamattu_Kansalle_OpenLP.sqlite 2019-07-20 21:18:16 +0000 differ
22=== added file 'bibles/Jo_o_Ferreira_de_Almeida_Atualizada.sqlite'
23Binary files bibles/Jo_o_Ferreira_de_Almeida_Atualizada.sqlite 1970-01-01 00:00:00 +0000 and bibles/Jo_o_Ferreira_de_Almeida_Atualizada.sqlite 2019-07-20 21:18:16 +0000 differ
24=== added file 'bibles/KJV.sqlite'
25Binary files bibles/KJV.sqlite 1970-01-01 00:00:00 +0000 and bibles/KJV.sqlite 2019-07-20 21:18:16 +0000 differ
26=== added file 'bibles/Ketab-EL-Hayat.sqlite'
27Binary files bibles/Ketab-EL-Hayat.sqlite 1970-01-01 00:00:00 +0000 and bibles/Ketab-EL-Hayat.sqlite 2019-07-20 21:18:16 +0000 differ
28=== added file 'bibles/Kralicka_Bible_1613.sqlite'
29Binary files bibles/Kralicka_Bible_1613.sqlite 1970-01-01 00:00:00 +0000 and bibles/Kralicka_Bible_1613.sqlite 2019-07-20 21:18:16 +0000 differ
30=== added file 'bibles/Las_Sagradas_Escrituras.sqlite'
31Binary files bibles/Las_Sagradas_Escrituras.sqlite 1970-01-01 00:00:00 +0000 and bibles/Las_Sagradas_Escrituras.sqlite 2019-07-20 21:18:16 +0000 differ
32=== added file 'bibles/Louis_Segon_Bible.sqlite'
33Binary files bibles/Louis_Segon_Bible.sqlite 1970-01-01 00:00:00 +0000 and bibles/Louis_Segon_Bible.sqlite 2019-07-20 21:18:16 +0000 differ
34=== added file 'bibles/Luther_1545.sqlite'
35Binary files bibles/Luther_1545.sqlite 1970-01-01 00:00:00 +0000 and bibles/Luther_1545.sqlite 2019-07-20 21:18:16 +0000 differ
36=== added file 'bibles/Luther_1912.sqlite'
37Binary files bibles/Luther_1912.sqlite 1970-01-01 00:00:00 +0000 and bibles/Luther_1912.sqlite 2019-07-20 21:18:16 +0000 differ
38=== added file 'bibles/Magyar_jford_t_s.sqlite'
39Binary files bibles/Magyar_jford_t_s.sqlite 1970-01-01 00:00:00 +0000 and bibles/Magyar_jford_t_s.sqlite 2019-07-20 21:18:16 +0000 differ
40=== added file 'bibles/Menge_Bibel.sqlite'
41Binary files bibles/Menge_Bibel.sqlite 1970-01-01 00:00:00 +0000 and bibles/Menge_Bibel.sqlite 2019-07-20 21:18:16 +0000 differ
42=== added file 'bibles/Norsk-NB-1930.sqlite'
43Binary files bibles/Norsk-NB-1930.sqlite 1970-01-01 00:00:00 +0000 and bibles/Norsk-NB-1930.sqlite 2019-07-20 21:18:16 +0000 differ
44=== added file 'bibles/Norsk-SMB-1921.sqlite'
45Binary files bibles/Norsk-SMB-1921.sqlite 1970-01-01 00:00:00 +0000 and bibles/Norsk-SMB-1921.sqlite 2019-07-20 21:18:16 +0000 differ
46=== added file 'bibles/RST.sqlite'
47Binary files bibles/RST.sqlite 1970-01-01 00:00:00 +0000 and bibles/RST.sqlite 2019-07-20 21:18:16 +0000 differ
48=== added file 'bibles/Statenvertaling.sqlite'
49Binary files bibles/Statenvertaling.sqlite 1970-01-01 00:00:00 +0000 and bibles/Statenvertaling.sqlite 2019-07-20 21:18:16 +0000 differ
50=== added file 'bibles/Sv_t_P_smo_Katol_cky_Preklad.sqlite'
51Binary files bibles/Sv_t_P_smo_Katol_cky_Preklad.sqlite 1970-01-01 00:00:00 +0000 and bibles/Sv_t_P_smo_Katol_cky_Preklad.sqlite 2019-07-20 21:18:16 +0000 differ
52=== added file 'bibles/Syriac_Peshitta_NT.sqlite'
53Binary files bibles/Syriac_Peshitta_NT.sqlite 1970-01-01 00:00:00 +0000 and bibles/Syriac_Peshitta_NT.sqlite 2019-07-20 21:18:16 +0000 differ
54=== added file 'bibles/TKJV.sqlite'
55Binary files bibles/TKJV.sqlite 1970-01-01 00:00:00 +0000 and bibles/TKJV.sqlite 2019-07-20 21:18:16 +0000 differ
56=== added file 'bibles/Uma_Version.sqlite'
57Binary files bibles/Uma_Version.sqlite 1970-01-01 00:00:00 +0000 and bibles/Uma_Version.sqlite 2019-07-20 21:18:16 +0000 differ
58=== added file 'bibles/VanDyke-With-Vowels.sqlite'
59Binary files bibles/VanDyke-With-Vowels.sqlite 1970-01-01 00:00:00 +0000 and bibles/VanDyke-With-Vowels.sqlite 2019-07-20 21:18:16 +0000 differ
60=== added file 'bibles/VanDyke-Without-Vowels.sqlite'
61Binary files bibles/VanDyke-Without-Vowels.sqlite 1970-01-01 00:00:00 +0000 and bibles/VanDyke-Without-Vowels.sqlite 2019-07-20 21:18:16 +0000 differ
62=== added directory 'bibles/v2'
63=== added file 'bibles/v2/ASV.sqlite'
64Binary files bibles/v2/ASV.sqlite 1970-01-01 00:00:00 +0000 and bibles/v2/ASV.sqlite 2019-07-20 21:18:16 +0000 differ
65=== added file 'bibles/v2/Afrikaans_Bybel.sqlite'
66Binary files bibles/v2/Afrikaans_Bybel.sqlite 1970-01-01 00:00:00 +0000 and bibles/v2/Afrikaans_Bybel.sqlite 2019-07-20 21:18:16 +0000 differ
67=== added file 'bibles/v2/Ang_Dating_Biblia.sqlite'
68Binary files bibles/v2/Ang_Dating_Biblia.sqlite 1970-01-01 00:00:00 +0000 and bibles/v2/Ang_Dating_Biblia.sqlite 2019-07-20 21:18:16 +0000 differ
69=== added file 'bibles/v2/Bible_Preklad_21_stoleti.sqlite'
70Binary files bibles/v2/Bible_Preklad_21_stoleti.sqlite 1970-01-01 00:00:00 +0000 and bibles/v2/Bible_Preklad_21_stoleti.sqlite 2019-07-20 21:18:16 +0000 differ
71=== added file 'bibles/v2/Cesky_studijni_preklad.sqlite'
72Binary files bibles/v2/Cesky_studijni_preklad.sqlite 1970-01-01 00:00:00 +0000 and bibles/v2/Cesky_studijni_preklad.sqlite 2019-07-20 21:18:16 +0000 differ
73=== added file 'bibles/v2/Elberfelder_1905.sqlite'
74Binary files bibles/v2/Elberfelder_1905.sqlite 1970-01-01 00:00:00 +0000 and bibles/v2/Elberfelder_1905.sqlite 2019-07-20 21:18:16 +0000 differ
75=== added file 'bibles/v2/Esperanto_Bible.sqlite'
76Binary files bibles/v2/Esperanto_Bible.sqlite 1970-01-01 00:00:00 +0000 and bibles/v2/Esperanto_Bible.sqlite 2019-07-20 21:18:16 +0000 differ
77=== added file 'bibles/v2/FI_33_38_OpenLP.sqlite'
78Binary files bibles/v2/FI_33_38_OpenLP.sqlite 1970-01-01 00:00:00 +0000 and bibles/v2/FI_33_38_OpenLP.sqlite 2019-07-20 21:18:16 +0000 differ
79=== added file 'bibles/v2/FI_92_OpenLP.sqlite'
80Binary files bibles/v2/FI_92_OpenLP.sqlite 1970-01-01 00:00:00 +0000 and bibles/v2/FI_92_OpenLP.sqlite 2019-07-20 21:18:16 +0000 differ
81=== added file 'bibles/v2/FI_Raamattu_Kansalle_OpenLP.sqlite'
82Binary files bibles/v2/FI_Raamattu_Kansalle_OpenLP.sqlite 1970-01-01 00:00:00 +0000 and bibles/v2/FI_Raamattu_Kansalle_OpenLP.sqlite 2019-07-20 21:18:16 +0000 differ
83=== added file 'bibles/v2/Jo_o_Ferreira_de_Almeida_Atualizada.sqlite'
84Binary files bibles/v2/Jo_o_Ferreira_de_Almeida_Atualizada.sqlite 1970-01-01 00:00:00 +0000 and bibles/v2/Jo_o_Ferreira_de_Almeida_Atualizada.sqlite 2019-07-20 21:18:16 +0000 differ
85=== added file 'bibles/v2/KJV.sqlite'
86Binary files bibles/v2/KJV.sqlite 1970-01-01 00:00:00 +0000 and bibles/v2/KJV.sqlite 2019-07-20 21:18:16 +0000 differ
87=== added file 'bibles/v2/Ketab-EL-Hayat.sqlite'
88Binary files bibles/v2/Ketab-EL-Hayat.sqlite 1970-01-01 00:00:00 +0000 and bibles/v2/Ketab-EL-Hayat.sqlite 2019-07-20 21:18:16 +0000 differ
89=== added file 'bibles/v2/Kralicka_Bible_1613.sqlite'
90Binary files bibles/v2/Kralicka_Bible_1613.sqlite 1970-01-01 00:00:00 +0000 and bibles/v2/Kralicka_Bible_1613.sqlite 2019-07-20 21:18:16 +0000 differ
91=== added file 'bibles/v2/Las_Sagradas_Escrituras.sqlite'
92Binary files bibles/v2/Las_Sagradas_Escrituras.sqlite 1970-01-01 00:00:00 +0000 and bibles/v2/Las_Sagradas_Escrituras.sqlite 2019-07-20 21:18:16 +0000 differ
93=== added file 'bibles/v2/Louis_Segon_Bible.sqlite'
94Binary files bibles/v2/Louis_Segon_Bible.sqlite 1970-01-01 00:00:00 +0000 and bibles/v2/Louis_Segon_Bible.sqlite 2019-07-20 21:18:16 +0000 differ
95=== added file 'bibles/v2/Luther_1545.sqlite'
96Binary files bibles/v2/Luther_1545.sqlite 1970-01-01 00:00:00 +0000 and bibles/v2/Luther_1545.sqlite 2019-07-20 21:18:16 +0000 differ
97=== added file 'bibles/v2/Luther_1912.sqlite'
98Binary files bibles/v2/Luther_1912.sqlite 1970-01-01 00:00:00 +0000 and bibles/v2/Luther_1912.sqlite 2019-07-20 21:18:16 +0000 differ
99=== added file 'bibles/v2/Magyar_jford_t_s.sqlite'
100Binary files bibles/v2/Magyar_jford_t_s.sqlite 1970-01-01 00:00:00 +0000 and bibles/v2/Magyar_jford_t_s.sqlite 2019-07-20 21:18:16 +0000 differ
101=== added file 'bibles/v2/Menge_Bibel.sqlite'
102Binary files bibles/v2/Menge_Bibel.sqlite 1970-01-01 00:00:00 +0000 and bibles/v2/Menge_Bibel.sqlite 2019-07-20 21:18:16 +0000 differ
103=== added file 'bibles/v2/Norsk-NB-1930.sqlite'
104Binary files bibles/v2/Norsk-NB-1930.sqlite 1970-01-01 00:00:00 +0000 and bibles/v2/Norsk-NB-1930.sqlite 2019-07-20 21:18:16 +0000 differ
105=== added file 'bibles/v2/Norsk-SMB-1921.sqlite'
106Binary files bibles/v2/Norsk-SMB-1921.sqlite 1970-01-01 00:00:00 +0000 and bibles/v2/Norsk-SMB-1921.sqlite 2019-07-20 21:18:16 +0000 differ
107=== added file 'bibles/v2/RST.sqlite'
108Binary files bibles/v2/RST.sqlite 1970-01-01 00:00:00 +0000 and bibles/v2/RST.sqlite 2019-07-20 21:18:16 +0000 differ
109=== added file 'bibles/v2/Statenvertaling.sqlite'
110Binary files bibles/v2/Statenvertaling.sqlite 1970-01-01 00:00:00 +0000 and bibles/v2/Statenvertaling.sqlite 2019-07-20 21:18:16 +0000 differ
111=== added file 'bibles/v2/Sv_t_P_smo_Katol_cky_Preklad.sqlite'
112Binary files bibles/v2/Sv_t_P_smo_Katol_cky_Preklad.sqlite 1970-01-01 00:00:00 +0000 and bibles/v2/Sv_t_P_smo_Katol_cky_Preklad.sqlite 2019-07-20 21:18:16 +0000 differ
113=== added file 'bibles/v2/Syriac_Peshitta_NT.sqlite'
114Binary files bibles/v2/Syriac_Peshitta_NT.sqlite 1970-01-01 00:00:00 +0000 and bibles/v2/Syriac_Peshitta_NT.sqlite 2019-07-20 21:18:16 +0000 differ
115=== added file 'bibles/v2/TKJV.sqlite'
116Binary files bibles/v2/TKJV.sqlite 1970-01-01 00:00:00 +0000 and bibles/v2/TKJV.sqlite 2019-07-20 21:18:16 +0000 differ
117=== added file 'bibles/v2/Uma_Version.sqlite'
118Binary files bibles/v2/Uma_Version.sqlite 1970-01-01 00:00:00 +0000 and bibles/v2/Uma_Version.sqlite 2019-07-20 21:18:16 +0000 differ
119=== added file 'bibles/v2/VanDyke-With-Vowels.sqlite'
120Binary files bibles/v2/VanDyke-With-Vowels.sqlite 1970-01-01 00:00:00 +0000 and bibles/v2/VanDyke-With-Vowels.sqlite 2019-07-20 21:18:16 +0000 differ
121=== added file 'bibles/v2/VanDyke-Without-Vowels.sqlite'
122Binary files bibles/v2/VanDyke-Without-Vowels.sqlite 1970-01-01 00:00:00 +0000 and bibles/v2/VanDyke-Without-Vowels.sqlite 2019-07-20 21:18:16 +0000 differ
123=== added file 'download.cfg'
124--- download.cfg 1970-01-01 00:00:00 +0000
125+++ download.cfg 2019-07-20 21:18:16 +0000
126@@ -0,0 +1,316 @@
127+# The most recent version should be added to http://openlp.org/files/frw/download.cfg
128+[general]
129+base url = https://get.openlp.org/ftw/
130+
131+[songs]
132+languages = ar,de,en,fi,hu,ru,th
133+directory = songs
134+
135+[songs_ar]
136+title = Arabic
137+filename = songs_ar.sqlite
138+sha256 = 2113f239e2c470d4d464f08e21008a7f77fd001bc01ebea3f6857852c2708712
139+
140+[songs_de]
141+title = Deutsch
142+filename = songs_de.sqlite
143+sha256 = bff85ee11f7f7d667cd2867a639f59f15958d5df6ac0eeedf4da7cc4facd8165
144+
145+[songs_en]
146+title = English
147+filename = songs_en.sqlite
148+sha256 = 8a5e862f0ce651a9ae8cc93c938b0bb5059f2380ac445096a346480e928bb045
149+
150+[songs_fi]
151+title = Suomi
152+filename = songs_fi.sqlite
153+sha256 = 601ac772d9a9a685059456186437aae128d5da30573ff08595c7f8752613a851
154+
155+[songs_hu]
156+title = Magyar
157+filename = songs_hu.sqlite
158+sha256 = 1cd693f2c829eb6274dfce606cc52478cfdc6a05f00e07bdd20d0f72a18167e4
159+
160+[songs_ru]
161+title = Русский
162+filename = songs_ru.sqlite
163+sha256 = 1416c3e6b551c90c4e4cb797df368a617b7a5cfec814f0fad8882ab21024aee0
164+
165+[songs_th]
166+title = ภาษาไทย
167+filename = songs_th.sqlite
168+sha256 = 1066596a3941d2bcb1fad83ae81ccce146ea10ce73be57615e55f7cb02e2ceb7
169+
170+[bibles]
171+translations = afr,ang,asv,prk,csp,elb,esb,fi3338,fi92,firk,jo,kelh,kjv,krl,lse,lsb,l45,l12,ma,mb,no1921,no1930,rst,sta,ssv,sp,tkjv,uma,vd,vdv
172+languages = af,ar,cz,de,en,eo,es,fi,fr,hu,nl,no,pt,ru,sv,th,tl,uma
173+directory = bibles
174+
175+[bibles_af]
176+title = Afrikaans
177+translations = afr
178+
179+[bibles_ar]
180+title = العربية (Arabic)
181+translations = sp,kelh,vd,vdv
182+
183+[bibles_cz]
184+title = Čeština (Czech)
185+translations = prk,krl,csp
186+
187+[bibles_de]
188+title = Deutsch
189+translations = elb,l12,l45,mb
190+
191+[bibles_en]
192+title = English
193+translations = asv,kjv
194+
195+[bibles_eo]
196+title = Esperanto
197+translations = esb
198+
199+[bibles_es]
200+title = Español
201+translations = lse
202+
203+[bibles_fi]
204+title = Suomi
205+translations = fi3338,fi92,firk
206+
207+[bibles_fr]
208+title = Français
209+translations = lsb
210+
211+[bibles_hu]
212+title = Magyar
213+translations = ma
214+
215+[bibles_nl]
216+title = Nederlandse
217+translations = sta
218+
219+[bibles_no]
220+title = Norsk
221+translations = no1921,no1930
222+
223+[bibles_pt]
224+title = Português
225+translations = jo
226+
227+[bibles_ru]
228+title = Русский
229+translations = rst
230+
231+[bibles_sv]
232+title = Slovak
233+translations = ssv
234+
235+[bibles_th]
236+title = ภาษาไทย
237+translations = tkjv
238+
239+[bibles_tl]
240+title = Tagalog
241+translations = ang
242+
243+[bibles_uma]
244+title = Uma (Indonesia)
245+translations = uma
246+
247+[bible_afr]
248+title = Afrikaanse Bybel
249+filename = Afrikaans_Bybel.sqlite
250+sha256 = d4f12ebbb35bf589e791200dd2f320cf89f894b53953724edb458570f47affcf
251+
252+[bible_ang]
253+title = Ang Dating
254+filename = Ang_Dating_Biblia.sqlite
255+sha256 = 226b74a02323f56bb146e10e522e186d2387bbe2e3082b74297f1c97ce420673
256+
257+[bible_asv]
258+title = American Standard Version
259+filename = ASV.sqlite
260+sha256 = 064637d15c1dd9940682460b8040f6fe1d025dd8f40637ca13c5fbdb14012d09
261+
262+[bible_csp]
263+title = Český Studijní Překlad
264+filename = Cesky_studijni_preklad.sqlite
265+sha256 = 93885991c10d4ce71418c33b77cba7a321f7c66fe0d40edd7bd474160517d666
266+
267+[bible_no1921]
268+title = Studentmållagsbibelen (1921)
269+filename = Norsk-SMB-1921.sqlite
270+sha256 = a7afc5b77cd54eb11c9b7d20813d56e164e935cf69ee0b38ae4126ce809a5fcd
271+
272+[bible_no1930]
273+title = Norsk bokmål (1930)
274+filename = Norsk-NB-1930.sqlite
275+sha256 = 641a3b52ed7fb8b2027703a1f7241577929ac97f91cf18c6e0ad9c235032b9f8
276+
277+[bible_elb]
278+title = Elberfelder
279+filename = Elberfelder_1905.sqlite
280+sha256 = 32cf96da94be0df237584130df7b840b82828c753db0664393d354a4c7ac246b
281+
282+[bible_esb]
283+title = Esperanto Biblio
284+filename = Esperanto_Bible.sqlite
285+sha256 = 58c716f18382be192a077cb85934720315847e6b168340784df896d365ca495b
286+
287+[bible_fi3338]
288+title = 33/38 - Vanha kirkkoraamattu
289+filename = FI_33_38_OpenLP.sqlite
290+sha256 = 3a3dd8b5ec16a7cf5547f13b9ce4490e83ddc032b87b9a0efb383da6ab35fd70
291+
292+[bible_fi92]
293+title = 92 - Uusi kirkkoraamattu
294+filename = FI_92_OpenLP.sqlite
295+sha256 = c0f0b0de574c65db60daa88b5f54d514901ae7bc86cf9933478d76575016a050
296+
297+[bible_firk]
298+title = Raamattu Kansalle -käännös
299+filename = FI_Raamattu_Kansalle_OpenLP.sqlite
300+sha256 = 6982cb2b5b1061611211e62e8910289ff8702f934ddf785b7978524d3f8f9544
301+
302+[bible_jo]
303+title = João Ferreira de Almeida Atualizada
304+filename = Jo_o_Ferreira_de_Almeida_Atualizada.sqlite
305+sha256 = ada5f15802a5c80cdf27ef188858d4c64e2a5d92b158c4bec7c5ca54e7cddcb1
306+
307+[bible_kelh]
308+title = Ketab EL Hayat
309+filename = Ketab-EL-Hayat.sqlite
310+sha256 = 7b5d4c46fbd77477db0503b4565f1d558f6e29cf7e7e74f2ae48fbbe14766dde
311+
312+[bible_kjv]
313+title = King James Version
314+filename = KJV.sqlite
315+sha256 = 09e2d9d68777c75acc8b587b6be1f5253f86274774529e57a2902c14d9802d3d
316+
317+[bible_krl]
318+title = Kralická Bible 1613
319+filename = Kralicka_Bible_1613.sqlite
320+sha256 = 9d9e25e3361eeb9d550aea571aad55c4320b592ed28a4fa1cf4b0dad5ee382f4
321+
322+[bible_lse]
323+title = Las Sagradas Escrituras
324+filename = Las_Sagradas_Escrituras.sqlite
325+sha256 = c6654ef283f1139ba2b8d36238f38ad88a31b71599c79be3fad88db4350de939
326+
327+[bible_lsb]
328+title = Louis Segon
329+filename = Louis_Segon_Bible.sqlite
330+sha256 = 8e548c384f92ee54ea46930a1547fcc574f039c3f8eaa918707f5692ceafc069
331+
332+[bible_l45]
333+title = Luther 1545
334+filename = Luther_1545.sqlite
335+sha256 = 965ca4df59fc6af80472be00fb9a92e1539792b42f2f7c368d9623d057293098
336+
337+[bible_l12]
338+title = Luther 1912
339+filename = Luther_1912.sqlite
340+sha256 = 2606b991f3254699cd236c6420b59789238118338e2778f7ed4c494861eb05ad
341+
342+[bible_ma]
343+title = Magyar Újfordítású
344+filename = Magyar_jford_t_s.sqlite
345+sha256 = 5509b117616e64da2486b71c344a4b58ec87634d29b0ddda528185fae19779d2
346+
347+[bible_mb]
348+title = Menge
349+filename = Menge_Bibel.sqlite
350+sha256 = cad8ce0974e1b1823c8830738258941c95af2cf3a79dd3eb9e27659eb02fbdf6
351+
352+[bible_prk]
353+title = Bible, Překlad 21. století
354+filename = Bible_Preklad_21_stoleti.sqlite
355+sha256 = 1fad90dc62bad7d246092dc4792eb39b89f910cf4fac0efd2bd35c69fcd89acf
356+
357+[bible_rst]
358+title = Синодальный перевод
359+filename = RST.sqlite
360+sha256 = 86cf69addcbd93ea53842916bc7b90c77154415880b04c933679ea9dac1cf976
361+
362+[bible_sta]
363+title = Statenvertaling
364+filename = Statenvertaling.sqlite
365+sha256 = b2a699caff81c81ae11b705b09bfc85da832953ae28d838bef536e8a6c406822
366+
367+[bible_ssv]
368+title = Sväté Písmo (Katolícky Preklad)
369+filename = Sv_t_P_smo_Katol_cky_Preklad.sqlite
370+sha256 = 2d9ed24fe3eece4a20ecfb0228a92729d5d681bb8b65cb7f6dde18ca2839f5d8
371+
372+[bible_sp]
373+title = Syriac Peshitta
374+filename = Syriac_Peshitta_NT.sqlite
375+sha256 = a7a1ccb205e8e0c92707344e90efbf0c8e60c8ad95eeb216c8b41ce23a231eef
376+
377+[bible_tkjv]
378+title = พระคัมภีร์ภาษาไทยฉบับ KJV
379+filename = TKJV.sqlite
380+sha256 = b053589c2d8f760556e5df2018d77b2bfda6c658e79835046d5e173ab2d341d9
381+
382+[bible_uma]
383+title = Uma Version
384+filename = Uma_Version.sqlite
385+sha256 = 59ea6b77e246790794172cae0ecf70a34e59b602f0791d19789763faad12e368
386+
387+[bible_vd]
388+title = VanDyke Without Vowels
389+filename = VanDyke-Without-Vowels.sqlite
390+sha256 = b3d216b92c62954da7b69c27eb2872b1163f49fa290a23acc6cb3274d1f68f56
391+
392+[bible_vdv]
393+title = VanDyke With Vowels
394+filename = VanDyke-With-Vowels.sqlite
395+sha256 = c1767d8bc2e6aff9097f63f3f9a15af134841ee3fdf40267adba3263f5a6ba0f
396+
397+[themes]
398+files = mot,swt,sr,wt,bb,cl,geop
399+directory = themes
400+
401+[theme_mot]
402+title = Moss on tree
403+filename = Moss_on_tree.otz
404+screenshot = Moss_on_tree.png
405+sha256 = b3b9d286610f7639fedf21a04670f011801f79c06004d7d4295c947a0c584462
406+
407+[theme_swt]
408+title = Sea with trees
409+filename = Sea_with_trees.otz
410+screenshot = Sea_with_trees.png
411+sha256 = 66a9c831fa8c6805ba22502f2544469a717bf74c1f2a206a1b45e09b95493eed
412+
413+[theme_sr]
414+title = Sunrise
415+filename = Sunrise.otz
416+screenshot = Sunrise.png
417+sha256 = b22ddede83e269fa69e603ec75c2f5caae1cc580f45890f99ca960bf826a5d59
418+
419+[theme_wt]
420+title = Wheat
421+filename = Wheat.otz
422+screenshot = Wheat.png
423+sha256 = 63fde97b7d35722c8fe06e1cfe8236e6d212d944d43c04f6b77f5156b83f5a3f
424+
425+[theme_bb]
426+title = Blue Burst
427+filename = BlueBurst.otz
428+screenshot = BlueBurst.png
429+sha256 = 6105626b6da8b358adb8eedb9da986f1149667a1bff324f8bd4549345d2fad56
430+
431+[theme_cl]
432+title = Clouds
433+filename = Clouds.otz
434+screenshot = Clouds.png
435+sha256 = d28eafd838be33df58e7ff160d29b0c3ec7024927b62fa2308aa5b259f31d5ea
436+
437+[theme_geop]
438+title = Geo Purple
439+filename = Geo_Purple.otz
440+screenshot = Geo_Purple.png
441+sha256 = aee81f16183122d14c0ca9f7582d3adbe1eb8c932c635885fcfb2c50fc36c1aa
442+
443
444=== added file 'download_3.0.json'
445--- download_3.0.json 1970-01-01 00:00:00 +0000
446+++ download_3.0.json 2019-07-20 21:18:16 +0000
447@@ -0,0 +1,326 @@
448+{
449+ "_comments": "The most recent version should be added to http://openlp.org/files/frw/download_3.0.json",
450+ "_meta": {
451+ "base_url": "https://get.openlp.org/ftw/",
452+ "bibles_dir": "bibles/v2",
453+ "songs_dir": "songs/v7",
454+ "themes_dir": "themes/v2"
455+ },
456+ "bibles": {
457+ "af": {
458+ "title": "Afrikaans",
459+ "translations": {
460+ "afr": {
461+ "file_name": "Afrikaans_Bybel.sqlite",
462+ "sha256": "5d4f8b76d5cbc651124ee8f4004bc29cb3d437c87f7ce99f02f4bd7efc7aac81",
463+ "title": "Afrikaanse Bybel"
464+ }
465+ }
466+ },
467+ "ar": {
468+ "title": "العربية (Arabic)",
469+ "translations": {
470+ "kelh": {
471+ "file_name": "Ketab-EL-Hayat.sqlite",
472+ "sha256": "9818df4054083d7ecf2cf83b878769d0bb9baa9b070c2d3d8efd6a759c61016b",
473+ "title": "Ketab EL Hayat"
474+ },
475+ "sp": {
476+ "file_name": "Syriac_Peshitta_NT.sqlite",
477+ "sha256": "8c36ce4c375363819c5b693ecef466b05a67accc2187186b73af8a24d48e01aa",
478+ "title": "Syriac Peshitta"
479+ },
480+ "vd": {
481+ "file_name": "VanDyke-Without-Vowels.sqlite",
482+ "sha256": "b3b5cd9f9ee093491bb2dc64a941e457ce9c55fb4fa61e40dbb63fb2a9c81d32",
483+ "title": "VanDyke Without Vowels"
484+ },
485+ "vdv": {
486+ "file_name": "VanDyke-With-Vowels.sqlite",
487+ "sha256": "890b5b9a11e4fedae3fed3e647100f6a4207749f79dcce7c5ab56320495a88f6",
488+ "title": "VanDyke With Vowels"
489+ }
490+ }
491+ },
492+ "cz": {
493+ "title": "Čeština (Czech)",
494+ "translations": {
495+ "csp": {
496+ "file_name": "Cesky_studijni_preklad.sqlite",
497+ "sha256": "2382633fd275926899b916a11682ca033636d957bf9cc710882d79d0a4e84254",
498+ "title": "Český Studijní Překlad"
499+ },
500+ "krl": {
501+ "file_name": "Kralicka_Bible_1613.sqlite",
502+ "sha256": "d49117969068b7fb94c707c7fb0a141985fe1d44b53c3313bfc8831ef7501ae6",
503+ "title": "Kralická Bible 1613"
504+ },
505+ "prk": {
506+ "file_name": "Bible_Preklad_21_stoleti.sqlite",
507+ "sha256": "888152fc2b440cf9d4604c5941c07ed45d9186879ccb5bfbd48cb18e4dad1ac1",
508+ "title": "Bible, Překlad 21. století"
509+ }
510+ }
511+ },
512+ "de": {
513+ "title": "Deutsch",
514+ "translations": {
515+ "145": {
516+ "file_name": "Luther_1545.sqlite",
517+ "sha256": "06f6e5460c49a25fad25724071e4e975331972567fac0ae35ced8bfa404bd981",
518+ "title": "Luther 1545"
519+ },
520+ "elb": {
521+ "file_name": "Elberfelder_1905.sqlite",
522+ "sha256": "68413c9d5d25818e7121e11a2c70679fe503d3858f5ad7eac8e7497600ef440a",
523+ "title": "Elberfelder"
524+ },
525+ "l12": {
526+ "file_name": "Luther_1912.sqlite",
527+ "sha256": "013c5836195e0082507efa33ea6158085e34f267241c6f98492ffbab3920abb6",
528+ "title": "Luther 1912"
529+ },
530+ "mb": {
531+ "file_name": "Menge_Bibel.sqlite",
532+ "sha256": "3f9ca1fe22c57566309473afaf1a62b56ca2bfbf3ddecba4bbcae106ad92b413",
533+ "title": "Menge"
534+ }
535+ }
536+ },
537+ "en": {
538+ "title": "English",
539+ "translations": {
540+ "asv": {
541+ "file_name": "ASV.sqlite",
542+ "sha256": "950800498cbb152ae13cb1e2ac74aa91d6935e3583114c080c3456d258b9f501",
543+ "title": "American Standard Version"
544+ },
545+ "kjv": {
546+ "file_name": "KJV.sqlite",
547+ "sha256": "677e2332881ce1c7216afc0a3eb2ff94c64096c0f3d3aba35359d5954a1dbeea",
548+ "title": "King James Version"
549+ }
550+ }
551+ },
552+ "eo": {
553+ "title": "Esperanto",
554+ "translations": {
555+ "esb": {
556+ "file_name": "Esperanto_Bible.sqlite",
557+ "sha256": "4fef17c9eb0d02560b9750fea8b470237db5bd0b699e2a86234168e00e08790f",
558+ "title": "Esperanto Biblio"
559+ }
560+ }
561+ },
562+ "es": {
563+ "title": "Español",
564+ "translations": {
565+ "lse": {
566+ "file_name": "Las_Sagradas_Escrituras.sqlite",
567+ "sha256": "23c58cbaf608f36b0f0415fddfb01144c7ed10914f0e0116f302e92a28cbc64c",
568+ "title": "Las Sagradas Escrituras"
569+ }
570+ }
571+ },
572+ "fi": {
573+ "title": "Suomi",
574+ "translations": {
575+ "fi3338": {
576+ "file_name": "FI_33_38_OpenLP.sqlite",
577+ "sha256": "a91c51ff21aed03747162bedd38456af491e11436b7875ab231a95f755caa826",
578+ "title": "33/38 - Vanha kirkkoraamattu"
579+ },
580+ "fi92": {
581+ "file_name": "FI_92_OpenLP.sqlite",
582+ "sha256": "23b56c247fbb04e31d069e1ddf8231c90eb6ab3547efb07c14065be674b2f551",
583+ "title": "92 - Uusi kirkkoraamattu"
584+ },
585+ "firk": {
586+ "file_name": "FI_Raamattu_Kansalle_OpenLP.sqlite",
587+ "sha256": "eac989138d88ba15fb5a107f8a36a768313706fb080bb1683639b46a201dc50f",
588+ "title": "Raamattu Kansalle -käännös"
589+ }
590+ }
591+ },
592+ "fr": {
593+ "title": "Français",
594+ "translations": {
595+ "lsb": {
596+ "file_name": "Louis_Segon_Bible.sqlite",
597+ "sha256": "ad13ffe1c24c8b36a98ecc0f22ab520a69a3f35243721a78a687e042d3fc6534",
598+ "title": "Louis Segon"
599+ }
600+ }
601+ },
602+ "hu": {
603+ "title": "Magyar",
604+ "translations": {
605+ "ma": {
606+ "file_name": "Magyar_jford_t_s.sqlite",
607+ "sha256": "513e79c4266c3dc09b1aebc041bd568959ef1549f6fea71c4c4af787cf299a9f",
608+ "title": "Magyar Újfordítású"
609+ }
610+ }
611+ },
612+ "nl": {
613+ "title": "Nederlandse",
614+ "translations": {
615+ "sta": {
616+ "file_name": "Statenvertaling.sqlite",
617+ "sha256": "0ff1bf9e56759663728e98c33a12afdc579c881bfc0805bc3f5f84d92ea62560",
618+ "title": "Statenvertaling"
619+ }
620+ }
621+ },
622+ "no": {
623+ "title": "Nederlandse",
624+ "translations": {
625+ "no1921": {
626+ "file_name": "Norsk-SMB-1921.sqlite",
627+ "sha256": "b95cf86ab233ccc259173642e36d3252b5c90feb4b3df2d178703112aa6920ac",
628+ "title": "Studentmållagsbibelen (1921)"
629+ },
630+ "no1930": {
631+ "file_name": "Norsk-NB-1930.sqlite",
632+ "sha256": "313cb4a82e6c1914de1073e09b683b5aa7641b95d45d01a90b1d4f3301e078fa",
633+ "title": "Norsk bokmål (1930)"
634+ }
635+ }
636+ },
637+ "pt": {
638+ "title": "Português",
639+ "translations": {
640+ "jo": {
641+ "file_name": "Jo_o_Ferreira_de_Almeida_Atualizada.sqlite",
642+ "sha256": "d8b23408400d1f957babfee15665f3926f33c27621e2dfeaea178496497830ca",
643+ "title": "João Ferreira de Almeida Atualizada"
644+ }
645+ }
646+ },
647+ "ru": {
648+ "title": "Русский",
649+ "translations": {
650+ "rst": {
651+ "file_name": "RST.sqlite",
652+ "sha256": "7b05e2c73380d06f24b630d2a15baadacfb46e3aa6ec7ce6a9e27cb3b3672a3e",
653+ "title": "Синодальный перевод"
654+ }
655+ }
656+ },
657+ "sv": {
658+ "title": "Slovak",
659+ "translations": {
660+ "ssv": {
661+ "file_name": "Sv_t_P_smo_Katol_cky_Preklad.sqlite",
662+ "sha256": "5e7ac017dc43fac5dfb63daa35cd7edeeb736ea66016b47a86fc8d202225ca46",
663+ "title": "Sväté Písmo (Katolícky Preklad)"
664+ }
665+ }
666+ },
667+ "th": {
668+ "title": "ภาษาไทย",
669+ "translations": {
670+ "tkjv": {
671+ "file_name": "TKJV.sqlite",
672+ "sha256": "e87fdf698b30188a4abb9d378e9fb357f46e2bb78149a1bfee4329a30f4ee1e6",
673+ "title": "พระคัมภีร์ภาษาไทยฉบับ KJV"
674+ }
675+ }
676+ },
677+ "tl": {
678+ "title": "Tagalog",
679+ "translations": {
680+ "ang": {
681+ "file_name": "Ang_Dating_Biblia.sqlite",
682+ "sha256": "fada86e1b8ab48cda68d9d28d887d27418036dbbd966a9057425c457f51b33dc",
683+ "title": "Ang Dating"
684+ }
685+ }
686+ },
687+ "uma": {
688+ "title": "Uma (Indonesia)",
689+ "translations": {
690+ "uma": {
691+ "file_name": "Uma_Version.sqlite",
692+ "sha256": "e96e804ba1e2c1cf60f53f5f6ea538b9b60b1f95b1f660d93526cb4515425824",
693+ "title": "Uma Version"
694+ }
695+ }
696+ }
697+ },
698+ "songs": {
699+ "ar": {
700+ "file_name": "songs_ar.sqlite",
701+ "sha256": "750e3471b7b038a233133f9777694121d83bf6b7ffea750de6d3367707005f3c",
702+ "title": "Arabic"
703+ },
704+ "de": {
705+ "file_name": "songs_de.sqlite",
706+ "sha256": "dce40830e7c4c27d1740e74b30d69284fe754f66ce8a332576019ac5d34c1943",
707+ "title": "Deutsch"
708+ },
709+ "en": {
710+ "file_name": "songs_en.sqlite",
711+ "sha256": "32c3f7a4bcd1847354dc8215193f9aa90e35c4f5b23f4880353f2a91727da517",
712+ "title": "English"
713+ },
714+ "fi": {
715+ "file_name": "songs_fi.sqlite",
716+ "sha256": "9315501f9dc94be515b072324466865413e0129af338e9c1cb761279d3fc1e15",
717+ "title": "Suomi"
718+ },
719+ "hu": {
720+ "file_name": "songs_hu.sqlite",
721+ "sha256": "febc530dac346321a67daa18d0b267bfd71d543a01570f217fa63c92d2cd00b5",
722+ "title": "Magyar"
723+ },
724+ "ru": {
725+ "file_name": "songs_ru.sqlite",
726+ "sha256": "1416c3e6b551c90c4e4cb797df368a617b7a5cfec814f0fad8882ab21024aee0",
727+ "title": "Русский"
728+ },
729+ "th": {
730+ "file_name": "songs_th.sqlite",
731+ "sha256": "5c5b5e63eea8f58008dd05b2582851b6875eb420ce124b77e7b3786c5981b6e5",
732+ "title": "ภาษาไทย"
733+ }
734+ },
735+ "themes": {
736+ "bb": {
737+ "file_name": "BlueBurst.otz",
738+ "sha256": "1cbac0575179eb6d66787bc9b87555427c134d09dbf3c048b9fd1e8084394142",
739+ "thumbnail": "BlueBurst.png",
740+ "title": "Blue Burst"
741+ },
742+ "cl": {
743+ "file_name": "Clouds.otz",
744+ "sha256": "09ac4eb181ed05cce38411926d3cce7b4f13876e7cb299f00c546bfd7b57b7c3",
745+ "thumbnail": "Clouds.png",
746+ "title": "Clouds"
747+ },
748+ "geop": {
749+ "file_name": "Geo_Purple.otz",
750+ "sha256": "7ee52ec0e5990a1cc6145b8d223f312ea217af1e6f098b95b124116d0550f433",
751+ "thumbnail": "Geo_Purple.png",
752+ "title": "Geo Purple"
753+ },
754+ "mot": {
755+ "file_name": "Moss_on_tree.otz",
756+ "sha256": "96c720fe59a3501baac2603cbb33d83a9ef43d8e4d68f40f2e433d074c808fbe",
757+ "thumbnail": "Moss_on_tree.png",
758+ "title": "Moss on tree"
759+ },
760+ "swt": {
761+ "file_name": "Sea_with_trees.otz",
762+ "sha256": "e3f64549bf372bde43f14c1346c8296707769e3d3cecb0ce37391a16ef989e47",
763+ "thumbnail": "Sea_with_trees.png",
764+ "title": "Sea with trees"
765+ },
766+ "wt": {
767+ "file_name": "Wheat.otz",
768+ "sha256": "00805ccdc62685621cc2081ff270a16b8c78ce06519952aa00843d2f53d1cecf",
769+ "thumbnail": "Wheat.png",
770+ "title": "Wheat"
771+ }
772+ }
773+}
774\ No newline at end of file
775
776=== added directory 'scripts'
777=== renamed directory 'scripts' => 'scripts.moved'
778=== added file 'scripts/hashgen.py'
779--- scripts/hashgen.py 1970-01-01 00:00:00 +0000
780+++ scripts/hashgen.py 2019-07-20 21:18:16 +0000
781@@ -0,0 +1,89 @@
782+#!/usr/bin/env python3
783+# -*- coding: utf-8 -*-
784+# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
785+
786+###############################################################################
787+# OpenLP - Open Source Lyrics Projection #
788+# --------------------------------------------------------------------------- #
789+# Copyright (c) 2008-2019 OpenLP Developers #
790+# --------------------------------------------------------------------------- #
791+# This program is free software; you can redistribute it and/or modify it #
792+# under the terms of the GNU General Public License as published by the Free #
793+# Software Foundation; version 2 of the License. #
794+# #
795+# This program is distributed in the hope that it will be useful, but WITHOUT #
796+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
797+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
798+# more details. #
799+# #
800+# You should have received a copy of the GNU General Public License along #
801+# with this program; if not, write to the Free Software Foundation, Inc., 59 #
802+# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
803+###############################################################################
804+"""
805+This script (re)generates a SHA256 hash for each file in the download.cfg file
806+"""
807+
808+from configparser import ConfigParser
809+from hashlib import sha256
810+import os
811+
812+
813+def hash_file(file_path, block_size=65536):
814+ """
815+ Hash the given file block by block for memory efficiency
816+
817+ :param file_path: Path to file to hash. Type str
818+ :param block_size: Size of blocks to process the file in. Type int
819+ :return: None
820+ """
821+ file = open(file_path, 'rb')
822+ hasher = sha256()
823+ buf = file.read(block_size)
824+ while len(buf) > 0:
825+ hasher.update(buf)
826+ buf = file.read(block_size)
827+ return hasher.hexdigest()
828+
829+
830+def write_hash(section, path):
831+ """
832+ Get the name of the a file from a config section and write its hash back to the same section.
833+
834+ :param section: Config section to read the filename from and write the hash to. Type configparser.SectionProxy
835+ :param path: Path to the folder containg the file to hash. Type str
836+ :return: None
837+ """
838+ section['sha256'] = hash_file(os.path.join(path, section['filename']))
839+
840+
841+def main():
842+ cfg_file = os.path.abspath(os.path.join('..', 'download.cfg'))
843+ if not os.path.exists(cfg_file):
844+ print('Can\'t find download.cfg. You need to run hashgen.py from the scripts directory.')
845+ return False
846+
847+ config = ConfigParser()
848+ config.read(cfg_file)
849+
850+ song_folder = os.path.join('..', config['songs']['directory'])
851+ for lang in config['songs']['languages'].split(','):
852+ section = config['songs_{}'.format(lang)]
853+ write_hash(section, song_folder)
854+
855+ bible_folder = os.path.join('..', config['bibles']['directory'])
856+ for translation in config['bibles']['translations'].split(','):
857+ section = config['bible_{}'.format(translation)]
858+ write_hash(section, bible_folder)
859+
860+ theme_folder = os.path.join('..', config['themes']['directory'])
861+ for file in config['themes']['files'].split(','):
862+ section = config['theme_{}'.format(file)]
863+ write_hash(section, theme_folder)
864+
865+ with open(cfg_file, 'w') as configfile:
866+ configfile.write('# The most recent version should be added to http://openlp.org/files/frw/download.cfg\n')
867+ config.write(configfile)
868+
869+if __name__ == '__main__':
870+ main()
871
872=== added file 'scripts/jsongen.py'
873--- scripts/jsongen.py 1970-01-01 00:00:00 +0000
874+++ scripts/jsongen.py 2019-07-20 21:18:16 +0000
875@@ -0,0 +1,85 @@
876+#!/usr/bin/env python3
877+# -*- coding: utf-8 -*-
878+# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
879+
880+###############################################################################
881+# OpenLP - Open Source Lyrics Projection #
882+# --------------------------------------------------------------------------- #
883+# Copyright (c) 2008-2019 OpenLP Developers #
884+# --------------------------------------------------------------------------- #
885+# This program is free software; you can redistribute it and/or modify it #
886+# under the terms of the GNU General Public License as published by the Free #
887+# Software Foundation; version 2 of the License. #
888+# #
889+# This program is distributed in the hope that it will be useful, but WITHOUT #
890+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
891+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
892+# more details. #
893+# #
894+# You should have received a copy of the GNU General Public License along #
895+# with this program; if not, write to the Free Software Foundation, Inc., 59 #
896+# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
897+###############################################################################
898+"""
899+This script (re)generates a SHA256 hash for each file in the download_3.0.json file
900+"""
901+import json
902+from hashlib import sha256
903+from pathlib import Path
904+
905+CONFIG_FILE_NAME = 'download_3.0.json'
906+
907+def hash_file(file_path, block_size=65536):
908+ """
909+ Hash the given file block by block for memory efficiency
910+
911+ :param pathlib.Path file_path: Path to file to hash.
912+ :param int block_size: Size of blocks to process the file in.
913+ :return: The sha256 hash of the file.
914+ :rtype: str
915+ """
916+ with file_path.open(mode='rb') as file:
917+ print(f'Calculating hash for {file_path}')
918+ hasher = sha256()
919+ buf = file.read(block_size)
920+ while len(buf) > 0:
921+ hasher.update(buf)
922+ buf = file.read(block_size)
923+ return hasher.hexdigest()
924+
925+
926+def main():
927+ """
928+ Parse the json resource file and calculate a hash for each file
929+ """
930+ cfg_file_path = Path('..', CONFIG_FILE_NAME)
931+ if not cfg_file_path.exists():
932+ print(f'Can\'t find {cfg_file_path}. You need to run jsongen.py from the scripts directory.')
933+ return False
934+
935+ with cfg_file_path.open(mode='r', encoding='utf-8') as config_file:
936+ config = json.load(config_file)
937+
938+ meta = config['_meta']
939+ song_folder = Path('..', meta['songs_dir'])
940+ for lang in config['songs'].values():
941+ song_db_path = song_folder / lang['file_name']
942+ lang['sha256'] = hash_file(song_db_path)
943+
944+ bible_folder = Path('..', meta['bibles_dir'])
945+ for lang in config['bibles'].values():
946+ for translation in lang['translations'].values():
947+ bible_db_path = bible_folder / translation['file_name']
948+ translation['sha256'] = hash_file(bible_db_path)
949+
950+ theme_folder = Path('..', meta['themes_dir'])
951+ for theme in config['themes'].values():
952+ theme_db_path = theme_folder / theme['file_name']
953+ theme['sha256'] = hash_file(theme_db_path)
954+
955+ with cfg_file_path.open(mode='w', encoding='utf-8') as config_file:
956+ json.dump(config, config_file, sort_keys=True, indent=2, ensure_ascii=False)
957+
958+
959+if __name__ == '__main__':
960+ main()
961
962=== added directory 'songs'
963=== added file 'songs/songs_ar.sqlite'
964Binary files songs/songs_ar.sqlite 1970-01-01 00:00:00 +0000 and songs/songs_ar.sqlite 2019-07-20 21:18:16 +0000 differ
965=== added file 'songs/songs_de.sqlite'
966Binary files songs/songs_de.sqlite 1970-01-01 00:00:00 +0000 and songs/songs_de.sqlite 2019-07-20 21:18:16 +0000 differ
967=== added file 'songs/songs_en.sqlite'
968Binary files songs/songs_en.sqlite 1970-01-01 00:00:00 +0000 and songs/songs_en.sqlite 2019-07-20 21:18:16 +0000 differ
969=== added file 'songs/songs_fi.sqlite'
970Binary files songs/songs_fi.sqlite 1970-01-01 00:00:00 +0000 and songs/songs_fi.sqlite 2019-07-20 21:18:16 +0000 differ
971=== added file 'songs/songs_hu.sqlite'
972Binary files songs/songs_hu.sqlite 1970-01-01 00:00:00 +0000 and songs/songs_hu.sqlite 2019-07-20 21:18:16 +0000 differ
973=== added file 'songs/songs_ru.sqlite'
974Binary files songs/songs_ru.sqlite 1970-01-01 00:00:00 +0000 and songs/songs_ru.sqlite 2019-07-20 21:18:16 +0000 differ
975=== added file 'songs/songs_th.sqlite'
976Binary files songs/songs_th.sqlite 1970-01-01 00:00:00 +0000 and songs/songs_th.sqlite 2019-07-20 21:18:16 +0000 differ
977=== added directory 'songs/v7'
978=== added file 'songs/v7/songs_ar.sqlite'
979Binary files songs/v7/songs_ar.sqlite 1970-01-01 00:00:00 +0000 and songs/v7/songs_ar.sqlite 2019-07-20 21:18:16 +0000 differ
980=== added file 'songs/v7/songs_de.sqlite'
981Binary files songs/v7/songs_de.sqlite 1970-01-01 00:00:00 +0000 and songs/v7/songs_de.sqlite 2019-07-20 21:18:16 +0000 differ
982=== added file 'songs/v7/songs_en.sqlite'
983Binary files songs/v7/songs_en.sqlite 1970-01-01 00:00:00 +0000 and songs/v7/songs_en.sqlite 2019-07-20 21:18:16 +0000 differ
984=== added file 'songs/v7/songs_fi.sqlite'
985Binary files songs/v7/songs_fi.sqlite 1970-01-01 00:00:00 +0000 and songs/v7/songs_fi.sqlite 2019-07-20 21:18:16 +0000 differ
986=== added file 'songs/v7/songs_hu.sqlite'
987Binary files songs/v7/songs_hu.sqlite 1970-01-01 00:00:00 +0000 and songs/v7/songs_hu.sqlite 2019-07-20 21:18:16 +0000 differ
988=== added file 'songs/v7/songs_ru.sqlite'
989Binary files songs/v7/songs_ru.sqlite 1970-01-01 00:00:00 +0000 and songs/v7/songs_ru.sqlite 2019-07-20 21:18:16 +0000 differ
990=== added file 'songs/v7/songs_th.sqlite'
991Binary files songs/v7/songs_th.sqlite 1970-01-01 00:00:00 +0000 and songs/v7/songs_th.sqlite 2019-07-20 21:18:16 +0000 differ
992=== added directory 'themes'
993=== added file 'themes/BlueBurst.otz'
994Binary files themes/BlueBurst.otz 1970-01-01 00:00:00 +0000 and themes/BlueBurst.otz 2019-07-20 21:18:16 +0000 differ
995=== added file 'themes/BlueBurst.png'
996Binary files themes/BlueBurst.png 1970-01-01 00:00:00 +0000 and themes/BlueBurst.png 2019-07-20 21:18:16 +0000 differ
997=== added file 'themes/Clouds.otz'
998Binary files themes/Clouds.otz 1970-01-01 00:00:00 +0000 and themes/Clouds.otz 2019-07-20 21:18:16 +0000 differ
999=== added file 'themes/Clouds.png'
1000Binary files themes/Clouds.png 1970-01-01 00:00:00 +0000 and themes/Clouds.png 2019-07-20 21:18:16 +0000 differ
1001=== added file 'themes/Geo_Purple.otz'
1002Binary files themes/Geo_Purple.otz 1970-01-01 00:00:00 +0000 and themes/Geo_Purple.otz 2019-07-20 21:18:16 +0000 differ
1003=== added file 'themes/Geo_Purple.png'
1004Binary files themes/Geo_Purple.png 1970-01-01 00:00:00 +0000 and themes/Geo_Purple.png 2019-07-20 21:18:16 +0000 differ
1005=== added file 'themes/Moss_on_tree.otz'
1006Binary files themes/Moss_on_tree.otz 1970-01-01 00:00:00 +0000 and themes/Moss_on_tree.otz 2019-07-20 21:18:16 +0000 differ
1007=== added file 'themes/Moss_on_tree.png'
1008Binary files themes/Moss_on_tree.png 1970-01-01 00:00:00 +0000 and themes/Moss_on_tree.png 2019-07-20 21:18:16 +0000 differ
1009=== added file 'themes/Sea_with_trees.otz'
1010Binary files themes/Sea_with_trees.otz 1970-01-01 00:00:00 +0000 and themes/Sea_with_trees.otz 2019-07-20 21:18:16 +0000 differ
1011=== added file 'themes/Sea_with_trees.png'
1012Binary files themes/Sea_with_trees.png 1970-01-01 00:00:00 +0000 and themes/Sea_with_trees.png 2019-07-20 21:18:16 +0000 differ
1013=== added file 'themes/Sunrise.otz'
1014Binary files themes/Sunrise.otz 1970-01-01 00:00:00 +0000 and themes/Sunrise.otz 2019-07-20 21:18:16 +0000 differ
1015=== added file 'themes/Sunrise.png'
1016Binary files themes/Sunrise.png 1970-01-01 00:00:00 +0000 and themes/Sunrise.png 2019-07-20 21:18:16 +0000 differ
1017=== added file 'themes/Wheat.otz'
1018Binary files themes/Wheat.otz 1970-01-01 00:00:00 +0000 and themes/Wheat.otz 2019-07-20 21:18:16 +0000 differ
1019=== added file 'themes/Wheat.png'
1020Binary files themes/Wheat.png 1970-01-01 00:00:00 +0000 and themes/Wheat.png 2019-07-20 21:18:16 +0000 differ
1021=== added directory 'themes/v2'
1022=== added file 'themes/v2/BlueBurst.otz'
1023Binary files themes/v2/BlueBurst.otz 1970-01-01 00:00:00 +0000 and themes/v2/BlueBurst.otz 2019-07-20 21:18:16 +0000 differ
1024=== added file 'themes/v2/BlueBurst.png'
1025Binary files themes/v2/BlueBurst.png 1970-01-01 00:00:00 +0000 and themes/v2/BlueBurst.png 2019-07-20 21:18:16 +0000 differ
1026=== added file 'themes/v2/Clouds.otz'
1027Binary files themes/v2/Clouds.otz 1970-01-01 00:00:00 +0000 and themes/v2/Clouds.otz 2019-07-20 21:18:16 +0000 differ
1028=== added file 'themes/v2/Clouds.png'
1029Binary files themes/v2/Clouds.png 1970-01-01 00:00:00 +0000 and themes/v2/Clouds.png 2019-07-20 21:18:16 +0000 differ
1030=== added file 'themes/v2/Geo_Purple.otz'
1031Binary files themes/v2/Geo_Purple.otz 1970-01-01 00:00:00 +0000 and themes/v2/Geo_Purple.otz 2019-07-20 21:18:16 +0000 differ
1032=== added file 'themes/v2/Geo_Purple.png'
1033Binary files themes/v2/Geo_Purple.png 1970-01-01 00:00:00 +0000 and themes/v2/Geo_Purple.png 2019-07-20 21:18:16 +0000 differ
1034=== added file 'themes/v2/Moss_on_tree.otz'
1035Binary files themes/v2/Moss_on_tree.otz 1970-01-01 00:00:00 +0000 and themes/v2/Moss_on_tree.otz 2019-07-20 21:18:16 +0000 differ
1036=== added file 'themes/v2/Moss_on_tree.png'
1037Binary files themes/v2/Moss_on_tree.png 1970-01-01 00:00:00 +0000 and themes/v2/Moss_on_tree.png 2019-07-20 21:18:16 +0000 differ
1038=== added file 'themes/v2/Sea_with_trees.otz'
1039Binary files themes/v2/Sea_with_trees.otz 1970-01-01 00:00:00 +0000 and themes/v2/Sea_with_trees.otz 2019-07-20 21:18:16 +0000 differ
1040=== added file 'themes/v2/Sea_with_trees.png'
1041Binary files themes/v2/Sea_with_trees.png 1970-01-01 00:00:00 +0000 and themes/v2/Sea_with_trees.png 2019-07-20 21:18:16 +0000 differ
1042=== added file 'themes/v2/Sunrise.otz'
1043Binary files themes/v2/Sunrise.otz 1970-01-01 00:00:00 +0000 and themes/v2/Sunrise.otz 2019-07-20 21:18:16 +0000 differ
1044=== added file 'themes/v2/Sunrise.png'
1045Binary files themes/v2/Sunrise.png 1970-01-01 00:00:00 +0000 and themes/v2/Sunrise.png 2019-07-20 21:18:16 +0000 differ
1046=== added file 'themes/v2/Wheat.otz'
1047Binary files themes/v2/Wheat.otz 1970-01-01 00:00:00 +0000 and themes/v2/Wheat.otz 2019-07-20 21:18:16 +0000 differ
1048=== added file 'themes/v2/Wheat.png'
1049Binary files themes/v2/Wheat.png 1970-01-01 00:00:00 +0000 and themes/v2/Wheat.png 2019-07-20 21:18:16 +0000 differ