Version 83

This commit is contained in:
Hydrus 2013-09-04 11:48:44 -05:00
parent b2affb8fdc
commit fc8ed382ec
22 changed files with 2085 additions and 389 deletions

View File

@ -8,6 +8,40 @@
<div class="content">
<h3>changelog</h3>
<ul>
<li><h3>version 83</h3></li>
<ul>
<li>sort by longest fixed for files with no duration</li>
<li>reverse sort by rating fixed for files with no rating</li>
<li>sort by largest, newest fixed for files with unknown size or timestamp</li>
<li>sort by unknown/absent values sorts more accurately</li>
<li>search by num_tags and min_num_tags fixed</li>
<li>remove media thumbnail update bug fixed</li>
<li>currently viewable indices screwed up after a remove media bug fixed</li>
<li>remove all media entire black screen bug fixed</li>
<li>delete media redraw optimised</li>
<li>several message print unicode/raw byte errors fixed</li>
<li>scrollbar position calculation improved, so 'black rectangle on scrolled thumbnail canvas when num_cols changed after resize' bug should be fixed</li>
<li>'tiny black lines on small slider drag' bug fixed</li>
<li>moved a bunch of right_up events to right_down, see what you think</li>
<li>popup message cleanup is better on shutdown</li>
<li>pubsub typeerrors handled more gracefully</li>
<li>improved how options init and update works</li>
<li>client will now remember the restored size, restored position, maximised state, and screen the gui was last left at</li>
<li>client will remember all the same details for fullscreen, separately</li>
<li>these sizes _should_ rescue from offscreen if you disconnect/reposition a non-primary display</li>
<li>shift+home/end now scrolls and selects, rather than only buggily scrolling</li>
<li>I fixed a content_update bug re petitions</li>
<li>'show in new page' pages will no longer show search subbox</li>
<li>added hentai foundry tests</li>
<li>fixed hentai foundry title and creator tag parsing in certain cases</li>
<li>fixed some related html unicode issues</li>
<li>initial value on tag siblings dialog fixed</li>
<li>tag siblings and parent dialogs now start sorted by the right column (parent/older sibling)</li>
<li>setting a default collect will no longer cause a nasty crash!</li>
<li>setting an orphaned default collect will no longer cause problems</li>
<li>deselect thumbnails has improved focussed media management</li>
<li>can now select inbox or archive from right click menu</li>
</ul>
<li><h3>version 82</h3></li>
<ul>
<li>a bug where slow search results would sometimes appear after search predicates were removed has been fixed</li>

View File

@ -171,6 +171,130 @@ sort_string_lookup[ SORT_BY_RANDOM ] = 'random order'
THUMBNAIL_MARGIN = 2
THUMBNAIL_BORDER = 1
# default options
CLIENT_DEFAULT_OPTIONS = {}
CLIENT_DEFAULT_OPTIONS[ 'play_dumper_noises' ] = True
CLIENT_DEFAULT_OPTIONS[ 'default_sort' ] = 0
CLIENT_DEFAULT_OPTIONS[ 'default_collect' ] = None
CLIENT_DEFAULT_OPTIONS[ 'export_path' ] = 'export'
CLIENT_DEFAULT_OPTIONS[ 'hpos' ] = 400
CLIENT_DEFAULT_OPTIONS[ 'vpos' ] = 700
CLIENT_DEFAULT_OPTIONS[ 'exclude_deleted_files' ] = False
CLIENT_DEFAULT_OPTIONS[ 'thumbnail_cache_size' ] = 100 * 1048576
CLIENT_DEFAULT_OPTIONS[ 'preview_cache_size' ] = 25 * 1048576
CLIENT_DEFAULT_OPTIONS[ 'fullscreen_cache_size' ] = 200 * 1048576
CLIENT_DEFAULT_OPTIONS[ 'thumbnail_dimensions' ] = [ 150, 125 ]
CLIENT_DEFAULT_OPTIONS[ 'password' ] = None
CLIENT_DEFAULT_OPTIONS[ 'num_autocomplete_chars' ] = 1
CLIENT_DEFAULT_OPTIONS[ 'gui_capitalisation' ] = False
system_predicates = {}
system_predicates[ 'age' ] = ( 0, 0, 0, 7 )
system_predicates[ 'duration' ] = ( 3, 0, 0 )
system_predicates[ 'height' ] = ( 1, 1200 )
system_predicates[ 'limit' ] = 600
system_predicates[ 'mime' ] = ( 0, 0 )
system_predicates[ 'num_tags' ] = ( 0, 4 )
system_predicates[ 'local_rating_numerical' ] = ( 0, 3 )
system_predicates[ 'local_rating_like' ] = 0
system_predicates[ 'ratio' ] = ( 0, 16, 9 )
system_predicates[ 'size' ] = ( 0, 200, 1 )
system_predicates[ 'width' ] = ( 1, 1920 )
system_predicates[ 'num_words' ] = ( 0, 30000 )
CLIENT_DEFAULT_OPTIONS[ 'file_system_predicates' ] = system_predicates
default_namespace_colours = {}
default_namespace_colours[ 'system' ] = ( 153, 101, 21 )
default_namespace_colours[ 'creator' ] = ( 170, 0, 0 )
default_namespace_colours[ 'character' ] = ( 0, 170, 0 )
default_namespace_colours[ 'series' ] = ( 170, 0, 170 )
default_namespace_colours[ None ] = ( 114, 160, 193 )
default_namespace_colours[ '' ] = ( 0, 111, 250 )
CLIENT_DEFAULT_OPTIONS[ 'namespace_colours' ] = default_namespace_colours
default_sort_by_choices = []
default_sort_by_choices.append( ( 'namespaces', [ 'series', 'creator', 'title', 'volume', 'chapter', 'page' ] ) )
default_sort_by_choices.append( ( 'namespaces', [ 'creator', 'series', 'title', 'volume', 'chapter', 'page' ] ) )
CLIENT_DEFAULT_OPTIONS[ 'sort_by' ] = default_sort_by_choices
CLIENT_DEFAULT_OPTIONS[ 'show_all_tags_in_autocomplete' ] = True
CLIENT_DEFAULT_OPTIONS[ 'fullscreen_borderless' ] = True
shortcuts = {}
shortcuts[ wx.ACCEL_NORMAL ] = {}
shortcuts[ wx.ACCEL_CTRL ] = {}
shortcuts[ wx.ACCEL_ALT ] = {}
shortcuts[ wx.ACCEL_SHIFT ] = {}
shortcuts[ wx.ACCEL_NORMAL ][ wx.WXK_F3 ] = 'manage_tags'
shortcuts[ wx.ACCEL_NORMAL ][ wx.WXK_F4 ] = 'manage_ratings'
shortcuts[ wx.ACCEL_NORMAL ][ wx.WXK_F5 ] = 'refresh'
shortcuts[ wx.ACCEL_NORMAL ][ wx.WXK_F7 ] = 'archive'
shortcuts[ wx.ACCEL_NORMAL ][ wx.WXK_F11 ] = 'ratings_filter'
shortcuts[ wx.ACCEL_NORMAL ][ wx.WXK_F12 ] = 'filter'
shortcuts[ wx.ACCEL_NORMAL ][ wx.WXK_F9 ] = 'new_page'
shortcuts[ wx.ACCEL_NORMAL ][ ord( 'F' ) ] = 'fullscreen_switch'
shortcuts[ wx.ACCEL_SHIFT ][ wx.WXK_F7 ] = 'inbox'
shortcuts[ wx.ACCEL_CTRL ][ ord( 'B' ) ] = 'frame_back'
shortcuts[ wx.ACCEL_CTRL ][ ord( 'N' ) ] = 'frame_next'
shortcuts[ wx.ACCEL_CTRL ][ ord( 'T' ) ] = 'new_page'
shortcuts[ wx.ACCEL_CTRL ][ ord( 'W' ) ] = 'close_page'
shortcuts[ wx.ACCEL_CTRL ][ ord( 'R' ) ] = 'show_hide_splitters'
shortcuts[ wx.ACCEL_CTRL ][ ord( 'S' ) ] = 'set_search_focus'
shortcuts[ wx.ACCEL_CTRL ][ ord( 'M' ) ] = 'set_media_focus'
shortcuts[ wx.ACCEL_CTRL ][ ord( 'I' ) ] = 'synchronised_wait_switch'
shortcuts[ wx.ACCEL_CTRL ][ wx.WXK_UP ] = 'previous'
shortcuts[ wx.ACCEL_CTRL ][ wx.WXK_LEFT ] = 'previous'
shortcuts[ wx.ACCEL_CTRL ][ wx.WXK_NUMPAD_UP ] = 'previous'
shortcuts[ wx.ACCEL_CTRL ][ wx.WXK_NUMPAD_LEFT ] = 'previous'
shortcuts[ wx.ACCEL_CTRL ][ wx.WXK_PAGEUP ] = 'previous'
shortcuts[ wx.ACCEL_CTRL ][ wx.WXK_NUMPAD_PAGEUP ] = 'previous'
shortcuts[ wx.ACCEL_CTRL ][ wx.WXK_DOWN ] = 'next'
shortcuts[ wx.ACCEL_CTRL ][ wx.WXK_RIGHT ] = 'next'
shortcuts[ wx.ACCEL_CTRL ][ wx.WXK_NUMPAD_DOWN ] = 'next'
shortcuts[ wx.ACCEL_CTRL ][ wx.WXK_NUMPAD_RIGHT ] = 'next'
shortcuts[ wx.ACCEL_CTRL ][ wx.WXK_PAGEDOWN ] = 'next'
shortcuts[ wx.ACCEL_CTRL ][ wx.WXK_NUMPAD_PAGEDOWN ] = 'next'
shortcuts[ wx.ACCEL_CTRL ][ wx.WXK_HOME ] = 'first'
shortcuts[ wx.ACCEL_CTRL ][ wx.WXK_NUMPAD_HOME ] = 'first'
shortcuts[ wx.ACCEL_CTRL ][ wx.WXK_END ] = 'last'
shortcuts[ wx.ACCEL_CTRL ][ wx.WXK_NUMPAD_END ] = 'last'
shortcuts[ wx.ACCEL_SHIFT ][ wx.WXK_UP ] = 'pan_up'
shortcuts[ wx.ACCEL_SHIFT ][ wx.WXK_DOWN ] = 'pan_down'
shortcuts[ wx.ACCEL_SHIFT ][ wx.WXK_LEFT ] = 'pan_left'
shortcuts[ wx.ACCEL_SHIFT ][ wx.WXK_RIGHT ] = 'pan_right'
CLIENT_DEFAULT_OPTIONS[ 'shortcuts' ] = shortcuts
CLIENT_DEFAULT_OPTIONS[ 'confirm_client_exit' ] = False
CLIENT_DEFAULT_OPTIONS[ 'default_tag_repository' ] = HC.LOCAL_TAG_SERVICE_IDENTIFIER
CLIENT_DEFAULT_OPTIONS[ 'default_tag_sort' ] = SORT_BY_LEXICOGRAPHIC_ASC
CLIENT_DEFAULT_OPTIONS[ 'pause_repo_sync' ] = False
CLIENT_DEFAULT_OPTIONS[ 'pause_subs_sync' ] = False
client_size = {}
client_size[ 'gui_maximised' ] = True
client_size[ 'gui_restored_size' ] = [ 640, 480 ]
client_size[ 'gui_restored_position' ] = [ 20, 20 ]
client_size[ 'fs_maximised' ] = True
client_size[ 'fs_restored_size' ] = [ 640, 480 ]
client_size[ 'fs_restored_position' ] = [ 20, 20 ]
CLIENT_DEFAULT_OPTIONS[ 'client_size' ] = client_size
def AddPaddingToDimensions( dimensions, padding ):
( x, y ) = dimensions
@ -1678,8 +1802,8 @@ class FileSystemPredicates():
( operator, num_tags ) = info
if operator == '<': self._max_num_tags = num_tags
elif operator == '>': self._num_tags = num_tags
elif operator == '=': self._min_num_tags = num_tags
elif operator == '=': self._num_tags = num_tags
elif operator == '>': self._min_num_tags = num_tags
if system_predicate_type == HC.SYSTEM_PREDICATE_TYPE_WIDTH:

View File

@ -110,6 +110,10 @@ class Controller( wx.App ):
try: callable( *args, **kwargs )
except wx._core.PyDeadObjectError: pass
except TypeError as e:
if '_wxPyDeadObject' not in str( e ): raise
finally:
pubsubs_queue.task_done()
@ -198,7 +202,7 @@ class Controller( wx.App ):
except HydrusExceptions.DBAccessException as e:
print( HC.u( e ) )
print( repr( HC.u( e ) ) )
message = 'This instance of the client had a problem connecting to the database, which probably means an old instance is still closing.'
message += os.linesep + os.linesep

View File

@ -1870,19 +1870,19 @@ class ServiceDB( FileDB, MessageDB, TagDB, RatingDB ):
if min_num_tags is not None:
if min_num_tags == 1: num_tags_nonzero = True
else: tag_predicates.append( lambda num_tags: num_tags >= min_num_tags )
else: tag_predicates.append( lambda x: x >= min_num_tags )
if num_tags is not None:
if num_tags == 0: num_tags_zero = True
else: tag_predicates.append( lambda num_tags: num_tags == num_tags )
else: tag_predicates.append( lambda x: x == num_tags )
if max_num_tags is not None:
if max_num_tags == 1: num_tags_nonzero = True
else: tag_predicates.append( lambda num_tags: num_tags <= max_num_tags )
else: tag_predicates.append( lambda x: x <= max_num_tags )
statuses = []
@ -4251,7 +4251,7 @@ class DB( ServiceDB ):
self._combined_file_service_id = self._GetServiceId( c, HC.COMBINED_FILE_SERVICE_IDENTIFIER )
self._combined_tag_service_id = self._GetServiceId( c, HC.COMBINED_TAG_SERVICE_IDENTIFIER )
( options, ) = c.execute( 'SELECT options FROM options;' ).fetchone()
options = self._GetOptions( c )
HC.options = options
@ -4327,6 +4327,29 @@ class DB( ServiceDB ):
return all_imageboards
def _GetOptions( self, c ):
result = c.execute( 'SELECT options FROM options;' ).fetchone()
if result is None:
options = CC.CLIENT_DEFAULT_OPTIONS
c.execute( 'INSERT INTO options ( options ) VALUES ( ? );', ( options, ) )
else:
( options, ) = result
for key in CC.CLIENT_DEFAULT_OPTIONS:
if key not in options: options[ key ] = CC.CLIENT_DEFAULT_OPTIONS[ key ]
return options
def _GetRowCount( self, c ):
row_count = c.rowcount
@ -4566,119 +4589,6 @@ class DB( ServiceDB ):
c.execute( 'INSERT INTO namespaces ( namespace_id, namespace ) VALUES ( ?, ? );', ( 1, '' ) )
CLIENT_DEFAULT_OPTIONS = {}
CLIENT_DEFAULT_OPTIONS[ 'play_dumper_noises' ] = True
CLIENT_DEFAULT_OPTIONS[ 'default_sort' ] = 0
CLIENT_DEFAULT_OPTIONS[ 'default_collect' ] = None
CLIENT_DEFAULT_OPTIONS[ 'export_path' ] = 'export'
CLIENT_DEFAULT_OPTIONS[ 'hpos' ] = 400
CLIENT_DEFAULT_OPTIONS[ 'vpos' ] = 700
CLIENT_DEFAULT_OPTIONS[ 'exclude_deleted_files' ] = False
CLIENT_DEFAULT_OPTIONS[ 'thumbnail_cache_size' ] = 100 * 1048576
CLIENT_DEFAULT_OPTIONS[ 'preview_cache_size' ] = 25 * 1048576
CLIENT_DEFAULT_OPTIONS[ 'fullscreen_cache_size' ] = 200 * 1048576
CLIENT_DEFAULT_OPTIONS[ 'thumbnail_dimensions' ] = [ 150, 125 ]
CLIENT_DEFAULT_OPTIONS[ 'password' ] = None
CLIENT_DEFAULT_OPTIONS[ 'num_autocomplete_chars' ] = 1
CLIENT_DEFAULT_OPTIONS[ 'gui_capitalisation' ] = False
system_predicates = {}
system_predicates[ 'age' ] = ( 0, 0, 0, 7 )
system_predicates[ 'duration' ] = ( 3, 0, 0 )
system_predicates[ 'height' ] = ( 1, 1200 )
system_predicates[ 'limit' ] = 600
system_predicates[ 'mime' ] = ( 0, 0 )
system_predicates[ 'num_tags' ] = ( 0, 4 )
system_predicates[ 'local_rating_numerical' ] = ( 0, 3 )
system_predicates[ 'local_rating_like' ] = 0
system_predicates[ 'ratio' ] = ( 0, 16, 9 )
system_predicates[ 'size' ] = ( 0, 200, 1 )
system_predicates[ 'width' ] = ( 1, 1920 )
system_predicates[ 'num_words' ] = ( 0, 30000 )
CLIENT_DEFAULT_OPTIONS[ 'file_system_predicates' ] = system_predicates
default_namespace_colours = {}
default_namespace_colours[ 'system' ] = ( 153, 101, 21 )
default_namespace_colours[ 'creator' ] = ( 170, 0, 0 )
default_namespace_colours[ 'character' ] = ( 0, 170, 0 )
default_namespace_colours[ 'series' ] = ( 170, 0, 170 )
default_namespace_colours[ None ] = ( 114, 160, 193 )
default_namespace_colours[ '' ] = ( 0, 111, 250 )
CLIENT_DEFAULT_OPTIONS[ 'namespace_colours' ] = default_namespace_colours
default_sort_by_choices = []
default_sort_by_choices.append( ( 'namespaces', [ 'series', 'creator', 'title', 'volume', 'chapter', 'page' ] ) )
default_sort_by_choices.append( ( 'namespaces', [ 'creator', 'series', 'title', 'volume', 'chapter', 'page' ] ) )
CLIENT_DEFAULT_OPTIONS[ 'sort_by' ] = default_sort_by_choices
CLIENT_DEFAULT_OPTIONS[ 'show_all_tags_in_autocomplete' ] = True
CLIENT_DEFAULT_OPTIONS[ 'fullscreen_borderless' ] = True
shortcuts = {}
shortcuts[ wx.ACCEL_NORMAL ] = {}
shortcuts[ wx.ACCEL_CTRL ] = {}
shortcuts[ wx.ACCEL_ALT ] = {}
shortcuts[ wx.ACCEL_SHIFT ] = {}
shortcuts[ wx.ACCEL_NORMAL ][ wx.WXK_F3 ] = 'manage_tags'
shortcuts[ wx.ACCEL_NORMAL ][ wx.WXK_F4 ] = 'manage_ratings'
shortcuts[ wx.ACCEL_NORMAL ][ wx.WXK_F5 ] = 'refresh'
shortcuts[ wx.ACCEL_NORMAL ][ wx.WXK_F7 ] = 'archive'
shortcuts[ wx.ACCEL_NORMAL ][ wx.WXK_F11 ] = 'ratings_filter'
shortcuts[ wx.ACCEL_NORMAL ][ wx.WXK_F12 ] = 'filter'
shortcuts[ wx.ACCEL_NORMAL ][ wx.WXK_F9 ] = 'new_page'
shortcuts[ wx.ACCEL_NORMAL ][ ord( 'F' ) ] = 'fullscreen_switch'
shortcuts[ wx.ACCEL_SHIFT ][ wx.WXK_F7 ] = 'inbox'
shortcuts[ wx.ACCEL_CTRL ][ ord( 'B' ) ] = 'frame_back'
shortcuts[ wx.ACCEL_CTRL ][ ord( 'N' ) ] = 'frame_next'
shortcuts[ wx.ACCEL_CTRL ][ ord( 'T' ) ] = 'new_page'
shortcuts[ wx.ACCEL_CTRL ][ ord( 'W' ) ] = 'close_page'
shortcuts[ wx.ACCEL_CTRL ][ ord( 'R' ) ] = 'show_hide_splitters'
shortcuts[ wx.ACCEL_CTRL ][ ord( 'S' ) ] = 'set_search_focus'
shortcuts[ wx.ACCEL_CTRL ][ ord( 'M' ) ] = 'set_media_focus'
shortcuts[ wx.ACCEL_CTRL ][ ord( 'I' ) ] = 'synchronised_wait_switch'
shortcuts[ wx.ACCEL_CTRL ][ wx.WXK_UP ] = 'previous'
shortcuts[ wx.ACCEL_CTRL ][ wx.WXK_LEFT ] = 'previous'
shortcuts[ wx.ACCEL_CTRL ][ wx.WXK_NUMPAD_UP ] = 'previous'
shortcuts[ wx.ACCEL_CTRL ][ wx.WXK_NUMPAD_LEFT ] = 'previous'
shortcuts[ wx.ACCEL_CTRL ][ wx.WXK_PAGEUP ] = 'previous'
shortcuts[ wx.ACCEL_CTRL ][ wx.WXK_NUMPAD_PAGEUP ] = 'previous'
shortcuts[ wx.ACCEL_CTRL ][ wx.WXK_DOWN ] = 'next'
shortcuts[ wx.ACCEL_CTRL ][ wx.WXK_RIGHT ] = 'next'
shortcuts[ wx.ACCEL_CTRL ][ wx.WXK_NUMPAD_DOWN ] = 'next'
shortcuts[ wx.ACCEL_CTRL ][ wx.WXK_NUMPAD_RIGHT ] = 'next'
shortcuts[ wx.ACCEL_CTRL ][ wx.WXK_PAGEDOWN ] = 'next'
shortcuts[ wx.ACCEL_CTRL ][ wx.WXK_NUMPAD_PAGEDOWN ] = 'next'
shortcuts[ wx.ACCEL_CTRL ][ wx.WXK_HOME ] = 'first'
shortcuts[ wx.ACCEL_CTRL ][ wx.WXK_NUMPAD_HOME ] = 'first'
shortcuts[ wx.ACCEL_CTRL ][ wx.WXK_END ] = 'last'
shortcuts[ wx.ACCEL_CTRL ][ wx.WXK_NUMPAD_END ] = 'last'
shortcuts[ wx.ACCEL_SHIFT ][ wx.WXK_UP ] = 'pan_up'
shortcuts[ wx.ACCEL_SHIFT ][ wx.WXK_DOWN ] = 'pan_down'
shortcuts[ wx.ACCEL_SHIFT ][ wx.WXK_LEFT ] = 'pan_left'
shortcuts[ wx.ACCEL_SHIFT ][ wx.WXK_RIGHT ] = 'pan_right'
CLIENT_DEFAULT_OPTIONS[ 'shortcuts' ] = shortcuts
CLIENT_DEFAULT_OPTIONS[ 'confirm_client_exit' ] = False
CLIENT_DEFAULT_OPTIONS[ 'default_tag_repository' ] = HC.LOCAL_TAG_SERVICE_IDENTIFIER
CLIENT_DEFAULT_OPTIONS[ 'default_tag_sort' ] = CC.SORT_BY_LEXICOGRAPHIC_ASC
CLIENT_DEFAULT_OPTIONS[ 'pause_repo_sync' ] = False
CLIENT_DEFAULT_OPTIONS[ 'pause_subs_sync' ] = False
c.execute( 'INSERT INTO options ( options ) VALUES ( ? );', ( CLIENT_DEFAULT_OPTIONS, ) )
c.execute( 'INSERT INTO contacts ( contact_id, contact_key, public_key, name, host, port ) VALUES ( ?, ?, ?, ?, ?, ? );', ( 1, None, None, 'Anonymous', 'internet', 0 ) )
with open( HC.STATIC_DIR + os.sep + 'contact - hydrus admin.yaml', 'rb' ) as f: hydrus_admin = yaml.safe_load( f.read() )

View File

@ -38,11 +38,11 @@ FLAGS_LONE_BUTTON = wx.SizerFlags( 0 ).Border( wx.ALL, 2 ).Align( wx.ALIGN_RIGHT
FLAGS_MIXED = wx.SizerFlags( 0 ).Border( wx.ALL, 2 ).Align( wx.ALIGN_CENTER_VERTICAL )
class FrameGUI( ClientGUICommon.Frame ):
class FrameGUI( ClientGUICommon.FrameThatResizes ):
def __init__( self ):
ClientGUICommon.Frame.__init__( self, None, title = HC.app.PrepStringForDisplay( 'Hydrus Client' ) )
ClientGUICommon.FrameThatResizes.__init__( self, None, resize_option_prefix = 'gui_', title = HC.app.PrepStringForDisplay( 'Hydrus Client' ) )
self.SetDropTarget( ClientGUICommon.FileDropTarget( self.ImportFiles ) )
@ -56,28 +56,6 @@ class FrameGUI( ClientGUICommon.Frame ):
self._statusbar_downloads = ''
self._statusbar_db_locked = ''
self.SetIcon( wx.Icon( HC.STATIC_DIR + os.path.sep + 'hydrus.ico', wx.BITMAP_TYPE_ICO ) )
min_width = 920
min_height = 600
display_index = wx.Display.GetFromWindow( self )
if display_index != wx.NOT_FOUND:
display = wx.Display( display_index )
( display_width, display_height ) = display.GetGeometry().GetSize()
initial_width = max( int( display_width * 0.75 ), min_width )
initial_height = max( int( display_height * 0.75 ), min_height )
self.SetInitialSize( ( initial_width, initial_height ) )
self.SetMinSize( ( 480, 360 ) )
self.Maximize()
self._notebook = wx.Notebook( self )
self._notebook.Bind( wx.EVT_MIDDLE_DOWN, self.EventNotebookMiddleClick )
self._notebook.Bind( wx.EVT_RIGHT_DCLICK, self.EventNotebookMiddleClick )
@ -901,12 +879,12 @@ The password is cleartext here but obscured in the entry dialog. Enter a blank p
page = self._notebook.GetCurrentPage()
if page is not None and self.IsMaximized():
if page is not None:
( HC.options[ 'hpos' ], HC.options[ 'vpos' ] ) = page.GetSashPositions()
with wx.BusyCursor(): HC.app.Write( 'save_options' )
HC.app.Write( 'save_options' )
for page in [ self._notebook.GetPage( i ) for i in range( self._notebook.GetPageCount() ) ]:
@ -1451,8 +1429,6 @@ class FrameComposeMessage( ClientGUICommon.Frame ):
ClientGUICommon.Frame.__init__( self, None, title = HC.app.PrepStringForDisplay( 'Compose Message' ) )
self.SetIcon( wx.Icon( HC.STATIC_DIR + os.path.sep + 'hydrus.ico', wx.BITMAP_TYPE_ICO ) )
self.SetInitialSize( ( 920, 600 ) )
vbox = wx.BoxSizer( wx.VERTICAL )
@ -1530,8 +1506,6 @@ class FramePageChooser( ClientGUICommon.Frame ):
self.Center()
self.SetIcon( wx.Icon( HC.STATIC_DIR + os.path.sep + 'hydrus.ico', wx.BITMAP_TYPE_ICO ) )
self._keycodes_to_ids = {}
self._keycodes_to_ids[ wx.WXK_NUMPAD1 ] = 1
@ -1739,8 +1713,6 @@ class FrameReviewServices( ClientGUICommon.Frame ):
ClientGUICommon.Frame.__init__( self, None, title = HC.app.PrepStringForDisplay( 'Review Services' ), pos = pos )
self.SetIcon( wx.Icon( HC.STATIC_DIR + os.path.sep + 'hydrus.ico', wx.BITMAP_TYPE_ICO ) )
InitialiseControls()
PopulateControls()
@ -2287,8 +2259,6 @@ class FrameSplash( ClientGUICommon.Frame ):
wx.Frame.__init__( self, None, style = wx.FRAME_NO_TASKBAR | wx.FRAME_SHAPED, title = 'hydrus client' )
self.SetIcon( wx.Icon( HC.STATIC_DIR + os.path.sep + 'hydrus.ico', wx.BITMAP_TYPE_ICO ) )
self._bmp = wx.EmptyBitmap( 154, 220, 32 ) # 32 bit for transparency?
self.SetSize( ( 154, 220 ) )

View File

@ -403,6 +403,8 @@ class Canvas():
else: self._DrawBackgroundBitmap()
event.Skip()
def KeepCursorAlive( self ): pass
@ -495,11 +497,11 @@ class CanvasPanel( Canvas, wx.Window ):
class CanvasFullscreenMediaList( ClientGUIMixins.ListeningMediaList, Canvas, ClientGUICommon.Frame ):
class CanvasFullscreenMediaList( ClientGUIMixins.ListeningMediaList, Canvas, ClientGUICommon.FrameThatResizes ):
def __init__( self, my_parent, page_key, file_service_identifier, predicates, media_results ):
ClientGUICommon.Frame.__init__( self, my_parent, title = 'hydrus client fullscreen media viewer' )
ClientGUICommon.FrameThatResizes.__init__( self, my_parent, resize_option_prefix = 'fs_', title = 'hydrus client fullscreen media viewer' )
Canvas.__init__( self, file_service_identifier, HC.app.GetFullscreenImageCache() )
ClientGUIMixins.ListeningMediaList.__init__( self, file_service_identifier, predicates, media_results )
@ -509,38 +511,14 @@ class CanvasFullscreenMediaList( ClientGUIMixins.ListeningMediaList, Canvas, Cli
self._just_started = True
self.SetIcon( wx.Icon( HC.STATIC_DIR + os.path.sep + 'hydrus.ico', wx.BITMAP_TYPE_ICO ) )
self.SetCursor( wx.StockCursor( wx.CURSOR_BLANK ) )
min_width = 920
min_height = 600
self.Show( True )
display_index = wx.Display.GetFromWindow( self )
if display_index != wx.NOT_FOUND:
display = wx.Display( display_index )
( display_width, display_height ) = display.GetGeometry().GetSize()
initial_width = max( int( display_width * 0.75 ), min_width )
initial_height = max( int( display_height * 0.75 ), min_height )
self.SetInitialSize( ( initial_width, initial_height ) )
self.SetMinSize( ( 480, 360 ) )
if HC.options[ 'fullscreen_borderless' ]:
if self.IsMaximized() and HC.options[ 'fullscreen_borderless' ]:
self.ShowFullScreen( True, wx.FULLSCREEN_ALL )
else:
self.Maximize()
self.Show( True )
HC.app.SetTopWindow( self )
@ -568,16 +546,8 @@ class CanvasFullscreenMediaList( ClientGUIMixins.ListeningMediaList, Canvas, Cli
def _FullscreenSwitch( self ):
if self.IsFullScreen():
self.ShowFullScreen( False )
self.Maximize()
else:
self.ShowFullScreen( True, wx.FULLSCREEN_ALL )
if self.IsFullScreen(): self.ShowFullScreen( False )
else: self.ShowFullScreen( True, wx.FULLSCREEN_ALL )
def _GetCollectionsString( self ):
@ -1007,7 +977,7 @@ class CanvasFullscreenMediaListBrowser( CanvasFullscreenMediaList ):
self.Bind( wx.EVT_LEFT_DCLICK, self.EventClose )
self.Bind( wx.EVT_MIDDLE_DOWN, self.EventClose )
self.Bind( wx.EVT_MOUSEWHEEL, self.EventMouseWheel )
self.Bind( wx.EVT_RIGHT_UP, self.EventShowMenu )
self.Bind( wx.EVT_RIGHT_DOWN, self.EventShowMenu )
self.Bind( wx.EVT_MENU, self.EventMenu )
@ -1279,7 +1249,7 @@ class CanvasFullscreenMediaListCustomFilter( CanvasFullscreenMediaList ):
self.Bind( wx.EVT_LEFT_DCLICK, self.EventClose )
self.Bind( wx.EVT_MIDDLE_DOWN, self.EventClose )
self.Bind( wx.EVT_MOUSEWHEEL, self.EventMouseWheel )
self.Bind( wx.EVT_RIGHT_UP, self.EventShowMenu )
self.Bind( wx.EVT_RIGHT_DOWN, self.EventShowMenu )
self.Bind( wx.EVT_MENU, self.EventMenu )
@ -2261,7 +2231,7 @@ class RatingsFilterFrameLike( CanvasFullscreenMediaListFilter ):
class RatingsFilterFrameNumerical( ClientGUICommon.Frame ):
class RatingsFilterFrameNumerical( ClientGUICommon.FrameThatResizes ):
RATINGS_FILTER_INEQUALITY_FULL = 0
RATINGS_FILTER_INEQUALITY_HALF = 1
@ -2273,7 +2243,7 @@ class RatingsFilterFrameNumerical( ClientGUICommon.Frame ):
def __init__( self, parent, page_key, service_identifier, media_results ):
ClientGUICommon.Frame.__init__( self, parent, title = 'hydrus client ratings frame' )
ClientGUICommon.FrameThatResizes.__init__( self, parent, resize_option_prefix = 'fs_', title = 'hydrus client ratings frame' )
self._page_key = page_key
self._service_identifier = service_identifier
@ -2319,15 +2289,11 @@ class RatingsFilterFrameNumerical( ClientGUICommon.Frame ):
self._splitter.SetMinimumPaneSize( 120 )
self._splitter.SetSashGravity( 0.5 ) # stay in the middle
if True: # if borderless fullscreen
self.Show( True )
if self.IsMaximized() and HC.options[ 'fullscreen_borderless' ]:
self.ShowFullScreen( True, wx.FULLSCREEN_ALL ^ wx.FULLSCREEN_NOSTATUSBAR )
else:
self.Maximize()
self.Show( True )
self.ShowFullScreen( True, wx.FULLSCREEN_ALL )
HC.app.SetTopWindow( self )
@ -2359,16 +2325,8 @@ class RatingsFilterFrameNumerical( ClientGUICommon.Frame ):
def _FullscreenSwitch( self ):
if self.IsFullScreen():
self.ShowFullScreen( False )
self.Maximize()
else:
self.ShowFullScreen( True, wx.FULLSCREEN_ALL )
if self.IsFullScreen(): self.ShowFullScreen( False )
else: self.ShowFullScreen( True, wx.FULLSCREEN_ALL )
def _GoBack( self ):

View File

@ -948,7 +948,14 @@ class CheckboxCollect( wx.combo.ComboCtrl ):
default = HC.options[ 'default_collect' ]
if default is not None: self.SetCheckedStrings( default )
if default is not None:
strings_we_added = { text for ( text, data ) in collect_types }
strings_to_check = [ s for ( namespace_gumpf, s ) in default if s in strings_we_added ]
self.SetCheckedStrings( strings_to_check )
self.Bind( wx.EVT_CHECKLISTBOX, self.EventChanged )
@ -987,40 +994,6 @@ class CheckboxCollect( wx.combo.ComboCtrl ):
class ChoiceCollect( BetterChoice ):
def __init__( self, parent, page_key = None, sort_by = None ):
BetterChoice.__init__( self, parent )
self._page_key = page_key
if sort_by is None: sort_by = HC.options[ 'sort_by' ]
collect_choices = CC.GenerateCollectByChoices( sort_by )
for ( string, data ) in collect_choices: self.Append( string, data )
self.SetSelection( HC.options[ 'default_collect' ] )
self.Bind( wx.EVT_CHOICE, self.EventChoice )
def EventChoice( self, event ):
if self._page_key is not None:
selection = self.GetSelection()
if selection != wx.NOT_FOUND:
collect_by = self.GetClientData( selection )
HC.pubsub.pub( 'collect_media', self._page_key, collect_by )
class ChoiceSort( BetterChoice ):
def __init__( self, parent, page_key = None, sort_by = None ):
@ -1102,6 +1075,96 @@ class Frame( wx.Frame ):
self.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_BTNFACE ) )
self.SetIcon( wx.Icon( HC.STATIC_DIR + os.path.sep + 'hydrus.ico', wx.BITMAP_TYPE_ICO ) )
class FrameThatResizes( Frame ):
def __init__( self, *args, **kwargs ):
self._resize_option_prefix = kwargs[ 'resize_option_prefix' ]
del kwargs[ 'resize_option_prefix' ]
Frame.__init__( self, *args, **kwargs )
client_size = HC.options[ 'client_size' ]
self.SetInitialSize( client_size[ self._resize_option_prefix + 'restored_size' ] )
self.SetMinSize( ( 480, 360 ) )
self._TryToSetPosition()
if client_size[ self._resize_option_prefix + 'maximised' ]: self.Maximize()
self.Bind( wx.EVT_SIZE, self.EventSpecialResize )
self.Bind( wx.EVT_MOVE_END, self.EventSpecialMoveEnd )
def _TryToSetPosition( self ):
client_size = HC.options[ 'client_size' ]
position = client_size[ self._resize_option_prefix + 'restored_position' ]
display_index = wx.Display.GetFromPoint( position )
if display_index == wx.NOT_FOUND: client_size[ self._resize_option_prefix + 'restored_position' ] = [ 20, 20 ]
else:
display = wx.Display( display_index )
geometry = display.GetGeometry()
( p_x, p_y ) = position
x_bad = p_x < geometry.x or p_x > geometry.x + geometry.width
y_bad = p_y < geometry.y or p_y > geometry.y + geometry.height
if x_bad or y_bad: client_size[ self._resize_option_prefix + 'restored_position' ] = [ 20, 20 ]
self.SetPosition( client_size[ self._resize_option_prefix + 'restored_position' ] )
def EventSpecialMoveEnd( self, event ):
client_size = HC.options[ 'client_size' ]
client_size[ self._resize_option_prefix + 'restored_position' ] = list( self.GetPosition() )
event.Skip()
def EventSpecialResize( self, event ):
client_size = HC.options[ 'client_size' ]
if self.IsMaximized() or self.IsFullScreen():
client_size[ self._resize_option_prefix + 'maximised' ] = True
else:
if client_size[ self._resize_option_prefix + 'maximised' ]: # we have just restored, so set size
self.SetSize( client_size[ self._resize_option_prefix + 'restored_size' ] )
self._TryToSetPosition()
else: # we have resized manually, so set new size
client_size[ self._resize_option_prefix + 'restored_size' ] = list( self.GetSize() )
client_size[ self._resize_option_prefix + 'restored_position' ] = list( self.GetPosition() )
client_size[ self._resize_option_prefix + 'maximised' ] = False
event.Skip()
class Gauge( wx.Gauge ):
@ -1951,7 +2014,7 @@ class PopupMessage( wx.Window ):
wx.Window.__init__( self, parent, style = wx.BORDER_SIMPLE )
self.Bind( wx.EVT_RIGHT_UP, self.EventDismiss )
self.Bind( wx.EVT_RIGHT_DOWN, self.EventDismiss )
def EventDismiss( self, event ):
@ -2188,20 +2251,23 @@ class PopupMessageManager( wx.Frame ):
if message_type == HC.MESSAGE_TYPE_TEXT:
message_string = info
message_string = HC.u( info )
elif message_type == HC.MESSAGE_TYPE_ERROR:
( etype, value, trace ) = info
message_string = HC.u( etype.__name__ ) + ': ' + HC.u( value ) + os.linesep + trace
message_string = HC.u( etype.__name__ ) + ': ' + HC.u( value ) + os.linesep + HC.u( trace )
elif message_type == HC.MESSAGE_TYPE_FILES:
( message_string, hashes ) = info
message_string = HC.u( message_string )
print( message_string )
try: print( message_string )
except: print( repr( message_string ) )
def _SizeAndPositionAndShow( self ):
@ -2240,6 +2306,10 @@ class PopupMessageManager( wx.Frame ):
HC.ShowException = self._old_show_exception
self.DismissAll()
self.Hide()
def Dismiss( self, window ):

View File

@ -5748,7 +5748,6 @@ class DialogManageTagParents( ClientGUIDialogs.Dialog ):
self._tag_parents = ClientGUICommon.SaneListCtrl( self, 250, [ ( '', 30 ), ( 'child', 160 ), ( 'parent', -1 ) ] )
self._tag_parents.Bind( wx.EVT_LIST_ITEM_ACTIVATED, self.EventActivated )
self._tag_parents.Bind( wx.EVT_LIST_ITEM_SELECTED, self.EventItemSelected )
self._tag_parents.Bind( wx.EVT_LIST_ITEM_DESELECTED, self.EventItemSelected )
@ -5772,6 +5771,8 @@ class DialogManageTagParents( ClientGUIDialogs.Dialog ):
for ( child, parent ) in pairs: self._tag_parents.Append( ( sign, child, parent ), ( status, child, parent ) )
self._tag_parents.SortListItems( 2 )
if tag is not None: self.SetChild( tag )
@ -6233,6 +6234,10 @@ class DialogManageTagSiblings( ClientGUIDialogs.Dialog ):
for ( old, new ) in pairs: self._tag_siblings.Append( ( sign, old, new ), ( status, old, new ) )
self._tag_siblings.SortListItems( 2 )
if tag is not None: self.SetOld( tag )
def ArrangeControls():

View File

@ -2605,7 +2605,7 @@ class ManagementPanelPetitions( ManagementPanel ):
class ManagementPanelQuery( ManagementPanel ):
def __init__( self, parent, page, page_key, file_service_identifier, initial_predicates = [] ):
def __init__( self, parent, page, page_key, file_service_identifier, show_search = True, initial_predicates = [] ):
ManagementPanel.__init__( self, parent, page, page_key, file_service_identifier )
@ -2614,21 +2614,24 @@ class ManagementPanelQuery( ManagementPanel ):
self._include_current_tags = True
self._include_pending_tags = True
self._search_panel = ClientGUICommon.StaticBox( self, 'search' )
self._current_predicates_box = ClientGUICommon.TagsBoxPredicates( self._search_panel, self._page_key, initial_predicates )
self._searchbox = ClientGUICommon.AutoCompleteDropdownTagsRead( self._search_panel, self._page_key, self._file_service_identifier, HC.COMBINED_TAG_SERVICE_IDENTIFIER, self._page.GetMedia )
self._search_panel.AddF( self._current_predicates_box, FLAGS_EXPAND_PERPENDICULAR )
self._search_panel.AddF( self._searchbox, FLAGS_EXPAND_PERPENDICULAR )
if show_search:
self._search_panel = ClientGUICommon.StaticBox( self, 'search' )
self._current_predicates_box = ClientGUICommon.TagsBoxPredicates( self._search_panel, self._page_key, initial_predicates )
self._searchbox = ClientGUICommon.AutoCompleteDropdownTagsRead( self._search_panel, self._page_key, self._file_service_identifier, HC.COMBINED_TAG_SERVICE_IDENTIFIER, self._page.GetMedia )
self._search_panel.AddF( self._current_predicates_box, FLAGS_EXPAND_PERPENDICULAR )
self._search_panel.AddF( self._searchbox, FLAGS_EXPAND_PERPENDICULAR )
vbox = wx.BoxSizer( wx.VERTICAL )
self._MakeSort( vbox )
self._MakeCollect( vbox )
vbox.AddF( self._search_panel, FLAGS_EXPAND_PERPENDICULAR )
if show_search: vbox.AddF( self._search_panel, FLAGS_EXPAND_PERPENDICULAR )
self._MakeCurrentSelectionTagsBox( vbox )
@ -2785,7 +2788,11 @@ class ManagementPanelQuery( ManagementPanel ):
def SetSearchFocus( self, page_key ):
if page_key == self._page_key: self._searchbox.SetFocus()
if page_key == self._page_key:
try: self._searchbox.SetFocus() # there's a chance this doesn't exist!
except: pass
def ShowQuery( self, query_key, media_results ):

View File

@ -219,14 +219,6 @@ class MediaPanel( ClientGUIMixins.ListeningMediaList, wx.ScrolledWindow ):
def _DeselectAll( self ):
self._DeselectSelect( self._selected_media, [] )
self._SetFocussedMedia( None )
self._shift_focussed_media = None
def _DeselectSelect( self, media_to_deselect, media_to_select ):
if len( media_to_deselect ) > 0:
@ -338,7 +330,12 @@ class MediaPanel( ClientGUIMixins.ListeningMediaList, wx.ScrolledWindow ):
if media is None:
if not ctrl and not shift: self._DeselectAll()
if not ctrl and not shift:
self._Select( 'none' )
self._SetFocussedMedia( None )
self._shift_focussed_media = None
else:
@ -553,6 +550,8 @@ class MediaPanel( ClientGUIMixins.ListeningMediaList, wx.ScrolledWindow ):
self._RefitCanvas()
self._RedrawCanvas()
self._PublishSelectionChange()
HC.pubsub.pub( 'sorted_media_pulse', self._page_key, self.GenerateMediaResults() )
@ -578,40 +577,61 @@ class MediaPanel( ClientGUIMixins.ListeningMediaList, wx.ScrolledWindow ):
def _ScrollEnd( self ):
def _ScrollEnd( self, shift = False ):
if len( self._sorted_media ) > 0:
end_media = self._sorted_media[ -1 ]
self._HitMedia( end_media, False, False )
self._HitMedia( end_media, False, shift )
self._ScrollToMedia( end_media )
def _ScrollHome( self ):
def _ScrollHome( self, shift = False ):
if len( self._sorted_media ) > 0:
home_media = self._sorted_media[ 0 ]
self._HitMedia( home_media, False, False )
self._HitMedia( home_media, False, shift )
self._ScrollToMedia( home_media )
def _SelectAll( self ):
def _Select( self, select_type ):
self._RedrawCanvas()
self._DeselectSelect( [], self._sorted_media )
def _SelectNone( self ):
self._RedrawCanvas()
self._DeselectSelect( self._selected_media, [] )
if select_type == 'all': self._DeselectSelect( [], self._sorted_media )
else:
if select_type == 'none': ( media_to_deselect, media_to_select ) = ( self._selected_media, [] )
else:
inbox_media = { m for m in self._sorted_media if m.HasInbox() }
archive_media = { m for m in self._sorted_media if m not in inbox_media }
if select_type == 'inbox':
media_to_deselect = [ m for m in archive_media if m in self._selected_media ]
media_to_select = [ m for m in inbox_media if m not in self._selected_media ]
elif select_type == 'archive':
media_to_deselect = [ m for m in inbox_media if m in self._selected_media ]
media_to_select = [ m for m in archive_media if m not in self._selected_media ]
if self._focussed_media in media_to_deselect: self._SetFocussedMedia( None )
self._DeselectSelect( media_to_deselect, media_to_select )
self._shift_focussed_media = None
def _SetFocussedMedia( self, media ):
@ -671,7 +691,7 @@ class MediaPanel( ClientGUIMixins.ListeningMediaList, wx.ScrolledWindow ):
if page_key == self._page_key:
self._DeselectAll()
self._Select( 'none' )
ClientGUIMixins.ListeningMediaList.Collect( self, collect_by )
@ -726,13 +746,6 @@ class MediaPanel( ClientGUIMixins.ListeningMediaList, wx.ScrolledWindow ):
affected_media = self._GetMedia( hashes )
if action == HC.CONTENT_UPDATE_DELETE and service_type in ( HC.FILE_REPOSITORY, HC.LOCAL_FILE ):
if service_identifier == self._file_service_identifier: self._RedrawCanvas()
if self._focussed_media in affected_media: self._SetFocussedMedia( None )
if len( affected_media ) > 0:
self._RedrawMediaIfLoaded( affected_media )
@ -857,7 +870,7 @@ class MediaPanelThumbnails( MediaPanel ):
self._timer_animation = wx.Timer( self, ID_TIMER_ANIMATION )
self._thumbnails_being_faded_in = {}
self._current_y_start = 0
self._current_y_offset = 0
self._thumbnail_span_dimensions = CC.AddPaddingToDimensions( HC.options[ 'thumbnail_dimensions' ], ( CC.THUMBNAIL_BORDER + CC.THUMBNAIL_MARGIN ) * 2 )
@ -869,7 +882,7 @@ class MediaPanelThumbnails( MediaPanel ):
self.Bind( wx.EVT_SCROLLWIN, self.EventScroll )
self.Bind( wx.EVT_LEFT_DOWN, self.EventSelection )
self.Bind( wx.EVT_RIGHT_UP, self.EventShowMenu )
self.Bind( wx.EVT_RIGHT_DOWN, self.EventShowMenu )
self.Bind( wx.EVT_LEFT_DCLICK, self.EventMouseFullScreen )
self.Bind( wx.EVT_MIDDLE_DOWN, self.EventMouseFullScreen )
self.Bind( wx.EVT_PAINT, self.EventPaint )
@ -905,7 +918,9 @@ class MediaPanelThumbnails( MediaPanel ):
( xUnit, yUnit ) = self.GetScrollPixelsPerUnit()
earliest_y = self._current_y_start * yUnit
y_start = self._GetYStart()
earliest_y = y_start * yUnit
( my_client_width, my_client_height ) = self.GetClientSize()
@ -936,7 +951,9 @@ class MediaPanelThumbnails( MediaPanel ):
( xUnit, yUnit ) = self.GetScrollPixelsPerUnit()
y_offset = self._current_y_start * yUnit
y_start = self._GetYStart()
y_offset = y_start * yUnit
( my_client_width, my_client_height ) = self.GetClientSize()
@ -1197,6 +1214,29 @@ class MediaPanelThumbnails( MediaPanel ):
return self._sorted_media[ thumbnail_index ]
def _GetYStart( self ):
( my_virtual_width, my_virtual_height ) = self.GetVirtualSize()
( my_width, my_height ) = self.GetClientSize()
( xUnit, yUnit ) = self.GetScrollPixelsPerUnit()
max_y = ( my_virtual_height - my_height ) / yUnit
if ( my_virtual_height - my_height ) % yUnit > 0: max_y += 1
( x, y ) = self.GetViewStart()
y += self._current_y_offset
y = max( 0, y )
y = min( y, max_y )
return y
def _MoveFocussedThumbnail( self, rows, columns, shift ):
if self._focussed_media is not None:
@ -1350,7 +1390,7 @@ class MediaPanelThumbnails( MediaPanel ):
# accelerator tables can't handle escape key in windows, gg
if event.GetKeyCode() == wx.WXK_ESCAPE: self._DeselectAll()
if event.GetKeyCode() == wx.WXK_ESCAPE: self._Select( 'none' )
else: event.Skip()
@ -1375,7 +1415,6 @@ class MediaPanelThumbnails( MediaPanel ):
elif command == 'custom_filter': self._CustomFilter()
elif command == 'delete': self._Delete( data )
elif command == 'deselect': self._DeselectAll()
elif command == 'download': HC.app.Write( 'content_updates', { HC.LOCAL_FILE_SERVICE_IDENTIFIER : [ HC.ContentUpdate( HC.CONTENT_DATA_TYPE_FILES, HC.CONTENT_UPDATE_PENDING, self._GetSelectedHashes( CC.DISCRIMINANT_NOT_LOCAL ) ) ] } )
elif command == 'export': self._ExportFiles()
elif command == 'filter': self._Filter()
@ -1391,10 +1430,11 @@ class MediaPanelThumbnails( MediaPanel ):
elif command == 'remove': self._Remove()
elif command == 'rescind_petition': self._RescindPetitionFiles( data )
elif command == 'rescind_upload': self._RescindUploadFiles( data )
elif command == 'scroll_end': self._ScrollEnd()
elif command == 'scroll_home': self._ScrollHome()
elif command == 'select_all': self._SelectAll()
elif command == 'select_none': self._SelectNone()
elif command == 'scroll_end': self._ScrollEnd( False )
elif command == 'scroll_home': self._ScrollHome( False )
elif command == 'shift_scroll_end': self._ScrollEnd( True )
elif command == 'shift_scroll_home': self._ScrollHome( True )
elif command == 'select': self._Select( data )
elif command == 'show_selection_in_new_query_page': self._ShowSelectionInNewQueryPage()
elif command == 'upload': self._UploadFiles( data )
elif command == 'key_up': self._MoveFocussedThumbnail( -1, 0, False )
@ -1442,6 +1482,8 @@ class MediaPanelThumbnails( MediaPanel ):
self._RefitCanvas()
self.Refresh() # in case of small resizes where a dc isn't created, I think, where we get tiny black lines
def EventSelection( self, event ):
@ -1464,8 +1506,14 @@ class MediaPanelThumbnails( MediaPanel ):
menu.AppendSeparator()
menu.Append( CC.MENU_EVENT_ID_TO_ACTION_CACHE.GetId( 'select_all' ), 'select all' )
menu.Append( CC.MENU_EVENT_ID_TO_ACTION_CACHE.GetId( 'select_none' ), 'select none' )
select_menu = wx.Menu()
select_menu.Append( CC.MENU_EVENT_ID_TO_ACTION_CACHE.GetId( 'select', 'all' ), 'all' )
select_menu.Append( CC.MENU_EVENT_ID_TO_ACTION_CACHE.GetId( 'select', 'inbox' ), 'inbox' )
select_menu.Append( CC.MENU_EVENT_ID_TO_ACTION_CACHE.GetId( 'select', 'archive' ), 'archive' )
select_menu.Append( CC.MENU_EVENT_ID_TO_ACTION_CACHE.GetId( 'select', 'none' ), 'none' )
menu.AppendMenu( CC.ID_NULL, 'select', select_menu )
else:
@ -1766,8 +1814,14 @@ class MediaPanelThumbnails( MediaPanel ):
menu.AppendSeparator()
menu.Append( CC.MENU_EVENT_ID_TO_ACTION_CACHE.GetId( 'select_all' ), 'select all' )
menu.Append( CC.MENU_EVENT_ID_TO_ACTION_CACHE.GetId( 'select_none' ), 'select none' )
select_menu = wx.Menu()
select_menu.Append( CC.MENU_EVENT_ID_TO_ACTION_CACHE.GetId( 'select', 'all' ), 'all' )
select_menu.Append( CC.MENU_EVENT_ID_TO_ACTION_CACHE.GetId( 'select', 'inbox' ), 'inbox' )
select_menu.Append( CC.MENU_EVENT_ID_TO_ACTION_CACHE.GetId( 'select', 'archive' ), 'archive' )
select_menu.Append( CC.MENU_EVENT_ID_TO_ACTION_CACHE.GetId( 'select', 'none' ), 'none' )
menu.AppendMenu( CC.ID_NULL, 'select', select_menu )
menu.AppendSeparator()
@ -1794,29 +1848,25 @@ class MediaPanelThumbnails( MediaPanel ):
# it seems that some scroll events happen after the viewstart has changed, some happen before
# so I have to keep track of a manual current_y_start
( my_virtual_width, my_virtual_height ) = self.GetVirtualSize()
( my_width, my_height ) = self.GetClientSize()
( xUnit, yUnit ) = self.GetScrollPixelsPerUnit()
max_y_units = ( my_virtual_height - my_height ) / yUnit
if ( my_virtual_height - my_height ) % yUnit > 0: max_y_units += 1
page_of_y_units = my_height / yUnit
event_type = event.GetEventType()
if event_type == wx.wxEVT_SCROLLWIN_LINEUP: self._current_y_start = max( 0, self._current_y_start - 1 )
elif event_type == wx.wxEVT_SCROLLWIN_LINEDOWN: self._current_y_start = min( max_y_units, self._current_y_start + 1 )
elif event_type == wx.wxEVT_SCROLLWIN_THUMBTRACK: self._current_y_start = event.GetPosition()
elif event_type == wx.wxEVT_SCROLLWIN_THUMBRELEASE: self._current_y_start = event.GetPosition()
elif event_type == wx.wxEVT_SCROLLWIN_PAGEUP: self._current_y_start = max( 0, self._current_y_start - page_of_y_units )
elif event_type == wx.wxEVT_SCROLLWIN_PAGEDOWN: self._current_y_start = min( max_y_units, self._current_y_start + page_of_y_units )
if event_type == wx.wxEVT_SCROLLWIN_LINEUP: self._current_y_offset = -1
elif event_type == wx.wxEVT_SCROLLWIN_LINEDOWN: self._current_y_offset = 1
elif event_type == wx.wxEVT_SCROLLWIN_THUMBTRACK: self._current_y_offset = 0
elif event_type == wx.wxEVT_SCROLLWIN_THUMBRELEASE: self._current_y_offset = 0
elif event_type == wx.wxEVT_SCROLLWIN_PAGEUP: self._current_y_offset = - page_of_y_units
elif event_type == wx.wxEVT_SCROLLWIN_PAGEDOWN: self._current_y_offset = page_of_y_units
self._RefitCanvas()
self._current_y_offset = 0
event.Skip()
@ -1921,6 +1971,10 @@ class MediaPanelThumbnails( MediaPanel ):
( wx.ACCEL_NORMAL, wx.WXK_NUMPAD_LEFT, CC.MENU_EVENT_ID_TO_ACTION_CACHE.GetId( 'key_left' ) ),
( wx.ACCEL_NORMAL, wx.WXK_RIGHT, CC.MENU_EVENT_ID_TO_ACTION_CACHE.GetId( 'key_right' ) ),
( wx.ACCEL_NORMAL, wx.WXK_NUMPAD_RIGHT, CC.MENU_EVENT_ID_TO_ACTION_CACHE.GetId( 'key_right' ) ),
( wx.ACCEL_SHIFT, wx.WXK_HOME, CC.MENU_EVENT_ID_TO_ACTION_CACHE.GetId( 'shift_scroll_home' ) ),
( wx.ACCEL_SHIFT, wx.WXK_NUMPAD_HOME, CC.MENU_EVENT_ID_TO_ACTION_CACHE.GetId( 'shift_scroll_home' ) ),
( wx.ACCEL_SHIFT, wx.WXK_END, CC.MENU_EVENT_ID_TO_ACTION_CACHE.GetId( 'shift_scroll_end' ) ),
( wx.ACCEL_SHIFT, wx.WXK_NUMPAD_END, CC.MENU_EVENT_ID_TO_ACTION_CACHE.GetId( 'shift_scroll_end' ) ),
( wx.ACCEL_SHIFT, wx.WXK_UP, CC.MENU_EVENT_ID_TO_ACTION_CACHE.GetId( 'key_shift_up' ) ),
( wx.ACCEL_SHIFT, wx.WXK_NUMPAD_UP, CC.MENU_EVENT_ID_TO_ACTION_CACHE.GetId( 'key_shift_up' ) ),
( wx.ACCEL_SHIFT, wx.WXK_DOWN, CC.MENU_EVENT_ID_TO_ACTION_CACHE.GetId( 'key_shift_down' ) ),
@ -1929,7 +1983,7 @@ class MediaPanelThumbnails( MediaPanel ):
( wx.ACCEL_SHIFT, wx.WXK_NUMPAD_LEFT, CC.MENU_EVENT_ID_TO_ACTION_CACHE.GetId( 'key_shift_left' ) ),
( wx.ACCEL_SHIFT, wx.WXK_RIGHT, CC.MENU_EVENT_ID_TO_ACTION_CACHE.GetId( 'key_shift_right' ) ),
( wx.ACCEL_SHIFT, wx.WXK_NUMPAD_RIGHT, CC.MENU_EVENT_ID_TO_ACTION_CACHE.GetId( 'key_shift_right' ) ),
( wx.ACCEL_CMD, ord( 'A' ), CC.MENU_EVENT_ID_TO_ACTION_CACHE.GetId( 'select_all' ) ),
( wx.ACCEL_CMD, ord( 'A' ), CC.MENU_EVENT_ID_TO_ACTION_CACHE.GetId( 'select', 'all' ) ),
( wx.ACCEL_CTRL, ord( 'c' ), CC.MENU_EVENT_ID_TO_ACTION_CACHE.GetId( 'copy_files' ) ),
( wx.ACCEL_CTRL, wx.WXK_SPACE, CC.MENU_EVENT_ID_TO_ACTION_CACHE.GetId( 'ctrl-space' ) )
]

View File

@ -296,15 +296,21 @@ class MediaList():
( sort_by_type, sort_by_data ) = sort_by
def deal_with_none( x ):
if x == None: return -1
else: return x
if sort_by_type == 'system':
if sort_by_data == CC.SORT_BY_RANDOM: sort_function = lambda x: random.random()
elif sort_by_data == CC.SORT_BY_SMALLEST: sort_function = lambda x: x.GetSize()
elif sort_by_data == CC.SORT_BY_LARGEST: sort_function = lambda x: -x.GetSize()
elif sort_by_data == CC.SORT_BY_SHORTEST: sort_function = lambda x: x.GetDuration()
elif sort_by_data == CC.SORT_BY_LONGEST: sort_function = lambda x: -x.GetDuration()
elif sort_by_data == CC.SORT_BY_OLDEST: sort_function = lambda x: x.GetTimestamp()
elif sort_by_data == CC.SORT_BY_NEWEST: sort_function = lambda x: -x.GetTimestamp()
elif sort_by_data == CC.SORT_BY_SMALLEST: sort_function = lambda x: deal_with_none( x.GetSize() )
elif sort_by_data == CC.SORT_BY_LARGEST: sort_function = lambda x: -deal_with_none( x.GetSize() )
elif sort_by_data == CC.SORT_BY_SHORTEST: sort_function = lambda x: deal_with_none( x.GetDuration() )
elif sort_by_data == CC.SORT_BY_LONGEST: sort_function = lambda x: -deal_with_none( x.GetDuration() )
elif sort_by_data == CC.SORT_BY_OLDEST: sort_function = lambda x: deal_with_none( x.GetTimestamp() )
elif sort_by_data == CC.SORT_BY_NEWEST: sort_function = lambda x: -deal_with_none( x.GetTimestamp() )
elif sort_by_data == CC.SORT_BY_MIME: sort_function = lambda x: x.GetMime()
elif sort_by_type == 'namespaces':
@ -314,51 +320,7 @@ class MediaList():
x_tags_manager = x.GetTagsManager()
return [ x_tags_manager.GetComparableNamespaceSlice( ( namespace, ) ) for namespace in namespaces ]
'''
for namespace in sort_by_data:
x_namespace_slice = x_tags_manager.GetNamespaceSlice( ( namespace, ) )
y_namespace_slice = y_tags_manager.GetNamespaceSlice( ( namespace, ) )
if x_namespace_slice == y_namespace_slice: continue # this covers len == 0 for both, too
else:
if len( x_namespace_slice ) == 1 and len( y_namespace_slice ) == 1:
#convert from frozenset to tuple to extract the single member, then get the t from the n:t concat.
x_value = tuple( x_namespace_slice )[0].split( ':', 1 )[1]
y_value = tuple( y_namespace_slice )[0].split( ':', 1 )[1]
try: return cmp( int( x_value ), int( y_value ) )
except: return cmp( x_value, y_value )
elif len( x_namespace_slice ) == 0: return 1 # I'm sure the 1 and -1 should be the other way around, but that seems to be a wrong thought
elif len( y_namespace_slice ) == 0: return -1 # any membership has precedence over non-membership, right? I'm understanding it wrong, clearly.
else:
# compare the earliest/smallest/lexicographically-first non-common values
x_list = list( x_namespace_slice )
x_list.sort()
for x_value in x_list:
if x_value not in y_namespace_slice:
x_value = x_value.split( ':', 1 )[1]
y_value = min( y_namespace_slice ).split( ':', 1 )[1]
try: return cmp( int( x_value ), int( y_value ) )
except: return cmp( x_value, y_value )
return cmp( x.GetSize(), y.GetSize() )
'''
sort_function = lambda x: namespace_sort_function( sort_by_data, x )
@ -370,8 +332,8 @@ class MediaList():
( x_local_ratings, x_remote_ratings ) = x.GetRatings()
if service_identifier.GetType() in ( HC.LOCAL_RATING_LIKE, HC.LOCAL_RATING_NUMERICAL ): rating = x_local_ratings.GetRating( service_identifier )
else: rating = x_remote_ratings.GetScore( service_identifier )
if service_identifier.GetType() in ( HC.LOCAL_RATING_LIKE, HC.LOCAL_RATING_NUMERICAL ): rating = deal_with_none( x_local_ratings.GetRating( service_identifier ) )
else: rating = deal_with_none( x_remote_ratings.GetScore( service_identifier ) )
if reverse: rating *= -1

View File

@ -394,7 +394,12 @@ class PageQuery( PageWithMedia ):
PageWithMedia.__init__( self, parent, file_service_identifier )
def _InitManagementPanel( self ): self._management_panel = ClientGUIManagement.ManagementPanelQuery( self._search_preview_split, self, self._page_key, self._file_service_identifier, initial_predicates = self._initial_predicates )
def _InitManagementPanel( self ):
show_search = self._initial_media_results == []
self._management_panel = ClientGUIManagement.ManagementPanelQuery( self._search_preview_split, self, self._page_key, self._file_service_identifier, show_search = show_search, initial_predicates = self._initial_predicates )
def _InitMediaPanel( self ):

View File

@ -12,7 +12,7 @@ def Parse4chanPostScreen( html ):
if title_tag.string == 'Post successful!': return ( 'success', None )
elif title_tag.string == '4chan - Banned':
print( soup )
print( repr( soup ) )
message = 'You are banned from this board! html written to log.'
@ -28,7 +28,7 @@ def Parse4chanPostScreen( html ):
if problem_tag is None:
try: print( soup )
try: print( repr( soup ) )
except: pass
message = 'Unknown problem; html written to log.'

View File

@ -1,4 +1,5 @@
import bisect
import bs4
import collections
import httplib
import HydrusExceptions
@ -37,7 +38,7 @@ TEMP_DIR = BASE_DIR + os.path.sep + 'temp'
# Misc
NETWORK_VERSION = 10
SOFTWARE_VERSION = 82
SOFTWARE_VERSION = 83
UNSCALED_THUMBNAIL_DIMENSIONS = ( 200, 200 )
@ -974,9 +975,9 @@ def ShowExceptionDefault( e ):
trace = ''.join( trace_list )
message = u( etype.__name__ ) + ': ' + value + os.linesep + trace
message = u( etype.__name__ ) + ': ' + u( value ) + os.linesep + u( trace )
print( message )
print( repr( message ) )
ShowException = ShowExceptionDefault
@ -1043,7 +1044,7 @@ def MergeKeyToListDicts( key_to_list_dicts ):
def u( text_producing_object ):
if type( text_producing_object ) in ( str, unicode ): text = text_producing_object
if type( text_producing_object ) in ( str, unicode, bs4.element.NavigableString ): text = text_producing_object
else: text = str( text_producing_object ) # dealing with exceptions, etc...
try: return unicode( text )
@ -2568,13 +2569,7 @@ class SortedList():
def remove_items( self, items ):
try: deletee_indices = [ self.index( item ) for item in items ]
except:
print( self._items_to_indices )
raise
deletee_indices = [ self.index( item ) for item in items ]
deletee_indices.sort()

View File

@ -625,7 +625,7 @@ class HydrusHTTPRequestHandler( BaseHTTPServer.BaseHTTPRequestHandler ):
def log_request( self, *args ): pass
def log_string( self, message ): print( message )
def log_string( self, message ): print( repr( message ) )
# this overrides the base method to no longer use the class variable server_version
def version_string( self ):

View File

@ -111,6 +111,6 @@ class TaskBarIcon( wx.TaskBarIcon ):
self._tbmenu.Append( wx.ID_EXIT, 'exit' )
self.Bind( wx.EVT_TASKBAR_RIGHT_UP, lambda event: self.PopupMenu( self._tbmenu ) )
self.Bind( wx.EVT_TASKBAR_RIGHT_DOWN, lambda event: self.PopupMenu( self._tbmenu ) )

View File

@ -107,4 +107,101 @@ class TestDownloaders( unittest.TestCase ):
HC.get_connection = HC.AdvancedHTTPConnection
def test_hentai_foundry( self ):
with open( HC.STATIC_DIR + os.path.sep + 'testing' + os.path.sep + 'hf_picture_gallery.html' ) as f: picture_gallery = f.read()
with open( HC.STATIC_DIR + os.path.sep + 'testing' + os.path.sep + 'hf_scrap_gallery.html' ) as f: scrap_gallery = f.read()
with open( HC.STATIC_DIR + os.path.sep + 'testing' + os.path.sep + 'hf_picture_page.html' ) as f: picture_page = f.read()
with open( HC.STATIC_DIR + os.path.sep + 'testing' + os.path.sep + 'hf_scrap_page.html' ) as f: scrap_page = f.read()
fake_connection = TestConstants.FakeHTTPConnection( host = 'www.hentai-foundry.com' )
# what about page/1 or whatever?
fake_connection.SetResponse( 'GET', '/pictures/user/Sparrow/page/1', picture_gallery )
fake_connection.SetResponse( 'GET', '/pictures/user/Sparrow/scraps/page/1', scrap_gallery )
fake_connection.SetResponse( 'GET', '/pictures/user/Sparrow/226304/Ashantae', picture_page )
fake_connection.SetResponse( 'GET', '/pictures/user/Sparrow/226084/Swegabe-Sketches--Gabrielle-027', scrap_page )
TestConstants.fake_http_connection_manager.SetConnection( fake_connection, host = 'www.hentai-foundry.com' )
HC.get_connection = TestConstants.fake_http_connection_manager.GetConnection
cookies = { 'YII_CSRF_TOKEN' : '19b05b536885ec60b8b37650a32f8deb11c08cd1s%3A40%3A%222917dcfbfbf2eda2c1fbe43f4d4c4ec4b6902b32%22%3B' }
HC.app.SetWebCookies( 'hentai foundry', cookies )
#
info = {}
info[ 'rating_nudity' ] = 3
info[ 'rating_violence' ] = 3
info[ 'rating_profanity' ] = 3
info[ 'rating_racism' ] = 3
info[ 'rating_sex' ] = 3
info[ 'rating_spoilers' ] = 3
info[ 'rating_yaoi' ] = 1
info[ 'rating_yuri' ] = 1
info[ 'rating_loli' ] = 1
info[ 'rating_shota' ] = 1
info[ 'rating_teen' ] = 1
info[ 'rating_guro' ] = 1
info[ 'rating_furry' ] = 1
info[ 'rating_beast' ] = 1
info[ 'rating_male' ] = 1
info[ 'rating_female' ] = 1
info[ 'rating_futa' ] = 1
info[ 'rating_other' ] = 1
info[ 'filter_media' ] = 'A'
info[ 'filter_order' ] = 0
info[ 'filter_type' ] = 0
pictures_downloader = HydrusDownloading.GetDownloader( HC.SITE_DOWNLOAD_TYPE_HENTAI_FOUNDRY, 'artist pictures', 'Sparrow', info )
scraps_downloader = HydrusDownloading.GetDownloader( HC.SITE_DOWNLOAD_TYPE_HENTAI_FOUNDRY, 'artist scraps', 'Sparrow', info )
#
gallery_urls = pictures_downloader.GetAnotherPage()
expected_gallery_urls = [('http://www.hentai-foundry.com/pictures/user/Sparrow/226304/Ashantae',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/225935/Coco-VS-Admiral-Swiggins',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/225472/Poon-Cellar',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/225063/Goal-Tending',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/223991/Coco-VS-StarStorm',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/221783/Gala-Event',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/221379/Linda-Rinda',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/220615/Farahs-Day-Off--27',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/219856/Viewing-Room-Workout',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/219284/Farahs-Day-Off--26',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/218886/Nyaow-Streaming',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/218035/Farahs-Day-Off--25',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/216981/A-Vivi-draws-near.-Command',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/216642/Farahs-Day-Off--24',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/215266/Farahs-Day-Off--23',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/213132/Relative-Risk',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/212665/Farahs-Day-Off--21',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/212282/Sticky-Sheva-Situation',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/211269/Farahs-Day-Off-20-2',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/211268/Farahs-Day-Off-20-1',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/211038/Newcomers',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/209967/Farahs-Day-Off-19',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/209292/The-New-Adventures-of-Helena-Lovelace-01',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/208609/Farahs-Day-Off--18',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/207979/Wonderful-Backlit-Foreign-Boyfriend-Experience',)]
self.assertEqual( gallery_urls, expected_gallery_urls )
gallery_urls = scraps_downloader.GetAnotherPage()
expected_gallery_urls = [('http://www.hentai-foundry.com/pictures/user/Sparrow/226084/Swegabe-Sketches--Gabrielle-027',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/224103/Make-Trade',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/220618/Swegabe-Sketches--Gabrielle-020',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/216451/Bigger-Dipper',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/213985/Swegabe-Sketches--Gabrielle-008',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/211271/Swegabe-Sketches--Gabrielle-003',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/210311/Himari-Says-Hi',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/209971/Swegabe-Sketches--Gabrielle-002',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/209970/Swegabe-Sketches--Gabrielle-001',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/204463/Minobred-Overkill',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/203723/Single-File-Please',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/202593/Kneel-O-April',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/201296/McPie-2',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/195882/HANDLED',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/184275/Relative-Frequency',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/183458/Coco-VS-Voltar',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/183085/Coco-VS-Froggy-G',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/181508/Mystra-Meets-Mister-18',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/180699/Tunnel-Trouble',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/177549/Coco-VS-Leon',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/175824/The-Ladies-Boyle',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/168744/Coco-VS-Yuri',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/166167/VVVVViewtiful',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/165429/Walled',), ('http://www.hentai-foundry.com/pictures/user/Sparrow/164936/Coco-VS-Lonestar',)]
self.assertEqual( gallery_urls, expected_gallery_urls )
#
fake_connection = TestConstants.FakeHTTPConnection( host = 'pictures.hentai-foundry.com' )
fake_connection.SetResponse( 'GET', '//s/Sparrow/226304.jpg', 'picture' )
fake_connection.SetResponse( 'GET', '//s/Sparrow/226084.jpg', 'scrap' )
TestConstants.fake_http_connection_manager.SetConnection( fake_connection, host = 'pictures.hentai-foundry.com' )
# ask for specific url
info = pictures_downloader.GetFileAndTags( 'http://www.hentai-foundry.com/pictures/user/Sparrow/226304/Ashantae' )
expected_info = ('picture', [u'creator:Sparrow', u'title:Ashantae!', u'Shantae', u'Asha', u'Monster_World', u'cosplay', u'nips'])
self.assertEqual( info, expected_info )
info = scraps_downloader.GetFileAndTags( 'http://www.hentai-foundry.com/pictures/user/Sparrow/226084/Swegabe-Sketches--Gabrielle-027' )
expected_info = ('scrap', [u'creator:Sparrow', u'title:Swegabe Sketches \u2013 Gabrielle 027', u'bukkake', u'horsecock', u'gokkun', u'prom_night'])
self.assertEqual( info, expected_info )
#
HC.get_connection = HC.AdvancedHTTPConnection

View File

@ -0,0 +1,347 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="language" content="en" />
<link rel="stylesheet" type="text/css" href="http://img.hentai-foundry.com/themes/default/css/default.css" title="Default CSS" />
<link rel="shortcut icon" href="/themes/Hentai/favicon.ico" type="image/x-icon" />
<link rel="search" type="application/opensearchdescription+xml"
title="Search Hentai Foundry"
href="/search/OpenSearchDescription"
/>
<script type="text/javascript" src="http://img.hentai-foundry.com/themes/default/js/util.js"></script>
<meta name="description" content="Hentai Foundry is an online art gallery for adult oriented art. Despite its name, it is not limited to hentai but also welcomes adult in other styles such as cartoon and realism."> <meta name="keywords" content="Hentai, futanari, furry, porn, sex, fan, art, fanart, pictures, anime, cartoons, tv, movies, forum, upload, image, gallery">
<link title="Sparrow&#039;s Pictures" rel="alternate" type="application/atom+xml" href="/feed/userPictures/username/Sparrow" />
<script type="text/javascript" src="/assets/67f68f61/jquery.js"></script>
<script type="text/javascript" src="/assets/67f68f61/jquery.ba-bbq.js"></script>
<title>Sparrow&#039;s Pictures - Hentai Foundry</title>
<link rel="meta" href="http://img.hentai-foundry.com/themes/Hentai/labels.rdf" type="application/rdf+xml" title="ICRA labels" />
<meta http-equiv="pics-Label" content='(pics-1.1 "http://www.icra.org/pics/vocabularyv03/" l gen true for "http://hentai-foundry.com" r (n 3 s 3 v 0 l 2 oa 0 ob 0 oc 0 od 0 oe 0 of 0 og 0 oh 0 c 3) gen true for "http://www.hentai-foundry.com" r (n 3 s 3 v 0 l 2 oa 0 ob 0 oc 0 od 0 oe 0 of 0 og 0 oh 0 c 3))' />
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.classify.org/safesurf/" L gen true for "http://www.hentai-foundry.com/" r (SS~~000 9 SS~~001 5 SS~~002 5 SS~~003 5 SS~~004 9 SS~~005 5 SS~~007 5 SS~~008 5 SS~~009 9 SS~~00A 5))'></head>
<body>
<div style="background: url(http://img.hentai-foundry.com/themes/default/images/header_bg.gif); height: 140px; width: 100%">
<div style="text-align: left">
<a href="/site/index">
<img src="http://img.hentai-foundry.com/themes/Hentai/images/logo.png" border="0" alt="Logo" title="Logo" />
</a>
</div>
<div style="position: absolute; right: 15px; top: 15px;">
<form action="/search/index" method="GET">
<span style="white-space:nowrap">
<input type="text" name="query" />
<input type="submit" value="Search" />
</span><br />
<a class="navlink" href="/search/index">Advanced Search</a> </form>
</div>
<div class='headerLogin'>
<form action="/site/login" method="post">
<div style="display:none"><input type="hidden" value="8a390060fc082247c06755b297dc4754aa15a3e5" name="YII_CSRF_TOKEN" /></div> Username <input type="text" name="LoginForm[username]" /> &nbsp;
Password <input type="password" name="LoginForm[password]" /> &nbsp;
<input type="submit" value="Login" /><br />
<div align='right' style="margin-top: 5px;">
Remember <input type="checkbox" value="1" name="LoginForm[rememberMe]" style="background: #676573;" />
&nbsp; <a class='navlink' href="/users/create">Register</a> &nbsp;
| &nbsp; <a class='navlink' href="/users/LostPassword">Forgot your password?</a></div>
</form>
</div>
</div>
<div id="mainmenu" style="text-align: center; background: #676573; color: #000; font-weight: bold; font-size: 0.9em;">
<div id="filtersButton"><a OnClick="ths = $(this); jQuery(&#039;#FilterBox&#039;).css({top: ths.offset().top, left: ths.offset().left + ths.outerWidth() + 10}); jQuery(&#039;#FilterBox&#039;).toggle(500); return false;" href="#"><img title="[Filters]" src="http://img.hentai-foundry.com/themes/default/images/buttons/filter.png" alt="[Filters]" /></a></div><div class="box" id="FilterBox">
<div class="boxheader">
<div class="boxtitle">Filters <a style="float: right;" href="#" onClick="jQuery('#FilterBox').toggle(500); return false;">X</a></div>
</div>
<div class="boxbody">
<form action="/pictures/user/Sparrow" method="post">
<div style="display:none"><input type="hidden" value="8a390060fc082247c06755b297dc4754aa15a3e5" name="YII_CSRF_TOKEN" /></div><div class='filter_div rating_nudity'>
<label for='rating_nudity'><small><small>Show</small></small> Nudity <img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude1.gif" alt="N" /></label><select class="ratingListBox" name="rating_nudity" id="rating_nudity">
<option value="0">None</option>
<option value="1">Mild Nudity</option>
<option value="2">Moderate Nudity</option>
<option value="3" selected="selected">Explicit Nudity</option>
</select></div><div class='filter_div rating_violence'>
<label for='rating_violence'><small><small>Show</small></small> Violence <img title="Violence" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_violence1.gif" alt="V" /></label><select class="ratingListBox" name="rating_violence" id="rating_violence">
<option value="0">None</option>
<option value="1">Comic or Mild Violence</option>
<option value="2">Moderate Violence</option>
<option value="3" selected="selected">Explicit or Graphic Violence</option>
</select></div><div class='filter_div rating_profanity'>
<label for='rating_profanity'><small><small>Show</small></small> Profanity <img title="Profanity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_lang1.gif" alt="L" /></label><select class="ratingListBox" name="rating_profanity" id="rating_profanity">
<option value="0">None</option>
<option value="1">Mild Profanity</option>
<option value="2">Moderate Profanity</option>
<option value="3" selected="selected">Proliferous or Severe Profanity</option>
</select></div><div class='filter_div rating_racism'>
<label for='rating_racism'><small><small>Show</small></small> Racism <img title="Racism" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_racism1.gif" alt="R" /></label><select class="ratingListBox" name="rating_racism" id="rating_racism">
<option value="0">None</option>
<option value="1">Mild Racist themes or content</option>
<option value="2">Racist themes or content</option>
<option value="3" selected="selected">Strong racist themes or content</option>
</select></div><div class='filter_div rating_sex'>
<label for='rating_sex'><small><small>Show</small></small> Sexual content <img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex1.gif" alt="Sx" /></label><select class="ratingListBox" name="rating_sex" id="rating_sex">
<option value="0">None</option>
<option value="1">Mild suggestive content</option>
<option value="2">Moderate suggestive or sexual content</option>
<option value="3" selected="selected">Explicit or adult sexual content</option>
</select></div><div class='filter_div rating_spoilers'>
<label for='rating_spoilers'><small><small>Show</small></small> Spoiler Warning <img title="Spoiler Warning" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_spoiler1.gif" alt="Sp" /></label><select class="ratingListBox" name="rating_spoilers" id="rating_spoilers">
<option value="0">None</option>
<option value="1">Mild Spoiler Warning</option>
<option value="2">Moderate Spoiler Warning</option>
<option value="3" selected="selected">Major Spoiler Warning</option>
</select></div><div class='filter_div rating_yaoi'>
<label for='rating_yaoi'><small><small>Show</small></small> Shonen-ai / Yaoi <img title="Shonen-ai (male homosexual) context" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_yaoi.gif" alt="♂♂" /></label><input type="hidden" value="0" name="rating_yaoi" /><input class="ratingCheckbox" checked="checked" type="checkbox" value="1" name="rating_yaoi" id="rating_yaoi" /></div><div class='filter_div rating_yuri'>
<label for='rating_yuri'><small><small>Show</small></small> Shoujo-ai / Yuri <img title="Shoujo-ai (female homosexual) context" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_yuri.gif" alt="♀♀" /></label><input type="hidden" value="0" name="rating_yuri" /><input class="ratingCheckbox" checked="checked" type="checkbox" value="1" name="rating_yuri" id="rating_yuri" /></div><div class='filter_div rating_loli'>
<label for='rating_loli'><small><small>Show</small></small> Lolicon <img title="Lolicon (Young female) content" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_loli.gif" alt="Lo" /></label><input type="hidden" value="0" name="rating_loli" /><input class="ratingCheckbox" type="checkbox" value="1" name="rating_loli" id="rating_loli" /></div><div class='filter_div rating_shota'>
<label for='rating_shota'><small><small>Show</small></small> Shotacon <img title="Shotacon (Young male) content" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_shota.gif" alt="So" /></label><input type="hidden" value="0" name="rating_shota" /><input class="ratingCheckbox" type="checkbox" value="1" name="rating_shota" id="rating_shota" /></div><div class='filter_div rating_teen'>
<label for='rating_teen'><small><small>Show</small></small> Teen <img title="Teen content" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_teen.gif" alt="T" /></label><input type="hidden" value="0" name="rating_teen" /><input class="ratingCheckbox" type="checkbox" value="1" name="rating_teen" id="rating_teen" /></div><div class='filter_div rating_guro'>
<label for='rating_guro'><small><small>Show</small></small> Guro <img title="Gore, scat, similar macabre content" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_guro.gif" alt="G" /></label><input type="hidden" value="0" name="rating_guro" /><input class="ratingCheckbox" type="checkbox" value="1" name="rating_guro" id="rating_guro" /></div><div class='filter_div rating_furry'>
<label for='rating_furry'><small><small>Show</small></small> Furry <img title="Anthropomorphic/furry content" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_furry.gif" alt="Fur" /></label><input type="hidden" value="0" name="rating_furry" /><input class="ratingCheckbox" type="checkbox" value="1" name="rating_furry" id="rating_furry" /></div><div class='filter_div rating_beast'>
<label for='rating_beast'><small><small>Show</small></small> Beast <img title="Bestiality" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_beast.gif" alt="B" /></label><input type="hidden" value="0" name="rating_beast" /><input class="ratingCheckbox" type="checkbox" value="1" name="rating_beast" id="rating_beast" /></div><div class='filter_div rating_male'>
<label for='rating_male'><small><small>Show</small></small> Male <img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /></label><input type="hidden" value="0" name="rating_male" /><input class="ratingCheckbox" checked="checked" type="checkbox" value="1" name="rating_male" id="rating_male" /></div><div class='filter_div rating_female'>
<label for='rating_female'><small><small>Show</small></small> Female <img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></label><input type="hidden" value="0" name="rating_female" /><input class="ratingCheckbox" checked="checked" type="checkbox" value="1" name="rating_female" id="rating_female" /></div><div class='filter_div rating_futa'>
<label for='rating_futa'><small><small>Show</small></small> Futa <img title="Contains Futanari/Dickgirl/Transgender/Hermaphrodite subject" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_futa.gif" alt="TG" /></label><input type="hidden" value="0" name="rating_futa" /><input class="ratingCheckbox" type="checkbox" value="1" name="rating_futa" id="rating_futa" /></div><div class='filter_div rating_other'>
<label for='rating_other'><small><small>Show</small></small> Other <img title="Other offensive content" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_other.gif" alt="!?" /></label><input type="hidden" value="0" name="rating_other" /><input class="ratingCheckbox" type="checkbox" value="1" name="rating_other" id="rating_other" /></div><br><div class='filter_div filter_media'><label for="filter_media">Limit Media to</label><select name="filter_media" id="filter_media">
<option value="A" selected="selected">All</option>
<optgroup label="Traditional media">
<optgroup label=".. Drawings">
<option value="1">Charcoal</option>
<option value="2">Colored Pencil / Crayon</option>
<option value="3">Ink or markers</option>
<option value="4">Oil pastels</option>
<option value="5">Graphite pencil</option>
<option value="6">Other drawing</option>
</optgroup>
<optgroup label=".. Paintings">
<option value="11">Airbrush</option>
<option value="12">Acrylics</option>
<option value="13">Oils</option>
<option value="14">Watercolor</option>
<option value="15">Other painting</option>
</optgroup>
<optgroup label=".. Crafts / Physical art">
<option value="21">Plushies</option>
<option value="22">Sculpture</option>
<option value="23">Other crafts</option>
</optgroup>
</optgroup>
<optgroup label="Digital media (CG)">
<option value="31">3D modelling</option>
<option value="33">Digital drawing or painting</option>
<option value="36">MS Paint</option>
<option value="32">Oekaki</option>
<option value="34">Pixel art</option>
<option value="35">Other digital art</option>
</optgroup>
<option value="0">Unspecified</option>
</select></div><div class='filter_div filter_order'><label for="filter_order">Sort By</label><select name="filter_order" id="filter_order">
<option value="date_new" selected="selected">Date Submitted (Newest)</option>
<option value="date_old">Date Submitted (Oldest)</option>
<option value="update_new">Date updated (Newest)</option>
<option value="update_old">Date updated (Oldest)</option>
<option value="a-z">Title A-z</option>
<option value="z-a">Title z-A</option>
<option value="views most">Views (most first)</option>
<option value="rating highest">rating (highest first)</option>
<option value="comments most">Comments (most first)</option>
<option value="faves most">Faves (most first)</option>
<option value="popularity most">Popularity (highest first)</option>
</select></div><div class='filter_div filter_type'><label for="filter_type">Limit Pictures to</label><select name="filter_type" id="filter_type">
<option value="0" selected="selected">All</option>
<option value="1">Regular Pictures</option>
<option value="2">Flash Submissions</option>
</select></div><input type="submit" name="yt0" value="Apply" id="yt0" /><input onClick="jQuery(&#039;#FilterBox&#039;).toggle(500);" name="yt1" type="button" value="Close" /></form></div>
</div><ul id="yw3">
<li><a href="/site/about">About</a></li>
<li><a href="http://forums.hentai-foundry.com/viewforum.php?f=13">FAQ</a></li>
<li><a href="http://forums.hentai-foundry.com/">Forums</a></li>
<li><a href="/paintChat/index">PaintChat</a></li>
<li><a href="/category/browse">Browse Categories</a></li>
<li><a href="/users/byletter">Browse Users</a></li>
<li><span>Browse Submissions</span>
<ul>
<li><a href="/pictures/featured">Featured Submissions</a></li>
<li><a href="/pictures/recent">Recent Submissions</a></li>
<li><a href="/pictures/popular">Popular Submissions</a></li>
<li><a href="/pictures/random">Random Submissions</a></li>
</ul>
</li>
<li><a href="/site/online">Who&#039;s Online</a></li>
</ul></div>
<center id='topad'>
<p><a href="http://www.pvglasses.com/?revid=17063&campaign=24264"><img title="" src="http://img.hentai-foundry.com/themes/Hentai/images/pink/pvg-728x90.jpg" alt="" /></a></p></center>
<div class="container" id="page">
<div class="breadcrumbs">
<a href="/">Home</a> &raquo; <a href="/user/Sparrow/profile">Sparrow</a> &raquo; <span>Pictures</span></div><!-- breadcrumbs -->
<div class="tabContainer"><ul class="tabs">
<li><a href="/user/Sparrow/profile" >Profile</a></li>
<li><a href="/pictures/user/Sparrow" class="active" >Pictures (681)</a></li>
<li><a href="/pictures/user/Sparrow/scraps" >Scraps (393)</a></li>
<li><a href="/stories/user/Sparrow" >Stories (6)</a></li>
</ul>
<div class="view">
<div id="yw0" class="list-view">
<div class='galleryHeader'><div class="pager">Go to page: <ul id="yw1" class="yiiPager"><li class="first hidden"><a href="/pictures/user/Sparrow">&lt;&lt; First</a></li>
<li class="previous hidden"><a href="/pictures/user/Sparrow">&lt; Previous</a></li>
<li class="page selected"><a href="/pictures/user/Sparrow">1</a></li>
<li class="page"><a href="/pictures/user/Sparrow/page/2">2</a></li>
<li class="page"><a href="/pictures/user/Sparrow/page/3">3</a></li>
<li class="page"><a href="/pictures/user/Sparrow/page/4">4</a></li>
<li class="page"><a href="/pictures/user/Sparrow/page/5">5</a></li>
<li class="page"><a href="/pictures/user/Sparrow/page/6">6</a></li>
<li class="next"><a href="/pictures/user/Sparrow/page/2">Next &gt;</a></li>
<li class="last"><a href="/pictures/user/Sparrow/page/6">Last &gt;&gt;</a></li></ul></div>
<div class="summary">Displaying 1-25 of 135 results.</div></div>
<table class="galleryViewTable">
<tr>
<td class='thumb_square' id='thumb_square_0' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/226304/Ashantae"><span class="thumbTitle">Ashantae!</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/226304/Ashantae"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=226304&amp;size=128&amp;shadow=0" alt="Ashantae!" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude1.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex2.gif" alt="Sx" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_1' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/225935/Coco-VS-Admiral-Swiggins"><span class="thumbTitle">Coco VS Admiral Swiggins</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/225935/Coco-VS-Admiral-Swiggins"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=225935&amp;size=128&amp;shadow=0" alt="Coco VS Admiral Swiggins" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_2' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/225472/Poon-Cellar"><span class="thumbTitle">Poon Cellar</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/225472/Poon-Cellar"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=225472&amp;size=128&amp;shadow=0" alt="Poon Cellar" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_3' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/225063/Goal-Tending"><span class="thumbTitle">Goal Tending</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/225063/Goal-Tending"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=225063&amp;size=128&amp;shadow=0" alt="Goal Tending" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_4' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/223991/Coco-VS-StarStorm"><span class="thumbTitle">Coco VS StarStorm</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/223991/Coco-VS-StarStorm"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=223991&amp;size=128&amp;shadow=0" alt="Coco VS StarStorm" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
</tr>
<tr>
<td class='thumb_square' id='thumb_square_5' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/221783/Gala-Event"><span class="thumbTitle">Gala Event</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/221783/Gala-Event"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=221783&amp;size=128&amp;shadow=0" alt="Gala Event" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_6' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/221379/Linda-Rinda"><span class="thumbTitle">Linda Rinda</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/221379/Linda-Rinda"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=221379&amp;size=128&amp;shadow=0" alt="Linda Rinda" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex2.gif" alt="Sx" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_7' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/220615/Farahs-Day-Off--27"><span class="thumbTitle">Farah's Day Off 27</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/220615/Farahs-Day-Off--27"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=220615&amp;size=128&amp;shadow=0" alt="Farah&#039;s Day Off 27" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_8' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/219856/Viewing-Room-Workout"><span class="thumbTitle">Viewing Room Workout</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/219856/Viewing-Room-Workout"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=219856&amp;size=128&amp;shadow=0" alt="Viewing Room Workout" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_9' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/219284/Farahs-Day-Off--26"><span class="thumbTitle">Farah's Day Off 26</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/219284/Farahs-Day-Off--26"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=219284&amp;size=128&amp;shadow=0" alt="Farah&#039;s Day Off 26" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
</tr>
<tr>
<td class='thumb_square' id='thumb_square_10' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/218886/Nyaow-Streaming"><span class="thumbTitle">N(ya)ow Streaming!</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/218886/Nyaow-Streaming"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=218886&amp;size=128&amp;shadow=0" alt="N(ya)ow Streaming!" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude2.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex2.gif" alt="Sx" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_11' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/218035/Farahs-Day-Off--25"><span class="thumbTitle">Farah's Day Off 25</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/218035/Farahs-Day-Off--25"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=218035&amp;size=128&amp;shadow=0" alt="Farah&#039;s Day Off 25" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_12' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/216981/A-Vivi-draws-near.-Command"><span class="thumbTitle">A Vivi draws near. Command?</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/216981/A-Vivi-draws-near.-Command"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=216981&amp;size=128&amp;shadow=0" alt="A Vivi draws near. Command?" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_13' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/216642/Farahs-Day-Off--24"><span class="thumbTitle">Farah's Day Off 24</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/216642/Farahs-Day-Off--24"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=216642&amp;size=128&amp;shadow=0" alt="Farah&#039;s Day Off 24" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_14' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/215266/Farahs-Day-Off--23"><span class="thumbTitle">Farah's Day Off 23</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/215266/Farahs-Day-Off--23"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=215266&amp;size=128&amp;shadow=0" alt="Farah&#039;s Day Off 23" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
</tr>
<tr>
<td class='thumb_square' id='thumb_square_15' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/213132/Relative-Risk"><span class="thumbTitle">Relative Risk</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/213132/Relative-Risk"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=213132&amp;size=128&amp;shadow=0" alt="Relative Risk" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_16' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/212665/Farahs-Day-Off--21"><span class="thumbTitle">Farah's Day Off 21</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/212665/Farahs-Day-Off--21"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=212665&amp;size=128&amp;shadow=0" alt="Farah&#039;s Day Off 21" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_17' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/212282/Sticky-Sheva-Situation"><span class="thumbTitle">Sticky Sheva Situation</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/212282/Sticky-Sheva-Situation"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=212282&amp;size=128&amp;shadow=0" alt="Sticky Sheva Situation" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_18' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/211269/Farahs-Day-Off-20-2"><span class="thumbTitle">Farah's Day Off 20-2</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/211269/Farahs-Day-Off-20-2"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=211269&amp;size=128&amp;shadow=0" alt="Farah&#039;s Day Off 20-2" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_19' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/211268/Farahs-Day-Off-20-1"><span class="thumbTitle">Farah's Day Off 20-1</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/211268/Farahs-Day-Off-20-1"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=211268&amp;size=128&amp;shadow=0" alt="Farah&#039;s Day Off 20-1" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
</tr>
<tr>
<td class='thumb_square' id='thumb_square_20' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/211038/Newcomers"><span class="thumbTitle">Newcomers</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/211038/Newcomers"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=211038&amp;size=128&amp;shadow=0" alt="Newcomers" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_21' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/209967/Farahs-Day-Off-19"><span class="thumbTitle">Farah's Day Off 19</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/209967/Farahs-Day-Off-19"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=209967&amp;size=128&amp;shadow=0" alt="Farah&#039;s Day Off 19" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_22' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/209292/The-New-Adventures-of-Helena-Lovelace-01"><span class="thumbTitle">The New Adventures of Helena Lovelace 01</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/209292/The-New-Adventures-of-Helena-Lovelace-01"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=209292&amp;size=128&amp;shadow=0" alt="The New Adventures of Helena Lovelace 01" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude1.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex1.gif" alt="Sx" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_23' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/208609/Farahs-Day-Off--18"><span class="thumbTitle">Farah's Day Off 18</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/208609/Farahs-Day-Off--18"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=208609&amp;size=128&amp;shadow=0" alt="Farah&#039;s Day Off 18" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_24' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/207979/Wonderful-Backlit-Foreign-Boyfriend-Experience"><span class="thumbTitle">Wonderful Backlit Foreign Boyfriend Experience</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/207979/Wonderful-Backlit-Foreign-Boyfriend-Experience"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=207979&amp;size=128&amp;shadow=0" alt="Wonderful Backlit Foreign Boyfriend Experience" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
</tr>
</table>
<div class='galleryFooter'><div class="pager">Go to page: <ul id="yw2" class="yiiPager"><li class="first hidden"><a href="/pictures/user/Sparrow">&lt;&lt; First</a></li>
<li class="previous hidden"><a href="/pictures/user/Sparrow">&lt; Previous</a></li>
<li class="page selected"><a href="/pictures/user/Sparrow">1</a></li>
<li class="page"><a href="/pictures/user/Sparrow/page/2">2</a></li>
<li class="page"><a href="/pictures/user/Sparrow/page/3">3</a></li>
<li class="page"><a href="/pictures/user/Sparrow/page/4">4</a></li>
<li class="page"><a href="/pictures/user/Sparrow/page/5">5</a></li>
<li class="page"><a href="/pictures/user/Sparrow/page/6">6</a></li>
<li class="next"><a href="/pictures/user/Sparrow/page/2">Next &gt;</a></li>
<li class="last"><a href="/pictures/user/Sparrow/page/6">Last &gt;&gt;</a></li></ul></div></div><div class="keys" style="display:none" title="/pictures/user/Sparrow"><span>226304</span><span>225935</span><span>225472</span><span>225063</span><span>223991</span><span>221783</span><span>221379</span><span>220615</span><span>219856</span><span>219284</span><span>218886</span><span>218035</span><span>216981</span><span>216642</span><span>215266</span><span>213132</span><span>212665</span><span>212282</span><span>211269</span><span>211268</span><span>211038</span><span>209967</span><span>209292</span><span>208609</span><span>207979</span></div>
</div></div></div>
</div><!-- page -->
<div id="footer">
<div class="box" id="yw4">
<div class="boxbody">
Site Copyright © 2006-2013 All Rights Reserved<br />
<a href="http://www.hentai-foundry.com/pictures/user/layzcarter/5/Truely-Heart">Truely</a> created by <a href="/user/layzcarter/profile">Layzcarter</a><br />
Site design by <a href="/user/layzcarter/profile">Layzcarter</a>, <a href="/user/admin/profile">Admin</a>, and <a href="/user/Voe/profile">Voe</a><br />
<br />Art and stories Copyright their artists/writers<br />
Series & Characters Copyright their respective creators/studios<br />
<p>All characters depicted are 18 or older, even if otherwise specified. </p><!-- IPv6-test.com button BEGIN -->
<a href='http://ipv6-test.com/validate.php?url=referer'>
<img src='http://img.hentai-foundry.com/themes/default/images/button-ipv6-80x15.png' alt='ipv6 ready' title='ipv6 ready' border='0' />
</a>
<!-- IPv6-test.com button END --><br /><img title="" src="http://img.hentai-foundry.com/themes/Hentai/images/icra_sw.gif" alt="" /></div>
</div><br />
<center>
</center>
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-620339-3";
_udn = "www.hentai-foundry.com";
urchinTracker();
</script></div><!-- footer -->
<script type="text/javascript" src="/assets/f6f22552/listview/jquery.yiilistview.js"></script>
<script type="text/javascript">
/*<![CDATA[*/
jQuery(function($) {
jQuery('#yw0').yiiListView({'ajaxUpdate':[],'ajaxVar':'ajax','pagerClass':'pager','loadingClass':'list-view-loading','sorterClass':'sorter','enableHistory':false});
$('body').on('click','#yt0',function(){jQuery.ajax({'success':function() {location.reload();},'type':'POST','url':'/site/filters','cache':false,'data':jQuery(this).parents("form").serialize()});return false;});
});
/*]]>*/
</script>
</body>
</html>

View File

@ -0,0 +1,400 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="language" content="en" />
<link rel="stylesheet" type="text/css" href="http://img.hentai-foundry.com/themes/default/css/default.css" title="Default CSS" />
<link rel="shortcut icon" href="/themes/Hentai/favicon.ico" type="image/x-icon" />
<link rel="search" type="application/opensearchdescription+xml"
title="Search Hentai Foundry"
href="/search/OpenSearchDescription"
/>
<script type="text/javascript" src="http://img.hentai-foundry.com/themes/default/js/util.js"></script>
<meta name="description" content="Simple request that turned into a fairly beefy project. Anyway, it&amp;#039;s a pretty soft pinup of Shantae dressed as Asha, the protagonist of Monster World IV. The two share a good amount of design in common, but for the most part it was an excuse for me to draw Shantae just being sexy.&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Enjoy!&lt;/em&gt;"> <meta name="keywords" content="Shantae Asha Monster_World cosplay nips">
<link title="Comments Feed" rel="alternate" type="application/atom+xml" href="/feed/PictureComments/id/226304" />
<script type="text/javascript" src="/assets/67f68f61/jquery.js"></script>
<script type="text/javascript" src="/assets/c966e7e0/jquery.qtip-1.0.0-rc3.min.js"></script>
<title>Ashantae! by Sparrow - Hentai Foundry</title>
<link rel="meta" href="http://img.hentai-foundry.com/themes/Hentai/labels.rdf" type="application/rdf+xml" title="ICRA labels" />
<meta http-equiv="pics-Label" content='(pics-1.1 "http://www.icra.org/pics/vocabularyv03/" l gen true for "http://hentai-foundry.com" r (n 3 s 3 v 0 l 2 oa 0 ob 0 oc 0 od 0 oe 0 of 0 og 0 oh 0 c 3) gen true for "http://www.hentai-foundry.com" r (n 3 s 3 v 0 l 2 oa 0 ob 0 oc 0 od 0 oe 0 of 0 og 0 oh 0 c 3))' />
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.classify.org/safesurf/" L gen true for "http://www.hentai-foundry.com/" r (SS~~000 9 SS~~001 5 SS~~002 5 SS~~003 5 SS~~004 9 SS~~005 5 SS~~007 5 SS~~008 5 SS~~009 9 SS~~00A 5))'></head>
<body>
<div style="background: url(http://img.hentai-foundry.com/themes/default/images/header_bg.gif); height: 140px; width: 100%">
<div style="text-align: left">
<a href="/site/index">
<img src="http://img.hentai-foundry.com/themes/Hentai/images/logo.png" border="0" alt="Logo" title="Logo" />
</a>
</div>
<div style="position: absolute; right: 15px; top: 15px;">
<form action="/search/index" method="GET">
<span style="white-space:nowrap">
<input type="text" name="query" />
<input type="submit" value="Search" />
</span><br />
<a class="navlink" href="/search/index">Advanced Search</a> </form>
</div>
<div class='headerLogin'>
<form action="/site/login" method="post">
<div style="display:none"><input type="hidden" value="8a390060fc082247c06755b297dc4754aa15a3e5" name="YII_CSRF_TOKEN" /></div> Username <input type="text" name="LoginForm[username]" /> &nbsp;
Password <input type="password" name="LoginForm[password]" /> &nbsp;
<input type="submit" value="Login" /><br />
<div align='right' style="margin-top: 5px;">
Remember <input type="checkbox" value="1" name="LoginForm[rememberMe]" style="background: #676573;" />
&nbsp; <a class='navlink' href="/users/create">Register</a> &nbsp;
| &nbsp; <a class='navlink' href="/users/LostPassword">Forgot your password?</a></div>
</form>
</div>
</div>
<div id="mainmenu" style="text-align: center; background: #676573; color: #000; font-weight: bold; font-size: 0.9em;">
<div id="filtersButton"><a OnClick="ths = $(this); jQuery(&#039;#FilterBox&#039;).css({top: ths.offset().top, left: ths.offset().left + ths.outerWidth() + 10}); jQuery(&#039;#FilterBox&#039;).toggle(500); return false;" href="#"><img title="[Filters]" src="http://img.hentai-foundry.com/themes/default/images/buttons/filter.png" alt="[Filters]" /></a></div><div class="box" id="FilterBox">
<div class="boxheader">
<div class="boxtitle">Filters <a style="float: right;" href="#" onClick="jQuery('#FilterBox').toggle(500); return false;">X</a></div>
</div>
<div class="boxbody">
<form action="/pictures/user/Sparrow/226304/Ashantae" method="post">
<div style="display:none"><input type="hidden" value="8a390060fc082247c06755b297dc4754aa15a3e5" name="YII_CSRF_TOKEN" /></div><div class='filter_div rating_nudity'>
<label for='rating_nudity'><small><small>Show</small></small> Nudity <img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude1.gif" alt="N" /></label><select class="ratingListBox" name="rating_nudity" id="rating_nudity">
<option value="0">None</option>
<option value="1">Mild Nudity</option>
<option value="2">Moderate Nudity</option>
<option value="3" selected="selected">Explicit Nudity</option>
</select></div><div class='filter_div rating_violence'>
<label for='rating_violence'><small><small>Show</small></small> Violence <img title="Violence" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_violence1.gif" alt="V" /></label><select class="ratingListBox" name="rating_violence" id="rating_violence">
<option value="0">None</option>
<option value="1">Comic or Mild Violence</option>
<option value="2">Moderate Violence</option>
<option value="3" selected="selected">Explicit or Graphic Violence</option>
</select></div><div class='filter_div rating_profanity'>
<label for='rating_profanity'><small><small>Show</small></small> Profanity <img title="Profanity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_lang1.gif" alt="L" /></label><select class="ratingListBox" name="rating_profanity" id="rating_profanity">
<option value="0">None</option>
<option value="1">Mild Profanity</option>
<option value="2">Moderate Profanity</option>
<option value="3" selected="selected">Proliferous or Severe Profanity</option>
</select></div><div class='filter_div rating_racism'>
<label for='rating_racism'><small><small>Show</small></small> Racism <img title="Racism" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_racism1.gif" alt="R" /></label><select class="ratingListBox" name="rating_racism" id="rating_racism">
<option value="0">None</option>
<option value="1">Mild Racist themes or content</option>
<option value="2">Racist themes or content</option>
<option value="3" selected="selected">Strong racist themes or content</option>
</select></div><div class='filter_div rating_sex'>
<label for='rating_sex'><small><small>Show</small></small> Sexual content <img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex1.gif" alt="Sx" /></label><select class="ratingListBox" name="rating_sex" id="rating_sex">
<option value="0">None</option>
<option value="1">Mild suggestive content</option>
<option value="2">Moderate suggestive or sexual content</option>
<option value="3" selected="selected">Explicit or adult sexual content</option>
</select></div><div class='filter_div rating_spoilers'>
<label for='rating_spoilers'><small><small>Show</small></small> Spoiler Warning <img title="Spoiler Warning" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_spoiler1.gif" alt="Sp" /></label><select class="ratingListBox" name="rating_spoilers" id="rating_spoilers">
<option value="0">None</option>
<option value="1">Mild Spoiler Warning</option>
<option value="2">Moderate Spoiler Warning</option>
<option value="3" selected="selected">Major Spoiler Warning</option>
</select></div><div class='filter_div rating_yaoi'>
<label for='rating_yaoi'><small><small>Show</small></small> Shonen-ai / Yaoi <img title="Shonen-ai (male homosexual) context" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_yaoi.gif" alt="♂♂" /></label><input type="hidden" value="0" name="rating_yaoi" /><input class="ratingCheckbox" checked="checked" type="checkbox" value="1" name="rating_yaoi" id="rating_yaoi" /></div><div class='filter_div rating_yuri'>
<label for='rating_yuri'><small><small>Show</small></small> Shoujo-ai / Yuri <img title="Shoujo-ai (female homosexual) context" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_yuri.gif" alt="♀♀" /></label><input type="hidden" value="0" name="rating_yuri" /><input class="ratingCheckbox" checked="checked" type="checkbox" value="1" name="rating_yuri" id="rating_yuri" /></div><div class='filter_div rating_loli'>
<label for='rating_loli'><small><small>Show</small></small> Lolicon <img title="Lolicon (Young female) content" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_loli.gif" alt="Lo" /></label><input type="hidden" value="0" name="rating_loli" /><input class="ratingCheckbox" type="checkbox" value="1" name="rating_loli" id="rating_loli" /></div><div class='filter_div rating_shota'>
<label for='rating_shota'><small><small>Show</small></small> Shotacon <img title="Shotacon (Young male) content" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_shota.gif" alt="So" /></label><input type="hidden" value="0" name="rating_shota" /><input class="ratingCheckbox" type="checkbox" value="1" name="rating_shota" id="rating_shota" /></div><div class='filter_div rating_teen'>
<label for='rating_teen'><small><small>Show</small></small> Teen <img title="Teen content" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_teen.gif" alt="T" /></label><input type="hidden" value="0" name="rating_teen" /><input class="ratingCheckbox" type="checkbox" value="1" name="rating_teen" id="rating_teen" /></div><div class='filter_div rating_guro'>
<label for='rating_guro'><small><small>Show</small></small> Guro <img title="Gore, scat, similar macabre content" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_guro.gif" alt="G" /></label><input type="hidden" value="0" name="rating_guro" /><input class="ratingCheckbox" type="checkbox" value="1" name="rating_guro" id="rating_guro" /></div><div class='filter_div rating_furry'>
<label for='rating_furry'><small><small>Show</small></small> Furry <img title="Anthropomorphic/furry content" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_furry.gif" alt="Fur" /></label><input type="hidden" value="0" name="rating_furry" /><input class="ratingCheckbox" type="checkbox" value="1" name="rating_furry" id="rating_furry" /></div><div class='filter_div rating_beast'>
<label for='rating_beast'><small><small>Show</small></small> Beast <img title="Bestiality" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_beast.gif" alt="B" /></label><input type="hidden" value="0" name="rating_beast" /><input class="ratingCheckbox" type="checkbox" value="1" name="rating_beast" id="rating_beast" /></div><div class='filter_div rating_male'>
<label for='rating_male'><small><small>Show</small></small> Male <img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /></label><input type="hidden" value="0" name="rating_male" /><input class="ratingCheckbox" checked="checked" type="checkbox" value="1" name="rating_male" id="rating_male" /></div><div class='filter_div rating_female'>
<label for='rating_female'><small><small>Show</small></small> Female <img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></label><input type="hidden" value="0" name="rating_female" /><input class="ratingCheckbox" checked="checked" type="checkbox" value="1" name="rating_female" id="rating_female" /></div><div class='filter_div rating_futa'>
<label for='rating_futa'><small><small>Show</small></small> Futa <img title="Contains Futanari/Dickgirl/Transgender/Hermaphrodite subject" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_futa.gif" alt="TG" /></label><input type="hidden" value="0" name="rating_futa" /><input class="ratingCheckbox" type="checkbox" value="1" name="rating_futa" id="rating_futa" /></div><div class='filter_div rating_other'>
<label for='rating_other'><small><small>Show</small></small> Other <img title="Other offensive content" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_other.gif" alt="!?" /></label><input type="hidden" value="0" name="rating_other" /><input class="ratingCheckbox" type="checkbox" value="1" name="rating_other" id="rating_other" /></div><br><div class='filter_div filter_media'><label for="filter_media">Limit Media to</label><select name="filter_media" id="filter_media">
<option value="A" selected="selected">All</option>
<optgroup label="Traditional media">
<optgroup label=".. Drawings">
<option value="1">Charcoal</option>
<option value="2">Colored Pencil / Crayon</option>
<option value="3">Ink or markers</option>
<option value="4">Oil pastels</option>
<option value="5">Graphite pencil</option>
<option value="6">Other drawing</option>
</optgroup>
<optgroup label=".. Paintings">
<option value="11">Airbrush</option>
<option value="12">Acrylics</option>
<option value="13">Oils</option>
<option value="14">Watercolor</option>
<option value="15">Other painting</option>
</optgroup>
<optgroup label=".. Crafts / Physical art">
<option value="21">Plushies</option>
<option value="22">Sculpture</option>
<option value="23">Other crafts</option>
</optgroup>
</optgroup>
<optgroup label="Digital media (CG)">
<option value="31">3D modelling</option>
<option value="33">Digital drawing or painting</option>
<option value="36">MS Paint</option>
<option value="32">Oekaki</option>
<option value="34">Pixel art</option>
<option value="35">Other digital art</option>
</optgroup>
<option value="0">Unspecified</option>
</select></div><div class='filter_div filter_order'><label for="filter_order">Sort By</label><select name="filter_order" id="filter_order">
<option value="date_new" selected="selected">Date Submitted (Newest)</option>
<option value="date_old">Date Submitted (Oldest)</option>
<option value="update_new">Date updated (Newest)</option>
<option value="update_old">Date updated (Oldest)</option>
<option value="a-z">Title A-z</option>
<option value="z-a">Title z-A</option>
<option value="views most">Views (most first)</option>
<option value="rating highest">rating (highest first)</option>
<option value="comments most">Comments (most first)</option>
<option value="faves most">Faves (most first)</option>
<option value="popularity most">Popularity (highest first)</option>
</select></div><div class='filter_div filter_type'><label for="filter_type">Limit Pictures to</label><select name="filter_type" id="filter_type">
<option value="0" selected="selected">All</option>
<option value="1">Regular Pictures</option>
<option value="2">Flash Submissions</option>
</select></div><input type="submit" name="yt1" value="Apply" id="yt1" /><input onClick="jQuery(&#039;#FilterBox&#039;).toggle(500);" name="yt2" type="button" value="Close" /></form></div>
</div><ul id="yw17">
<li><a href="/site/about">About</a></li>
<li><a href="http://forums.hentai-foundry.com/viewforum.php?f=13">FAQ</a></li>
<li><a href="http://forums.hentai-foundry.com/">Forums</a></li>
<li><a href="/paintChat/index">PaintChat</a></li>
<li><a href="/category/browse">Browse Categories</a></li>
<li><a href="/users/byletter">Browse Users</a></li>
<li><span>Browse Submissions</span>
<ul>
<li><a href="/pictures/featured">Featured Submissions</a></li>
<li><a href="/pictures/recent">Recent Submissions</a></li>
<li><a href="/pictures/popular">Popular Submissions</a></li>
<li><a href="/pictures/random">Random Submissions</a></li>
</ul>
</li>
<li><a href="/site/online">Who&#039;s Online</a></li>
</ul></div>
<center id='topad'>
<p><a href="http://www.pvglasses.com/?revid=17063&campaign=24264"><img title="" src="http://img.hentai-foundry.com/themes/Hentai/images/pink/pvg-728x90.jpg" alt="" /></a></p></center>
<div class="container" id="page">
<div class="breadcrumbs">
<a href="/">Home</a> &raquo; <a href="/user/Sparrow/profile">Sparrow</a> &raquo; <a href="/pictures/user/Sparrow">Pictures</a> &raquo; <span>Ashantae!</span></div><!-- breadcrumbs -->
<!-- resize_width=1250 | model->size_width=999 --><div class="box" id="yw0">
<div class="boxheader">
<div class="boxtitle"><span class="imageTitle">Ashantae!</span> <small>by</small> <a href="/user/Sparrow/profile">Sparrow</a> </div>
</div>
<div class="boxbody">
<center><img width="999" height="1370" src="http://pictures.hentai-foundry.com//s/Sparrow/226304.jpg" alt="Ashantae! by Sparrow" /></center> <script type="text/JavaScript">
function vote(value)
{
$.ajax({
type: "POST",
data: {
id: 226304,
vote: value,
YII_CSRF_TOKEN: "8a390060fc082247c06755b297dc4754aa15a3e5" },
url: "/pictures/vote",
success: function(msg)
{
$('#voteBox').hide(300);
},
error: function(jqXHR, textStatus, errorThrown)
{
alert(jqXHR.responseText);
}
});
}
</script>
<div id='voteBox' class='voteBox'>Vote: <a onClick="vote(1); return false;" href="#"><img title="[vote up]" src="http://img.hentai-foundry.com/themes/default/images/buttons/vote_happy.png" alt="[vote up]" /></a> <a onClick="vote(0); return false;" href="#"><img title="[vote down]" src="http://img.hentai-foundry.com/themes/default/images/buttons/vote_sad.png" alt="[vote down]" /></a></div></div>
<div class="boxfooter"> </div>
</div><div class="box" id="yw1">
<div class="boxheader">
<div class="boxtitle">Description</div>
</div>
<div class="boxbody">
<a href="/user/Sparrow/profile"><img style="float: left" title="Sparrow" src="http://avatars.hentai-foundry.com/48322.png" alt="Sparrow" /></a><div style='margin-left: 70px; min-height: 64px;'>Simple request that turned into a fairly beefy project. Anyway, it&#039;s a pretty soft pinup of Shantae dressed as Asha, the protagonist of Monster World IV. The two share a good amount of design in common, but for the most part it was an excuse for me to draw Shantae just being sexy.<br />
<br />
<em>Enjoy!</em></div></div>
</div><div class="box" id="yw2">
<div class="boxheader">
<div class="boxtitle">General Info</div>
</div>
<div class="boxbody">
<div id="favoritesDialog">
</div><table border=0>
<tr><td><b>Ratings</b></td> <td><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude1.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex2.gif" alt="Sx" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div></td> <td><b>Comments</b></td> <td>17</td></tr>
<tr><td><b>Category</b></td> <td><span class="categoryBreadcrumbs">
<a href="/categories/23/Games/pictures">Games</a></span></td> <td><b>Media</b></td> <td>Digital drawing or painting</td></tr>
<tr><td><b>Date Submitted</b></td> <td>August 31, 2013 7:08:03 PM</td> <td><b>Time Taken</b></td> <td>2-3h</td></tr>
<tr><td><b>Views</b></td> <td>8431</td> <td><b>Reference</b></td> <td>Nope</td></tr>
<tr><td><b><a href="#" id="yt0">Favorites...</a></b></td> <td>197</td> <td><b>Keywords</b></td> <td><a rel="tag" href="/search/index?query=Shantae&amp;search_in=keywords">Shantae</a>, <a rel="tag" href="/search/index?query=Asha&amp;search_in=keywords">Asha</a>, <a rel="tag" href="/search/index?query=Monster_World&amp;search_in=keywords">Monster_World</a>, <a rel="tag" href="/search/index?query=cosplay&amp;search_in=keywords">cosplay</a>, <a rel="tag" href="/search/index?query=nips&amp;search_in=keywords">nips</a></td></tr>
<tr><td><b>Vote Score</b></td> <td>100</td> <td><b>License</b></td> <td><span id='license' title='Default automatic international copyright.<br />
<br />
More Information: <a href="http://en.wikipedia.org/wiki/Berne_Convention_for_the_Protection_of_Literary_and_Artistic_Works">http://en.wikipedia.org/wiki/Berne_Convention_for_the_Protection_of_Literary_and_Artistic_Works</a>'>Berne Convention</span></td></tr>
</table></div>
</div><div class="box" id="comments_box">
<div class="boxheader">
<div class="boxtitle">Comments (17) <a class="feedLink" href="/feed/PictureComments/id/226304"><img title="RSS Feed" src="http://img.hentai-foundry.com/themes/default/images/feed-icon-14x14.png" alt="RSS Feed" /></a></div>
</div>
<div class="boxbody">
<p>You are not authorized to comment here. Your must be registered and logged in to comment</p><div style="margin-left: 0px;" id="comment_1401192"><div class="box" id="yw4">
<div class="boxheader">
<div class="boxtitle"><a href="/user/AlCiao/profile">AlCiao</a> <small>on</small> September 3, 2013 8:09:35 AM<span class="commentButtons"></span></div>
</div>
<div class="boxbody">
<div class="commentBody"><div style="margin-left: -70px; position: absolute;"><a href="/user/AlCiao/profile"><img title="AlCiao" src="http://avatars.hentai-foundry.com/192634.jpg" alt="AlCiao" /></a></div>What? A pic without a dick, or a tits bigger than a woman&#039;s head? WHO ARE YOU AND WHAT HAVE YOU DONE WITH THE REAL SPARROW! xD<br />
<br />
Seriously, though, great job. I like the similarity to <em>enchante</em> too; that&#039;s actually the first thing that came to my head once I saw the title of this piece. Voted.</div></div>
</div></div><div style="margin-left: 0px;" id="comment_1401175"><div class="box" id="yw5">
<div class="boxheader">
<div class="boxtitle"><a href="/user/Pordama/profile">Pordama</a> <small>on</small> September 3, 2013 7:26:28 AM<span class="commentButtons"></span></div>
</div>
<div class="boxbody">
<div class="commentBody"><div style="margin-left: -70px; position: absolute;"><a href="/user/Pordama/profile"><img title="Pordama" src="http://avatars.hentai-foundry.com/DefaultAvatar.gif" alt="Pordama" /></a></div>Wonderful Pic</div></div>
</div></div><div style="margin-left: 0px;" id="comment_1399788"><div class="box" id="yw6">
<div class="boxheader">
<div class="boxtitle"><a href="/user/masterZ/profile">masterZ</a> <small>on</small> September 1, 2013 12:20:13 PM<span class="commentButtons"></span></div>
</div>
<div class="boxbody">
<div class="commentBody"><div style="margin-left: -70px; position: absolute;"><a href="/user/masterZ/profile"><img title="masterZ" src="http://avatars.hentai-foundry.com/5448-1196432352.jpg" alt="masterZ" /></a></div>.... aaaaand I think you got that right.</div></div>
</div></div><div style="margin-left: 0px;" id="comment_1399336"><div class="box" id="yw7">
<div class="boxheader">
<div class="boxtitle"><a href="/user/Bandichar/profile">Bandichar</a> <small>on</small> August 31, 2013 8:04:31 PM<span class="commentButtons"></span></div>
</div>
<div class="boxbody">
<div class="commentBody"><div style="margin-left: -70px; position: absolute;"><a href="/user/Bandichar/profile"><img title="Bandichar" src="http://avatars.hentai-foundry.com/DefaultAvatar.gif" alt="Bandichar" /></a></div>The world needs more excuses to draw Shantae, really.  :)</div></div>
</div></div><div style="margin-left: 0px;" id="comment_1399305"><div class="box" id="yw8">
<div class="boxheader">
<div class="boxtitle"><a href="/user/notmenotyou/profile">notmenotyou</a> <small>on</small> August 31, 2013 7:09:55 PM<span class="commentButtons"></span></div>
</div>
<div class="boxbody">
<div class="commentBody"><div style="margin-left: -70px; position: absolute;"><a href="/user/notmenotyou/profile"><img title="notmenotyou" src="http://avatars.hentai-foundry.com/103092-1302185462.jpg" alt="notmenotyou" /></a></div>Is something like an unsexy Shantae even possible?</div></div>
</div></div><div style="margin-left: 0px;" id="comment_1399056"><div class="box" id="yw9">
<div class="boxheader">
<div class="boxtitle"><a href="/user/darkminou/profile">darkminou</a> <small>on</small> August 31, 2013 12:09:52 PM<span class="commentButtons"></span></div>
</div>
<div class="boxbody">
<div class="commentBody"><div style="margin-left: -70px; position: absolute;"><a href="/user/darkminou/profile"><img title="darkminou" src="http://avatars.hentai-foundry.com/5386-1294240293.gif" alt="darkminou" /></a></div>so<br />
this is a<br />
SHANTASHA!!</div></div>
</div></div><div style="margin-left: 30px;" id="comment_1399085"><div class="box" id="yw10">
<div class="boxheader">
<div class="boxtitle"><a href="/user/Sparrow/profile">Sparrow</a> <small>on</small> August 31, 2013 1:06:59 PM<span class="commentButtons"></span></div>
</div>
<div class="boxbody">
<div class="commentBody"><div style="margin-left: -70px; position: absolute;"><a href="/user/Sparrow/profile"><img title="Sparrow" src="http://avatars.hentai-foundry.com/48322.png" alt="Sparrow" /></a></div>Yeah but I thought &quot;ashantae&quot; sounded a little like <em>enchanté...</em></div></div>
</div></div><div style="margin-left: 60px;" id="comment_1399202"><div class="box" id="yw11">
<div class="boxheader">
<div class="boxtitle"><a href="/user/darkminou/profile">darkminou</a> <small>on</small> August 31, 2013 4:18:32 PM<span class="commentButtons"></span></div>
</div>
<div class="boxbody">
<div class="commentBody"><div style="margin-left: -70px; position: absolute;"><a href="/user/darkminou/profile"><img title="darkminou" src="http://avatars.hentai-foundry.com/5386-1294240293.gif" alt="darkminou" /></a></div>And? a cock sound like aboat shell so you know...</div></div>
</div></div><div style="margin-left: 0px;" id="comment_1399176"><div class="box" id="yw12">
<div class="boxheader">
<div class="boxtitle"><a href="/user/Doorman/profile">Doorman</a> <small>on</small> August 31, 2013 3:41:30 PM<span class="commentButtons"></span></div>
</div>
<div class="boxbody">
<div class="commentBody"><div style="margin-left: -70px; position: absolute;"><a href="/user/Doorman/profile"><img title="Doorman" src="http://avatars.hentai-foundry.com/159105-1345347198.jpg" alt="Doorman" /></a></div>Damn... great job.<br />
You should draw Shantae more often.<br />
 :)</div></div>
</div></div><div style="margin-left: 0px;" id="comment_1399073"><div class="box" id="yw13">
<div class="boxheader">
<div class="boxtitle"><a href="/user/TheReigndeer/profile">TheReigndeer</a> <small>on</small> August 31, 2013 12:31:52 PM<span class="commentButtons"></span></div>
</div>
<div class="boxbody">
<div class="commentBody"><div style="margin-left: -70px; position: absolute;"><a href="/user/TheReigndeer/profile"><img title="TheReigndeer" src="http://avatars.hentai-foundry.com/172425.jpg" alt="TheReigndeer" /></a></div>There&#039;s a new one coming out.<br />
THERE&#039;S A NEW ONE COMING OUT.<br />
<strong>THERE&#039;S A NEW ONE COMING OUT!</strong><br />
<br />
...also I like this ^_^<br />
 </div></div>
</div></div><div style="margin-left: 30px;" id="comment_1399086"><div class="box" id="yw14">
<div class="boxheader">
<div class="boxtitle"><a href="/user/Sparrow/profile">Sparrow</a> <small>on</small> August 31, 2013 1:07:53 PM<span class="commentButtons"></span></div>
</div>
<div class="boxbody">
<div class="commentBody"><div style="margin-left: -70px; position: absolute;"><a href="/user/Sparrow/profile"><img title="Sparrow" src="http://avatars.hentai-foundry.com/48322.png" alt="Sparrow" /></a></div>If it&#039;s anything like the Gameboy one it&#039;ll be pretty but way overrated. Monster World IV&#039;s a total classic though...</div></div>
</div></div><div style="margin-left: 0px;" id="comment_1399083"><div class="box" id="yw15">
<div class="boxheader">
<div class="boxtitle"><a href="/user/TheRedDakkar/profile">TheRedDakkar</a> <small>on</small> August 31, 2013 1:00:06 PM<span class="commentButtons"></span></div>
</div>
<div class="boxbody">
<div class="commentBody"><div style="margin-left: -70px; position: absolute;"><a href="/user/TheRedDakkar/profile"><img title="TheRedDakkar" src="http://avatars.hentai-foundry.com/182770-1345509970.jpg" alt="TheRedDakkar" /></a></div>Can&#039;t say I know of either character, but that&#039;s not stopping me from enjoying those delicious nipples.</div></div>
</div></div><div style="margin-left: 0px;" id="comment_1399081"><div class="box" id="yw16">
<div class="boxheader">
<div class="boxtitle"><a href="/user/Batanen/profile">Batanen</a> <small>on</small> August 31, 2013 12:52:02 PM<span class="commentButtons"></span></div>
</div>
<div class="boxbody">
<div class="commentBody"><div style="margin-left: -70px; position: absolute;"><a href="/user/Batanen/profile"><img title="Batanen" src="http://avatars.hentai-foundry.com/DefaultAvatar.gif" alt="Batanen" /></a></div>I really love Shantae and you really make her look very very sexy Mr. Sparrow. &lt;3</div></div>
</div></div></div>
<div class="commentsFooter">Go to page: <ul id="yw3" class="yiiPager"><li class="first hidden"><a href="/pictures/user/Sparrow/226304/Ashantae">&lt;&lt; First</a></li>
<li class="previous hidden"><a href="/pictures/user/Sparrow/226304/Ashantae">&lt; Previous</a></li>
<li class="page selected"><a href="/pictures/user/Sparrow/226304/Ashantae">1</a></li>
<li class="page"><a href="/pictures/user/Sparrow/226304/Ashantae/page/2">2</a></li>
<li class="next"><a href="/pictures/user/Sparrow/226304/Ashantae/page/2">Next &gt;</a></li>
<li class="last"><a href="/pictures/user/Sparrow/226304/Ashantae/page/2">Last &gt;&gt;</a></li></ul><ul class="yiiPager"><li class="next"><a class="page" href="/pictures/user/Sparrow/226304/Ashantae/page/all">All</a></li></ul></div>
</div>
</div><!-- page -->
<div id="footer">
<div class="box" id="yw18">
<div class="boxbody">
Site Copyright © 2006-2013 All Rights Reserved<br />
<a href="http://www.hentai-foundry.com/pictures/user/layzcarter/5/Truely-Heart">Truely</a> created by <a href="/user/layzcarter/profile">Layzcarter</a><br />
Site design by <a href="/user/layzcarter/profile">Layzcarter</a>, <a href="/user/admin/profile">Admin</a>, and <a href="/user/Voe/profile">Voe</a><br />
<br />Art and stories Copyright their artists/writers<br />
Series & Characters Copyright their respective creators/studios<br />
<p>All characters depicted are 18 or older, even if otherwise specified. </p><!-- IPv6-test.com button BEGIN -->
<a href='http://ipv6-test.com/validate.php?url=referer'>
<img src='http://img.hentai-foundry.com/themes/default/images/button-ipv6-80x15.png' alt='ipv6 ready' title='ipv6 ready' border='0' />
</a>
<!-- IPv6-test.com button END --><br /><img title="" src="http://img.hentai-foundry.com/themes/Hentai/images/icra_sw.gif" alt="" /></div>
</div><br />
<center>
</center>
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-620339-3";
_udn = "www.hentai-foundry.com";
urchinTracker();
</script></div><!-- footer -->
<script type="text/javascript" src="/assets/67f68f61/jui/js/jquery-ui.min.js"></script>
<script type="text/javascript">
/*<![CDATA[*/
jQuery(function($) {
$("#license").qtip({'show':{'delay':50},'position':{'corner':{'target':'rightMiddle'}},'hide':{'delay':250,'fixed':true},'style':{'name':'light','width':{'max':1000},'tip':'leftTop'}});
$('body').on('click','#yt0',function(){jQuery.ajax({'success':function(data) { $("#favoritesDialog").html(data).dialog("open"); return false; },'url':'/pictures/fans?pid=226304','cache':false});return false;});
jQuery('#favoritesDialog').dialog({'title':'Fans of \"Ashantae!\"','autoOpen':false,'width':'50%','height':$(window).height() / 2,'resizable':false});
$('body').on('click','#delete_comment_1401192',function(){if(confirm('Are you sure you want to delete this comment?')) {jQuery.ajax({'success':function() { location.reload(); },'error':function(jqXHR) { alert(jqXHR.responseText); },'data':{'YII_CSRF_TOKEN':'8a390060fc082247c06755b297dc4754aa15a3e5','id':1401192},'type':'POST','url':'/Comment/DeletepictureComment','cache':false});return false;} else return false;});
$('body').on('click','#delete_comment_1401175',function(){if(confirm('Are you sure you want to delete this comment?')) {jQuery.ajax({'success':function() { location.reload(); },'error':function(jqXHR) { alert(jqXHR.responseText); },'data':{'YII_CSRF_TOKEN':'8a390060fc082247c06755b297dc4754aa15a3e5','id':1401175},'type':'POST','url':'/Comment/DeletepictureComment','cache':false});return false;} else return false;});
$('body').on('click','#delete_comment_1399788',function(){if(confirm('Are you sure you want to delete this comment?')) {jQuery.ajax({'success':function() { location.reload(); },'error':function(jqXHR) { alert(jqXHR.responseText); },'data':{'YII_CSRF_TOKEN':'8a390060fc082247c06755b297dc4754aa15a3e5','id':1399788},'type':'POST','url':'/Comment/DeletepictureComment','cache':false});return false;} else return false;});
$('body').on('click','#delete_comment_1399336',function(){if(confirm('Are you sure you want to delete this comment?')) {jQuery.ajax({'success':function() { location.reload(); },'error':function(jqXHR) { alert(jqXHR.responseText); },'data':{'YII_CSRF_TOKEN':'8a390060fc082247c06755b297dc4754aa15a3e5','id':1399336},'type':'POST','url':'/Comment/DeletepictureComment','cache':false});return false;} else return false;});
$('body').on('click','#delete_comment_1399305',function(){if(confirm('Are you sure you want to delete this comment?')) {jQuery.ajax({'success':function() { location.reload(); },'error':function(jqXHR) { alert(jqXHR.responseText); },'data':{'YII_CSRF_TOKEN':'8a390060fc082247c06755b297dc4754aa15a3e5','id':1399305},'type':'POST','url':'/Comment/DeletepictureComment','cache':false});return false;} else return false;});
$('body').on('click','#delete_comment_1399056',function(){if(confirm('Are you sure you want to delete this comment?')) {jQuery.ajax({'success':function() { location.reload(); },'error':function(jqXHR) { alert(jqXHR.responseText); },'data':{'YII_CSRF_TOKEN':'8a390060fc082247c06755b297dc4754aa15a3e5','id':1399056},'type':'POST','url':'/Comment/DeletepictureComment','cache':false});return false;} else return false;});
$('body').on('click','#delete_comment_1399085',function(){if(confirm('Are you sure you want to delete this comment?')) {jQuery.ajax({'success':function() { location.reload(); },'error':function(jqXHR) { alert(jqXHR.responseText); },'data':{'YII_CSRF_TOKEN':'8a390060fc082247c06755b297dc4754aa15a3e5','id':1399085},'type':'POST','url':'/Comment/DeletepictureComment','cache':false});return false;} else return false;});
$('body').on('click','#delete_comment_1399202',function(){if(confirm('Are you sure you want to delete this comment?')) {jQuery.ajax({'success':function() { location.reload(); },'error':function(jqXHR) { alert(jqXHR.responseText); },'data':{'YII_CSRF_TOKEN':'8a390060fc082247c06755b297dc4754aa15a3e5','id':1399202},'type':'POST','url':'/Comment/DeletepictureComment','cache':false});return false;} else return false;});
$('body').on('click','#delete_comment_1399176',function(){if(confirm('Are you sure you want to delete this comment?')) {jQuery.ajax({'success':function() { location.reload(); },'error':function(jqXHR) { alert(jqXHR.responseText); },'data':{'YII_CSRF_TOKEN':'8a390060fc082247c06755b297dc4754aa15a3e5','id':1399176},'type':'POST','url':'/Comment/DeletepictureComment','cache':false});return false;} else return false;});
$('body').on('click','#delete_comment_1399073',function(){if(confirm('Are you sure you want to delete this comment?')) {jQuery.ajax({'success':function() { location.reload(); },'error':function(jqXHR) { alert(jqXHR.responseText); },'data':{'YII_CSRF_TOKEN':'8a390060fc082247c06755b297dc4754aa15a3e5','id':1399073},'type':'POST','url':'/Comment/DeletepictureComment','cache':false});return false;} else return false;});
$('body').on('click','#delete_comment_1399086',function(){if(confirm('Are you sure you want to delete this comment?')) {jQuery.ajax({'success':function() { location.reload(); },'error':function(jqXHR) { alert(jqXHR.responseText); },'data':{'YII_CSRF_TOKEN':'8a390060fc082247c06755b297dc4754aa15a3e5','id':1399086},'type':'POST','url':'/Comment/DeletepictureComment','cache':false});return false;} else return false;});
$('body').on('click','#delete_comment_1399083',function(){if(confirm('Are you sure you want to delete this comment?')) {jQuery.ajax({'success':function() { location.reload(); },'error':function(jqXHR) { alert(jqXHR.responseText); },'data':{'YII_CSRF_TOKEN':'8a390060fc082247c06755b297dc4754aa15a3e5','id':1399083},'type':'POST','url':'/Comment/DeletepictureComment','cache':false});return false;} else return false;});
$('body').on('click','#delete_comment_1399081',function(){if(confirm('Are you sure you want to delete this comment?')) {jQuery.ajax({'success':function() { location.reload(); },'error':function(jqXHR) { alert(jqXHR.responseText); },'data':{'YII_CSRF_TOKEN':'8a390060fc082247c06755b297dc4754aa15a3e5','id':1399081},'type':'POST','url':'/Comment/DeletepictureComment','cache':false});return false;} else return false;});
$('body').on('click','#yt1',function(){jQuery.ajax({'success':function() {location.reload();},'type':'POST','url':'/site/filters','cache':false,'data':jQuery(this).parents("form").serialize()});return false;});
});
/*]]>*/
</script>
</body>
</html>

View File

@ -0,0 +1,346 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="language" content="en" />
<link rel="stylesheet" type="text/css" href="http://img.hentai-foundry.com/themes/default/css/default.css" title="Default CSS" />
<link rel="shortcut icon" href="/themes/Hentai/favicon.ico" type="image/x-icon" />
<link rel="search" type="application/opensearchdescription+xml"
title="Search Hentai Foundry"
href="/search/OpenSearchDescription"
/>
<script type="text/javascript" src="http://img.hentai-foundry.com/themes/default/js/util.js"></script>
<meta name="description" content="Hentai Foundry is an online art gallery for adult oriented art. Despite its name, it is not limited to hentai but also welcomes adult in other styles such as cartoon and realism."> <meta name="keywords" content="Hentai, futanari, furry, porn, sex, fan, art, fanart, pictures, anime, cartoons, tv, movies, forum, upload, image, gallery">
<script type="text/javascript" src="/assets/67f68f61/jquery.js"></script>
<script type="text/javascript" src="/assets/67f68f61/jquery.ba-bbq.js"></script>
<title>Sparrow&#039;s Scraps - Hentai Foundry</title>
<link rel="meta" href="http://img.hentai-foundry.com/themes/Hentai/labels.rdf" type="application/rdf+xml" title="ICRA labels" />
<meta http-equiv="pics-Label" content='(pics-1.1 "http://www.icra.org/pics/vocabularyv03/" l gen true for "http://hentai-foundry.com" r (n 3 s 3 v 0 l 2 oa 0 ob 0 oc 0 od 0 oe 0 of 0 og 0 oh 0 c 3) gen true for "http://www.hentai-foundry.com" r (n 3 s 3 v 0 l 2 oa 0 ob 0 oc 0 od 0 oe 0 of 0 og 0 oh 0 c 3))' />
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.classify.org/safesurf/" L gen true for "http://www.hentai-foundry.com/" r (SS~~000 9 SS~~001 5 SS~~002 5 SS~~003 5 SS~~004 9 SS~~005 5 SS~~007 5 SS~~008 5 SS~~009 9 SS~~00A 5))'></head>
<body>
<div style="background: url(http://img.hentai-foundry.com/themes/default/images/header_bg.gif); height: 140px; width: 100%">
<div style="text-align: left">
<a href="/site/index">
<img src="http://img.hentai-foundry.com/themes/Hentai/images/logo.png" border="0" alt="Logo" title="Logo" />
</a>
</div>
<div style="position: absolute; right: 15px; top: 15px;">
<form action="/search/index" method="GET">
<span style="white-space:nowrap">
<input type="text" name="query" />
<input type="submit" value="Search" />
</span><br />
<a class="navlink" href="/search/index">Advanced Search</a> </form>
</div>
<div class='headerLogin'>
<form action="/site/login" method="post">
<div style="display:none"><input type="hidden" value="8a390060fc082247c06755b297dc4754aa15a3e5" name="YII_CSRF_TOKEN" /></div> Username <input type="text" name="LoginForm[username]" /> &nbsp;
Password <input type="password" name="LoginForm[password]" /> &nbsp;
<input type="submit" value="Login" /><br />
<div align='right' style="margin-top: 5px;">
Remember <input type="checkbox" value="1" name="LoginForm[rememberMe]" style="background: #676573;" />
&nbsp; <a class='navlink' href="/users/create">Register</a> &nbsp;
| &nbsp; <a class='navlink' href="/users/LostPassword">Forgot your password?</a></div>
</form>
</div>
</div>
<div id="mainmenu" style="text-align: center; background: #676573; color: #000; font-weight: bold; font-size: 0.9em;">
<div id="filtersButton"><a OnClick="ths = $(this); jQuery(&#039;#FilterBox&#039;).css({top: ths.offset().top, left: ths.offset().left + ths.outerWidth() + 10}); jQuery(&#039;#FilterBox&#039;).toggle(500); return false;" href="#"><img title="[Filters]" src="http://img.hentai-foundry.com/themes/default/images/buttons/filter.png" alt="[Filters]" /></a></div><div class="box" id="FilterBox">
<div class="boxheader">
<div class="boxtitle">Filters <a style="float: right;" href="#" onClick="jQuery('#FilterBox').toggle(500); return false;">X</a></div>
</div>
<div class="boxbody">
<form action="/pictures/user/Sparrow/scraps" method="post">
<div style="display:none"><input type="hidden" value="8a390060fc082247c06755b297dc4754aa15a3e5" name="YII_CSRF_TOKEN" /></div><div class='filter_div rating_nudity'>
<label for='rating_nudity'><small><small>Show</small></small> Nudity <img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude1.gif" alt="N" /></label><select class="ratingListBox" name="rating_nudity" id="rating_nudity">
<option value="0">None</option>
<option value="1">Mild Nudity</option>
<option value="2">Moderate Nudity</option>
<option value="3" selected="selected">Explicit Nudity</option>
</select></div><div class='filter_div rating_violence'>
<label for='rating_violence'><small><small>Show</small></small> Violence <img title="Violence" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_violence1.gif" alt="V" /></label><select class="ratingListBox" name="rating_violence" id="rating_violence">
<option value="0">None</option>
<option value="1">Comic or Mild Violence</option>
<option value="2">Moderate Violence</option>
<option value="3" selected="selected">Explicit or Graphic Violence</option>
</select></div><div class='filter_div rating_profanity'>
<label for='rating_profanity'><small><small>Show</small></small> Profanity <img title="Profanity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_lang1.gif" alt="L" /></label><select class="ratingListBox" name="rating_profanity" id="rating_profanity">
<option value="0">None</option>
<option value="1">Mild Profanity</option>
<option value="2">Moderate Profanity</option>
<option value="3" selected="selected">Proliferous or Severe Profanity</option>
</select></div><div class='filter_div rating_racism'>
<label for='rating_racism'><small><small>Show</small></small> Racism <img title="Racism" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_racism1.gif" alt="R" /></label><select class="ratingListBox" name="rating_racism" id="rating_racism">
<option value="0">None</option>
<option value="1">Mild Racist themes or content</option>
<option value="2">Racist themes or content</option>
<option value="3" selected="selected">Strong racist themes or content</option>
</select></div><div class='filter_div rating_sex'>
<label for='rating_sex'><small><small>Show</small></small> Sexual content <img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex1.gif" alt="Sx" /></label><select class="ratingListBox" name="rating_sex" id="rating_sex">
<option value="0">None</option>
<option value="1">Mild suggestive content</option>
<option value="2">Moderate suggestive or sexual content</option>
<option value="3" selected="selected">Explicit or adult sexual content</option>
</select></div><div class='filter_div rating_spoilers'>
<label for='rating_spoilers'><small><small>Show</small></small> Spoiler Warning <img title="Spoiler Warning" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_spoiler1.gif" alt="Sp" /></label><select class="ratingListBox" name="rating_spoilers" id="rating_spoilers">
<option value="0">None</option>
<option value="1">Mild Spoiler Warning</option>
<option value="2">Moderate Spoiler Warning</option>
<option value="3" selected="selected">Major Spoiler Warning</option>
</select></div><div class='filter_div rating_yaoi'>
<label for='rating_yaoi'><small><small>Show</small></small> Shonen-ai / Yaoi <img title="Shonen-ai (male homosexual) context" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_yaoi.gif" alt="♂♂" /></label><input type="hidden" value="0" name="rating_yaoi" /><input class="ratingCheckbox" checked="checked" type="checkbox" value="1" name="rating_yaoi" id="rating_yaoi" /></div><div class='filter_div rating_yuri'>
<label for='rating_yuri'><small><small>Show</small></small> Shoujo-ai / Yuri <img title="Shoujo-ai (female homosexual) context" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_yuri.gif" alt="♀♀" /></label><input type="hidden" value="0" name="rating_yuri" /><input class="ratingCheckbox" checked="checked" type="checkbox" value="1" name="rating_yuri" id="rating_yuri" /></div><div class='filter_div rating_loli'>
<label for='rating_loli'><small><small>Show</small></small> Lolicon <img title="Lolicon (Young female) content" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_loli.gif" alt="Lo" /></label><input type="hidden" value="0" name="rating_loli" /><input class="ratingCheckbox" type="checkbox" value="1" name="rating_loli" id="rating_loli" /></div><div class='filter_div rating_shota'>
<label for='rating_shota'><small><small>Show</small></small> Shotacon <img title="Shotacon (Young male) content" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_shota.gif" alt="So" /></label><input type="hidden" value="0" name="rating_shota" /><input class="ratingCheckbox" type="checkbox" value="1" name="rating_shota" id="rating_shota" /></div><div class='filter_div rating_teen'>
<label for='rating_teen'><small><small>Show</small></small> Teen <img title="Teen content" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_teen.gif" alt="T" /></label><input type="hidden" value="0" name="rating_teen" /><input class="ratingCheckbox" type="checkbox" value="1" name="rating_teen" id="rating_teen" /></div><div class='filter_div rating_guro'>
<label for='rating_guro'><small><small>Show</small></small> Guro <img title="Gore, scat, similar macabre content" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_guro.gif" alt="G" /></label><input type="hidden" value="0" name="rating_guro" /><input class="ratingCheckbox" type="checkbox" value="1" name="rating_guro" id="rating_guro" /></div><div class='filter_div rating_furry'>
<label for='rating_furry'><small><small>Show</small></small> Furry <img title="Anthropomorphic/furry content" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_furry.gif" alt="Fur" /></label><input type="hidden" value="0" name="rating_furry" /><input class="ratingCheckbox" type="checkbox" value="1" name="rating_furry" id="rating_furry" /></div><div class='filter_div rating_beast'>
<label for='rating_beast'><small><small>Show</small></small> Beast <img title="Bestiality" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_beast.gif" alt="B" /></label><input type="hidden" value="0" name="rating_beast" /><input class="ratingCheckbox" type="checkbox" value="1" name="rating_beast" id="rating_beast" /></div><div class='filter_div rating_male'>
<label for='rating_male'><small><small>Show</small></small> Male <img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /></label><input type="hidden" value="0" name="rating_male" /><input class="ratingCheckbox" checked="checked" type="checkbox" value="1" name="rating_male" id="rating_male" /></div><div class='filter_div rating_female'>
<label for='rating_female'><small><small>Show</small></small> Female <img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></label><input type="hidden" value="0" name="rating_female" /><input class="ratingCheckbox" checked="checked" type="checkbox" value="1" name="rating_female" id="rating_female" /></div><div class='filter_div rating_futa'>
<label for='rating_futa'><small><small>Show</small></small> Futa <img title="Contains Futanari/Dickgirl/Transgender/Hermaphrodite subject" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_futa.gif" alt="TG" /></label><input type="hidden" value="0" name="rating_futa" /><input class="ratingCheckbox" type="checkbox" value="1" name="rating_futa" id="rating_futa" /></div><div class='filter_div rating_other'>
<label for='rating_other'><small><small>Show</small></small> Other <img title="Other offensive content" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_other.gif" alt="!?" /></label><input type="hidden" value="0" name="rating_other" /><input class="ratingCheckbox" type="checkbox" value="1" name="rating_other" id="rating_other" /></div><br><div class='filter_div filter_media'><label for="filter_media">Limit Media to</label><select name="filter_media" id="filter_media">
<option value="A" selected="selected">All</option>
<optgroup label="Traditional media">
<optgroup label=".. Drawings">
<option value="1">Charcoal</option>
<option value="2">Colored Pencil / Crayon</option>
<option value="3">Ink or markers</option>
<option value="4">Oil pastels</option>
<option value="5">Graphite pencil</option>
<option value="6">Other drawing</option>
</optgroup>
<optgroup label=".. Paintings">
<option value="11">Airbrush</option>
<option value="12">Acrylics</option>
<option value="13">Oils</option>
<option value="14">Watercolor</option>
<option value="15">Other painting</option>
</optgroup>
<optgroup label=".. Crafts / Physical art">
<option value="21">Plushies</option>
<option value="22">Sculpture</option>
<option value="23">Other crafts</option>
</optgroup>
</optgroup>
<optgroup label="Digital media (CG)">
<option value="31">3D modelling</option>
<option value="33">Digital drawing or painting</option>
<option value="36">MS Paint</option>
<option value="32">Oekaki</option>
<option value="34">Pixel art</option>
<option value="35">Other digital art</option>
</optgroup>
<option value="0">Unspecified</option>
</select></div><div class='filter_div filter_order'><label for="filter_order">Sort By</label><select name="filter_order" id="filter_order">
<option value="date_new" selected="selected">Date Submitted (Newest)</option>
<option value="date_old">Date Submitted (Oldest)</option>
<option value="update_new">Date updated (Newest)</option>
<option value="update_old">Date updated (Oldest)</option>
<option value="a-z">Title A-z</option>
<option value="z-a">Title z-A</option>
<option value="views most">Views (most first)</option>
<option value="rating highest">rating (highest first)</option>
<option value="comments most">Comments (most first)</option>
<option value="faves most">Faves (most first)</option>
<option value="popularity most">Popularity (highest first)</option>
</select></div><div class='filter_div filter_type'><label for="filter_type">Limit Pictures to</label><select name="filter_type" id="filter_type">
<option value="0" selected="selected">All</option>
<option value="1">Regular Pictures</option>
<option value="2">Flash Submissions</option>
</select></div><input type="submit" name="yt0" value="Apply" id="yt0" /><input onClick="jQuery(&#039;#FilterBox&#039;).toggle(500);" name="yt1" type="button" value="Close" /></form></div>
</div><ul id="yw3">
<li><a href="/site/about">About</a></li>
<li><a href="http://forums.hentai-foundry.com/viewforum.php?f=13">FAQ</a></li>
<li><a href="http://forums.hentai-foundry.com/">Forums</a></li>
<li><a href="/paintChat/index">PaintChat</a></li>
<li><a href="/category/browse">Browse Categories</a></li>
<li><a href="/users/byletter">Browse Users</a></li>
<li><span>Browse Submissions</span>
<ul>
<li><a href="/pictures/featured">Featured Submissions</a></li>
<li><a href="/pictures/recent">Recent Submissions</a></li>
<li><a href="/pictures/popular">Popular Submissions</a></li>
<li><a href="/pictures/random">Random Submissions</a></li>
</ul>
</li>
<li><a href="/site/online">Who&#039;s Online</a></li>
</ul></div>
<center id='topad'>
<p><a href="http://www.pvglasses.com/?revid=17063&campaign=24264"><img title="" src="http://img.hentai-foundry.com/themes/Hentai/images/pink/pvg-728x90.jpg" alt="" /></a></p></center>
<div class="container" id="page">
<div class="breadcrumbs">
<a href="/">Home</a> &raquo; <a href="/user/Sparrow/profile">Sparrow</a> &raquo; <span>Scraps</span></div><!-- breadcrumbs -->
<div class="tabContainer"><ul class="tabs">
<li><a href="/user/Sparrow/profile" >Profile</a></li>
<li><a href="/pictures/user/Sparrow" >Pictures (681)</a></li>
<li><a href="/pictures/user/Sparrow/scraps" class="active" >Scraps (393)</a></li>
<li><a href="/stories/user/Sparrow" >Stories (6)</a></li>
</ul>
<div class="view">
<div id="yw0" class="list-view">
<div class='galleryHeader'><div class="pager">Go to page: <ul id="yw1" class="yiiPager"><li class="first hidden"><a href="/pictures/user/Sparrow/scraps">&lt;&lt; First</a></li>
<li class="previous hidden"><a href="/pictures/user/Sparrow/scraps">&lt; Previous</a></li>
<li class="page selected"><a href="/pictures/user/Sparrow/scraps">1</a></li>
<li class="page"><a href="/pictures/user/Sparrow/scraps/page/2">2</a></li>
<li class="page"><a href="/pictures/user/Sparrow/scraps/page/3">3</a></li>
<li class="page"><a href="/pictures/user/Sparrow/scraps/page/4">4</a></li>
<li class="page"><a href="/pictures/user/Sparrow/scraps/page/5">5</a></li>
<li class="page"><a href="/pictures/user/Sparrow/scraps/page/6">6</a></li>
<li class="next"><a href="/pictures/user/Sparrow/scraps/page/2">Next &gt;</a></li>
<li class="last"><a href="/pictures/user/Sparrow/scraps/page/6">Last &gt;&gt;</a></li></ul></div>
<div class="summary">Displaying 1-25 of 128 results.</div></div>
<table class="galleryViewTable">
<tr>
<td class='thumb_square' id='thumb_square_0' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/226084/Swegabe-Sketches--Gabrielle-027"><span class="thumbTitle">Swegabe Sketches Gabrielle 027</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/226084/Swegabe-Sketches--Gabrielle-027"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=226084&amp;size=128&amp;shadow=0" alt="Swegabe Sketches Gabrielle 027" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_1' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/224103/Make-Trade"><span class="thumbTitle">Make Trade?</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/224103/Make-Trade"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=224103&amp;size=128&amp;shadow=0" alt="Make Trade?" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Profanity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_lang3.gif" alt="L" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex1.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_2' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/220618/Swegabe-Sketches--Gabrielle-020"><span class="thumbTitle">Swegabe Sketches Gabrielle 020</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/220618/Swegabe-Sketches--Gabrielle-020"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=220618&amp;size=128&amp;shadow=0" alt="Swegabe Sketches Gabrielle 020" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_3' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/216451/Bigger-Dipper"><span class="thumbTitle">Bigger Dipper</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/216451/Bigger-Dipper"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=216451&amp;size=128&amp;shadow=0" alt="Bigger Dipper" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex1.gif" alt="Sx" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_4' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/213985/Swegabe-Sketches--Gabrielle-008"><span class="thumbTitle">Swegabe Sketches Gabrielle 008</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/213985/Swegabe-Sketches--Gabrielle-008"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=213985&amp;size=128&amp;shadow=0" alt="Swegabe Sketches Gabrielle 008" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
</tr>
<tr>
<td class='thumb_square' id='thumb_square_5' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/211271/Swegabe-Sketches--Gabrielle-003"><span class="thumbTitle">Swegabe Sketches Gabrielle 003</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/211271/Swegabe-Sketches--Gabrielle-003"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=211271&amp;size=128&amp;shadow=0" alt="Swegabe Sketches Gabrielle 003" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_6' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/210311/Himari-Says-Hi"><span class="thumbTitle">Himari Says 'Hi'</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/210311/Himari-Says-Hi"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=210311&amp;size=128&amp;shadow=0" alt="Himari Says &#039;Hi&#039;" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_7' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/209971/Swegabe-Sketches--Gabrielle-002"><span class="thumbTitle">Swegabe Sketches Gabrielle 002</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/209971/Swegabe-Sketches--Gabrielle-002"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=209971&amp;size=128&amp;shadow=0" alt="Swegabe Sketches Gabrielle 002" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_8' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/209970/Swegabe-Sketches--Gabrielle-001"><span class="thumbTitle">Swegabe Sketches Gabrielle 001</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/209970/Swegabe-Sketches--Gabrielle-001"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=209970&amp;size=128&amp;shadow=0" alt="Swegabe Sketches Gabrielle 001" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude1.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex1.gif" alt="Sx" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_9' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/204463/Minobred-Overkill"><span class="thumbTitle">Minobred Overkill</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/204463/Minobred-Overkill"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=204463&amp;size=128&amp;shadow=0" alt="Minobred Overkill" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
</tr>
<tr>
<td class='thumb_square' id='thumb_square_10' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/203723/Single-File-Please"><span class="thumbTitle">Single File Please</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/203723/Single-File-Please"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=203723&amp;size=128&amp;shadow=0" alt="Single File Please" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_11' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/202593/Kneel-O-April"><span class="thumbTitle">Kneel, O April</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/202593/Kneel-O-April"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=202593&amp;size=128&amp;shadow=0" alt="Kneel, O April" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_12' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/201296/McPie-2"><span class="thumbTitle">McPie 2</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/201296/McPie-2"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=201296&amp;size=128&amp;shadow=0" alt="McPie 2" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_13' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/195882/HANDLED"><span class="thumbTitle">HANDLED</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/195882/HANDLED"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=195882&amp;size=128&amp;shadow=0" alt="HANDLED" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_14' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/184275/Relative-Frequency"><span class="thumbTitle">Relative Frequency</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/184275/Relative-Frequency"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=184275&amp;size=128&amp;shadow=0" alt="Relative Frequency" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
</tr>
<tr>
<td class='thumb_square' id='thumb_square_15' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/183458/Coco-VS-Voltar"><span class="thumbTitle">Coco VS Voltar</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/183458/Coco-VS-Voltar"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=183458&amp;size=128&amp;shadow=0" alt="Coco VS Voltar" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_16' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/183085/Coco-VS-Froggy-G"><span class="thumbTitle">Coco VS Froggy G</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/183085/Coco-VS-Froggy-G"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=183085&amp;size=128&amp;shadow=0" alt="Coco VS Froggy G" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_17' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/181508/Mystra-Meets-Mister-18"><span class="thumbTitle">Mystra Meets Mister 18"</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/181508/Mystra-Meets-Mister-18"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=181508&amp;size=128&amp;shadow=0" alt="Mystra Meets Mister 18&quot;" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_18' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/180699/Tunnel-Trouble"><span class="thumbTitle">Tunnel Trouble</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/180699/Tunnel-Trouble"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=180699&amp;size=128&amp;shadow=0" alt="Tunnel Trouble" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_19' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/177549/Coco-VS-Leon"><span class="thumbTitle">Coco VS Leon</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/177549/Coco-VS-Leon"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=177549&amp;size=128&amp;shadow=0" alt="Coco VS Leon" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
</tr>
<tr>
<td class='thumb_square' id='thumb_square_20' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/175824/The-Ladies-Boyle"><span class="thumbTitle">The Ladies Boyle</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/175824/The-Ladies-Boyle"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=175824&amp;size=128&amp;shadow=0" alt="The Ladies Boyle" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_21' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/168744/Coco-VS-Yuri"><span class="thumbTitle">Coco VS Yuri</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/168744/Coco-VS-Yuri"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=168744&amp;size=128&amp;shadow=0" alt="Coco VS Yuri" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_22' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/166167/VVVVViewtiful"><span class="thumbTitle">VVVVViewtiful!</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/166167/VVVVViewtiful"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=166167&amp;size=128&amp;shadow=0" alt="VVVVViewtiful!" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_23' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/165429/Walled"><span class="thumbTitle">Walled</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/165429/Walled"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=165429&amp;size=128&amp;shadow=0" alt="Walled" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude2.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex2.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
<td class='thumb_square' id='thumb_square_24' style='width: 20%'>
<div style="height: 2.5em; display: inline-block;"><a href="/pictures/user/Sparrow/164936/Coco-VS-Lonestar"><span class="thumbTitle">Coco VS Lonestar</span></a></div><table><tr><td style="height: 128px;"><a href="/pictures/user/Sparrow/164936/Coco-VS-Lonestar"><img class="thumb" src="http://thumbs.hentai-foundry.com/thumb.php?pid=164936&amp;size=128&amp;shadow=0" alt="Coco VS Lonestar" /></a></td></tr></table><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div><a href="/user/Sparrow/profile">Sparrow</a>
</td>
</tr>
</table>
<div class='galleryFooter'><div class="pager">Go to page: <ul id="yw2" class="yiiPager"><li class="first hidden"><a href="/pictures/user/Sparrow/scraps">&lt;&lt; First</a></li>
<li class="previous hidden"><a href="/pictures/user/Sparrow/scraps">&lt; Previous</a></li>
<li class="page selected"><a href="/pictures/user/Sparrow/scraps">1</a></li>
<li class="page"><a href="/pictures/user/Sparrow/scraps/page/2">2</a></li>
<li class="page"><a href="/pictures/user/Sparrow/scraps/page/3">3</a></li>
<li class="page"><a href="/pictures/user/Sparrow/scraps/page/4">4</a></li>
<li class="page"><a href="/pictures/user/Sparrow/scraps/page/5">5</a></li>
<li class="page"><a href="/pictures/user/Sparrow/scraps/page/6">6</a></li>
<li class="next"><a href="/pictures/user/Sparrow/scraps/page/2">Next &gt;</a></li>
<li class="last"><a href="/pictures/user/Sparrow/scraps/page/6">Last &gt;&gt;</a></li></ul></div></div><div class="keys" style="display:none" title="/pictures/user/Sparrow/scraps"><span>226084</span><span>224103</span><span>220618</span><span>216451</span><span>213985</span><span>211271</span><span>210311</span><span>209971</span><span>209970</span><span>204463</span><span>203723</span><span>202593</span><span>201296</span><span>195882</span><span>184275</span><span>183458</span><span>183085</span><span>181508</span><span>180699</span><span>177549</span><span>175824</span><span>168744</span><span>166167</span><span>165429</span><span>164936</span></div>
</div></div></div>
</div><!-- page -->
<div id="footer">
<div class="box" id="yw4">
<div class="boxbody">
Site Copyright © 2006-2013 All Rights Reserved<br />
<a href="http://www.hentai-foundry.com/pictures/user/layzcarter/5/Truely-Heart">Truely</a> created by <a href="/user/layzcarter/profile">Layzcarter</a><br />
Site design by <a href="/user/layzcarter/profile">Layzcarter</a>, <a href="/user/admin/profile">Admin</a>, and <a href="/user/Voe/profile">Voe</a><br />
<br />Art and stories Copyright their artists/writers<br />
Series & Characters Copyright their respective creators/studios<br />
<p>All characters depicted are 18 or older, even if otherwise specified. </p><!-- IPv6-test.com button BEGIN -->
<a href='http://ipv6-test.com/validate.php?url=referer'>
<img src='http://img.hentai-foundry.com/themes/default/images/button-ipv6-80x15.png' alt='ipv6 ready' title='ipv6 ready' border='0' />
</a>
<!-- IPv6-test.com button END --><br /><img title="" src="http://img.hentai-foundry.com/themes/Hentai/images/icra_sw.gif" alt="" /></div>
</div><br />
<center>
</center>
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-620339-3";
_udn = "www.hentai-foundry.com";
urchinTracker();
</script></div><!-- footer -->
<script type="text/javascript" src="/assets/f6f22552/listview/jquery.yiilistview.js"></script>
<script type="text/javascript">
/*<![CDATA[*/
jQuery(function($) {
jQuery('#yw0').yiiListView({'ajaxUpdate':[],'ajaxVar':'ajax','pagerClass':'pager','loadingClass':'list-view-loading','sorterClass':'sorter','enableHistory':false});
$('body').on('click','#yt0',function(){jQuery.ajax({'success':function() {location.reload();},'type':'POST','url':'/site/filters','cache':false,'data':jQuery(this).parents("form").serialize()});return false;});
});
/*]]>*/
</script>
</body>
</html>

View File

@ -0,0 +1,402 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="language" content="en" />
<link rel="stylesheet" type="text/css" href="http://img.hentai-foundry.com/themes/default/css/default.css" title="Default CSS" />
<link rel="shortcut icon" href="/themes/Hentai/favicon.ico" type="image/x-icon" />
<link rel="search" type="application/opensearchdescription+xml"
title="Search Hentai Foundry"
href="/search/OpenSearchDescription"
/>
<script type="text/javascript" src="http://img.hentai-foundry.com/themes/default/js/util.js"></script>
<meta name="description" content="Aaand that&amp;#039;s all she wrote. For now, anyway as you can probably guess this isn&amp;#039;t the last we&amp;#039;ll see of the Horseome Foursome, but for the time being they&amp;#039;ve got better stuff to do, so leave our heroine with a tall tankard of horse jizz to wash away the anal-induced hangover.&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Enjoy~&lt;/em&gt;"> <meta name="keywords" content="bukkake horsecock gokkun prom_night">
<link title="Comments Feed" rel="alternate" type="application/atom+xml" href="/feed/PictureComments/id/226084" />
<script type="text/javascript" src="/assets/67f68f61/jquery.js"></script>
<script type="text/javascript" src="/assets/c966e7e0/jquery.qtip-1.0.0-rc3.min.js"></script>
<title>Swegabe Sketches Gabrielle 027 by Sparrow - Hentai Foundry</title>
<link rel="meta" href="http://img.hentai-foundry.com/themes/Hentai/labels.rdf" type="application/rdf+xml" title="ICRA labels" />
<meta http-equiv="pics-Label" content='(pics-1.1 "http://www.icra.org/pics/vocabularyv03/" l gen true for "http://hentai-foundry.com" r (n 3 s 3 v 0 l 2 oa 0 ob 0 oc 0 od 0 oe 0 of 0 og 0 oh 0 c 3) gen true for "http://www.hentai-foundry.com" r (n 3 s 3 v 0 l 2 oa 0 ob 0 oc 0 od 0 oe 0 of 0 og 0 oh 0 c 3))' />
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.classify.org/safesurf/" L gen true for "http://www.hentai-foundry.com/" r (SS~~000 9 SS~~001 5 SS~~002 5 SS~~003 5 SS~~004 9 SS~~005 5 SS~~007 5 SS~~008 5 SS~~009 9 SS~~00A 5))'></head>
<body>
<div style="background: url(http://img.hentai-foundry.com/themes/default/images/header_bg.gif); height: 140px; width: 100%">
<div style="text-align: left">
<a href="/site/index">
<img src="http://img.hentai-foundry.com/themes/Hentai/images/logo.png" border="0" alt="Logo" title="Logo" />
</a>
</div>
<div style="position: absolute; right: 15px; top: 15px;">
<form action="/search/index" method="GET">
<span style="white-space:nowrap">
<input type="text" name="query" />
<input type="submit" value="Search" />
</span><br />
<a class="navlink" href="/search/index">Advanced Search</a> </form>
</div>
<div class='headerLogin'>
<form action="/site/login" method="post">
<div style="display:none"><input type="hidden" value="8a390060fc082247c06755b297dc4754aa15a3e5" name="YII_CSRF_TOKEN" /></div> Username <input type="text" name="LoginForm[username]" /> &nbsp;
Password <input type="password" name="LoginForm[password]" /> &nbsp;
<input type="submit" value="Login" /><br />
<div align='right' style="margin-top: 5px;">
Remember <input type="checkbox" value="1" name="LoginForm[rememberMe]" style="background: #676573;" />
&nbsp; <a class='navlink' href="/users/create">Register</a> &nbsp;
| &nbsp; <a class='navlink' href="/users/LostPassword">Forgot your password?</a></div>
</form>
</div>
</div>
<div id="mainmenu" style="text-align: center; background: #676573; color: #000; font-weight: bold; font-size: 0.9em;">
<div id="filtersButton"><a OnClick="ths = $(this); jQuery(&#039;#FilterBox&#039;).css({top: ths.offset().top, left: ths.offset().left + ths.outerWidth() + 10}); jQuery(&#039;#FilterBox&#039;).toggle(500); return false;" href="#"><img title="[Filters]" src="http://img.hentai-foundry.com/themes/default/images/buttons/filter.png" alt="[Filters]" /></a></div><div class="box" id="FilterBox">
<div class="boxheader">
<div class="boxtitle">Filters <a style="float: right;" href="#" onClick="jQuery('#FilterBox').toggle(500); return false;">X</a></div>
</div>
<div class="boxbody">
<form action="/pictures/user/Sparrow/226084/Swegabe-Sketches--Gabrielle-027" method="post">
<div style="display:none"><input type="hidden" value="8a390060fc082247c06755b297dc4754aa15a3e5" name="YII_CSRF_TOKEN" /></div><div class='filter_div rating_nudity'>
<label for='rating_nudity'><small><small>Show</small></small> Nudity <img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude1.gif" alt="N" /></label><select class="ratingListBox" name="rating_nudity" id="rating_nudity">
<option value="0">None</option>
<option value="1">Mild Nudity</option>
<option value="2">Moderate Nudity</option>
<option value="3" selected="selected">Explicit Nudity</option>
</select></div><div class='filter_div rating_violence'>
<label for='rating_violence'><small><small>Show</small></small> Violence <img title="Violence" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_violence1.gif" alt="V" /></label><select class="ratingListBox" name="rating_violence" id="rating_violence">
<option value="0">None</option>
<option value="1">Comic or Mild Violence</option>
<option value="2">Moderate Violence</option>
<option value="3" selected="selected">Explicit or Graphic Violence</option>
</select></div><div class='filter_div rating_profanity'>
<label for='rating_profanity'><small><small>Show</small></small> Profanity <img title="Profanity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_lang1.gif" alt="L" /></label><select class="ratingListBox" name="rating_profanity" id="rating_profanity">
<option value="0">None</option>
<option value="1">Mild Profanity</option>
<option value="2">Moderate Profanity</option>
<option value="3" selected="selected">Proliferous or Severe Profanity</option>
</select></div><div class='filter_div rating_racism'>
<label for='rating_racism'><small><small>Show</small></small> Racism <img title="Racism" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_racism1.gif" alt="R" /></label><select class="ratingListBox" name="rating_racism" id="rating_racism">
<option value="0">None</option>
<option value="1">Mild Racist themes or content</option>
<option value="2">Racist themes or content</option>
<option value="3" selected="selected">Strong racist themes or content</option>
</select></div><div class='filter_div rating_sex'>
<label for='rating_sex'><small><small>Show</small></small> Sexual content <img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex1.gif" alt="Sx" /></label><select class="ratingListBox" name="rating_sex" id="rating_sex">
<option value="0">None</option>
<option value="1">Mild suggestive content</option>
<option value="2">Moderate suggestive or sexual content</option>
<option value="3" selected="selected">Explicit or adult sexual content</option>
</select></div><div class='filter_div rating_spoilers'>
<label for='rating_spoilers'><small><small>Show</small></small> Spoiler Warning <img title="Spoiler Warning" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_spoiler1.gif" alt="Sp" /></label><select class="ratingListBox" name="rating_spoilers" id="rating_spoilers">
<option value="0">None</option>
<option value="1">Mild Spoiler Warning</option>
<option value="2">Moderate Spoiler Warning</option>
<option value="3" selected="selected">Major Spoiler Warning</option>
</select></div><div class='filter_div rating_yaoi'>
<label for='rating_yaoi'><small><small>Show</small></small> Shonen-ai / Yaoi <img title="Shonen-ai (male homosexual) context" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_yaoi.gif" alt="♂♂" /></label><input type="hidden" value="0" name="rating_yaoi" /><input class="ratingCheckbox" checked="checked" type="checkbox" value="1" name="rating_yaoi" id="rating_yaoi" /></div><div class='filter_div rating_yuri'>
<label for='rating_yuri'><small><small>Show</small></small> Shoujo-ai / Yuri <img title="Shoujo-ai (female homosexual) context" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_yuri.gif" alt="♀♀" /></label><input type="hidden" value="0" name="rating_yuri" /><input class="ratingCheckbox" checked="checked" type="checkbox" value="1" name="rating_yuri" id="rating_yuri" /></div><div class='filter_div rating_loli'>
<label for='rating_loli'><small><small>Show</small></small> Lolicon <img title="Lolicon (Young female) content" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_loli.gif" alt="Lo" /></label><input type="hidden" value="0" name="rating_loli" /><input class="ratingCheckbox" type="checkbox" value="1" name="rating_loli" id="rating_loli" /></div><div class='filter_div rating_shota'>
<label for='rating_shota'><small><small>Show</small></small> Shotacon <img title="Shotacon (Young male) content" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_shota.gif" alt="So" /></label><input type="hidden" value="0" name="rating_shota" /><input class="ratingCheckbox" type="checkbox" value="1" name="rating_shota" id="rating_shota" /></div><div class='filter_div rating_teen'>
<label for='rating_teen'><small><small>Show</small></small> Teen <img title="Teen content" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_teen.gif" alt="T" /></label><input type="hidden" value="0" name="rating_teen" /><input class="ratingCheckbox" type="checkbox" value="1" name="rating_teen" id="rating_teen" /></div><div class='filter_div rating_guro'>
<label for='rating_guro'><small><small>Show</small></small> Guro <img title="Gore, scat, similar macabre content" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_guro.gif" alt="G" /></label><input type="hidden" value="0" name="rating_guro" /><input class="ratingCheckbox" type="checkbox" value="1" name="rating_guro" id="rating_guro" /></div><div class='filter_div rating_furry'>
<label for='rating_furry'><small><small>Show</small></small> Furry <img title="Anthropomorphic/furry content" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_furry.gif" alt="Fur" /></label><input type="hidden" value="0" name="rating_furry" /><input class="ratingCheckbox" type="checkbox" value="1" name="rating_furry" id="rating_furry" /></div><div class='filter_div rating_beast'>
<label for='rating_beast'><small><small>Show</small></small> Beast <img title="Bestiality" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_beast.gif" alt="B" /></label><input type="hidden" value="0" name="rating_beast" /><input class="ratingCheckbox" type="checkbox" value="1" name="rating_beast" id="rating_beast" /></div><div class='filter_div rating_male'>
<label for='rating_male'><small><small>Show</small></small> Male <img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /></label><input type="hidden" value="0" name="rating_male" /><input class="ratingCheckbox" checked="checked" type="checkbox" value="1" name="rating_male" id="rating_male" /></div><div class='filter_div rating_female'>
<label for='rating_female'><small><small>Show</small></small> Female <img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></label><input type="hidden" value="0" name="rating_female" /><input class="ratingCheckbox" checked="checked" type="checkbox" value="1" name="rating_female" id="rating_female" /></div><div class='filter_div rating_futa'>
<label for='rating_futa'><small><small>Show</small></small> Futa <img title="Contains Futanari/Dickgirl/Transgender/Hermaphrodite subject" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_futa.gif" alt="TG" /></label><input type="hidden" value="0" name="rating_futa" /><input class="ratingCheckbox" type="checkbox" value="1" name="rating_futa" id="rating_futa" /></div><div class='filter_div rating_other'>
<label for='rating_other'><small><small>Show</small></small> Other <img title="Other offensive content" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_other.gif" alt="!?" /></label><input type="hidden" value="0" name="rating_other" /><input class="ratingCheckbox" type="checkbox" value="1" name="rating_other" id="rating_other" /></div><br><div class='filter_div filter_media'><label for="filter_media">Limit Media to</label><select name="filter_media" id="filter_media">
<option value="A" selected="selected">All</option>
<optgroup label="Traditional media">
<optgroup label=".. Drawings">
<option value="1">Charcoal</option>
<option value="2">Colored Pencil / Crayon</option>
<option value="3">Ink or markers</option>
<option value="4">Oil pastels</option>
<option value="5">Graphite pencil</option>
<option value="6">Other drawing</option>
</optgroup>
<optgroup label=".. Paintings">
<option value="11">Airbrush</option>
<option value="12">Acrylics</option>
<option value="13">Oils</option>
<option value="14">Watercolor</option>
<option value="15">Other painting</option>
</optgroup>
<optgroup label=".. Crafts / Physical art">
<option value="21">Plushies</option>
<option value="22">Sculpture</option>
<option value="23">Other crafts</option>
</optgroup>
</optgroup>
<optgroup label="Digital media (CG)">
<option value="31">3D modelling</option>
<option value="33">Digital drawing or painting</option>
<option value="36">MS Paint</option>
<option value="32">Oekaki</option>
<option value="34">Pixel art</option>
<option value="35">Other digital art</option>
</optgroup>
<option value="0">Unspecified</option>
</select></div><div class='filter_div filter_order'><label for="filter_order">Sort By</label><select name="filter_order" id="filter_order">
<option value="date_new" selected="selected">Date Submitted (Newest)</option>
<option value="date_old">Date Submitted (Oldest)</option>
<option value="update_new">Date updated (Newest)</option>
<option value="update_old">Date updated (Oldest)</option>
<option value="a-z">Title A-z</option>
<option value="z-a">Title z-A</option>
<option value="views most">Views (most first)</option>
<option value="rating highest">rating (highest first)</option>
<option value="comments most">Comments (most first)</option>
<option value="faves most">Faves (most first)</option>
<option value="popularity most">Popularity (highest first)</option>
</select></div><div class='filter_div filter_type'><label for="filter_type">Limit Pictures to</label><select name="filter_type" id="filter_type">
<option value="0" selected="selected">All</option>
<option value="1">Regular Pictures</option>
<option value="2">Flash Submissions</option>
</select></div><input type="submit" name="yt1" value="Apply" id="yt1" /><input onClick="jQuery(&#039;#FilterBox&#039;).toggle(500);" name="yt2" type="button" value="Close" /></form></div>
</div><ul id="yw19">
<li><a href="/site/about">About</a></li>
<li><a href="http://forums.hentai-foundry.com/viewforum.php?f=13">FAQ</a></li>
<li><a href="http://forums.hentai-foundry.com/">Forums</a></li>
<li><a href="/paintChat/index">PaintChat</a></li>
<li><a href="/category/browse">Browse Categories</a></li>
<li><a href="/users/byletter">Browse Users</a></li>
<li><span>Browse Submissions</span>
<ul>
<li><a href="/pictures/featured">Featured Submissions</a></li>
<li><a href="/pictures/recent">Recent Submissions</a></li>
<li><a href="/pictures/popular">Popular Submissions</a></li>
<li><a href="/pictures/random">Random Submissions</a></li>
</ul>
</li>
<li><a href="/site/online">Who&#039;s Online</a></li>
</ul></div>
<center id='topad'>
<p><a href="http://www.pvglasses.com/?revid=17063&campaign=24264"><img title="" src="http://img.hentai-foundry.com/themes/Hentai/images/pink/pvg-728x90.jpg" alt="" /></a></p></center>
<div class="container" id="page">
<div class="breadcrumbs">
<a href="/">Home</a> &raquo; <a href="/user/Sparrow/profile">Sparrow</a> &raquo; <a href="/pictures/user/Sparrow">Pictures</a> &raquo; <span>Swegabe Sketches Gabrielle 027</span></div><!-- breadcrumbs -->
<!-- resize_width=1250 | model->size_width=1111 --><div class="box" id="yw0">
<div class="boxheader">
<div class="boxtitle"><span class="imageTitle">Swegabe Sketches Gabrielle 027</span> <small>by</small> <a href="/user/Sparrow/profile">Sparrow</a> </div>
</div>
<div class="boxbody">
<center><img width="1111" height="1334" src="http://pictures.hentai-foundry.com//s/Sparrow/226084.jpg" alt="Swegabe Sketches Gabrielle 027 by Sparrow" /></center> <script type="text/JavaScript">
function vote(value)
{
$.ajax({
type: "POST",
data: {
id: 226084,
vote: value,
YII_CSRF_TOKEN: "8a390060fc082247c06755b297dc4754aa15a3e5" },
url: "/pictures/vote",
success: function(msg)
{
$('#voteBox').hide(300);
},
error: function(jqXHR, textStatus, errorThrown)
{
alert(jqXHR.responseText);
}
});
}
</script>
<div id='voteBox' class='voteBox'>Vote: <a onClick="vote(1); return false;" href="#"><img title="[vote up]" src="http://img.hentai-foundry.com/themes/default/images/buttons/vote_happy.png" alt="[vote up]" /></a> <a onClick="vote(0); return false;" href="#"><img title="[vote down]" src="http://img.hentai-foundry.com/themes/default/images/buttons/vote_sad.png" alt="[vote down]" /></a></div></div>
<div class="boxfooter"> </div>
</div><div class="box" id="yw1">
<div class="boxheader">
<div class="boxtitle">Description</div>
</div>
<div class="boxbody">
<a href="/user/Sparrow/profile"><img style="float: left" title="Sparrow" src="http://avatars.hentai-foundry.com/48322.png" alt="Sparrow" /></a><div style='margin-left: 70px; min-height: 64px;'>Aaand that&#039;s all she wrote. For now, anyway as you can probably guess this isn&#039;t the last we&#039;ll see of the Horseome Foursome, but for the time being they&#039;ve got better stuff to do, so leave our heroine with a tall tankard of horse jizz to wash away the anal-induced hangover.<br />
<br />
<em>Enjoy~</em></div></div>
</div><div class="box" id="yw2">
<div class="boxheader">
<div class="boxtitle">General Info</div>
</div>
<div class="boxbody">
<div id="favoritesDialog">
</div><table border=0>
<tr><td><b>Ratings</b></td> <td><div class='ratings_box'><img title="Nudity" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_nude3.gif" alt="N" /><img title="Sexual content" src="http://img.hentai-foundry.com/themes/default/images/rating_icons/ic_sex3.gif" alt="Sx" /><img title="Contains male nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_male.gif" alt="♂" /><img title="Contains female nudity" src="http://img.hentai-foundry.com/themes/Hentai/images/rating_icons/ic_female.gif" alt="♀" /></div></td> <td><b>Comments</b></td> <td>16</td></tr>
<tr><td><b>Category</b></td> <td><span class="categoryBreadcrumbs">
<a href="/categories/4/Original/pictures">Original</a> &raquo; <a href="/categories/10/Original/Bukkake/pictures">Bukkake</a></span></td> <td><b>Media</b></td> <td>Digital drawing or painting</td></tr>
<tr><td><b>Date Submitted</b></td> <td>August 30, 2013 2:25:31 PM</td> <td><b>Time Taken</b></td> <td>Yes</td></tr>
<tr><td><b>Views</b></td> <td>7929</td> <td><b>Reference</b></td> <td>No</td></tr>
<tr><td><b><a href="#" id="yt0">Favorites...</a></b></td> <td>113</td> <td><b>Keywords</b></td> <td><a rel="tag" href="/search/index?query=bukkake&amp;search_in=keywords">bukkake</a>, <a rel="tag" href="/search/index?query=horsecock&amp;search_in=keywords">horsecock</a>, <a rel="tag" href="/search/index?query=gokkun&amp;search_in=keywords">gokkun</a>, <a rel="tag" href="/search/index?query=prom_night&amp;search_in=keywords">prom_night</a></td></tr>
<tr><td><b>Vote Score</b></td> <td>45</td> <td><b>License</b></td> <td><span id='license' title='Default automatic international copyright.<br />
<br />
More Information: <a href="http://en.wikipedia.org/wiki/Berne_Convention_for_the_Protection_of_Literary_and_Artistic_Works">http://en.wikipedia.org/wiki/Berne_Convention_for_the_Protection_of_Literary_and_Artistic_Works</a>'>Berne Convention</span></td></tr>
</table></div>
</div><div class="box" id="comments_box">
<div class="boxheader">
<div class="boxtitle">Comments (16) <a class="feedLink" href="/feed/PictureComments/id/226084"><img title="RSS Feed" src="http://img.hentai-foundry.com/themes/default/images/feed-icon-14x14.png" alt="RSS Feed" /></a></div>
</div>
<div class="boxbody">
<p>You are not authorized to comment here. Your must be registered and logged in to comment</p><div style="margin-left: 0px;" id="comment_1400104"><div class="box" id="yw4">
<div class="boxheader">
<div class="boxtitle"><a href="/user/Marienne/profile">Marienne</a> <small>on</small> September 1, 2013 8:59:26 PM<span class="commentButtons"></span></div>
</div>
<div class="boxbody">
<div class="commentBody"><div style="margin-left: -70px; position: absolute;"><a href="/user/Marienne/profile"><img title="Marienne" src="http://avatars.hentai-foundry.com/114552-1323034581.jpg" alt="Marienne" /></a></div>Her first tankard of many, I&#039;m guessing?</div></div>
</div></div><div style="margin-left: 30px;" id="comment_1400473"><div class="box" id="yw5">
<div class="boxheader">
<div class="boxtitle"><a href="/user/Sparrow/profile">Sparrow</a> <small>on</small> September 2, 2013 9:33:42 AM<span class="commentButtons"></span></div>
</div>
<div class="boxbody">
<div class="commentBody"><div style="margin-left: -70px; position: absolute;"><a href="/user/Sparrow/profile"><img title="Sparrow" src="http://avatars.hentai-foundry.com/48322.png" alt="Sparrow" /></a></div>We can assume. I actually don&#039;t think she quaffs any other <em>cumsteins</em> later on, so this might just be for the novelty.</div></div>
</div></div><div style="margin-left: 0px;" id="comment_1398148"><div class="box" id="yw6">
<div class="boxheader">
<div class="boxtitle"><a href="/user/earwig/profile">earwig</a> <small>on</small> August 30, 2013 9:23:52 AM<span class="commentButtons"></span></div>
</div>
<div class="boxbody">
<div class="commentBody"><div style="margin-left: -70px; position: absolute;"><a href="/user/earwig/profile"><img title="earwig" src="http://avatars.hentai-foundry.com/178893.png" alt="earwig" /></a></div>Some people claim that the &#039;hair of the dog&#039; is the best hangover cure, Gabe seems to know that &#039;jizz of the horse&#039; works much better.</div></div>
</div></div><div style="margin-left: 30px;" id="comment_1398182"><div class="box" id="yw7">
<div class="boxheader">
<div class="boxtitle"><a href="/user/Swegabe/profile">Swegabe</a> <small>on</small> August 30, 2013 10:19:06 AM<span class="commentButtons"></span></div>
</div>
<div class="boxbody">
<div class="commentBody"><div style="margin-left: -70px; position: absolute;"><a href="/user/Swegabe/profile"><img title="Swegabe" src="http://avatars.hentai-foundry.com/1799.jpg" alt="Swegabe" /></a></div>Hair of the Dog, huh...Does that I have to suck dog balls? ;)</div></div>
</div></div><div style="margin-left: 60px;" id="comment_1400108"><div class="box" id="yw8">
<div class="boxheader">
<div class="boxtitle"><a href="/user/Marienne/profile">Marienne</a> <small>on</small> September 1, 2013 9:00:24 PM<span class="commentButtons"></span></div>
</div>
<div class="boxbody">
<div class="commentBody"><div style="margin-left: -70px; position: absolute;"><a href="/user/Marienne/profile"><img title="Marienne" src="http://avatars.hentai-foundry.com/114552-1323034581.jpg" alt="Marienne" /></a></div>Oh, yeah. Science says so. I have the data right h----oh, this page is rather, um, stained. You should just take my word for it, yes.</div></div>
</div></div><div style="margin-left: 90px;" id="comment_1400304"><div class="box" id="yw9">
<div class="boxheader">
<div class="boxtitle"><a href="/user/Swegabe/profile">Swegabe</a> <small>on</small> September 2, 2013 3:33:54 AM<span class="commentButtons"></span></div>
</div>
<div class="boxbody">
<div class="commentBody"><div style="margin-left: -70px; position: absolute;"><a href="/user/Swegabe/profile"><img title="Swegabe" src="http://avatars.hentai-foundry.com/1799.jpg" alt="Swegabe" /></a></div>If you say it, then it must be true!</div></div>
</div></div><div style="margin-left: 60px;" id="comment_1398467"><div class="box" id="yw10">
<div class="boxheader">
<div class="boxtitle"><a href="/user/Elderickan/profile">Elderickan</a> <small>on</small> August 30, 2013 5:23:57 PM<span class="commentButtons"></span></div>
</div>
<div class="boxbody">
<div class="commentBody"><div style="margin-left: -70px; position: absolute;"><a href="/user/Elderickan/profile"><img title="Elderickan" src="http://avatars.hentai-foundry.com/89063-1282939874.jpg" alt="Elderickan" /></a></div>To misquote; If you do it, we will watch ^^</div></div>
</div></div><div style="margin-left: 60px;" id="comment_1398188"><div class="box" id="yw11">
<div class="boxheader">
<div class="boxtitle"><a href="/user/earwig/profile">earwig</a> <small>on</small> August 30, 2013 10:30:05 AM<span class="commentButtons"></span></div>
</div>
<div class="boxbody">
<div class="commentBody"><div style="margin-left: -70px; position: absolute;"><a href="/user/earwig/profile"><img title="earwig" src="http://avatars.hentai-foundry.com/178893.png" alt="earwig" /></a></div>I think the better question why aren&#039;t you ALREADY sucking dog balls?</div></div>
</div></div><div style="margin-left: 90px;" id="comment_1398196"><div class="box" id="yw12">
<div class="boxheader">
<div class="boxtitle"><a href="/user/Swegabe/profile">Swegabe</a> <small>on</small> August 30, 2013 10:39:21 AM<span class="commentButtons"></span></div>
</div>
<div class="boxbody">
<div class="commentBody"><div style="margin-left: -70px; position: absolute;"><a href="/user/Swegabe/profile"><img title="Swegabe" src="http://avatars.hentai-foundry.com/1799.jpg" alt="Swegabe" /></a></div>Because I suck...</div></div>
</div></div><div style="margin-left: 120px;" id="comment_1398198"><div class="box" id="yw13">
<div class="boxheader">
<div class="boxtitle"><a href="/user/ashraam/profile">ashraam</a> <small>on</small> August 30, 2013 10:40:38 AM<span class="commentButtons"></span></div>
</div>
<div class="boxbody">
<div class="commentBody"><div style="margin-left: -70px; position: absolute;"><a href="/user/ashraam/profile"><img title="ashraam" src="http://avatars.hentai-foundry.com/46667.jpg" alt="ashraam" /></a></div>*rimshot*</div></div>
</div></div><div style="margin-left: 0px;" id="comment_1398439"><div class="box" id="yw14">
<div class="boxheader">
<div class="boxtitle"><a href="/user/KingofKings4life/profile">KingofKings4life</a> <small>on</small> August 30, 2013 4:51:30 PM<span class="commentButtons"></span></div>
</div>
<div class="boxbody">
<div class="commentBody"><div style="margin-left: -70px; position: absolute;"><a href="/user/KingofKings4life/profile"><img title="KingofKings4life" src="http://avatars.hentai-foundry.com/34470.jpg" alt="KingofKings4life" /></a></div>So she spent prom night fucking a bunch of equines? That doesn&#039;t seem so odd to me...</div></div>
</div></div><div style="margin-left: 0px;" id="comment_1398192"><div class="box" id="yw15">
<div class="boxheader">
<div class="boxtitle"><a href="/user/ashraam/profile">ashraam</a> <small>on</small> August 30, 2013 10:33:48 AM<span class="commentButtons"></span></div>
</div>
<div class="boxbody">
<div class="commentBody"><div style="margin-left: -70px; position: absolute;"><a href="/user/ashraam/profile"><img title="ashraam" src="http://avatars.hentai-foundry.com/46667.jpg" alt="ashraam" /></a></div>Quote picture of series #24: &quot;<span style="color:#000000">One is going to jam his cock in her slutty mouth, another will stuff her greedy pussy way past her cervix, another will stretch out her ass widening her hips permanently and the last one will just jerk off in one of the mugs and the picture following that will be her drinking from said cum filled mug or multiple mugs.&quot;<br />
<br />
Apparently I&#039;ve been tainted by sparrow&#039;s work soo much I can nearly predict his ideas.<br />
<br />
SPARROW!! WHAT HAVE YOU DONE TO ME!!!???</span></div></div>
</div></div><div style="margin-left: 30px;" id="comment_1398302"><div class="box" id="yw16">
<div class="boxheader">
<div class="boxtitle"><a href="/user/Sparrow/profile">Sparrow</a> <small>on</small> August 30, 2013 2:48:17 PM<span class="commentButtons"></span></div>
</div>
<div class="boxbody">
<div class="commentBody"><div style="margin-left: -70px; position: absolute;"><a href="/user/Sparrow/profile"><img title="Sparrow" src="http://avatars.hentai-foundry.com/48322.png" alt="Sparrow" /></a></div>Made you a more thoughtful person?</div></div>
</div></div><div style="margin-left: 0px;" id="comment_1398157"><div class="box" id="yw17">
<div class="boxheader">
<div class="boxtitle"><a href="/user/Melkhiordarkblade/profile">Melkhiordarkblade</a> <small>on</small> August 30, 2013 9:34:00 AM<span class="commentButtons"></span></div>
</div>
<div class="boxbody">
<div class="commentBody"><div style="margin-left: -70px; position: absolute;"><a href="/user/Melkhiordarkblade/profile"><img title="Melkhiordarkblade" src="http://avatars.hentai-foundry.com/116620-1339980626.jpg" alt="Melkhiordarkblade" /></a></div>If I knew Prom night was like that I would have went instead of staying home playing video games.</div></div>
</div></div><div style="margin-left: 0px;" id="comment_1398129"><div class="box" id="yw18">
<div class="boxheader">
<div class="boxtitle"><a href="/user/Swegabe/profile">Swegabe</a> <small>on</small> August 30, 2013 8:33:19 AM<span class="commentButtons"></span></div>
</div>
<div class="boxbody">
<div class="commentBody"><div style="margin-left: -70px; position: absolute;"><a href="/user/Swegabe/profile"><img title="Swegabe" src="http://avatars.hentai-foundry.com/1799.jpg" alt="Swegabe" /></a></div><strong>Horse Spunk - Takes the sting off!</strong></div></div>
</div></div></div>
<div class="commentsFooter"></div>
</div>
</div><!-- page -->
<div id="footer">
<div class="box" id="yw20">
<div class="boxbody">
Site Copyright © 2006-2013 All Rights Reserved<br />
<a href="http://www.hentai-foundry.com/pictures/user/layzcarter/5/Truely-Heart">Truely</a> created by <a href="/user/layzcarter/profile">Layzcarter</a><br />
Site design by <a href="/user/layzcarter/profile">Layzcarter</a>, <a href="/user/admin/profile">Admin</a>, and <a href="/user/Voe/profile">Voe</a><br />
<br />Art and stories Copyright their artists/writers<br />
Series & Characters Copyright their respective creators/studios<br />
<p>All characters depicted are 18 or older, even if otherwise specified. </p><!-- IPv6-test.com button BEGIN -->
<a href='http://ipv6-test.com/validate.php?url=referer'>
<img src='http://img.hentai-foundry.com/themes/default/images/button-ipv6-80x15.png' alt='ipv6 ready' title='ipv6 ready' border='0' />
</a>
<!-- IPv6-test.com button END --><br /><img title="" src="http://img.hentai-foundry.com/themes/Hentai/images/icra_sw.gif" alt="" /></div>
</div><br />
<center>
</center>
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-620339-3";
_udn = "www.hentai-foundry.com";
urchinTracker();
</script></div><!-- footer -->
<script type="text/javascript" src="/assets/67f68f61/jui/js/jquery-ui.min.js"></script>
<script type="text/javascript">
/*<![CDATA[*/
jQuery(function($) {
$("#license").qtip({'show':{'delay':50},'position':{'corner':{'target':'rightMiddle'}},'hide':{'delay':250,'fixed':true},'style':{'name':'light','width':{'max':1000},'tip':'leftTop'}});
$('body').on('click','#yt0',function(){jQuery.ajax({'success':function(data) { $("#favoritesDialog").html(data).dialog("open"); return false; },'url':'/pictures/fans?pid=226084','cache':false});return false;});
jQuery('#favoritesDialog').dialog({'title':'Fans of \"Swegabe Sketches Gabrielle 027\"','autoOpen':false,'width':'50%','height':$(window).height() / 2,'resizable':false});
$('body').on('click','#delete_comment_1400104',function(){if(confirm('Are you sure you want to delete this comment?')) {jQuery.ajax({'success':function() { location.reload(); },'error':function(jqXHR) { alert(jqXHR.responseText); },'data':{'YII_CSRF_TOKEN':'8a390060fc082247c06755b297dc4754aa15a3e5','id':1400104},'type':'POST','url':'/Comment/DeletepictureComment','cache':false});return false;} else return false;});
$('body').on('click','#delete_comment_1400473',function(){if(confirm('Are you sure you want to delete this comment?')) {jQuery.ajax({'success':function() { location.reload(); },'error':function(jqXHR) { alert(jqXHR.responseText); },'data':{'YII_CSRF_TOKEN':'8a390060fc082247c06755b297dc4754aa15a3e5','id':1400473},'type':'POST','url':'/Comment/DeletepictureComment','cache':false});return false;} else return false;});
$('body').on('click','#delete_comment_1398148',function(){if(confirm('Are you sure you want to delete this comment?')) {jQuery.ajax({'success':function() { location.reload(); },'error':function(jqXHR) { alert(jqXHR.responseText); },'data':{'YII_CSRF_TOKEN':'8a390060fc082247c06755b297dc4754aa15a3e5','id':1398148},'type':'POST','url':'/Comment/DeletepictureComment','cache':false});return false;} else return false;});
$('body').on('click','#delete_comment_1398182',function(){if(confirm('Are you sure you want to delete this comment?')) {jQuery.ajax({'success':function() { location.reload(); },'error':function(jqXHR) { alert(jqXHR.responseText); },'data':{'YII_CSRF_TOKEN':'8a390060fc082247c06755b297dc4754aa15a3e5','id':1398182},'type':'POST','url':'/Comment/DeletepictureComment','cache':false});return false;} else return false;});
$('body').on('click','#delete_comment_1400108',function(){if(confirm('Are you sure you want to delete this comment?')) {jQuery.ajax({'success':function() { location.reload(); },'error':function(jqXHR) { alert(jqXHR.responseText); },'data':{'YII_CSRF_TOKEN':'8a390060fc082247c06755b297dc4754aa15a3e5','id':1400108},'type':'POST','url':'/Comment/DeletepictureComment','cache':false});return false;} else return false;});
$('body').on('click','#delete_comment_1400304',function(){if(confirm('Are you sure you want to delete this comment?')) {jQuery.ajax({'success':function() { location.reload(); },'error':function(jqXHR) { alert(jqXHR.responseText); },'data':{'YII_CSRF_TOKEN':'8a390060fc082247c06755b297dc4754aa15a3e5','id':1400304},'type':'POST','url':'/Comment/DeletepictureComment','cache':false});return false;} else return false;});
$('body').on('click','#delete_comment_1398467',function(){if(confirm('Are you sure you want to delete this comment?')) {jQuery.ajax({'success':function() { location.reload(); },'error':function(jqXHR) { alert(jqXHR.responseText); },'data':{'YII_CSRF_TOKEN':'8a390060fc082247c06755b297dc4754aa15a3e5','id':1398467},'type':'POST','url':'/Comment/DeletepictureComment','cache':false});return false;} else return false;});
$('body').on('click','#delete_comment_1398188',function(){if(confirm('Are you sure you want to delete this comment?')) {jQuery.ajax({'success':function() { location.reload(); },'error':function(jqXHR) { alert(jqXHR.responseText); },'data':{'YII_CSRF_TOKEN':'8a390060fc082247c06755b297dc4754aa15a3e5','id':1398188},'type':'POST','url':'/Comment/DeletepictureComment','cache':false});return false;} else return false;});
$('body').on('click','#delete_comment_1398196',function(){if(confirm('Are you sure you want to delete this comment?')) {jQuery.ajax({'success':function() { location.reload(); },'error':function(jqXHR) { alert(jqXHR.responseText); },'data':{'YII_CSRF_TOKEN':'8a390060fc082247c06755b297dc4754aa15a3e5','id':1398196},'type':'POST','url':'/Comment/DeletepictureComment','cache':false});return false;} else return false;});
$('body').on('click','#delete_comment_1398198',function(){if(confirm('Are you sure you want to delete this comment?')) {jQuery.ajax({'success':function() { location.reload(); },'error':function(jqXHR) { alert(jqXHR.responseText); },'data':{'YII_CSRF_TOKEN':'8a390060fc082247c06755b297dc4754aa15a3e5','id':1398198},'type':'POST','url':'/Comment/DeletepictureComment','cache':false});return false;} else return false;});
$('body').on('click','#delete_comment_1398439',function(){if(confirm('Are you sure you want to delete this comment?')) {jQuery.ajax({'success':function() { location.reload(); },'error':function(jqXHR) { alert(jqXHR.responseText); },'data':{'YII_CSRF_TOKEN':'8a390060fc082247c06755b297dc4754aa15a3e5','id':1398439},'type':'POST','url':'/Comment/DeletepictureComment','cache':false});return false;} else return false;});
$('body').on('click','#delete_comment_1398192',function(){if(confirm('Are you sure you want to delete this comment?')) {jQuery.ajax({'success':function() { location.reload(); },'error':function(jqXHR) { alert(jqXHR.responseText); },'data':{'YII_CSRF_TOKEN':'8a390060fc082247c06755b297dc4754aa15a3e5','id':1398192},'type':'POST','url':'/Comment/DeletepictureComment','cache':false});return false;} else return false;});
$('body').on('click','#delete_comment_1398302',function(){if(confirm('Are you sure you want to delete this comment?')) {jQuery.ajax({'success':function() { location.reload(); },'error':function(jqXHR) { alert(jqXHR.responseText); },'data':{'YII_CSRF_TOKEN':'8a390060fc082247c06755b297dc4754aa15a3e5','id':1398302},'type':'POST','url':'/Comment/DeletepictureComment','cache':false});return false;} else return false;});
$('body').on('click','#delete_comment_1398157',function(){if(confirm('Are you sure you want to delete this comment?')) {jQuery.ajax({'success':function() { location.reload(); },'error':function(jqXHR) { alert(jqXHR.responseText); },'data':{'YII_CSRF_TOKEN':'8a390060fc082247c06755b297dc4754aa15a3e5','id':1398157},'type':'POST','url':'/Comment/DeletepictureComment','cache':false});return false;} else return false;});
$('body').on('click','#delete_comment_1398129',function(){if(confirm('Are you sure you want to delete this comment?')) {jQuery.ajax({'success':function() { location.reload(); },'error':function(jqXHR) { alert(jqXHR.responseText); },'data':{'YII_CSRF_TOKEN':'8a390060fc082247c06755b297dc4754aa15a3e5','id':1398129},'type':'POST','url':'/Comment/DeletepictureComment','cache':false});return false;} else return false;});
$('body').on('click','#yt1',function(){jQuery.ajax({'success':function() {location.reload();},'type':'POST','url':'/site/filters','cache':false,'data':jQuery(this).parents("form").serialize()});return false;});
});
/*]]>*/
</script>
</body>
</html>

View File

@ -31,6 +31,8 @@ class App( wx.App ):
self._tag_parents_manager = HydrusTags.TagParentsManager()
self._tag_siblings_manager = HydrusTags.TagSiblingsManager()
self._cookies = {}
suites = []
suites.append( unittest.TestLoader().loadTestsFromModule( TestClientConstants ) )
@ -53,6 +55,8 @@ class App( wx.App ):
def GetTagParentsManager( self ): return self._tag_parents_manager
def GetTagSiblingsManager( self ): return self._tag_siblings_manager
def GetWebCookies( self, name ): return self._cookies[ name ]
def GetWrite( self, name ):
write = self._writes[ name ]
@ -68,6 +72,8 @@ class App( wx.App ):
def SetRead( self, name, value ): self._reads[ name ] = value
def SetWebCookies( self, name, value ): self._cookies[ name ] = value
def Write( self, name, *args, **kwargs ):
self._writes[ name ].append( ( args, kwargs ) )