After coming late to the party, I found I missed a few levels. I wrote this to help.
from pyflarum import FlarumUser
from pyflarum.client.extensions import absolutely_all
u = FlarumUser(forum_url="https://box-stacker.artificialworlds.net/", extensions=[absolutely_all.AbsolutelyAllExtension])
done_str='solution by cf'
for discussions in u.absolutely_all_discussions():
for d in discussions:
full_discussion = d.get_full_data()
todo = True
is_level = False
for post in full_discussion.get_posts():
try:
if post['_parent_included'][0]['attributes']['displayName'] == 'levelsbot':
is_level = True
except KeyError:
pass
try:
html=post['data']['attributes']['contentHtml']
if done_str in html:
todo = False
except KeyError:
pass # not everything has contentHtml
if is_level:
print('{: >35} to do:{}'.format(full_discussion.title, todo))