forked from sch/Blasta
Add support for Blasta to operate as a desktop software.
This commit is contained in:
parent
667cf12d56
commit
a4c4bccc4b
35 changed files with 498 additions and 72 deletions
|
@ -38,6 +38,7 @@ import tomli_w
|
|||
from typing import Optional
|
||||
import urllib.parse
|
||||
import uvicorn
|
||||
import webbrowser
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
|
||||
|
@ -266,6 +267,7 @@ class HttpInstance:
|
|||
self.app.mount('/data', StaticFiles(directory='data'), name='data')
|
||||
self.app.mount('/export', StaticFiles(directory='export'), name='export')
|
||||
self.app.mount('/graphic', StaticFiles(directory='graphic'), name='graphic')
|
||||
self.app.mount('/script', StaticFiles(directory='script'), name='script')
|
||||
self.app.mount('/stylesheet', StaticFiles(directory='stylesheet'), name='stylesheet')
|
||||
|
||||
filename_configuration = 'configuration.toml'
|
||||
|
@ -5318,7 +5320,11 @@ def main():
|
|||
return http_instance.app
|
||||
|
||||
app = main()
|
||||
webbrowser.open('http://localhost:8000/help/about')
|
||||
# TODO Check first time
|
||||
webbrowser.open_new_tab('http://localhost:8000')
|
||||
|
||||
# FIXME
|
||||
if __name__ == '__main__':
|
||||
uvicorn.run(app, host='127.0.0.1', port=8000, reload=True)
|
||||
uvicorn.run(app, host='localhost', port=8000, reload=True)
|
||||
|
||||
|
|
39
blasta_client.py
Normal file
39
blasta_client.py
Normal file
|
@ -0,0 +1,39 @@
|
|||
import webview
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
class HtmlView:
|
||||
def __init__(self, url_instance):
|
||||
self.url_instance = url_instance
|
||||
|
||||
def regulator(self, uri):
|
||||
# Check if the URL is not from url_instance
|
||||
if not uri.startswith(self.url_instance):
|
||||
try:
|
||||
# Open the link using xdg-open
|
||||
subprocess.run(['xdg-open', uri], check=True)
|
||||
except subprocess.CalledProcessError as e:
|
||||
print(f"Failed to open URL: {uri}. Error: {e}")
|
||||
else:
|
||||
# If it is from url_instance, just load it in the webview
|
||||
#webview.load_url(uri)
|
||||
#webview.evaluate(f"window.location.href = '{uri}';")
|
||||
webview.windows[0].load_url(uri)
|
||||
|
||||
def setup(self):
|
||||
# Create a webview window
|
||||
window = webview.create_window('Blasta', self.url_instance)
|
||||
# Bind the link click event to the regulator function
|
||||
window.expose(self.regulator)
|
||||
|
||||
# Start the webview application
|
||||
webview.start()
|
||||
|
||||
if __name__ == '__main__':
|
||||
if len(sys.argv) != 2:
|
||||
print('Usage: {} <URL_OF_A_BLASTA_INSTANCE>'.format(sys.argv[0]))
|
||||
sys.exit(1)
|
||||
|
||||
url_instance = sys.argv[1]
|
||||
html_view = HtmlView(url_instance)
|
||||
html_view.setup()
|
4
blasta_client.sh
Executable file
4
blasta_client.sh
Executable file
|
@ -0,0 +1,4 @@
|
|||
#!/bin/sh
|
||||
|
||||
unset http_proxy
|
||||
WEBKIT_DISABLE_DMABUF_RENDERER=1 python blasta_client.py http://localhost:8000
|
20
script/regulator.js
Normal file
20
script/regulator.js
Normal file
|
@ -0,0 +1,20 @@
|
|||
document.addEventListener('DOMContentLoaded', () => {
|
||||
window.addEventListener('pywebviewready', () => {
|
||||
// Attach event listeners to all anchor elements
|
||||
document.querySelectorAll('a').forEach(element => {
|
||||
element.addEventListener('click', regulator);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// This function will be called when an anchor is clicked
|
||||
function regulator(event) {
|
||||
event.preventDefault(); // Prevent the default link behavior
|
||||
const url = this.href; // Get the URL from the clicked link
|
||||
|
||||
// Call the exposed Python function
|
||||
window.pywebview.api.regulator(url)
|
||||
.catch(error => {
|
||||
console.error("Error calling regulator:", error);
|
||||
});
|
||||
}
|
|
@ -58,8 +58,9 @@ xmlns:atom='http://www.w3.org/2005/Atom'>
|
|||
<title>
|
||||
<xsl:value-of select='atom:title'/>
|
||||
</title>
|
||||
<link rel='stylesheet' type='text/css' media='screen' href='/stylesheet/stylesheet.css'/>
|
||||
<link rel='icon' type='image/svg+xml' href='/graphic/blasta.svg'/>
|
||||
<link rel='stylesheet' type='text/css' media='screen' href='/stylesheet/stylesheet.css'/>
|
||||
<script src="/script/regulator.js" />
|
||||
</head>
|
||||
<body>
|
||||
<div id='header'>
|
||||
|
@ -239,7 +240,7 @@ xmlns:atom='http://www.w3.org/2005/Atom'>
|
|||
<p>
|
||||
Congratulations! You have reached to the final
|
||||
frontier that the XML technology has to offer to
|
||||
date, and as of yet!
|
||||
date, and as of yet.
|
||||
</p>
|
||||
<p>
|
||||
This is an automated Blasta Syndication Feed
|
||||
|
@ -249,7 +250,7 @@ xmlns:atom='http://www.w3.org/2005/Atom'>
|
|||
<p>
|
||||
<a href='/help/syndication#software'>Click
|
||||
here</a> for a selection of software and pick
|
||||
the ones that would fit to you best!
|
||||
the ones that would fit to you best.
|
||||
</p>
|
||||
</td>
|
||||
</table>
|
||||
|
@ -417,7 +418,7 @@ xmlns:atom='http://www.w3.org/2005/Atom'>
|
|||
<dd>
|
||||
<small>
|
||||
<h4 class='title'>
|
||||
Technical information. Please, read it!
|
||||
Technical information. Please, read it.
|
||||
</h4>
|
||||
<p>
|
||||
This ASF (Atom Syndication Format) document is
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<link rel="shortcut icon" href="/graphic/blasta.svg"/>
|
||||
<link rel='icon' type='image/svg+xml' href='/graphic/blasta.svg'/>
|
||||
<link rel='stylesheet' type='text/css' media='screen' href='/stylesheet/stylesheet.css'/>
|
||||
<script src="/script/regulator.js" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
|
@ -16,11 +17,21 @@
|
|||
<h1>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
|
||||
<a href="/">Blasta</a> / <a href="/help">help</a> / about
|
||||
<a href="/">
|
||||
Blasta
|
||||
</a>
|
||||
/
|
||||
<a href="/help">
|
||||
help
|
||||
</a>
|
||||
/ about
|
||||
</h1>
|
||||
<dl id="navigation">
|
||||
<dd>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
<a href="/">
|
||||
<img alt="Main"
|
||||
src="/graphic/blasta.svg"/>
|
||||
</a>
|
||||
</dd>
|
||||
{% if jabber_id %}
|
||||
<dd>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<link rel="shortcut icon" href="/graphic/blasta.svg"/>
|
||||
<link rel='icon' type='image/svg+xml' href='/graphic/blasta.svg'/>
|
||||
<link rel='stylesheet' type='text/css' media='screen' href='/stylesheet/stylesheet.css'/>
|
||||
<script src="/script/regulator.js" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
|
@ -16,11 +17,17 @@
|
|||
<h1>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
|
||||
<a href="/">Blasta</a> / {{path}}
|
||||
<a href="/">
|
||||
Blasta
|
||||
</a>
|
||||
/ {{path}}
|
||||
</h1>
|
||||
<dl id="navigation">
|
||||
<dd>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
<a href="/">
|
||||
<img alt="Main"
|
||||
src="/graphic/blasta.svg"/>
|
||||
</a>
|
||||
</dd>
|
||||
{% if jabber_id %}
|
||||
<dd>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<link rel="shortcut icon" href="/graphic/blasta.svg"/>
|
||||
<link rel='icon' type='image/svg+xml' href='/graphic/blasta.svg'/>
|
||||
<link rel='stylesheet' type='text/css' media='screen' href='/stylesheet/stylesheet.css'/>
|
||||
<script src="/script/regulator.js" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
|
@ -16,11 +17,29 @@
|
|||
<h1>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
|
||||
<a href="/">Blasta</a> / <a href="/help">help</a> / <a href="/help/about">about</a> / <a href="/help/about/xmpp">xmpp</a> / atomsub
|
||||
<a href="/">
|
||||
Blasta
|
||||
</a>
|
||||
/
|
||||
<a href="/help">
|
||||
help
|
||||
</a>
|
||||
/
|
||||
<a href="/help/about">
|
||||
about
|
||||
</a>
|
||||
/
|
||||
<a href="/help/about/xmpp">
|
||||
xmpp
|
||||
</a>
|
||||
/ atomsub
|
||||
</h1>
|
||||
<dl id="navigation">
|
||||
<dd>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
<a href="/">
|
||||
<img alt="Main"
|
||||
src="/graphic/blasta.svg"/>
|
||||
</a>
|
||||
</dd>
|
||||
{% if jabber_id %}
|
||||
<dd>
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml-stylesheet type="text/xsl" href="stylesheet/stylesheet.xsl"?>
|
||||
<?xml-stylesheet type="text/xsl" href="/stylesheet/stylesheet.xsl"?>
|
||||
<feed xmlns="http://www.w3.org/2005/Atom">
|
||||
<generator uri="https://git.xmpp-it.net/sch/Blasta" version="0.1">Blasta</generator>
|
||||
<id>{{request.url}}</id>
|
||||
<icon>/graphic/blasta.svg</icon>
|
||||
<link href="{{request.url}}"
|
||||
rel="self"
|
||||
type="text/html" />
|
||||
type="application/atom+xml" />
|
||||
<link href="{{request.url.__str__().replace('mode=feed&', '', 1).replace('?mode=feed', '', 1)}}"
|
||||
rel="alternate"
|
||||
type="text/html" />
|
||||
|
@ -21,11 +22,11 @@
|
|||
<entry>
|
||||
<author>
|
||||
<name>{{entry['name']}}</name>
|
||||
<uri>/jid/{{entry['jid']}}</uri>
|
||||
<uri>xmpp:{{entry['jid']}}</uri>
|
||||
<xmpp>{{entry['jid']}}</xmpp>
|
||||
<!-- uri>/jid/{{entry['jid']}}</uri -->
|
||||
<!-- xmpp>{{entry['jid']}}</xmpp -->
|
||||
</author>
|
||||
<id>{{entry['url_hash']}}</id>
|
||||
<id>md5:{{entry['url_hash']}}</id>
|
||||
<link href="{{entry['link']}}"
|
||||
rel="alternate" />
|
||||
<link href="xmpp:{{pubsub_jid}}?pubsub;action=subscribe;node=hash:{{entry['url_hash']}}"
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
<link rel="icon" type="image/svg+xml" href="/graphic/blasta.svg" />
|
||||
<link rel="stylesheet" type="text/css" media="screen"
|
||||
href="/stylesheet/stylesheet.css" />
|
||||
<script src="/script/regulator.js" />
|
||||
<link rel="alternate" type="application/atom+xml"
|
||||
title="Follow updates on /{% if jid %}jid/{% endif %}{{syndicate}}{% if param_tags %} for Tag: #{{param_tags}}{% endif %}{% if param_url %} for URL: {{param_url}}{% endif %}{% if param_hash %} for hash: {{param_hash}}{% endif %}"
|
||||
href="/{% if jid %}jid/{% endif %}{{syndicate}}?mode=feed{% if param_tags %}&tags={{param_tags}}{% endif %}{% if param_url %}&url={{param_url}}{% endif %}{% if param_hash %}&hash={{param_hash}}{% endif %}" />
|
||||
|
@ -23,11 +24,23 @@
|
|||
<h1>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
|
||||
<a href="/">Blasta</a> / {{path}}{% if jid and jid != jabber_id %} / <a href="/jid/{{jid}}">{{jid}}</a>{% endif %}
|
||||
<a href="/">
|
||||
Blasta
|
||||
</a>
|
||||
/ {{path}}
|
||||
{% if jid and jid != jabber_id %}
|
||||
/
|
||||
<a href="/jid/{{jid}}">
|
||||
{{jid}}
|
||||
</a>
|
||||
{% endif %}
|
||||
</h1>
|
||||
<dl id="navigation">
|
||||
<dd>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
<a href="/">
|
||||
<img alt="Main"
|
||||
src="/graphic/blasta.svg"/>
|
||||
</a>
|
||||
</dd>
|
||||
{% if jabber_id %}
|
||||
<dd>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<link rel="shortcut icon" href="/graphic/blasta.svg"/>
|
||||
<link rel='icon' type='image/svg+xml' href='/graphic/blasta.svg'/>
|
||||
<link rel='stylesheet' type='text/css' media='screen' href='/stylesheet/stylesheet.css'/>
|
||||
<script src="/script/regulator.js" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
|
@ -16,11 +17,17 @@
|
|||
<h1>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
|
||||
<a href="/">Blasta</a> / connect
|
||||
<a href="/">
|
||||
Blasta
|
||||
</a>
|
||||
/ connect
|
||||
</h1>
|
||||
<dl id="navigation">
|
||||
<dd>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
<a href="/">
|
||||
<img alt="Main"
|
||||
src="/graphic/blasta.svg"/>
|
||||
</a>
|
||||
</dd>
|
||||
<dd>
|
||||
<a href="/search">Search</a>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<link rel="shortcut icon" href="/graphic/blasta.svg"/>
|
||||
<link rel='icon' type='image/svg+xml' href='/graphic/blasta.svg'/>
|
||||
<link rel='stylesheet' type='text/css' media='screen' href='/stylesheet/stylesheet.css'/>
|
||||
<script src="/script/regulator.js" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
|
@ -16,11 +17,17 @@
|
|||
<h1>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
|
||||
<a href="/">Blasta</a> / contact
|
||||
<a href="/">
|
||||
Blasta
|
||||
</a>
|
||||
/ contact
|
||||
</h1>
|
||||
<dl id="navigation">
|
||||
<dd>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
<a href="/">
|
||||
<img alt="Main"
|
||||
src="/graphic/blasta.svg"/>
|
||||
</a>
|
||||
</dd>
|
||||
{% if jabber_id %}
|
||||
<dd>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<link rel="shortcut icon" href="/graphic/blasta.svg"/>
|
||||
<link rel='icon' type='image/svg+xml' href='/graphic/blasta.svg'/>
|
||||
<link rel='stylesheet' type='text/css' media='screen' href='/stylesheet/stylesheet.css'/>
|
||||
<script src="/script/regulator.js" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
|
@ -16,11 +17,17 @@
|
|||
<h1>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
|
||||
<a href="/">Blasta</a> / {{path}}
|
||||
<a href="/">
|
||||
Blasta
|
||||
</a>
|
||||
/ {{path}}
|
||||
</h1>
|
||||
<dl id="navigation">
|
||||
<dd>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
<a href="/">
|
||||
<img alt="Main"
|
||||
src="/graphic/blasta.svg"/>
|
||||
</a>
|
||||
</dd>
|
||||
{% if jabber_id %}
|
||||
<dd>
|
||||
|
@ -135,7 +142,7 @@
|
|||
id="summary"
|
||||
name="summary"
|
||||
placeholder="Enter a summary (recommended)."
|
||||
rows="5">{{summary}}</textarea>
|
||||
rows="10">{{summary}}</textarea>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<link rel="shortcut icon" href="/graphic/blasta.svg"/>
|
||||
<link rel='icon' type='image/svg+xml' href='/graphic/blasta.svg'/>
|
||||
<link rel='stylesheet' type='text/css' media='screen' href='/stylesheet/stylesheet.css'/>
|
||||
<script src="/script/regulator.js" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
|
@ -16,11 +17,21 @@
|
|||
<h1>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
|
||||
<a href="/">Blasta</a> / <a href="/help">help</a> / feeds
|
||||
<a href="/">
|
||||
Blasta
|
||||
</a>
|
||||
/
|
||||
<a href="/help">
|
||||
help
|
||||
</a>
|
||||
/ feeds
|
||||
</h1>
|
||||
<dl id="navigation">
|
||||
<dd>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
<a href="/">
|
||||
<img alt="Main"
|
||||
src="/graphic/blasta.svg"/>
|
||||
</a>
|
||||
</dd>
|
||||
{% if jabber_id %}
|
||||
<dd>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<link rel="shortcut icon" href="/graphic/blasta.svg"/>
|
||||
<link rel='icon' type='image/svg+xml' href='/graphic/blasta.svg'/>
|
||||
<link rel='stylesheet' type='text/css' media='screen' href='/stylesheet/stylesheet.css'/>
|
||||
<script src="/script/regulator.js" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
|
@ -16,11 +17,25 @@
|
|||
<h1>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
|
||||
<a href="/">Blasta</a> / <a href="/help">help</a> / <a href="/help/about">about</a> / folksonomy
|
||||
<a href="/">
|
||||
Blasta
|
||||
</a>
|
||||
/
|
||||
<a href="/help">
|
||||
help
|
||||
</a>
|
||||
/
|
||||
<a href="/help/about">
|
||||
about
|
||||
</a>
|
||||
/ folksonomy
|
||||
</h1>
|
||||
<dl id="navigation">
|
||||
<dd>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
<a href="/">
|
||||
<img alt="Main"
|
||||
src="/graphic/blasta.svg"/>
|
||||
</a>
|
||||
</dd>
|
||||
{% if jabber_id %}
|
||||
<dd>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<link rel="shortcut icon" href="/graphic/blasta.svg"/>
|
||||
<link rel='icon' type='image/svg+xml' href='/graphic/blasta.svg'/>
|
||||
<link rel='stylesheet' type='text/css' media='screen' href='/stylesheet/stylesheet.css'/>
|
||||
<script src="/script/regulator.js" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
|
@ -16,11 +17,17 @@
|
|||
<h1>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
|
||||
<a href="/">Blasta</a> / help
|
||||
<a href="/">
|
||||
Blasta
|
||||
</a>
|
||||
/ help
|
||||
</h1>
|
||||
<dl id="navigation">
|
||||
<dd>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
<a href="/">
|
||||
<img alt="Main"
|
||||
src="/graphic/blasta.svg"/>
|
||||
</a>
|
||||
</dd>
|
||||
{% if jabber_id %}
|
||||
<dd>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<link rel="shortcut icon" href="/graphic/blasta.svg"/>
|
||||
<link rel='icon' type='image/svg+xml' href='/graphic/blasta.svg'/>
|
||||
<link rel='stylesheet' type='text/css' media='screen' href='/stylesheet/stylesheet.css'/>
|
||||
<script src="/script/regulator.js" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
|
@ -16,11 +17,25 @@
|
|||
<h1>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
|
||||
<a href="/">Blasta</a> / <a href="/help">help</a> / <a href="/help/about">about</a> / ideas
|
||||
<a href="/">
|
||||
Blasta
|
||||
</a>
|
||||
/
|
||||
<a href="/help">
|
||||
help
|
||||
</a>
|
||||
/
|
||||
<a href="/help/about">
|
||||
about
|
||||
</a>
|
||||
/ ideas
|
||||
</h1>
|
||||
<dl id="navigation">
|
||||
<dd>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
<a href="/">
|
||||
<img alt="Main"
|
||||
src="/graphic/blasta.svg"/>
|
||||
</a>
|
||||
</dd>
|
||||
{% if jabber_id %}
|
||||
<dd>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<link rel="shortcut icon" href="/graphic/blasta.svg"/>
|
||||
<link rel='icon' type='image/svg+xml' href='/graphic/blasta.svg'/>
|
||||
<link rel='stylesheet' type='text/css' media='screen' href='/stylesheet/stylesheet.css'/>
|
||||
<script src="/script/regulator.js" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
|
@ -16,11 +17,29 @@
|
|||
<h1>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
|
||||
<a href="/">Blasta</a> / <a href="/help">help</a> / <a href="/help/about">about</a> / <a href="/help/about/xmpp">xmpp</a> / libervia
|
||||
<a href="/">
|
||||
Blasta
|
||||
</a>
|
||||
/
|
||||
<a href="/help">
|
||||
help
|
||||
</a>
|
||||
/
|
||||
<a href="/help/about">
|
||||
about
|
||||
</a>
|
||||
/
|
||||
<a href="/help/about/xmpp">
|
||||
xmpp
|
||||
</a>
|
||||
/ libervia
|
||||
</h1>
|
||||
<dl id="navigation">
|
||||
<dd>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
<a href="/">
|
||||
<img alt="Main"
|
||||
src="/graphic/blasta.svg"/>
|
||||
</a>
|
||||
</dd>
|
||||
{% if jabber_id %}
|
||||
<dd>
|
||||
|
@ -360,8 +379,8 @@
|
|||
</p>
|
||||
<br/>
|
||||
<p class="quote bottom">
|
||||
"Salut a Toi" is the name of the association which manages
|
||||
Libervia.
|
||||
"Salut a Toi", which means Greetings to you (French), is the
|
||||
name of the association which manages Libervia.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<link rel="shortcut icon" href="/graphic/blasta.svg"/>
|
||||
<link rel='icon' type='image/svg+xml' href='/graphic/blasta.svg'/>
|
||||
<link rel='stylesheet' type='text/css' media='screen' href='/stylesheet/stylesheet.css'/>
|
||||
<script src="/script/regulator.js" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
|
@ -16,11 +17,29 @@
|
|||
<h1>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
|
||||
<a href="/">Blasta</a> / <a href="/help">help</a> / <a href="/help/about">about</a> / <a href="/help/about/xmpp">xmpp</a> / movim
|
||||
<a href="/">
|
||||
Blasta
|
||||
</a>
|
||||
/
|
||||
<a href="/help">
|
||||
help
|
||||
</a>
|
||||
/
|
||||
<a href="/help/about">
|
||||
about
|
||||
</a>
|
||||
/
|
||||
<a href="/help/about/xmpp">
|
||||
xmpp
|
||||
</a>
|
||||
/ movim
|
||||
</h1>
|
||||
<dl id="navigation">
|
||||
<dd>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
<a href="/">
|
||||
<img alt="Main"
|
||||
src="/graphic/blasta.svg"/>
|
||||
</a>
|
||||
</dd>
|
||||
{% if jabber_id %}
|
||||
<dd>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<link rel="shortcut icon" href="/graphic/blasta.svg"/>
|
||||
<link rel='icon' type='image/svg+xml' href='/graphic/blasta.svg'/>
|
||||
<link rel='stylesheet' type='text/css' media='screen' href='/stylesheet/stylesheet.css'/>
|
||||
<script src="/script/regulator.js" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
|
@ -16,11 +17,17 @@
|
|||
<h1>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
|
||||
<a href="/">Blasta</a> / now
|
||||
<a href="/">
|
||||
Blasta
|
||||
</a>
|
||||
/ now
|
||||
</h1>
|
||||
<dl id="navigation">
|
||||
<dd>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
<a href="/">
|
||||
<img alt="Main"
|
||||
src="/graphic/blasta.svg"/>
|
||||
</a>
|
||||
</dd>
|
||||
{% if jabber_id %}
|
||||
<dd>
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
<link rel="icon" type="image/svg+xml" href="/graphic/blasta.svg" />
|
||||
<link rel="stylesheet" type="text/css" media="screen"
|
||||
href="/stylesheet/stylesheet.css" />
|
||||
<script src="/script/regulator.js" />
|
||||
<link rel="alternate" type="application/atom+xml"
|
||||
title="Follow updates on /{% if jid %}jid/{% endif %}{{syndicate}}{% if param_tags %} for Tag: #{{param_tags}}{% endif %}{% if param_url %} for URL: {{param_url}}{% endif %}{% if param_hash %} for hash: {{param_hash}}{% endif %}"
|
||||
href="/{% if jid %}jid/{% endif %}{{syndicate}}?mode=feed{% if param_tags %}&tags={{param_tags}}{% endif %}{% if param_url %}&url={{param_url}}{% endif %}{% if param_hash %}&hash={{param_hash}}{% endif %}" />
|
||||
|
@ -23,11 +24,17 @@
|
|||
<h1>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
|
||||
<a href="/">Blasta</a> / {{path}}
|
||||
<a href="/">
|
||||
Blasta
|
||||
</a>
|
||||
/ {{path}}
|
||||
</h1>
|
||||
<dl id="navigation">
|
||||
<dd>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
<a href="/">
|
||||
<img alt="Main"
|
||||
src="/graphic/blasta.svg"/>
|
||||
</a>
|
||||
</dd>
|
||||
{% if jabber_id %}
|
||||
<dd>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<link rel="shortcut icon" href="/graphic/blasta.svg"/>
|
||||
<link rel='icon' type='image/svg+xml' href='/graphic/blasta.svg'/>
|
||||
<link rel='stylesheet' type='text/css' media='screen' href='/stylesheet/stylesheet.css'/>
|
||||
<script src="/script/regulator.js" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
|
@ -16,11 +17,25 @@
|
|||
<h1>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
|
||||
<a href="/">Blasta</a> / <a href="/help">help</a> / <a href="/help/about">about</a> / philosophy
|
||||
<a href="/">
|
||||
Blasta
|
||||
</a>
|
||||
/
|
||||
<a href="/help">
|
||||
help
|
||||
</a>
|
||||
/
|
||||
<a href="/help/about">
|
||||
about
|
||||
</a>
|
||||
/ philosophy
|
||||
</h1>
|
||||
<dl id="navigation">
|
||||
<dd>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
<a href="/">
|
||||
<img alt="Main"
|
||||
src="/graphic/blasta.svg"/>
|
||||
</a>
|
||||
</dd>
|
||||
{% if jabber_id %}
|
||||
<dd>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<link rel="shortcut icon" href="/graphic/blasta.svg"/>
|
||||
<link rel='icon' type='image/svg+xml' href='/graphic/blasta.svg'/>
|
||||
<link rel='stylesheet' type='text/css' media='screen' href='/stylesheet/stylesheet.css'/>
|
||||
<script src="/script/regulator.js" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
|
@ -16,11 +17,17 @@
|
|||
<h1>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
|
||||
<a href="/">Blasta</a> / profile
|
||||
<a href="/">
|
||||
Blasta
|
||||
</a>
|
||||
/ profile
|
||||
</h1>
|
||||
<dl id="navigation">
|
||||
<dd>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
<a href="/">
|
||||
<img alt="Main"
|
||||
src="/graphic/blasta.svg"/>
|
||||
</a>
|
||||
</dd>
|
||||
{% if jabber_id %}
|
||||
<dd>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<link rel="shortcut icon" href="/graphic/blasta.svg"/>
|
||||
<link rel='icon' type='image/svg+xml' href='/graphic/blasta.svg'/>
|
||||
<link rel='stylesheet' type='text/css' media='screen' href='/stylesheet/stylesheet.css'/>
|
||||
<script src="/script/regulator.js" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
|
@ -16,11 +17,25 @@
|
|||
<h1>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
|
||||
<a href="/">Blasta</a> / <a href="/help">help</a> / <a href="/help/about">about</a> / projects
|
||||
<a href="/">
|
||||
Blasta
|
||||
</a>
|
||||
/
|
||||
<a href="/help">
|
||||
help
|
||||
</a>
|
||||
/
|
||||
<a href="/help/about">
|
||||
about
|
||||
</a>
|
||||
/ projects
|
||||
</h1>
|
||||
<dl id="navigation">
|
||||
<dd>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
<a href="/">
|
||||
<img alt="Main"
|
||||
src="/graphic/blasta.svg"/>
|
||||
</a>
|
||||
</dd>
|
||||
{% if jabber_id %}
|
||||
<dd>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<link rel="shortcut icon" href="/graphic/blasta.svg"/>
|
||||
<link rel='icon' type='image/svg+xml' href='/graphic/blasta.svg'/>
|
||||
<link rel='stylesheet' type='text/css' media='screen' href='/stylesheet/stylesheet.css'/>
|
||||
<script src="/script/regulator.js" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
|
@ -16,11 +17,29 @@
|
|||
<h1>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
|
||||
<a href="/">Blasta</a> / <a href="/help">help</a> / <a href="/help/about">about</a> / <a href="/help/about/xmpp">xmpp</a> / pubsub
|
||||
<a href="/">
|
||||
Blasta
|
||||
</a>
|
||||
/
|
||||
<a href="/help">
|
||||
help
|
||||
</a>
|
||||
/
|
||||
<a href="/help/about">
|
||||
about
|
||||
</a>
|
||||
/
|
||||
<a href="/help/about/xmpp">
|
||||
xmpp
|
||||
</a>
|
||||
/ pubsub
|
||||
</h1>
|
||||
<dl id="navigation">
|
||||
<dd>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
<a href="/">
|
||||
<img alt="Main"
|
||||
src="/graphic/blasta.svg"/>
|
||||
</a>
|
||||
</dd>
|
||||
{% if jabber_id %}
|
||||
<dd>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<link rel="shortcut icon" href="/graphic/blasta.svg"/>
|
||||
<link rel='icon' type='image/svg+xml' href='/graphic/blasta.svg'/>
|
||||
<link rel='stylesheet' type='text/css' media='screen' href='/stylesheet/stylesheet.css'/>
|
||||
<script src="/script/regulator.js" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
|
@ -16,11 +17,21 @@
|
|||
<h1>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
|
||||
<a href="/">Blasta</a> / <a href="/help">help</a> / questions
|
||||
<a href="/">
|
||||
Blasta
|
||||
</a>
|
||||
/
|
||||
<a href="/help">
|
||||
help
|
||||
</a>
|
||||
/ questions
|
||||
</h1>
|
||||
<dl id="navigation">
|
||||
<dd>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
<a href="/">
|
||||
<img alt="Main"
|
||||
src="/graphic/blasta.svg"/>
|
||||
</a>
|
||||
</dd>
|
||||
{% if jabber_id %}
|
||||
<dd>
|
||||
|
@ -297,8 +308,14 @@
|
|||
Does Blasta deploy ECMAScript (JavaScript)
|
||||
</h4>
|
||||
<p>
|
||||
Blasta does not make any use of ECMAScript.
|
||||
Yes. Blasta utilizes ECMAScript in order to confine the
|
||||
client version activity to itself. This will be changed in
|
||||
near future, once pywebview will have a more extensive
|
||||
support for intercepting HTTP requests.
|
||||
</p>
|
||||
<!-- p>
|
||||
Blasta does not make any use of ECMAScript.
|
||||
</p -->
|
||||
<p>
|
||||
We have decided not to use unecessary components nor "toxic"
|
||||
features that would compromise the intended experience that
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<link rel="shortcut icon" href="/graphic/blasta.svg"/>
|
||||
<link rel='icon' type='image/svg+xml' href='/graphic/blasta.svg'/>
|
||||
<link rel='stylesheet' type='text/css' media='screen' href='/stylesheet/stylesheet.css'/>
|
||||
<script src="/script/regulator.js" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
|
@ -16,11 +17,17 @@
|
|||
<h1>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
|
||||
<a href="/">Blasta</a> / register
|
||||
<a href="/">
|
||||
Blasta
|
||||
</a>
|
||||
/ register
|
||||
</h1>
|
||||
<dl id="navigation">
|
||||
<dd>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
<a href="/">
|
||||
<img alt="Main"
|
||||
src="/graphic/blasta.svg"/>
|
||||
</a>
|
||||
</dd>
|
||||
{% if jabber_id %}
|
||||
<dd>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<link rel="shortcut icon" href="/graphic/blasta.svg"/>
|
||||
<link rel='icon' type='image/svg+xml' href='/graphic/blasta.svg'/>
|
||||
<link rel='stylesheet' type='text/css' media='screen' href='/stylesheet/stylesheet.css'/>
|
||||
<script src="/script/regulator.js" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
|
@ -16,11 +17,17 @@
|
|||
<h1>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
|
||||
<a href="/">Blasta</a> / {{path}}
|
||||
<a href="/">
|
||||
Blasta
|
||||
</a>
|
||||
/ {{path}}
|
||||
</h1>
|
||||
<dl id="navigation">
|
||||
<dd>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
<a href="/">
|
||||
<img alt="Main"
|
||||
src="/graphic/blasta.svg"/>
|
||||
</a>
|
||||
</dd>
|
||||
{% if jabber_id %}
|
||||
<dd>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<link rel="shortcut icon" href="/graphic/blasta.svg"/>
|
||||
<link rel='icon' type='image/svg+xml' href='/graphic/blasta.svg'/>
|
||||
<link rel='stylesheet' type='text/css' media='screen' href='/stylesheet/stylesheet.css'/>
|
||||
<script src="/script/regulator.js" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
|
@ -16,11 +17,17 @@
|
|||
<h1>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
|
||||
<a href="/">Blasta</a> / search / {{path}}
|
||||
<a href="/">
|
||||
Blasta
|
||||
</a>
|
||||
/ search / {{path}}
|
||||
</h1>
|
||||
<dl id="navigation">
|
||||
<dd>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
<a href="/">
|
||||
<img alt="Main"
|
||||
src="/graphic/blasta.svg"/>
|
||||
</a>
|
||||
</dd>
|
||||
{% if jabber_id %}
|
||||
<dd>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<link rel="shortcut icon" href="/graphic/blasta.svg"/>
|
||||
<link rel='icon' type='image/svg+xml' href='/graphic/blasta.svg'/>
|
||||
<link rel='stylesheet' type='text/css' media='screen' href='/stylesheet/stylesheet.css'/>
|
||||
<script src="/script/regulator.js" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
|
@ -16,11 +17,25 @@
|
|||
<h1>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
|
||||
<a href="/">Blasta</a> / <a href="/help">help</a> / <a href="/help/about">about</a> / software
|
||||
<a href="/">
|
||||
Blasta
|
||||
</a>
|
||||
/
|
||||
<a href="/help">
|
||||
help
|
||||
</a>
|
||||
/
|
||||
<a href="/help/about">
|
||||
about
|
||||
</a>
|
||||
/ software
|
||||
</h1>
|
||||
<dl id="navigation">
|
||||
<dd>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
<a href="/">
|
||||
<img alt="Main"
|
||||
src="/graphic/blasta.svg"/>
|
||||
</a>
|
||||
</dd>
|
||||
{% if jabber_id %}
|
||||
<dd>
|
||||
|
@ -103,6 +118,22 @@
|
|||
Python is a computer language that lets you work quickly and
|
||||
integrate systems more effectively.
|
||||
</p>
|
||||
<h4>
|
||||
<a href="https://pywebview.flowrl.com">
|
||||
pywebview - Build a graphical interface for your Python
|
||||
software with ECMAScript, HTML, and CSS.
|
||||
</a>
|
||||
</h4>
|
||||
<p>
|
||||
pywebview is a lightweight cross-platform wrapper around an
|
||||
htmlview component that allows to display HTML content in
|
||||
its own native interface window. It gives you power of HTML
|
||||
technologies in your desktop application, hiding the fact
|
||||
that the interface is HTML based. You can use pywebview
|
||||
either with a lightweight HTML framework like Flask (opens
|
||||
new window) or on its own with a two way bridge between
|
||||
Python and DOM.
|
||||
</p>
|
||||
<h4>
|
||||
<a href="https://slixmpp.readthedocs.io">
|
||||
Slixmpp - A modern python XMPP library using asyncio.
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<link rel="shortcut icon" href="/graphic/blasta.svg"/>
|
||||
<link rel='icon' type='image/svg+xml' href='/graphic/blasta.svg'/>
|
||||
<link rel='stylesheet' type='text/css' media='screen' href='/stylesheet/stylesheet.css'/>
|
||||
<script src="/script/regulator.js" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
|
@ -16,11 +17,21 @@
|
|||
<h1>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
|
||||
<a href="/">Blasta</a> / <a href="/help">help</a> / syndication
|
||||
<a href="/">
|
||||
Blasta
|
||||
</a>
|
||||
/
|
||||
<a href="/help">
|
||||
help
|
||||
</a>
|
||||
/ syndication
|
||||
</h1>
|
||||
<dl id="navigation">
|
||||
<dd>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
<a href="/">
|
||||
<img alt="Main"
|
||||
src="/graphic/blasta.svg"/>
|
||||
</a>
|
||||
</dd>
|
||||
{% if jabber_id %}
|
||||
<dd>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<link rel="shortcut icon" href="/graphic/blasta.svg"/>
|
||||
<link rel='icon' type='image/svg+xml' href='/graphic/blasta.svg'/>
|
||||
<link rel='stylesheet' type='text/css' media='screen' href='/stylesheet/stylesheet.css'/>
|
||||
<script src="/script/regulator.js" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
|
@ -16,11 +17,17 @@
|
|||
<h1>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
|
||||
<a href="/">Blasta</a> / tag
|
||||
<a href="/">
|
||||
Blasta
|
||||
</a>
|
||||
/ tag
|
||||
</h1>
|
||||
<dl id="navigation">
|
||||
<dd>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
<a href="/">
|
||||
<img alt="Main"
|
||||
src="/graphic/blasta.svg"/>
|
||||
</a>
|
||||
</dd>
|
||||
{% if jabber_id %}
|
||||
<dd>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<link rel="shortcut icon" href="/graphic/blasta.svg"/>
|
||||
<link rel='icon' type='image/svg+xml' href='/graphic/blasta.svg'/>
|
||||
<link rel='stylesheet' type='text/css' media='screen' href='/stylesheet/stylesheet.css'/>
|
||||
<script src="/script/regulator.js" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
|
@ -16,11 +17,25 @@
|
|||
<h1>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
|
||||
<a href="/">Blasta</a> / <a href="/help">help</a> / <a href="/help/about">about</a> / thanks
|
||||
<a href="/">
|
||||
Blasta
|
||||
</a>
|
||||
/
|
||||
<a href="/help">
|
||||
help
|
||||
</a>
|
||||
/
|
||||
<a href="/help/about">
|
||||
about
|
||||
</a>
|
||||
/ thanks
|
||||
</h1>
|
||||
<dl id="navigation">
|
||||
<dd>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
<a href="/">
|
||||
<img alt="Main"
|
||||
src="/graphic/blasta.svg"/>
|
||||
</a>
|
||||
</dd>
|
||||
{% if jabber_id %}
|
||||
<dd>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<link rel="shortcut icon" href="/graphic/blasta.svg"/>
|
||||
<link rel='icon' type='image/svg+xml' href='/graphic/blasta.svg'/>
|
||||
<link rel='stylesheet' type='text/css' media='screen' href='/stylesheet/stylesheet.css'/>
|
||||
<script src="/script/regulator.js" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
|
@ -16,11 +17,21 @@
|
|||
<h1>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
|
||||
<a href="/">Blasta</a> / <a href="/help">help</a> / utilities
|
||||
<a href="/">
|
||||
Blasta
|
||||
</a>
|
||||
/
|
||||
<a href="/help">
|
||||
help
|
||||
</a>
|
||||
/ utilities
|
||||
</h1>
|
||||
<dl id="navigation">
|
||||
<dd>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
<a href="/">
|
||||
<img alt="Main"
|
||||
src="/graphic/blasta.svg"/>
|
||||
</a>
|
||||
</dd>
|
||||
{% if jabber_id %}
|
||||
<dd>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<link rel="shortcut icon" href="/graphic/blasta.svg"/>
|
||||
<link rel='icon' type='image/svg+xml' href='/graphic/blasta.svg'/>
|
||||
<link rel='stylesheet' type='text/css' media='screen' href='/stylesheet/stylesheet.css'/>
|
||||
<script src="/script/regulator.js" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
|
@ -16,11 +17,25 @@
|
|||
<h1>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
|
||||
<a href="/">Blasta</a> / <a href="/help">help</a> / <a href="/help/about">about</a> / xmpp
|
||||
<a href="/">
|
||||
Blasta
|
||||
</a>
|
||||
/
|
||||
<a href="/help">
|
||||
help
|
||||
</a>
|
||||
/
|
||||
<a href="/help/about">
|
||||
about
|
||||
</a>
|
||||
/ xmpp
|
||||
</h1>
|
||||
<dl id="navigation">
|
||||
<dd>
|
||||
<img src="/graphic/blasta.svg"/>
|
||||
<a href="/">
|
||||
<img alt="Main"
|
||||
src="/graphic/blasta.svg"/>
|
||||
</a>
|
||||
</dd>
|
||||
{% if jabber_id %}
|
||||
<dd>
|
||||
|
|
Loading…
Reference in a new issue