added site lister

master
Kevin Froman 2020-02-05 01:49:24 -06:00
parent 4487bf2806
commit 3456fae533
7 changed files with 47 additions and 4 deletions

View File

@ -2,7 +2,7 @@
rm -rf dist rm -rf dist
mkdir dist mkdir dist
mkdir dist/onionr/ mkdir dist/onionr/
cp -t dist/onionr/ -r docs static-data install src onionr.sh start-daemon.sh setprofile.sh cp -t dist/onionr/ -r docs static-data install src onionr.sh start-daemon.sh setprofile.sh requirements.txt requirements-notifications.txt
cp *.md dist/onionr/ cp *.md dist/onionr/
PIP_USER=false PIP_USER=false
export PIP_USER export PIP_USER

View File

@ -23,7 +23,7 @@ import filepaths
DENIABLE_PEER_ADDRESS = "OVPCZLOXD6DC5JHX4EQ3PSOGAZ3T24F75HQLIUZSDSMYPEOXCPFA" DENIABLE_PEER_ADDRESS = "OVPCZLOXD6DC5JHX4EQ3PSOGAZ3T24F75HQLIUZSDSMYPEOXCPFA"
PASSWORD_LENGTH = 25 PASSWORD_LENGTH = 25
ONIONR_TAGLINE = 'Private P2P Communication - GPLv3 - https://Onionr.net' ONIONR_TAGLINE = 'Private P2P Communication - GPLv3 - https://Onionr.net'
ONIONR_VERSION = '1.0.0' ONIONR_VERSION = '1.1.0'
ONIONR_VERSION_TUPLE = tuple(ONIONR_VERSION.split('.')) # (MAJOR, MINOR, VERSION) ONIONR_VERSION_TUPLE = tuple(ONIONR_VERSION.split('.')) # (MAJOR, MINOR, VERSION)
API_VERSION = '0' # increments of 1; only change when something fundamental about how the API works changes. This way other nodes know how to communicate without learning too much information about you. API_VERSION = '0' # increments of 1; only change when something fundamental about how the API works changes. This way other nodes know how to communicate without learning too much information about you.
MIN_PY_VERSION = 7 # min version of 7 so we can take advantage of non-cyclic type hints MIN_PY_VERSION = 7 # min version of 7 so we can take advantage of non-cyclic type hints

View File

@ -39,7 +39,7 @@ def find_site(user_id: str) -> Union[BlockHash, None]:
raise onionrexceptions.InvalidPubkey raise onionrexceptions.InvalidPubkey
found_site = None found_site = None
sites = blockmetadb.get_blocks_by_type('zsite') sites = blockmetadb.get_blocks_by_type('osite')
# Find site by searching all site blocks. eww O(N) ☹️, TODO: event based # Find site by searching all site blocks. eww O(N) ☹️, TODO: event based
for site in sites: for site in sites:

View File

@ -0,0 +1,37 @@
"""Onionr - Private P2P Communication.
Dumb listing of Onionr sites
"""
from coredb.blockmetadb import get_blocks_by_type
from onionrblocks.onionrblockapi import Block
import logger
"""
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
"""
def print_site_list():
"""Create a new MOTD message for the Onionr network."""
block_list = get_blocks_by_type('osite')
if not block_list:
logger.info('No sites saved right now', terminal=True)
for block in block_list:
block = Block(block)
if block.isSigned():
logger.info(block.signer.replace('=', ''), terminal=True)
else:
logger.info(block.hash, terminal=True)
print_site_list.onionr_help = "Dumbly list all Onionr sites currently saved" # type: ignore

View File

@ -18,6 +18,7 @@ from .. import runtimetestcmd # cmd to execute the runtime integration tests
from .. import motdcreator # cmd to generate new Onionr MOTDs from .. import motdcreator # cmd to generate new Onionr MOTDs
from .. import sitecreator # cmd to create multi-page sites from .. import sitecreator # cmd to create multi-page sites
from .. import togglebootstrap # cmd to toggle bootstrap file usage from .. import togglebootstrap # cmd to toggle bootstrap file usage
from ..listsites import print_site_list # cmd to list list ids
import onionrexceptions import onionrexceptions
from onionrutils import importnewblocks # func to import new blocks from onionrutils import importnewblocks # func to import new blocks
@ -59,6 +60,7 @@ def get_arguments() -> dict:
('addhtml', 'add-html'): filecommands.add_html, ('addhtml', 'add-html'): filecommands.add_html,
('addsite', 'add-site', ('addsite', 'add-site',
'update-site', 'updatesite'): sitecreator.create_multipage_site, 'update-site', 'updatesite'): sitecreator.create_multipage_site,
('listsites', 'list-sites'): print_site_list,
('addfile', 'add-file'): filecommands.add_file, ('addfile', 'add-file'): filecommands.add_file,
('get-file', 'getfile'): filecommands.get_file, ('get-file', 'getfile'): filecommands.get_file,
('export-block', 'exportblock'): exportblocks.export_block, ('export-block', 'exportblock'): exportblocks.export_block,

View File

@ -1 +1 @@
1580861160 1580888911

View File

@ -16,5 +16,9 @@ class OnionrTests(unittest.TestCase):
testargs = ["onionr.py", "version"] testargs = ["onionr.py", "version"]
with patch.object(sys, 'argv', testargs): with patch.object(sys, 'argv', testargs):
parser.register() parser.register()
def test_site_list(self):
testargs = ["onionr.py", "list-sites"]
with patch.object(sys, 'argv', testargs):
parser.register()
unittest.main() unittest.main()