From 6f44921647da1c47207837a61ce5cfacf64bee1b Mon Sep 17 00:00:00 2001 From: Mark Veidemanis Date: Mon, 15 Aug 2022 00:36:36 +0100 Subject: [PATCH] Figure out the channel parsing logic --- modules/chankeep.py | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/modules/chankeep.py b/modules/chankeep.py index 7f955fe..eaef333 100644 --- a/modules/chankeep.py +++ b/modules/chankeep.py @@ -302,15 +302,16 @@ def keepChannels(net, listinfo, mean, sigrelay, relay): # newNums = modules.provision.provisionMultipleRelays(net, needed) # else: # newNums = [] - flist = [i[0] for i in listinfo] - if len(flist) > max_chans: - max_chans = len(flist) - 1 - chosen = sorted(flist, reverse=True, key=lambda x: x[1])[:max_chans] - chosen = [i[0] for i in chosen] + listinfo_sort = sorted(listinfo, reverse=True, key=lambda x: x[1]) + if len(listinfo_sort) > max_chans: + max_chans = len(listinfo_sort) - 1 - debug(f"keepChannels() {net}: joining {len(chosen)}/{len(flist)} channels") - trace(f"keepChannels() {net}: joining:{chosen}") - populateChans(net, chosen) + flist = [i[0] for i in listinfo_sort] + + flist = flist[:max_chans] + debug(f"keepChannels() {net}: joining {len(flist)}/{len(listinfo_sort)} channels") + trace(f"keepChannels() {net}: joining:{flist}") + populateChans(net, flist) else: # needed = sigrelay - len(getActiveRelays(net)) # if needed: @@ -318,16 +319,18 @@ def keepChannels(net, listinfo, mean, sigrelay, relay): # newNums = modules.provision.provisionMultipleRelays(net, needed) # else: # newNums = [] - siglist = [i for i in listinfo if int(i[1]) > mean] - if len(siglist) > max_chans: - max_chans = len(siglist) - 1 - chosen = sorted(siglist, reverse=True, key=lambda x: x[1])[:max_chans] - chosen = [i[0] for i in chosen] + listinfo_sort = sorted(listinfo, reverse=True, key=lambda x: x[1]) + if len(listinfo_sort) > max_chans: + max_chans = len(listinfo_sort) - 1 - debug(f"keepChannels() {net}: siglist:{siglist} max_chans:{max_chans} len_sig:{len(siglist)}") - debug(f"keepChannels() {net}: joining {len(chosen)}/{len(siglist)} channels") - trace(f"keepChannels() {net}: joining:{chosen}") - populateChans(net, chosen) + siglist = [i[0] for i in listinfo if int(i[1]) > mean] + + siglist = siglist[:max_chans] + + debug(f"keepChannels() {net}: siglist:{siglist} max_chans:{max_chans} len_sig:{len(listinfo_sort)}") + debug(f"keepChannels() {net}: joining {len(siglist)}/{len(listinfo_sort)} channels") + trace(f"keepChannels() {net}: joining:{siglist}") + populateChans(net, siglist) notifyJoin(net)