use fp symbol instead, merge master changes before merging back to improve circles
commit
0059c91b06
|
@ -1,4 +1,4 @@
|
|||
urllib3==1.25.7
|
||||
urllib3==1.25.8
|
||||
requests==2.22.0
|
||||
PyNaCl==1.3.0
|
||||
gevent==1.4.0
|
||||
|
@ -8,7 +8,7 @@ stem==1.8.0
|
|||
deadsimplekv==0.2.0
|
||||
unpaddedbase32==0.2.0
|
||||
streamedrequests==1.0.0
|
||||
jinja2==2.10.3
|
||||
jinja2==2.11.0
|
||||
toomanyobjs==1.1.0
|
||||
niceware==0.2.1
|
||||
psutil==5.6.7
|
||||
|
|
|
@ -104,9 +104,9 @@ itsdangerous==1.1.0 \
|
|||
--hash=sha256:321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19 \
|
||||
--hash=sha256:b12271b2047cb23eeb98c8b5622e2e5c5e9abd9784a153e9d8ef9cb4dd09d749 \
|
||||
# via flask
|
||||
jinja2==2.10.3 \
|
||||
--hash=sha256:74320bb91f31270f9551d46522e33af46a80c3d619f4a4bf42b3164d30b5911f \
|
||||
--hash=sha256:9fe95f19286cfefaa917656583d020be14e7859c6b0252588391e47db34527de
|
||||
jinja2==2.11.0 \
|
||||
--hash=sha256:6e7a3c2934694d59ad334c93dd1b6c96699cf24c53fdb8ec848ac6b23e685734 \
|
||||
--hash=sha256:d6609ae5ec3d56212ca7d802eda654eaf2310000816ce815361041465b108be4
|
||||
markupsafe==1.1.1 \
|
||||
--hash=sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473 \
|
||||
--hash=sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161 \
|
||||
|
@ -195,9 +195,9 @@ toomanyobjs==1.1.0 \
|
|||
unpaddedbase32==0.2.0 \
|
||||
--hash=sha256:4aacee75f8fd6c8cf129842ecba45ca59c11bfb13dae19d86f32b48fa3715403 \
|
||||
--hash=sha256:b7b780c31d27d55e66abf6c221216a35690ee8892c2daacff7f2528e229bd9c3
|
||||
urllib3==1.25.7 \
|
||||
--hash=sha256:a8a318824cc77d1fd4b2bec2ded92646630d7fe8619497b142c84a9e6f5a7293 \
|
||||
--hash=sha256:f3c5fd51747d450d4dcf6f923c81f78f811aab8205fda64b0aba34a4e48b0745
|
||||
urllib3==1.25.8 \
|
||||
--hash=sha256:2f3db8b19923a873b3e5256dc9c2dedfa883e33d87c690d9c7913e1f40673cdc \
|
||||
--hash=sha256:87716c2d2a7121198ebcb7ce7cccf6ce5e9ba539041cfbaeecfb641dc0bf6acc
|
||||
werkzeug==0.15.5 \
|
||||
--hash=sha256:87ae4e5b5366da2347eb3116c0e6c681a0e939a33b2805e2c0cbd282664932c4 \
|
||||
--hash=sha256:a13b74dd3c45f758d4ebdb224be8f1ab8ef58b3c0ffc1783a8c7d9f4f50227e6 \
|
||||
|
|
|
@ -15,7 +15,6 @@ import onionrcrypto
|
|||
from communicator import onlinepeers
|
||||
if TYPE_CHECKING:
|
||||
from communicator import OnionrCommunicatorDaemon
|
||||
|
||||
"""
|
||||
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
|
||||
|
|
|
@ -43,6 +43,7 @@ DATABASE_LOCK_TIMEOUT = 60
|
|||
|
||||
# Block creation anonymization requirements
|
||||
MIN_BLOCK_UPLOAD_PEER_PERCENT = 0.1
|
||||
MIN_SHARE_WAIT_DELAY_SECS = 5
|
||||
|
||||
WSGI_SERVER_REQUEST_TIMEOUT_SECS = 120
|
||||
|
||||
|
|
|
@ -6,6 +6,8 @@ import os
|
|||
import subprocess
|
||||
|
||||
from flask import Response, Blueprint, request, send_from_directory, abort
|
||||
from gevent import spawn
|
||||
from gevent import sleep
|
||||
import unpaddedbase32
|
||||
|
||||
from httpapi import apiutils
|
||||
|
@ -71,8 +73,8 @@ class PrivateEndpoints:
|
|||
raise ValueError('block hash needs to be alpha numeric')
|
||||
name = reconstructhash.reconstruct_hash(name)
|
||||
if name in client_api.publicAPI.hideBlocks:
|
||||
client_api.publicAPI.hideBlocks.remove(name)
|
||||
return Response("removed")
|
||||
spawn(_delay_wait_for_share_block_removal)
|
||||
return Response("will be removed")
|
||||
else:
|
||||
client_api.publicAPI.hideBlocks.append(name)
|
||||
return Response("added")
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
from . import insert
|
||||
from .insert import time_insert
|
||||
|
||||
insert = insert.insert_block
|
||||
insert = insert.insert_block
|
||||
time_insert = time_insert
|
|
@ -0,0 +1,4 @@
|
|||
from . import main, timeinsert
|
||||
|
||||
insert_block = main.insert_block
|
||||
time_insert = timeinsert.time_insert
|
|
@ -24,7 +24,7 @@ from gevent import spawn
|
|||
|
||||
from onionrutils import bytesconverter, epoch
|
||||
import filepaths, onionrstorage
|
||||
from . import storagecounter
|
||||
from .. import storagecounter
|
||||
from onionrplugins import onionrevents as events
|
||||
from etc import powchoice, onionrvalues
|
||||
import config, onionrcrypto as crypto, onionrexceptions
|
|
@ -0,0 +1,51 @@
|
|||
"""Onionr - Private P2P Communication.
|
||||
|
||||
Wrapper to insert blocks with variable delay
|
||||
"""
|
||||
from . import main
|
||||
"""
|
||||
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 time_insert(*args, **kwargs):
|
||||
"""Block insert wrapper to allow for insertions independent of mixmate.
|
||||
|
||||
Takes exact args as insert_block, with additional keyword:
|
||||
delay=n; where n=seconds to tell initial nodes to delay share for.
|
||||
|
||||
defaults to 0 or previously set value in current block meta
|
||||
"""
|
||||
try:
|
||||
kwargs['meta']
|
||||
except KeyError:
|
||||
kwargs['meta'] = {}
|
||||
|
||||
try:
|
||||
delay = int(kwargs['meta']['dly'])
|
||||
except KeyError:
|
||||
delay = 0
|
||||
try:
|
||||
delay = kwargs['delay']
|
||||
del kwargs['delay']
|
||||
except KeyError:
|
||||
delay = 0
|
||||
|
||||
# Ensure delay >=0
|
||||
if delay < 0:
|
||||
raise ValueError('delay cannot be less than 0')
|
||||
|
||||
kwargs['meta']['dly'] = delay
|
||||
|
||||
return main.insert_block(*args, **kwargs)
|
|
@ -8,6 +8,7 @@
|
|||
Friends
|
||||
</title>
|
||||
<link rel='shortcut icon' type='image/ico' href='/shared/images/favicon.ico'>
|
||||
<link rel="stylesheet" href="/shared/fontawesome-free-5.10.2/css/all.min.css">
|
||||
<link rel='stylesheet' href='/shared/main/PNotifyBrightTheme.css'>
|
||||
<link rel="stylesheet" href="/gettheme">
|
||||
<link rel='stylesheet' href='/friends/style.css'>
|
||||
|
@ -61,7 +62,9 @@
|
|||
<div class="field">
|
||||
<div class="field has-addons">
|
||||
<p class="control">
|
||||
<a class="button is-static">Identity</a>
|
||||
<a class="button is-static">
|
||||
<i class="fas fa-fingerprint"></i>
|
||||
</a>
|
||||
</p>
|
||||
<p class="control is-expanded">
|
||||
<input id="myPub" class="input myPub" type="text" readonly>
|
||||
|
|
|
@ -65,7 +65,9 @@
|
|||
<div class="field">
|
||||
<div class="field has-addons">
|
||||
<p class="control">
|
||||
<a class="button is-static">Identity</a>
|
||||
<a class="button is-static">
|
||||
<i class="fas fa-fingerprint"></i>
|
||||
</a>
|
||||
</p>
|
||||
<p class="control is-expanded">
|
||||
<input id="myPub" class="input myPub" type="text" readonly>
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env python3
|
||||
import unittest, sys
|
||||
sys.path.append(".")
|
||||
sys.path.append("src/")
|
||||
|
||||
from onionrblocks import time_insert
|
||||
from onionrblocks import onionrblockapi
|
||||
|
||||
class TestTimeInsert(unittest.TestCase):
|
||||
def test_time_insert_none(self):
|
||||
bl = time_insert('test')
|
||||
self.assertTrue(bl)
|
||||
bl = onionrblockapi.Block(bl)
|
||||
self.assertIs(bl.bmetadata['dly'], 0)
|
||||
|
||||
def test_time_insert_10(self):
|
||||
bl = time_insert('test', delay=10)
|
||||
self.assertTrue(bl)
|
||||
bl = onionrblockapi.Block(bl)
|
||||
self.assertIs(bl.bmetadata['dly'], 10)
|
||||
|
||||
def test_negative(self):
|
||||
self.assertRaises(ValueError, time_insert, 'test', delay=-1)
|
||||
self.assertRaises(ValueError, time_insert, 'test', delay=-10)
|
||||
|
||||
|
||||
|
||||
unittest.main()
|
Loading…
Reference in New Issue