platzky 0.2.7__py3-none-any.whl → 0.2.9__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
platzky/platzky.py CHANGED
@@ -130,7 +130,9 @@ def create_app_from_config(config: Config) -> Engine:
130
130
  blog_prefix=config.blog_prefix,
131
131
  locale_func=engine.get_locale,
132
132
  )
133
- seo_blueprint = seo.create_seo_blueprint(db=engine.db, config=engine.config)
133
+ seo_blueprint = seo.create_seo_blueprint(
134
+ db=engine.db, config=engine.config, locale_func=engine.get_locale
135
+ )
134
136
  engine.register_blueprint(blog_blueprint)
135
137
  engine.register_blueprint(seo_blueprint)
136
138
 
platzky/seo/seo.py CHANGED
@@ -5,7 +5,7 @@ from os.path import dirname
5
5
  from flask import Blueprint, current_app, make_response, render_template, request
6
6
 
7
7
 
8
- def create_seo_blueprint(db, config: dict[str, t.Any]):
8
+ def create_seo_blueprint(db, config: dict[str, t.Any], locale_func: t.Callable[[], str]):
9
9
  seo = Blueprint(
10
10
  "seo",
11
11
  __name__,
@@ -20,21 +20,26 @@ def create_seo_blueprint(db, config: dict[str, t.Any]):
20
20
  response.headers["Content-Type"] = "text/plain"
21
21
  return response
22
22
 
23
- @seo.route("/sitemap.xml")
24
- def main_sitemap():
25
- if domain_to_lang := config["DOMAIN_TO_LANG"]:
26
- return sitemap(domain_to_lang[request.host])
27
- else:
28
- return sitemap(
29
- config.get("TRANSLATION_DIRECTORIES")
30
- ) # TODO should be based on localization not on config
23
+ def get_blog_entries(host_base, lang, db, blog_prefix):
24
+ dynamic_urls = list()
25
+ print(blog_prefix)
26
+ for post in db.get_all_posts(
27
+ lang
28
+ ): # TODO add get_list_of_posts for faster getting just list of it
29
+ slug = post.slug
30
+ datet = post.date.split("T")[0]
31
+ url = {"loc": f"{host_base}{blog_prefix}/{slug}", "lastmod": datet}
32
+ dynamic_urls.append(url)
33
+ return dynamic_urls
31
34
 
32
- def sitemap(lang):
35
+ @seo.route("/sitemap.xml") # TODO try to replace sitemap logic with flask-sitemap module
36
+ def sitemap():
33
37
  """
34
38
  Route to dynamically generate a sitemap of your website/application.
35
39
  lastmod and priority tags omitted on static pages.
36
40
  lastmod included on dynamic content such as seo posts.
37
41
  """
42
+ lang = locale_func()
38
43
 
39
44
  global url
40
45
  host_components = urllib.parse.urlparse(request.host_url)
@@ -43,19 +48,11 @@ def create_seo_blueprint(db, config: dict[str, t.Any]):
43
48
  # Static routes with static content
44
49
  static_urls = list()
45
50
  for rule in current_app.url_map.iter_rules():
46
- if not str(rule).startswith("/admin") and not str(rule).startswith("/user"):
47
- if rule.methods is not None and "GET" in rule.methods and len(rule.arguments) == 0:
48
- url = {"loc": f"{host_base}{rule!s}"}
49
- static_urls.append(url)
51
+ if rule.methods is not None and "GET" in rule.methods and len(rule.arguments) == 0:
52
+ url = {"loc": f"{host_base}{rule!s}"}
53
+ static_urls.append(url)
50
54
 
51
- # Dynamic routes with dynamic content
52
- dynamic_urls = list()
53
- seo_posts = db.get_all_posts(lang)
54
- for post in seo_posts:
55
- slug = post["slug"]
56
- datet = post["date"].split("T")[0]
57
- url = {"loc": f"{host_base}/{slug}", "lastmod": datet}
58
- dynamic_urls.append(url)
55
+ dynamic_urls = get_blog_entries(host_base, lang, db, config["BLOG_PREFIX"])
59
56
 
60
57
  statics = list({v["loc"]: v for v in static_urls}.values())
61
58
  dynamics = list({v["loc"]: v for v in dynamic_urls}.values())
@@ -70,3 +67,6 @@ def create_seo_blueprint(db, config: dict[str, t.Any]):
70
67
  return response
71
68
 
72
69
  return seo
70
+
71
+
72
+ # TODO add tests which would check that sitemap is different for different languages
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: platzky
3
- Version: 0.2.7
3
+ Version: 0.2.9
4
4
  Summary: Not only blog engine
5
5
  License: MIT
6
6
  Requires-Python: >=3.10,<4.0
@@ -11,12 +11,12 @@ platzky/db/graph_ql_db.py,sha256=aIqRxPV-Txr5MY2-qVALby9fHyIvWgvSz2t24M9SNRI,734
11
11
  platzky/db/json_db.py,sha256=AtZoTcM6S2ZHo19rxkCi4h4E4INGieZ4W6H5O2iormA,3246
12
12
  platzky/db/json_file_db.py,sha256=UQ8TadELmqOzj_tgNfmzhtCkDkMAgcB9vaUy0GQXUY4,1010
13
13
  platzky/models.py,sha256=-IIlyeLzACeTUpzuzvzJYxtT57E6wRiERoRgXJYMMtY,1502
14
- platzky/platzky.py,sha256=-01WVpSxZz96NoilFB_2ispHLRrquCsMR9p3F7Tyf1s,4525
14
+ platzky/platzky.py,sha256=6DROf-0y51ouruGwbAZM9bJ7JNqQqO27ievlnbSCdEE,4570
15
15
  platzky/plugin_loader.py,sha256=KYLDSEd_hseAgBuSbikerU_IFx-YmcYK5UwYw7kla2E,1106
16
16
  platzky/plugins/google-tag-manager/entrypoint.py,sha256=yY5UqFvSdj3tt2upwNS8JkTrKcrbwlaaE2XQ6sRiGLc,1011
17
17
  platzky/plugins/redirections/entrypoint.py,sha256=yoqHsRLqRALdICs5_UMSREkfEo1Lbsjj9tqEA7dsseg,1555
18
18
  platzky/plugins/sendmail/entrypoint.py,sha256=16GszfLaYhVUSuCdL4SPVKYN9-mONp-hK5ZWSiLluPo,1215
19
- platzky/seo/seo.py,sha256=l59Ol56YfJB4bk4IzypYVASYCjLrjJqXRXMIcc4EUZY,2606
19
+ platzky/seo/seo.py,sha256=N_MmAA4KJZmmrDUh0hYNtD8ycOwpNKow4gVSAv8V3N4,2631
20
20
  platzky/static/blog.css,sha256=jF-8ykgpbPp58SCUqygBhCm4o7ggULojbxpnk6Jbx3c,7895
21
21
  platzky/templates/404.html,sha256=EheoLSWylOscLH8FmcMA4c6Jw14i5HkSvE_GXzGIrUo,78
22
22
  platzky/templates/base.html,sha256=kvN_rLS0K6esgI0rpsZ2iGbu5z3JTBsjBRAflMpFkiI,4496
@@ -30,6 +30,6 @@ platzky/templates/post.html,sha256=GSgjIZsOQKtNx3cEbquSjZ5L4whPnG6MzRyoq9k4B8Q,1
30
30
  platzky/templates/robots.txt,sha256=2_j2tiYtYJnzZUrANiX9pvBxyw5Dp27fR_co18BPEJ0,116
31
31
  platzky/templates/sitemap.xml,sha256=iIJZ91_B5ZuNLCHsRtsGKZlBAXojOTP8kffqKLacgvs,578
32
32
  platzky/www_handler.py,sha256=pF6Rmvem1sdVqHD7z3RLrDuG-CwAqfGCti50_NPsB2w,725
33
- platzky-0.2.7.dist-info/METADATA,sha256=I6AwPyEbIOQce-EYVEXjDRS03MCTMt_V2Ea8GsmPgGo,1591
34
- platzky-0.2.7.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
35
- platzky-0.2.7.dist-info/RECORD,,
33
+ platzky-0.2.9.dist-info/METADATA,sha256=L7dz8p0DkdDThTIeqmmdX8q40-dS2SA0bt5UlYBzQCU,1591
34
+ platzky-0.2.9.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
35
+ platzky-0.2.9.dist-info/RECORD,,