adding more paid relays to avoid in inbox, optimizng wos test code

This commit is contained in:
Believethehype 2024-06-13 14:39:13 +02:00
parent fcf796b800
commit 5c0acd82a6
2 changed files with 48 additions and 44 deletions

View File

@ -43,12 +43,17 @@ AVOID_PAID_OUTBOX_RELAY_LIST = ["wss://nostrelay.yeghro.site", "wss://nostr.wine
"wss://nostr.thesamecat.io", "wss://nostr.plebchain.org", "wss://relay.noswhere.com", "wss://nostr.uselessshit.co",
"wss://bitcoiner.social", "wss://relay.stoner.com", "wss://nostr.l00p.org", "wss://relay.nostr.ro", "wss://nostr.kollider.xyz",
"wss://relay.valera.co", "wss://relay.austrich.net", "wss://relay.nostrich.de", "wss://nostr.azte.co", "wss://nostr-relay.schnitzel.world",
"wss://relay.nostriches.org", "wss://happytavern.co", "wss://onlynotes.lol", "wss://offchain.pub", "wss://purplepag.es", "wss://relay.plebstr.com"
"wss://poster.place/relay", "wss://relayable.org", "wss://bbb.santos.lol", "wss://relay.bitheaven.social", "wss://theforest.nostr1.com"
"wss://relay.nostriches.org", "wss://happytavern.co", "wss://onlynotes.lol", "wss://offchain.pub", "wss://purplepag.es", "wss://relay.plebstr.com",
"wss://poster.place/relay", "wss://relayable.org", "wss://bbb.santos.lol", "wss://relay.bitheaven.social", "wss://theforest.nostr1.com",
"wss://relay.nostrati.com", "wss://purplerelay.com", "wss://hist.nostr.land", "wss://creatr.nostr.wine", "ws://localhost:4869",
"wss://pyramid.fiatjaf.com", "wss://relay.nos.social", "wss://nostr.thank.eu"
]
RECONCILE_DB_RELAY_LIST = ["wss://relay.damus.io",
"wss://nostr.oxtr.dev", "wss://relay.nostr.bg",
"wss://relay.nostr.net", "wss://relay.primal.net"] # , "wss://relay.snort.social"]
if use_logger:
init_logger(LogLevel.ERROR)
@ -61,6 +66,8 @@ def build_db_scheduler(name, identifier, admin_config, options, image, descripti
dvm_config.SCHEDULE_UPDATES_SECONDS = update_rate # Every 10 minutes
dvm_config.UPDATE_DATABASE = update_db
dvm_config.LOGLEVEL = LogLevel.INFO
dvm_config.RECONCILE_DB_RELAY_LIST = RECONCILE_DB_RELAY_LIST
# Activate these to use a subscription based model instead
# dvm_config.SUBSCRIPTION_REQUIRED = True
# dvm_config.SUBSCRIPTION_DAILY_COST = 1

View File

@ -123,12 +123,10 @@ def write_to_csv(friends, file="friends222.csv"):
writer.writerow(row)
def main(user_key, create_csv, get_profile = False, remove_followings_from_set = False):
def main(user_key, depth, update_db, create_csv, get_profile=False, remove_followings_from_set=False):
file = "db/friends223.csv"
# make sure key is in hex format
if create_csv:
# clear previous file
try:
@ -137,8 +135,8 @@ def main(user_key, create_csv, get_profile = False, remove_followings_from_set =
except:
print("Creating new file")
# sync the database, this might take a while if it's empty or hasn't been updated in a long time
asyncio.run(sync_db())
if update_db:
asyncio.run(sync_db())
user_id = PublicKey.parse(user_key).to_hex()
user_friends_level1 = asyncio.run(analyse_users([user_id]))
@ -149,24 +147,23 @@ def main(user_key, create_csv, get_profile = False, remove_followings_from_set =
write_to_csv([me], file)
# for every npub we follow, we look at the npubs they follow (this might take a while)
friendlist2 = []
for friend in user_friends_level1:
for npub in friend.friends:
friendlist2.append(npub)
user_friends_level2 = asyncio.run(analyse_users(friendlist2))
write_to_csv(user_friends_level2, file)
friendlist3 = []
for friend in user_friends_level2:
for npub in friend.friends:
friendlist3.append(npub)
print(len(friendlist3))
user_friends_level3 = asyncio.run(analyse_users(friendlist3))
write_to_csv(user_friends_level3, file)
if depth >= 2:
friendlist2 = []
for friend in user_friends_level1:
for npub in friend.friends:
friendlist2.append(npub)
user_friends_level2 = asyncio.run(analyse_users(friendlist2))
write_to_csv(user_friends_level2, file)
if depth >= 3:
friendlist3 = []
for friend in user_friends_level2:
for npub in friend.friends:
friendlist3.append(npub)
print(len(friendlist3))
user_friends_level3 = asyncio.run(analyse_users(friendlist3))
write_to_csv(user_friends_level3, file)
df = pd.read_csv(file, sep=',')
df.info()
@ -183,32 +180,32 @@ def main(user_key, create_csv, get_profile = False, remove_followings_from_set =
for npub in user_friends_level1[0].friends:
friendlist.append(npub)
sorted_nodes = sorted([(node, pagerank) for node, pagerank in pr.items() if node not in friendlist], key=lambda x: pr[x[0]],
sorted_nodes = sorted([(node, pagerank) for node, pagerank in pr.items() if node not in friendlist],
key=lambda x: pr[x[0]],
reverse=True)[:50]
else:
sorted_nodes = sorted([(node, pagerank) for node, pagerank in pr.items()], key=lambda x: pr[x[0]],
reverse=True)[:50]
for node in sorted_nodes:
try:
pk = PublicKey.parse(node[0]).to_bech32()
except:
pk = node[0]
try:
pk = PublicKey.parse(node[0]).to_bech32()
except:
pk = node[0]
if get_profile:
name, nip05, lud16 = asyncio.run(getmetadata(node[0]))
print(name + " (" + pk + ") " + "," + str(node[1]))
else:
print(pk + "," + str(node[1]))
if get_profile:
name, nip05, lud16 = asyncio.run(getmetadata(node[0]))
print(name + " (" + pk + ") " + "," + str(node[1]))
else:
print(pk + "," + str(node[1]))
user_id = "99bb5591c9116600f845107d31f9b59e2f7c7e09a1ff802e84f1d43da557ca64"
#user_id = "npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z"
#user_id = "99bb5591c9116600f845107d31f9b59e2f7c7e09a1ff802e84f1d43da557ca64" #dbth
#user_id = "npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z" #vitor
user_id = "npub1l2vyh47mk2p0qlsku7hg0vn29faehy9hy34ygaclpn66ukqp3afqutajft" #pablo
fetch_profiles = True
create_csv = False
create_csv = True
remove_followings_from_set = True
main(user_id, create_csv, fetch_profiles, remove_followings_from_set)
depth = 2
update_db = False
main(user_id, depth, update_db, create_csv, fetch_profiles, remove_followings_from_set)