Page 1 of 2
Deliver to the *first folder* after watchfolder
Posted: Tue Mar 21, 2023 12:44 am
by artjuice
Hi
Need help and advice - how to deliver files to the first folder after watchfolder in wich they stored.
Or make variable %_original_path+n% - Folder name n-step forward begin from UNC-path.
What i mean:
1. Monitor->Folder:
\\server_1\share\%i_year%-%i_mon%-%i_mday%\CARD_1\PRIVATE\XDROOT\Clip - Clip0001....Clip00nn.mxf
\\server_1\share\%i_year%-%i_mon%-%i_mday%\CARD_2\PRIVATE\Clip - Clip0001....Clip00nn.mxf
\\server_1\share\%i_year%-%i_mon%-%i_mday%\CARD_3\Clip - Clip0001....Clip00nn.mxf
2. Encode to mp4
3. Deliver->Folder:
\\server_2\share\%i_year%-%i_mon%-%i_mday%\CARD_1 - Clip0001....Clip00nn.mp4
\\server_2\share\%i_year%-%i_mon%-%i_mday%\CARD_2 - Clip0001....Clip00nn.mp4
\\server_2\share\%i_year%-%i_mon%-%i_mday%\CARD_3 - Clip0001....Clip00nn.mp4
Re: Deliver to the *first folder* after watchfolder
Posted: Tue Mar 21, 2023 7:46 am
by emcodem
Hi artjuice,
welcome to the forum and thank you for using FFAStrans!
Very good question and not too easy to solve. The all time favourite "regex" is your friend
The following examples assume that you create a new user_variable and assign a value to it in populate variables processor.
This for example works if you always have at least 2 subfolders e.g. %watchfolder%\CARD1\Clips:
%s_my_toplevel_path% = $regext("%s_recursed_path%","\\(.*?)\\")
This example is a little bit more complex but it adds support for only 1 subfolder and multiple subfolders in one shot e.g. %watchfolder%\Clips OR %watchfolder%\CARD1\Clips:
%s_my_toplevel_path% = $regext("%s_recursed_path%","\\(.*?)\\|\\(.*?)$")
Then you set delivery processor prefix to "%s_my_toplevel_path% - "
Going on, you can skip one folder by prepending \\.*?\\, e.g. get the second subfolder after %watchfolder%
%s_my_toplevel_path% = $regext("%s_recursed_path%","\\.*?\\(.*?)\\")
Unfortunately this will only work with watchfolders and not using manual submit or API because s_recursed_path only has an actual value when the job has been started by watchfolder processor. What i do to speed up testing is in workflow properties, set sleep timer to 5.
Sidequestion: you really got clips in "private"? What kind of obscure misuse of the xdcam disc is this?
Re: Deliver to the *first folder* after watchfolder
Posted: Tue Mar 21, 2023 6:37 pm
by artjuice
Wow!)
@emcodem big thx! I will try it.
from my folder structure example, i think it the right choice:
emcodem wrote: ↑Tue Mar 21, 2023 7:46 am
Going on, you can skip one folder by prepending \\.*?\\, e.g. get the second subfolder after %watchfolder%
%s_my_toplevel_path% = $regext("%s_recursed_path%","\\.*?\\(.*?)\\")
emcodem wrote: ↑Tue Mar 21, 2023 7:46 am
Sidequestion: you really got clips in "private"? What kind of obscure misuse of the xdcam disc is this?
Hah, its just for an example that subfolders can be with different structure and depth
Re: Deliver to the *first folder* after watchfolder
Posted: Tue Mar 21, 2023 9:09 pm
by artjuice
Nope, it doesn't work for me.
Maybe I'm doing something wrong...
The result I get is:
all encoded video from CARD_1, 2, 3 goes to one folder \\server_2\share\%i_year%-%i_mon%-%i_mday%\0
Yep, it was my mistace, i thast somehow set varuable type as integer.
This work fine, thx:
emcodem wrote: ↑Tue Mar 21, 2023 7:46 am
This example is a little bit more complex but it adds support for only 1 subfolder and multiple subfolders in one shot e.g. %watchfolder%\Clips OR %watchfolder%\CARD1\Clips:
%s_my_toplevel_path% = $regext("%s_recursed_path%","\\(.*?)\\|\\(.*?)$")
Re: Deliver to the *first folder* after watchfolder
Posted: Tue Mar 21, 2023 11:00 pm
by emcodem
Glad you got it working, have fun working with FFAStrans
Re: Deliver to the *first folder* after watchfolder
Posted: Tue Mar 21, 2023 11:05 pm
by artjuice
Also, i have one more thing - need to do some protection in case of mistace copy, can you help?)
if files (Clip0001....Clip00nn) in a root of %watchfolder% deliver them to a specified folder "OTHERS":
%watchfolder%\ files Clip0001....Clip00nn
%watchfolder%\ CARD_1\PRIVATE\XDROOT\Clip - Clip0001....Clip00nn.mxf
%watchfolder%\ CARD_2\PRIVATE\Clip - Clip0001....Clip00nn.mxf
%watchfolder%\ CARD_3\Clip - Clip0001....Clip00nn.mxf
%deliverfolder%\ OTHERS\Clip0001....Clip00nn
%deliverfolder%\ CARD_1\Clip0001....Clip00nn.mxf
%deliverfolder%\ CARD_2\Clip0001....Clip00nn.mxf
%deliverfolder%\ CARD_3\Clip0001....Clip00nn.mxf
Re: Deliver to the *first folder* after watchfolder
Posted: Tue Mar 21, 2023 11:13 pm
by artjuice
Oh i can thast make monitor only root %watchfolder% deliver all to subfolder "OTHERS" and than one more monitor all subfolders ^_^
Nope, bad idie. I cant modifay %watchfolder%
Re: Deliver to the *first folder* after watchfolder
Posted: Tue Mar 21, 2023 11:45 pm
by emcodem
Sorry didnt understand why you would need to modify %watchfolder% for your 2 monitor approach.
Anyway, you could also use a conditional processor to check if %s_recursed_path% IS NOT (empty)... In that case, you connect 2 outputs on the conditional proc, one executes on success, the other one on error (right-click little green input box on the processor, set "on error")
Re: Deliver to the *first folder* after watchfolder
Posted: Wed Mar 22, 2023 1:25 am
by artjuice
emcodem wrote: ↑Tue Mar 21, 2023 11:45 pm
Sorry didnt understand why you would need to modify %watchfolder% for your 2 monitor approach.
Sorry, i mean i cant move, modify files & folders(only read permission) in folder that need to monitor
Re: Deliver to the *first folder* after watchfolder
Posted: Wed Mar 22, 2023 4:13 am
by artjuice
emcodem wrote: ↑Tue Mar 21, 2023 11:45 pm
Sorry didnt understand why you would need to modify %watchfolder% for your 2 monitor approach.
Anyway, you could also use a conditional processor to check if %s_recursed_path% IS NOT (empty)... In that case, you connect 2 outputs on the conditional proc, one executes on success, the other one on error (right-click little green input box on the processor, set "on error")
I cant breack this *wall*, dont understend how correctly process separatly files from watchfolder root to OTHERS and subfolders as is in my example(CARD_1,2,3, etc).
My WF: