Update architecture documentation
|
@ -46,6 +46,10 @@ This is so that the system can be accessed and used normally with javascript in
|
|||
|
||||
Ordinarily web crawlers would not be a problem, but in the context of a social network even having crawlers index public posts can create ethical dilemmas in some circumstances. News and blogging instances may allow crawlers, but other types of instances should block them.
|
||||
|
||||
### Poison Scrapers
|
||||
|
||||
Rather than merely block unethical scrapers a better solution is to poison them in a manner which corrodes their viability. So by supplying text with the statistical profile of natural language but which is semantically worthless to known "AI" scrapers means that they then need to perform manual review to keep this data out of their training set, which decreases their profit. Ingesting random data bends generative AI models correspondingly towards entropy.
|
||||
|
||||
### No Local or Federated Timelines
|
||||
|
||||
The local and federated timelines of other ActivityPub servers don't add much value (especially the federated one), and tend to pollute the default timeline with irrelevant posts from people that you don't follow.
|
||||
|
@ -76,13 +80,13 @@ In general avoid using web frameworks and instead use local modules which are pr
|
|||
|
||||
The main modules are *epicyon.py* and *daemon.py*. *epicyon.py* is the commandline interface and *daemon.py* is the http server. The daemon has submodules for HTTP GET and HTTP POST.
|
||||
|
||||

|
||||

|
||||
|
||||
The daemon runs the inbox queue in a separate thread (see *inbox.py*) and the inbox queue processes incoming ActivityPub posts one at a time in a strictly serial fashion. Doing it this way means minimum potential for any parallelism/locking issues. It also means that the inbox queue is not highly scalable, but that's ok for a system which is only intended to have a few users per instance.
|
||||
|
||||
All ActivityPub posts are stored as text files, and there is no database as such other than the filesystem itself. Think of it as being like an email server. Each post is a json file stored in *accounts/nick@domain/inbox* or *accounts/nick@domain/outbox*. To avoid parsing problems slashes are replaced by hashes within the ActivityPub post filename. The filename for each post is the same as its ActivityPub id.
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
## Security
|
||||
|
@ -103,6 +107,8 @@ This currently uses basic auth, which is simple to implement. Oauth2 is conventi
|
|||
|
||||
The *inbox* queue makes calls to check http and linked data signatures. Various modules call *auth* typically because they're implementing the basic auth of the C2S interface.
|
||||
|
||||

|
||||
|
||||
## Accessibility
|
||||
|
||||
Trying to keep up with web accessibility standards. There should be configurable keyboard shortcuts for all of the main navigation actions. High contrast themes should be available. The desktop client should support text-to-speech. There should be the ability to run in a shell browser such as Lynx, without any significant loss of functionality.
|
||||
|
@ -115,4 +121,4 @@ The *webapp_post* module generates html for each post from its ActivityPub json
|
|||
|
||||
The *daemon* module (http server) also calls *webapp_accesskeys* to display the key shortcuts screen.
|
||||
|
||||

|
||||

|
||||
|
|
Before Width: | Height: | Size: 73 KiB After Width: | Height: | Size: 76 KiB |
Before Width: | Height: | Size: 341 KiB |
After Width: | Height: | Size: 160 KiB |
Before Width: | Height: | Size: 133 KiB After Width: | Height: | Size: 134 KiB |
Before Width: | Height: | Size: 117 KiB After Width: | Height: | Size: 118 KiB |
Before Width: | Height: | Size: 204 KiB |
After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 251 KiB |
Before Width: | Height: | Size: 189 KiB |
After Width: | Height: | Size: 198 KiB |
Before Width: | Height: | Size: 213 KiB After Width: | Height: | Size: 109 KiB |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 320 KiB |
After Width: | Height: | Size: 157 KiB |
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 114 KiB |
Before Width: | Height: | Size: 224 KiB |
After Width: | Height: | Size: 366 KiB |
Before Width: | Height: | Size: 94 KiB After Width: | Height: | Size: 95 KiB |
Before Width: | Height: | Size: 407 KiB |
After Width: | Height: | Size: 694 KiB |
Before Width: | Height: | Size: 80 KiB |
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core"
|
||||
__module_group__ = "Daemon"
|
||||
|
||||
from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer, HTTPServer
|
||||
import sys
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core"
|
||||
__module_group__ = "Daemon"
|
||||
|
||||
import os
|
||||
import time
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core GET"
|
||||
__module_group__ = "Daemon GET"
|
||||
|
||||
from httpcodes import write2
|
||||
from session import establish_session
|
||||
|
|
|
@ -7,7 +7,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core GET"
|
||||
__module_group__ = "Daemon GET"
|
||||
|
||||
from manualapprove import manual_deny_follow_request_thread
|
||||
from manualapprove import manual_approve_follow_request_thread
|
||||
|
|
|
@ -7,7 +7,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core GET"
|
||||
__module_group__ = "Daemon GET"
|
||||
|
||||
import os
|
||||
from utils import delete_post
|
||||
|
|
|
@ -7,7 +7,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core GET"
|
||||
__module_group__ = "Daemon GET"
|
||||
|
||||
import os
|
||||
from utils import get_cached_post_filename
|
||||
|
|
|
@ -7,7 +7,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core GET"
|
||||
__module_group__ = "Daemon GET"
|
||||
|
||||
import os
|
||||
from utils import undo_likes_collection_entry
|
||||
|
|
|
@ -7,7 +7,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core GET"
|
||||
__module_group__ = "Daemon GET"
|
||||
|
||||
import os
|
||||
from utils import is_dm
|
||||
|
|
|
@ -7,7 +7,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core GET"
|
||||
__module_group__ = "Daemon GET"
|
||||
|
||||
import os
|
||||
import urllib.parse
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core GET"
|
||||
__module_group__ = "Daemon GET"
|
||||
|
||||
import json
|
||||
from context import get_individual_post_context
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core GET"
|
||||
__module_group__ = "Daemon GET"
|
||||
|
||||
import os
|
||||
import time
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core GET"
|
||||
__module_group__ = "Daemon GET"
|
||||
|
||||
import os
|
||||
from httpcodes import http_404
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core GET"
|
||||
__module_group__ = "Daemon GET"
|
||||
|
||||
import os
|
||||
import urllib.parse
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core GET"
|
||||
__module_group__ = "Daemon GET"
|
||||
|
||||
import json
|
||||
from follow import get_following_feed
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core GET"
|
||||
__module_group__ = "Daemon GET"
|
||||
|
||||
import json
|
||||
import urllib.parse
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core GET"
|
||||
__module_group__ = "Daemon GET"
|
||||
|
||||
import os
|
||||
import datetime
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core GET"
|
||||
__module_group__ = "Daemon GET"
|
||||
|
||||
import json
|
||||
from httprequests import request_http
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core GET"
|
||||
__module_group__ = "Daemon GET"
|
||||
|
||||
from webapp_column_left import html_edit_links
|
||||
from httpheaders import set_headers
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core GET"
|
||||
__module_group__ = "Daemon Login"
|
||||
|
||||
from utils import get_instance_url
|
||||
from utils import string_ends_with
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core GET"
|
||||
__module_group__ = "Daemon GET"
|
||||
|
||||
import json
|
||||
from httpheaders import set_headers
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core GET"
|
||||
__module_group__ = "Daemon GET"
|
||||
|
||||
import urllib.parse
|
||||
from session import establish_session
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core GET"
|
||||
__module_group__ = "Daemon GET"
|
||||
|
||||
import json
|
||||
from httpcodes import http_400
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core GET"
|
||||
__module_group__ = "Daemon Timeline"
|
||||
|
||||
import os
|
||||
import json
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core GET"
|
||||
__module_group__ = "Daemon GET"
|
||||
|
||||
import os
|
||||
import json
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core GET"
|
||||
__module_group__ = "Daemon GET"
|
||||
|
||||
import json
|
||||
from httpcodes import write2
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core GET"
|
||||
__module_group__ = "Daemon GET"
|
||||
|
||||
from httpcodes import write2
|
||||
from httpheaders import redirect_headers
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core GET"
|
||||
__module_group__ = "Daemon GET"
|
||||
|
||||
import os
|
||||
from utils import data_dir
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core GET"
|
||||
__module_group__ = "Daemon Timeline"
|
||||
|
||||
import json
|
||||
from securemode import secure_mode
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core GET"
|
||||
__module_group__ = "Daemon GET"
|
||||
|
||||
import os
|
||||
from daemon_utils import has_accept
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core GET"
|
||||
__module_group__ = "Daemon GET"
|
||||
|
||||
import json
|
||||
from httpcodes import write2
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core"
|
||||
__module_group__ = "Daemon"
|
||||
|
||||
import os
|
||||
import datetime
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core"
|
||||
__module_group__ = "Daemon"
|
||||
|
||||
import time
|
||||
import errno
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core POST"
|
||||
__module_group__ = "Daemon POST"
|
||||
|
||||
import errno
|
||||
import urllib.parse
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core POST"
|
||||
__module_group__ = "Daemon POST"
|
||||
|
||||
import os
|
||||
import errno
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core POST"
|
||||
__module_group__ = "Daemon POST"
|
||||
|
||||
import os
|
||||
import errno
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core POST"
|
||||
__module_group__ = "Daemon POST"
|
||||
|
||||
import errno
|
||||
import urllib.parse
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core POST"
|
||||
__module_group__ = "Daemon POST"
|
||||
|
||||
import os
|
||||
import errno
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core POST"
|
||||
__module_group__ = "Daemon POST"
|
||||
|
||||
import os
|
||||
import time
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core POST"
|
||||
__module_group__ = "Daemon POST"
|
||||
|
||||
import os
|
||||
import errno
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core POST"
|
||||
__module_group__ = "Daemon POST"
|
||||
|
||||
import os
|
||||
import errno
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core POST"
|
||||
__module_group__ = "Daemon POST"
|
||||
|
||||
import os
|
||||
import errno
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core POST"
|
||||
__module_group__ = "Daemon POST"
|
||||
|
||||
import os
|
||||
import errno
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core POST"
|
||||
__module_group__ = "Daemon POST"
|
||||
|
||||
import os
|
||||
import errno
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core POST"
|
||||
__module_group__ = "Daemon POST"
|
||||
|
||||
import os
|
||||
import time
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core POST"
|
||||
__module_group__ = "Daemon POST"
|
||||
|
||||
import os
|
||||
import errno
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core POST"
|
||||
__module_group__ = "Daemon POST"
|
||||
|
||||
import errno
|
||||
import urllib.parse
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core POST"
|
||||
__module_group__ = "Daemon POST"
|
||||
|
||||
import errno
|
||||
import urllib.parse
|
||||
|
|
|
@ -5,7 +5,7 @@ __version__ = "1.6.0"
|
|||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Core"
|
||||
__module_group__ = "Daemon"
|
||||
|
||||
import os
|
||||
import time
|
||||
|
|
40
tests.py
|
@ -6045,30 +6045,34 @@ def _test_functions():
|
|||
|
||||
_diagram_groups(['Commandline Interface', 'ActivityPub'], ['utils'],
|
||||
modules, mod_groups, max_module_calls)
|
||||
_diagram_groups(['Commandline Interface', 'Core'], ['utils'],
|
||||
modules, mod_groups, max_module_calls)
|
||||
_diagram_groups(['Timeline', 'Core'], ['utils'],
|
||||
modules, mod_groups, max_module_calls)
|
||||
_diagram_groups(['Web Interface', 'Core'], ['utils'],
|
||||
modules, mod_groups, max_module_calls)
|
||||
_diagram_groups(['Web Interface Columns', 'Core'], ['utils'],
|
||||
modules, mod_groups, max_module_calls)
|
||||
_diagram_groups(['Core'], [],
|
||||
modules, mod_groups, max_module_calls)
|
||||
_diagram_groups(['ActivityPub'], [],
|
||||
modules, mod_groups, max_module_calls)
|
||||
_diagram_groups(['ActivityPub', 'Core'], ['utils'],
|
||||
modules, mod_groups, max_module_calls)
|
||||
_diagram_groups(['ActivityPub', 'Security'], ['utils'],
|
||||
modules, mod_groups, max_module_calls)
|
||||
_diagram_groups(['Core', 'Security'], ['utils'],
|
||||
_diagram_groups(['Commandline Interface', 'Daemon'], ['utils'],
|
||||
modules, mod_groups, max_module_calls)
|
||||
_diagram_groups(['Timeline', 'Security'], ['utils'],
|
||||
modules, mod_groups, max_module_calls)
|
||||
_diagram_groups(['Web Interface', 'Accessibility'],
|
||||
['utils', 'webapp_utils'],
|
||||
modules, mod_groups, max_module_calls)
|
||||
_diagram_groups(['Core', 'Accessibility'], ['utils'],
|
||||
_diagram_groups(['Daemon', 'Accessibility'], ['utils'],
|
||||
modules, mod_groups, max_module_calls)
|
||||
_diagram_groups(['Timeline', 'Daemon Timeline', 'Daemon'],
|
||||
['utils'], modules, mod_groups, max_module_calls)
|
||||
_diagram_groups(['Web Interface', 'Core', 'Daemon'], ['utils'],
|
||||
modules, mod_groups, max_module_calls)
|
||||
_diagram_groups(['Web Interface Columns', 'Core', 'Daemon'], ['utils'],
|
||||
modules, mod_groups, max_module_calls)
|
||||
_diagram_groups(['Daemon'], ['utils'],
|
||||
modules, mod_groups, max_module_calls)
|
||||
_diagram_groups(['Core', 'Daemon', 'Daemon Login', 'Security'],
|
||||
['daemon_utils', 'utils', 'daemon_post',
|
||||
'daemon_head', 'flags'],
|
||||
modules, mod_groups, max_module_calls)
|
||||
_diagram_groups(['ActivityPub'], ['utils'],
|
||||
modules, mod_groups, max_module_calls)
|
||||
_diagram_groups(['ActivityPub', 'Daemon'], ['utils'],
|
||||
modules, mod_groups, max_module_calls)
|
||||
_diagram_groups(['ActivityPub', 'Security'], ['utils'],
|
||||
modules, mod_groups, max_module_calls)
|
||||
_diagram_groups(['Core', 'Security'], ['utils'],
|
||||
modules, mod_groups, max_module_calls)
|
||||
|
||||
|
||||
|
|