Skip to content

Commit 7f98ff8

Browse files
jdcaballerovmgautierfr
authored andcommitted
Update all the examples cookbook
1 parent 6117f36 commit 7f98ff8

File tree

1 file changed

+109
-9
lines changed

1 file changed

+109
-9
lines changed

pyzim/examples.py

Lines changed: 109 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,127 @@
11
import pyzim
22

3-
content = '''<!DOCTYPE html>
3+
test_content = '''<!DOCTYPE html>
44
<html class="client-js">
55
<head><meta charset="UTF-8">
6-
<title>Albert Einstein</title>
7-
<h1> Hola Funciona </h1></html>'''
6+
<title>Monadical</title>
7+
<h1> ñññ Hello, it works ñññ </h1></html>'''
88

99

10-
article = pyzim.ZimArticle(namespace='A', url = 'Monadical', title='Monadical SAS', content=content, should_index = True)
10+
# Read an article from a zim file
1111

12-
import uuid
12+
zim_file_path = u"/opt/python-libzim/tests/wikipedia_es_physics_mini.zim"
13+
zim_reader = pyzim.ZimReader(zim_file_path)
14+
zim_test_article_long_url = u"A/Albert_Einstein"
15+
16+
read_article = zim_reader.get_article(zim_test_article_long_url)
17+
18+
# Read article properties
19+
20+
print(read_article.longurl)
21+
print (read_article.title)
22+
print(read_article.is_redirect)
23+
print(read_article.can_write)
24+
print(read_article.content[:100])
25+
26+
# Search or get suggestions from a zim file
27+
search = zim_reader.search("Einstein")
28+
print(search)
29+
suggestions = zim_reader.suggest("Einstein")
30+
print(suggestions)
31+
32+
# Get the total number of articles
33+
print (f"Number of articles: {str(zim_reader.get_article_count())}")
34+
35+
# Get the file namespaces
36+
37+
namespaces = zim_reader.get_namespaces()
38+
print(f'Namespaces: {namespaces}')
39+
for ns in namespaces:
40+
print(f"Namespace: {ns} | Count: {str(zim_reader.get_namespaces_count(ns))}")
41+
42+
# Get the file main page
43+
44+
print(f"Main Page URL: {zim_reader.get_main_page_url()}")
45+
46+
47+
# Create a filled article
48+
49+
article = pyzim.ZimArticle(namespace='A', url = 'Monadical', title='Monadical', content=test_content, should_index = True)
50+
51+
print(article.longurl)
52+
print(article.url)
53+
54+
# Create an empty article then fill it
55+
article2 = pyzim.ZimArticle()
56+
57+
article2.content = test_content
58+
article2.url = "Monadical_SAS"
59+
article2.title = "Monadical SAS"
60+
61+
# Fill an article from a read article
1362

63+
article3 = pyzim.ZimArticle()
64+
65+
article3.content = read_article.content
66+
article3.url = "Our_Einstein"
67+
article3.title = "Our Einstein's bio"
68+
69+
# Create a redirect article
70+
71+
article4 = pyzim.ZimArticle()
72+
article4.namespace = 'A'
73+
article4.url = "Our_Einstein_redirect"
74+
article4.title = "Redirect to Einstein"
75+
article4.redirect_url = read_article.url
76+
77+
78+
79+
# Write the articles
80+
import uuid
1481
rnd_str = str(uuid.uuid1())
1582

1683
test_zim_file_path = "/opt/python-libzim/tests/kiwix-test"
1784

18-
zim_creator = pyzim.ZimCreator(test_zim_file_path + '-' + rnd_str + '.zim',"welcome","eng",2048)
85+
zim_creator = pyzim.ZimCreator(test_zim_file_path + '-' + rnd_str + '.zim',main_page = "welcome",index_language= "eng", min_chunk_size= 2048)
86+
87+
# Add article to zim file
1988
zim_creator.add_article(article)
89+
zim_creator.add_article(article2)
90+
zim_creator.add_article(article3)
91+
zim_creator.add_article(article4)
92+
zim_creator.add_article(read_article)
93+
94+
# Write articles to zim file
2095
zim_creator.finalise()
2196

22-
test_zim_reader = pyzim.ZimReader(test_zim_file_path + '-' + rnd_str + '.zim')
97+
# Read written articles
98+
99+
zim_reader = pyzim.ZimReader(test_zim_file_path + '-' + rnd_str + '.zim')
100+
zim_test_article_long_url = "A/Monadical"
101+
102+
written_article = zim_reader.get_article(zim_test_article_long_url)
103+
redirect_article = zim_reader.get_article("A/Our_Einstein_redirect")
104+
print(f"Is {redirect_article.longurl} a redirect: {redirect_article.is_redirect}")
105+
106+
# Get redirected Article
107+
redirected = zim_reader.get_redirect_article(redirect_article)
108+
print(redirected.longurl)
109+
110+
# Read written metadata by url
111+
112+
date_metadata = zim_reader.get_article("M/Date")
113+
print(f"Date Metadata: {date_metadata.content}")
114+
115+
counter_metadata = zim_reader.get_article("M/Counter")
116+
# Redirect articles are not counted
117+
print(f"Counter Metadata: {counter_metadata.content}")
118+
119+
# Get all the file metadata as dict
120+
metadata = zim_reader.get_metadata()
121+
122+
print(f"Metadata: {metadata}")
23123

24-
zim_test_article_long_url = "A/Hola"
124+
# Get the file checksum
25125

26-
written_article = test_zim_reader.get_article(zim_test_article_long_url)
126+
print(f"File: {zim_reader.filename} \nChecksum: {zim_reader.get_checksum()}")
27127

0 commit comments

Comments
 (0)