About

Szurubooru is an image board engine inspired by services such as Danbooru, Gelbooru and Moebooru. Its name has its roots in Polish language and has onomatopeic meaning of scraping or scrubbing. It is pronounced as shoorubooru.

Registration

By default, szurubooru is shipped as an invite-only app. In other words, in order to use the service, you need to register and have someone inside accept your registration. The e-mail you enter during account creation is only used to retrieve your Gravatar and activate your account. Only you can see it (well, except the database staff… we won’t spam your mailbox anyway).

Oh, and you can delete your account at any time. Posts you uploaded will stay, unless some angry admin removes them.

Keyboard shortcuts

You can use your keyboard to navigate around the site. There are a few shortcuts:

Hotkey Description
[Q] Focus search field, if available
[A] and [D] Go to newer/older page or post
[F] Cycle post fit mode
[E] Edit post
[P] Focus first post in post list

Additionally, each item in top navigation can be accessed using feature called “access keys”. Pressing underlined letter while holding Shfit or Alt+Shift (depending on your browser) will go to the desired page (most browsers) or focus the link (IE).

Search syntax

<% var table = [ {search: 'Haruhi', description: 'containing tag “Haruhi”'}, {search: '-Kyon', description: 'not containing tag “Kyon”'}, {search: 'uploader:David', description: 'uploaded by user David'}, {search: 'comment:David', description: 'commented by David'}, {search: 'fav:David', description: 'favorited by David'}, {search: 'fav_count:4', description: 'favorited by exactly four users'}, {search: 'fav_count:4,5', description: 'favorited by four or five users'}, {search: 'fav_count:4..', description: 'favorited by at least four users'}, {search: 'fav_count:..4', description: 'favorited by at most four users'}, {search: 'fav_count:4..6', description: 'favorited by at least four, but no more than six users'}, {search: 'comment_count:3', description: 'having exactly three comments'}, {search: 'score:4', description: 'having score of 4'}, {search: 'tag_count:7', description: 'tagged with exactly seven tags'}, {search: 'note_count:1..', description: 'having at least one post note'}, {search: 'feature_count:1..', description: 'having been featured at least once'}, {search: 'date:today', description: 'posted today'}, {search: 'date:yesterday', description: 'posted yesterday'}, {search: 'date:2000', description: 'posted in year 2000'}, {search: 'date:2000-01', description: 'posted in January, 2000'}, {search: 'date:2000-01-01', description: 'posted on January 1st, 2000'}, {search: 'id:1', description: 'having specific post ID'}, {search: 'name:hash', description: 'having specific post name (hash in full URLs)'}, {search: 'file_size:100..', description: 'having at least 100 bytes'}, {search: 'image_width:100..', description: 'being at least 100 pixels wide'}, {search: 'image_height:100..', description: 'being at least 100 pixels tall'}, {search: 'image_area:10000..', description: 'having at least 10000 pixels'}, {search: 'type:image', description: 'only image posts'}, {search: 'type:flash', description: 'only Flash posts'}, {search: 'type:youtube', description: 'only Youtube posts'}, {search: 'type:video', description: 'only video posts'}, {search: 'special:liked', description: 'posts liked by currently logged in user'}, {search: 'special:disliked', description: 'posts disliked by currently logged in user'}, {search: 'special:fav', description: 'posts added to favorites by currently logged in user'}, {search: 'special:tumbleweed', description: 'posts with score of 0, without comments and without favorites'}, ]; _.each(table, function(row) { %> <% }) %>
Command Description
<%= row.search %> <%= row.description %>

Most of the commands support ranged and composites values, e.g. id:number operator supports respectively id:5..7 and id:5,10,15. You can combine tags and negate any of them for interesting results. sea -fav_count:8.. type:swf uploader:Pirate will show you flash files tagged as sea, that were liked by seven people at most, uploaded by user Pirate.

All of the above can be sorted using additional tag in form of order:keyword:

<% var table = [ {search: 'order:random', description: 'as random as it can get'}, {search: 'order:id', description: 'highest to lowest post ID (default browse view)'}, {search: 'order:creation_date', description: 'newest to oldest (pretty much same as above)'}, {search: '-order:creation_date', description: 'oldest to newest'}, {search: 'order:creation_date,asc', description: 'oldest to newest (ascending order, default = descending)'}, {search: 'order:edit_date', description: 'like creation_date, only looks at last edit time'}, {search: 'order:score', description: 'highest scored'}, {search: 'order:file_size', description: 'largest files first'}, {search: 'order:image_width', description: 'widest images first'}, {search: 'order:image_height', description: 'tallest images first'}, {search: 'order:image_area', description: 'largest images first'}, {search: 'order:tag_count', description: 'with most tags'}, {search: 'order:fav_count', description: 'loved by most'}, {search: 'order:comment_count', description: 'most commented first'}, {search: 'order:fav_date', description: 'recently added to favorites'}, {search: 'order:comment_date', description: 'recently commented'}, {search: 'order:feature_date', description: 'recently featured'}, {search: 'order:feature_count', description: 'most often featured'}, ]; _.each(table, function(row) { %> <% }) %>
Command Description
<%= row.search %> <%= row.description %>

As shown with -order:creation_date, any of them can be reversed in the same way as negating other tags: by placing a dash before the tag.

Comments

Comments support Markdown syntax, extended by some handy tags:

@426 links to post number 426
#Dragon_Ball links to tag “Dragon_Ball”
+Pirate links to user “Pirate”
~~new~~ adds strike-through
[spoiler]Lelouch survives[/spoiler] marks text as spoiler and hides it
[sjis](´・ω・`)[/sjis] adds SJIS art

Terms of service

By accessing <%= title %> (“Site”) you agree to the following Terms of Service. If you do not agree to these terms, then please do not access the Site.

Prohibited content

Privacy policy

The Site will not disclose the IP address or email address of any user except to the staff.

Posts, comments, favorites, ratings and other actions linked to your account will be stored in the Site’s database. The “Upload anonymously” option allows you to post content without linking it to your account – meaning your nickname will not be stored in the database nor shown in the “Uploader” field.

Cookies are used to store your session data in order to keep you logged in and personalize your web experience.