diff options
| author | user@node5.net <user@node5.net> | 2026-06-15 21:24:56 +0200 |
|---|---|---|
| committer | user@node5.net <user@node5.net> | 2026-06-15 21:24:56 +0200 |
| commit | 38b8178cce160b3d2e6c8b3256c7655f4d0a27cd (patch) | |
| tree | ee232c74e786890a4d2bad8b1d89e2b5a5e2c6e6 | |
| parent | 693525e6444a74980ddfffb32ffe561c53dfcc24 (diff) | |
internalize needed files for starting the program
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | .gitmodules | 3 | ||||
| m--------- | blog.node5.net/articles | 0 | ||||
| -rw-r--r-- | flake.nix | 19 | ||||
| -rw-r--r-- | src/blog.node5.net/motd.md (renamed from blog.node5.net/motd.md) | 0 | ||||
| -rw-r--r-- | src/blog.node5.net/static/RobotoMono-Bold.ttf (renamed from blog.node5.net/static/RobotoMono-Bold.ttf) | bin | 87392 -> 87392 bytes | |||
| -rw-r--r-- | src/blog.node5.net/static/RobotoMono-Regular.ttf (renamed from blog.node5.net/static/RobotoMono-Regular.ttf) | bin | 87236 -> 87236 bytes | |||
| -rw-r--r-- | src/blog.node5.net/static/article.css (renamed from blog.node5.net/static/article.css) | 0 | ||||
| -rw-r--r-- | src/blog.node5.net/static/bg.webp (renamed from blog.node5.net/static/bg.webp) | bin | 24074 -> 24074 bytes | |||
| -rw-r--r-- | src/blog.node5.net/static/comment_section.css (renamed from blog.node5.net/static/comment_section.css) | 0 | ||||
| -rw-r--r-- | src/blog.node5.net/static/devicons.css (renamed from blog.node5.net/static/devicons.css) | 0 | ||||
| -rw-r--r-- | src/blog.node5.net/static/folder.css (renamed from blog.node5.net/static/folder.css) | 0 | ||||
| -rwxr-xr-x | src/blog.node5.net/static/fonts/devicons.eot (renamed from blog.node5.net/static/fonts/devicons.eot) | bin | 125648 -> 125648 bytes | |||
| -rwxr-xr-x | src/blog.node5.net/static/fonts/devicons.svg (renamed from blog.node5.net/static/fonts/devicons.svg) | 0 | ||||
| -rwxr-xr-x | src/blog.node5.net/static/fonts/devicons.ttf (renamed from blog.node5.net/static/fonts/devicons.ttf) | bin | 125484 -> 125484 bytes | |||
| -rwxr-xr-x | src/blog.node5.net/static/fonts/devicons.woff (renamed from blog.node5.net/static/fonts/devicons.woff) | bin | 125560 -> 125560 bytes | |||
| -rw-r--r-- | src/blog.node5.net/static/main.css (renamed from blog.node5.net/static/main.css) | 0 | ||||
| -rw-r--r-- | src/blog.node5.net/static/motd/C+++++++++++++++++++++++++++.png (renamed from blog.node5.net/static/motd/C+++++++++++++++++++++++++++.png) | bin | 129008 -> 129008 bytes | |||
| -rw-r--r-- | src/blog.node5.net/static/motd/code128.webp (renamed from blog.node5.net/static/motd/code128.webp) | bin | 646 -> 646 bytes | |||
| -rw-r--r-- | src/blog.node5.net/static/motd/debian_stable_jurasic_park.webp (renamed from blog.node5.net/static/motd/debian_stable_jurasic_park.webp) | bin | 3992 -> 3992 bytes | |||
| -rw-r--r-- | src/blog.node5.net/static/pygmentize_code_highlight.css (renamed from blog.node5.net/static/pygmentize_code_highlight.css) | 0 | ||||
| -rw-r--r-- | src/blog.node5.net/templates/article.html (renamed from blog.node5.net/templates/article.html) | 0 | ||||
| -rw-r--r-- | src/blog.node5.net/templates/article_meta_data.html (renamed from blog.node5.net/templates/article_meta_data.html) | 0 | ||||
| -rw-r--r-- | src/blog.node5.net/templates/base.html (renamed from blog.node5.net/templates/base.html) | 0 | ||||
| -rw-r--r-- | src/blog.node5.net/templates/folder.html (renamed from blog.node5.net/templates/folder.html) | 0 | ||||
| -rw-r--r-- | src/blog_node5_net.py | 5 | ||||
| -rw-r--r-- | src/create_db.sql (renamed from create_db.sql) | 0 | ||||
| -rw-r--r-- | src/db_handler.py | 14 |
28 files changed, 24 insertions, 18 deletions
@@ -4,3 +4,4 @@ blog.node5.net.db configs/telegram.yml venv result +src/blog.node5.net/articles/ diff --git a/.gitmodules b/.gitmodules index 9e0a183..e69de29 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +0,0 @@ -[submodule "blog.node5.net/articles"] - path = blog.node5.net/articles - url = https://git.node5.net/blog/articles diff --git a/blog.node5.net/articles b/blog.node5.net/articles deleted file mode 160000 -Subproject f67ff12ecdc993cf2752e44531c0d1a0d832bd9 @@ -26,7 +26,7 @@ # Returns an attribute set that can be passed to `buildPythonPackage`. attrs = project.renderers.buildPythonPackage { inherit python; }; - py_pkg = python.pkgs.buildPythonPackage (attrs // { + pkg = python.pkgs.buildPythonPackage (attrs // { meta = { description = "Blog backend for blog.node5.net"; homepage = "https://blog.node5.net/Blog%20meta/"; @@ -34,22 +34,19 @@ mainProgram = "blog-node5"; }; propagatedBuildInputs = (attrs.propagatedBuildInputs or []) ++ [ pkgs.git ]; # Make git binary available + postInstall = '' + echo $src + echo $out + cp -r $src/src/blog.node5.net $out/${python.sitePackages} + cp -r $src/src/create_db.sql $out/${python.sitePackages} + ''; }); # Add missing templates and static content, that wasn't auto discovered by the python build process - pkg = pkgs.stdenv.mkDerivation { - name = "blog.node5.net"; - src = py_pkg; - meta = py_pkg.meta; - installPhase = '' - mkdir -p $out/${python.sitePackages}/blog.node5.net/ - cp -r ${py_pkg}/* $out/ - cp -r ${./blog.node5.net}/* $out/${python.sitePackages}/blog.node5.net/ - ''; - }; in { packages.x86_64-linux.default = pkg; pythonPath = "${python.pkgs.makePythonPath attrs.dependencies}:${pkg}/${python.sitePackages}"; + a = attrs; }; } diff --git a/blog.node5.net/motd.md b/src/blog.node5.net/motd.md index f4c7579..f4c7579 100644 --- a/blog.node5.net/motd.md +++ b/src/blog.node5.net/motd.md diff --git a/blog.node5.net/static/RobotoMono-Bold.ttf b/src/blog.node5.net/static/RobotoMono-Bold.ttf Binary files differindex d884128..d884128 100644 --- a/blog.node5.net/static/RobotoMono-Bold.ttf +++ b/src/blog.node5.net/static/RobotoMono-Bold.ttf diff --git a/blog.node5.net/static/RobotoMono-Regular.ttf b/src/blog.node5.net/static/RobotoMono-Regular.ttf Binary files differindex 6df2b25..6df2b25 100644 --- a/blog.node5.net/static/RobotoMono-Regular.ttf +++ b/src/blog.node5.net/static/RobotoMono-Regular.ttf diff --git a/blog.node5.net/static/article.css b/src/blog.node5.net/static/article.css index d482ed4..d482ed4 100644 --- a/blog.node5.net/static/article.css +++ b/src/blog.node5.net/static/article.css diff --git a/blog.node5.net/static/bg.webp b/src/blog.node5.net/static/bg.webp Binary files differindex 7360911..7360911 100644 --- a/blog.node5.net/static/bg.webp +++ b/src/blog.node5.net/static/bg.webp diff --git a/blog.node5.net/static/comment_section.css b/src/blog.node5.net/static/comment_section.css index 7aa1727..7aa1727 100644 --- a/blog.node5.net/static/comment_section.css +++ b/src/blog.node5.net/static/comment_section.css diff --git a/blog.node5.net/static/devicons.css b/src/blog.node5.net/static/devicons.css index def7eb3..def7eb3 100644 --- a/blog.node5.net/static/devicons.css +++ b/src/blog.node5.net/static/devicons.css diff --git a/blog.node5.net/static/folder.css b/src/blog.node5.net/static/folder.css index e72f886..e72f886 100644 --- a/blog.node5.net/static/folder.css +++ b/src/blog.node5.net/static/folder.css diff --git a/blog.node5.net/static/fonts/devicons.eot b/src/blog.node5.net/static/fonts/devicons.eot Binary files differindex 6eeaacb..6eeaacb 100755 --- a/blog.node5.net/static/fonts/devicons.eot +++ b/src/blog.node5.net/static/fonts/devicons.eot diff --git a/blog.node5.net/static/fonts/devicons.svg b/src/blog.node5.net/static/fonts/devicons.svg index 5149508..5149508 100755 --- a/blog.node5.net/static/fonts/devicons.svg +++ b/src/blog.node5.net/static/fonts/devicons.svg diff --git a/blog.node5.net/static/fonts/devicons.ttf b/src/blog.node5.net/static/fonts/devicons.ttf Binary files differindex b4980db..b4980db 100755 --- a/blog.node5.net/static/fonts/devicons.ttf +++ b/src/blog.node5.net/static/fonts/devicons.ttf diff --git a/blog.node5.net/static/fonts/devicons.woff b/src/blog.node5.net/static/fonts/devicons.woff Binary files differindex 65bf160..65bf160 100755 --- a/blog.node5.net/static/fonts/devicons.woff +++ b/src/blog.node5.net/static/fonts/devicons.woff diff --git a/blog.node5.net/static/main.css b/src/blog.node5.net/static/main.css index 8a61703..8a61703 100644 --- a/blog.node5.net/static/main.css +++ b/src/blog.node5.net/static/main.css diff --git a/blog.node5.net/static/motd/C+++++++++++++++++++++++++++.png b/src/blog.node5.net/static/motd/C+++++++++++++++++++++++++++.png Binary files differindex 85413b2..85413b2 100644 --- a/blog.node5.net/static/motd/C+++++++++++++++++++++++++++.png +++ b/src/blog.node5.net/static/motd/C+++++++++++++++++++++++++++.png diff --git a/blog.node5.net/static/motd/code128.webp b/src/blog.node5.net/static/motd/code128.webp Binary files differindex 9fb7108..9fb7108 100644 --- a/blog.node5.net/static/motd/code128.webp +++ b/src/blog.node5.net/static/motd/code128.webp diff --git a/blog.node5.net/static/motd/debian_stable_jurasic_park.webp b/src/blog.node5.net/static/motd/debian_stable_jurasic_park.webp Binary files differindex 2c62c23..2c62c23 100644 --- a/blog.node5.net/static/motd/debian_stable_jurasic_park.webp +++ b/src/blog.node5.net/static/motd/debian_stable_jurasic_park.webp diff --git a/blog.node5.net/static/pygmentize_code_highlight.css b/src/blog.node5.net/static/pygmentize_code_highlight.css index 26f039d..26f039d 100644 --- a/blog.node5.net/static/pygmentize_code_highlight.css +++ b/src/blog.node5.net/static/pygmentize_code_highlight.css diff --git a/blog.node5.net/templates/article.html b/src/blog.node5.net/templates/article.html index da3b668..da3b668 100644 --- a/blog.node5.net/templates/article.html +++ b/src/blog.node5.net/templates/article.html diff --git a/blog.node5.net/templates/article_meta_data.html b/src/blog.node5.net/templates/article_meta_data.html index ba668d8..ba668d8 100644 --- a/blog.node5.net/templates/article_meta_data.html +++ b/src/blog.node5.net/templates/article_meta_data.html diff --git a/blog.node5.net/templates/base.html b/src/blog.node5.net/templates/base.html index 474584c..474584c 100644 --- a/blog.node5.net/templates/base.html +++ b/src/blog.node5.net/templates/base.html diff --git a/blog.node5.net/templates/folder.html b/src/blog.node5.net/templates/folder.html index ae9456e..ae9456e 100644 --- a/blog.node5.net/templates/folder.html +++ b/src/blog.node5.net/templates/folder.html diff --git a/src/blog_node5_net.py b/src/blog_node5_net.py index e7f7503..94a1872 100644 --- a/src/blog_node5_net.py +++ b/src/blog_node5_net.py @@ -52,8 +52,9 @@ stream_handler.setFormatter(CustomFormatter()) logger.root.addHandler(stream_handler) logger.info(f"Debug: {'en' if debug else 'dis'}abled") +src_path = pathlib.Path(__file__).parent articles_path = os.environ["ARTICLES_PATH"] if "ARTICLES_PATH" in os.environ else './blog.node5.net/articles/' -site_files_path = os.environ["SITE_FILES_PATH"] if "SITE_FILES_PATH" in os.environ else './blog.node5.net/' +site_files_path = os.environ["SITE_FILES_PATH"] if "SITE_FILES_PATH" in os.environ else os.path.join(src_path, 'blog.node5.net/') articles_repo_url = os.environ["ARTICLES_REPO_URL"] if "ARTICLES_REPO_URL" in os.environ else 'https://git.node5.net/blog/articles/' logger.debug(f'articles_path: {articles_path}') logger.debug(f'site_files_path: {site_files_path}') @@ -94,7 +95,7 @@ articles_by_url: typing.Dict[str, article.Article] = {} # DB init -db: db_handler.DBHandler = db_handler.DBHandler() +db: db_handler.DBHandler = db_handler.DBHandler(db_init_script_path=os.path.join(src_path, 'create_db.sql')) # Telegram init try: diff --git a/create_db.sql b/src/create_db.sql index ee0f968..ee0f968 100644 --- a/create_db.sql +++ b/src/create_db.sql diff --git a/src/db_handler.py b/src/db_handler.py index 471154a..b063692 100644 --- a/src/db_handler.py +++ b/src/db_handler.py @@ -1,13 +1,23 @@ import logging -from dataclasses import dataclass - import sqlite3 +import os logger = logging.getLogger(__name__) # Set the logger name, to the name of the module class DBHandler: + def __init__(self, db_init_script_path: os.PathLike, db_path: str = "blog.node5.net.db"): + self.db_init_script_path = db_init_script_path + self.db_path = db_path + if not os.path.exists(self.db_path): + script = open(self.db_init_script_path, "r", encoding="utf-8").read() + with self.con_factory() as con: + con.executescript(script) + con.commit() + logger.info("Database initialized from %s", self.db_init_script_path) + + def con_factory(self) -> sqlite3.Connection: con = sqlite3.connect("blog.node5.net.db") return con |
