started work on flow plugin
This commit is contained in:
parent
ba1b154f52
commit
f918ae9b9c
@ -177,6 +177,7 @@ class OnionrCommunicatorDaemon:
|
||||
logger.info('Block passed proof, saving.')
|
||||
self._core.setData(content)
|
||||
self._core.addToBlockDB(blockHash, dataSaved=True)
|
||||
self._core.utils.processBlockMetadata(blockHash) # caches block metadata values to block database
|
||||
else:
|
||||
logger.warn('POW failed for block ' + blockHash)
|
||||
else:
|
||||
|
@ -239,6 +239,7 @@ class Core:
|
||||
dataSaved - if the data has been saved for the block
|
||||
sig - optional signature by the author (not optional if author is specified)
|
||||
author - multi-round partial sha3-256 hash of authors public key
|
||||
dateClaimed - timestamp claimed inside the block, only as trustworthy as the block author is
|
||||
'''
|
||||
if os.path.exists(self.blockDB):
|
||||
raise Exception("Block database already exists")
|
||||
@ -252,7 +253,8 @@ class Core:
|
||||
dataFound int,
|
||||
dataSaved int,
|
||||
sig text,
|
||||
author text
|
||||
author text,
|
||||
dateClaimed int
|
||||
);
|
||||
''')
|
||||
conn.commit()
|
||||
@ -658,7 +660,7 @@ class Core:
|
||||
sets info associated with a block
|
||||
'''
|
||||
|
||||
if key not in ('dateReceived', 'decrypted', 'dataType', 'dataFound', 'dataSaved', 'sig', 'author'):
|
||||
if key not in ('dateReceived', 'decrypted', 'dataType', 'dataFound', 'dataSaved', 'sig', 'author', 'dateClaimed'):
|
||||
return False
|
||||
|
||||
conn = sqlite3.connect(self.blockDB)
|
||||
@ -742,6 +744,8 @@ class Core:
|
||||
self.addToBlockDB(retData, selfInsert=True, dataSaved=True)
|
||||
self.setBlockType(retData, meta['type'])
|
||||
|
||||
if retData != False:
|
||||
events.event('insertBlock', onionr = None, threaded = False)
|
||||
return retData
|
||||
|
||||
def introduceNode(self):
|
||||
|
@ -245,6 +245,13 @@ class OnionrUtils:
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
|
||||
def processBlockMetadata(self, blockHash):
|
||||
'''
|
||||
Read metadata from a block and cache it to the block database
|
||||
'''
|
||||
myBlock = Block(myBlock, self._core)
|
||||
|
||||
|
||||
def getBlockDBHash(self):
|
||||
'''
|
||||
|
5
onionr/static-data/default-plugins/flow/info.json
Normal file
5
onionr/static-data/default-plugins/flow/info.json
Normal file
@ -0,0 +1,5 @@
|
||||
{
|
||||
"name" : "flow",
|
||||
"version" : "1.0",
|
||||
"author" : "onionr"
|
||||
}
|
47
onionr/static-data/default-plugins/flow/main.py
Normal file
47
onionr/static-data/default-plugins/flow/main.py
Normal file
@ -0,0 +1,47 @@
|
||||
'''
|
||||
Onionr - P2P Microblogging Platform & Social network
|
||||
|
||||
This default plugin handles "flow" messages (global chatroom style communication)
|
||||
'''
|
||||
'''
|
||||
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/>.
|
||||
'''
|
||||
|
||||
# Imports some useful libraries
|
||||
import logger, config
|
||||
from onionrblockapi import Block
|
||||
|
||||
plugin_name = 'flow'
|
||||
|
||||
class OnionrFlow:
|
||||
def __init__(self):
|
||||
logger.info("HELLO")
|
||||
return
|
||||
|
||||
|
||||
|
||||
def on_init(api, data = None):
|
||||
'''
|
||||
This event is called after Onionr is initialized, but before the command
|
||||
inputted is executed. Could be called when daemon is starting or when
|
||||
just the client is running.
|
||||
'''
|
||||
|
||||
# Doing this makes it so that the other functions can access the api object
|
||||
# by simply referencing the variable `pluginapi`.
|
||||
global pluginapi
|
||||
pluginapi = api
|
||||
api.commands.register(['flow'], OnionrFlow)
|
||||
api.commands.register_help('flow', 'Open the flow messaging interface')
|
||||
return
|
Loading…
Reference in New Issue
Block a user