Jaffis Documentation - Part 1

Index : What is Jaffis? · First Things First · Doing a Fanfiction.Net Search · Fanfiction.Net Updates · Global Filters · Skeletons · Downloading Fanfics and Updating Them · Fimfiction.Net · An Archive of Our Own

# Doing a Fanfiction.Net Search

One starts a Fanfiction.Net search by picking the option New FFN Search from the File menu. What you should see is similar to the image below.

There are 2 main Tabs at the top, Params and Filters (what we see here), and Results. Results are where we launch the search and see the results, we'll get to that later.

At the top you can enter a name and a description for the search, below that, you can see (and pick) the output directory for where the formatted HTML result files go.

The Params and Filters part is further divided into 3 sections with 3 separate tabs: Main, Filters, and Categories. Main is where you specify what categories to look in (the Search Parameters, as well as the standard filters (Included Filters) that are used to specify which results will be included in the results. The Filters tab is used for specifying custom filters for this search that can then be used in expressions (more on that later). Finally, the Categories tab is used to sort any results that pass the filters from the Main into multiple result categories (maximum 32) which have different HTML result files.

Here you can see the category picker, which is currently on the regular categories tab. The other tab is for crossover categories. As you check the little checkboxes next to each name, the category is displayed in the listbox to the right.

You can also pick entire sections, which brings us the two text boxes below. The first one, Category must match gives an additional expression matched against the category name, if the match failed, the category is not searched. For example, lets say you want to search the entire Books section, except for Harry Potter, since there are too may fics in that category and it would double the amount of time spent searching. The simplest way to do this is to check book and then enter in `~(harry potter)` in the Category must match text box. The second one, Include if Category matches tells Jaffis to search additional Categories (aside from the ones picked out by the check boxes), if the category name matches the expression. For example, you can enter in `startrek | star trek` to include in the search any category whose name contains either 'startrek' or 'star trek'.

### Included Filters and Expressions

The other part of Main is the included filters. The image to the right shows what it looks like. While some of the items there are self explanatory, 4 of the embedded filters use expressions, and therefore it is important to discuss those first.

A basic expression might be something like `stargate`. If you enter that as the main filter, stories with the (case-insensitive) substring 'stargate' anywhere in the summary will pass the main filter. This includes phrases like 'StargateBabylon5 crossover' or 'written with ILuvStargate'. What if you also want to include stories that have 'Stargate' in the title? The expression to use would be `stargate | t;stargate` (or `t;stargate | stargate`, order does not matter). The `|` is OR, it specifies alternates. The `t;` specifies that we look for the following substring in the title.

Let us say were looking the old crossover categories (in the misc section), and hoping to find stories with Daniel from Stargate SG-1. Do do this, you might, after picking the misc section, enter `daniel & ( stargate | t;stargate )` in the main filter. The `&` is an AND, so the expression says the summary of any results must contain 'daniel' in the summary and 'stargate' in either the title or summary.

If this is starting to look a Mathematical expression, that is because it is: it's known as Boolean Algebra. The 'numbers' are the strings (with a few qualifiers), or (as we'll see later) filter references, which, when applied to a fanfic entry gotten from the Fanfiction.Net indexes, are either `true` or `false`. The operators: `| OR`, `& XOR`, `~ NOT` (this one is unary, it flips the result of the following expression), and `% EXCLUSIVE OR` (this last one does not seem to be very useful, it results in true if either side is true, but not both). So the expression `harry potter & ~ draco` could be used if you are looking for Harry Potter crossovers in the misc section, but you are not very interested in stories that have alot of focus on Draco Malfoy.

As for the qualifiers, you've already seen `t;` for looking for the title. Others are `m;` to say that instead of a substring search, you want a word search — for example `m;ent` is true only if the summary of the fanfic contains the word 'ent', whereas `ent` will be true if any word in the summary contains 'ent', like 'entertainment'. Next, `q;` is a word search in the title. Finally, you can tell the search to be case sensitive by having 'c' in the qualifier — for example `c;ENT` will match the substring 'ENT' but not 'ent' or 'Ent', sometimes useful if you are looking for a Star Trek : Enterprise story.

Note that as described here, expressions are used in expression filters, the main filter, and to sort categories. The language filter, the character filter, the author filter, and some other filters (like the category filters) are a bit simpler in that there are no title searches, and no references to external filters. While a standard expression looks by default in the summary of the fanfic, these special filters look in other strings. For example, the language filter allows you to do something like `english | french` to exclude fics in languages other than those two.

### Filters

The Filters will seem pretty empty at first for a new search. Here, you can specify Filters that you can reference from the main search, or from the result categories on the next tab. These are quite useful for more complicated searches, and allow you to do things that mere word searches and the other embedded filters cannot do.

Clicking on the New button will bring up the dialog you see on the right, where you can enter a name and then pick the Filter Type from the drop down list. You can see the types available there:

- UrlFilter : Currently only useful for Google Searches, it allows you to selectively filter results based on the web location: excluding all sites that are known to contain mostly just aggregate spam or links to other sites, for example.
- ExprFilter : Basically what the main search filter holds. If you feel that the main filter is getting to cluttered or complicated, you can separate a part of it here and then reference it from the main filter.
- AuthorFilter : Same as the main author filter... a simple Boolean expression that works on the author name. Note that you cannot reference it from the main author filter. Can be used to selectively include or exclude certain stories based on both the author and other factors.
- CharacterFilter : Similar to the author filter, this filter holds an expression that is applied to the list of characters rather than the summary. Note that for Fanfiction.Net, the story entries cannot really contain a large list of characters, so if you are looking for stories about certain characters, you should use a character filter embedded in the main filter, alternating with the usual search strings.
- CategoryFilter : An expression that is applied to the category name. For an example of use, you can, when searching through multiple categories, use Category filters to make certain search terms invalid when in certain categories.
- WordCountFilter : Self explanatory. very useful if you want to break up a search into results based on size.
- FFNTagFilter : Filters Fanfiction.Net results based on Genre (like the one in main filters).
- PairFilterSingle : The first of 3 filters for pairings. Some people, for example, might be looking for a Kirk/Spock story — or is it Spock/Kirk? SpockXKirk? Kirk+Spock? These pairing filters handle the task of looking for the various ways of expression combinations of names, as well as handing multiple different names/nicknames for the same people, and you can also enter in custom pairing keywords to look for. The 'Single' version is intended to look for a specific pairing between 2 characters.
- PairFilterList : A pairing filter that looks for combos between 1 character and a list of other characters.
- PairFilterMultiple : Enter in a list of characters, and this filter will look for every pairing combination possible from the list. Very useful for filtering slash or femslash.
- CompletedFilter : Very simple, is the fic completed or not?
- LanguageFilter : Just like the included one. I'm not certain if there is any real utility allowing one to, for example, exclude french stories only if certain other conditions are met, but this filter is there for anyone who can find a use for it.
- FFNRatingFilter : Filters depending on the rating. Only for Fanfiction.Net.
- UpdatedDateFilter : Filters depending on the date the fic was last updated, or published if the fic has never been updated.
- PublishedDateFilter : Filters depending on the date the fic was first published.

Here is an example of filters being put to use. Let's say you are looking in the My Little Pony category. The new Friendship is Magic version has become one of the latest hot fandoms, but you are actually looking for stories that reference older versions of My Little Pony. How do you do that? You can enter in the main filter something like `megan | G1 | G3 | firefly | wind whister | mlp tales | dream valley`. However, it then occurs to you that Friendship is Magic is pretty new and the Fanfiction.Net My Little Pony category is much older than that. So you define a PublishedDateFilter with the name OldMLP that passes any fic published before October 2010. You then enter in `megan | G1 | G3 | firefly | wind whister | mlp tales | dream valley | @OldMLP@` in the main filter. That last item is a reference to the filter you just defined, so now your search will get any fics that either have the telltale keywords, or are old enough to predate FIM.

### Result Categories

Categorizing the results is very useful for massive trawls. Even some single categories, like Harry Potter, can take Hours to go through as Jaffis downloads thousands of pages to process and filter, one after the other. Rather tedious, but even more tedious would be doing it over and over when looking for different things. Result Categories help reduce that.

To the right, you see the Categories tab of a search that looks for certain crossovers which have not been placed in the special crossover categories. There no real special first level filters: The search goes through entire sections, and then uses the expressions for each of the 12 result categories to mark whether the story belongs to that particular result category. Any fic with no category gets discarded.

Here, we are looking at the Andromeda result category, we're looking for crossovers with the scifi show Andromeda. You can see at the end the expression `&~ @Andromeda@`, `@Andromeda@` being a local CategoryFilter that identifies if the category the fic is in is the Andromeda category. This expression makes sure that any fics in that category are not included, since we are looking for crossovers, after all. Also notable is the reference to the Expression Filter `@FilterGroup;CommonCrossover@`, that filter is true if the summary contains crossover words like 'crossover' or 'x-over'. This a Global filter that is not defined within a search but at the program level, and thus can be used from many searches. So, one can translate the Sorting Expression into "if we are not in the Andromeda category, include if the summary has 'andromeda' and either characters names or crossover keywords, or include if the summary contains 'andromeda ascendant' or 'tarnvedra'."

### The Results Tab

Once the search has been finished (and hopefully saved to a file), you can flip over to the results tab and click the Start button. The search will start, and you will likely see something similar to the image at right. Right-clicking on the fic results brings up a pop-up menu you can use to download or launch a browser with the fic.

Most of the buttons and labels are self-explanatory, but the Stop after Category buttons needs an explanation. As mentioned earlier in these documents, it is possible to save completed results to a special file. This file can then be loaded back up, and updated to take into account new and updated fics. However, even if you have to interrupt a search because it is taking too long, you can use the Stop after Category button to stop the search in a way that allows you to save the incomplete results. When updating these incomplete results, not only will the existing results and categories be updated, but the search will pick up from where it left off.

With a complete search, another thing you can do besides saving results for updating, is writing the HTML result files, which can be done from the File menu.

# Fanfiction.Net Updates

As mentioned before, one can save the results of a Fanfiction.Net search to a jssr file. When one decided to open such a saved file, it could take a while for the results to load up (this is unfortunately rather jerky and slow), but when done, what you should see will be similar to the image at left.

The Results is technically all you really need to see. You can launch the update from there. The other 3 tabs are (or are supposed to be) read only, and are there just so one can review what the original search was.

Index : What is Jaffis? · First Things First · Doing a Fanfiction.Net Search · Fanfiction.Net Updates · Global Filters · Skeletons · Downloading Fanfics and Updating Them · Fimfiction.Net · An Archive of Our Own