И так, всё случилось благодаря моей «ЛЕНИ» и нет - это не имя моей девушки, как можно было подумать на первый взгляд, это один из смертных грехов, которого ещё называют «Уныние», однако и лень может является двигателем прогресса. Так вот всё началось с того, что мой список закладок стал яро пополнятся и перевалил за сотню, и тогда мне стало трудно отслеживать прочтённые главы, ведь пометка «Обновлено» - не показатель того, что ты ещё не прочитал, т.к надпись эта держится около недели или и того больше. Наверное, многие скажут, что есть страница, где можно это отслеживать, да на сайте есть данный функционал (Обновления), но не тот который хотелось бы.
Начался мыслительный
процесс – «как бы упростить этот нелёгкий труд по поиску непрочитанных глав»,
ведь я зашёл сюда чтобы отдохнуть/расслабиться. Тут зародилась идея - написать простенький
скрипт, который бы внедрялся в страницу и сопоставлял: поставленную мною
отметку(закладку) и последнюю доступную главу. Дело тронулось с места, языком
программирования стал «JavaScript (JS)», в простонародье «яваскрипт» или «джаваскрипт», тут кому как
удобно называть. Представление о нём немного было, да и языки программирования
схожи.
Первым подводным камнем стало то, что отправляемые запросы блокировались, т. к. страница закладок и страница самой манги находились на разных доменах (прим. grouple.co, readmanga.me), такова была политика браузера, это конечно можно было отключить, но повлияло бы на безопасность.
Решением было написать расширение для браузера, в котором разрешены кросс-доменные запросы. Тут начался процесс написания кода, этот этап думаю описывать не нужно – для многих он сложный, да и неинтересный. Сразу говорю – я не профи, и конечно, не обошлось без поддержки большого брата «Google», который при правильной постановке вопроса – выдавал практически 100% интересующий меня ответ.
Расширение расширялось (забавная тавтология) и обрастало всё новым и новым функционалом, ведь получив одно – хотелось и другое. Так появились следующие настройки:
1.Автозапуск – автоматически запускает
сканирование при открытии вкладки закладок, с параметрами из блоков «Категория»
и «Действие».
2.Горячие клавиши (ГК) – тут всё и так должно быть ясно, настраиваются в «Настройки» -> «Расширения» (или «Дополнительные инструменты» -> «Расширения») -> слева вверху «☰» -> «Быстрые клавиши» -> далее нужно найти данное расширение и настроить ГК под себя.
3. Интервал – один из самых важных пунктов настроек, это задержка между полученным и новым запросом. Не стоит занижать его иначе сканирование может и пройдёт успешно, но вот прочитать мангу вы не сможете ещё некоторое время из-за того, что превысите лимит запросов к сайту. Если вы никуда не спешите, можно повысить этот параметр, это снизит нагрузку на сайт. Значение, установленное по умолчанию, было оптимальным для меня.
4.Актуальность данных – немало важный параметр, отвечающий за получение свежей информации, например: если вы просканировали свои закладки использовав «Автозапуск», прочитав несколько манг и поставив на них закладку, то данные на странице просканированных закладок будет неактуальными и при следующем сканировании с помощью «Элементов управления» возникнет рассинхрон. Имеется 3 режима:
4.1. «0» - актуальность данных не проверяется, вся информация берётся со страницы закладок.
Плюсы: минимальное количество запросов = (количество манги на вашей странице закладок или выбранных вами элементов). Минусы: возможная неактуальность данных при повторном сканировании.
4.2. «1» - самый оптимальный вариант, перед сканированием делает запрос для получения актуальных данных, количество запросов: 1 + кол. манги на странице закладок
4.3. «2» - так же сверяет данные с актуальными. Плюсы: актуальность данных. Минусы: подходит только к манге находящейся в категории «В процессе», а также кол. запросов = удвоенному кол. манги на странице закладок, а это нагружает сервер (не рекомендую). Основан, наверное, на единственно открытом API – кстати посредством него, вроде как, можно узнать приватные комментарии к манге.
5. Всплывающее меню – действие по клику иконки на панели расширений. Имеет 3 режима:
5.1. «0» - ничего не происходит
5.2. «1» - открывает настройки
5.3. «2» - открывает панель управления
6. Блоки «Категория» и «Действие» - описывать думаю не требуется.
7. Блок интерфейс – отвечает за визуальную часть расширения
7.1. Элементы управления (ЭУ) – имеет три режима добавления элементов: 0 – вверху и внизу, 1 - вверху, 2- внизу.
7.2. Цвет скрытого элемента – для работы с кнопкой «Видимость элементов» в ЭУ
7.3. Доп. Информация – показывает количество доступных глав для прочтения.
7.4. Уведомления – собственно показывают уведомления из блока «Уведомления»
8. Множественное редактирование (МР) – расширение поддерживает работу с множественным редактированием
8.1. Скрыть МР – автоматически скрывает панель МР
8.2. Автоматически скрывать элементы – для работы с кнопкой «Видимость элементов» в ЭУ
8.3. Убрать отмеченные эл. – даже если МР панель автоматически скрыта, то элементы всё равно останутся отмеченными, данная функция решает проблему.
9. Уведомления – какие уведомления будут отображаться
10. Кнопки (Закрыть/Сохранить/По умолчанию) – за то и отвечают, кроме того, не обязательно нужно нажимать «Сохранить» - настройки подтянутся при обновлении страницы или при нажатии «Настройки» в ЭП. «Сохранить» - нужна для того, чтобы при следующем открытии браузера настройки подгрузились.Расширение предназначено для браузера "Chrome", однако должно пойти и на других браузерах на движке "Chromium".
Добавлять расширение следует в режиме разработчика, перед этим распаковав архив в нужное место, затем нажать на «Загрузить распакованное расширение» и выбрать целевую папку расширения.
Расширение ещё в бета версии и требует доработки/оптимизации, а также оно не находится в «Интернет магазине Chrome». Пока расширение "сырое" - здесь не выкладываю, а все, у кого есть желание протестировать/попробовать стучите в ЛС. Если у "всевышних" будет интерес/желание, а также уверенность в безопасности данного творения - то пускай выкладывают.
Перейдём к горькой составляющей – т.к. расширение не из магазина, то у вас при каждом открытии браузера будет всплывать данное окошко:
:(
Здесь всё верно сказано, из-за
режима разработчика открывается уязвимость для браузера, это позволяет
устанавливать расширения находящихся не в маркете. Однако это не столь уязвимое
место, т.к. если вирус попадёт на ваш компьютер, то он без труда и даже без режима разработчика установится.
Ещё одной ложкой дёгтя будет то, что все (почти) запросы основаны не на открытом API, а на «костылях» сооружённых из парсинга всей страницы, что собственно даёт хоть и незначительную, но нагрузку на сервер.
Принимаю критику, также если есть замечания/предложения по визуальной и функциональной части, то с удовольствием выслушаю. Если есть способы оптимизировать расширение, то хотелось бы узнать у знатоков.
Надеюсь это кому-то пригодится.
Комментарии (30)
23:41 15.04.20
18:31 15.04.20
17:35 15.04.20
17:26 15.04.20
17:10 15.04.20
17:09 15.04.20
16:51 15.04.20
15:56 15.04.20
15:43 15.04.20
15:24 15.04.20
15:08 15.04.20
14:47 15.04.20
14:35 15.04.20
14:29 15.04.20
14:11 15.04.20
13:49 15.04.20
13:44 15.04.20
13:00 15.04.20
04:12 15.04.20
00:24 15.04.20
00:07 15.04.20
00:07 15.04.20
17:35 14.04.20
17:32 14.04.20
11:21 14.04.20
10:42 14.04.20
06:06 14.04.20
06:06 14.04.20
23:08 13.04.20
19:08 13.04.20