2016-12-18 00:11:50 +01:00
\documentclass [hidelinks,a4paper,12pt] { article}
\usepackage [utf8] { inputenc}
\usepackage [english] { babel}
\usepackage { float}
\usepackage [hmargin=2cm,vmargin=2cm] { geometry}
\usepackage { graphicx}
\usepackage { hyperref}
\usepackage { listings}
\usepackage { lstautogobble}
\begin { document}
\title { Fimfarchive}
2023-05-27 14:08:31 +02:00
\date { 20230601}
2016-12-18 00:11:50 +01:00
\maketitle
\newpage
\tableofcontents
\newpage
\section { Introduction} \label { sec:introduction}
Fimfarchive is a project which aims to release all stories available on Fimfiction, together with their metadata, as a single archive. The archive is organized by author and could be used for backup, offline reading, or data mining.
A new version will be released each season via BitTorrent, approximately once every three months. When suitable, an xdelta3 patch will also be provided for users who do not wish to redownload unchanged stories.
Note that the archive contains a large number of files. Unzipping it to your file system may not be necessary if the archive is to be used together with some application. If you are a developer, reading directly from the ZIP-file may be preferable.
\section { Index} \label { sec:index}
2017-12-02 18:50:58 +01:00
The metadata of each story can be found in \path { index.json} . The file contains one story entry per line ordered by story ID. It was constructed using data from the Fimfiction API, which is incomplete. Additionally, each entry includes the attribute \path { archive.path} which shows where in the archive the story is located. Below is an example entry for the story \emph { Sunny Skies All Day Long} . Note that the structure of the metadata may change in the future.
2016-12-18 00:11:50 +01:00
\begin { lstlisting} [breaklines, basicstyle=\ttfamily \small , columns=flexible]
{
2017-12-02 18:50:58 +01:00
"archive": {
"date_ checked": "2017-11-03T12:03:47.175215+00:00",
"date_ created": null,
"date_ fetched": "2017-11-03T12:03:47.175215+00:00",
"date_ updated": "2017-11-03T12:03:47.175215+00:00",
"path":"epub/p/phantomfox-26190/sunny_ skies_ all_ day_ long-20685.epub"
} ,
"author": {
"avatar": {
"128": "https://cdn-img.fimfiction.net/user/p8d8-1431820610-26190-128",
"16": "https://cdn-img.fimfiction.net/user/p8d8-1431820610-26190-16",
"192": "https://cdn-img.fimfiction.net/user/p8d8-1431820610-26190-192",
"256": "https://cdn-img.fimfiction.net/user/p8d8-1431820610-26190-256",
"32": "https://cdn-img.fimfiction.net/user/p8d8-1431820610-26190-32",
"384": "https://cdn-img.fimfiction.net/user/p8d8-1431820610-26190-384",
"48": "https://cdn-img.fimfiction.net/user/p8d8-1431820610-26190-48",
"512": "https://cdn-img.fimfiction.net/user/p8d8-1431820610-26190-512",
"64": "https://cdn-img.fimfiction.net/user/p8d8-1431820610-26190-64",
"96": "https://cdn-img.fimfiction.net/user/p8d8-1431820610-26190-96"
2016-12-18 00:11:50 +01:00
} ,
2017-12-02 18:50:58 +01:00
"bio_ html": "",
"date_ joined": "2012-04-13T19:09:19+00:00",
"id": 26190,
"name": "PhantomFox",
"num_ blog_ posts": 1,
"num_ followers": 699,
"num_ stories": 3,
"url": "https://www.fimfiction.net/user/26190/PhantomFox"
} ,
"chapters": [
{
"chapter_ number": 1,
"date_ modified": "2012-09-26T17:27:44+00:00",
"date_ published": "2012-09-26T17:27:44+00:00",
"id": 63408,
"num_ views": 86994,
"num_ words": 8536,
"published": true,
"title": "Chapter 1",
"url": "https://www.fimfiction.net/story/20685/1/sunny-skies-all-day-long/chapter-1"
}
],
"color": {
"hex": "dfbeae",
"rgb": [
223,
190,
174
]
} ,
"completion_ status": "complete",
"content_ rating": "everyone",
"cover_ image": {
"full": "https://cdn-img.fimfiction.net/story/5c7h-1432428695-20685-full",
"large": "https://cdn-img.fimfiction.net/story/5c7h-1432428695-20685-large",
"medium": "https://cdn-img.fimfiction.net/story/5c7h-1432428695-20685-medium",
"thumbnail": "https://cdn-img.fimfiction.net/story/5c7h-1432428695-20685-tiny"
} ,
"date_ modified": null,
"date_ published": "2012-04-14T14:42:21+00:00",
"date_ updated": "2012-04-14T14:42:21+00:00",
"description_ html": "<p>Princess Celestia tires of constantly being surrounded by decorum, deference, and formality, and decides to take a day off from being Princess. But visiting Ponyville incognito is harder than she expects. Will she be able to fit in and make friends without blowing her cover?</p>",
"id": 20685,
"num_ chapters": 1,
"num_ comments": 773,
"num_ dislikes": 140,
"num_ likes": 8796,
"num_ views": 86994,
"num_ words": 8536,
"prequel": null,
"published": true,
"rating": 98,
"short_ description": "Celestia's Day Off",
"status": "visible",
"submitted": true,
"tags": [
{
"id": 73,
"name": "Main 6",
"old_ id": "c:74",
"type": "character",
"url": "https://www.fimfiction.net/tag/main-6"
2016-12-18 00:11:50 +01:00
} ,
2017-12-02 18:50:58 +01:00
{
"id": 16,
"name": "Princess Celestia",
"old_ id": "c:17",
"type": "character",
"url": "https://www.fimfiction.net/tag/princess-celestia"
} ,
{
"id": 237,
"name": "Slice of Life",
"old_ id": "g:slice_ of_ life",
"type": "genre",
"url": "https://www.fimfiction.net/tag/slice-of-life"
}
],
"title": "Sunny Skies All Day Long",
"total_ num_ views": 86994,
"url": "https://www.fimfiction.net/story/20685/sunny-skies-all-day-long"
2016-12-18 00:11:50 +01:00
}
\end { lstlisting}
\section { Changelog} \label { sec:changelog}
\begin { center}
\begin { tabular} { |r|r|r|r|r|r|} \hline
\textbf { Version} & \textbf { Stories} & \textbf { Added} & \textbf { Updated} & \textbf { Removed} \\ \hline
2023-05-27 14:08:31 +02:00
20230601 & $ 210585 $ & $ 1512 $ & $ 3440 $ & $ 0 $ \\ \hline
2023-02-25 15:00:22 +01:00
20230301 & $ 209073 $ & $ 1653 $ & $ 3360 $ & $ 2 $ \\ \hline
2022-11-23 15:21:15 +01:00
20221201 & $ 207422 $ & $ 1608 $ & $ 3488 $ & $ 0 $ \\ \hline
2022-08-27 11:43:07 +02:00
20220901 & $ 205814 $ & $ 1551 $ & $ 3591 $ & $ 0 $ \\ \hline
2022-05-28 12:32:59 +02:00
20220601 & $ 204263 $ & $ 1712 $ & $ 3652 $ & $ 0 $ \\ \hline
2022-02-26 16:47:58 +01:00
20220301 & $ 202551 $ & $ 1815 $ & $ 3705 $ & $ 0 $ \\ \hline
2021-11-28 10:08:25 +01:00
20211201 & $ 200736 $ & $ 2060 $ & $ 4088 $ & $ 6 $ \\ \hline
2021-08-28 18:39:59 +02:00
20210901 & $ 198682 $ & $ 1962 $ & $ 4104 $ & $ 0 $ \\ \hline
2021-05-29 18:03:46 +02:00
20210601 & $ 196720 $ & $ 2240 $ & $ 4502 $ & $ 95 $ \\ \hline
2021-02-24 15:10:30 +01:00
20210301 & $ 194575 $ & $ 2229 $ & $ 4424 $ & $ 0 $ \\ \hline
2020-11-28 17:35:34 +01:00
20201201 & $ 192346 $ & $ 2277 $ & $ 4573 $ & $ 2 $ \\ \hline
2020-08-30 12:05:23 +02:00
20200901 & $ 190071 $ & $ 2519 $ & $ 4762 $ & $ 0 $ \\ \hline
2020-05-30 17:54:54 +02:00
20200601 & $ 187552 $ & $ 2653 $ & $ 4999 $ & $ 0 $ \\ \hline
2020-02-28 16:35:01 +01:00
20200301 & $ 184899 $ & $ 2429 $ & $ 4626 $ & $ 0 $ \\ \hline
2019-11-30 12:59:46 +01:00
20191201 & $ 182470 $ & $ 2805 $ & $ 4824 $ & $ 0 $ \\ \hline
2019-08-30 21:05:40 +02:00
20190901 & $ 179665 $ & $ 2484 $ & $ 5016 $ & $ 9 $ \\ \hline
2019-05-31 16:32:59 +02:00
20190601 & $ 177190 $ & $ 2736 $ & $ 5058 $ & $ 45 $ \\ \hline
2019-02-27 13:14:38 +01:00
20190301 & $ 174499 $ & $ 2563 $ & $ 5111 $ & $ 0 $ \\ \hline
2018-12-01 14:36:21 +01:00
20181201 & $ 171936 $ & $ 2858 $ & $ 5359 $ & $ 0 $ \\ \hline
2018-08-29 16:41:23 +02:00
20180901 & $ 169078 $ & $ 2667 $ & $ 5603 $ & $ 0 $ \\ \hline
2018-05-30 21:51:55 +02:00
20180601 & $ 166411 $ & $ 2980 $ & $ 6061 $ & $ 0 $ \\ \hline
2018-03-07 18:03:18 +01:00
20180307 & $ 163431 $ & $ 3322 $ & $ 7872 $ & $ 0 $ \\ \hline
2017-12-03 15:32:50 +01:00
20171203 & $ 160109 $ & $ 3261 $ & $ 110426 $ & $ 0 $ \\ \hline
2017-09-06 22:21:29 +02:00
20170907 & $ 156848 $ & $ 3301 $ & $ 5202 $ & $ 0 $ \\ \hline
2017-06-01 18:17:58 +02:00
20170601 & $ 153547 $ & $ 3644 $ & $ 5265 $ & $ 0 $ \\ \hline
2017-03-01 19:22:41 +01:00
20170301 & $ 149903 $ & $ 4608 $ & $ 5632 $ & $ 0 $ \\ \hline
2016-12-18 00:11:50 +01:00
20161201 & $ 145295 $ & $ 4582 $ & $ 5685 $ & $ 0 $ \\ \hline
20160901 & $ 140713 $ & $ 5278 $ & $ 6106 $ & $ 0 $ \\ \hline
20160525 & $ 135435 $ & $ 5059 $ & $ 6238 $ & $ 0 $ \\ \hline
20160225 & $ 130376 $ & $ 6045 $ & $ 6569 $ & $ 0 $ \\ \hline
20151125 & $ 124331 $ & $ 5399 $ & $ 104124 $ & $ 0 $ \\ \hline
20150901 & $ 118932 $ & $ 6752 $ & $ 6752 $ & $ 0 $ \\ \hline
20150601 & $ 112180 $ & $ 6969 $ & $ 6946 $ & $ 0 $ \\ \hline
20150307 & $ 105211 $ & $ 6664 $ & $ 6756 $ & $ 0 $ \\ \hline
20141201 & $ 98547 $ & $ 11028 $ & $ 8296 $ & $ 0 $ \\ \hline
20140719 & $ 87519 $ & $ 8286 $ & $ 7395 $ & $ 3 $ \\ \hline
20140418 & $ 79236 $ & $ 8818 $ & $ 65208 $ & $ 2 $ \\ \hline
20140120 & $ 70420 $ & $ 9821 $ & $ 7317 $ & $ 14 $ \\ \hline
20131015 & $ 60613 $ & $ 13446 $ & $ 7694 $ & $ 0 $ \\ \hline
20130616 & $ 47167 $ & $ 47167 $ & $ 0 $ & $ 0 $ \\ \hline
\end { tabular}
\end { center}
2023-05-27 14:08:31 +02:00
\subsection { 20230601} \label { sec:changelog_ 20230601}
\begin { itemize}
\item Updated archive contents.
\end { itemize}
2023-02-25 15:00:22 +01:00
\subsection { 20230301} \label { sec:changelog_ 20230301}
\begin { itemize}
\item Updated archive contents.
\end { itemize}
2022-11-23 15:21:15 +01:00
\subsection { 20221201} \label { sec:changelog_ 20221201}
\begin { itemize}
\item Updated archive contents.
\end { itemize}
2022-08-27 11:43:07 +02:00
\subsection { 20220901} \label { sec:changelog_ 20220901}
\begin { itemize}
\item Updated archive contents.
\end { itemize}
2022-05-28 12:32:59 +02:00
\subsection { 20220601} \label { sec:changelog_ 20220601}
\begin { itemize}
\item Updated archive contents.
\end { itemize}
2022-02-26 16:47:58 +01:00
\subsection { 20220301} \label { sec:changelog_ 20220301}
\begin { itemize}
\item Updated archive contents.
\end { itemize}
2021-11-28 10:08:25 +01:00
\subsection { 20211201} \label { sec:changelog_ 20211201}
\begin { itemize}
\item Updated archive contents.
\end { itemize}
2021-08-28 18:39:59 +02:00
\subsection { 20210901} \label { sec:changelog_ 20210901}
\begin { itemize}
\item Updated archive contents.
\end { itemize}
2021-05-29 18:03:46 +02:00
\subsection { 20210601} \label { sec:changelog_ 20210601}
\begin { itemize}
\item Updated archive contents.
\end { itemize}
2021-02-24 15:10:30 +01:00
\subsection { 20210301} \label { sec:changelog_ 20210301}
\begin { itemize}
\item Updated archive contents.
\end { itemize}
2020-11-28 17:35:34 +01:00
\subsection { 20201201} \label { sec:changelog_ 20201201}
\begin { itemize}
\item Updated archive contents.
\end { itemize}
2020-08-30 12:05:23 +02:00
\subsection { 20200901} \label { sec:changelog_ 20200901}
\begin { itemize}
\item Updated archive contents.
\end { itemize}
2020-05-30 17:54:54 +02:00
\subsection { 20200601} \label { sec:changelog_ 20200601}
\begin { itemize}
\item Updated archive contents.
\end { itemize}
2020-02-28 16:35:01 +01:00
\subsection { 20200301} \label { sec:changelog_ 20200301}
\begin { itemize}
\item Updated archive contents.
\end { itemize}
2019-11-30 12:59:46 +01:00
\subsection { 20191201} \label { sec:changelog_ 20191201}
\begin { itemize}
\item Updated archive contents.
\end { itemize}
2019-08-30 21:05:40 +02:00
\subsection { 20190901} \label { sec:changelog_ 20190901}
\begin { itemize}
\item Updated archive contents.
2019-08-30 23:24:27 +02:00
\item Fixed author ID sometimes being a string.
2019-08-30 21:05:40 +02:00
\end { itemize}
2019-05-31 16:32:59 +02:00
\subsection { 20190601} \label { sec:changelog_ 20190601}
\begin { itemize}
\item Updated archive contents.
2019-05-31 19:55:16 +02:00
\item Rewrote the builder.
2019-05-31 16:32:59 +02:00
\end { itemize}
2019-02-27 13:14:38 +01:00
\subsection { 20190301} \label { sec:changelog_ 20190301}
\begin { itemize}
\item Updated archive contents.
\item Fixed inconsistency in completion status.
\\ (Reported by Midnight Sapphire)
\end { itemize}
2018-12-01 14:36:21 +01:00
\subsection { 20181201} \label { sec:changelog_ 20181201}
\begin { itemize}
\item Updated archive contents.
\end { itemize}
2018-08-29 16:41:23 +02:00
\subsection { 20180901} \label { sec:changelog_ 20180901}
\begin { itemize}
\item Updated archive contents.
\end { itemize}
2018-05-30 21:51:55 +02:00
\subsection { 20180601} \label { sec:changelog_ 20180601}
\begin { itemize}
\item Updated archive contents.
\end { itemize}
2018-03-07 18:03:18 +01:00
\subsection { 20180307} \label { sec:changelog_ 20180307}
\begin { itemize}
\item Updated archive contents.
\end { itemize}
2017-12-03 15:32:50 +01:00
\subsection { 20171203} \label { sec:changelog_ 20171203}
\begin { itemize}
\item Updated archive contents.
\item Redownloaded all available stories.
\item Changed to Fimfiction APIv2.
\item Added archive metadata.
\item Added author's notes.
\end { itemize}
2016-12-18 00:11:50 +01:00
2017-09-06 22:21:29 +02:00
\subsection { 20170907} \label { sec:changelog_ 20170907}
\begin { itemize}
\item Updated archive contents.
\end { itemize}
2017-06-01 18:17:58 +02:00
\subsection { 20170601} \label { sec:changelog_ 20170601}
\begin { itemize}
\item Updated archive contents.
\end { itemize}
2017-03-01 19:22:41 +01:00
\subsection { 20170301} \label { sec:changelog_ 20170301}
\begin { itemize}
\item Updated archive contents.
\item Added wordless stories.
\item Rewrote the updater.
\end { itemize}
2016-12-18 00:11:50 +01:00
\subsection { 20161201} \label { sec:changelog_ 20161201}
\begin { itemize}
\item Updated archive contents.
\end { itemize}
\subsection { 20160901} \label { sec:changelog_ 20160901}
\begin { itemize}
\item Updated archive contents.
\end { itemize}
\subsection { 20160525} \label { sec:changelog_ 20160525}
\begin { itemize}
\item Updated archive contents.
\end { itemize}
\subsection { 20160225} \label { sec:changelog_ 20160225}
\begin { itemize}
\item Updated archive contents.
\end { itemize}
\subsection { 20151125} \label { sec:changelog_ 20151125}
\begin { itemize}
\item Updated archive contents.
\item Redownloaded all available stories.
\item Processed all stories with Calibre.
\item Removed readme section about formatting.
\end { itemize}
\subsection { 20150901} \label { sec:changelog_ 20150901}
\begin { itemize}
\item Updated archive contents.
\end { itemize}
\subsection { 20150601} \label { sec:changelog_ 20150601}
\begin { itemize}
\item Updated archive contents.
\end { itemize}
\subsection { 20150307} \label { sec:changelog_ 20150307}
\begin { itemize}
\item Updated archive contents.
\item Added readme section about formatting.
\end { itemize}
\subsection { 20141201} \label { sec:changelog_ 20141201}
\begin { itemize}
\item Updated archive contents.
\item Changed EPUB content source to Fimfiction's HTML exporter.
\end { itemize}
\subsection { 20140719} \label { sec:changelog_ 20140719}
\begin { itemize}
\item Updated archive contents.
\end { itemize}
\subsection { 20140418} \label { sec:changelog_ 20140418}
\begin { itemize}
\item Updated archive contents.
\item Redownloaded all available stories.
\item Fixed mime type issues with repackaged stories.
\end { itemize}
\subsection { 20140120} \label { sec:changelog_ 20140120}
\begin { itemize}
\item Updated archive contents.
\item Updated stories with new style from Fimfiction.
\item Removed now empty stories.
\end { itemize}
\subsection { 20131015} \label { sec:changelog_ 20131015}
\begin { itemize}
\item Updated archive contents.
\item Added anthro category.
\end { itemize}
\subsection { 20130616} \label { sec:changelog_ 20130616}
\begin { itemize}
\item Initial release.
\end { itemize}
\section { Links} \label { sec:links}
\begin { itemize}
\item Fimfarchive: \\ \url { http://www.fimfarchive.net/}
\item Fimfarchive on Fimfiction: \\ \url { http://www.fimfiction.net/user/Fimfarchive}
\item Fimfarchive on Reddit: \\ \url { http://www.reddit.com/user/Fimfarchive}
\item Fimfiction: \\ \url { http://www.fimfiction.net/}
\item xdelta: \\ \url { http://xdelta.org/}
\end { itemize}
\section { Contact} \label { sec:contact}
To contact Fimfarchive, send an e-mail to \href { mailto:fimfarchive@gmail.com} { fimfarchive@gmail.com} .
\end { document}