# Am I allowed to post this?



## DUVMik (Nov 20, 2012)

I have made as small HTML/javascript thing for Furaffinity and I'm not sure if I'm allowed to post it, since it's neither a picture or story. So I thought I'd ask here first.(Is this the right place to ask? This place could use a sub-forum for that.)

http://www.duvmik.dk/FABBv1.0.zip

It allows you to bookmark your section on the browse page, something you can't do because FA uses "POST" instead of "GET" in its form. It shouldn't have any negative effects on FA, but I thought I might ask first just to be sure.

If I'm allowed to post it, what section should I put it in?


----------



## CerbrusNL (Nov 20, 2012)

I am not going to download a random .zip, thank you.

What do you mean, "Bookmark your section on the browse page"?


----------



## LizardKing (Nov 20, 2012)

CerbrusNL said:


> I am not going to download a random .zip, thank you.
> 
> What do you mean, "Bookmark your section on the browse page"?



I assume he means if you're browsing on FA and are on page 50 or whatever, and you want to come back to that later. Since FA uses POST rather than GET for a lot of its navigation, there's normally no way to bookmark that whilst keeping the search options intact.


----------



## Stratelier (Nov 20, 2012)

The page number is actually stored as a URL parameter, but the rest of the Browse settings are all POST data, meaning that if you're using the dropdown lists to filter the Browse page you can't input a page number, or vice versa.

Somewhat more importantly, bookmarking a page by page number serves no long-term purpose because the page updates so often.  Give it a few hours and the pictures that were on "page 3" will now have been pushed down to "page 5".


----------



## DUVMik (Nov 20, 2012)

I thought that might be a problem let me try something else.

This is the contents of the zipfile.

http://www.duvmik.dk/FABB/v1.0/instructions.txt

```
1: Unpack the contents of the zipfile to somewhere permanent on your hard drive. I recommend that you make a new folder in your documents folder e.g. /documents/falinks
WARNING: If you move the files after you've begun making bookmarks, the bookmarks Will stop working.

2: Open FAMakeBookmark.html and follow the instructions on screen.
```

http://www.duvmik.dk/FABB/v1.0/FAMakeBookmark.html

```
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<style>
body {
    background: #2E3B41;
    font-size: 12px;
    font-family: Verdana;
    color: #cfcfcf;
}
</style>
<title>FA browsing shortcut</title>
<link rel="shortcut icon" href="http://www.furaffinity.net/favicon.ico">
<SCRIPT language="JavaScript">
function UpdateText()
{
document.getElementById("link").innerHTML=("<A HREF='FAUseBookmark.html?cat=" + document.replyform.cat.value + "&atype=" + document.replyform.atype.value + "&species=" + document.replyform.species.value + "&gender=" + document.replyform.gender.value + "&perpage=" + document.replyform.perpage.value + "'>FAUseBookmark.html?cat=" + document.replyform.cat.value + "&atype=" + document.replyform.atype.value + "&species=" + document.replyform.species.value + "&gender=" + document.replyform.gender.value + "&perpage=" + document.replyform.perpage.value + "</A>");
}
</SCRIPT>
</head>
<body>
<center>
<br><br><br><br>
<form name="replyform" method="get" action="FAMakeBookmark.html">
                        
                        Category:
                        <select name="cat" class="listbox"><optgroup label="Visual Art">    <option value="all" selected="selected">All</option>    <option value="Desktops">Desktops</option>    <option value="cellshading">Cellshading</option>    <option value="currentevents">Currentevents</option>    <option value="designs">Designs</option>    <option value="digitalart">Digitalart</option>    <option value="flash">Flash</option>    <option value="icons">Icons</option>    <option value="mosaics">Mosaics</option>    <option value="photography">Photography</option>    <option value="prose">Prose</option>    <option value="traditional">Traditional</option>    <option value="wallpaper">Wallpaper</option></optgroup><optgroup label="Readable Art">    <option value="Story">Story</option>    <option value="Poetry">Poetry</option></optgroup><optgroup label="Audio Art">    <option value="Music">Music</option>    <option value="Podcasts">Podcasts</option></optgroup><optgroup label="Downloadable">    <option value="skins">Skins</option>    <option value="handhelds">Handhelds</option>    <option value="resources">Resources</option></optgroup><optgroup label="Other Stuff">    <option value="contests">Contests</option>    <option value="stockart">Stockart</option>    <option value="screenshots">Screenshots</option>    <option value="other">Other</option>    <option value="scraps">Scraps</option></optgroup></select>                        Type:
                        <select name="atype" class="listbox"><optgroup label="General Things">    <option value="all">All</option>    <option value="Abstract">Abstract</option>    <option value="Animal related non anthro">Animal related (non-anthro)</option>    <option value="Anime">Anime</option>    <option value="Comics">Comics</option>    <option value="Doodle">Doodle</option>    <option value="Fanart">Fanart</option>    <option value="Fantasy">Fantasy</option>    <option value="Human">Human</option>    <option value="Portraits">Portraits</option>    <option value="Scenery">Scenery</option>    <option value="Still Life">Still Life</option>    <option value="Tutorials">Tutorials</option>    <option value="Miscellaneous">Miscellaneous</option></optgroup><optgroup label="Fetish / Furry specialty (Tame)">    <option value="General Furry Art - Tame">General Furry Art (Tame)</option>    <option value="Fat Furs - Tame">Fat Furs (Tame)</option>    <option value="Inflation - Tame">Inflation (Tame)</option>    <option value="Muscle - Tame">Muscle (Tame)</option>    <option value="Feet - Tame">Paw (Tame)</option>    <option value="Pregnancy - Tame">Pregnancy (Tame)</option>    <option value="Transformation - Tame">Transformation (Tame)</option>    <option value="Vore - Tame">Vore (Tame)</option>    <option value="Baby fur - Tame">Baby fur (Tame)</option>    <option value="Macro Micro - Tame">Macro / Micro (Tame)</option>    <option value="Hyper - Tame">Hyper (Tame)</option>    <option value="Bondage - Tame">Bondage (Tame)</option>    <option value="Fursuit - Tame">Fursuit (Tame)</option>    <option value="Water Sports - Tame">Water Sports (Tame)</option>    <option value="Digimon - Tame">Digimon (Tame)</option>    <option value="Pokemon - Tame">Pokemon (Tame)</option>    <option value="Fetish Other - Tame">Fetish Other (Tame)</option>    <option value="Sonic - Tame">Sonic (Tame)</option></optgroup><optgroup label="Fetish / Furry specialty (Mature)">    <option value="General Furry Art - Adult">General Furry Art (Adult)</option>    <option value="Fat Furs - Adult">Fat Furs (Adult)</option>    <option value="Inflation - Adult">Inflation (Adult)</option>    <option value="Muscle - Adult">Muscle (Adult)</option>    <option value="Feet - Adult">Paw (Adult)</option>    <option value="Pregnancy - Adult">Pregnancy (Adult)</option>    <option value="Transformation - Adult">Transformation (Adult)</option>    <option value="Vore - Adult">Vore (Adult)</option>    <option value="Baby fur - Adult">Baby fur (Adult)</option>    <option value="Macro Micro - Adult">Macro / Micro (Adult)</option>    <option value="Hyper - Adult">Hyper (Adult)</option>    <option value="Bondage - Adult">Bondage (Adult)</option>    <option value="Fursuit - Adult">Fursuit (Adult)</option>    <option value="Water Sports - Adult">Water Sports (Adult)</option>    <option value="Digimon - Adult">Digimon (Adult)</option>    <option value="Pokemon - Adult">Pokemon (Adult)</option>    <option value="Fetish Other - Adult">Fetish Other (Adult)</option>    <option value="Sonic - Adult">Sonic (Adult)</option></optgroup><optgroup label="Music">    <option value="Techno">Techno</option>    <option value="Trance">Trance</option>    <option value="House">House</option>    <option value="90s">90s</option>    <option value="80s">80s</option>    <option value="70s">70s</option>    <option value="60s">60s</option>    <option value="Pre 60s">Pre-60s</option>    <option value="Classical">Classical</option>    <option value="Game Music">Game Music</option>    <option value="Rock">Rock</option>    <option value="Pop">Pop</option>    <option value="Rap">Rap</option>    <option value="Industrial">Industrial</option>    <option value="Other Music">Other Music</option></optgroup></select>
                        Species:
                        <select name="species" class="listbox"><optgroup label="Any">    <option value="" selected="selected">Unspecific/any</option></optgroup><optgroup label="Amphibian">    <option value="AM01">Amphibian (Other)</option>    <option value="AM02">Frog</option>    <option value="AM03">Newt</option>    <option value="AM04">Salamander</option></optgroup><optgroup label="Aquatic">    <option value="AQ01">Aquatic (Other)</option>    <option value="AQ02">Cephalopod</option>    <option value="AQ03">Cetacean - Dolphin</option>    <option value="AQ04">Cetacean - Whale</option>    <option value="AQ05">Cetacean (Other)</option>    <option value="AQ06">Fish (General)</option>    <option value="AQ07">Shark</option></optgroup><optgroup label="Avian">    <option value="AV01">Avian (Other)</option>    <option value="AV06">Corvid</option>    <option value="AV02">Crow</option>    <option value="AV07">Duck</option>    <option value="AV03">Eagle</option>    <option value="AV08">Falcon</option>    <option value="AV09">Goose</option>    <option value="AV05">Gryphon</option>    <option value="AV10">Hawk</option>    <option value="AV11">Owl</option>    <option value="AV04">Phoenix</option>    <option value="AV12">Swan</option></optgroup><optgroup label="Dragon">    <option value="DR01">Dragon (Other)</option>    <option value="DR02">Eastern</option>    <option value="DR05">Hydra</option>    <option value="DR07">Serpent</option>    <option value="DR06">Western</option>    <option value="DR04">Wyvern</option></optgroup><optgroup label="Exotic">    <option value="EX01">Exotic (Other)</option>    <option value="EX02">Alien</option>    <option value="EX03">Argonian</option>    <option value="EX04">Chakat</option>    <option value="EX05">Chocobo</option>    <option value="EX06">Citra</option>    <option value="EX07">Crux</option>    <option value="EX08">Daemon</option>    <option value="EX09">Digimon</option>    <option value="EX10">Dracat</option>    <option value="EX11">Draenei</option>    <option value="EX12">Elf</option>    <option value="EX13">Gargoyle</option>    <option value="EX14">Iksar</option>    <option value="EX15">Langurhali</option>    <option value="EX16">Monster</option>    <option value="EX17">Naga</option>    <option value="EX18">Moogle</option>    <option value="EX19">Orc</option>    <option value="EX20">Pokemon</option>    <option value="EX21">Satyr</option>    <option value="EX22">Sergal</option>    <option value="EX23">Tanuki</option>    <option value="EX24">Unicorn</option>    <option value="EX25">Xenomorph</option></optgroup><optgroup label="Mammals">    <option value="MA01">Mammals (Other)</option>    <option value="MA02">Bat</option>    <option value="MA03">Bear</option>    <option value="MA41">Bovid - Bovines</option>    <option value="MA42">Bovid - Antelope</option>    <option value="MA43">Bovid - Gazelle</option>    <option value="MA44">Bovid - Goat</option>    <option value="MA45">Bovid (Other)</option>    <option value="MA46">Canid - Coyote</option>    <option value="MA47">Canid - Doberman</option>    <option value="MA07">Canid - Dog</option>    <option value="MA48">Canid - Dingo</option>    <option value="MA49">Canid - GSD</option>    <option value="MA40">Canid - Jackal</option>    <option value="MA50">Canid - Husky</option>    <option value="MA06">Canid - Vulpine</option>    <option value="MA05">Canid - Wolf</option>    <option value="MA04">Canid (Other)</option>    <option value="MA37">Cervine</option>    <option value="MA51">Donkey</option>    <option value="MA12">Feline - Cat</option>    <option value="MA14">Feline - Cheetah</option>    <option value="MA52">Feline - Cougar</option>    <option value="MA53">Feline - Jaguar</option>    <option value="MA15">Feline - Leopard</option>    <option value="MA16">Feline - Lion</option>    <option value="MA17">Feline - Lynx</option>    <option value="MA54">Feline - Ocelot</option>    <option value="MA13">Feline - Panther</option>    <option value="MA18">Feline - Tiger</option>    <option value="MA11">Feline (Other)</option>    <option value="MA39">Giraffe</option>    <option value="MA55">Hedgehog</option>    <option value="MA56">Hippopotamus</option>    <option value="MA19">Horse</option>    <option value="MA29">Hyena</option>    <option value="MA57">Llama</option>    <option value="MA58">Marsupial - Opossum</option>    <option value="MA59">Marsupial - Kangaroo</option>    <option value="MA60">Marsupial - Koala</option>    <option value="MA61">Marsupial - Quoll</option>    <option value="MA62">Marsupial - Wallaby</option>    <option value="MA63">Marsupial (Other)</option>    <option value="MA64">Meerkat</option>    <option value="MA65">Mongoose</option>    <option value="MA38">Mustelid - Badger</option>    <option value="MA66">Mustelid - Ferret</option>    <option value="MA34">Mustelid - Otter</option>    <option value="MA22">Mustelid - Mink</option>    <option value="MA67">Mustelid - Weasel</option>    <option value="MA68">Mustelid - Wolverine</option>    <option value="MA69">Mustelid (Other)</option>    <option value="MA28">Panda</option>    <option value="MA70">Pig/Swine</option>    <option value="MA71">Primate - Gorilla</option>    <option value="MA72">Primate - Human</option>    <option value="MA73">Primate - Lemur</option>    <option value="MA20">Primate - Monkey</option>    <option value="MA74">Primate (Other)</option>    <option value="MA32">Rabbit</option>    <option value="MA30">Raccoon</option>    <option value="MA26">Rat</option>    <option value="MA75">Red Panda</option>    <option value="MA76">Rhinocerus</option>    <option value="MA77">Rodent - Beaver</option>    <option value="MA25">Rodent - Mouse</option>    <option value="MA78">Rodent - Rat</option>    <option value="MA24">Rodent (Other)</option>    <option value="MA79">Seal</option>    <option value="MA27">Skunk</option>    <option value="MA35">Squirrel</option>    <option value="MA36">Zebra</option></optgroup><optgroup label="Reptilian">    <option value="RE01">Reptilian (Other)</option>    <option value="RE02">Alligator</option>    <option value="RE08">Crocodile</option>    <option value="RE03">Gecko</option>    <option value="RE09">Iguana</option>    <option value="RE04">Lizard</option>    <option value="RE05">Snake</option>    <option value="RE06">Turtle</option></optgroup><optgroup label="Other">    <option value="OT01">Arachnid</option>    <option value="OT02">Dinosaur - Sauropod</option>    <option value="OT03">Dinosaur - Theropod</option>    <option value="OT04">Insect (Other)</option>    <option value="OT05">Mantid</option>    <option value="OT06">Scorpion</option></optgroup></select>                    Gender:
                        <select name="gender" class="listbox"><optgroup label="Genders">    <option value="" selected="selected">Any</option>    <option value="Male">Male</option>    <option value="Female">Female</option>    <option value="Herm">Herm</option>    <option value="Transgender">Transgender</option>    <option value="Multiple characters">Multiple characters</option>    <option value="Other / Not Specified">Other / Not Specified</option></optgroup></select><br>
                        View
                            <select name="perpage" class="listbox">
<option value="24" selected="selected">24</option>
<option value="36">36</option>
<option value="48">48</option>
<option value="60">60</option>
</select>                        submissions at a time
<br><br>
<input type="button" name="go" value="Update" onclick='UpdateText()'>


                        </form>
<br>
^
<br>
1: Make a selection and press update<br>
2: Bookmark the link
<br>
<p id=link></p>

and you done
</center>
</body>
</html>
<!--FA Browse Bookmark v1.0 Made (partially) by DUVMik -->
```
http://www.duvmik.dk/FABB/v1.0/FAUseBookmark.html

```
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<style>
body {
    background: #2E3B41;
    font-size: 12px;
    font-family: Verdana;
    color: #cfcfcf;
}
</style>
<title>FA browsing shortcut</title>
<link rel="shortcut icon" href="http://www.furaffinity.net/favicon.ico">
<SCRIPT language="JavaScript"> 
function getUrlParam(param)
{
  param = param.replace(/([\[\](){}*?+^$.\\|])/g, "\\$1");
  var regex = new RegExp("[?&]" + param + "=([^&#]*)");
  var url   = decodeURIComponent(window.location.href);
  var match = regex.exec(url);
  return match ? match[1] : "";
}
</SCRIPT>
<script type="text/javascript">
function createFormAndSubmit(test) {
var form = document.createElement("form");
form.setAttribute("method", "post");
form.setAttribute("action", "http://www.furaffinity.net/browse/1/");
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", "cat");
hiddenField.setAttribute("value", getUrlParam("cat"));
form.appendChild(hiddenField);
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", "atype");
hiddenField.setAttribute("value", getUrlParam("atype"));
form.appendChild(hiddenField);
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", "species");
hiddenField.setAttribute("value", getUrlParam("species"));
form.appendChild(hiddenField);
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", "gender");
hiddenField.setAttribute("value", getUrlParam("gender"));
form.appendChild(hiddenField);
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", "perpage");
hiddenField.setAttribute("value", getUrlParam("perpage"));
form.appendChild(hiddenField);
document.body.appendChild(form);
form.submit();
}
</script>
</head>
<body>
<!-- For debugging
<SCRIPT language="JavaScript">
document.write(getUrlParam("cat"));
document.write(getUrlParam("atype"));
document.write(getUrlParam("species"));
document.write(getUrlParam("gender"));
document.write(getUrlParam("perpage"));
</SCRIPT>
-->
<SCRIPT language="JavaScript">
createFormAndSubmit()
</SCRIPT>
</body>
</html>
<!--FA Browse Bookmark v1.0 Made (partially) by DUVMik -->
```

Is there anything else I can do to make it safer (like uploading it to some virus scanning site)

As for what I mean with "Bookmark your section on the browse page"
Let's say for example you really like pictures of coyotes but only male, and only in the tame category, and you'd like to check each day if anybody has uploaded a picture that fits in that category. So each day you go to http://www.furaffinity.net/browse/ and select "General Furry Art (Tame)" then "Canid - Coyote" then "Male" and hit update. 
That can be a little annoying, especially if you have more than one thing you like check. This thing turns all of that tedious clicking in to a link, with the help of some JavaScript magic. (yes I know this might be a first world problem, but I'd rather solve a first world problem, then solving no problem at all.)

I apologize if I'm hard to understand English is not my first language.


----------



## THEbigcat (Nov 20, 2012)

if this is legit(I haven't looked) it would be cool.
"bookmarks" only keep what's in the URL bar, not the server's response. since the page number is not sent that way bookmarking the page only brings the "browse" page with no information. 

but! because the submissions to list change every minute(if not more), even being able bookmarking a page number wouldn't keep the actual entries; that's probably why that's not implemented before.
a feature that knows what's on a page at a given time would be a little more helpful, but that wouldn't be easy to make.

a simple thing might be to save a static HTML copy of the page; because that would retain all the links that were present at the time. anyone can do that, because absolutely no extra code is required.(just press ctrl+s on the page)
when you open that file from explorer it will load in your web browser with all the links.

hope that helped! :-D


----------

