Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ListImport system #710

Closed
8 tasks done
NuckChorris opened this issue Feb 4, 2016 · 1 comment
Closed
8 tasks done

ListImport system #710

NuckChorris opened this issue Feb 4, 2016 · 1 comment

Comments

@NuckChorris
Copy link
Member

NuckChorris commented Feb 4, 2016

The ListImport system will form the basis of the MAL and Hummingbird importers in V3. The goal is to make the addition of other site imports relatively simple by abstracting the details away.

An early version of ListImport was set up in V2 as a duck-typed enumerable, but in V3 I'll actually build a base class to provide a number of helpful abstractions.

The goal is to make it this easy to run an import:

# MyAnimeList
importer = ListImport::MyAnimeList.new(file)
LibraryEntry.import(user, importer) { |progress| user.notify(progress) }

# Anime-Planet
importer = ListImport::AnimePlanet.new(profile_url)
LibraryEntry.import(user, importer) { |progress| user.notify(progress) }

# Hummingbird
importer = ListImport::Hummingbird.new(file)
LibraryEntry.import(user, importer) { |progress| user.notify(progress) }

All while making it extremely easy to build new ones.

Todo

  • Get an initial version of Mappings RFC #709
  • Build a fuzzy matching system with a cutoff point
  • Build ListImport base class
  • Build LibraryEntry.import
  • Build ListImport child classes
    • MyAnimeList
    • MyDramaList
    • Anime-Planet
@toyhammered
Copy link
Member

Well feel free to add me to this, Ill be working on the MyAnimeList importer.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants