11

I'd like to ask a question about the facebook app (but it is not only one that does this). Currently, when I save any photo from facebook, it saves into /DCIM/Facebook.

Now I would not normally care where the photos are stored as long as Gallery app sorts them right, but the fact it goes into DCIM folder makes it behave wrongly with the Google Photos app.

Google Photos treat all those Facebook saved posts as "Camera photos" and tries to synchronize them to server, which I obviously do not want (I store photo albums on GPh, I do not need meme pics among them) and I cannot refine the synchronize options any more (only "Camera" is chosen to sync).

Is there a way to exclude those downloaded pictures from sync? Or make Facebook save its downloads to, say, /Pictures/Facebook ?

Same as above also happens in DCIM/Screenshots while clipping parts of screen.

Phone is Samsung Galaxy Note 4, Android 6.0.1

Thanks in advance

4
  • I use Folder Sync on the play store for syncing certain folders to the external SD,... You could sync them to a different backup every half hour, Deleting the original after sync !... here Jul 17, 2016 at 10:03
  • I'll try that, at least the copying part would go away. but if someone have something more automatic (I have been manually clearing the folders until now) it would be appreciated
    – erewien
    Jul 17, 2016 at 13:04
  • FolderSync has an automatic interval, And a instant sync... It watches the folder for changes and sync's then Jul 17, 2016 at 13:51
  • The way I found around this was to install an app like 'savetofilesystem', 'save to SD card' or, 'save to file', then instead of using Facebook's 'save to phone' feature, I would use the 'share external' feature to share the image to the correct folder via one of those apps.
    – dt192
    Sep 5, 2020 at 11:54

3 Answers 3

9

I had EXACTLY the same problem. I couldn't find a solution else where. The only solution was to use a .nomedia file in the /sdcard/DCIM/Facebook directory and moving the *.jpgs to another folder. I had made a Tasker task referring to a reddit post in /r/tasker. Here is the description and the XML for importing it. You have to create the %destpart and add a .nomedia in %sourcepath for it to work. You can run this task in a profile as an exit task for Facebook and as an entry task for other messenger apps like Telegram/Whatsapp, etc. so you get your memes right!

The Meme Mover (3)
A1: Variable Set [ Name:%sourcepath To:/sdcard/DCIM/Facebook/ Recurse Variables:Off Do Maths:Off Append:Off ] 
A2: Variable Set [ Name:%destpath To:/sdcard/Pictures/Facebook/ Recurse Variables:Off Do Maths:Off Append:Off ] 
A3: Variable Set [ Name:%suffix To:(1) Recurse Variables:Off Do Maths:Off Append:Off ] 
A4: Variable Set [ Name:%counter To:0 Recurse Variables:Off Do Maths:On Append:Off ] 
A5: List Files [ Dir:%sourcepath Match:*.jpg/*.png/*.jpeg/*.gif/*.3gp Include Hidden Files:Off Use Root:Off Sort Select:Alphabetic Variable:%filestomove ] 
A6: For [ Variable:%thispathfile Items:%filestomove() ] 
A7: Variable Split [ Name:%thispathfile Splitter:/ Delete Base:Off ] 
A8: Variable Set [ Name:%len To:%thispathfile(#) Recurse Variables:Off Do Maths:Off Append:Off ] 
A9: Variable Set [ Name:%filename To:%thispathfile(%len) Recurse Variables:Off Do Maths:Off Append:Off ] 
A10: Variable Clear [ Name:%exists Pattern Matching:Off ] 
A11: Test File [ Type:Type Data:%destpath%filename Store Result In:%exists Use Root:Off Continue Task After Error:On ] 
A12: If [ %exists !Set ]
A13: Move [ From:%thispathfile To:%destpath%filename Use Root:Off ] 
A14: Scan Card [ File:%destpath%filename ] 
A15: Else 
A16: Variable Split [ Name:%filename Splitter:. Delete Base:Off ] 
A17: Variable Set [ Name:%filename1 To:%filename1%suffix Recurse Variables:Off Do Maths:Off Append:Off ] 
A18: Variable Join [ Name:%filename Joiner:. Delete Parts:Off ] 
A19: Move [ From:%thispathfile To:%destpath%filename Use Root:Off ] 
A20: Scan Card [ File:%destpath%filename ] 
A21: End If 
A22: Variable Add [ Name:%counter Value:1 Wrap Around:0 ] 
A23: End For 
A24: If [ %counter eq 0 ]
A25: [X] Flash [ Text:No memes? Sad. Long:On ] 
A26: Else If [ %counter eq 1 ]
A27: Flash [ Text:%counter meme moved! Long:On ] 
A28: Else 
A29: Flash [ Text:%counter memes moved! Long:On ] 

Remember to have .nomedia in %sourcepath

Here's the XML for direct import:

<TaskerData sr="" dvi="1" tv="4.9u4">
<Task sr="task3">
    <cdate>1489093858387</cdate>
    <edate>1489219027762</edate>
    <id>3</id>
    <nme>The Meme Mover</nme>
    <pri>100</pri>
    <Kid sr="Kid">
        <launchID>3</launchID>
        <pkg>me.regalstreak.movefb</pkg>
        <vnme>1.0</vnme>
    </Kid>
    <Action sr="act0" ve="7">
        <code>547</code>
        <Str sr="arg0" ve="3">%sourcepath</Str>
        <Str sr="arg1" ve="3">/sdcard/DCIM/Facebook/</Str>
        <Int sr="arg2" val="0"/>
        <Int sr="arg3" val="0"/>
        <Int sr="arg4" val="0"/>
    </Action>
    <Action sr="act1" ve="7">
        <code>547</code>
        <Str sr="arg0" ve="3">%destpath</Str>
        <Str sr="arg1" ve="3">/sdcard/Pictures/Facebook/</Str>
        <Int sr="arg2" val="0"/>
        <Int sr="arg3" val="0"/>
        <Int sr="arg4" val="0"/>
    </Action>
    <Action sr="act10" ve="7">
        <code>342</code>
        <se>false</se>
        <Int sr="arg0" val="4"/>
        <Str sr="arg1" ve="3">%destpath%filename</Str>
        <Str sr="arg2" ve="3">%exists</Str>
        <Int sr="arg3" val="0"/>
    </Action>
    <Action sr="act11" ve="7">
        <code>37</code>
        <ConditionList sr="if">
            <Condition sr="c0" ve="3">
                <lhs>%exists</lhs>
                <op>13</op>
                <rhs></rhs>
            </Condition>
        </ConditionList>
    </Action>
    <Action sr="act12" ve="7">
        <code>400</code>
        <Str sr="arg0" ve="3">%thispathfile</Str>
        <Str sr="arg1" ve="3">%destpath%filename</Str>
        <Int sr="arg2" val="0"/>
    </Action>
    <Action sr="act13" ve="7">
        <code>459</code>
        <Str sr="arg0" ve="3">%destpath%filename</Str>
    </Action>
    <Action sr="act14" ve="7">
        <code>43</code>
    </Action>
    <Action sr="act15" ve="7">
        <code>590</code>
        <Str sr="arg0" ve="3">%filename</Str>
        <Str sr="arg1" ve="3">.</Str>
        <Int sr="arg2" val="0"/>
    </Action>
    <Action sr="act16" ve="7">
        <code>547</code>
        <Str sr="arg0" ve="3">%filename1</Str>
        <Str sr="arg1" ve="3">%filename1%suffix</Str>
        <Int sr="arg2" val="0"/>
        <Int sr="arg3" val="0"/>
        <Int sr="arg4" val="0"/>
    </Action>
    <Action sr="act17" ve="7">
        <code>592</code>
        <Str sr="arg0" ve="3">%filename</Str>
        <Str sr="arg1" ve="3">.</Str>
        <Int sr="arg2" val="0"/>
    </Action>
    <Action sr="act18" ve="7">
        <code>400</code>
        <Str sr="arg0" ve="3">%thispathfile</Str>
        <Str sr="arg1" ve="3">%destpath%filename</Str>
        <Int sr="arg2" val="0"/>
    </Action>
    <Action sr="act19" ve="7">
        <code>459</code>
        <Str sr="arg0" ve="3">%destpath%filename</Str>
    </Action>
    <Action sr="act2" ve="7">
        <code>547</code>
        <Str sr="arg0" ve="3">%suffix</Str>
        <Str sr="arg1" ve="3">(1)</Str>
        <Int sr="arg2" val="0"/>
        <Int sr="arg3" val="0"/>
        <Int sr="arg4" val="0"/>
    </Action>
    <Action sr="act20" ve="7">
        <code>38</code>
    </Action>
    <Action sr="act21" ve="7">
        <code>888</code>
        <Str sr="arg0" ve="3">%counter</Str>
        <Int sr="arg1" val="1"/>
        <Int sr="arg2" val="0"/>
    </Action>
    <Action sr="act22" ve="7">
        <code>40</code>
    </Action>
    <Action sr="act23" ve="7">
        <code>37</code>
        <ConditionList sr="if">
            <Condition sr="c0" ve="3">
                <lhs>%counter</lhs>
                <op>0</op>
                <rhs>0</rhs>
            </Condition>
        </ConditionList>
    </Action>
    <Action sr="act24" ve="7">
        <code>548</code>
        <on>false</on>
        <Str sr="arg0" ve="3">No memes? Sad.</Str>
        <Int sr="arg1" val="1"/>
    </Action>
    <Action sr="act25" ve="7">
        <code>43</code>
        <ConditionList sr="if">
            <Condition sr="c0" ve="3">
                <lhs>%counter</lhs>
                <op>0</op>
                <rhs>1</rhs>
            </Condition>
        </ConditionList>
    </Action>
    <Action sr="act26" ve="7">
        <code>548</code>
        <Str sr="arg0" ve="3">%counter meme moved!</Str>
        <Int sr="arg1" val="1"/>
    </Action>
    <Action sr="act27" ve="7">
        <code>43</code>
    </Action>
    <Action sr="act28" ve="7">
        <code>548</code>
        <Str sr="arg0" ve="3">%counter memes moved!</Str>
        <Int sr="arg1" val="1"/>
    </Action>
    <Action sr="act3" ve="7">
        <code>547</code>
        <Str sr="arg0" ve="3">%counter</Str>
        <Str sr="arg1" ve="3">0</Str>
        <Int sr="arg2" val="0"/>
        <Int sr="arg3" val="1"/>
        <Int sr="arg4" val="0"/>
    </Action>
    <Action sr="act4" ve="7">
        <code>412</code>
        <Str sr="arg0" ve="3">%sourcepath</Str>
        <Str sr="arg1" ve="3">*.jpg/*.png/*.jpeg/*.gif/*.3gp</Str>
        <Int sr="arg2" val="0"/>
        <Int sr="arg3" val="0"/>
        <Int sr="arg4" val="0"/>
        <Str sr="arg5" ve="3">%filestomove</Str>
    </Action>
    <Action sr="act5" ve="7">
        <code>39</code>
        <Str sr="arg0" ve="3">%thispathfile</Str>
        <Str sr="arg1" ve="3">%filestomove()</Str>
    </Action>
    <Action sr="act6" ve="7">
        <code>590</code>
        <Str sr="arg0" ve="3">%thispathfile</Str>
        <Str sr="arg1" ve="3">/</Str>
        <Int sr="arg2" val="0"/>
    </Action>
    <Action sr="act7" ve="7">
        <code>547</code>
        <Str sr="arg0" ve="3">%len</Str>
        <Str sr="arg1" ve="3">%thispathfile(#)</Str>
        <Int sr="arg2" val="0"/>
        <Int sr="arg3" val="0"/>
        <Int sr="arg4" val="0"/>
    </Action>
    <Action sr="act8" ve="7">
        <code>547</code>
        <Str sr="arg0" ve="3">%filename</Str>
        <Str sr="arg1" ve="3">%thispathfile(%len)</Str>
        <Int sr="arg2" val="0"/>
        <Int sr="arg3" val="0"/>
        <Int sr="arg4" val="0"/>
    </Action>
    <Action sr="act9" ve="7">
        <code>549</code>
        <Str sr="arg0" ve="3">%exists</Str>
        <Int sr="arg1" val="0"/>
    </Action>
    <Img sr="icn" ve="2">
        <cls>com.facebook.katana.LoginActivity</cls>
        <pkg>com.facebook.katana</pkg>
    </Img>
</Task></TaskerData>

Copy the code above and save the file as The Meme Mover.tsk.xml in /sdcard/Tasker/tasks. Then go to Tasker, long press on Tasks, and import this.

Pro Tip: Enable A25 just for testing if you want to.

Edit: Code corrected and updated. (1 memes moved was triggering my OCD.)

Edit 2: Had some problems, corrected again.

0
3

Anyone else looking this in the future and don't know how to use Tasker or find it difficult to understand.

  1. Download this app.
  2. Go to organizer section.
  3. Make a service job to move files as soon they are found in the Facebook folder to some other folder.

Hope you don't have Meme UI or Samsung which kills everything in the background. If that's the case, check this.

See Image for detail

0

I stumbled across the Tasker answer above while searching for a way to deal with Facebook's image downloads, and while it mostly works fine for Facebook, there are some issues with it, especially when you try to extend its functionality to other scenarios.

I'm completely new to Tasker, so it took me a while to figure it out, but after a day of tinkering, I've made some big improvements to the task. The main issues with the original version that I've solved are:

  1. While the original version could detect if the file being moved already existed in the destination directory, it could only handle one iteration of the conflict. For example, if example.jpg were being moved, but it already existed, it would rename the file being moved to example(1).jpg. However, if example.jpg were being moved and both example.jpg and example(1).jpg already existed, it would simply overwrite example(1).jpg.
    • My version will run an iterative check on names which increments the suffix variable until a non-existing name is found. For example, if example.jpg is taken, it will check example(2).jpg. If that is taken, it will check example(3).jpg, and so on until an available name is found. It also correctly appends the first duplicate with (2) rather than (1).
  2. The original version assumed the first "." in a file name was also the last "." before the extension. While this is fine for images from Facebook, it's not an ideal assumption, and breaks down when adopting the task for other uses, such as moving APKs. With the original, if com.example.app.apk already existed in the destination directory, trying to move a second copy of it would result in com(1).example.app.apk.
    • In addition to fixing the suffix and making it iterative, I've also changed the logic for its placement, such that it will always go before the last ".". In the above example, the apk would now be renamed to com.example.app(2).apk. This doesn't always work perfectly (consider .tar.gz and other similar cases for instance), but it does a good enough job without having to hard-code in every possible extension.
  3. This appears to vary from device to device, but on my devices, the original version would leave behind broken references to images in gallery apps and other programs that utilize the media provider (most messaging apps that have an image selection UI) due to not correctly refreshing this data. This was not an issue for moving images out of a directory containing a .nomedia file, but caused issues if you wanted to use it in a directory where you didn't want or couldn't have a .nomedia file (such as automatically moving downloaded images out of /sdcard/Download/).
    • Tasker's Scan Media action seems to act in wildly different ways depending on not only the Android version, but also the vendor variant you're using. I've fixed the issue on my devices (and hopefully many of yours) by running a Scan Media action on not only the file in it's destination directory, but also on the original file path (referencing the file that's no longer there).

I also updated variable names for clarity, and rather than using events that trigger when entering or exiting apps, I've set it to run on a File Modified event monitoring the source folder, with the event set to Closed Write. This works for most purposes, but breaks in some cases. You can fix most issues by either using a different event parameter (such as Create, Modify, or Move To) or by using stricter regex in Action 3 of the task.

I've heard that devices with slower storage (or slow external SD cards) can have issues with this if files take too long to write. In that case, you may have to experiment with adding delays or using different methods to trigger the task.

I'm attaching not just the task here, but the entire project I've created, containing multiple copies of the task for various use cases, and their respective profiles to trigger them, so that beginners who are new to Tasker can easily get started using this task and have some examples to reference when adopting the task to their own needs.

The examples included in this project are:

  • When Facebook downloads an image to /sdcard/DCIM/Facebook, move it to /sdcard/Pictures/Facebook.
  • When Samsung Notes saves an image to /sdcard/DCIM/Samsung Notes/, move it to /sdcard/Pictures/Samsung Notes/. (This works, but Samsung Notes will claim it failed to save the image, due to it checking for the image after it has already been moved by Tasker.)
  • When you create a GIF using Smart Select, move it from /sdcard/DCIM/GIF/ to /sdcard/Pictures/Smart Select GIFs/.
  • When you export an APK from ReVanced Manager to /sdcard/Download/APKs/Original/, move it to /sdcard/Download/APKs/Modded/.
  • When a new file is detected in /sdcard/Download/ . . .
    • if it's a download from Craiyon, move it to /sdcard/Pictures/Craiyon/
    • if it's an APK, APKM, APKS, or XAPK file, move it to /sdcard/Download/APKs/Original, unless it is base.apk (I leave that file in Download since I use it for other things.)

Remember to first create the source and destination directories before testing the examples. I also encourage you to check Action 3 in each example task (some of them use simple matching and others use regex) for a better understanding of how they work.

Now that that's out of the way, here's the project. You can import it directly to Tasker from there, or download it as an XML. If you choose to download it, save it in /sdcard/Tasker/projects/. You can then long press on the home icon on the bottom left corner of Tasker to import the project.

Unfortunately the entire XML is too long to post here directly, but for the sake of keeping this answer as complete as possible, I'm including the XML for just the Facebook task below. I strongly recommend that beginners import the entire project using the link above however, so you can get an idea of how to customize the task for your own needs.

The Facebook task:

<TaskerData sr="" dvi="1" tv="6.0.10">
    <Task sr="task3">
        <cdate>1489093858387</cdate>
        <edate>1677367714628</edate>
        <id>3</id>
        <nme>Move Facebook Images</nme>
        <pri>6</pri>
        <Kid sr="Kid">
            <launchID>3</launchID>
            <pkg>me.regalstreak.movefb</pkg>
            <vTarg>21</vTarg>
            <vnme>1.0</vnme>
        </Kid>
        <Action sr="act0" ve="7">
            <code>547</code>
            <Str sr="arg0" ve="3">%sourcedir</Str>
            <Str sr="arg1" ve="3">/sdcard/DCIM/Facebook/</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="0"/>
            <Int sr="arg5" val="3"/>
            <Int sr="arg6" val="0"/>
        </Action>
        <Action sr="act1" ve="7">
            <code>547</code>
            <Str sr="arg0" ve="3">%destdir</Str>
            <Str sr="arg1" ve="3">/sdcard/Pictures/Facebook/</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="0"/>
            <Int sr="arg5" val="3"/>
            <Int sr="arg6" val="0"/>
        </Action>
        <Action sr="act10" ve="7">
            <code>37</code>
            <ConditionList sr="if">
                <Condition sr="c0" ve="3">
                    <lhs>%fileexists</lhs>
                    <op>12</op>
                    <rhs></rhs>
                </Condition>
            </ConditionList>
        </Action>
        <Action sr="act11" ve="7">
            <code>547</code>
            <Str sr="arg0" ve="3">%currentfilename</Str>
            <Str sr="arg1" ve="3">%currentfilepath(%pathlen)</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="0"/>
            <Int sr="arg5" val="3"/>
            <Int sr="arg6" val="0"/>
        </Action>
        <Action sr="act12" ve="7">
            <code>888</code>
            <Str sr="arg0" ve="3">%suffix</Str>
            <Int sr="arg1" val="1"/>
            <Int sr="arg2" val="0"/>
        </Action>
        <Action sr="act13" ve="7">
            <code>590</code>
            <Str sr="arg0" ve="3">%currentfilename</Str>
            <Str sr="arg1" ve="3">.</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
        </Action>
        <Action sr="act14" ve="7">
            <code>547</code>
            <Str sr="arg0" ve="3">%namelen</Str>
            <Str sr="arg1" ve="3">%currentfilename(#)</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="0"/>
            <Int sr="arg5" val="3"/>
            <Int sr="arg6" val="0"/>
        </Action>
        <Action sr="act15" ve="7">
            <code>890</code>
            <Str sr="arg0" ve="3">%namelen</Str>
            <Int sr="arg1" val="1"/>
            <Int sr="arg2" val="0"/>
        </Action>
        <Action sr="act16" ve="7">
            <code>547</code>
            <Str sr="arg0" ve="3">%currentfilename(%namelen)</Str>
            <Str sr="arg1" ve="3">%currentfilename(%namelen)%null()(%suffix)</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="0"/>
            <Int sr="arg5" val="3"/>
            <Int sr="arg6" val="0"/>
        </Action>
        <Action sr="act17" ve="7">
            <code>592</code>
            <Str sr="arg0" ve="3">%currentfilename</Str>
            <Str sr="arg1" ve="3">.</Str>
            <Int sr="arg2" val="0"/>
        </Action>
        <Action sr="act18" ve="7">
            <code>135</code>
            <Int sr="arg0" val="0"/>
            <Int sr="arg1" val="10"/>
            <Str sr="arg2" ve="3"/>
        </Action>
        <Action sr="act19" ve="7">
            <code>38</code>
        </Action>
        <Action sr="act2" ve="7">
            <code>412</code>
            <Str sr="arg0" ve="3">%sourcedir</Str>
            <Str sr="arg1" ve="3">*.jpg/*.png/*.jpeg/*.gif/*.3gp</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="0"/>
            <Str sr="arg5" ve="3">%filelist</Str>
            <Int sr="arg6" val="1"/>
        </Action>
        <Action sr="act20" ve="7">
            <code>400</code>
            <Str sr="arg0" ve="3">%currentfilepath</Str>
            <Str sr="arg1" ve="3">%destdir%currentfilename</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="1"/>
        </Action>
        <Action sr="act21" ve="7">
            <code>459</code>
            <Str sr="arg0" ve="3">%currentfilepath</Str>
        </Action>
        <Action sr="act22" ve="7">
            <code>459</code>
            <Str sr="arg0" ve="3">%destdir%currentfilename</Str>
        </Action>
        <Action sr="act23" ve="7">
            <code>888</code>
            <Str sr="arg0" ve="3">%counter</Str>
            <Int sr="arg1" val="1"/>
            <Int sr="arg2" val="0"/>
        </Action>
        <Action sr="act24" ve="7">
            <code>40</code>
        </Action>
        <Action sr="act25" ve="7">
            <code>37</code>
            <ConditionList sr="if">
                <Condition sr="c0" ve="3">
                    <lhs>%counter</lhs>
                    <op>0</op>
                    <rhs>0</rhs>
                </Condition>
            </ConditionList>
        </Action>
        <Action sr="act26" ve="7">
            <code>548</code>
            <Str sr="arg0" ve="3">No memes? Sad.</Str>
            <Int sr="arg1" val="0"/>
            <Str sr="arg10" ve="3"/>
            <Int sr="arg11" val="1"/>
            <Int sr="arg12" val="0"/>
            <Str sr="arg13" ve="3"/>
            <Int sr="arg14" val="0"/>
            <Int sr="arg2" val="0"/>
            <Str sr="arg3" ve="3"/>
            <Str sr="arg4" ve="3"/>
            <Str sr="arg5" ve="3"/>
            <Str sr="arg6" ve="3"/>
            <Str sr="arg7" ve="3"/>
            <Str sr="arg8" ve="3"/>
            <Int sr="arg9" val="1"/>
        </Action>
        <Action sr="act27" ve="7">
            <code>43</code>
            <ConditionList sr="if">
                <Condition sr="c0" ve="3">
                    <lhs>%counter</lhs>
                    <op>0</op>
                    <rhs>1</rhs>
                </Condition>
            </ConditionList>
        </Action>
        <Action sr="act28" ve="7">
            <code>548</code>
            <Str sr="arg0" ve="3">%counter meme moved!</Str>
            <Int sr="arg1" val="0"/>
            <Str sr="arg10" ve="3"/>
            <Int sr="arg11" val="1"/>
            <Int sr="arg12" val="0"/>
            <Str sr="arg13" ve="3"/>
            <Int sr="arg14" val="0"/>
            <Int sr="arg2" val="0"/>
            <Str sr="arg3" ve="3"/>
            <Str sr="arg4" ve="3"/>
            <Str sr="arg5" ve="3"/>
            <Str sr="arg6" ve="3"/>
            <Str sr="arg7" ve="3"/>
            <Str sr="arg8" ve="3"/>
            <Int sr="arg9" val="1"/>
        </Action>
        <Action sr="act29" ve="7">
            <code>43</code>
        </Action>
        <Action sr="act3" ve="7">
            <code>547</code>
            <Str sr="arg0" ve="3">%suffix</Str>
            <Str sr="arg1" ve="3">1</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="0"/>
            <Int sr="arg5" val="3"/>
            <Int sr="arg6" val="0"/>
        </Action>
        <Action sr="act30" ve="7">
            <code>548</code>
            <Str sr="arg0" ve="3">%counter memes moved!</Str>
            <Int sr="arg1" val="0"/>
            <Str sr="arg10" ve="3"/>
            <Int sr="arg11" val="1"/>
            <Int sr="arg12" val="0"/>
            <Str sr="arg13" ve="3"/>
            <Int sr="arg14" val="0"/>
            <Int sr="arg2" val="0"/>
            <Str sr="arg3" ve="3"/>
            <Str sr="arg4" ve="3"/>
            <Str sr="arg5" ve="3"/>
            <Str sr="arg6" ve="3"/>
            <Str sr="arg7" ve="3"/>
            <Str sr="arg8" ve="3"/>
            <Int sr="arg9" val="1"/>
        </Action>
        <Action sr="act4" ve="7">
            <code>547</code>
            <Str sr="arg0" ve="3">%counter</Str>
            <Str sr="arg1" ve="3">0</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="1"/>
            <Int sr="arg4" val="0"/>
            <Int sr="arg5"/>
            <Int sr="arg6" val="0"/>
        </Action>
        <Action sr="act5" ve="7">
            <code>39</code>
            <coll>false</coll>
            <Str sr="arg0" ve="3">%currentfilepath</Str>
            <Str sr="arg1" ve="3">%filelist()</Str>
            <Int sr="arg2" val="0"/>
        </Action>
        <Action sr="act6" ve="7">
            <code>590</code>
            <Str sr="arg0" ve="3">%currentfilepath</Str>
            <Str sr="arg1" ve="3">/</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
        </Action>
        <Action sr="act7" ve="7">
            <code>547</code>
            <Str sr="arg0" ve="3">%pathlen</Str>
            <Str sr="arg1" ve="3">%currentfilepath(#)</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="0"/>
            <Int sr="arg5" val="3"/>
            <Int sr="arg6" val="0"/>
        </Action>
        <Action sr="act8" ve="7">
            <code>547</code>
            <Str sr="arg0" ve="3">%currentfilename</Str>
            <Str sr="arg1" ve="3">%currentfilepath(%pathlen)</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="0"/>
            <Int sr="arg5" val="3"/>
            <Int sr="arg6" val="0"/>
        </Action>
        <Action sr="act9" ve="7">
            <code>342</code>
            <se>false</se>
            <Int sr="arg0" val="4"/>
            <Str sr="arg1" ve="3">%destdir%currentfilename</Str>
            <Str sr="arg2" ve="3">%fileexists</Str>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="1"/>
        </Action>
        <Img sr="icn" ve="2">
            <cls>com.facebook.katana.LoginActivity</cls>
            <pkg>com.facebook.katana</pkg>
        </Img>
    </Task>
</TaskerData>

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .