Git Product home page Git Product logo

manga-progress's Introduction

License Repo size Last commit Dev

Manga Progress

🎯 Objetivo

Gerenciar leitura de mangás.

💡 Justificativa

O site onde normalmente leio mangás, tem a necessidade de logar-se com o Facebook para realizar o gerenciamento dos mangás lidos pelos usuários, mas não tenho cadastro na rede social, então decidir criar essa extensão Web. Além que gostaria de testar o Vue.js.

📸 Screenshot

⚙️ Instalação

📁 Repositório

git clone https://github.com/dannRocha/manga-progress.git

Google Chrome

  • Inicie o Chrome;
  • Na barra de pesquisa digite chrome://extensions/ ;
  • Na canto superior direito ative o modo de desenvolvedor;
  • Arraste a pasta do repositório para a janela das extensões;

🖥️ Como usar

Nos sites que possuem suporte a extensão, acesse a página de cada mangá que deseja acompanhar e clique na estrela (:star:) para que seja adicionado aos seus favoritos.

👷🏾‍♂️ Suporte

manga-progress's People

Contributors

danroxha avatar

Stargazers

 avatar  avatar

Watchers

 avatar

manga-progress's Issues

Feat: Adicionar mensagem de lista vazia ou carregando

Visual

Quando não há mangás na lista de favoritos, a extensão fica com apenas o cabeçalho e o menu de lista fica quebrado
Sugestões:

  • Definir o tamanho da altura do componente (Corrigi o visualização do menu de opção)
  • Criar um componente pra apresentar caso na lista de favoritos esteja vazio
       + ------------------------------------------------------ +
       +                        HEADER                          +
       + ------------------------------------------------------ +
       +                        FILTRO                          +
       +--------------------------------------------------------+
       +                                                        +
       +                                                        +
       +                    +-----------------+                 +
       +                      Lista de Sites                    +
       +                        Suportados                      +
       +                    +-----------------+                 +
       +                                                        +    
       +                                                        +  
       + ------------------------------------------------------ +
    
- Criar um componente de loading pra lista enquanto a lista de favoritos é configurada

Limitação do chrome.storage.sync

Limite de itens nos favoritos: 20

Usando o chrome.storage.sync o armazenameto é muito limitado (102400 Bytes). Então a estrategia e alterar para o chrome.storage.local que tem um limite de 5.242880 Bytes (5mb).

Documentação: chrome.storage

Bug: Ordenação ha ausencia de dados

Quando não há dados dos mangás o valor padrão inserido gera um comportamento incorreto na ordenação da lista de mangás.

Screenshot from 2021-04-26 22-40-14

Deveria está ordenado pelo progresso

Feat: modo foco

Modo foco

Implementar mecanismo que limpe toda distração visual da página.

Feat: Menu flutuante - modo leitura

Scroll automatico

O scroll ficara flutuando em alguma diaogal da página e semi-transparente com forma de circular. Ao passar o mouse pelo painel de controle do scroll as opçoes são expandidas. O menu flutuante pode ser posicionado pelo usuário em qualquer lugar da tela

OBS: A atual barra de controle pode ser integrada ao painel de controle flutuante.

Ideas: Menu de configurações

Opções:

  • Ocultar mangás completos: Totalmente completos, com a finalização da publicação e totalmente lidos;
  • Exportar dados dos mangás e configurações
  • Manter as capas dos mangas offline (reduz a capacidade de mangás no armazenamento)
  • Exibir data de atualização do utilmo mangá
  • Exibir favicon do site do mangá de onde foi adicionado na lista de favoritos
  • Opção pra habilitar e desabilitar o modo focus automatico
  • Informações da extensão

Feat: Ultima data de atualização

Data no daemon.js

Pegar a data da ultima capitulo adicionado e adicionar no card ou calcular o tempo que ocorreu a ultima atualização

To Do

Normal Mode

View

  • List mode
  • Grid mode
  • "Go" button in the upper right corner of cards in grid mode
  • Add visual feedback for when the user clicks add to favorites
  • Filter or search mechanic
  • Pin manga
  • Tab for [favorites, last read (limit: 10)]

Organization

  • A-Z
  • Z-A
  • Progress
  • Hide full mangás
  • Select the organization option

Data

  • Export data
  • Data fetch for Notification

Persistence

  • Save setting
  • Sync data with the browser account
  • Save image to base64 for local storage. How to do

Extra

  • Add limit to chrome.store for localStorage limit ("5mb") - manifest.json

Read Mode

Fix

  • Mode change

Bug ao ordernar por progresso

Alguns mangas estão sendo organizados pelo progresso errado
Verificar a causar:

  • Verificar se os capitulos estão como string em vez de number.
  • Verificar se o methodo pra organizar está sendo chamado.
  • Verificar outras possiveis casos

No top da lista

Screenshot from 2020-09-16 23-12-27

No meio da lista

Screenshot from 2020-09-16 23-12-53

Bug: Menu flutuante

Ao obter os capitulos dos mangás e adicionar ao componente <select> , há alguns mangás que possuem capiitulos extras e são indentificados com alguma palavra mais o número do capitulo extra, causando a opcao no <select> o NaN

Então pra evitar o NaN, deve ser colocado a string literal do capitulo e ajustar o redirecionamento para esse capitulo

Feat: Troca da capa por uma de qualidade mais baixa

Exemplo

https://img-host.filestatic1.xyz/mangas_files/worn-and-torn-newbie/image_worn-and-torn-newbie_full.webp
por
https://img-host.filestatic1.xyz/mangas_files/worn-and-torn-newbie/image_worn-and-torn-newbie_xmedium.webp

parse

var coverfullURL = 'https://img-host.filestatic1.xyz/mangas_files/worn-and-torn-newbie/image_worn-and-torn-newbie_full.webp'
coverURL = coverURL.replace('full', 'xmedium')

Motivação:

Não há necessidade de carregar a capa dos mangás com a melhor qualidade, carregando uma de qualidade média economizará banda e memória(pra futura feat de offline de capas).

Bug: daemon.js

ID não é fixo, então tem que ser aplicado um SHA1 no titulo que eh a unica informação que não "muda"

Bug: Sem dados na exibição

Exibir mensagem pra o usuário atualizar os dados dos favoritos no modo Grid
Atualmente é exibido um percentual como infinity e uma imagem quebrada

Feat: Suporte para outros sites

Sites

Site Status
Manga Host? Completo
Central de Mangás Em progresso
Union Mangá Em progresso
BR Mangas Stop
Super Mangás Stop
YES Mangás Stop
Mangá Livre Stop

Raspagem de dados

To do

Modo leitura

Array.from(document.getElementsByTagName('img')).filter(img => img.className.match(/imagePage.\d+/))
document.cookie = "modoLeitura=2" // Ativar Paginas abertas
location.reload()
// Obter paginas
Array.from(document.getElementsByTagName('img')).filter(img => img.className.match(/img-manga/))

Pode ser usado a mesma logica do Manga Host

// Necessario para obter das as paginas do manga/etc
localStorage.setItem('Reader:UserOrientation', 'vertical')

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.