Update for beem: huge performance improvements and bridge API support
## Repository
https://github.com/holgern/beem
![beem-logo](https://cdn.steemitimages.com/DQmcRrwLPSywSYMierfP6um6mejeMNGjN9Rxw7audJqTDgb/beem-logo)
[beem](https://github.com/holgern/beem) is a python library for STEEM and HIVE. The current version is 0.22.13.
There is also a discord channel for beem: https://discord.gg/4HM592V
The newest beem version can be installed by:
```
pip install -U beem
```
Check that you are using hive nodes. The following command
```
beempy updatenodes --hive
```
updates the nodelist and uses only hive nodes. The list of nodes can be checked with
```
beempy config
```
and
```
beempy currentnode
```
shows the currently connected node.
## Changelog for versions 0.22.13
* HiveSigner support added
* api link to steemconnect has been fixed
* change recovery account added to beempy
* hive node has been added
* add account get_notifications and mark_notifications_as_read
* beempy notifications has been added
* bridge api support added
* config storage improved and add get_default_config_storage, get_default_key_storage and get_default_token_storage
* list_all_subscriptions and get_account_posts added
* reduce number of performed api calls on Steem object creation
## Performance boost for beem
All integration tests are finishing now in
```
========== 469 passed, 27 skipped, 11 warnings in 1040.19s (0:17:20) ===========
```
which is an improvement of 49% (version 0.22.12 needed 1551 seconds).
This huge boost could be accomplished by reducing the number of API calls when creating the Steem object. When importing objects from beem, a `configStorage` object is no longer created during import. The config storage is now read during object creation with `get_default_config_storage`. This speeds up importing beem modules and read stored parameter only when needed.
These changes improves also the speed of all beempy commands.
## Bridge API
beem supports now parts of the bridge API. More functions to support the missing API calls will follow.
### notifications
```
beempy notifications holger80
```
prints a table with unread notifications.
```
+---------------------+------+-------------------------------------------+
| Date | Type | Message |
+---------------------+------+-------------------------------------------+
| 2020-04-06 10:15:57 | vote | @uwelang voted on your post ($0.23) |
| 2020-04-06 12:52:00 | vote | @steemcleaners voted on your post ($2.45) |
+---------------------+------+-------------------------------------------+
```
They can also marked as read with `-m`
```
beempy notifications -m holger80
```
which broadcasts notify custom_json.
### list all subscribtions
The account object has now a `list_all_subscriptions` functions which returns a list with all cummunities which the account has subscript.
### get_account_posts
The account object has now the `get_account_posts` function, which can be used to fetch all posts shown in the feed of the account.
### get_ranked_posts
A new class `RankedPosts` was added to `beem.comment` which can be used to receive ranked posts.
## Change recovery account with beempy
It is now possible to change the recovery account using beempy
```
beempy changerecovery -a holge80 recovery.account
```
## HiveSigner support was added
The following python example shows how to create a login link:
```
from beem.hivesigner import HiveSigner
hivesigner = HiveSigner(client_id="rewarding.app", scope="login", get_refresh_token=False)
hivesigner.get_login_url('https://rewarding.app/welcome')
```
returns
```
'https://hivesigner.com/oauth2/authorize?client_id=rewarding.app&redirect_uri=https%3A%2F%2Frewarding.app%2Fwelcome&scope=login'
```
The received token can then be used to check if a user was successfully entering its posting key in a python script:
```
try:
hivesigner.set_access_token(access_token)
name = hivesigner.me()["name"]
except:
print("Wrong token")
```
***
*If you like what I do, consider casting a vote for me as witness on [Hivesigner](https://hivesigner.com/sign/account-witness-vote?witness=holger80&approve=1) or on [PeakD](https://peakd.com/witnesses)*.
See: Update for beem: huge performance improvements and bridge API support by @holger80