Coder Social home page Coder Social logo

monkalex / mangareader Goto Github PK

View Code? Open in Web Editor NEW
50.0 50.0 6.0 11.47 MB

Help to download updates from online manga readers.

Home Page: http://monkalex.github.io/MangaReader/

License: MIT License

C# 100.00%
avalonia avaloniaui c-sharp manga manga-downloader manga-tracker

mangareader's People

Contributors

monkalex avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

mangareader's Issues

Управление библиотекой

Добавление манги
Удаление манги

Удаление полностью прочитанной манги - низкий приоритет
Изменение ссылки на мангу, синхронно с изменением ссылок в истории - сложно, низкий приоритет

Подумать над порядком отображения и над порядком обработки библиотеки.

UI -- hibernate branch

16:22 - Blazard: тогда мелкие интерфейсные правки - в меню фильтрации названия с большой буквы сделать и кнопку настроек манги назвать не "Настройки" а "Свойства"

Расширенная авторизация

  1. Открутить фоновую загрузку избранного с readmanga\adultmanga.
  2. Докрутить возможность авторизации на hentaichan - нужно для загрузки 18+ содержимого. (#32)
  3. Докрутить контролы авторизации, для визуального отображения всех доступных.
  4. Посмотреть на acomics.

EPIC acomics.ru

http://acomics.ru
С логином? Остальное должно заехать без особых проблем.

Выделить интерфейсы или базовый класс манги.

Имена файлов

  1. В названиях архивов убрать все ненужные _ . Т.е. от вида Blame - Prototype_Volume_001 перейти к Blame - Prototype. Volume 001

Пропуск глав на ридманге

Внезапна, экстры на ридманге пропускаются.
Пофиксил вроде уже, но лучше проверить все остальные типы - мб что ещё где то.

По идее - максимально упростить xpath в парсинге страниц.

  • Grouple
  • Acomics
  • Hentaichan

Фильтрация, разделение по признакам

Сделать более очевидное разделение на комиксы с АК и мангу с РМ, например ввести в интерфейс вкладки/разделители и автоматически добавлять новую мангу/комикс не в конец общего спискаа в соответствующий раздел.

Принудительное обновление

сделать кнопку принудительной проверки номера версии и обновления программы в случае устаревшей версии.

Хранение настроек

xml - слишком паршиво для чтения.

Перевести хотя бы на json или утащить в базу.
ПС: при хранении в базе будут проблемы с конвертацией, возможно сущность для них всё таки не нужна, над форматом надо подумать.

Переименовывание манги

16:26 - Blazard: у тебя я так понял при изменении названия автоматом меняется папка скачки?
16:27 - Blazard: тогда сделай чтобы старая папка автоматом переименовывалась также

Обновление программы

Дать возможность докачивать файлы.
Удалять файлы.
Подумать над форматом всей этой херни.

Разделить WPF и ядро

По идее, для сборки пока нет никаких особых условий, всё на mono может даже соберется.

Попробовать стоит.

Глобальная упаковка

17:44 - Blazard: я кстати вспомнил о чем тебя хотел попросить. добавь в настройки проги глобальную настройку в каком виде архивировать мангу. а настройки для каждой манги отдельно пусть ее оверрайдят для конкретной манги если выставить соотв. галочку в настройках - т.е. будет глобальная настройка и при активированной галочке "настройки архивации конкретной манги приоритетнее" можно будет выставить желаемую архивацию для конкретного тайла не сшибая настройки остальных. прост иногда забываю выставить нужный вид архивации при добавлении новой манги и получается печалька
17:45 - Blazard сейчас имеет статус «Не в сети».
17:45 - Blazard сейчас не в сети, но получит ваше сообщение при следующем входе в сеть.
17:46 - aLex: Эээ глобальная зависит сильно от манги. Ридмангу нельзя упаковывать целиком, а у акомикса аще каждый сам по себе

Add other sites

http://hentaichan.ru/
Добавить.
Как минимум серии хотелось бы контролировать.

Есть архивы для скачивания, т.е. можно использовать их.

https://www.fakku.net
поглядеть, по структуре что-то похожее на акомикс, не самый быстрый вариант будет

http://readhentaimanga.com/
аналогично

Итого:

Прокси

добавить поддержку, хотя бы из IE

Добавить библиотеку (EPIC)

Библиотека - визуальное отображение манги в базе.

Из хотелок:
связь с историей
загрузка по клику
картинка (первая, любая, все)

Главы на acomics

16:29 - aLex: А блин, на Акомиксе разве есть главы, шобы по ним паковать?
16:29 - Blazard: yep
16:29 - Blazard: но не у всех
16:29 - aLex: Не видел ни разу. Не сообразил
16:30 - Blazard: т.е. большие комиксы как правило с главами, а стрипы - без глав
16:30 - aLex: есть ссылка на комикс с главами? хоть прикинуть
16:30 - Blazard: как пример
16:30 - Blazard: http://acomics.ru/~unsounded/content
16:31 - aLex: О блин, какое выделение глав печальное. Но я понял, может докручу обработку глав когда нибудь.
16:31 - Blazard: у комиксов в виде стрипов (типа этого http://acomics.ru/~critical-miss) содержание не по главам а просто список всех страниц

Вынести GUI в отдельный поток

Решить каким то образом подвисание GUI при выполнении обновления\загрузки библиотеки.

Сюда же - реализовать ленивую загрузку обложек манги.

Критично - Отломалась загрузка страниц на бывшей адультманге

Сорцы разные внезапно для бывшей адультманги и ридманги.

Возможно, придётся разделять их на уровне приложения, хоть разницы пока и в один regex.

мб пора модель страницы строить или поискать готовые решения.

Синтаксис страниц:
rm_h.init([['auto/03/68','http://e1.adultmanga.me/','/20/001.jpg_res.jpg',1800,1259],['auto/03/68','http://e3.adultmanga.me/','/20/002.jpg',1072,1600],['auto/03/68','http://e1.adultmanga.me/','/20/003.jpg_res.jpg',1800,1319],['auto/03/68','http://e1.adultmanga.me/','/20/004.jpg',1055,1600],['auto/03/68','http://e1.adultmanga.me/','/20/005.jpg',1082,1600],['auto/03/68','http://e1.adultmanga.me/','/20/006.jpg_res.jpg',1800,1324],['auto/03/68','http://e3.adultmanga.me/','/20/007.jpg',1081,1600],['auto/03/68','http://e1.adultmanga.me/','/20/008.jpg_res.jpg',1089,1600],['auto/03/68','http://e2.adultmanga.me/','/20/009.jpg_res.jpg',1086,1600],['auto/03/68','http://e1.adultmanga.me/','/20/010.jpg_res.jpg',1072,1600],['auto/03/68','http://e3.adultmanga.me/','/20/011.jpg_res.jpg',1089,1600],['auto/03/68','http://e1.adultmanga.me/','/20/012.jpg',1086,1600],['auto/03/68','http://e2.adultmanga.me/','/20/013.jpg',1097,1600],['auto/03/68','http://e2.adultmanga.me/','/20/014.jpg',1095,1600],['auto/03/68','http://e2.adultmanga.me/','/20/015.jpg_res.jpg',1087,1600],['auto/03/68','http://e2.adultmanga.me/','/20/016.jpg_res.jpg',1074,1600],['auto/03/68','http://e2.adultmanga.me/','/20/017.jpg_res.jpg',1062,1600],['auto/03/68','http://e2.adultmanga.me/','/20/018.jpg_res.jpg',1088,1600],['auto/03/68','http://e2.adultmanga.me/','/20/019.jpg_res.jpg',1099,1600],['auto/03/68','http://e1.adultmanga.me/','/20/020.jpg',728,1076]], 0, false);

Хотелка по упаковке

13:45 - Blazard: если у манги стоит статус не обновлять то "реархивация" в другой тип архивации не происходит
13:46 - aLex: Архивация аще побочная потому что =) и не буду це включать
13:46 - Blazard: -_-
13:46 - aLex: Не обновлять - значит аще не трогать. Упаковывать - тоже обновлять =)
13:47 - Blazard: а я бы разделил
13:47 - aLex: Думать надо. Может действием отдельным.
13:49 - aLex: Упаковка просто реально побочное действие при обновлении. Отдельно вызывать смысла нету вроде. Тогда уж надо ПЕРЕпаковку. На случай смены типа упаковки

Индивидуальная упаковка манги

16:28 - Blazard: кстати есть возможность сделать выборочную упаковку в cbr?
16:28 - aLex: Как выборочную? для каждой манги?
16:28 - Blazard: ибо на акомиксе же у тебя разделение по главам не парсится и валится все в один архив
16:28 - Blazard: да
16:29 - Blazard: т.е. галочка - типа этот тайтл сразу паковать, этот оставить просто картинками
16:29 - aLex: В теории - можно, код менять сильно не придётся. Другое дело что надо выносить в свойства манги видишь визуальные
16:29 - Blazard: в настройках где меняется имя

Удаление истории

1:08 - Blazard: запили возможность обнулить историю скачивания и перекачать мангу полностью

Валидация картинок

Проверка соответствия содержимого картинки и расширения.
Основные форматы - jpg, bmp, gif, png.

Логирование

Добавить:

  • запуск, логирование каждого действия:
  • проверка обновлений с указанием версий
  • конвертация целиком, с запуском каждого метода
  • загрузка настроек
  • инициализация sqlite либ
  • инициализация nhibernate, хоть там кода и немного
  • завершение программы
  • конфиги опять таки
  • nhibernate, особенно обратить внимание на закрытие с несохраненными изменениями

Автообновление манги по таймеру

22:26 - Blazard: и автопроверку на обновления манги
22:26 - Blazard: типа проверилось о таймеру (раз в 4 часа например) - оп пара манг обновилась, в балуне вывело сообщение - такието манги обновились
22:26 - Blazard: и можно жмакать
22:27 - Blazard: ну типа чтоб прогу можно было автоматом запускать в фоне для автоотслеживания

UI - макеты главной формы

mockup_mr
15:37 - Blazard: http://c2n.me/3985yaD
15:37 - Blazard: набросал вчерне
15:37 - Blazard: главное окно
15:38 - aLex: Перечеркнутый крест це шо?
15:38 - Blazard: хде?
15:39 - aLex: Под плашкой ридманга
15:39 - aLex: Текст анотации мне тоже неясен пока
15:39 - Blazard: тут должна быть наша реклама, т.е. я хотел сказать туту будет картинка манги
15:39 - aLex: А, это режим одиночного просмотра
15:40 - Blazard: да
15:41 - aLex: Тэкс, все три вида хочется отображения или какой то приоритетнее? Я пока не уверен, что все три так вот легко сразу будет запилить =)
15:41 - Blazard: сделай на твой
15:41 - Blazard: выбор
15:41 - Blazard: главное чтобы работало
15:41 - Blazard: функционал потом допилишь
15:41 - aLex: Ну оке, но тогда мне проще список уже оставить. Хотя вариант который на картинке интересный
15:42 - Blazard: ну я надеюсь ты на две вкладки разделишь?
15:42 - Blazard: РМ и АК?
15:42 - aLex: А шо, просто фильтрации по типу недостаточно?
15:42 - Blazard: все равно будет мешанина
15:43 - Blazard: да и так удобнее ИМХО
15:43 - aLex: Подумать надо. Разделение на вкладки по идее будет против идеи обновить всё разом, чем я пользуюсь в первую очередь
15:43 - Blazard: тогда повесь на эти кнопки филтрацию
15:44 - aLex: И кнопки будут включать выключать типа фильтр на конкретную мангу?
15:44 - Blazard: чтобы по нажатию показывало только нужное и ничего кроме
15:44 - Blazard: да
15:44 - aLex: А если обе нажаты? Или свитч?
15:44 - Blazard: хотя в таком случае проще сделать всплывающее меню в котором будет галкой отмечать какую мангу мы хотим выдавать в выборке
15:45 - aLex: Ну менюшка не самый удобный вариант поди...
15:45 - Blazard: не
15:45 - Blazard: вполне норм
15:45 - Blazard: всплывает меню, отмечает галками предположим РМ, АМ и окей. Получаем выборку только этим критериям
15:46 - aLex: Менюшка в настройках или клик по кнопке какой то?
15:46 - aLex: На шо она всплывает?)
15:46 - Blazard: можно сделать кнопочку сбоку от списка
15:47 - Blazard: к варианту на картинке - если нажаты обе - выводим все, не нажато ничего - не выводим ничего
15:47 - Blazard: ты со всплывающими меню не работал чтоле? popup же
15:47 - aLex: Окей, можно попробовать. Не уверен насколько я це осилю, но выглядит интересно
15:47 - aLex: Неа. Всплывашки обычно хуйня к сожалению.

Хранение истории

Подумать над хранением истории в БД.
Расшить историю - добавить время скачивания(хотя бы дату).

Коррекция манги

Изменение ссылки на мангу, синхронно с изменением ссылок в истории

Скорее всего по ПКМ - опыт уже есть в целом, сложность работы с историей снижена.

Архивирование по главам

18:59 - Blazard: сделай опционально упаковку по главам
18:59 - Blazard: в папках с номерами томов
18:59 - aLex: Нахер так мелко?
19:00 - Blazard: чтобы не приходилось мониторить архив - реально ли он такой маленький или там главы неупаковались
19:00 - Blazard: прост для удобства
19:00 - aLex: Да блин я даже проявить не могу такую херню.
19:00 - Blazard: сделай опционально выбор - упаковка по томам или по главам

Тесты

Хотя бы на оффлайн часть бы тесты написать.
Что сейчас видится:
-добавление
-удаление
-чистая загрузка
-загрузка с конфигами разных версий (низкий приоритет)
-обновление
--с дефолтными настройками
--с дублями и без
--обновление в другую папку

Фильтр "необновляемые"

16:23 - Blazard: и добавь к галочке "Незавершенные" еще галочку "Необновляемые", для скрытия манги которая обозначена как "не обновлять"

Архивирование - простые имена

22:58 - aLex: Blood Lad\Volume 010\Blood Lad Volume 010 Chapter 0046.cbz
22:58 - aLex: В папках томов получается
22:59 - Blazard: гораздо красивее был бы вариант Blood Lad\Volume 010\Chapter 0046.cbz

Проблем вроде быть не должно.

Лог ошибок

В лог пишутся записи по манге, которой не удалось создаться.
Надо починить.

Поковырять сортировку, не сломав фильтрацию

14:08 - Blazard: кстати насчет сортировки
14:08 - Blazard: ты можешь сделать так чтобы сортировка запоминалась?
14:08 - Blazard: а то при начале обновления прога опять сортирует мангу по времени добавления в список
14:09 - aLex: Ээээ какая?
14:09 - Blazard: ну вот я перетащил мангу на верх списка
14:09 - Blazard: нажал обновить все и манга опять упала на днище

Добавить паузу обновления

По идее, что можно сделать при паузе-продолжении:

  1. Заморозка процесса - разморозка процесса (с плановым дропом зависшей закачки)
  2. Протащить поддержку паузы каким нибудь шаредным свойством в мангу и главы, докачка файла в любом случае работает, т.е. пауза отложена.
  3. Пауза с мнгновенным дропом текущих закачек - запуск скачивания заново

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.