Skip to content

Instantly share code, notes, and snippets.

@okay-type
Created April 17, 2025 18:25
Show Gist options
  • Save okay-type/68e2ef97e91161fbdfb1ecdd2f71fab7 to your computer and use it in GitHub Desktop.
Save okay-type/68e2ef97e91161fbdfb1ecdd2f71fab7 to your computer and use it in GitHub Desktop.
random number proofer
from mojo.subscriber import Subscriber, WindowController
from mojo.subscriber import registerRoboFontSubscriber, unregisterRoboFontSubscriber, listRegisteredSubscribers
from mojo.UI import CurrentSpaceCenter, OpenSpaceCenter
import ezui
from random import randint
# based on a EvB snippet
class keno(Subscriber, WindowController):
debug = True
def build(self):
content = """
! 🎲 @keno
"""
descriptionData = dict(
keno=dict(
alignment='center'
),
)
self.w = ezui.EZWindow(
title='Keno',
size=(200, 'auto'),
content=content,
descriptionData=descriptionData,
autosaveName='keno',
controller=self
)
self.w.open()
self.sc = CurrentSpaceCenter()
if self.sc is None and CurrentFont() is not None:
self.sc = OpenSpaceCenter(CurrentFont())
def started(self):
cg = None
if CurrentGlyph():
cg = CurrentGlyph().name
self.keno(cg)
def spaceCenterWillClose(self, event):
if event['spaceCenter'] == self.sc:
self.w.close()
def windowWillClose(self, sender):
try:
self.sc.setPre('')
self.sc.setSuffix(None)
except:
return
self.destroy()
# registered_subscribers = listRegisteredSubscribers(subscriberClassName='keno')
# if len(registered_subscribers) > 0:
# for target_subscriber in registered_subscribers:
# unregisterRoboFontSubscriber(target_subscriber)
def roboFontDidSwitchCurrentGlyph(self, info):
cg = None
g = info['glyph']
if g is not None:
cg = g.name
self.keno(cg)
def keno(self, cg=None):
suffix = None
if cg is not None and '.' in cg:
suffix = '.'+cg.split('.')[1]
self.sc.setSuffix(suffix)
# self.sc.setPre(f'{randint(0,9)}')
if cg is None:
cg = ''
self.sc.setPre(cg)
self.sc.setRaw(''.join([f'{randint(0,9)}' for v in range(150)]))
registerRoboFontSubscriber(keno)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment