↓
 ↑
Регистрация
Имя/email

Пароль

 
Войти при помощи

Styx

Переводчик, Редактор

Переводы

4 произведения» 
Ответный удар
Джен, Макси, Заморожен
5.6k 0 52 1
Гетерохромия
Гет, Миди, Заморожен
11k 18 407 1
Оплачено кровью
Гет, Макси, Заморожен
151k 321 3.1k 8
Ледяная Принцесса
Гет, Миди, Закончен
153k 408 2.6k 12

Редактура

2 произведения» 
Её голос
Гет, Мини, Закончен
2k 0 13
Последний же враг истребится — смерть
Гет, Миди, Заморожен
4.4k 0 54

Награды

32 награды» 
10 лет на сайте 10 лет на сайте
7 января 2024
9 лет на сайте 9 лет на сайте
7 января 2023
8 лет на сайте 8 лет на сайте
7 января 2022
Создал 1 фандом Создал 1 фандом
14 апреля 2021
7 лет на сайте 7 лет на сайте
7 января 2021

Блог » Поиск

До даты
#ffme #coming_soon #прогерское

Фух, добил таки все фичи. Теперь осталось запихнуть это в экстендер :)

#прогерское

Чего это никто никого не поздравляет?



01001000 01100001 01110000 01110000 01111001 00100000 01010000 01110010 01101111 01100111 01110010 01100001 01101101 01101101 01100101 01110010 00100000 01000100 01100001 01111001 00100001
Показать 17 комментариев
#прогерское #фанфикс #снэпшот

Есть у меня одна негативная (или позитивная, тут уж как посмотреть) черта: я могу зацепиться за какую-то совершенно постороннюю проблему и начать её решать. Как вы помните, именно так появился на свет Fanfics Extender :)

На этот раз мой взгляд зацепился вот за этот комментарий:
Можно ли каким-нибудь способом целиком качнуть диалог в каком-нибудь человеческом формате (да хоть бы и в CSV)?
Длинную переписку листать невозможно, даже если попытаться целиком загрузить.


Как вы знаете, в блогах существуют посты с огромным количеством комментариев. Если нажать княпку "Показать все" (комментарии), сервер долго думает, и выдаёт пустую страницу. Единственный способ увидеть все комментарии — долго и нудно нажимать княпку "Показать ещё 20 комментариев". Для треда техподдержки (8577 комментариев) пришлось бы нажать 428 раз. И это если ваш браузер продерётся через уйму скриптов, метрики и прочей обработки нового контента. После 150-ой загрузки пачки комментариев мой ноут с Core i7 2.2GHz/16GB разгонял вентиляторы так, будто решил взлететь, а время загрузки/обработки каждой новой пачки стала занимать 10-15 секунд.

Конечно же, я не кликал "Показать ещё 20 комментариев" вручную. Я написал скриптик, который заставлял браузер проделывать это за меня.
Если кому интересно: PHP + Mink + chrome-mink-driver.


Стало ясно, что нужно искать другой путь. Прости, javascript, но тут ты всё портишь.

1. Скачиваем изначальную страничку, на которой 20 комментариев и кнопочка "Показать ещё 20".

2. Чистим её от рекламных блоков, посторонних скриптов и стилей, и разбиваем на две части, «верх» и «низ». Между этими частями мы и будем вставлять загружаемые блоки с комментариями.

3. Начинаем загружать комментарии по 20 штук и сохранять в отдельные файлики. К сожалению, мы не можем загружать их, например, по 100 штук за раз. Родное API фанфикса (которое и обрабатывает нажатие кнопки "Показать ещё 20") отдаёт максимум 20 штук. Причём, чтобы загрузить следующую пачку — нужно знать ответ от предыдущего запроса.

3.1. Чертыхаемся, добавляем задержку между запросами, одной секунды должно быть достаточно :)

4. После загрузки всех блоков комментариев — склеиваем их в обратном порядке, вставляем между «верхом» и «низом».

Вуаля. Наш снэпшот готов. Проходимся по нему «ластиком»: убираем онлайн-статусы; исправляем ссылки в текстах, чтобы они не вели на прокси фанфикса (она будет отфутболивать).

Теперь самое главное: убрать из полученной страницы загрузку скриптов фанфикса, оставив только стили. Полученная страничка очень шустро открывается в браузере, ничего не тормозит и не лагает.

Опционально убираем аватарки, чтобы не грузить сервер фанфикса кучей запросов на картинки (при первом открытии страницы).

Держи, pskovoroda: архив HTML-странички без аватарок (≈8.6МБ, сжата до ≈1.1МБ).

Теперь можно расслабиться и выпить кофе, попутно давя мысли о создании телеграм-бота, который бы создавал такие архивы по запросу.
Свернуть сообщение
Показать полностью
Показать 20 комментариев из 26
ПОИСК
ФАНФИКОВ











Закрыть
Закрыть
Закрыть