% % process the xact directory % % read the basic incoming info % xactphase xactinfo _Camera.Phase any? { _Xact !Xact.Ref _Aamg.ContrB { pop % % this is a builder, bypass thumbing % false } { % % this is not a builder, check for thumbnail-ready images % "///// " &_Xact log)( } ifelse { % % thumb process was found for the phase, exit % } { % % non-thumb phase, check for main comm phases % _Camera.Phase "<<<>>>" log)( < |Analyzed % % if not a Builder, go on to making tack % _Aamg.ContrB not { _Xact *xactmmtx _Shooter.Twi asc 0x60 lt { % % this is a true MMS, ask how to handle it % jpeg analyzed properly, create or reuse the tack % % must get the type variation from user as wait % "Please select how to process your photo, reply text to this number. Example: reply with e caption for object droput, framed, with caption Example: reply with b caption for a normal framed photo, with caption " !Customer.Message "ThTypeof" *custvirz dup !Xact dup !Cust.Xact % % create the await flag for this phone number/subject % empty "Cust.Xact" sval _Shooter.Subject &"_await" text!subj "Await" *shootern } { % % pseudo mms for text processing % must get the variation from user as wait % "Please select font and color, reply text to this number. For the picture fonts, only need to send the letter. Example: reply with h8 for the script font in light blue Example: reply with c for the clown picture font " !Customer.Message "ThChoose" *custvirz dup !Xact dup !Cust.Xact % % create the await flag for this phone number/subject % empty "Cust.Xact" sval _Shooter.Subject &"_await" text!subj "Await" *shootern } ifelse !Xact } { } ifelse false |Test "upregy" log# *camezflr "Response" *shootern false |Ready % % if not a Builder, combine all info for next step decision % % check for a subject, if none, see if we can assign a subject % for this xact % *custimon _Aamg.ContrB not { %%% *xactsess *xactsubj { % % have subject, set up for thumbing process % "Subject" *shootern } { % % no subject yet, detect if MMS type of message, % if the subject is known, inserted into the xact % _Camera.Original "_MMS_" found? { % % implant the MMS subject % dup term3 dup !Shooter.Subject "mmrdysubj" log)( !Subject *xactosub _Xact.Ref !Xact % % immediate reflection of receiving image % stay at this stage for next route for image % *custwlrg } if pop } ifelse } if false |Subject % % if not a Builder, this xact now has a subject % _Aamg.ContrB not { % % now a subject has been attached to this xact % create or re-create the galleries for this subject % _Xact *xactlnup "lnup" log)( !Xact % % route to commerce step or make thumbnails % "G.jpg" ofxact exists { % % already thumbed or thanked for reg, move to commerce step % to create the product commerce initial values % *xactoutn "Prod" *shootern } { *custhnkq { % % thanks message of some type already sent % "Staged" *shootern } { _Xact % % send intermediate text % *xactmmtx _Shooter.Twi asc 0x60 lt { % % has image, true mms originally, tell user to wait % % this is a true MMS, ask how to handle it % jpeg analyzed properly, create or reuse the tack % % must get the type variation from user as wait % "Please select how to process your photo, reply text to this number. Example: reply with e caption for object droput, framed, with caption Example: reply with b caption for a normal framed photo, with caption " !Customer.Message "ThTypeof" *custvirz dup !Xact dup !Cust.Xact % % create the await flag for this phone number/subject % empty "Cust.Xact" sval _Shooter.Subject &"_await" text!subj "Await" *shootern dup !Xact %%% "Staged" *shootern } { % % pseudo mms for text processing % must get the variation from user as wait % "Please select font and color, reply to this number. For the picture fonts, only need to send the letter. Example: reply with h8 for the script font in light blue Example: reply with c for the clown picture font " !Customer.Message "ThChoose" *custvirz dup !Xact dup !Cust.Xact % % create the await flag for this phone number/subject % empty "Cust.Xact" sval _Shooter.Subject &"_await" text!subj "Await" *shootern } ifelse !Xact *custthnk % % must create thumbnails % } ifelse } ifelse } if true |Await % % tack is created or updated with xact, but must await choice response % *xactmmtx %%% *xactsubj pop empty !Cust.Xact _Shooter.Subject &"_await" text*subj _Cust.Xact any)? { % % still waiting for sms response % _Shooter.Caption any? { 1 left } { "h" } ifelse *custawat } { % % no await flag exists, can now go forward % "Ready" *shootern } ifelse false % % stack: xact-exit % |Staged % % tack is created or updated with xact % %%% *xactmmtx % % check for photoshop busy with another xact % _Xact.Process zero "ckstaged" log)( { % % photoshop available, process thumbnails % *camermak % % stack: xact-exit % } { false } ifelse |Thumbed % % if not a Builder, perform post-thumbed steps % _Aamg.ContrB not "contrbck" log)( { _Xact % % there is a subject, we can check for reg % % does the xact have registration data % % this xact of course has a subject, check if incoming registration % the _reg for the subject is used by the incoming monitor % to update the Tack % *custjreg dup !Xact *xactqreg "wxrgthreg" log)( { % % go ahead and build the composites, will route to commerce step % dup !Xact "Subject" *shootern } { % % wait for the response from customer % dup !Xact "Response" *shootern } ifelse !Xact } if false |Response % % if not a Builder, wait for response % _Aamg.ContrB not { % % monitor incoming session markers and web commands % check the incoming web messages folder for actions % that will be a registration % *xactsubj "resubj" log)( { % % there is a subject, we can check for reg % % does the xact have registration data % % this xact of course has a subject, check if incoming registration % the _reg for the subject is used by the incoming monitor % to update the Tack % *custjreg _Xact.Ref !Xact % % check for registered % *xactqreg "xqregresp" log)( { % % now registered % _Xact.Ref !Xact "Subject" *shootern } { % % not registered yet, remain at this stage until there is % } ifelse } if } if false |Prod % % if not a Builder, establish product basis for Customer % _Aamg.ContrB not { % % we have a subject, products have been built into sales % % ***Composite % *xactsubj "prsubj" log)( { % % there is a subject, we can check for reg % % does the xact have registration data % % this xact of course has a subject, check if incoming registration % the _reg for the subject is used by the incoming monitor % to update the Tack % *custjreg *xactqreg "xqregprod" log)( { % % registered, check for the final product made it through % _Xact.Ref !Xact "Gj.jpg" ofxact exists { "Post" *shootern } { % % do not have composite yet, create them % "Make" *shootern } ifelse } { % % not registered yet, remain at this stage until then % would be broken process flow % } ifelse } if } if false |Greening % % if not a Builder, perform greening % _Aamg.ContrB not { "gs\incoming.png" oflocal exists { +Camera.GreenCount 10 gt { "Greened" *shootern } if } if } if false |Greened % % if not a Builder, thumb with green drop % _Aamg.ContrB not { false !Camera.Greening _Xact.Process zero { *transacu "Thumbing" *shootern *camertim true } { false } ifelse } { false } ifelse |Make /* % % if a Builder or Comm, make the composite % _Aamg.ContrB _Aamg.ContrC or { */ % % make the green-screen template composite % for non-build machine % _Xact.Process zero _Aamg.Build and { % % insure building process does not hang up % "Building" *shootern % % place the properly sized extract from incoming image % created during thumb process into the template area % "Psm.jpg" dup ofxact exch oftem copyfile % % extract twi-route, ordinal in message, template, and caption % from MMS incoming original % *xactmmtx *camertim _Image.Gscreen { % % initiate the templating of green-screen png % *camerten } { % % initiate the templating of standard incoming jpg % *camertem } ifelse true } { % % waiting for photoshop availability, or not allowed to build % false } ifelse /* } { false } ifelse */ |Built /* % % if a Builder or Comm, make the template plates % _Aamg.ContrB _Aamg.ContrC or { */ _Aamg.Lcustom { % % custom landing generate, the composite plates have been built % _Xact.Process zero { % % insure template building process does not hang up % "Building" *shootern *camertim % % initiate the templating of vent incoming files % *camertev } { % % photoshop servicing another xact % } ifelse } { % % decide post build, leads downstream to customer composited message % _Aamg.ContrC { "Upload" *shootern } { _Aamg.ContrA { "Upcopy" *shootern } { "Uploaded" *shootern } ifelse } ifelse } ifelse /* } if */ false |Upcopy % % copy assets to public server % "AurT.gif" !Clup.Filer { _Clup.Filer any? not ? *mparcopy *camezfls } ifelse *mparchan "Uploaded" *shootern false |Upload % % start the upload to cloud sequence % % check for upload busy % _Cluq.Active _Clup.Xact nonzero or { } { % % do the basic tack and product generating and gathering of files % *tackmakr % % ready to upload this xact, initiate upload chain % "AurU.gif" !Clup.Filer _Xact !Clup.Xact "Uploading" *shootern } ifelse false |Uploading % % check for upload busy % _Clup.Xact _Xact eq _Clup.Xact _Tack eq or { "Upl " &_Clup.Xact &" " &_Xact &" " &_Clup.Filer &" " &_Cluq.Active log# } { % % done with this xact % "Uploaded" *shootern } ifelse false |Uploaded % % go to post build after customer composited message % _Xact "dustmf" log)( % % send customer message of fully composited % *xactoutv % % make sure we are at correct xact % "dustmh" log)( !Xact "Post" *shootern false |Post % % if not a Builder, monitor incoming session markers % _Aamg.ContrB not { % % await any post processing % % monitor incoming session markers and web commands % *custimon } if false |Captured % % check that the tree image asset has been loaded into texture que % _Aamg.Qdone { *custqlod % % now have at least one xact to load into tree textures % true !Aamg.Qpass "Queued" *shootern } { % % que has not finished loading tree textures % } ifelse false |Queued % % now queued into textures for tree % xact image has not been loaded into tree que for initial pass % _Aamg.Qload { % % must load into tree texture que, this is first pass % *custqlod } if false > not { % % not an intercepted camera phase % false } if } ifelse } { % % no camera phase text % false } ifelse "<<<" log)( % % stack: action-taken %