def main(): global group, groups, config, threads global action, scroll, machine, bluescreen, user, carouselSign, imgLoader, concentric, flash, blend #################################################################### ################ JUST FOR COMMAND LINE !!!!! ###################### ### Below are used to run individual modules from command line # eg ./run.sh explosion or ./run.sh scroll "TEST" 2 #################################################################### threads = [] thrd = threading.Thread(target=stest.__main__) threads.append(thrd) thrd.start() if(configure()) : try: args = sys.argv #print(args) if(len(args) > 1): argument = args[1] if(len(args) > 2) : options = args[2] if(len(args) > 3) : options2 = args[3] if(len(args) > 4) : options3 = args[4] if(argument == "explosion") : actions.explosion() exit() elif(argument == "burst") : actions.burst() exit() elif(argument == "user") : user.userAnimator(250,2,True) exit() elif(argument == "cards") : machine.machineAnimator(10000) exit() elif(argument == "glitch") : actions.glitch() exit() elif(argument == "scroll") : if (options2 != "") : scroll.steps = int(options2) actions.drawBlanksFlag = False scroll.scrollMessage(options, True, False, "Left") exit() elif(argument == "present") : # e.g. spy sequence.py present "ASIF" 1 0 if (options2 != "") : dur = int(options2) if (options3 != "") : scroll.countLimit = int(options3) actions.drawBlanksFlag = False scroll.present(options,(), dur) exit() elif(argument == "stroop") : for i in range(0,10) : if(scroll.opticalOpposites) : scroll.opticalOpposites = False else : scroll.opticalOpposites = True stroopSequence() exit() elif(argument == "squares") : concentric.colorSwitch = False concentric.animator(60, "cols") exit() elif(argument == "sqrs") : sqrs.colorSwitch = False sqrs.animator(60, "cols") exit() elif(argument == "flash") : flash.colorSwitch = False flash.animator(100) exit() elif(argument == "blend") : blend.colorSwitch = False blend.animator(100) exit() elif(argument == "blue") : bluescreen.draw() exit() elif(argument == "pan") : imgLoader.action = "pan" imgLoader.countLimit = 1 imgLoader.start("",0,-1) exit() elif(argument == "play") : imgLoader.action = "play" imgLoader.countLimit = 100 imgLoader.xOffset = 0 imgLoader.yOffset = 0 imgLoader.start() elif(argument == "car") : carouselSign.go(options) ################################################### # ---------- Play the group sequence ---------- # ################################################### elif(argument == "seq") : group = groups[int(options)] runSequence() else : runSequence() except getopt.GetoptError as err: # print help information and exit: print ("Error:" + str(err))
def runSequence() : global group, groups global action, scroll, machine, bluescreen, user, carouselSign, imgLoader, concentric, flash, blend, sqrs global T1,T2,thrd lastAction = 0 try: # If there are more than one set of animations per group e.g. various # text sequences, "randomize" the selection and try to avoid repeating # the exact same one twice in a row ... if(len(group) > 1) : seq = int(random.uniform(1,30)) while (seq not in group and seq != lastAction) : seq = int(random.uniform(1,30)) else : seq = group[0] # try not to repeat lastAction = seq #print("running", group, len(group)) # --------------------------------------------------------------------------# # Force the checking of the status file -- sometimes the cron does not run # probably it seems due to higher CPU load etc ... # --------------------------------------------------------------------------# T2 = time.time() ''' # Commenting this ut in favor of dedicated off-button if((T2 - T1) > 15) : # Disabling the remote url checks threads = [] thrd = threading.Thread(target=off_signal.checker) threads.append(thrd) thrd.start() #print(threads) #off_signal.checker() T1 = time.time() ''' # ------- SCROLL ------------- if(seq == 1) : if(random.random() > .8) :actions.burst(10) scroll.scrollMessage("** PTGS ** GIFS ** JPEGS ** AVIs ** MOVs ** CODEZ ** CRACKS **", True, False, "Left") # ------- SCROLL ------------- elif(seq == 2) : if(random.random() > .8) : actions.explosion() scroll.scrollMessage("** FIGURATIVE ** ABSTRACT ** NO SOFTWARE **", True, False, "Left") # ------- SCROLL ------------- elif(seq == 3) : if(random.random() > .8) : actions.explosion() scroll.scrollMessage("** All USERS!! **", True, False, "Left") if(random.random() > .8) : scroll.scrollMessage("Hey there " + str(int(random.uniform(10000,99999))) + "asdfasdfasdsf", True, False, "Left") actions.explosion() # ------- SCROLL $$$$ ------------- elif(seq == 4) : if(random.random() > .8) : actions.explosion() numDolls = int(random.uniform(3,24)) strg = "" for n in range (3,numDolls) : strg += "$" scroll.scrollMessage(strg, True, False, getDirection()) # ------- STROOP STROOP ------------- elif (seq == 5) : numRuns = int(random.uniform(2,6)) for i in range(0,numRuns) : if(scroll.opticalOpposites) : scroll.opticalOpposites = False else : scroll.opticalOpposites = True stroopSequence() # ------- SCROLL ------------- elif (seq == 6) : if(random.random() > .8) : actions.burst(10) scroll.scrollMessage("<> THOUSANDS of COLORS <>", True, True, "Left") # ------- SCROLL ------------- elif(seq == 7) : if(random.random() > .8) : actions.burst(10) scroll.scrollMessage("** PTGS PTGS PTGS **", True, False, "Left") # ------- SCROLL ------------- elif(seq == 8) : if(random.random() > .8) : actions.burst(10) if(random.random() > .8) : actions.explosion() scroll.scrollMessage("** COLD AND HOT **", True, False, "Left") # ------- SCROLL ------------- elif(seq == 9) : if(random.random() > .8) : actions.explosion() scroll.scrollMessage("% % %%%% HUGE PROBABILITIES %%%% % %", True, False, "Left") # ------- * EMOTIES ------------- elif (seq == 10) : # reset blanks if (random.random() > .5) : actions.setBlanks() numDolls = int(random.uniform(30,60)) strg = "" scroll.fontSize -= 6 actions.drawCounterXOsFlag = True space = " " for n in range (2, numDolls) : strg += ":)"+space if (random.random() > .95) : strg += ":o"+space if (random.random() > .95) : strg += ";)"+space scroll.scrollMessage(strg, True, True, "Left") # After completition reset for other runs scroll.fontSize += 6 actions.drawCounterXOsFlag = False # ------- ASIF SCREEN ------------- elif (seq == 11) : scroll.countLimit = 5 scroll.present("ASIF",1) # ------- ASIF LOVE FEAR CAROUSEL ------- elif(seq == 12) : clrFlicker = carouselSign.useColorFLicker if(random.random() > .95) : carouselSign.useColorFLicker = True carouselSign.go(" **** HOT & COLD ****", 0) #carouselSign.useColorFlicker = clrFlicker carouselSign.useColorFLicker = False # ------- ASIF LOVE FEAR CAROUSEL noend * elif(seq == 13) : if(random.random() > .5) : carouselSign.useColorFLicker = True carouselSign.go(" ***** BEEF * CHICKEN * PORK * FISH * LAMB ****", -1) carouselSign.useColorFlicker = False # Animation only modules # ------- USER ------------- elif(seq == 14) : fixed = False duration = int(random.uniform(24,100)) if(random.random() > .4) : fixed = True user.userAnimator(duration, 2, fixed) # ------- CARDS / MACHINE ------------- elif(seq == 15) : machine.machineAnimator(830) # 430 if(random.random() > .9) : user.userAnimator(24) # ------- BLUE SCREEN ------------- elif(seq == 16) : bluescreen.draw() # ------- GLITCH SCREEN ------------- elif(seq == 17) : actions.glitch() # ------- CONCENTRICS ------------- elif (seq == 18) : concentric.colorSwitch = False concentric.animator(60) # ------- EXLPOSIONS ------------- elif (seq == 19) : actions.explosion() # ------- BLEND/FLASH ------------- elif(seq == 23) : blend.colorSwitch = False blend.animator(0) # Image Loading Modules # ------- DEFAULT PAN ------------- elif (seq == 20) : imgLoader.action = "pan" imgLoader.countLimit = 1 imgLoader.start("",0,-1) # ------- DEFAULT PLAY (FLAMES) ------- elif (seq == 21) : imgLoader.action = "play" imgLoader.countLimit = 500 imgLoader.xOffset = 0 imgLoader.yOffset = 0 imgLoader.start() #------ Plane Scrolling -------- elif (seq == 22) : imageScrollSeq() #------ Present Bad Pixel -------- elif (seq == 24 or seq == 25) : imageList = ['badpixel.gif'] imgLoader.debug = False imgLoader.action = "present" imgLoader.countLimit = 1 #int(random.uniform(10,100)) imgLoader.gifPlaySpeed = int(random.uniform(50,250)) imgLoader.brightnessFactor = random.uniform(.25,.75) imgLoader.brightnessFlux = True imgLoader.brightnessFluxRate = 240 imgLoader.xOffset = 0 imgLoader.yOffset = 0 img = 0 path = config.path + "/imgs" img = int(random.random() * len(imageList)) imgLoader.start(path + "/" + imageList[img],0,-1) except Exception, e: if(e == "KeyboardInterrupt") : print("Stopping") exit() else : # Weak.... pass