Klaue said:
Oh, well, if it takes two seconds, then it doesn't matter too much. Question is why it takes so long though, jou only take the filename, right? even calculating the hash anew takes like 4 ms per image here.
2 secs per file would mean it would take multiple days for my (kinda massive, granted, been collecting for years) local library

Honestly i've never bothered with searching for bottlenecks. I just take it as granted - it takes 2-6 seconds to tag one image. I can definately improve speed by making network checks optional. Will do this tomorrow and update you with the new speed charts :P
It took me 24 hours or so to tag all my pictures (~20000), and it was a previous version of my tool with WGET, which made the whole proccess 2 times slower.

Regarding alternative sources, i thought about making some kind of "instructions database" for my updater. E.G. if it's a FA link do this to parse the page, get the image link and download it. Same for all the popular resources.
If the link is bad, e.g simple FA mainpage link or some weird site, just skip it. That could help a lot with artists that decided to go DNP but still had source links in their descriptions.

As for tagging the date - it was requested there (the only thing requested ever!) and i too don't see any real use for it. But still decided to save it to TODO in case i'll be very-very bored.


  • 7 Need for Speed - v3
    • Performance improved
    • 2 features added: "Fast mode" and "Disable network checks"
      • "Fast mode" disables waiting for program to finish all in-app calls (for all exiftool and some wget calls, e.g call exiftool to tag picture). Should not cause problems. Experimental, default on. ~50% performance increase.
      • "Disable network checks" disables... Network checks. All of them. Don't use it if your connection is unstable (VPN, proxy, shitty network, etc). ~50% performance increase.
      • Use both for maximum speed! Almost 3x times faster.
    • Small GUI changes
    • Error in log file for updater is fixed

    Speed comparison
    Seconds spent to tag one image. Lower is better. Orange is default version without WGET. Blue is WGET version.


    Oops! My bad!
    I've tried to make my code more readable and broken mode selection.
    It's fixed now.


  • 8 Favorites
    • Favorites downloader added!
      • Just select needed mode, enter your username and it will get all the favs you have.
      • Ratings selection. Able to download any combinations of ratings (e.g. only E and Q, without safe images).
      • Existing files (that you already have in target folder) are skipped.
      • Connection checks are not supported at the moment. Don't use it for shitty network.
    • Now calculating MD5 inside the tool itself.
      • Removed MD5.exe
    • GUI changed.
      • "More information" checkbox added for all modes.
      • Information field on bottom of the tool is replaced with list box. Tool will probably work too fast for you to get any info from there.
    • "Tag after updating" option added for favorites and updater modes.
    • "Fast mode" is now always on, option removed. No drawbacks from using it.
    • Optimized JSON parsing.
    • Corrected mistakes in log file again.

    I've failed to reproduce the bug i've had with this tool tagging pictures with the same artist and tag after some number of properly tagged images.
    I'm reuploading it and reverting exiftool to previous version we had just in case.
    Tagging mode is working fine after some checks i've done. Maybe it's another mode that's tagging images wrong, but i hardly imagine how can any other mode overwrite all the images you have.
    Please tell me if you run into this problem yourself. You can always use v7 WGET before i fix the possible bug.

    On a side note, updater mode progressbar is bugged and shows nothing... Maybe?
    I'll look into that later.


    For some reason its not tagging PNG files for me.

    I've tried using v8 and v7wget even as admin.

    The files are properly named and the tagger is working for JPG files.

    It shows the tags under more information and the GUI is showed them as tagged but it doesn't actually apply to tags to the files.

    Is this a bug?


    Anonyderps said:
    For some reason its not tagging PNG files for me.
    Is this a bug?

    My guess is that you're trying to see those tags in WIndows Explorer. PNG's tags are not visible in it, because ~standards~.
    You should use something like Picasa or Adobe Photoshop\Lightroom to see them. Alternatively, you can convert all your PNGs to JPGs (keeping correct MD5 in filenames). I can't recommend that but it's a workaround if you really need those Windows tags.
    See: https://dl.dropboxusercontent.com/u/21291309/3A3phoT.png
    There's no universal, "official" way to apply EXIF tags to PNGs. Therefore, Microsoft decided not to bother and is not trying to get tags from PNG files, since there is a ton of ways to tag them, yet none of these methods is recommended.
    See: http://stackoverflow.com/questions/8113314/does-png-support-metadata-fields-like-author-camera-model-etc

    There's also another problem with PNGs: i'm writing XMPs using PNGEarlyXMP flag, because i had some problems with tagging in early versions of this tool. So we're one more step away from any standards (shouldn't cause problems tho).
    You can find more technical information about it here

    Just tell me if you won't find them in Photoshop too.


    Erm, It's not allowing me to even open the app. It says that this app is not compatible with my PC. I'm running windows 10 on a 64-bit dual-core 1.6 Ghz processor.


    Can the opposite of the "get favorites" feature be implemented? Check a specified folder for images present on e621 and add them to a specified user's favorites? That's what I would use.


    Faux-Pa said:
    Erm, It's not allowing me to even open the app. It says that this app is not compatible with my PC. I'm running windows 10 on a 64-bit dual-core 1.6 Ghz processor.

    I'm using the same system and it's working fine. I've just tried downloading it to a fresh system and it's working there too. Something is wrong on your end. Try to download it again and extract to your desktop, try running from there. A few more things to check out: anti-virus, EMET or something that acts like it.
    Also try to give me a screenshot or a precise quote of error message.

    abadbird said:
    Can the opposite of the "get favorites" feature be implemented? Check a specified folder for images present on e621 and add them to a specified user's favorites? That's what I would use.

    It's definately possible to code and i will add it to planned improvements list. Not sure when i'll do that tho.


    Okay, so i've managed to code what you've asked for.
    It's called sync mode and requires you to put a curl.exe next to the main executable to work. Pretty much any curl will work, but you better use mine.

    It was surprisingly fast so expect bugs (in other modes too...)
    Also this exact mode is extremely stupid and won't catch errors or posts that don't exist: it will just bruteforce through your images folder.

  • 9 Sync
    • Sync mode added!
      • Enter your username into the "name" field (get it from https://e926.net/user/home to be sure)
      • Generate an API key and enter it into the "API key" field (get it from https://e926.net/user/api_key )
      • Press start and all local images will have their E621 posts favorited.
      • No checks are coded: make sure there are no mistakes and spaces in both fields or you'll simply waste your time.
      • Sync mode requires curl.exe to work. Proxy is not supported.
    • Small GUI changes
    • Updater mode backup is fixed

    I don't have time to check if other modes are working correctly so if something is broken, use the old version


    My soul is bared. That's something I sort of wanted to do for a few years. Now, if I ragequit furry/porn or my storage/computer dies again, I can pick up where I left off. Thanks, and thanks for working so quickly.

    There's some uses your program doesn't handle:

    • skips animations. Can you add support to sync mode for the other extensions supported by e621? Tagging isn't needed, just checking MD5 and favoriting.
    • fails filenames that contain more or less than just their MD5. Can you create a "second pass" option that checks e621 for the MD5 hashes of local files that were "not found" (but doesn't rename them)?
      • it seems like a version of this idea is already (partially?) built into the program with the Extracted MD5 field, which does work, but the result is always Not Found and such files aren't added to my favorites. I tested with a file that I downloaded from e621 that I don't have favorited, renamed it, ran it through your program, and got the Status "Not Found!" and it wasn't added to my favorites.
      • scope creep: if some files still aren't found on e621, it would conceivably be handy to uploaders for your program to produce a list of the files that truly are not on e621.
    • checks entire contents of previously sync'd folder again if sync'ing is attempted a second time. Would it be possible to download some sort of list of a user's current favorites and check local files against that first? If that's possible, it seems like it would be faster? Maybe you already do that. I wouldn't know. It's just that something like FreeFileSync compares the contents of local folders nearly instantaneously (for my purposes), so I assume something similar should be possible with a local list of a user's favorites.
    • program doesn't remember anything, namely previously entered username, API key, folder of local files, and window position
    • after completing a sync of a folder and answering the prompt that I don't want to close the program yet, the program effectively relaunches itself. Compounds difficulty of use with the previous issue because I have to re-enter everything.
      • Choose Another Folder also effectively relaunches the program
    • doesn't check subfolders. This would be a nice option, and an actual checklist, hierarchy, or tree for manual selection of individual folders/subfolders would be even better. Compounds difficulty of use with the previous two issues, meaning a user needs to re-enter everything to sync the contents of each folder.
    • Pause buttons functions as a Pause/Resume feature, but there is no proper cancel/abort mechanism except for closing the program.

    I'm not demanding this be done tomorrow or anything, just providing feedback on the "holes" of your program as I see it. I'm appreciative for whatever you implement, whenever you implement it.


  • abadbird said:
    • skips animations. Can you add support to sync mode for the other extensions supported by e621?

    Sure, that happened because i've used code from another mode and it only supports images. I can fix that easily a bit later.

  • fails filenames that contain more or less than just their MD5.
    • it seems like a version of this idea is already (partially?) built into the program

    I'll see what's wrong but it uses exactly the same code as the updater. Maybe i've managed to remove something important from it when i've coded sync mode...

    checks entire contents of previously sync'd folder again if sync'ing is attempted a second time.

    Similar thing is already on todo list.

    program doesn't remember anything, namely previously entered username, API key, folder of local files, and window position

    I have no idea how to save window position but i already thought about adding config file functionality (save settings to file, load them from file). Added to todo.

    after completing a sync of a folder and answering the prompt that I don't want to close the program yet, the program effectively relaunches itself.

    Yep, it was much easier to code that :P
    I did that to make sure nothing bad happens when you change modes because all variables are cleared and other garbage is removed when program restarts.

    doesn't check subfolders.

    That's intentional because program creates working folders such as Backup and NotFound and moves some files to them. I guess i can ignore them tho...


  • 9.1 Sync and config
    • Sync mode updated:
      • No longer limited to images: webm, gif and swf support added.
      • Will calcualte MD5 for all incorrectly named files.
    • Config file added (e621updater.ini):
      • Settings saved for now: last used directory, username and API key, "network checks" and "backup" checkboxes state.
    • Updater mode backup is fixed

    Good news:

    • The program seemed to correctly hash and favorite a few pictures that didn't have MD5 filenames, as from tumblr, inkbunny, hentai-foundary, and so on.
    • GIFs were also favorited.
    • Username and API key saved properly. That's two less repetitive steps per folder.
    • WebMs and SWFs appear in local files list.

    Bad news:

    • SWFs only found and favorited if the filename was an MD5 hash. Other filenames produced a -1 MD5 Extracted value and Status "Not found". Old code?
    • WebMs not found and favorited regardless of filename.

    I tested one SWF and one WebM once with MD5-only filenames and again with extra text in their filenames. I hashed both local files using an online MD5 hasher and confirmed that they were unmodified, and I searched their hashes on e621 and found the expected posts.

    Other stuff:

    • With no mode selected, I can press Start and the program seems to hang. Start button should be grayed out until a mode is selected?
    • When I Choose Another Folder, the last used directory is not brought up. That's what I really wanted, so I wouldn't have to navigate 4 or 5 folders to my base furry repository folder every time I wanted to switch folders. Currently, copy and paste folder path from Explorer is faster.
    • Add a quick link to e621's API key generation page for user-friendliness?

    Thanks again.


    Keito said:
    I'm using the same system and it's working fine. I've just tried downloading it to a fresh system and it's working there too. Something is wrong on your end. Try to download it again and extract to your desktop, try running from there. A few more things to check out: anti-virus, EMET or something that acts like it.
    Also try to give me a screenshot or a precise quote of error message.

    http://d621.net/static/error1.1.png : Here's that screenshot you asked for.


    I assume you've tried running this app with admin rights? Also try to set UAC to "Never notify me" option.
    I can't find any reasons for this app to throw this message. Most of problems that cause this are dumb, something like "you are running zero-length exe file" or "you are running 16 bit app" none of which apply. Damn, i even have the same system (10 x64)...


    Keito said:
    I assume you've tried running this app with admin rights? Also try to set UAC to "Never notify me" option.
    I can't find any reasons for this app to throw this message. Most of problems that cause this are dumb, something like "you are running zero-length exe file" or "you are running 16 bit app" none of which apply. Damn, i even have the same system (10 x64)...

    Heheh... I guess I read my computer's arch type wrong. Apparently when I was reinstalling Windows 10, the install media decided to install the 32-bit verion of Windows 10 Home Edition as opposed to the 64-bit version.

    Will you be releasing a 32-bit version of this program, or am I out of luck?


    Hah, i actually never wanted it to be x64. I'll make sure all next updates will be x32.
    For now, use this link to download x32.


    Keito said:
    Hah, i actually never wanted it to be x64. I'll make sure all next updates will be x32.
    For now, use this link to download x32.

    Works flawlessly. I see the tags in the file details, but now I need a Adobe Lightroom kind of tool to organize the pictures. Any recommendations?

    Edit:I know that DigiKam is one that I've used that was great, but I didn't know if it was for Linux only.


    Try using Picasa. AFAIK Google got rid of it but it still works as a desktop app. You can also use simple Windows search if you want to find pictures with tags\tag combinations you want.
    If none of them are good for you, there's nothing better than Lightroom imo.


  • 9.2 QoL
    • App is x32 now, should work for everyone.
    • Sync mode bugfixes:
      • SWFs and WEBMs are correctly favorited.
      • MD5 is now correctly found for SWFs and WEBMs.
    • GUI bugfixes.
    • Choose Another Folder remembers your last folder and starts from there.
    • "Get API" button added for sync mode.
    • DLLCall added to prevent PC from sleeping while app is working.
      • Can be disabled by modifying config file: manually set PCAwake to 0.

    Oh and by the way i'm now compressing the EXE with MPRESS, so some antivirus software may "find" something in it. Fear not!


    Keito said:
    Try using Picasa. AFAIK Google got rid of it but it still works as a desktop app. You can also use simple Windows search if you want to find pictures with tags\tag combinations you want.
    If none of them are good for you, there's nothing better than Lightroom imo.

    Picasa works beautifully for me. DigiKam was making me want to bash my face into brick walls just for fun.


    Thanks for the update! Everything seems to be working. E621 Updater now meets my current needs.


    If a suggestion would be okay, would it not be possible to take advantage of NTFS's support for storing property data in an annex to any file, thereby enabling proper metadata for the formats not currently taggable, mainly gifs, a real pain tagging all these gifs one at a time.

    Windows doesn't normally allow for this except for a few file formats because the feature was pretty much only 99% completed, but there's a free program that finishes the feature thereby allowing all files to have metadata on them that can be searched through windows search and explorer like such~ http://i.imgur.com/HBzI9Wn.png

    Hope this is an okay suggestion~ ='w'=


    NekoSnowy said:
    but there's a free program that finishes the feature

    How is it called? Any documentation on it?
    I will definately add some way to save tags without touching the file in future.


    Keito said:
    How is it called? Any documentation on it?
    I will definately add some way to save tags without touching the file in future.

    It's this thing over there, I'm just an intermediate level programmer, more of a web and graphical designer, so sorry if I can't be of any more help outside of whatever documentation is inside this link~

    https://filemeta.codeplex.com/

    urxa
    Member
    24 days ago
    animated bittenhard blush caramelldansen cute eyes_closed female feral low_res milotic nintendo open_mouth pokémon simple_background smile solo video_games

Rating: Safe
Score: 31
User: chdgs
Date: February 23, 2014

    For those first discovering this and wishing to use Picasa, you can use this link: https://dl.google.com/picasa/picasa39-setup.exe

    Google has shut down picasa but the desktop application should still work fine. However, you have to go to the wayback machine to find the link as it's no longer public facing.


    Yep, desktop app works if you manage to find it.
    I've recently switched to just searching the folder with explorer and launching a slideshow. Works just fine. ;)

    RE: alternative data streams, i'll look into it in the next update. Not sure what method\tool to use yet, but i'll see what i can do.