[Misc] FurAffinity.net siterip часть 1 из 72 (-----.sora.----- … aeolos) [Furry, Yiff] [png, jpg, gif, swf etc.]

FurAffinity.net siterip / рип сайта FurAffinity.net
Сайт издателя: https://www.furaffinity.net
Тип раздачи: Misc
Жанр: Furry, Yiff
Разрешение страниц: от крохотного до гигантского
Количество страниц: 24500015 шт., 472624 художников
Формат: JPG, PNG, GIF, MP3, SWF, TXT, DOC, PDF, ODT, …
Описание: полный сайтрип сайта FurAffinity.net на 06.01.2021 (до поста №40000000).
Рассортировано по художникам.
Fur Affinity — самая большая в Интернете галерея и библиотека рассказов, посвящённая антропоморфным животным. Создана в 2005 году. Наряду с SoFurry и InkBunny входит в «большую тройку».
Из-за абсолютно титанического размера раздачи — как с точки зрения объёма, так и с точки зрения количества файлов, — она публикуется разделённой на 72 тома. По этой же причине, а также из-за отсутствия нормальной системы тэгов, разделения по ориентации на этот раз не будет («полюбовался самочьей обнажёнкой — будь добр получить порцию яиц» © какой-то фурь с Джойреактора).
Чтобы сделать количество частей мало-мальски вменяемым, было решено разбивать раздачу на части не по буквам, а в произвольных местах — как в Большой Советской Энциклопедии. В данной части содержатся рисунки художников, чьи имена (в алфавитном порядке) находятся между «-----.sora.-----» и «aeolos».
Под «алфавитным порядком» понимается следующий: -, ., 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, [, ], ^, `, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, ~.

В лежат примеры ко всем томам. Если вы читаете эти строки в 2030+ году и FastPic в очередной раз их удалил, можете качнуть из той раздачи папку «оформление».
Доп. информация:
Метаданные
Как и раньше, параллельно с созданием базы скачанных файлов я построил и базу всех прочих данных, доступных на сайте (авторские описания, тэги, список комментариев и т. д.). Получилось не так уж много — «всего лишь» 50 ГиБ, — и я планировал по традиции добавить эту БД в раздачу, чтобы получилась полноценная резервная копия сайта.
Вот только, к моему стыду, за все прошедшие годы у меня так и не дошли руки до изучения SQL, поэтому эта БД имеет самописный формат, и при её публикации мне пришлось бы (опять-таки, как и раньше) прикреплять к ней cpp-исходники с описанием этого самого формата. Мне эта ганьба надоела, и на этот раз я твёрдо решил освоить-таки SQL, конвертировать в неё свою костыльную БД, и положить её в раздачу уже в нормальном виде… но, увы, не успел.
Как-нибудь потом доковыряю и куда-нибудь выложу.
Дубликаты файлов
В отличие от e621.net, где любой загружаемый файл переименовывается в свой MD5-хэш и потому дубли (по крайней мере, бинарные) невозможны в принципе, на FA один и тот же файл можно загрузить сколько угодно раз.
Перед упаковкой раздачи в архивы все бинарные дубли (около 1,6 млн. файлов) были удалены. Чтобы не потерять связность, при удалении каждого такого дубля делалась запись в специальный файл dupes.txt, лежащий в архиве соответствующего пользователя (того, из чьей галереи был удалён файл). Синтаксис файла такой:
№ поста-дубликата \t имя файла-дубликата \n № оригинального поста \t имя оригинального автора \t имя оригинального файла (переименованное, если он был переименован; см. ниже) \n\n
Как видите, можно легко распарсить эти файлы любым языком программирования (ну либо просто открыть в блокноте и посмотреть, в архивы каких пользователей нужно лезть за добавкой и какие файлы в них нужно искать).
С учётом того, что значительная часть пользователей FA ничего не рисует и только заказывает работы, это удаление дубликатов привело к «пустым» архивам, в которых нет ничего кроме этого самого файла dupes (таких 4249 шт).
Стоит упомянуть, что распространённая причина появления дублей выглядит так:
- заказчик заказывает у художника рисунок;
- художник исполняет заказ и выкладывает в своей галерее;
- заказчик, не парясь, скачивает рисунок с FA и загружает его обратно же на FA, но уже в свою галерею.
При загрузке к имени файла слева добавляется случайное число, точка, а затем — имя загружающего. В вышеописанной ситуации в имени файла оказываются два пользователя — сначала заказчик, потом художник; поэтому при желании можно догадаться, какой из двух дублей надо убрать.
Проблема в том, что хорошая мысля приходит опосля, так что выбор, какой из дубликатов «пощадить», был никак не детерминирован. (Правда, посты обрабатывались в более-менее хронологическом порядке, так что в раздачу попали в основном наиболее старые файлы — как раз таки те, которые обычно загружаются самими художниками).
Имена файлов
Ох… ну с этим и трэшак.
Начнём с того, что для типичного художника в порядке вещей сохранить нарисованную картинку под неверным расширением. Например, у файла расширение png, а сам файл при этом имеет формат jpg.
На FA таких файлов — миллионы (только для вот этой конкретной пары «png→jpg» — 3,2 млн.). Почему так — я не знаю. Видимо, привыкли, что если в окне «Сохранить как» напечатать имя файла с расширением, то редактор сам догадается использовать нужный формат — а потом перешли на какой-то другой редактор, в котором формат нужно указывать вручную.
Так или иначе, это проблема, потому что многие просмотровщики картинок откажутся такие файлы открывать. Чтобы избавить вас от головной боли, перед упаковкой файлов MIME каждого файла сверялся с его расширением, и в случае несовпадения последнее исправлялось.
Чтобы — опять-таки — не потерять связность, каждый такой акт переименования записывался в специальный файл renames.txt, лежащий в архиве соответствующего автора. Синтаксис файла такой:
№ поста \n оригинальное имя файла \n переименованное имя файла \n\n
На всякий случай делалось это только для трёх форматов — jpeg, png и gif, — потому что всего на FA за 15 лет было загружено столько всякого мусора, что один только список обнаруженных MIME занимает несколько страниц. А ведь MIME — это далеко не всегда однозначно верный вердикт; например, сплошь и рядом попадаются docx-файлы, имеющие MIME «application/zip» вместо «application/vnd.openxmlformats-officedocument.wordprocessingml.document».
Поехали дальше.
Когда вы скачиваете файл с сайта, браузер создаёт имя файла (под которым нужно сохранить скачанный файл на диск) на основе ссылки, по которой этот самый файл был скачан.
Вот только к ссылкам предъявляются строгие требования — в частности, многие символы в них не допускаются и должны быть заменены специальными «процентными кодами».
Так вот. Веб-сервер FA кодирует некоторые зарезервированные символы в некоторых постах.
По этой причине нормально создать имя файла программным путём, анализируя скачанный HTML, невозможно. Можно либо
- применять дешифровку, и получать из ссылки «//d.facdn.net/art/bigwolfbebad/1107554573/WolfgangSketch #1.jpg» (пост 13250) имя «WolfgangSketch » вместо «WolfgangSketch #1.jpg»; либо
- не применять, и получать из ссылки «//d.facdn.net/art/keto/1134274040/1134274040.keto.itisn%27tiswrong.jpg» (пост 5361) имя «1134274040.keto.itisn%27tiswrong.jpg» вместо «1134274040.keto.itisn'tiswrong.jpg».
Поскрипев зубами, я всё-таки выбрал первый вариант, и в результате получил около 18 тыс. обрубленных названий. (Расширение к ним, правда, было потом всё равно автоматически добавлено, так что жить можно).
Далее.
FA даёт возможность заменить уже загруженный файл. Очень часто это приводит к тому, что ссылка на этот самый «исправленный» файл необратимо уродуется (обычно расширение файла вкорячивается куда-нибудь в середину ссылки, давая что-то вроде «//d.facdn.netpdf/art/…»). Пост становится «битым» (при попытке открыть его на сайте вы увидите осточертевшую до зубной боли картинку 120x120 с надписью «Image Not Found»).
Но иногда происходит чудо, и загрузка изменённого файла срабатывает. Когда на небе сходились звёзды и такое изменение попадало между двумя моими сессиями риппинга, и этот пост попадал в обе сессии, то получался форс-мажор: алгоритм отбраковки дублей давал сбой (содержимое-то у файла другое), и исправленный файл добавлялся в zip-архив вместе с предыдущей версией.
В принципе, ничего страшного в этом нет — спецификация формата ZIP допускает внутри одного архива сколько угодно файлов с идентичными именами, и любой архиватор будет с таким архивом работать без проблем. Проблемы начнутся при попытке распаковать всё содержимое в одну папку. Скорее всего, в папке просто останется самая свежая версия (что, в общем-то, и нужно). К тому же таких форс-мажоров было всего около сотни.
Пустые файлы
При попытке скачать что-то с сервера, тот иногда присылает файл размером 0 байт. Проблема в том, что это может быть вызвано тремя разными причинами:
- на сервере лежит нормальный файл, но что-то сломалось на моей стороне (соединение оборвалось, например);
- на сервере лежит битый файл (большая часть таких файлов появилась летом 2008 года, когда сервер упал и похоронил всё, что когда-либо было загружено на сайт — админы потом выковыривали, что могли, в течение месяца; наглядный пример того, зачем нужны резервные копии вроде вот этой самой раздачи);
- автор нарочно загрузил на FA пустой файл.
Программным путём эти варианты отличить невозможно, так что пришлось рассматривать каждый вручную (их набралось около 500). Чтобы присвоить просмотренному файлу вердикт «пустой на сервере», я записывал в него единственный байт — тильду (~). Если файл имел расширение txt, то вместо этого записывалась несколько более внятная заглушка «<empty>».
Великий Рандом решил, что первым файлом с тильдой будет обработан «1368952479.tomslove_deni2.jpg» от автора tomslove (пост №10632532), а первым текстовым файлом — «1368782815.angel-blackwolf_nuevo_documento_de_texto.txt» от автора angel-blackwolf (пост №10617741). Потом в сотнях архивов других авторов в файлах dupes.txt появились неуместные ссылки на эти два файла. Так что если увидите одну из них — не торопитесь лезть в соответствующие архивы, это всего лишь пустые файлы.
Простите, так уж вышло. Так бывает, когда приходится на ходу допиливать «живую» работающую программу, которая вот уже месяц перемалывает терабайты файлов.
Пользователям Linux
У формата ZIP есть родовая травма — в нём нигде не хранится кодировка, используемая для файловых имён. Windows-архиваторы лечат эту травму при помощи гадания на кофейной гуще, пытаясь при открытии архива эвристически определить нужную кодировку. В *n?x же имя файла традиционно считается не текстовой строкой, а набором байт, так что разработчики большинства утилит для работы с архивами попросту не видят тут никакой проблемы — ну оказались все файлы после распаковки названы кракозябрами, и что? Может, их такими запаковали — имели право.
Короче говоря, в данной раздаче все имена файлов в архивах находятся в кодировке UTF-8. Привычные unzip(1) и file-roller при распаковке таких архивов дадут вам упомянутые кракозябры. Решение — поставить p7zip и вместо «unzip» использовать «7z x».
От себя
Если перефразировать чей-то давно виденный мной комментарий, копание в фурри-фандоме — это поиск сундука с сокровищами в канализационной системе. Ты часами бредёшь по колено в говне, иногда проваливаясь с головой, но когда наконец натыкаешься на очередную спрятанную жемчужину — чувствуешь, что оно того стоило.
Если заниматься этим регулярно, внутри постепенно нарастает некая защитная корка, словно роговеет мозоль. Ты становишься сильнее.
Здесь есть шедевры живописи, достойные висеть в картинных галереях — они валяются под залежами криволапой мазни, которую бы постыдился 12-летний ребёнок. Здесь есть шекспировские сюжеты, выворачивающие душу наизнанку — густо обмазанные фетишами, от которых тянет блевать.
Надевайте костюм РХБЗ и асбестовые краги, берите совковую лопату — и в путь.
« Art should comfort the disturbed and disturb the comfortable. »
— Cesar A. Cruz
Show All Tags

Free Sex Videos on Porn2Best ! Enter now!

you ready to spice up your adult entertainment experience? Look no further than Porn2Best! Get ready to explore the best free adult torrent that will leave you coming back for more. Whether you're into diversity, HD quality, or just want to download new content all the time, Porn2Best has got you covered. Let's dive in and discover the ultimate destination for your naughty pleasures!

Porn2Best

At Porn2Best, diversity is where it's at. No matter what your preferences or kinks may be, you're sure to find something that tickles your fancy on this platform. From different body types to a wide range of sexual activities, there's no shortage of variety when it comes to adult videos here. Explore a world of endless possibilities and discover new genres that you never knew existed. With content catering to all tastes and desires, you can truly indulge in whatever gets you going without judgment or limitations. Embrace the beauty of individuality as you navigate through a plethora of options that celebrate diversity in all its forms. Whether you're into classic scenes or more niche selections, Porn2Best offers a smorgasbord of choices to satisfy every craving.

Porn2Best

Are you tired of grainy, low-quality adult videos that leave you squinting at the screen? Say goodbye to pixelated images and blurry scenes because on Porn2Best, it's all about HD quality. Immerse yourself in crystal-clear visuals that bring every detail to life. From the glisten of sweat on skin to the twinkle in their eyes, HD takes your viewing experience to a whole new level. Once you experience adult videos in HD on Porn2Best, there's no turning back. The sharpness and clarity will make you feel like you're right there in the moment. Get ready to fall in love with high-definition adult content like never before. Don't settle for anything less than perfection when it comes to your viewing pleasure. Upgrade your experience with HD videos on Porn2Best and see why quality matters more than ever before.

Watch New HD Videos All the Fucking Time

So what are you waiting for? Dive into the world of Porn2Best and explore the best free adult videos on offer. With a diverse range of content, high-definition videos, and new releases all the time, there's something for everyone to enjoy. Whether you're into a specific niche or just want to discover something new, Porn2Best has got you covered. Don't miss out on the ultimate adult entertainment experience - enter now!