From efccb570836136c5f1e7103e3bdc50406a914f45 Mon Sep 17 00:00:00 2001 From: Mindiell Date: Sun, 17 Sep 2023 15:34:44 +0200 Subject: [PATCH] update of rikiki --- rikiki/README.md | 3 ++- rikiki/rikiki.py | 14 +++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/rikiki/README.md b/rikiki/README.md index 1ff3648..c66f23f 100644 --- a/rikiki/README.md +++ b/rikiki/README.md @@ -16,7 +16,8 @@ To run this wiki, you need python3 only : 1. Create a folder named "wiki" 2. Create a sub-folder named "cgi-bin" 3. Copy rikiki.py inside the "cgi-bin" folder -4. Run this command from the wiki folder : +4. chmod +x on rikiki.py +5. Run this command from the wiki folder : PYTHONWARNINGS="ignore" python -m http.server --cgi Now, you can go and visit : http://localhost:8000/cgi-bin/rikiki.py?p=HomePage diff --git a/rikiki/rikiki.py b/rikiki/rikiki.py index 2f98eb8..cb7095f 100755 --- a/rikiki/rikiki.py +++ b/rikiki/rikiki.py @@ -1,2 +1,14 @@ #!/usr/bin/env python3 -import cgi,json as j,re as r;p,s,c=map(cgi.parse().get,"psc");p,o=p[0],open;s and o(p,"w").write(s[0]);o(p,"a");o("b","a");l,k,v=j.loads(o("b").read()or"{}"),r"(([A-Z][\w]+){2})",r"\1";c=s[0] if s else o(p).read();l[p]=[x[0] for x in r.findall(k,c)];h=r.sub(k,v,c,r.M);h=r.sub(r"\n","

",h,r.M);j.dump(l,o("b","w"));print('Content-Type: text/html\n\n%s

'%(h,c));[n==p and print(r.sub(k,v,m)) for m in l for n in l[m]] \ No newline at end of file +import cgi,json as j,re as r +p,s,c=map(cgi.parse().get,"psc") +p,o=p[0],open +s and o(p,"w").write(s[0]) +o(p,"a");o("b","a") +l,k,v=j.loads(o("b").read()or"{}"),r"(([A-Z][\w]+){2})",r"\1" +c=s[0] if s else o(p).read() +l[p]=[x[0] for x in r.findall(k,c)] +h=r.sub(k,v,c,r.M) +h=r.sub(r"\n","

",h,r.M) +j.dump(l,o("b","w")) +print('Content-Type: text/html\n\n%s

'%(h,c)) +[n==p and print(r.sub(k,v,m)) for m in l for n in l[m]] \ No newline at end of file