\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} \date{20201201} \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} 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. \begin{lstlisting}[breaklines, basicstyle=\ttfamily\small, columns=flexible] { "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" }, "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": "

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?

", "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" }, { "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" } \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 20201201 & $192346$ & $2277$ & $4573$ & $2$ \\ \hline 20200901 & $190071$ & $2519$ & $4762$ & $0$ \\ \hline 20200601 & $187552$ & $2653$ & $4999$ & $0$ \\ \hline 20200301 & $184899$ & $2429$ & $4626$ & $0$ \\ \hline 20191201 & $182470$ & $2805$ & $4824$ & $0$ \\ \hline 20190901 & $179665$ & $2484$ & $5016$ & $9$ \\ \hline 20190601 & $177190$ & $2736$ & $5058$ & $45$ \\ \hline 20190301 & $174499$ & $2563$ & $5111$ & $0$ \\ \hline 20181201 & $171936$ & $2858$ & $5359$ & $0$ \\ \hline 20180901 & $169078$ & $2667$ & $5603$ & $0$ \\ \hline 20180601 & $166411$ & $2980$ & $6061$ & $0$ \\ \hline 20180307 & $163431$ & $3322$ & $7872$ & $0$ \\ \hline 20171203 & $160109$ & $3261$ & $110426$ & $0$ \\ \hline 20170907 & $156848$ & $3301$ & $5202$ & $0$ \\ \hline 20170601 & $153547$ & $3644$ & $5265$ & $0$ \\ \hline 20170301 & $149903$ & $4608$ & $5632$ & $0$ \\ \hline 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} \subsection{20201201} \label{sec:changelog_20201201} \begin{itemize} \item Updated archive contents. \end{itemize} \subsection{20200901} \label{sec:changelog_20200901} \begin{itemize} \item Updated archive contents. \end{itemize} \subsection{20200601} \label{sec:changelog_20200601} \begin{itemize} \item Updated archive contents. \end{itemize} \subsection{20200301} \label{sec:changelog_20200301} \begin{itemize} \item Updated archive contents. \end{itemize} \subsection{20191201} \label{sec:changelog_20191201} \begin{itemize} \item Updated archive contents. \end{itemize} \subsection{20190901} \label{sec:changelog_20190901} \begin{itemize} \item Updated archive contents. \item Fixed author ID sometimes being a string. \end{itemize} \subsection{20190601} \label{sec:changelog_20190601} \begin{itemize} \item Updated archive contents. \item Rewrote the builder. \end{itemize} \subsection{20190301} \label{sec:changelog_20190301} \begin{itemize} \item Updated archive contents. \item Fixed inconsistency in completion status. \\ (Reported by Midnight Sapphire) \end{itemize} \subsection{20181201} \label{sec:changelog_20181201} \begin{itemize} \item Updated archive contents. \end{itemize} \subsection{20180901} \label{sec:changelog_20180901} \begin{itemize} \item Updated archive contents. \end{itemize} \subsection{20180601} \label{sec:changelog_20180601} \begin{itemize} \item Updated archive contents. \end{itemize} \subsection{20180307} \label{sec:changelog_20180307} \begin{itemize} \item Updated archive contents. \end{itemize} \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} \subsection{20170907} \label{sec:changelog_20170907} \begin{itemize} \item Updated archive contents. \end{itemize} \subsection{20170601} \label{sec:changelog_20170601} \begin{itemize} \item Updated archive contents. \end{itemize} \subsection{20170301} \label{sec:changelog_20170301} \begin{itemize} \item Updated archive contents. \item Added wordless stories. \item Rewrote the updater. \end{itemize} \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}