blocksoft/peers.py

43 líneas
852 B
Python

2023-04-13 18:01:18 +02:00
from app.libraries.setup import Setup
from app.libraries.database import Database
from app.libraries.peers import Peers
from app.libraries.nodeinfo import Nodeinfo
import ray
2022-08-21 20:00:02 +02:00
2023-04-13 18:01:18 +02:00
ray.init(num_cpus = 25) # Specify this system CPUs.
2022-08-21 20:00:02 +02:00
2023-04-13 18:01:18 +02:00
@ray.remote
def peerapi(peer):
2022-08-21 20:00:02 +02:00
2023-04-13 18:01:18 +02:00
api = peers.getapi(peer) # get peer nodeinfo's URL
2022-08-21 20:00:02 +02:00
2023-04-13 18:01:18 +02:00
if api != '':
2022-08-21 20:00:02 +02:00
try:
2023-04-13 18:01:18 +02:00
server, software = nd.getdata(peer, api)
2022-08-21 20:00:02 +02:00
2023-04-13 18:01:18 +02:00
db.write_server(peer, api, software)
2022-08-21 20:00:02 +02:00
2023-04-13 18:01:18 +02:00
print(f'server: {peer}, api: {api}, software: {software}')
2022-08-21 20:00:02 +02:00
2023-04-13 18:01:18 +02:00
except:
2022-08-21 20:00:02 +02:00
pass
if __name__ == '__main__':
2023-04-13 18:01:18 +02:00
db = Database()
2022-08-21 20:00:02 +02:00
2023-04-13 18:01:18 +02:00
setup = Setup()
2022-08-21 20:00:02 +02:00
2023-04-13 18:01:18 +02:00
peers = Peers()
2022-08-21 20:00:02 +02:00
2023-04-13 18:01:18 +02:00
nd = Nodeinfo()
2022-08-21 20:00:02 +02:00
2023-04-13 18:01:18 +02:00
peers_list = peers.getpeers(setup.mastodon_hostname) #get peers from Mastodon host
2022-08-21 20:00:02 +02:00
2023-04-13 18:01:18 +02:00
if peers_list != None:
2022-08-21 20:00:02 +02:00
2023-04-13 18:01:18 +02:00
ray.get([peerapi.remote(peer) for peer in peers_list])