finish filtering

This commit is contained in:
MeaTLoTioN 2022-05-23 20:31:29 +01:00
parent 5db9695406
commit f0deae9e4d

View File

@ -168,11 +168,20 @@ def footer():
write(cRESET)
def getBBS(o, s):
global barOffset
global barOffset, filter, fDictSortedLen
selectedBBS = ""
count = 0
tmpDict = sorted(dictNodelist, reverse=False)
fDict = {}
for BBS in tmpDict:
if filter.upper() in BBS.upper():
fDict[BBS] = {}
fDictSorted = sorted(fDict, reverse=False)
fDictSortedLen = len(fDictSorted)
for BBS in fDictSorted:
count += 1
if count == o+s:
selectedBBS = BBS
@ -182,16 +191,24 @@ def showList(offset = 0):
global barOffset
global highlightedBBS
global filter
global fDictSortedLen
#gotoxy(68,24); write("|19|11"+str(len(filter))+" ")
gotoxy(10,1); write("|19|11["+str(fDictSortedLen).ljust(4)+"]")
R = 1
count = 0
gotoxy(1,2)
write("|16|07")
tmpDict = sorted(dictNodelist, reverse=False)
fDict = {}
for BBS in tmpDict:
if not BBS.upper().startswith(filter):
pass
else:
if filter.upper() in BBS.upper():
fDict[BBS] = {}
fDictSorted = sorted(fDict, reverse=False)
fDictSortedLen = len(fDictSorted)
for BBS in fDictSorted:
count += 1
if count < offset+1:
pass
@ -217,7 +234,7 @@ def showList(offset = 0):
pad = " "*(79-len(stripmci(thisLine)))
writeln(thisLine.ljust(79)+pad+"|16|07")
if count < screenDepth-1:
for i in range(count, screenDepth):
for i in range(count+2, screenDepth):
gotoxy(1,i); write("|[K")
gotoxy(1,24); write("|19|11"+filter.ljust(18)[:18]+"|16|07")
@ -331,7 +348,7 @@ def showDetail(BBS):
write("|RS")
def mainMenu():
global barOffset, offset, highlightedBBS, filter
global barOffset, offset, highlightedBBS, filter, fDictSortedLen
maxOffset = len(dictNodelist)-screenDepth-1
finished = "no"
highlightedBBS = getBBS(barOffset, offset)
@ -347,6 +364,7 @@ def mainMenu():
offset -= 1
highlightedBBS = getBBS(barOffset, offset)
if char == KEY_DOWN:
if barOffset < fDictSortedLen:
if barOffset < screenDepth-2:
barOffset += 1
elif barOffset > screenDepth-3:
@ -362,7 +380,9 @@ def mainMenu():
barOffset = 1
highlightedBBS = getBBS(barOffset, offset)
if char == KEY_RIGHT or char == KEY_PGDN:
if offset < maxOffset - (screenDepth-3):
if fDictSortedLen < screenDepth-2:
barOffset = fDictSortedLen
elif offset < maxOffset - (screenDepth-3):
offset += screenDepth-3
else:
offset = maxOffset
@ -373,21 +393,25 @@ def mainMenu():
barOffset = 1
offset = 0
if char == KEY_END:
if fDictSortedLen < screenDepth-2:
barOffset = fDictSortedLen-1
else:
barOffset = screenDepth-2
offset = maxOffset
else:
if char == KEY_ENTER:
showDetail(highlightedBBS)
if char == KEY_ESCAPE:
elif char == KEY_ESCAPE:
finished = "yes"
if char == KEY_QMARK:
elif char == KEY_QMARK:
showHelp()
#if char == KEY_BSPACE:
# if len(filter) > 0:
# filter = filter[:-1]
#if char.isalnum() or char.isspace():
# if len(filter) < 18:
# filter = filter+char.upper()
elif char == KEY_BSPACE:
if len(filter) > 0:
filter = filter[:-1]
else:
if char.isalnum() or char.isspace():
if len(filter) < 18:
filter = filter+char.upper().replace(' ', '_')
return finished
menucmd('NA','sIftIng fOr gOld')