partial completion of redux fa page parser

This commit is contained in:
2023-02-18 15:36:33 -08:00
parent 23a1b4f0ef
commit b13851780a
14 changed files with 3199 additions and 79 deletions

View File

@@ -0,0 +1,7 @@
class Domain::Fa::Parser::Base
attr_reader :page_version
def unimplemented_version!
raise("unimplemented page version: #{page_version}")
end
end

View File

@@ -1,9 +1,10 @@
class Domain::Fa::Parser::ListedSubmissionParserHelper
attr_accessor :debug
def initialize(elem)
def initialize(elem, page_version)
@new_parse_mode = !!elem.css("figcaption").first
@elem = elem
@page_version = page_version
end
def id

View File

@@ -2,12 +2,15 @@
require "nokogiri"
class Domain::Fa::Parser::Page
VERSION_0 = 0
VERSION_1 = 1
class Domain::Fa::Parser::Page < Domain::Fa::Parser::Base
# old, old before legacy
VERSION_0 = :old_old
# legacy version
VERSION_1 = :legacy
# redux version
VERSION_2 = :redux
def initialize(page_html, require_logged_in: true, old_mode: false)
@old_mode = old_mode # TODO: figure out how to phase this out
def initialize(page_html, require_logged_in: true)
@page = if page_html.is_a? Nokogiri::HTML::Document
page_html
else
@@ -15,7 +18,9 @@ class Domain::Fa::Parser::Page
@phtml = phtml
Nokogiri::HTML(phtml)
end
@page_version = if @page.css(".submission-list section").first
@page_version = if @page.css("link[href='/themes/beta/img/favicon.ico']").first
VERSION_2
elsif @page.css(".submission-list section").first || @page.css("meta[property='twitter:site']").first
VERSION_1
else
VERSION_0
@@ -27,18 +32,21 @@ class Domain::Fa::Parser::Page
end
def submission_not_found?
if logged_in?
return false
end
# the username elem is never shown on a "not found" page
return false if logged_in_user_elem
not_found_text = "The submission you are trying to find is not in our database"
not_found_elem = @page.css("table.maintable td.alt1 font[size=1]").first
if not_found_elem
not_found_elem.
text.
strip.
include?("The submission you are trying to find is not in our database")
case @page_version
when VERSION_2
@page.css("body .section-body")&.
first&.
text&.
include?(not_found_text)
else
false
@page.css("table.maintable td.alt1 font[size=1]")&.
first&.
text&.
include?(not_found_text)
end
end
@@ -48,7 +56,7 @@ class Domain::Fa::Parser::Page
def submissions_parsed
@submissions_hashes ||= submission_elems.map do |elem|
Domain::Fa::Parser::ListedSubmissionParserHelper.new(elem)
Domain::Fa::Parser::ListedSubmissionParserHelper.new(elem, @page_version)
end
end
@@ -62,16 +70,27 @@ class Domain::Fa::Parser::Page
case @page_version
when VERSION_0 then @page.css(".t-image")
when VERSION_1 then @page.css(".submission-list > .gallery > figure")
else raise("bad page versino #{@page_version}")
when VERSION_2 then @page.css(".submission-list > .gallery > figure")
else unimplemented_version!
end
end
def logged_in_user
logged_in_user_elem.try(:text).try(:delete, "~")
case @page_version
when VERSION_2
logged_in_user_elem && logged_in_user_elem["alt"]
else
logged_in_user_elem&.text&.delete("~")
end
end
def logged_in_user_elem
@page.css("li a#my-username").first
@logged_in_user_elem ||= case @page_version
when VERSION_2
@page.css("img.loggedin_user_avatar").first
else
@page.css("li a#my-username").first
end
end
def probably_listings_page?
@@ -80,11 +99,16 @@ class Domain::Fa::Parser::Page
end
def user_page
@user_page ||= Domain::Fa::Parser::UserPageHelper.new(@page, old_mode: @old_mode)
@user_page ||= Domain::Fa::Parser::UserPageHelper.new(@page, @page_version)
end
def probably_user_page?
@page.css("td.addpad.lead b").first.try(:text).try(:[], 0) == "~"
case @page_version
when VERSION_2
@page.css("userpage-nav-links a.current").first&.text&.strip == "Home"
else
@page.css("td.addpad.lead b").first&.text.try(:[], 0) == "~"
end
end
def probably_submission?
@@ -93,7 +117,7 @@ class Domain::Fa::Parser::Page
end
def submission
@submission ||= Domain::Fa::Parser::SubmissionParserHelper.new(@page, @phtml, old_mode: @old_mode)
@submission ||= Domain::Fa::Parser::SubmissionParserHelper.new(@page, @phtml, @page_version)
end
end

View File

@@ -1,8 +1,12 @@
class Domain::Fa::Parser::SubmissionParserHelper
def initialize(elem, phtml, old_mode:)
class Domain::Fa::Parser::SubmissionParserHelper < Domain::Fa::Parser::Base
VERSION_0 = Domain::Fa::Parser::Page::VERSION_0
VERSION_1 = Domain::Fa::Parser::Page::VERSION_1
VERSION_2 = Domain::Fa::Parser::Page::VERSION_2
def initialize(elem, phtml, page_version)
@elem = elem
@old_mode = old_mode
@phtml = phtml
@page_version = page_version
end
def id
@@ -29,30 +33,36 @@ class Domain::Fa::Parser::SubmissionParserHelper
end
def description_html
if @old_mode
@elem.css("#submission td.alt1 .maintable tr .alt1").last.inner_html
else
case @page_version
# when VERSION_0
# @elem.css("#submission td.alt1 .maintable tr .alt1").last.inner_html
when VERSION_0, VERSION_1
@elem.css("#page-submission td.alt1 .maintable tr .alt1").last.inner_html
else unimplemented_version!
end
end
def full_res_img
if @old_mode
@elem.css("#submission div b a")[1]["href"].strip
else
case @page_version
when VERSION_0
@elem.css("#page-submission div b a")[1]["href"].strip
# @elem.css("#submission div b a")[1]["href"].strip
when VERSION_1
@elem.css("#page-submission div b a")[1]["href"].strip
else unimplemented_version!
end
end
def posted_date
@posted_date ||= begin
if @old_mode
info_child(6)["title"].strip
else
idx = elem_idx_after_text_match(info_children, /Posted/)
child = info_children[idx..idx + 5].find { |ic| ic.name == "span" }
child.try(:[], "title").try(:strip)
end
@posted_date ||= case @page_version
# when VERSION_0
# info_child(6)["title"].strip
when VERSION_0, VERSION_1
idx = elem_idx_after_text_match(info_children, /Posted/)
child = info_children[idx..idx + 5].find { |ic| ic.name == "span" }
child.try(:[], "title").try(:strip)
else
raise("unimplemented version #{@page_version}")
end
end
@@ -85,13 +95,13 @@ class Domain::Fa::Parser::SubmissionParserHelper
end
def resolution_str
@resolution_str ||= begin
if @old_mode
elem_after_text_match(info_children, /Resolution/).try(:text).try(:strip)
else
idx = elem_idx_after_text_match(info_children, /Resolution/)
info_children[idx + 1].try(:text).try(:strip)
end
@resolution_str ||= case @page_version
when VERSION_0
elem_after_text_match(info_children, /Resolution/).try(:text).try(:strip)
when VERSION_1
idx = elem_idx_after_text_match(info_children, /Resolution/)
info_children[idx + 1].try(:text).try(:strip)
else unimplemented_version!
end
end
@@ -110,10 +120,12 @@ class Domain::Fa::Parser::SubmissionParserHelper
end
def information_elem
if @old_mode
@information_elem ||= @elem.css("td td td td td td.alt1[align=left]").first
else
@information_elem ||= @elem.css("#page-submission td td td td.alt1[align=left]").first
end
@information_elem ||= case @page_version
# when VERSION_0
# @elem.css("td td td td td td.alt1[align=left]").first
when VERSION_0, VERSION_1
@elem.css("#page-submission td td td td.alt1[align=left]").first
else unimplemented_version!
end
end
end

View File

@@ -1,15 +1,31 @@
class Domain::Fa::Parser::UserPageHelper
def initialize(elem, old_mode: false)
class Domain::Fa::Parser::UserPageHelper < Domain::Fa::Parser::Base
VERSION_0 = Domain::Fa::Parser::Page::VERSION_0
VERSION_1 = Domain::Fa::Parser::Page::VERSION_1
VERSION_2 = Domain::Fa::Parser::Page::VERSION_2
def initialize(elem, page_version)
@elem = elem
@old_mode = old_mode
@page_version = page_version
end
def name
# user names are in the form "~username", so strip the first
# char from the user's name
@name ||= begin
elem = @elem.css(".addpad.lead b").first
elem.text[1..-1] if elem
elem = case @page_version
when VERSION_0, VERSION_1
elem = @elem.css(".addpad.lead b")
when VERSION_2
@elem.css("userpage-nav-user-details username")
else
unimplemented_version!
end
elem&.
first&.
text&.
strip&.
delete_prefix("~")
end
end
@@ -22,7 +38,16 @@ class Domain::Fa::Parser::UserPageHelper
end
def registered_since
@registered_since ||= elem_after_text_match(main_about.children, /Registered/).text.strip
@registered_since ||= case @page_version
when VERSION_0, VERSION_1
elem_after_text_match(main_about.children, /Registered/).text.strip
when VERSION_2
date_str = @elem.css("username span").find do |elem|
elem&.text&.strip == "Registered:"
end&.next_sibling&.text&.strip
DateTime.parse(date_str) if date_str
else unimplemented_version!
end
end
def mood
@@ -34,33 +59,33 @@ class Domain::Fa::Parser::UserPageHelper
end
def num_pageviews
@num_pageviews ||= stat_child_int(:pvs)
@num_pageviews ||= stat_value(:pvs, 0)
end
def num_submissions
@num_submissions ||= stat_child_int(:subs)
@num_submissions ||= stat_value(:subs, 1)
end
def num_comments_recieved
@num_comments_recieved ||= stat_child_int(:crec)
@num_comments_recieved ||= stat_value(:crec, 3)
end
def num_comments_given
@num_comments_given ||= stat_child_int(:cgiv)
@num_comments_given ||= stat_value(:cgiv, 4)
end
def num_journals
@num_journals ||= stat_child_int(:njr)
@num_journals ||= stat_value(:njr, 5)
end
def num_favorites
@num_favorites ||= stat_child_int(:nfav)
@num_favorites ||= stat_value(:nfav, 2)
end
private
def stat_child_int(stat)
map = if @old_mode
def stat_value(legacy_name, redux_idx)
legacy_map = if false # old mode?
{
pvs: 2,
subs: 5,
@@ -79,14 +104,35 @@ class Domain::Fa::Parser::UserPageHelper
nfav: 22,
}
end
statistics.children[map[stat] || raise].text.strip.to_i
case @page_version
when VERSION_0, VERSION_1
statistics.children[legacy_map[legacy_name] || raise].text.strip.to_i
when VERSION_2
statistics.css(".highlight")[redux_idx]&.next_sibling&.text&.strip&.to_i
else unimplemented_version!
end
end
def statistics
@statistics ||= @elem.css(".ldot table tr:last-child td").first
@statistics ||= case @page_version
when VERSION_0, VERSION_1
@elem.css(".ldot table tr:last-child td").first
when VERSION_2
@elem.css(".userpage-layout-right-col-content .userpage-section-right").find do |child|
child.css(".section-header h2")&.first&.text&.strip == "Stats"
end
else unimplemented_version!
end
end
def main_about
@main_about ||= @elem.css(".alt1.addpad .ldot").first
@main_about ||= case @page_version
when VERSION_0, VERSION_1
@elem.css(".alt1.addpad .ldot").first
when VERSION_2
@elem.css(".section-body.userpage-profile").first
else unimplemented_version!
end
end
end

View File

@@ -52,7 +52,7 @@ class Domain::Fa::Post < ReduxApplicationRecord
uri.scheme ||= "https" if uri
if uri && !uri.host && (uri.path =~ /^\/full\//)
puts "[domain fa post] (#{legacy_post.id}) invalid path for file, skipping: #{legacy_post.file_url}"
# puts "[domain fa post] (#{legacy_post.id}) invalid path for file, skipping: #{legacy_post.file_url}"
uri = nil
elsif uri && legacy_post.blob_entry
legacy_be = legacy_post.blob_entry

View File

@@ -1,5 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- -->
<html>
@@ -38,4 +38,4 @@
</table>
</body>
</html>
</html>

View File

@@ -0,0 +1,695 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" class="no-js" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Index -- Fur Affinity [dot] net</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="Fur Affinity | For all things fluff, scaled, and feathered!" />
<meta name="keywords" content="fur furry furries fursuit fursuits cosplay brony bronies zootopia scalies kemono anthro anthropormophic art online gallery portfolio" />
<meta name="distribution" content="global" />
<meta name="copyright" content="Frost Dragon Art LLC" />
<meta name="robots" content="noai, noimageai" />
<link rel="icon" href="/themes/beta/img/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="/themes/beta/img/favicon.ico" type="image/x-icon" />
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,500,500i,600,600i,700,700i" rel="stylesheet">
<meta http-equiv="X-UA-Compatible" content="IE=9; IE=EDGE" />
<!-- og -->
<meta property="og:image" content="https://www.furaffinity.net/themes/beta/img/banners/fa_logo.png?v2" />
<!-- twitter -->
<meta name="twitter:image" content="https://www.furaffinity.net/themes/beta/img/banners/fa_logo.png?v2" />
<script type="text/javascript">
var _faurl={d:'//d.furaffinity.net',a:'//a.furaffinity.net',r:'//rv.furaffinity.net',t:'//t.furaffinity.net',pb:'/themes/beta/js/prebid-6.13.0-fa.js'};
</script>
<script type="text/javascript" src="/themes/beta/js/common.js?u=2023011700"></script>
<link type="text/css" rel="stylesheet" href="/themes/beta/css/ui_theme_dark.css?u=2023011700" />
<!-- browser hints -->
<link rel="preconnect" href="//t.furaffinity.net" />
<link rel="preconnect" href="//a.furaffinity.net" />
<link rel="preconnect" href="//rv.furaffinity.net" />
<link rel="preconnect" href="https://www15.smartadserver.com" />
<link rel="preload" href="/themes/beta/js/prototype.1.7.3.min.js" as="script" />
<link rel="preload" href="/themes/beta/js/script.js?u=2023011700" as="script" />
</head>
<!-- EU request: no -->
<body data-static-path="/themes/beta" id="pageid-frontpage">
<!-- sidebar -->
<div class="mobile-navigation">
<div class="mobile-nav-container">
<div class="mobile-nav-container-item left">
<label for="mobile-menu-nav" class="css-menu-toggle only-one"><img class="burger-menu" src="/themes/beta/img/fa-burger-menu-icon.png"></label>
</div>
<div class="mobile-nav-container-item center"><a class="mobile-nav-logo" href="/"><img class="site-logo" src="/themes/beta/img/banners/fa_logo.png?v2"></a></div>
<div class="mobile-nav-container-item right">
</div>
</div>
<div class="nav-ac-container">
<input id="mobile-menu-nav" name="accordion-1" type="checkbox" />
<article class="nav-ac-content mobile-menu">
<div class="mobile-nav-content-container">
<div class="aligncenter">
<a href="/user/zzreg/"><img class="loggedin_user_avatar avatar" alt="zzreg" src="//a.furaffinity.net/1424255659/zzreg.gif"/></a>
<h2 style="margin-bottom:0"><a href="/user/zzreg/">zzreg</a></h2>
<a href="/user/zzreg/">Userpage</a> |
<a href="/msg/pms/">Notes</a> |
<a href="/controls/journal/">Journals</a> |
<a href="/plus/"><img style="position:relative;top:4px" src="/themes/beta/img/the-golden-pawb.png"> FA+</a>
<br>
</div>
<hr>
<h2><a href="/browse/">Browse</a></h2>
<h2><a href="/search/">Search</a></h2>
<h2><a href="/submit/">Upload</a></h2>
<div class="nav-ac-container">
<label for="mobile-menu-submenu-0"><h2 style="margin-top:0;padding-top:0">Support &#x25BC;</h2></label>
<input id="mobile-menu-submenu-0" name="accordion-1" type="checkbox" />
<article class="nav-ac-content nav-ac-content-dropdown">
<a href="/journals/fender">News & Updates</a><br>
<a href="/help/">Help & Support</a><br>
<a href="/advertising.html">Advertising</a><br>
<a href="/blm">Black Lives Matter</a>
<h3>SUPPORT FA</h3>
<a href="/plus/">Subscribe to FA+ </a><br>
<a href="https://shop.furaffinity.net/">FA Merch Store</a>
<h3>RULES & POLICIES</h3>
<a href="/tos">Terms of Service</a><br>
<a href="/privacy">Privacy</a><br>
<a href="/coc">Code of Conduct</a><br>
<a href="/aup">Upload Policy</a>
<h3>SOCIAL</h3>
<a href="https://discord.gg/fur-affinity">Discord</a><br>
<a href="https://www.twitter.com/furaffinity/">Twitter</a>
<h3>Support</h3>
<a href="/controls/troubletickets/">REPORT A PROBLEM</a>
</article>
</div>
<div class="mobile-sfw-toggle">
<h2>SFW Mode</h2>
<div class="sfw-toggle type-slider slider-button-wrapper">
<input type="checkbox" id="sfw-toggle-mobile" class="slider-toggle" />
<label class="slider-viewport" for="sfw-toggle-mobile">
<div class="slider">
<div class="slider-button">&nbsp;</div>
<div class="slider-content left"><span>SFW</span></div>
<div class="slider-content right"><span>NSFW</span></div>
</div>
</label>
</div>
</div>
<div class="nav-ac-container">
<label for="mobile-menu-submenu-1"><h2 style="margin-top:0;padding-top:0">Settings &#x25BC;</h2></label>
<input id="mobile-menu-submenu-1" name="accordion-1" type="checkbox" />
<article class="nav-ac-content nav-ac-content-dropdown">
<h3>ACCOUNT INFORMATION</h3>
<a href="/controls/settings/">Account Settings</a><br>
<a href="/controls/site-settings/">Global Site Settings</a><br>
<a href="/controls/user-settings/">User Settings</a>
<h3>CUSTOMIZE USER PROFILE</h3>
<a href="/controls/profile/">Profile Info</a><br>
<a href="/controls/profilebanner/">Profile Banner</a><br>
<a href="/controls/contacts/">Contacts and Social Media</a><br>
<a href="/controls/avatar/">Avatar Management</a>
<h3>MANAGE MY CONTENT</h3>
<a href="/controls/submissions/">Submissions</a><br>
<a href="/controls/folders/submissions/">Folders</a><br>
<a href="/controls/journal/">Journals</a><br>
<a href="/controls/favorites/">Favorites</a><br>
<a href="/controls/buddylist/">Watches</a><br>
<a href="/controls/shouts/">Shouts</a><br>
<a href="/controls/badges/">Badges</a>
<h3>SECURITY</h3>
<a href="/controls/sessions/logins/">Active Sessions</a><br>
<a href="/controls/sessions/logs/">Activity Log</a><br>
<a href="/controls/sessions/labels/">Browser Labels</a>
</article>
</div>
<hr>
<hr>
<h2><form class="post-btn logout-link" method="post" action="/logout/"><button type="submit">Log Out</button><input type="hidden" name="key" value="3d571edd3040f6bd34d5c9de2c26f676a79464e8"/></form>
<script type="text/javascript">
_fajs.push(['init_logout_button', '.logout-link button']);
</script>
</h2>
<h2></h2>
</div>
</article>
</div>
</div>
<div class="mobile-notification-bar">
<a class="notification-container inline" href="/msg/submissions/" title="31,483 Submission Notifications">31483S</a>
<a class="notification-container inline" href="/msg/others/#journals" title="15,198 Journal Notifications">15198J</a>
</div>
<nav id="ddmenu">
<div class="mobile-nav navhideondesktop hideonmobile hideontablet">
<div class="mobile-nav-logo"><a class="mobile-nav-logo" href="/"><img src="/themes/beta/img/banners/fa_logo.png?v2"></a></div>
<div class="mobile-nav-header-item"><a href="/browse/">Browse</a></div>
<div class="mobile-nav-header-item"><a href="/search/">Search</a></div>
</div>
<div class="menu-icon"></div>
<ul class="navhideonmobile">
<li class="lileft"><div class="lileft hideonmobile" style="vertical-align:middle;line-height:0 !important" ><a class="top-heading" href="/"><img class="nav-bar-logo" src="/themes/beta/img/banners/fa_logo.png?v2"></a></div></li>
<li class="lileft"><a class="top-heading" href="/browse/"><div class="sprite-paw menu-space-saver hideonmobile"></div>Browse</a></li>
<li class="lileft"><a class="top-heading hideondesktop" href="/search/">Search</a></li>
<li class="lileft"><a class="top-heading" href="/submit/"><div class="sprite-upload menu-space-saver hideonmobile"></div> Upload</a></li>
<li class="lileft">
<a class="top-heading" href="#"><div class="sprite-news menu-space-saver hideonmobile"></div>Support</a>
<i class="caret"></i>
<div class="dropdown dropdown-left ">
<div class="dd-inner">
<div class="column">
<h3>Community</h3>
<a href="/journals/fender">News & Updates</a>
<a href="/help/">Help & Support</a>
<a href="/advertising.html">Advertising</a>
<a href="/blm/">Black Lives Matter</a>
<h3>Rules & Policies</h3>
<a href="/tos">Terms of Service</a>
<a href="/privacy">Privacy</a>
<a href="/coc">Code of Conduct</a>
<a href="/aup">Upload Policy</a>
<h3>Social</h3>
<a href="https://discord.gg/fur-affinity">Discord</a>
<a href="https://www.twitter.com/furaffinity/">Twitter</a>
<h3>Trouble Tickets</h3>
<a href="/controls/troubletickets/">Report a Problem</a>
</div>
</div>
</div>
</li>
<li class="lileft menu-space-saver"><a class="top-heading hideontablet" href="/plus/"><img style="position:relative;top:3px" src="/themes/beta/img/the-golden-pawb.png"> FA+</a></li>
<div class="lileft hideonmobile">
<form id="searchbox" method="get" action="/search/">
<input type="search" name="q" placeholder="SEARCH">
<a href="/search">&nbsp;</a>
</form>
</div>
<li class="message-bar-desktop">
<a class="notification-container inline" href="/msg/submissions/" title="31,483 Submission Notifications">31483S</a>
<a class="notification-container inline" href="/msg/others/#journals" title="15,198 Journal Notifications">15198J</a>
</li>
<li>
<div class="floatleft hideonmobile">
<a href="/user/zzreg"><img class="loggedin_user_avatar menubar-icon-resize avatar" style="cursor:pointer" alt="zzreg" src="//a.furaffinity.net/1424255659/zzreg.gif"/></a>
</div>
</li>
<li class="submenu-trigger">
<div class="floatleft hideonmobile">
<svg class="avatar-submenu-trigger banner-svg" xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 24 24"><path d="M4 6h16v2H4zm0 5h16v2H4zm0 5h16v2H4z"></path></svg>
</div>
<a id="my-username" class="top-heading hideondesktop" href="#"><span class="hideondesktop">My FA ( </span>zzreg<span class="hideondesktop"> )</span></a>
<div class="dropdown dropdown-right">
<div class="dd-inner">
<div class="column">
<h3>Account</h3>
<a href="/user/zzreg/">My Userpage</a>
<a href="/msg/pms/">Check My Notes</a>
<a href="/controls/journal/">Create a Journal</a>
<a href="/commissions/zzreg/">My Commission Info</a>
<h3>Support Fur Affinity</h3>
<a href="/plus/">Subscribe to FA+ </a>
<a href="https://shop.furaffinity.net/">Merch Store</a>
<h3>Trouble Tickets</h3>
<a href="/controls/troubletickets/">Report a Problem</a>
<div class="mobile-sfw-toggle">
<h3 class="padding-top:10px">Toggle SFW</h3>
<div class="sfw-toggle type-slider slider-button-wrapper" style="position:relative;top:5px">
<input type="checkbox" id="sfw-toggle-mobile" class="slider-toggle" />
<label class="slider-viewport" for="sfw-toggle-mobile">
<div class="slider">
<div class="slider-button">&nbsp;</div>
<div class="slider-content left"><span>SFW</span></div>
<div class="slider-content right"><span>NSFW</span></div>
</div>
</label>
</div>
</div>
<hr>
<form class="post-btn logout-link" method="post" action="/logout/"><button type="submit">Log Out</button><input type="hidden" name="key" value="3d571edd3040f6bd34d5c9de2c26f676a79464e8"/></form>
<script type="text/javascript">
_fajs.push(['init_logout_button', '.logout-link button']);
</script>
</div>
</div>
</div>
</li>
<li class="submenu-trigger">
<a class="top-heading" href="#"><svg class="banner-svg" xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 24 24" style="transform: ;msFilter:;"><path d="M12 16c2.206 0 4-1.794 4-4s-1.794-4-4-4-4 1.794-4 4 1.794 4 4 4zm0-6c1.084 0 2 .916 2 2s-.916 2-2 2-2-.916-2-2 .916-2 2-2z"></path><path d="m2.845 16.136 1 1.73c.531.917 1.809 1.261 2.73.73l.529-.306A8.1 8.1 0 0 0 9 19.402V20c0 1.103.897 2 2 2h2c1.103 0 2-.897 2-2v-.598a8.132 8.132 0 0 0 1.896-1.111l.529.306c.923.53 2.198.188 2.731-.731l.999-1.729a2.001 2.001 0 0 0-.731-2.732l-.505-.292a7.718 7.718 0 0 0 0-2.224l.505-.292a2.002 2.002 0 0 0 .731-2.732l-.999-1.729c-.531-.92-1.808-1.265-2.731-.732l-.529.306A8.1 8.1 0 0 0 15 4.598V4c0-1.103-.897-2-2-2h-2c-1.103 0-2 .897-2 2v.598a8.132 8.132 0 0 0-1.896 1.111l-.529-.306c-.924-.531-2.2-.187-2.731.732l-.999 1.729a2.001 2.001 0 0 0 .731 2.732l.505.292a7.683 7.683 0 0 0 0 2.223l-.505.292a2.003 2.003 0 0 0-.731 2.733zm3.326-2.758A5.703 5.703 0 0 1 6 12c0-.462.058-.926.17-1.378a.999.999 0 0 0-.47-1.108l-1.123-.65.998-1.729 1.145.662a.997.997 0 0 0 1.188-.142 6.071 6.071 0 0 1 2.384-1.399A1 1 0 0 0 11 5.3V4h2v1.3a1 1 0 0 0 .708.956 6.083 6.083 0 0 1 2.384 1.399.999.999 0 0 0 1.188.142l1.144-.661 1 1.729-1.124.649a1 1 0 0 0-.47 1.108c.112.452.17.916.17 1.378 0 .461-.058.925-.171 1.378a1 1 0 0 0 .471 1.108l1.123.649-.998 1.729-1.145-.661a.996.996 0 0 0-1.188.142 6.071 6.071 0 0 1-2.384 1.399A1 1 0 0 0 13 18.7l.002 1.3H11v-1.3a1 1 0 0 0-.708-.956 6.083 6.083 0 0 1-2.384-1.399.992.992 0 0 0-1.188-.141l-1.144.662-1-1.729 1.124-.651a1 1 0 0 0 .471-1.108z"></path></svg></a>
<div class="dropdown dropdown-right">
<div class="dd-inner">
<div class="column">
<h3>Account Information</h3>
<a href="/controls/settings/">Account Settings</a>
<a href="/controls/site-settings/">Global Site Settings</a>
<a href="/controls/user-settings/">User Settings</a>
<h3>Customize User Profile</h3>
<a href="/controls/profile/">Profile Info</a>
<a href="/controls/profilebanner/">Profile Banner</a>
<a href="/controls/contacts/">Contacts & Social Media</a>
<a href="/controls/avatar/">Avatar Management</a>
<h3>Manage My Content</h3>
<a href="/controls/submissions/">Submissions</a>
<a href="/controls/folders/submissions/">Folders</a>
<a href="/controls/journal/">Journals</a>
<a href="/controls/favorites/">Favorites</a>
<a href="/controls/buddylist/">Watches</a>
<a href="/controls/shouts/">Shouts</a>
<a href="/controls/badges/">Badges</a>
<h3>Security</h3>
<a href="/controls/sessions/logins/">Active Sessions</a>
<a href="/controls/sessions/logs/">Activity Log</a>
<a href="/controls/sessions/labels/">Browser Labels</a>
</div>
</div>
</div>
</li>
</ul>
<script type="text/javascript">
_fajs.push(['init_sfw_button', '.sfw-toggle']);
</script>
</nav>
<script type="text/javascript">
_fajs.push(function(){
// all menus that should be opened only one at a time
$$('.css-menu-toggle.only-one').invoke('observe', 'click', function(evt) {
var curr_input = $(evt.findElement('label').getAttribute('for'));
curr_input.next('.nav-ac-content').removeClassName('no-transition');
if(curr_input.checked === false) {
$$('.css-menu-toggle.only-one').each(function(elm){
var elm_input = $(elm.getAttribute('for'));
if(elm_input.checked === true) {
elm_input.next('.nav-ac-content').addClassName('no-transition');
elm_input.checked = false;
}
});
}
});
});
</script>
<div class="news-block">
</div>
<div id="main-window" class="footer-mobile-tweak g-wrapper">
<div id="header">
<!-- site banner -->
<site-banner>
<a href="/"><img src="/themes/beta/img/banners/logo/fa-banner-winter.jpg"></a>
</site-banner>
<a name="top"></a>
</div>
<div id="site-content">
<!-- /header -->
<div id="frontpage">
<div id="columnpage">
<div class="content">
<div class="leaderboardAd">
<div data-id="header_middle" class="leaderboardAd__slot format--leaderboard jsAdSlot"></div>
</div>
<section>
<div class="section-header">
<h2>Recent Submissions</h2>
</div>
<div class="section-body">
<div class="gallery-frontpage-submission-margin">
<section id="gallery-frontpage-submissions" class="gallery no-padding submissions rows-3 s-200 nodesc">
<figure id="sid-51065824" class="r-mature t-image u-gurodaddy"><b><u><a href="/view/51065824/"><img alt="" src="//t.furaffinity.net/51065824@300-1676756536.jpg" data-width="259.193" data-height="200" style="width:259.193px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065824/" title="Hospital Drawing 9">Hospital Drawing 9</a></p><p><i>by</i> <a href="/user/gurodaddy/" title="gurodaddy">gurodaddy</a></p></figcaption></figure><!--
--><figure id="sid-51065823" class="r-mature t-image u-musingfornoreason"><b><u><a href="/view/51065823/"><img alt="" src="//t.furaffinity.net/51065823@300-1676756535.jpg" data-width="266.667" data-height="200" style="width:266.667px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065823/" title="when the going gets tough">when the going gets tough</a></p><p><i>by</i> <a href="/user/musingfornoreason/" title="Musingfornoreason">Musingfornoreason</a></p></figcaption></figure><!--
--><figure id="sid-51065822" class="r-mature t-image u-kiranikavaimirin"><b><u><a href="/view/51065822/"><img alt="" src="//t.furaffinity.net/51065822@200-1676756533.jpg" data-width="134.673" data-height="200" style="width:134.673px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065822/" title="YCH">YCH</a></p><p><i>by</i> <a href="/user/kiranikavaimirin/" title="kirani_kavaimi_rin">kirani_kavaimi_rin</a></p></figcaption></figure><!--
--><figure id="sid-51065821" class="r-adult t-image u-knotty"><b><u><a href="/view/51065821/"><img alt="" src="//t.furaffinity.net/51065821@200-1676756532.jpg" data-width="197.001" data-height="200" style="width:197.001px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065821/" title="[C] Double-Quicky">[C] Double-Quicky</a></p><p><i>by</i> <a href="/user/knotty/" title="Knotty">Knotty</a></p></figcaption></figure><!--
--><figure id="sid-51065820" class="r-adult t-image u-maginciajazmine"><b><u><a href="/view/51065820/"><img alt="" src="//t.furaffinity.net/51065820@400-1676756531.jpg" data-width="326.531" data-height="200" style="width:326.531px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065820/" title="Breeding the Fluff">Breeding the Fluff</a></p><p><i>by</i> <a href="/user/maginciajazmine/" title="Magincia_Jazmine">Magincia_Jazmine</a></p></figcaption></figure><!--
--><figure id="sid-51065819" class="r-general t-image u-pyc-art"><b><u><a href="/view/51065819/"><img alt="" src="//t.furaffinity.net/51065819@200-1676756531.jpg" data-width="141.593" data-height="200" style="width:141.593px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065819/" title="[SC - Kyo316] Lord of the Stars">[SC - Kyo316] Lord of the Stars</a></p><p><i>by</i> <a href="/user/pyc-art/" title="PYC-Art">PYC-Art</a></p></figcaption></figure><!--
--><figure id="sid-51065818" class="r-mature t-image u-thatonepanman"><b><u><a href="/view/51065818/"><img alt="" src="//t.furaffinity.net/51065818@300-1676756530.jpg" data-width="276.716" data-height="200" style="width:276.716px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065818/" title="[C] Bloated Relaxation">[C] Bloated Relaxation</a></p><p><i>by</i> <a href="/user/thatonepanman/" title="ThatonePanMan">ThatonePanMan</a></p></figcaption></figure><!--
--><figure id="sid-51065817" class="r-adult t-image u-zairiza"><b><u><a href="/view/51065817/"><img alt="" src="//t.furaffinity.net/51065817@400-1676756530.jpg" data-width="355.38" data-height="200" style="width:355.38px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065817/" title="Right here!? Right here.">Right here!? Right here.</a></p><p><i>by</i> <a href="/user/zairiza/" title="Zairiza">Zairiza</a></p></figcaption></figure><!--
--><figure id="sid-51065816" class="r-general t-image u-deesketchs"><b><u><a href="/view/51065816/"><img alt="" src="//t.furaffinity.net/51065816@300-1676756523.jpg" data-width="290.957" data-height="200" style="width:290.957px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065816/" title="Dracotter Adoptable (reminder)">Dracotter Adoptable (reminder)</a></p><p><i>by</i> <a href="/user/deesketchs/" title="Deesketchs">Deesketchs</a></p></figcaption></figure><!--
--><figure id="sid-51065815" class="r-mature t-image u-bourbon."><b><u><a href="/view/51065815/"><img alt="" src="//t.furaffinity.net/51065815@200-1676756515.jpg" data-width="177.1" data-height="200" style="width:177.1px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065815/" title="Stream ONLINE">Stream ONLINE</a></p><p><i>by</i> <a href="/user/bourbon./" title="Bourbon.">Bourbon.</a></p></figcaption></figure><!--
--><figure id="sid-51065814" class="r-general t-image u-catwege"><b><u><a href="/view/51065814/"><img alt="" src="//t.furaffinity.net/51065814@300-1676756497.jpg" data-width="258.997" data-height="200" style="width:258.997px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065814/" title="Tubby Miyu WIP">Tubby Miyu WIP</a></p><p><i>by</i> <a href="/user/catwege/" title="CatWege">CatWege</a></p></figcaption></figure><!--
--><figure id="sid-51065813" class="r-general t-image u-wolfbeast99"><b><u><a href="/view/51065813/"><img alt="" src="//t.furaffinity.net/51065813@400-1676756496.jpg" data-width="355.556" data-height="200" style="width:355.556px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065813/" title="One-Bite Ref Sheet 23">One-Bite Ref Sheet 23</a></p><p><i>by</i> <a href="/user/wolfbeast99/" title="WolfBeast99">WolfBeast99</a></p></figcaption></figure><!--
--><figure id="sid-51065812" class="r-adult t-image u-knotty"><b><u><a href="/view/51065812/"><img alt="" src="//t.furaffinity.net/51065812@300-1676756494.jpg" data-width="213.011" data-height="200" style="width:213.011px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065812/" title="[C] Blaze n' Breed">[C] Blaze n' Breed</a></p><p><i>by</i> <a href="/user/knotty/" title="Knotty">Knotty</a></p></figcaption></figure><!--
--><figure id="sid-51065811" class="r-general t-image u-svanarts"><b><u><a href="/view/51065811/"><img alt="" src="//t.furaffinity.net/51065811@200-1676756490.jpg" data-width="154.416" data-height="200" style="width:154.416px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065811/" title="Sea &quot;Beast&quot;? Sea Mommy!">Sea &quot;Beast&quot;? Sea Mommy!</a></p><p><i>by</i> <a href="/user/svanarts/" title="SvanArts">SvanArts</a></p></figcaption></figure><!--
--><figure id="sid-51065810" class="r-mature t-image u-zephyr-shuriken"><b><u><a href="/view/51065810/"><img alt="" src="//t.furaffinity.net/51065810@200-1676756485.jpg" data-width="189.255" data-height="200" style="width:189.255px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065810/" title="Fanny the genie sheep">Fanny the genie sheep</a></p><p><i>by</i> <a href="/user/zephyr-shuriken/" title="Zephyr-Shuriken">Zephyr-Shuriken</a></p></figcaption></figure><!--
--><figure id="sid-51065808" class="r-adult t-image u-gurodaddy"><b><u><a href="/view/51065808/"><img alt="" src="//t.furaffinity.net/51065808@300-1676756471.jpg" data-width="258.921" data-height="200" style="width:258.921px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065808/" title="Hospital Drawing 8">Hospital Drawing 8</a></p><p><i>by</i> <a href="/user/gurodaddy/" title="gurodaddy">gurodaddy</a></p></figcaption></figure><!--
--><figure id="sid-51065807" class="r-mature t-image u-leromor"><b><u><a href="/view/51065807/"><img alt="" src="//t.furaffinity.net/51065807@200-1676756465.jpg" data-width="135" data-height="200" style="width:135px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065807/" title="🔪ADOPT REMINDER🔪">🔪ADOPT REMINDER🔪</a></p><p><i>by</i> <a href="/user/leromor/" title="leromor">leromor</a></p></figcaption></figure><!--
--><figure id="sid-51065806" class="r-adult t-image u-gelemar"><b><u><a href="/view/51065806/"><img alt="" src="//t.furaffinity.net/51065806@200-1676756458.jpg" data-width="167.21" data-height="200" style="width:167.21px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065806/" title="Appreciating Thulmul (3/5)">Appreciating Thulmul (3/5)</a></p><p><i>by</i> <a href="/user/gelemar/" title="Gelemar">Gelemar</a></p></figcaption></figure><!--
--><figure id="sid-51065805" class="r-general t-image u-dsa09"><b><u><a href="/view/51065805/"><img alt="" src="//t.furaffinity.net/51065805@200-1676756458.jpg" data-width="149.932" data-height="200" style="width:149.932px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065805/" title="Jason showing the guns">Jason showing the guns</a></p><p><i>by</i> <a href="/user/dsa09/" title="DSA09">DSA09</a></p></figcaption></figure><!--
--><figure id="sid-51065804" class="r-adult t-image u-knotty"><b><u><a href="/view/51065804/"><img alt="" src="//t.furaffinity.net/51065804@200-1676756458.jpg" data-width="200" data-height="200" style="width:200px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065804/" title="[C] Good Company">[C] Good Company</a></p><p><i>by</i> <a href="/user/knotty/" title="Knotty">Knotty</a></p></figcaption></figure><!--
--><figure id="sid-51065803" class="r-general t-image u-sabrinamero"><b><u><a href="/view/51065803/"><img alt="" src="//t.furaffinity.net/51065803@300-1676756441.jpg" data-width="281.25" data-height="200" style="width:281.25px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065803/" title="keeper of the ruins">keeper of the ruins</a></p><p><i>by</i> <a href="/user/sabrinamero/" title="SabrinaMero">SabrinaMero</a></p></figcaption></figure><!--
--><figure id="sid-51065802" class="r-adult t-image u-illegaleel"><b><u><a href="/view/51065802/"><img alt="" src="//t.furaffinity.net/51065802@200-1676756439.jpg" data-width="160.019" data-height="200" style="width:160.019px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065802/" title="bobo">bobo</a></p><p><i>by</i> <a href="/user/illegaleel/" title="Illegaleel">Illegaleel</a></p></figcaption></figure><!--
--><figure id="sid-51065801" class="r-general t-image u-brightphoenix"><b><u><a href="/view/51065801/"><img alt="" src="//t.furaffinity.net/51065801@300-1676756432.jpg" data-width="240.096" data-height="200" style="width:240.096px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065801/" title="Assassin YCH">Assassin YCH</a></p><p><i>by</i> <a href="/user/brightphoenix/" title="BrightPhoenix">BrightPhoenix</a></p></figcaption></figure><!--
--><figure id="sid-51065800" class="r-mature t-image u-yantak4"><b><u><a href="/view/51065800/"><img alt="" src="//t.furaffinity.net/51065800@200-1676756428.jpg" data-width="200" data-height="200" style="width:200px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065800/" title="Like what you see?">Like what you see?</a></p><p><i>by</i> <a href="/user/yantak4/" title="Yantak4">Yantak4</a></p></figcaption></figure><!--
--><figure id="sid-51065799" class="r-adult t-image u-knotty"><b><u><a href="/view/51065799/"><img alt="" src="//t.furaffinity.net/51065799@200-1676756422.jpg" data-width="137.101" data-height="200" style="width:137.101px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065799/" title="[C] Hefty Hat">[C] Hefty Hat</a></p><p><i>by</i> <a href="/user/knotty/" title="Knotty">Knotty</a></p></figcaption></figure><!--
--><figure id="sid-51065798" class="r-adult t-image u-gurodaddy"><b><u><a href="/view/51065798/"><img alt="" src="//t.furaffinity.net/51065798@200-1676756420.jpg" data-width="169.061" data-height="200" style="width:169.061px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065798/" title="Hospital Drawing 7">Hospital Drawing 7</a></p><p><i>by</i> <a href="/user/gurodaddy/" title="gurodaddy">gurodaddy</a></p></figcaption></figure><!--
--><figure id="sid-51065797" class="r-general t-image u-anubiiswerewolf"><b><u><a href="/view/51065797/"><img alt="" src="//t.furaffinity.net/51065797@200-1676756413.jpg" data-width="149.932" data-height="200" style="width:149.932px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065797/" title="Phoenix Rising">Phoenix Rising</a></p><p><i>by</i> <a href="/user/anubiiswerewolf/" title="anubiis_werewolf">anubiis_werewolf</a></p></figcaption></figure><!--
--><figure id="sid-51065796" class="r-mature t-image u-vllbe-adopts"><b><u><a href="/view/51065796/"><img alt="" src="//t.furaffinity.net/51065796@200-1676756412.jpg" data-width="141.904" data-height="200" style="width:141.904px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065796/" title="Deer Adopt: Gentle Desert Winds (OPEN)">Deer Adopt: Gentle Desert Winds (OPEN)</a></p><p><i>by</i> <a href="/user/vllbe-adopts/" title="VllBE-ADOPTS">VllBE-ADOPTS</a></p></figcaption></figure><!--
--><figure id="sid-51065794" class="r-general t-image u-rockbaker"><b><u><a href="/view/51065794/"><img alt="" src="//t.furaffinity.net/51065794@200-1676756406.jpg" data-width="145.358" data-height="200" style="width:145.358px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065794/" title="Pretty Kitty">Pretty Kitty</a></p><p><i>by</i> <a href="/user/rockbaker/" title="RockBaker">RockBaker</a></p></figcaption></figure><!--
--><figure id="sid-51065793" class="r-mature t-image u-musingfornoreason"><b><u><a href="/view/51065793/"><img alt="" src="//t.furaffinity.net/51065793@200-1676756397.jpg" data-width="150.63" data-height="200" style="width:150.63px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065793/" title="Bird but Stormtrooper">Bird but Stormtrooper</a></p><p><i>by</i> <a href="/user/musingfornoreason/" title="Musingfornoreason">Musingfornoreason</a></p></figcaption></figure><!--
--><figure id="sid-51065792" class="r-general t-image u-ghostheathenarts"><b><u><a href="/view/51065792/"><img alt="" src="//t.furaffinity.net/51065792@200-1676756396.jpg" data-width="159.609" data-height="200" style="width:159.609px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065792/" title="Bluey Badge YCH | ⭐ 35 GBP Each ⭐">Bluey Badge YCH | ⭐ 35 GBP Each ⭐</a></p><p><i>by</i> <a href="/user/ghostheathenarts/" title="GhostheathenArts">GhostheathenArts</a></p></figcaption></figure><!--
--><figure id="sid-51065791" class="r-adult t-image u-jesseaike"><b><u><a href="/view/51065791/"><img alt="" src="//t.furaffinity.net/51065791@400-1676756392.jpg" data-width="355.417" data-height="200" style="width:355.417px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065791/" title="a helpful distraction">a helpful distraction</a></p><p><i>by</i> <a href="/user/jesseaike/" title="Jesse_aike">Jesse_aike</a></p></figcaption></figure><!--
--><figure id="sid-51065790" class="r-general t-image u-rachybluefox"><b><u><a href="/view/51065790/"><img alt="" src="//t.furaffinity.net/51065790@200-1676756388.jpg" data-width="133.504" data-height="200" style="width:133.504px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065790/" title="Gelgato poser">Gelgato poser</a></p><p><i>by</i> <a href="/user/rachybluefox/" title="Rachybluefox">Rachybluefox</a></p></figcaption></figure><!--
--><figure id="sid-51065789" class="r-adult t-image u-nerizolikonotomie"><b><u><a href="/view/51065789/"><img alt="" src="//t.furaffinity.net/51065789@400-1676756385.jpg" data-width="300.064" data-height="200" style="width:300.064px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065789/" title="YCH REMINDER">YCH REMINDER</a></p><p><i>by</i> <a href="/user/nerizolikonotomie/" title="NerizolikOnotomie">NerizolikOnotomie</a></p></figcaption></figure><!--
--><figure id="sid-51065788" class="r-adult t-image u-knotty"><b><u><a href="/view/51065788/"><img alt="" src="//t.furaffinity.net/51065788@200-1676756384.jpg" data-width="200" data-height="200" style="width:200px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065788/" title="[C] Forceful Fornication">[C] Forceful Fornication</a></p><p><i>by</i> <a href="/user/knotty/" title="Knotty">Knotty</a></p></figcaption></figure><!--
--><figure id="sid-51065787" class="r-general t-image u-lavendersweets"><b><u><a href="/view/51065787/"><img alt="" src="//t.furaffinity.net/51065787@200-1676756384.jpg" data-width="182.198" data-height="200" style="width:182.198px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065787/" title="Bunny goo demon auction">Bunny goo demon auction</a></p><p><i>by</i> <a href="/user/lavendersweets/" title="Lavendersweets">Lavendersweets</a></p></figcaption></figure><!--
--><figure id="sid-51065786" class="r-mature t-image u-maracoarco"><b><u><a href="/view/51065786/"><img alt="" src="//t.furaffinity.net/51065786@200-1676756383.jpg" data-width="173.23" data-height="200" style="width:173.23px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065786/" title="Goo Swirly Icon alt">Goo Swirly Icon alt</a></p><p><i>by</i> <a href="/user/maracoarco/" title="MaracoArco">MaracoArco</a></p></figcaption></figure><!--
--><figure id="sid-51065785" class="r-adult t-image u-mortyfini"><b><u><a href="/view/51065785/"><img alt="" src="//t.furaffinity.net/51065785@200-1676756380.jpg" data-width="161.01" data-height="200" style="width:161.01px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065785/" title="Done Hypnosis commission for Jesam">Done Hypnosis commission for Jesam</a></p><p><i>by</i> <a href="/user/mortyfini/" title="Mortyfini">Mortyfini</a></p></figcaption></figure><!--
--><figure id="sid-51065784" class="r-adult t-image u-nicrein"><b><u><a href="/view/51065784/"><img alt="" src="//t.furaffinity.net/51065784@200-1676756377.jpg" data-width="196.364" data-height="200" style="width:196.364px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065784/" title="Pool Stretches">Pool Stretches</a></p><p><i>by</i> <a href="/user/nicrein/" title="NicRein">NicRein</a></p></figcaption></figure><!--
--><figure id="sid-51065783" class="r-general t-image u-pokemoha"><b><u><a href="/view/51065783/"><img alt="" src="//t.furaffinity.net/51065783@200-1676756374.jpg" data-width="200" data-height="200" style="width:200px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065783/" title="Belial">Belial</a></p><p><i>by</i> <a href="/user/pokemoha/" title="pokemoha">pokemoha</a></p></figcaption></figure><!--
--> </section>
</div>
<script type="text/javascript">
_fajs.push(['init_gallery', 'gallery-frontpage-submissions']);
</script>
</div>
</section>
<section>
<div class="section-header">
<h2>Recent Writing & Poetry</h2>
</div>
<div class="section-body">
<div class="gallery-frontpage-submission-margin">
<section id="gallery-frontpage-writing" class="gallery stories rows-2 s-200">
<figure id="sid-51065676" class="r-mature t-text u-aspergerdude"><b><u><a href="/view/51065676/"><img alt="" src="//t.furaffinity.net/51065676@75-1676755931.jpg" data-width="50" data-height="50" style="width:50px; height:50px"/></a></u></b><figcaption><p><a href="/view/51065676/" title="Fur apocalypse chapter 1">Fur apocalypse chapter 1</a></p><p><i>by</i> <a href="/user/aspergerdude/" title="AspergerDude">AspergerDude</a></p></figcaption></figure><!--
--><figure id="sid-51065578" class="r-mature t-text u-aspergerdude"><b><u><a href="/view/51065578/"><img alt="" src="//t.furaffinity.net/51065578@75-1676755499.jpg" data-width="50" data-height="50" style="width:50px; height:50px"/></a></u></b><figcaption><p><a href="/view/51065578/" title="Fur apocalypse chapter 2">Fur apocalypse chapter 2</a></p><p><i>by</i> <a href="/user/aspergerdude/" title="AspergerDude">AspergerDude</a></p></figcaption></figure><!--
--><figure id="sid-51065392" class="r-adult t-text u-scrumptiousguro"><b><u><a href="/view/51065392/"><img alt="" src="//t.furaffinity.net/51065392@120-1676754740.jpg" data-width="120" data-height="120" style="width:120px; height:120px"/></a></u></b><figcaption><p><a href="/view/51065392/" title="Rainbow Dash Licks Pinkie Pies Sweaty, Stinky Butthole">Rainbow Dash Licks Pinkie Pies Sweaty, Stinky Butthole</a></p><p><i>by</i> <a href="/user/scrumptiousguro/" title="ScrumptiousGuro">ScrumptiousGuro</a></p></figcaption></figure><!--
--><figure id="sid-51065355" class="r-adult t-text u-nomad93"><b><u><a href="/view/51065355/"><img alt="" src="//t.furaffinity.net/51065355@100-1676754599.jpg" data-width="100" data-height="99" style="width:100px; height:99px"/></a></u></b><figcaption><p><a href="/view/51065355/" title="The Wild World Of Animus Chapter 6">The Wild World Of Animus Chapter 6</a></p><p><i>by</i> <a href="/user/nomad93/" title="Nomad93">Nomad93</a></p></figcaption></figure><!--
--><figure id="sid-51065346" class="r-adult t-text u-doggy98"><b><u><a href="/view/51065346/"><img alt="" src="//t.furaffinity.net/51065346@75-1676754550.jpg" data-width="50" data-height="50" style="width:50px; height:50px"/></a></u></b><figcaption><p><a href="/view/51065346/" title="Crimson vs Azure Cross (Boxing">Crimson vs Azure Cross (Boxing</a></p><p><i>by</i> <a href="/user/doggy98/" title="doggy98">doggy98</a></p></figcaption></figure><!--
--><figure id="sid-51065118" class="r-general t-text u-redwolfgator99"><b><u><a href="/view/51065118/"><img alt="" src="//t.furaffinity.net/51065118@120-1676753713.jpg" data-width="120" data-height="38" style="width:120px; height:38px"/></a></u></b><figcaption><p><a href="/view/51065118/" title="Lost Keruberosu video log">Lost Keruberosu video log</a></p><p><i>by</i> <a href="/user/redwolfgator99/" title="RedWolfGator99">RedWolfGator99</a></p></figcaption></figure><!--
--><figure id="sid-51064972" class="r-adult t-text u-fixedwithstring"><b><u><a href="/view/51064972/"><img alt="" src="//t.furaffinity.net/51064972@75-1676753120.jpg" data-width="50" data-height="50" style="width:50px; height:50px"/></a></u></b><figcaption><p><a href="/view/51064972/" title="Everyday dicknipples 4">Everyday dicknipples 4</a></p><p><i>by</i> <a href="/user/fixedwithstring/" title="fixedwithstring">fixedwithstring</a></p></figcaption></figure><!--
--><figure id="sid-51064941" class="r-mature t-text u-walt46"><b><u><a href="/view/51064941/"><img alt="" src="//t.furaffinity.net/51064941@120-1676753004.jpg" data-width="71" data-height="120" style="width:71px; height:120px"/></a></u></b><figcaption><p><a href="/view/51064941/" title="Story: Balance">Story: Balance</a></p><p><i>by</i> <a href="/user/walt46/" title="Walt46">Walt46</a></p></figcaption></figure><!--
--><figure id="sid-51064774" class="r-adult t-text u-ookook"><b><u><a href="/view/51064774/"><img alt="" src="//t.furaffinity.net/51064774@120-1676752310.jpg" data-width="120" data-height="120" style="width:120px; height:120px"/></a></u></b><figcaption><p><a href="/view/51064774/" title="Movies These Days...">Movies These Days...</a></p><p><i>by</i> <a href="/user/ookook/" title="OokOok">OokOok</a></p></figcaption></figure><!--
--><figure id="sid-51064595" class="r-mature t-text u-gara-the-author"><b><u><a href="/view/51064595/"><img alt="" src="//t.furaffinity.net/51064595@120-1676751600.jpg" data-width="120" data-height="120" style="width:120px; height:120px"/></a></u></b><figcaption><p><a href="/view/51064595/" title="Whining About Wine">Whining About Wine</a></p><p><i>by</i> <a href="/user/gara-the-author/" title="Gara-The-Author">Gara-The-Author</a></p></figcaption></figure><!--
--><figure id="sid-51064314" class="r-general t-text u-hypnobunfun"><b><u><a href="/view/51064314/"><img alt="" src="//t.furaffinity.net/51064314@75-1676750574.jpg" data-width="50" data-height="50" style="width:50px; height:50px"/></a></u></b><figcaption><p><a href="/view/51064314/" title="The lost and found (hypno park part 3)">The lost and found (hypno park part 3)</a></p><p><i>by</i> <a href="/user/hypnobunfun/" title="HypnoBunFun">HypnoBunFun</a></p></figcaption></figure><!--
--><figure id="sid-51063639" class="r-adult t-text u-gaymerlin"><b><u><a href="/view/51063639/"><img alt="" src="//t.furaffinity.net/51063639@75-1676747772.jpg" data-width="50" data-height="50" style="width:50px; height:50px"/></a></u></b><figcaption><p><a href="/view/51063639/" title="The big Decision to became a Whore!">The big Decision to became a Whore!</a></p><p><i>by</i> <a href="/user/gaymerlin/" title="GayMerLin">GayMerLin</a></p></figcaption></figure><!--
--><figure id="sid-51063538" class="r-general t-text u-howie0107"><b><u><a href="/view/51063538/"><img alt="" src="//t.furaffinity.net/51063538@120-1676747139.jpg" data-width="102" data-height="120" style="width:102px; height:120px"/></a></u></b><figcaption><p><a href="/view/51063538/" title="Dynamic Patrol: Gel Squad (Ch 17): Fallen City">Dynamic Patrol: Gel Squad (Ch 17): Fallen City</a></p><p><i>by</i> <a href="/user/howie0107/" title="Howie0107">Howie0107</a></p></figcaption></figure><!--
--><figure id="sid-51063429" class="r-adult t-text u-snuffstoryanonymus"><b><u><a href="/view/51063429/"><img alt="" src="//t.furaffinity.net/51063429@120-1676746646.jpg" data-width="120" data-height="120" style="width:120px; height:120px"/></a></u></b><figcaption><p><a href="/view/51063429/" title="Coroner's report 3">Coroner's report 3</a></p><p><i>by</i> <a href="/user/snuffstoryanonymus/" title="SnuffStoryAnonymus">SnuffStoryAnonymus</a></p></figcaption></figure><!--
--><figure id="sid-51063422" class="r-general t-text u-mekal"><b><u><a href="/view/51063422/"><img alt="" src="//t.furaffinity.net/51063422@75-1676746701.jpg" data-width="50" data-height="50" style="width:50px; height:50px"/></a></u></b><figcaption><p><a href="/view/51063422/" title="The Transplant System, presentation">The Transplant System, presentation</a></p><p><i>by</i> <a href="/user/mekal/" title="Mekal">Mekal</a></p></figcaption></figure><!--
--><figure id="sid-51063411" class="r-mature t-text u-novasaber97"><b><u><a href="/view/51063411/"><img alt="" src="//t.furaffinity.net/51063411@120-1676746564.jpg" data-width="90" data-height="120" style="width:90px; height:120px"/></a></u></b><figcaption><p><a href="/view/51063411/" title="The Hunt for the new Assassin">The Hunt for the new Assassin</a></p><p><i>by</i> <a href="/user/novasaber97/" title="NovaSaber97">NovaSaber97</a></p></figcaption></figure><!--
--><figure id="sid-51063276" class="r-adult t-text u-maybelolcomms"><b><u><a href="/view/51063276/"><img alt="" src="//t.furaffinity.net/51063276@120-1676745899.jpg" data-width="120" data-height="120" style="width:120px; height:120px"/></a></u></b><figcaption><p><a href="/view/51063276/" title="Tsuyu's Officially My Girlfriend">Tsuyu's Officially My Girlfriend</a></p><p><i>by</i> <a href="/user/maybelolcomms/" title="Maybelolcomms">Maybelolcomms</a></p></figcaption></figure><!--
--><figure id="sid-51063226" class="r-mature t-text u-glassrocks"><b><u><a href="/view/51063226/"><img alt="" src="//t.furaffinity.net/51063226@200-1676745603.jpg" data-width="148.11" data-height="200" style="width:148.11px; height:200px"/></a></u></b><figcaption><p><a href="/view/51063226/" title="Tummy tunes (Short story)">Tummy tunes (Short story)</a></p><p><i>by</i> <a href="/user/glassrocks/" title="glassrocks">glassrocks</a></p></figcaption></figure><!--
--><figure id="sid-51063215" class="r-adult t-text u-furrylesbianarmy"><b><u><a href="/view/51063215/"><img alt="" src="//t.furaffinity.net/51063215@75-1676745500.jpg" data-width="50" data-height="50" style="width:50px; height:50px"/></a></u></b><figcaption><p><a href="/view/51063215/" title="Love Supreme (Fur34 script)">Love Supreme (Fur34 script)</a></p><p><i>by</i> <a href="/user/furrylesbianarmy/" title="FurryLesbianArmy">FurryLesbianArmy</a></p></figcaption></figure><!--
--><figure id="sid-51063106" class="r-adult t-text u-scrumptiousguro"><b><u><a href="/view/51063106/"><img alt="" src="//t.furaffinity.net/51063106@120-1676745029.jpg" data-width="120" data-height="120" style="width:120px; height:120px"/></a></u></b><figcaption><p><a href="/view/51063106/" title="King of Lasses Episode1- Isabelle">King of Lasses Episode1- Isabelle</a></p><p><i>by</i> <a href="/user/scrumptiousguro/" title="ScrumptiousGuro">ScrumptiousGuro</a></p></figcaption></figure><!--
--><figure id="sid-51063098" class="r-mature t-text u-novasaber97"><b><u><a href="/view/51063098/"><img alt="" src="//t.furaffinity.net/51063098@120-1676744988.jpg" data-width="97" data-height="120" style="width:97px; height:120px"/></a></u></b><figcaption><p><a href="/view/51063098/" title="Capturing a new Huntress">Capturing a new Huntress</a></p><p><i>by</i> <a href="/user/novasaber97/" title="NovaSaber97">NovaSaber97</a></p></figcaption></figure><!--
--><figure id="sid-51063096" class="r-general t-text u-lostandwhatever"><b><u><a href="/view/51063096/"><img alt="" src="//t.furaffinity.net/51063096@75-1676745003.jpg" data-width="50" data-height="50" style="width:50px; height:50px"/></a></u></b><figcaption><p><a href="/view/51063096/" title="Any Day but Halloween">Any Day but Halloween</a></p><p><i>by</i> <a href="/user/lostandwhatever/" title="lostandwhatever">lostandwhatever</a></p></figcaption></figure><!--
--><figure id="sid-51062965" class="r-adult t-text u-snowyfolfsky"><b><u><a href="/view/51062965/"><img alt="" src="//t.furaffinity.net/51062965@75-1676744276.jpg" data-width="50" data-height="50" style="width:50px; height:50px"/></a></u></b><figcaption><p><a href="/view/51062965/" title="PSA (Public Swamp Announcement)">PSA (Public Swamp Announcement)</a></p><p><i>by</i> <a href="/user/snowyfolfsky/" title="Snowy_Folfsky">Snowy_Folfsky</a></p></figcaption></figure><!--
--><figure id="sid-51062951" class="r-mature t-text u-milkymoofficial"><b><u><a href="/view/51062951/"><img alt="" src="//t.furaffinity.net/51062951@300-1676744228.jpg" data-width="228.158" data-height="200" style="width:228.158px; height:200px"/></a></u></b><figcaption><p><a href="/view/51062951/" title="(COM) Trapped in Cheris Cheeks">(COM) Trapped in Cheris Cheeks</a></p><p><i>by</i> <a href="/user/milkymoofficial/" title="Milkymoofficial">Milkymoofficial</a></p></figcaption></figure><!--
--> </section>
</div>
<script type="text/javascript">
_fajs.push(['init_gallery', 'gallery-frontpage-writing']);
</script>
</div>
</section>
<section>
<div class="section-header">
<h2>Recent Music & Audio</h2>
</div>
<div class="section-body">
<div class="gallery-frontpage-submission-margin">
<section id="gallery-frontpage-music" class="gallery music rows-2 s-200">
<figure id="sid-51064358" class="r-general t-audio u-skewb"><b><u><a href="/view/51064358/"><img alt="" src="//t.furaffinity.net/51064358@100-1676750742.jpg" data-width="100" data-height="100" style="width:100px; height:100px"/></a></u></b><figcaption><p><a href="/view/51064358/" title="[DnB] Grounder">[DnB] Grounder</a></p><p><i>by</i> <a href="/user/skewb/" title="Skewb">Skewb</a></p></figcaption></figure><!--
--><figure id="sid-51063370" class="r-general t-audio u-accursedstar"><b><u><a href="/view/51063370/"><img alt="" src="//t.furaffinity.net/51063370@120-1676746413.jpg" data-width="120" data-height="120" style="width:120px; height:120px"/></a></u></b><figcaption><p><a href="/view/51063370/" title="echolalia - I want a sister">echolalia - I want a sister</a></p><p><i>by</i> <a href="/user/accursedstar/" title="accursedstar">accursedstar</a></p></figcaption></figure><!--
--><figure id="sid-51063323" class="r-general t-audio u-accursedstar"><b><u><a href="/view/51063323/"><img alt="" src="//t.furaffinity.net/51063323@120-1676746150.jpg" data-width="120" data-height="120" style="width:120px; height:120px"/></a></u></b><figcaption><p><a href="/view/51063323/" title="negative miracle - abrade">negative miracle - abrade</a></p><p><i>by</i> <a href="/user/accursedstar/" title="accursedstar">accursedstar</a></p></figcaption></figure><!--
--><figure id="sid-51063297" class="r-general t-audio u-accursedstar"><b><u><a href="/view/51063297/"><img alt="" src="//t.furaffinity.net/51063297@120-1676745988.jpg" data-width="120" data-height="120" style="width:120px; height:120px"/></a></u></b><figcaption><p><a href="/view/51063297/" title="negative miracle - sick little puppy">negative miracle - sick little puppy</a></p><p><i>by</i> <a href="/user/accursedstar/" title="accursedstar">accursedstar</a></p></figcaption></figure><!--
--><figure id="sid-51062047" class="r-general t-audio u-theretrospecter"><b><u><a href="/view/51062047/"><img alt="" src="//t.furaffinity.net/51062047@120-1676739479.jpg" data-width="120" data-height="68" style="width:120px; height:68px"/></a></u></b><figcaption><p><a href="/view/51062047/" title="SONG ADOPTABLE #5 - DIGITAL DIRGE [OPEN]">SONG ADOPTABLE #5 - DIGITAL DIRGE [OPEN]</a></p><p><i>by</i> <a href="/user/theretrospecter/" title="TheRetroSpecter">TheRetroSpecter</a></p></figcaption></figure><!--
--><figure id="sid-51061780" class="r-general t-audio u-hoovokware"><b><u><a href="/view/51061780/"><img alt="" src="//t.furaffinity.net/51061780@120-1676737838.jpg" data-width="120" data-height="120" style="width:120px; height:120px"/></a></u></b><figcaption><p><a href="/view/51061780/" title="MrBeast Vs Squid Game (random myspace remix)">MrBeast Vs Squid Game (random myspace remix)</a></p><p><i>by</i> <a href="/user/hoovokware/" title="HoovokWare">HoovokWare</a></p></figcaption></figure><!--
--><figure id="sid-51061486" class="r-general t-audio u-arisen19"><b><u><a href="/view/51061486/"><img alt="" src="//t.furaffinity.net/51061486@120-1676735924.jpg" data-width="120" data-height="106" style="width:120px; height:106px"/></a></u></b><figcaption><p><a href="/view/51061486/" title="Danger">Danger</a></p><p><i>by</i> <a href="/user/arisen19/" title="Arisen_19">Arisen_19</a></p></figcaption></figure><!--
--><figure id="sid-51060403" class="r-mature t-audio u-renamonlove"><b><u><a href="/view/51060403/"><img alt="" src="//t.furaffinity.net/51060403@75-1676726957.jpg" data-width="50" data-height="50" style="width:50px; height:50px"/></a></u></b><figcaption><p><a href="/view/51060403/" title="Gene Gadget Zone ~ Scream (Michael Jackson &amp; Sonic Mashup)">Gene Gadget Zone ~ Scream (Michael Jackson &amp; Sonic Mashup)</a></p><p><i>by</i> <a href="/user/renamonlove/" title="RenamonLove">RenamonLove</a></p></figcaption></figure><!--
--><figure id="sid-51060258" class="r-general t-audio u-hyusky"><b><u><a href="/view/51060258/"><img alt="" src="//t.furaffinity.net/51060258@120-1676725403.jpg" data-width="120" data-height="120" style="width:120px; height:120px"/></a></u></b><figcaption><p><a href="/view/51060258/" title="Inevitable (In Tribute to My Mom, 1973-2023)">Inevitable (In Tribute to My Mom, 1973-2023)</a></p><p><i>by</i> <a href="/user/hyusky/" title="Hyusky">Hyusky</a></p></figcaption></figure><!--
--><figure id="sid-51060057" class="r-general t-audio u-skunk-girl-keko714"><b><u><a href="/view/51060057/"><img alt="" src="//t.furaffinity.net/51060057@75-1676723377.jpg" data-width="50" data-height="50" style="width:50px; height:50px"/></a></u></b><figcaption><p><a href="/view/51060057/" title="Daisuke's intro">Daisuke's intro</a></p><p><i>by</i> <a href="/user/skunk-girl-keko714/" title="Skunk-girl-keko714">Skunk-girl-keko714</a></p></figcaption></figure><!--
--><figure id="sid-51060020" class="r-general t-audio u-fantasy2melody"><b><u><a href="/view/51060020/"><img alt="" src="//t.furaffinity.net/51060020@120-1676723001.jpg" data-width="120" data-height="79" style="width:120px; height:79px"/></a></u></b><figcaption><p><a href="/view/51060020/" title="Piano emotions no. 2 &quot;Nostalgia&quot;">Piano emotions no. 2 &quot;Nostalgia&quot;</a></p><p><i>by</i> <a href="/user/fantasy2melody/" title="fantasy2melody">fantasy2melody</a></p></figcaption></figure><!--
--><figure id="sid-51059891" class="r-general t-audio u-fantasy2melody"><b><u><a href="/view/51059891/"><img alt="" src="//t.furaffinity.net/51059891@120-1676721215.jpg" data-width="120" data-height="120" style="width:120px; height:120px"/></a></u></b><figcaption><p><a href="/view/51059891/" title="Lullaby for Harp and Flute">Lullaby for Harp and Flute</a></p><p><i>by</i> <a href="/user/fantasy2melody/" title="fantasy2melody">fantasy2melody</a></p></figcaption></figure><!--
--><figure id="sid-51059676" class="r-general t-audio u-2dto3d"><b><u><a href="/view/51059676/"><img alt="" src="//t.furaffinity.net/51059676@120-1676718653.jpg" data-width="120" data-height="120" style="width:120px; height:120px"/></a></u></b><figcaption><p><a href="/view/51059676/" title="Touching Polygon Grass (Demo)">Touching Polygon Grass (Demo)</a></p><p><i>by</i> <a href="/user/2dto3d/" title="2Dto3D">2Dto3D</a></p></figcaption></figure><!--
--><figure id="sid-51059658" class="r-general t-audio u-hoovokware"><b><u><a href="/view/51059658/"><img alt="" src="//t.furaffinity.net/51059658@120-1676718489.jpg" data-width="120" data-height="90" style="width:120px; height:90px"/></a></u></b><figcaption><p><a href="/view/51059658/" title="Dissolve (into the Acid Basslines) - .hoovokware">Dissolve (into the Acid Basslines) - .hoovokware</a></p><p><i>by</i> <a href="/user/hoovokware/" title="HoovokWare">HoovokWare</a></p></figcaption></figure><!--
--><figure id="sid-51059253" class="r-general t-audio u-alfredblaze"><b><u><a href="/view/51059253/"><img alt="" src="//t.furaffinity.net/51059253@120-1676713467.jpg" data-width="120" data-height="72" style="width:120px; height:72px"/></a></u></b><figcaption><p><a href="/view/51059253/" title="OBSIDIA">OBSIDIA</a></p><p><i>by</i> <a href="/user/alfredblaze/" title="Alfred_Blaze">Alfred_Blaze</a></p></figcaption></figure><!--
--><figure id="sid-51059187" class="r-general t-audio u-skunk-girl-keko714"><b><u><a href="/view/51059187/"><img alt="" src="//t.furaffinity.net/51059187@75-1676712319.jpg" data-width="50" data-height="50" style="width:50px; height:50px"/></a></u></b><figcaption><p><a href="/view/51059187/" title="Sayuri's intro">Sayuri's intro</a></p><p><i>by</i> <a href="/user/skunk-girl-keko714/" title="Skunk-girl-keko714">Skunk-girl-keko714</a></p></figcaption></figure><!--
--><figure id="sid-51058530" class="r-adult t-audio u-rutokosteam"><b><u><a href="/view/51058530/"><img alt="" src="//t.furaffinity.net/51058530@75-1676704828.jpg" data-width="50" data-height="50" style="width:50px; height:50px"/></a></u></b><figcaption><p><a href="/view/51058530/" title="Dullahan on the Trail">Dullahan on the Trail</a></p><p><i>by</i> <a href="/user/rutokosteam/" title="RutokoSteam">RutokoSteam</a></p></figcaption></figure><!--
--><figure id="sid-51058472" class="r-general t-audio u-wesleymusician"><b><u><a href="/view/51058472/"><img alt="" src="//t.furaffinity.net/51058472@120-1676704209.jpg" data-width="120" data-height="118" style="width:120px; height:118px"/></a></u></b><figcaption><p><a href="/view/51058472/" title="Ashed Wings (Fanmake instrumental)">Ashed Wings (Fanmake instrumental)</a></p><p><i>by</i> <a href="/user/wesleymusician/" title="Wesley_Musician">Wesley_Musician</a></p></figcaption></figure><!--
--><figure id="sid-51058267" class="r-general t-audio u-wesleymusician"><b><u><a href="/view/51058267/"><img alt="" src="//t.furaffinity.net/51058267@120-1676701889.jpg" data-width="120" data-height="120" style="width:120px; height:120px"/></a></u></b><figcaption><p><a href="/view/51058267/" title="Exit this Crystallize Earth's atmosphere">Exit this Crystallize Earth's atmosphere</a></p><p><i>by</i> <a href="/user/wesleymusician/" title="Wesley_Musician">Wesley_Musician</a></p></figcaption></figure><!--
--><figure id="sid-51058011" class="r-general t-audio u-wirez"><b><u><a href="/view/51058011/"><img alt="" src="//t.furaffinity.net/51058011@120-1676699471.jpg" data-width="120" data-height="120" style="width:120px; height:120px"/></a></u></b><figcaption><p><a href="/view/51058011/" title="Neutron Decay">Neutron Decay</a></p><p><i>by</i> <a href="/user/wirez/" title="Wirez">Wirez</a></p></figcaption></figure><!--
--><figure id="sid-51057966" class="r-general t-audio u-itsjammies"><b><u><a href="/view/51057966/"><img alt="" src="//t.furaffinity.net/51057966@120-1676699055.jpg" data-width="120" data-height="120" style="width:120px; height:120px"/></a></u></b><figcaption><p><a href="/view/51057966/" title="ottercore bitpop uwu">ottercore bitpop uwu</a></p><p><i>by</i> <a href="/user/itsjammies/" title="itsjammies">itsjammies</a></p></figcaption></figure><!--
--><figure id="sid-51057961" class="r-general t-audio u-thebird"><b><u><a href="/view/51057961/"><img alt="" src="//t.furaffinity.net/51057961@120-1676699162.jpg" data-width="120" data-height="120" style="width:120px; height:120px"/></a></u></b><figcaption><p><a href="/view/51057961/" title="Bareina">Bareina</a></p><p><i>by</i> <a href="/user/thebird/" title="TheBird">TheBird</a></p></figcaption></figure><!--
--><figure id="sid-51057830" class="r-general t-audio u-croctheprotogen"><b><u><a href="/view/51057830/"><img alt="" src="//t.furaffinity.net/51057830@120-1676697732.jpg" data-width="120" data-height="67" style="width:120px; height:67px"/></a></u></b><figcaption><p><a href="/view/51057830/" title="Five Nights At Freddy's Song by The Living Tombstone">Five Nights At Freddy's Song by The Living Tombstone</a></p><p><i>by</i> <a href="/user/croctheprotogen/" title="Croc_The_Protogen">Croc_The_Protogen</a></p></figcaption></figure><!--
--><figure id="sid-51057551" class="r-general t-audio u-overlygenericseal"><b><u><a href="/view/51057551/"><img alt="" src="//t.furaffinity.net/51057551@120-1676695494.jpg" data-width="120" data-height="100" style="width:120px; height:100px"/></a></u></b><figcaption><p><a href="/view/51057551/" title="idk what to title this but its from one of the south park ga">idk what to title this but its from one of the south park ga</a></p><p><i>by</i> <a href="/user/overlygenericseal/" title="overlygenericseal">overlygenericseal</a></p></figcaption></figure><!--
--> </section>
</div>
<script type="text/javascript">
_fajs.push(['init_gallery', 'gallery-frontpage-music']);
</script>
</div>
</section>
<section>
<div class="section-header">
<h2>Fursuiting & Crafts</h2>
</div>
<div class="section-body">
<div class="gallery-frontpage-submission-margin">
<section id="gallery-frontpage-crafts" class="gallery crafts rows-2 s-200 nodesc">
<figure id="sid-51065396" class="r-general t-image u-lobitaworks"><b><u><a href="/view/51065396/"><img alt="" src="//t.furaffinity.net/51065396@200-1676754768.jpg" data-width="198.241" data-height="200" style="width:198.241px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065396/" title="Fursuit Prop Plush Blunts">Fursuit Prop Plush Blunts</a></p><p><i>by</i> <a href="/user/lobitaworks/" title="LobitaWorks">LobitaWorks</a></p></figcaption></figure><!--
--><figure id="sid-51065303" class="r-general t-image u-wachuleruxx"><b><u><a href="/view/51065303/"><img alt="" src="//t.furaffinity.net/51065303@200-1676754406.jpg" data-width="160.019" data-height="200" style="width:160.019px; height:200px"/></a></u></b><figcaption><p><a href="/view/51065303/" title="Sinksel pokemon OC">Sinksel pokemon OC</a></p><p><i>by</i> <a href="/user/wachuleruxx/" title="WaChuLeRuXx">WaChuLeRuXx</a></p></figcaption></figure><!--
--><figure id="sid-51065013" class="r-general t-image u-franciscohell"><b><u><a href="/view/51065013/"><img alt="" src="//t.furaffinity.net/51065013@400-1676753293.jpg" data-width="400" data-height="179.874" style="width:400px; height:179.874px"/></a></u></b><figcaption><p><a href="/view/51065013/" title="First">First</a></p><p><i>by</i> <a href="/user/franciscohell/" title="Franciscohell">Franciscohell</a></p></figcaption></figure><!--
--><figure id="sid-51064779" class="r-general t-image u-franciscohell"><b><u><a href="/view/51064779/"><img alt="" src="//t.furaffinity.net/51064779@400-1676752325.jpg" data-width="400" data-height="179.874" style="width:400px; height:179.874px"/></a></u></b><figcaption><p><a href="/view/51064779/" title="Creation 2d fil de fers.">Creation 2d fil de fers.</a></p><p><i>by</i> <a href="/user/franciscohell/" title="Franciscohell">Franciscohell</a></p></figcaption></figure><!--
--><figure id="sid-51064689" class="r-general t-image u-franciscohell"><b><u><a href="/view/51064689/"><img alt="" src="//t.furaffinity.net/51064689@400-1676751995.jpg" data-width="400" data-height="179.874" style="width:400px; height:179.874px"/></a></u></b><figcaption><p><a href="/view/51064689/" title="Creation fil de fers.">Creation fil de fers.</a></p><p><i>by</i> <a href="/user/franciscohell/" title="Franciscohell">Franciscohell</a></p></figcaption></figure><!--
--><figure id="sid-51064531" class="r-general t-image u-stitcheduphandmade"><b><u><a href="/view/51064531/"><img alt="" src="//t.furaffinity.net/51064531@300-1676751380.jpg" data-width="266.787" data-height="200" style="width:266.787px; height:200px"/></a></u></b><figcaption><p><a href="/view/51064531/" title="Apple Whale Plush - For Sale">Apple Whale Plush - For Sale</a></p><p><i>by</i> <a href="/user/stitcheduphandmade/" title="StitchedUpHandmade">StitchedUpHandmade</a></p></figcaption></figure><!--
--><figure id="sid-51064319" class="r-general t-image u-sayvaris"><b><u><a href="/view/51064319/"><img alt="" src="//t.furaffinity.net/51064319@400-1676750606.jpg" data-width="320.105" data-height="200" style="width:320.105px; height:200px"/></a></u></b><figcaption><p><a href="/view/51064319/" title="Dragon Haku ART handmade doll">Dragon Haku ART handmade doll</a></p><p><i>by</i> <a href="/user/sayvaris/" title="Sayvaris">Sayvaris</a></p></figcaption></figure><!--
--><figure id="sid-51063663" class="r-general t-image u-murchman-creations"><b><u><a href="/view/51063663/"><img alt="" src="//t.furaffinity.net/51063663@300-1676747916.jpg" data-width="266.787" data-height="200" style="width:266.787px; height:200px"/></a></u></b><figcaption><p><a href="/view/51063663/" title="Pony Bead Beaver">Pony Bead Beaver</a></p><p><i>by</i> <a href="/user/murchman-creations/" title="murchman-creations">murchman-creations</a></p></figcaption></figure><!--
--><figure id="sid-51062626" class="r-general t-image u-bomzzzik"><b><u><a href="/view/51062626/"><img alt="" src="//t.furaffinity.net/51062626@300-1676742387.jpg" data-width="288.791" data-height="200" style="width:288.791px; height:200px"/></a></u></b><figcaption><p><a href="/view/51062626/" title="Alilkira mini figure">Alilkira mini figure</a></p><p><i>by</i> <a href="/user/bomzzzik/" title="BomzZzik">BomzZzik</a></p></figcaption></figure><!--
--><figure id="sid-51062251" class="r-general t-image u-sarahcat"><b><u><a href="/view/51062251/"><img alt="" src="//t.furaffinity.net/51062251@400-1676740578.jpg" data-width="315.239" data-height="200" style="width:315.239px; height:200px"/></a></u></b><figcaption><p><a href="/view/51062251/" title="Whisper Rhea Aussie Shepherd Fullsuit">Whisper Rhea Aussie Shepherd Fullsuit</a></p><p><i>by</i> <a href="/user/sarahcat/" title="Sarahcat">Sarahcat</a></p></figcaption></figure><!--
--><figure id="sid-51062077" class="r-general t-image u-appledew"><b><u><a href="/view/51062077/"><img alt="" src="//t.furaffinity.net/51062077@400-1676739657.jpg" data-width="400" data-height="171.234" style="width:400px; height:171.234px"/></a></u></b><figcaption><p><a href="/view/51062077/" title="Kel the Sergal Plush (OC)">Kel the Sergal Plush (OC)</a></p><p><i>by</i> <a href="/user/appledew/" title="AppleDew">AppleDew</a></p></figcaption></figure><!--
--><figure id="sid-51061296" class="r-general t-image u-chupakaibra"><b><u><a href="/view/51061296/"><img alt="" src="//t.furaffinity.net/51061296@200-1676734570.jpg" data-width="150.625" data-height="200" style="width:150.625px; height:200px"/></a></u></b><figcaption><p><a href="/view/51061296/" title="oh yeah, I'm a giant cat now">oh yeah, I'm a giant cat now</a></p><p><i>by</i> <a href="/user/chupakaibra/" title="chupakaibra">chupakaibra</a></p></figcaption></figure><!--
--><figure id="sid-51061247" class="r-general t-image u-darkmustang1"><b><u><a href="/view/51061247/"><img alt="" src="//t.furaffinity.net/51061247@400-1676734229.jpg" data-width="319.6" data-height="200" style="width:319.6px; height:200px"/></a></u></b><figcaption><p><a href="/view/51061247/" title="Commissions are Open!">Commissions are Open!</a></p><p><i>by</i> <a href="/user/darkmustang1/" title="Darkmustang1">Darkmustang1</a></p></figcaption></figure><!--
--><figure id="sid-51061001" class="r-general t-image u-vaska"><b><u><a href="/view/51061001/"><img alt="" src="//t.furaffinity.net/51061001@200-1676732493.jpg" data-width="133.301" data-height="200" style="width:133.301px; height:200px"/></a></u></b><figcaption><p><a href="/view/51061001/" title="Theo's muffins">Theo's muffins</a></p><p><i>by</i> <a href="/user/vaska/" title="vaska">vaska</a></p></figcaption></figure><!--
--><figure id="sid-51060989" class="r-mature t-image u-ricanwolf"><b><u><a href="/view/51060989/"><img alt="" src="//t.furaffinity.net/51060989@300-1676732439.jpg" data-width="217.181" data-height="200" style="width:217.181px; height:200px"/></a></u></b><figcaption><p><a href="/view/51060989/" title="Lola 3D Figure">Lola 3D Figure</a></p><p><i>by</i> <a href="/user/ricanwolf/" title="RicanWolf">RicanWolf</a></p></figcaption></figure><!--
--><figure id="sid-51060561" class="r-general t-image u-stitcheduphandmade"><b><u><a href="/view/51060561/"><img alt="" src="//t.furaffinity.net/51060561@300-1676728571.jpg" data-width="266.787" data-height="200" style="width:266.787px; height:200px"/></a></u></b><figcaption><p><a href="/view/51060561/" title="Green Cat Coaster - FS">Green Cat Coaster - FS</a></p><p><i>by</i> <a href="/user/stitcheduphandmade/" title="StitchedUpHandmade">StitchedUpHandmade</a></p></figcaption></figure><!--
--><figure id="sid-51060081" class="r-general t-image u-meowich"><b><u><a href="/view/51060081/"><img alt="" src="//t.furaffinity.net/51060081@200-1676723687.jpg" data-width="150" data-height="200" style="width:150px; height:200px"/></a></u></b><figcaption><p><a href="/view/51060081/" title="Hyde">Hyde</a></p><p><i>by</i> <a href="/user/meowich/" title="meowich">meowich</a></p></figcaption></figure><!--
--><figure id="sid-51059962" class="r-general t-image u-carolinafire"><b><u><a href="/view/51059962/"><img alt="" src="//t.furaffinity.net/51059962@200-1676722112.jpg" data-width="92.417" data-height="200" style="width:92.417px; height:200px"/></a></u></b><figcaption><p><a href="/view/51059962/" title="Welsh Corgi Pembroke">Welsh Corgi Pembroke</a></p><p><i>by</i> <a href="/user/carolinafire/" title="Carolina_Fire">Carolina_Fire</a></p></figcaption></figure><!--
--><figure id="sid-51059720" class="r-mature t-image u-spacebunnyworkshop"><b><u><a href="/view/51059720/"><img alt="" src="//t.furaffinity.net/51059720@300-1676719258.jpg" data-width="255.981" data-height="200" style="width:255.981px; height:200px"/></a></u></b><figcaption><p><a href="/view/51059720/" title="Bunny Quin figurine">Bunny Quin figurine</a></p><p><i>by</i> <a href="/user/spacebunnyworkshop/" title="Space_Bunny_Workshop">Space_Bunny_Workshop</a></p></figcaption></figure><!--
--><figure id="sid-51059155" class="r-general t-image u-rkw"><b><u><a href="/view/51059155/"><img alt="" src="//t.furaffinity.net/51059155@200-1676711882.jpg" data-width="154.667" data-height="200" style="width:154.667px; height:200px"/></a></u></b><figcaption><p><a href="/view/51059155/" title="Kalupalik - rear view">Kalupalik - rear view</a></p><p><i>by</i> <a href="/user/rkw/" title="RKW">RKW</a></p></figcaption></figure><!--
--><figure id="sid-51058986" class="r-general t-image u-essorille"><b><u><a href="/view/51058986/"><img alt="" src="//t.furaffinity.net/51058986@300-1676709421.jpg" data-width="265.667" data-height="200" style="width:265.667px; height:200px"/></a></u></b><figcaption><p><a href="/view/51058986/" title="Tempest Shadow plushie">Tempest Shadow plushie</a></p><p><i>by</i> <a href="/user/essorille/" title="Essorille">Essorille</a></p></figcaption></figure><!--
--><figure id="sid-51058882" class="r-general t-image u-fox4"><b><u><a href="/view/51058882/"><img alt="" src="//t.furaffinity.net/51058882@200-1676708476.jpg" data-width="150" data-height="200" style="width:150px; height:200px"/></a></u></b><figcaption><p><a href="/view/51058882/" title="bear head sale">bear head sale</a></p><p><i>by</i> <a href="/user/fox4/" title="fox4">fox4</a></p></figcaption></figure><!--
--><figure id="sid-51058089" class="r-general t-image u-pyrodarknessanny"><b><u><a href="/view/51058089/"><img alt="" src="//t.furaffinity.net/51058089@200-1676700300.jpg" data-width="200" data-height="200" style="width:200px; height:200px"/></a></u></b><figcaption><p><a href="/view/51058089/" title="Princess Luminescence">Princess Luminescence</a></p><p><i>by</i> <a href="/user/pyrodarknessanny/" title="Pyrodarknessanny">Pyrodarknessanny</a></p></figcaption></figure><!--
--><figure id="sid-51057833" class="r-general t-image u-henrysmccdl"><b><u><a href="/view/51057833/"><img alt="" src="//t.furaffinity.net/51057833@200-1676697757.jpg" data-width="126.493" data-height="200" style="width:126.493px; height:200px"/></a></u></b><figcaption><p><a href="/view/51057833/" title="Vram and Danny 2.0 (close-up)">Vram and Danny 2.0 (close-up)</a></p><p><i>by</i> <a href="/user/henrysmccdl/" title="HenrySMCCDL">HenrySMCCDL</a></p></figcaption></figure><!--
--> </section>
</div>
<script type="text/javascript">
_fajs.push(['init_gallery', 'gallery-frontpage-crafts']);
</script>
</div>
</section>
</div>
</div>
</div>
</div>
<!-- /<div id="site-content"> -->
<div id="footer">
<div class="auto_link footer-links">
<span class="hideonmobile">
<a href="/advertising">Advertise</a> |
<a href="/plus"><img style="position:relative;top:4px" src="/themes/beta/img/the-golden-pawb.png"> Get FA+</a> |
<a href="https://shop.furaffinity.net/">Merch Store</a> |
<a href="/tos">Terms of Service</a> |
<a href="/privacy">Privacy</a> |
<a href="/coc">Code of Conduct</a> |
<a href="/aup">Upload Policy</a>
</span>
</div>
<div class="footerAds">
<div class="footerAds__column">
<div class="footerAds__slot format--faMediumRectangle jsAdSlot" data-id="footer_left"></div>
</div>
<div class="footerAds__column">
<div class="footerAds__slot footerAds__slot--faLogo">
<img src="/themes/beta/img/banners/fa_logo.png?v2">
</div>
</div>
<div class="footerAds__column">
<div class="footerAds__slot format--faSmallRectangle jsAdSlot" data-id="footer_right_top"></div>
<div class="footerAds__slot format--faSmallRectangle jsAdSlot" data-id="footer_right_bottom"></div>
</div>
</div>
<div class="online-stats">
45484 <strong><span title="Measured in the last 900 seconds">Users online</span></strong> &mdash;
2301 <strong>guests</strong>,
16967 <strong>registered</strong>
and 26216 <strong>other</strong>
<!-- Online Counter Last Update: Sat, 18 Feb 2023 13:42:00 -0800 -->
</div>
<small>Limit bot activity to periods with less than 10k registered users online.</small>
<br><br>
<strong>&copy; 2005-2023 Frost Dragon Art LLC</strong>
<div class="footnote">
Server Time: Feb 18, 2023 01:42 PM </div>
</div>
<div id="cookie-notification" class="default-hidden">
<div class="text-container">This website uses cookies to enhance your browsing experience. <a href="/privacy" target="_blank">Learn More</a></div>
<div class="button-container"><button class="accept">I Consent</button></div>
</div>
<script type="text/javascript">
_fajs.push(function(){
$$('#cookie-notification button').invoke('observe', 'click', function() {
setCookie('cc', 1, expiryyear, '/');
$('cookie-notification').addClassName('default-hidden');
});
$('cookie-notification').removeClassName('default-hidden');
});
</script>
</div>
<!-- <div id="main-window"> -->
<!--
Server Local Time: Feb 18, 2023 01:42 PM <br />
Page generated in 0.022 seconds [ 29.7% PHP, 70.3% SQL ] (18 queries) -->
<script type="text/javascript">
_fajs.push(function() {
var exists = getCookie('sz');
var saved = save_viewport_size();
if((!exists && saved) || (exists && saved && exists != saved)) {
//window.location.reload();
}
});
</script>
<script type="text/javascript" src="/themes/beta/js/prototype.1.7.3.min.js"></script>
<script type="text/javascript" src="/themes/beta/js/script.js?u=2023011700"></script>
<script type="text/javascript">
var server_timestamp = 1676756549;
var client_timestamp = ((new Date()).getTime())/1000;
var server_timestamp_delta = server_timestamp - client_timestamp;
var sfw_cookie_name = 'sfw';
var news_cookie_name = 'n';
var adData = {"sizeConfig":[{"labels":["desktopWide"],"mediaQuery":"(min-width: 1065px)","sizesSupported":[[728,90],[300,250],[300,168],[300,600],[160,600]]},{"labels":["desktopNarrow"],"mediaQuery":"(min-width: 720px) and (max-width: 1064px)","sizesSupported":[[728,90],[300,250],[300,168]]},{"labels":["mobile"],"mediaQuery":"(min-width: 0px) and (max-width: 719px)","sizesSupported":[[320,50],[300,50],[320,100]]}],"slotConfig":{"header_middle":{"containerSize":{"desktopWide":[728,100],"desktopNarrow":[728,100],"mobile":[320,100]},"providerPriority":["inhouse"]},"above_content":{"containerSize":{"desktopWide":[728,100],"desktopNarrow":[728,100],"mobile":[320,100]},"providerPriority":["inhouse"]},"sidebar":{"containerSize":{"desktopWide":[300,250]},"providerPriority":["inhouse"]},"sidebar_tall":{"containerSize":{"desktopWide":[300,600]},"providerPriority":["inhouse"]},"footer_left":{"containerSize":{"desktopWide":[300,200],"desktopNarrow":[300,200],"mobile":[300,200]},"providerPriority":["inhouse"]},"footer_right_top":{"containerSize":{"desktopWide":[300,90],"desktopNarrow":[300,90],"mobile":[300,90]},"providerPriority":["inhouse"]},"footer_right_bottom":{"containerSize":{"desktopWide":[300,90],"desktopNarrow":[300,90],"mobile":[300,90]},"providerPriority":["inhouse"]},"header_right_left":{"containerSize":{"desktopWide":[300,90]},"providerPriority":["inhouse"]},"header_right_right":{"containerSize":{"desktopWide":[300,90]},"providerPriority":["inhouse"]},"sidebar_top":{"containerSize":{"desktopWide":[300,90]},"providerPriority":["inhouse"]},"sidebar_bottom":{"containerSize":{"desktopWide":[300,90]},"providerPriority":["inhouse"]}},"providerConfig":{"inhouse":{"domain":"https:\/\/rv.furaffinity.net","dataPath":"\/live\/www\/delivery\/spc.php","dataVariableName":"OA_output"}},"adConfig":{"inhouse":{"header_middle":{"default":{"tagId":11,"tagSize":[728,90]},"sizeOverride":{"mobile":{"tagId":19,"tagSize":[300,90]}}},"above_content":{"default":{"tagId":15,"tagSize":[728,90]},"sizeOverride":{"mobile":{"tagId":17,"tagSize":[300,90]}}},"sidebar":{"default":{"tagId":13,"tagSize":[300,250]}},"sidebar_tall":{"default":{"tagId":13,"tagSize":[300,250]}},"footer_left":{"default":{"tagId":10,"tagSize":[300,200]}},"footer_right_top":{"default":{"tagId":5,"tagSize":[300,90]}},"footer_right_bottom":{"default":{"tagId":6,"tagSize":[300,90]}},"header_right_left":{"default":{"tagId":2,"tagSize":[300,90]}},"header_right_right":{"default":{"tagId":4,"tagSize":[300,90]}},"sidebar_top":{"default":{"tagId":2,"tagSize":[300,90]}},"sidebar_bottom":{"default":{"tagId":4,"tagSize":[300,90]}}}}};
window.fad = new adManager(adData.sizeConfig, adData.slotConfig, adData.providerConfig, adData.adConfig, 1);
</script>
<script type="text/javascript">
_fajs.push(function() {
var ddmenuOptions = {
menuId: "ddmenu",
linkIdToMenuHtml: null,
open: "onmouseover", // or "onclick"
delay: 1,
speed: 1,
keysNav: true,
license: "2c1f72"
};
var ddmenu = new Ddmenu(ddmenuOptions);
});
</script>
</body>
<!---
|\ /|
/_^ ^_\
\v/
The fox goes "moo!"
--->
</html>

View File

@@ -0,0 +1,515 @@
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" class="no-js" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>System Login -- Fur Affinity [dot] net</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="Fur Affinity | For all things fluff, scaled, and feathered!" />
<meta name="keywords"
content="fur furry furries fursuit fursuits cosplay brony bronies zootopia scalies kemono anthro anthropormophic art online gallery portfolio" />
<meta name="distribution" content="global" />
<meta name="copyright" content="Frost Dragon Art LLC" />
<meta name="robots" content="noai, noimageai" />
<link rel="icon" href="/themes/beta/img/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="/themes/beta/img/favicon.ico" type="image/x-icon" />
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,500,500i,600,600i,700,700i"
rel="stylesheet">
<meta http-equiv="X-UA-Compatible" content="IE=9; IE=EDGE" />
<!-- og -->
<meta property="og:image" content="https://www.furaffinity.net/themes/beta/img/banners/fa_logo.png?v2" />
<!-- twitter -->
<meta name="twitter:image" content="https://www.furaffinity.net/themes/beta/img/banners/fa_logo.png?v2" />
<script type="text/javascript">
var _faurl = { d: '//d.furaffinity.net', a: '//a.furaffinity.net', r: '//rv.furaffinity.net', t: '//t.furaffinity.net', pb: '/themes/beta/js/prebid-6.13.0-fa.js' };
</script>
<script type="text/javascript" src="/themes/beta/js/common.js?u=2023011700"></script>
<link type="text/css" rel="stylesheet" href="/themes/beta/css/ui_theme_dark.css?u=2023011700" />
<!-- browser hints -->
<link rel="preconnect" href="//t.furaffinity.net" />
<link rel="preconnect" href="//a.furaffinity.net" />
<link rel="preconnect" href="//rv.furaffinity.net" />
<link rel="preconnect" href="https://www15.smartadserver.com" />
<link rel="preload" href="/themes/beta/js/prototype.1.7.3.min.js" as="script" />
<link rel="preload" href="/themes/beta/js/script.js?u=2023011700" as="script" />
<link rel="preload" href="/themes/beta/js/prebid-6.13.0-fa.js" as="script" />
<!-- Playwire Pre-connect <head> links -->
<link rel="preconnect" href="https://cdn.intergient.com" crossorigin />
<link rel="preconnect" href="https://cdn.intergi.com" crossorigin />
<link rel="preconnect" href="https://config.playwire.com" crossorigin />
<link rel="preconnect" href="https://securepubads.g.doubleclick.net" crossorigin />
<link rel="preconnect" href="https://z.moatads.com" crossorigin />
<link rel="preconnect" href="https://cdn.playwire.com" crossorigin />
</head>
<!-- EU request: no -->
<body data-static-path="/themes/beta" id="pageid-login">
<!-- sidebar -->
<div class="mobile-navigation">
<div class="mobile-nav-container">
<div class="mobile-nav-container-item left">
<label for="mobile-menu-nav" class="css-menu-toggle only-one"><img class="burger-menu"
src="/themes/beta/img/fa-burger-menu-icon.png"></label>
</div>
<div class="mobile-nav-container-item center"><a class="mobile-nav-logo" href="/"><img class="site-logo"
src="/themes/beta/img/banners/fa_logo.png?v2"></a></div>
<div class="mobile-nav-container-item right">
</div>
</div>
<div class="nav-ac-container">
<input id="mobile-menu-nav" name="accordion-1" type="checkbox" />
<article class="nav-ac-content mobile-menu">
<div class="mobile-nav-content-container">
<h2><a href="/browse/">Browse</a></h2>
<h2><a href="/search/">Search</a></h2>
<div class="nav-ac-container">
<label for="mobile-menu-submenu-0">
<h2 style="margin-top:0;padding-top:0">Support &#x25BC;</h2>
</label>
<input id="mobile-menu-submenu-0" name="accordion-1" type="checkbox" />
<article class="nav-ac-content nav-ac-content-dropdown">
<a href="/journals/fender">News & Updates</a><br>
<a href="/help/">Help & Support</a><br>
<a href="/advertising.html">Advertising</a><br>
<a href="/blm">Black Lives Matter</a>
<h3>SUPPORT FA</h3>
<a href="/plus/">Subscribe to FA+ </a><br>
<a href="https://shop.furaffinity.net/">FA Merch Store</a>
<h3>RULES & POLICIES</h3>
<a href="/tos">Terms of Service</a><br>
<a href="/privacy">Privacy</a><br>
<a href="/coc">Code of Conduct</a><br>
<a href="/aup">Upload Policy</a>
<h3>SOCIAL</h3>
<a href="https://discord.gg/fur-affinity">Discord</a><br>
<a href="https://www.twitter.com/furaffinity/">Twitter</a>
</article>
</div>
<hr>
<h2>
<div class="inline hideonmobile hideontablet">
<a href="/login"><strong>Log In</strong></a> or <a href="/register"><strong>Create an Account</strong></a>
</div>
<div class="inline hideondesktop">
<a href="/login">Log In</a><br>
<a href="/register">Create an Account</a>
</div>
</h2>
<h2></h2>
</div>
</article>
</div>
</div>
<nav id="ddmenu">
<div class="mobile-nav navhideondesktop hideonmobile hideontablet">
<div class="mobile-nav-logo"><a class="mobile-nav-logo" href="/"><img
src="/themes/beta/img/banners/fa_logo.png?v2"></a></div>
<div class="mobile-nav-header-item"><a href="/browse/">Browse</a></div>
<div class="mobile-nav-header-item"><a href="/search/">Search</a></div>
</div>
<div class="menu-icon"></div>
<ul class="navhideonmobile">
<li class="lileft">
<div class="lileft hideonmobile" style="vertical-align:middle;line-height:0 !important"><a class="top-heading"
href="/"><img class="nav-bar-logo" src="/themes/beta/img/banners/fa_logo.png?v2"></a></div>
</li>
<li class="lileft"><a class="top-heading" href="/browse/">
<div class="sprite-paw menu-space-saver hideonmobile"></div>Browse
</a></li>
<li class="lileft"><a class="top-heading hideondesktop" href="/search/">Search</a></li>
<li class="lileft"><a class="top-heading" href="/submit/">
<div class="sprite-upload menu-space-saver hideonmobile"></div> Upload
</a></li>
<li class="lileft">
<a class="top-heading" href="#">
<div class="sprite-news menu-space-saver hideonmobile"></div>Support
</a>
<i class="caret"></i>
<div class="dropdown dropdown-left ">
<div class="dd-inner">
<div class="column">
<h3>Community</h3>
<a href="/journals/fender">News & Updates</a>
<a href="/help/">Help & Support</a>
<a href="/advertising.html">Advertising</a>
<a href="/blm/">Black Lives Matter</a>
<h3>Rules & Policies</h3>
<a href="/tos">Terms of Service</a>
<a href="/privacy">Privacy</a>
<a href="/coc">Code of Conduct</a>
<a href="/aup">Upload Policy</a>
<h3>Social</h3>
<a href="https://discord.gg/fur-affinity">Discord</a>
<a href="https://www.twitter.com/furaffinity/">Twitter</a>
</div>
</div>
</div>
</li>
<div class="lileft hideonmobile">
<form id="searchbox" method="get" action="/search/">
<input type="search" name="q" placeholder="SEARCH">
<a href="/search">&nbsp;</a>
</form>
</div>
<li class="no-sub">
<span class="top-heading">
<div class="inline hideonmobile hideontablet">
<a href="/login"><strong>Log In</strong></a> or <a href="/register"><strong>Create an Account</strong></a>
</div>
<div class="inline hideondesktop">
<a href="/login">Log In</a><br>
<a href="/register">Create an Account</a>
</div>
</span>
</li>
</ul>
<script type="text/javascript">
_fajs.push(['init_sfw_button', '.sfw-toggle']);
</script>
</nav>
<script type="text/javascript">
_fajs.push(function () {
// all menus that should be opened only one at a time
$$('.css-menu-toggle.only-one').invoke('observe', 'click', function (evt) {
var curr_input = $(evt.findElement('label').getAttribute('for'));
curr_input.next('.nav-ac-content').removeClassName('no-transition');
if (curr_input.checked === false) {
$$('.css-menu-toggle.only-one').each(function (elm) {
var elm_input = $(elm.getAttribute('for'));
if (elm_input.checked === true) {
elm_input.next('.nav-ac-content').addClassName('no-transition');
elm_input.checked = false;
}
});
}
});
});
</script>
<div class="news-block">
</div>
<div id="main-window" class="footer-mobile-tweak g-wrapper">
<div id="header">
<!-- site banner -->
<site-banner>
<a href="/"><img src="/themes/beta/img/banners/logo/fa-banner-winter.jpg"></a>
</site-banner>
<a name="top"></a>
</div>
<div id="site-content">
<!-- /header -->
<form method="post" id="login-form" action="https://www.furaffinity.net/login/">
<input type="hidden" name="action" value="login" />
<div id="standardpage">
<div class="leaderboardAd">
<div data-id="header_middle" class="leaderboardAd__slot format--leaderboard jsAdSlot"></div>
</div>
<section class="login-page aligncenter">
<div class="section-header">
<h2>Login to Fur Affinity</h2>
</div>
<div class="section-body alignleft">
<div class="login-recovery description-field"><strong>Username</strong></div><input class="textbox"
type="text" name="name" value="" id="login" size="30" />
<div class="login-recovery description-field"><strong>Password</strong></div><input class="textbox"
type="password" name="pass" size="30" />
<br>
<div id="recaptcha-container" class="recaptcha-container ">
<div id="g-recaptcha-error" class="error-box hidden">Error encountered with reCAPTCHA.<br />Please
reload the page and try again.</div>
<div id="g-recaptcha"></div>
<noscript>
<div class="error-box">Javascript needs to be enabled for reCAPTCHA to work.</div>
</noscript>
</div>
<div class="alignleft">
<input type="submit" class="button standard go" name="login" id="login-button"
value="Login to Fur Affinity" />
</div>
</div>
</section>
<section class="login-page aligncenter">
<div class="section-header">
<h2>Need Assistance?</h2>
</div>
<div class="section-body alignleft">
<h3>Forgot Your Password? </h3>
<p>No worries! Use our <a href="/lostpw/"><strong>Password Recovery Tool</strong></a> to recover your
account.</p>
</div>
</section>
</div>
</form>
<script type="text/javascript">
//
window['recaptcha_error_callback'] = function () {
var elm = document.getElementById('g-recaptcha-error');
elm.className = elm.className.replace('hidden', '');
}
//
window['recaptcha_rendered'] = false;
function recaptcha_render() {
//
if (document.getElementById('recaptcha-container').className.indexOf('hidden') === -1) {
//
window['recaptcha_id'] = grecaptcha.render('g-recaptcha', {
'sitekey': '6LcQyPMUAAAAAN-wUp7pQ81ex5U7BpnG2bQHKClm',
'badge': 'bottomright',
'size': 'invisible',
'theme': 'dark',
'callback': function () {
document.getElementById('login-form').submit();
},
'expired-callback': window['recaptcha_error_callback'],
'error-callback': window['recaptcha_error_callback']
});
window['recaptcha_rendered'] = true;
}
}
//
_fajs.push(function () {
$('login').activate();
$('login-form').observe('submit', function (evt) {
//
if (!$('recaptcha-container').hasClassName('hidden')) {
evt.stop();
if ($('g-recaptcha-error').hasClassName('hidden')) {
grecaptcha.execute(window['recaptcha_id']);
}
}
var elm = $('login-button');
elm.disabled = true;
elm.addClassName('disabled');
window.setTimeout(function () {
elm.disabled = false;
elm.removeClassName('disabled');
}, 3000);
});
});
</script>
<!-- recaptcha -->
<script src="https://www.google.com/recaptcha/api.js?onload=recaptcha_render&render=explicit" async
defer></script>
</div>
<!-- /<div id="site-content"> -->
<div id="footer">
<div class="auto_link footer-links">
<span class="hideonmobile">
<a href="/advertising">Advertise</a> |
<a href="/plus"><img style="position:relative;top:4px" src="/themes/beta/img/the-golden-pawb.png"> Get FA+</a>
|
<a href="https://shop.furaffinity.net/">Merch Store</a> |
<a href="/tos">Terms of Service</a> |
<a href="/privacy">Privacy</a> |
<a href="/coc">Code of Conduct</a> |
<a href="/aup">Upload Policy</a>
</span>
</div>
<div class="footerAds">
<div class="footerAds__column">
<div class="footerAds__slot format--faMediumRectangle jsAdSlot" data-id="footer_left"></div>
</div>
<div class="footerAds__column">
<div class="footerAds__slot footerAds__slot--faLogo">
<img src="/themes/beta/img/banners/fa_logo.png?v2">
</div>
</div>
<div class="footerAds__column">
<div class="footerAds__slot format--faSmallRectangle jsAdSlot" data-id="footer_right_top"></div>
<div class="footerAds__slot format--faSmallRectangle jsAdSlot" data-id="footer_right_bottom"></div>
</div>
</div>
<div class="online-stats">
44742 <strong><span title="Measured in the last 900 seconds">Users online</span></strong> &mdash;
2322 <strong>guests</strong>,
17014 <strong>registered</strong>
and 25406 <strong>other</strong>
<!-- Online Counter Last Update: Sat, 18 Feb 2023 13:10:00 -0800 -->
</div>
<small>Limit bot activity to periods with less than 10k registered users online.</small>
<br><br>
<strong>&copy; 2005-2023 Frost Dragon Art LLC</strong>
<div class="footnote">
Server Time: Feb 18, 2023 01:10 PM </div>
</div>
<div id="cookie-notification" class="default-hidden">
<div class="text-container">This website uses cookies to enhance your browsing experience. <a href="/privacy"
target="_blank">Learn More</a></div>
<div class="button-container"><button class="accept">I Consent</button></div>
</div>
<script type="text/javascript">
_fajs.push(function () {
$$('#cookie-notification button').invoke('observe', 'click', function () {
setCookie('cc', 1, expiryyear, '/');
$('cookie-notification').addClassName('default-hidden');
});
$('cookie-notification').removeClassName('default-hidden');
});
</script>
</div>
<!-- <div id="main-window"> -->
<!--
Server Local Time: Feb 18, 2023 01:10 PM <br />
Page generated in 0.006 seconds [ 38% PHP, 62% SQL ] (7 queries) -->
<script type="text/javascript">
_fajs.push(function () {
var exists = getCookie('sz');
var saved = save_viewport_size();
if ((!exists && saved) || (exists && saved && exists != saved)) {
//window.location.reload();
}
});
</script>
<script type="text/javascript" src="/themes/beta/js/prototype.1.7.3.min.js"></script>
<script type="text/javascript" src="/themes/beta/js/script.js?u=2023011700"></script>
<script type="text/javascript">
var server_timestamp = 1676754650;
var client_timestamp = ((new Date()).getTime()) / 1000;
var server_timestamp_delta = server_timestamp - client_timestamp;
var sfw_cookie_name = 'sfw';
var news_cookie_name = 'n';
var adData = { "sizeConfig": [{ "labels": ["desktopWide"], "mediaQuery": "(min-width: 1065px)", "sizesSupported": [[728, 90], [300, 250], [300, 168], [300, 600], [160, 600]] }, { "labels": ["desktopNarrow"], "mediaQuery": "(min-width: 720px) and (max-width: 1064px)", "sizesSupported": [[728, 90], [300, 250], [300, 168]] }, { "labels": ["mobile"], "mediaQuery": "(min-width: 0px) and (max-width: 719px)", "sizesSupported": [[320, 50], [300, 50], [320, 100]] }], "slotConfig": { "header_middle": { "containerSize": { "desktopWide": [728, 100], "desktopNarrow": [728, 100], "mobile": [320, 100] }, "providerPriority": ["inhouse"] }, "above_content": { "containerSize": { "desktopWide": [728, 100], "desktopNarrow": [728, 100], "mobile": [320, 100] }, "providerPriority": ["inhouse"] }, "sidebar": { "containerSize": { "desktopWide": [300, 250] }, "providerPriority": ["inhouse"] }, "sidebar_tall": { "containerSize": { "desktopWide": [300, 600] }, "providerPriority": ["inhouse"] }, "footer_left": { "containerSize": { "desktopWide": [300, 200], "desktopNarrow": [300, 200], "mobile": [300, 200] }, "providerPriority": ["inhouse"] }, "footer_right_top": { "containerSize": { "desktopWide": [300, 90], "desktopNarrow": [300, 90], "mobile": [300, 90] }, "providerPriority": ["inhouse"] }, "footer_right_bottom": { "containerSize": { "desktopWide": [300, 90], "desktopNarrow": [300, 90], "mobile": [300, 90] }, "providerPriority": ["inhouse"] }, "header_right_left": { "containerSize": { "desktopWide": [300, 90] }, "providerPriority": ["inhouse"] }, "header_right_right": { "containerSize": { "desktopWide": [300, 90] }, "providerPriority": ["inhouse"] }, "sidebar_top": { "containerSize": { "desktopWide": [300, 90] }, "providerPriority": ["inhouse"] }, "sidebar_bottom": { "containerSize": { "desktopWide": [300, 90] }, "providerPriority": ["inhouse"] } }, "providerConfig": { "inhouse": { "domain": "https:\/\/rv.furaffinity.net", "dataPath": "\/live\/www\/delivery\/spc.php", "dataVariableName": "OA_output" } }, "adConfig": { "inhouse": { "header_middle": { "default": { "tagId": 14, "tagSize": [728, 90] }, "sizeOverride": { "mobile": { "tagId": 20, "tagSize": [300, 90] } } }, "above_content": { "default": { "tagId": 16, "tagSize": [728, 90] }, "sizeOverride": { "mobile": { "tagId": 18, "tagSize": [300, 90] } } }, "sidebar": { "default": { "tagId": 12, "tagSize": [300, 250] } }, "sidebar_tall": { "default": { "tagId": 12, "tagSize": [300, 250] } }, "footer_left": { "default": { "tagId": 9, "tagSize": [300, 200] } }, "footer_right_top": { "default": { "tagId": 7, "tagSize": [300, 90] } }, "footer_right_bottom": { "default": { "tagId": 8, "tagSize": [300, 90] } }, "header_right_left": { "default": { "tagId": 1, "tagSize": [300, 90] } }, "header_right_right": { "default": { "tagId": 3, "tagSize": [300, 90] } }, "sidebar_top": { "default": { "tagId": 1, "tagSize": [300, 90] } }, "sidebar_bottom": { "default": { "tagId": 3, "tagSize": [300, 90] } } } } };
window.fad = new adManager(adData.sizeConfig, adData.slotConfig, adData.providerConfig, adData.adConfig, 1);
</script>
<script type="text/javascript">
_fajs.push(function () {
var ddmenuOptions = {
menuId: "ddmenu",
linkIdToMenuHtml: null,
open: "onmouseover", // or "onclick"
delay: 1,
speed: 1,
keysNav: true,
license: "2c1f72"
};
var ddmenu = new Ddmenu(ddmenuOptions);
});
</script>
</body>
<!---
|\ /|
/_^ ^_\
\v/
The fox goes "moo!"
--->
</html>

View File

@@ -0,0 +1,28 @@
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- -->
<html>
<head>
<title>System Error</title>
<link href="/themes/beta/img/favicon.ico" />
<link type="text/css" rel="stylesheet" href="/themes/beta/css/ui_theme_dark.css?u=2023011700" />
</head>
<body>
<section style="margin: 30px auto; max-width: 800px;">
<div class="section-header">
<h2>System Error</h2>
</div>
<div class="section-body">
The submission you are trying to find is not in our database. <br>
<div class="alignright"><a class="button standard" href="javascript:history.go(-1)">Click here to go back</a>
</div>
</div>
</section>
</body>
</html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -2,9 +2,12 @@
require "test_helper"
class Domain::Fa::Parser::PageLegacyTest < ActiveSupport::TestCase
class Domain::Fa::Parser::LegacyPageTest < ActiveSupport::TestCase
def test_sees_not_logged_in
parser = get_parser("index_not_logged_in.html", require_logged_in: false)
parser = get_parser(
"index_not_logged_in.html",
require_logged_in: false,
)
refute parser.logged_in?
assert_nil parser.logged_in_user
end
@@ -146,13 +149,13 @@ class Domain::Fa::Parser::PageLegacyTest < ActiveSupport::TestCase
def test_submission_is_correct
parser = get_parser "submission_19143193_miles_df.html"
assert parser.probably_submission?
assert_equal Domain::Fa::Parser::Page::VERSION_0, parser.page_version
sub = parser.submission
assert_equal 19_143_193, sub.id
assert_equal "//t.facdn.net/19143193@400-1455889648.jpg", sub.small_img
assert_equal "workout_session_8_(STREAM_part1)", sub.title
assert_equal "Miles-DF", sub.artist
assert sub.description_html =~ /Yep, me/
assert_equal "//d.facdn.net/art/miles-df/1455889648/1455889648.miles-df_miles-df_stream.jpg", sub.full_res_img
assert_equal "Feb 19th, 2016 08:47 AM", sub.posted_date
assert_equal "All", sub.category
@@ -164,6 +167,7 @@ class Domain::Fa::Parser::PageLegacyTest < ActiveSupport::TestCase
assert_equal 599, sub.num_views
assert_equal "1280x989", sub.resolution_str
assert_equal [], sub.keywords_array
assert sub.description_html =~ /Yep, me/
parser = get_parser "submission_19190013_korichi.html"
assert parser.probably_submission?
@@ -182,8 +186,9 @@ class Domain::Fa::Parser::PageLegacyTest < ActiveSupport::TestCase
end
def test_updated_fa_1_submission
parser = get_parser "submission_21773129_new_fa_feretta.html"
parser = get_parser("submission_21773129_new_fa_feretta.html")
assert parser.probably_submission?
assert_equal Domain::Fa::Parser::Page::VERSION_1, parser.page_version
sub = parser.submission
assert_equal 21_773_129, sub.id
@@ -205,7 +210,8 @@ class Domain::Fa::Parser::PageLegacyTest < ActiveSupport::TestCase
end
def test_old_submission_is_parsed
parser = get_parser "submission_53013_uaykan.html"
parser = get_parser("submission_53013_uaykan.html")
assert_equal Domain::Fa::Parser::Page::VERSION_0, parser.page_version
sub = parser.submission
assert_equal 53_013, sub.id

View File

@@ -0,0 +1,53 @@
require "test_helper"
class Domain::Fa::Parser::ReduxPageTest < ActiveSupport::TestCase
def test_sees_not_logged_in
parser = get_parser("login_page.html", require_logged_in: false)
refute parser.logged_in?
assert_nil parser.logged_in_user
end
def test_throws_if_not_logged_in_by_default
assert_raises(Domain::Fa::Parser::NotLoggedInError) do
get_parser("login_page.html")
end
end
def test_submission_not_found_does_not_throw
parser = get_parser("submission_not_found_in_db.html")
refute parser.logged_in?
assert parser.submission_not_found?
end
def test_sees_logged_in_correctly
parser = get_parser("index_logged_in_zzreg.html")
assert parser.logged_in?
assert_equal parser.logged_in_user, "zzreg"
refute parser.submission_not_found?
end
def test_user_page_is_correct
parser = get_parser "user_page_miles_df.html"
assert parser.probably_user_page?
up = parser.user_page
assert_equal "Miles-DF", up.name
assert up.profile_html, /COMMISSIONS: CLOSED/
assert_equal 592, up.num_submissions
assert_equal 2_005_424, up.num_pageviews
assert_equal 40_192, up.num_comments_recieved
assert_equal 7_227, up.num_comments_given
assert_equal 6, up.num_journals
assert_equal 1_236_200, up.num_favorites
assert_equal DateTime.new(2006, 1, 12, 7, 52), up.registered_since
end
def get_parser(file, require_logged_in: true)
path = File.join("domain/fa/parser/redux", file)
contents = read_fixture_file(path) || raise("Couldn't open #{path}")
page = Domain::Fa::Parser::Page.new(contents, require_logged_in: require_logged_in)
assert_equal Domain::Fa::Parser::Page::VERSION_2, page.page_version, "page version mismatch for file #{file}"
page
end
end