# Submit art to multiple websites at once?



## Kygoski~ (Jul 25, 2010)

Link to a website/program that will submit artwork to multiple sites at once? Thanks in advance :3


----------



## Stratelier (Jul 25, 2010)

None that I know of, personally, so just do it yourself.


----------



## mystery_penguin (Jul 25, 2010)

Stratadrake said:


> None that I know of, personally, so just do it yourself.


 http://www.furaffinity.net/
http://www.deviantart.com/
http://www.artspots.com/
It's as Stratadrake said.


----------



## Jw (Jul 26, 2010)

You can always open the pages in tabs and do it at the same time, but it will likely take forever-- depending of course on your internet speed.


----------



## Arcum (Jul 26, 2010)

Hrrm... the thing is that all these sites have different ways of submitting art work so making a program to do this can happen but everything would have to be preset as to how its to be submitted. This makes the program not so flexable which is probably why it hasn't been made. Also you would have to do the whole submitting process anyway so that seems kinda useless.

There may be one out there but I doubt you would find anything.


----------



## Stratelier (Jul 26, 2010)

_Not to mention_ that every time the site changes their submissions process you'd have to update the program.


----------



## Arcum (Jul 26, 2010)

So... you mean when Devient Art changes it would have to be updated... about every 3 months or so?


----------



## Stratelier (Jul 27, 2010)

About half of deviantART's submission process relies entirely on clientside Javascript.  I'd hate to think what it would look like without it....


----------



## savageorange (Jul 29, 2010)

Actually, while the 'must keep up to date with each submission process' comment is true, this kind of automated submission is possible with software like xdotool that synthesizes keyboard and mouse events. However, CAPTCHAs will block the process, since automatic recognition of the words is non-trivial to implement. So you can perform the process only partially before requiring manual input when captcha's are in use.


An example for DeviantArt, written in terms of xdotool commands:

# first navigate to the correct URL

key ctrl+l
type http://www.deviantart.com/submit/deviation

# we start with the keyboard focus in the 'title' input field, so type the title out

type "$TITLE" # presumably your program has already set the TITLE environment variable so this expands to the intended title.

# ignore the 'Category' field, this cannot be set by keyboard input alone
# so we tab past it to the 'Add a file' button below

key Tab Tab Tab
key Space

# type in the filename, using CTRL+L to allow typing of an arbitrary path (works in GTK+), and pressing enter ('\n') afterwards.
key ctrl+l
type "$FILENAME" "\n"

# now that button stole the keyboard focus and made it all fup duck.
# but we can steal it back!
# we are moving in reverse -- we end up at the bottom of the page and move backward to the 'I have read and agree to the ToS' checkbox.

key ctrl+l
key Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab

# We pass the submission policy and its checkbox, and ignore the Creative Commons licensing button (which *can* be set with a bit of clever mouse-event synthesis -- move to specific coordinates, then click. The cleverness is in determining the coords.
anyway, we ignore this for now)

key Shift+Tab Shift+Tab Shift+Tab

# at this point we are about to set the 'mature content' option. We will Shift-Tab once onto the radiobox set then move left a number of times according to which option we wish to choose.
# Here I'm hardcoding the choice of Yes [strict]

key Shift+Tab Left Left
# and set it..
key Space
# now the detailed options for mature content have appeared. 
# we'll set them all 
key Tab Space # Nudity
key Tab Space # Sexual themes
key Tab Space # Violence
key Tab Space # Strong Language
key Tab Space # Ideologically Sensitive

# now that's done, run back past the content settings up to 'Allow comments'
# checkbox.
key Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab 
# we could toggle this if we wanted, but I usually leave it at it's default state, ON
# we'll move on to the Keywords field
key Shift+Tab
type "$KEYWORDS"

# ignoring the Preview Comments button, we will move to the Comments field
# and fill it in
key Shift+Tab Shift+Tab
type "$COMMENTS" # this may not be sufficient if your comment contains quotes. Personally I would use Python's subprocess.call() function so I could be sure a command shell would not misinterpret the content.
# That's almost it!
# We must now rely on the user to set the Category and CC licensing as needed,
# so let's move to the Category button and hit it.
# this looks nasty, that is because we need to avoid the evil focus-stealing 'add file' button, so we fall off the bottom of the page onto the top and around to the Category button...
key Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab Shift+Tab
# And hit it.
key Space
# now the user must select a category, then scroll down, optionally select a CC license, and click Submit. 
# there are other options available, you could set them too if it were important to you.
# as it is, this automation has simplified submission to this:
# 1. run your script and provide the necessary details
# 2. Set the Category and finally click on Submit

# you could indeed do this kind of thing with multiple tabs.. your automated tool can push the process as far as automation can allow, then create a new tab (Ctrl+T) and do the same for the next site you want to submit to, automate as much of THAT as possible, create a new tab, and so on.

All of that is fairly simple. What is slightly more difficult is examining how many input fields are on the page and comparing that to a stored number, in order to make sure that we don't do a bogus submission because somebody added a field or two.
The way I would do that is with an XPath query, using Python's wonderful lxml module.
We'd need to count every link ("<a> element which has an href attribute or is of class 'addfile' or 'addtext' "), every "<input> which does is not of type="hidden": this covers text entries fields large and small, checkboxes, and buttons), and perhaps other things (but in the case of DA, those two seem to cover it.)

Also, you could use the ability to type Javascript to be executed in the URL bar to directly set almost all needed elements in any document. That would be a method that's independent of element ordering.

By comparison to DA, FA is almost trivially easy to automate submission to, since it uses standard form elements and is broken up into several stages.


----------



## FireFeathers (Jul 31, 2010)

*gapes at wall o' text* ....just....just do it yourself.  [/gape]


----------



## savageorange (Aug 3, 2010)

Clearly you didn't read this bit: "All of that is fairly simple"

 LOL


----------

