added username plugin and api endpoint to get all contacts as opposed to just friends

This commit is contained in:
Kevin Froman 2021-01-18 04:35:28 +00:00
parent f74fd0d03d
commit 74db4d2d9d
9 changed files with 63 additions and 6 deletions

View File

@ -24,6 +24,15 @@ from coredb import keydb
friends = Blueprint('friends', __name__)
@friends.route('/friends/listall')
def list_all():
pubkey_list = {}
friend_list = contactmanager.ContactManager.list_friends(0)
for friend in friend_list:
pubkey_list[friend.publicKey] = {'name': friend.get_info('name')}
return json.dumps(pubkey_list)
@friends.route('/friends/list')
def list_friends():
pubkey_list = {}

View File

@ -252,8 +252,8 @@ class OnionrUser:
return True
@classmethod
def list_friends(cls):
def list_friends(cls, trust_level=1):
friendList = []
for x in keydb.listkeys.list_peers(trust=1):
for x in keydb.listkeys.list_peers(trust=trust_level):
friendList.append(cls(x))
return list(friendList)

View File

@ -1,5 +1,5 @@
{
"name" : "pms",
"version" : "0.1.2",
"version" : "0.1.3",
"author" : "onionr"
}

View File

@ -31,7 +31,7 @@ import notifier
locale.setlocale(locale.LC_ALL, '')
plugin_name = 'pms'
PLUGIN_VERSION = '0.1.2'
PLUGIN_VERSION = '0.1.3'
sys.path.insert(0, os.path.dirname(os.path.realpath(__file__)))
import sentboxdb, mailapi, loadinbox # import after path insert

View File

@ -240,7 +240,7 @@
<div id="sendMessage">
<div class="container">
<div class="field">
<label><i class="fas fa-user"></i> Select friend: <select id="friendSelect"></select></label>
<label><i class="fas fa-user"></i> Select contact: <select id="friendSelect"></select></label>
</div>
<form method="post" action="" id="sendForm" enctype="application/x-www-form-urlencoded">
<div class="field">

View File

@ -415,7 +415,7 @@ for (var i = 0; i < document.getElementsByClassName('refresh').length; i++){
document.getElementsByClassName('refresh')[i].style.float = 'right'
}
fetch('/friends/list', {
fetch('/friends/listall', {
headers: {
"token": webpass
}})

View File

@ -0,0 +1,5 @@
{
"name" : "usernames",
"version" : "0.0.0",
"author" : "onionr"
}

View File

@ -0,0 +1,42 @@
"""
Onionr - Private P2P Communication.
Preset Onionr usernames
"""
import locale
locale.setlocale(locale.LC_ALL, '')
from utils import identifyhome
from onionrusers import contactmanager
"""
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/>.
"""
plugin_name = 'usernames'
def on_onboard(api, data=None):
username_file = identifyhome.identify_home() + f'plugins/{plugin_name}/usernames.dat'
with open(username_file, 'r') as usernames:
username_and_keys = usernames.readlines()
for entry in username_and_keys:
username, key = entry.split(',')
username = username.strip()
key = key.strip()
user = contactmanager.ContactManager(key, saveUser=True)
user.set_info('name', username)

View File

@ -0,0 +1 @@
Kevin Froman,GM3E4VCUNLF5F7Y64STD2HEURG45U3NYPLBZBT3Z6YWOALJHZPPQ